Si le format de diffusion Atom est assez connu, comme alternative à RSS, le protocole AtomPub l'est un peu moins. La littérature sur le sujet est abondante, mais comme je n'ai pas trouvé de résumé succinct je vais m'y essayer.
les petits tutos à toto
vendredi 2 octobre 2009
Introduction à Atom et AtomPub
Par Clochix le vendredi 2 octobre 2009, 16:48
vendredi 4 septembre 2009
Utilisation des enregistrements de services du DNS
Par Clochix le vendredi 4 septembre 2009, 13:01
Brève introduction sur une fonctionnalité encore peu utilisée des serveurs DNS, les enregistrements de services, et bribes de réflexion sur une possible extension.
jeudi 3 septembre 2009
Mumuse avec les Regex
Par Clochix le jeudi 3 septembre 2009, 12:55
Un des mérites de PHP 5.3, à mes yeux, est de rendre obsolètes les
expressions régulières POSIX. En effet, PHP disposait jusqu'à
présent de deux bibliothèques d'expressions rationnelles, l'une inspirée de POSIX, l'autre de PERL. Ces deux
bibliothèques proposaient des fonctions similaires, mais en utilisant chacune
une syntaxe spécifique. C'est très bien d'avoir le choix, mais inconstant comme
je suis, je n'avais jamais réussi à choisir l'une ou l'autre et passais mon
temps à mélanger les syntaxes. C'est à présent fini, on peut dire adieu à
ereg, split et compagnie[1], et relire le manuel des expressions PCRE,
qui contient de nombreux trésors. Ces astuces n'ont sont pas, puisque tout est
dans le manuel, je me contente de vous en rappeler l'existence.
Notes
[1] commencez déjà à faire la chasse dans vos programmes, pour éviter les messages annonçant leur dépréciation lorsque vous passerez à PHP 5.3
samedi 22 août 2009
Utiliser les templates avec Eclipse et PHP
Par Clochix le samedi 22 août 2009, 13:21
Pascal Martin a commencé il y a peu à collecter divers trucs et astuces d'utilisation d'Eclipse[1].
Il est une fonctionnalité très pratique, mais que j'utilise trop peu : les modèles de code (template). Je les utilise peu par méconnaissance, et par flemme de les adapter à mes besoins. Mais parfois la flemme de faire un copier-coller est encore plus forte, et je prend la peine de créer un modèle pour une portion de code que j'utilise régulièrement. C'est simple, pratique, et fonctionne à l'identique que vous utilisiez PDT ou PHPEclipse.
Pour accéder aux modèles : Window / Preference / PHP / Editor /
Templates avec PDT ou Window / Preferences / PHPEclipse / PHP /
Template avec PHPEclipse.
Un modèle se compose d'un nom, correspondant à la chaîne à taper pour
l'insérer, d'un contexte (html, php ou
phpdoc) et du modèle lui-même. Dans ce modèle vous pouvez utiliser
des variables, soit prédéfinies (par exemple le nom du fichier courant, la
date...), soit que vous renseignerez.
Un exemple étant plus parlant, voici un modèle de création de getter-setter:
/**
* Get ${comment}
*
* @return ${type}
*/
public function get${Var}() {
return $$this->${var};
}
/**
* Set ${comment}
*
* @param ${type} ${var} ${comment}
*
* @return ${class} this
*/
public function set${Var}($$${var}) {
$$this->${var} = $$${var};
return $$this;
}
Les ${toto} correspondent à des variables, $$ est une variable prédéfinie pour insérer un dollar.
Pour appeler ce modèle, saisissez son nom et déclenchez l'assistant de
contenu (généralement Ctrl+Espace). Un formulaire est alors
inséré, dans lequel vous saisissez les différentes variables. On passe d'un
champ à un autre via la touche tab. Dans l'exemple ci-dessus, le
curseur va être positionné sur ${comment}. Une fois saisi, la
variable sera remplacée dans tout le modèle.
Un des avantages des modèles est de simplifier le respect de normes de programmation. Si au sein d'une équipe tout le monde utilise les mêmes templates pour créer une nouvelle classe par exemple, avec tous les PHPDoc qui vont bien, la présentation du code sera plus homogène. A chacun et chacune d'adapter à sa pratique.
Astuce supplémentaire : en complément à l'assistant de
contenu, vous pouvez aussi utiliser la complétion de mots, accessible via
Alt+/ (plusieurs fois de suite pour voir les différentes
propositions) qui se base je crois sur l'ensemble des mots du fichier. Pratique
lorsque l'assistant de contenu n'est pas dispo (dans un commentaire) ou à la
ramasse (j'ai du mal avec PHPEclipse et les constantes de classe).
Notes
[1] n'hésitez pas à aller les enrichir
mardi 10 février 2009
htop et compagnie
Par Clochix le mardi 10 février 2009, 12:50
htop est un outil
bien connu permettant d'afficher en temps réel dans une console l'activité de
votre système. C'est une version un peu améliorée du vénérable
top. Si comme moi vous n'aviez jamais lu la doc, voici quelques
fonctionnalités que vous ne connaissiez peut-être pas.
lundi 9 février 2009
Présentation de jQuery
Par Clochix le lundi 9 février 2009, 00:18
A la demande de camarades de bac à sable, je poste ici une petite introduction à jQuery que j'avais faite il y a quelques mois.
mardi 26 août 2008
Sélectionner des éléments en JavaScript
Par Clochix le mardi 26 août 2008, 08:37
Jusqu'à présent, les possibilités de sélectionner directement des élément d'une page web en JavaScript étaient plutôt limitées. On ne disposait que de:
- document.getElementById : en fonction de l'attribut id de l'élément, censé être unique à l'intérieur du document
- document.getElementsByName : en fonction de l'attribut name
- document.getElementsByTagName : en fonction de la balise
- element.getElementsByTagName : retourne les descendants d'un élément en fonction de leur balise.
- document.getElementsByClassName : en fonction de la classe (attention, cette fonction n'a pas encore été normalisée par le W3C, ce n'est qu'une proposition du WHATWG, elle n'est donc peut-ête pas disponible dans tous les navigateurs.)
Et c'est tout. Pour tout le reste, il fallait soit se promener dans le document avec les fonctions de parcours d'arbre du DOM (père, fils, frères), soit utiliser XPath, qui est plus lourd et moins simple à appréhender.
Heureusement, the times they are a-changin', et le W3C travaille en ce moment à l'élaboration d'une spécification permettant de sélectionner des éléments au moyen des sélecteurs CSS, c'est à dire de la syntaxe utilisée pour déterminer à quels éléments s'applique un style[1]. Cette spécification crée deux nouvelles fonctions, applicables soit à l'ensemble du document, soit à un seul élément. La première, querySelector(), ramène le première élément correspondant au sélecteur, dans le document ou parmi les descendants de l'élément à laquelle elle est appliquée. La seconde, querySelectorAll(), ramène tous les éléments. Il devient ainsi aisé de sélectionner des éléments en utilisant de nombreux critères.
WebKit implémente déjà cette interface depuis quelques mois, elle a atterri il y a quelques jours dans Firefox 3.1, Opera est OK aussi et, oh mon Richard, ça sera même dans IE 8, je n'en reviens pas !!! (je n'ai par contre pas trouvé l'info pour W3)
- Oui mais, mes utilisateurs n'utilisent pas de navigateurs modernes,
qu'est que je peux faire ?
- changez d'utilisateurs ! A défaut, la plupart des bibliothèques et des
frameworks javascript implémentent des fonctions similaires... non, oubliez
toutes les librairies et les framework JavaScript, tout cela c'était avant
John Resig, John Resig, l'homme
qui ne dort jamais, qui le vendredi participe au commit du
nouveau compilateur JavaScript à la volée de Firefox, le lundi livre une
nouvelle
version de l'indispensable Firebug, et entre les deux, s'ennuyant sans
doute un peu, écrit Sizzle une nouvelle librairie de quelques centaines de lignes
qui implémente le querySelectorAll dans tous les navigateurs qui ne le
possèdent pas, et avec des performances laissant sur place toutes les
précédentes implémentations. Si la programmation était discipline olympique,
John mériterait assurément plus d'une médaille, mais heureusement nous n'en
sommes pas encore là 
Notes
[1] cf mon rappel sur tous les sélecteurs CSS disponibles