Clochix

Aller au contenu | Aller au menu | Aller à la recherche

les petits tutos à toto

Fil des billets - Fil des commentaires

lundi 29 novembre 2010

Ouvrez, ouvrez la cage aux données

Le collectif Regards Citoyens organisait le 26 Novembre à la Cantine une table ronde consacrée à l'ouverture des données publique (#OpenData). L'occasion de lancer une "chasse aux données" (#DataHunt), initiative citoyenne pour répertorier les jeux de données déjà disponibles, et un site : http://www.nosdonnees.fr/. Une bonne occasion d'essayer de présenter à mes chats cette notion d'OpenData dont ils vont sans doute entendre parler de plus en plus dans les prochains mois.

Lire la suite...

vendredi 2 octobre 2009

Introduction à Atom et AtomPub

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.

Lire la suite...

vendredi 4 septembre 2009

Utilisation des enregistrements de services du DNS

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.

Lire la suite...

jeudi 3 septembre 2009

Mumuse avec les Regex

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

Lire la suite...

samedi 22 août 2009

Utiliser les templates avec Eclipse et PHP

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

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.

Lire la suite...

lundi 9 février 2009

Présentation de jQuery

A la demande de camarades de bac à sable, je poste ici une petite introduction à jQuery que j'avais faite il y a quelques mois.

Lire la suite...

mardi 26 août 2008

Sélectionner des éléments en JavaScript

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:

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