mardi 5 octobre 2010
La ponctuation sur Twitter... ou ailleurs!
mardi 7 septembre 2010
Google Doodle (moving/bouncing circles logo) source code

Here is the source code for the Google logo. Originally it uses google object for event listening and browser detection, switched to jQuery. You can find a working example here : http://quebe.ca/doodle.html
mercredi 30 juin 2010
Mod_deflate (Compression apache) ou comment optimiser le poids de vos pages web
dimanche 20 juin 2010
Photo Argentique - La loi de sunny 16 (comment prendre une photo sans posemètre)
lundi 15 mars 2010
Comment obtenir des statistiques sur son code source (nombre de lignes, mots, lettres)
Afficher le nombre de lignes:
find . -name "*.php" -exec wc -l '{}' \; | awk '{ sum += $1 } END { print sum }'
Afficher le nombre de lettres:
find . -name "*.php" -exec wc -m '{}' \; | awk '{ sum += $1 } END { print sum }'
Afficher le nombre de mots:
find . -name "*.php" -exec wc -w '{}' \; | awk '{ sum += $1 } END { print sum }'
Vous aurez compris que vous pouvez changer *.php pour l'extension de votre choix. Aussi pour rechercher dans un autre dossier que le dossier actuel, changez find . -name ... pour find /le/dossier/ -name ...
jeudi 17 décembre 2009
Javascript : Ajouter des fonctions utiles à l'objet String
L'objet string représente en fait une chaîne de caractères.
var text = "Bonjour"; //la variable text est un objet string
var chiffre = 0; // la variable chiffre n'est pas un objet String
//Voici comment la convertir en objet string
chiffre = chiffre + ''; //si la variable a été définie plus haut
var chiffre = 0+''; //ou encore lorsqu'on la définie
//Lorsque vous obtenez la valeur d'un élément input, il s'agit d'un objet String
var valeur = document.getElementById("id_du_input").value; //la variable valeur est maintenant un objet String
//Vous pouvez aussi directement créer un objet String
var texte = new String("Bonjour");
L'objet string comporte plusieurs méthodes et propriétés, voici les plus courantes (Pour une liste complète visitez MDC Javascript 1.5 reference ) :
//On définie une variable pour l'exemple
var texte = "Bonjour";
/*********************
Propriétés
**********************/
//// length
// Retourne le nombre de caractères d'une chaîne
var longueur = texte.length; // Dans l'exemple, longueur = 7
/*********************
Méthodes
**********************/
//// toLowerCase()
// Retourne le texte en lettres minuscules
var minuscules = texte.toLowerCase("bonjour"); // minuscules = "bonjour"
//// toUpperCase()
// Retourne le texte en lettres majuscules
var majuscules = texte.toUpperCase("bonjour"); // majuscules = "BONJOUR"
//// substr(debut [,longueur])
//Retourne une partie d'une chaîne
/ *le premier caractère est à la position 0*/
var soustexte = texte.substr(3); // Réduit la chaîne à partir de la positon 3. Dans l'exemple, soustexte = "jour"
var soustexte = texte.substr(1,3); // Réduit la chaîne à 3 caractères à partir de la position 1. soustexte = "onj"
//// indexOf(texte)
//Retourne la position d'un ou plusieurs caractères dans une chaîne
//La fonction retourne la position du premier caractère trouvé
//Retourne -1 si les caractères ne sont pas trouvés
var position = texte.indexOf("o"); // position = 1
var position = texte.indexOf("j"); // position = 3
var position = texte.indexOf("ur"); // position = 5
var position = texte.indexOf("z"); // position = -1
//// lastIndexOf(texte)
//Retourne la position d'un ou plusieurs caractères dans une chaîne
//La fonction retourne la position du premier caractère trouvé
//Retourne -1 si les caractères ne sont pas trouvés
var position = texte.lastIndexOf("o"); // position = 4
//// split(separateur)
//Retourne un tableau contenant la chaîne séparé selon le séparateur
//Si le séparateur n'est pas trouvé on retourne un tableau avec comme seul élément la chaîne.
var phrase = "Je m'en suis rappelé hier comme si ça me serait arrivé demain."; //Jean Perron
var tableau = phrase.split(" "); // Dans l'exemple, tableau = ["Je","m'en","suis","rappelé","hier","comme","si","ça","me","serait","arrivé","demain."];
Bon! maintenant on peut commencer à ajouter des fonctions (méthodes) à l'objet String.
//trim()
//retourne la chaîne sans les espaces au début et à la fin.
String.prototype.trim = function () {
return this.replace(/^\s+|\s+$/g, "");
};
//noaccent()
//retourne la chaîne sans les accents (Vous pouvez en ajouter)
String.prototype.noaccent = function() {
return this.replace(/[àâä]/gi,"a").replace(/[éèêë]/gi,"e").replace(/[îï]/gi,"i").replace(/[ôö]/gi,"o").replace(/[ùûü]/gi,"u");
};
//ucfirst()
//retourne la chaîne avec la première lettre en majuscule
String.prototype.ucfirst = function() {
return (this.length == 1)? this.toUpperCase():(this.substr(0,1).toUpperCase()+this.substr(1));
};
//ucwords()
//retourne la chaîne avec la première lettre de chaque mot en majuscule
String.prototype.ucwords = function() {
var words = this.split(" ");
var uwords = [];
for(var i = 0; i < words.length; i++) {
uwords.push( ((words[i]+"").length == 1) ? (words[i]+"").toUpperCase():((words[i]+"").substr(0,1).toUpperCase()+(words[i]+"").substr(1)) );
}
return uwords.join(" "); //transforme un tableau en une chaîne
};
Plus à venir...
Unix Timestamp en javascript - Équivalent de time() en PHP
Voici comment obtenir un timestamp en javascript comme la fonction time() en php.
/////////////////////////////////////////////
//Obtenir le timestamp actuel
/////////////////////////////////////////////
var timestamp = Math.round((new Date()).getTime()/1000);
/***************************
Note :
La fonction getTime() en javascript retourne un timestamp en millisecondes, donc on divise par 1000 pour obtenir un timestamp en secondes
***************************/
/////////////////////////////////////////////
//Obtenir le timestamp du 1er janvier 2009
/////////////////////////////////////////////
var timestamp = Math.round((new Date(2009,0,1)).getTime()/1000);
/***************************
Note :
Les paramètres de Date sont :
Date(année,mois,jour)
Date(année,mois,jour,heures,minutes,secondes)
Les mois commence à 0 donc le mois de janvier est 0 et non 1 et le mois de décembre est 11
***************************/
jeudi 1 octobre 2009
Télécharger de la musique gratuitement à partir de Google
intitle:index.of -html -htm -download mp3 [mot clés]
Vous devez biensûr remplacer [mot clés] (y compris les crochets) par le nom de l'artiste ou de la chanson que vous cherchez
De cette façon Google ne vous donnera que les fichiers mp3 téléchargeables. Il faut cependant faire attention car beaucoup de sites créent de fausses pages qui donne l'impression qu'il s'agit d'une liste de fichiers mp3 mais en fait ce sont des liens vers de la publicité.
Amusez-vous!
dimanche 23 août 2009
Liste des villes du Québec au format XML - Base de données avec coordonnées géographiques(latitude/longitude)
Lors du développement de Écoutez.ca nous avons développé une liste de toutes les villes du Québec avec leur régions administratives. Comme je crois beaucoup au web ouvert, j'ai décidé de rendre accessible cette liste pour les webmestres et programmeurs web qui voudraient l'utiliser pour leur site. Pour le moment, je vous fournis 2 fichiers XML. Le premier contient la liste des villes seulement et le deuxième la liste des villes avec leur région et le positionnement géographique(latitude et longitude, disponible pour toutes les villes, merci à Simon Pouliot). Vous pouvez facilement utiliser ces fichiers XML pour entrer l'information dans une base de données MySQL ou pour créer un SELECT BOX dans un formulaire HTML.
Le premier fichier est organisé de cette façon (Téléchargez ce fichier):
<?xml version='1.0' encoding='utf-8'?>
<cities>
<city>Abercorn</city>
</cities>
Voici un exemple en PHP pour afficher une SELECT BOX à partir du fichier XML 1 :
Avec SimpleXML :
<?php
$xml = simplexml_load_file("/chemin/vers/fichier/villes_du_quebec.xml");
echo "<select name='city'>";
foreach($xml->city as $city) {
echo "<option>".$city."</option>";
}
echo "</select>";
?>
Sans SimpleXML
<?php
$xml = "";
$f = fopen( '/chemin/vers/fichier/villes_du_quebec.xml', 'r' );
while( $data = fread( $f, 4096 ) ) { $xml .= $data; }
fclose( $f );
preg_match_all( "/\\<\!\[CDATA\[(.*?)\]\]\>\<\/city\>/s",
$xml, $cities );
echo "<select name='city'>";
foreach( $cities[1] as $city ) {
echo "<option>".$city."</option>";
}
echo "</select>";
?>
Le deuxième fichier contient les coordonnées géographiques des villes. Il s'organise de la façon suivante : (Téléchargez ce fichier)
<?xml version='1.0' encoding='utf-8'?>
<cities>
<city>
<name>Abercorn</name>
<region>Montérégie</region>
<lat>45.032999</lat>
<lng>-72.663057</lng>
</city>
</cities>
Crédits
David Mongeau-Petitpas
Benoit Tétreault
Simon Pouliot
Liste des villes du Québec au format XML par Ecoutez.ca est mis à disposition selon les termes de la licence Creative Commons Paternité-Partage des Conditions Initiales à l'Identique 2.5 Canada.
Basé(e) sur une oeuvre à www.ecoutez.ca.
jeudi 30 octobre 2008
Petit cours de balises HTML et de CSS pour les pages MySpace et les réseaux sociaux
HTML
Le langage HTML est à la base de TOUTES les pages web que vous visitez, même les sites en FLASH. Ce langage est constitué de balises qui organise le texte ou l'informations (Images, vidéos, etc...). Un document HTML typique se constitue de la façon suivante :
<html>
<head>
<title>Le titre de votre page</title>
</head>
<body>
Contenu de votre page web...
</body>
</html>
La compréhension de la structure d'un document HTML n'est pas très importante lorsqu'on ne créé pas une page en totalité. Le plus important à retenir est que le langage HTML se compose de balises (ex:<body></body>) et que celles-ci doivent être refermées (ex:<div>Bonjour) (ex:<div>Bonjour</div>). Vous aurez compris que la balise de fermeture comprend un «/». Ces balises ne sont bien entendue pas visibles par l'utilisateur final qui consulte la page avec un navigateur comme Firefox.
Balises HTML utiles pour les pages MySpace:
<a href="http://www.ecoutez.ca">exemple de texte</a> : créé un lien vers http://www.ecoutez.ca avec le texte «exemple de texte»
<img src="http://www.ecoutez.ca/image.jpg" /> : affiche l'image http://www.ecoutez.ca/image.jpg (cette balise n'a pas besoin d'une balise de fermeture mais demande un «/» avant la fin.
<p>exemple de texte</p> : délimite un paragraphe
<div>exemple de texte</div> : délimite une boîte de texte (avec changement de ligne après)
<span>exemple de texte</span> : délimite une boîte de texte (sans changement de ligne)
La différence entre une balise <span></span> et <div></div> est le changement de ligne après la balise. Si vous voulez isoler un mot dans une phrase vous devez utiliser la balise <span></span> car elle ne brisera pas votre phrase avec un changement de ligne.
<span>Bonjour,</span> ce blog ...
Affiche :
Bonjour, ce blog ...
<div>Bonjour,</div> ce blog ...
Affiche :
Maintenant que vous connaissez les principales balises HTML, il est temps de leur trouver une utilité!
CSS
Le CSS est un langage ajouté au HTML qui permet de définir le style de votre page. Vous pouvez ajouter à toutes vos balises HTML un paramètre style="" contenant les informations de mise en forme (ex:<div style="font-weight:bold;">Bonjour</div> affiche le texte contenu dans la balise <div></div> en gras)
Voici les principaux paramètres CSS:
Détails | Valeurs |
font-size | Définir la taille du texte Valeurs possibles: <chiffre> px ex: font-size:14px; |
font-weight | Définir l'épaisseur du texte Valeurs possibles: normal bold ex: font-weight:bold; |
color | Définir la couleur du texte Valeurs possibles: #<valeur hexadécimale> <nom de la couleur> ex: color:#ffffff; ex: color:red; |
background | Définir l'arrière-plan Valeurs possibles: #<valeur hexadécimale> <nom de la couleur> url(<adresse de l'image>) no-repeat ex: background:#ffffff; ex: background:red; ex: background:url(http://www.ecoutez.ca/image.jpg) no-repeat; |
Je vais ajouter peu à peu d'autres paramètres CSS et d'autres balises HTML.
lundi 27 octobre 2008
Un petit truc pour éviter que votre page MySpace EXPLOSE!
En me promenant sur MySpace pour chercher des groupes du Québec pour Écoutez.ca, j'ai remarqué une erreur d'affichage sur la plupart des pages MySpace. Beaucoup utilisent des widgets Flash ou des vidéos YouTube sur leur page. Le chargement peut parfois être long et les widgets se mettent à apparaître un après l'autre ce qui a pour conséquence d'agrandir la page et de déplacer le lien où vous alliez cliquer. Voici la solution pour que votre page s'ouvre avec la bonne taille. Fini les liens qui se retrouvent 1 km plus bas après le chargement de vos widgets. Oui oui, rien de moins!
Donc, je commence! Vous devez aller dans «modifier votre profil» et repérer tous les éléments Flash(les balises commençant par <object> et se finissant par </object>). Dans ces balises se trouvent les dimensions finales de l'élément Flash.
Voici un exemple avec le code d'un player YouTube :
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/ZJhIYXmZEFs&hl=fr&fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/ZJhIYXmZEFs&hl=fr&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object>
Largeur : 425
Hauteur : 344
Il vous suffit donc d'utiliser ces dimensions pour entouré votre élément Flash avec une balise <div> à grandeur fixe. Attention, il est important d'entourer la balise <object> seulement et de ne pas y inclure d'autres balises <div> ou du texte.
<div style="width:425px; height:344px;">
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/ZJhIYXmZEFs&hl=fr&fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/ZJhIYXmZEFs&hl=fr&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object>
</div>
N'oubliez pas d'ajouter px après les chiffres.
Voilà c'est fait, votre page est beaucoup plus agréable à visiter!
