<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://blog.sorcellerieweb.net/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>Sorcellerie Web - Tag - pratique</title>
  <link>http://blog.sorcellerieweb.net/</link>
  <description>Bienvenue dans l'antre d'un sorcier du web. Ici vous seront dévoilées les formules les plus secrètes, les potions les plus goutues, les sorts les plus faramineux pour en mettre plein la vue à vos collègues nerds avec votre sorcellerie web niveau 36. Ou au moins à mettre en ligne un gif animé.</description>
  <language>fr</language>
  <pubDate>Thu, 28 Aug 2008 11:22:26 +0200</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Ali Baba et les 40 mauvaises pratiques du programmeur (PHP)</title>
    <link>http://blog.sorcellerieweb.net/post/2008/02/12/Ali-Baba-et-les-40-mauvaises-pratiques-du-programmeur-PHP</link>
    <guid isPermaLink="false">urn:md5:a5669d17509f7bda50723b8ce730483e</guid>
    <pubDate>Thu, 14 Feb 2008 18:39:00 +0100</pubDate>
    <dc:creator>J.Ducastel</dc:creator>
        <category>Bave de crapaud</category>
        <category>php</category><category>pratique</category>    
    <description>&lt;p&gt;Je suis tombé via le &lt;a href=&quot;http://www.galaxie-php.info/&quot; hreflang=&quot;fr&quot;&gt;planet PHP&lt;/a&gt; sur une liste de &lt;a href=&quot;http://reinholdweber.com/?p=19&quot; hreflang=&quot;en&quot;&gt;40 points qui font un mauvais programmeur PHP&lt;/a&gt;. Je vais
essayer de la traduire et de la commenter.&lt;/p&gt;    &lt;dl&gt;
&lt;dt&gt;1 - Ne pas commenter son code proprement suivant un standard comme &lt;a href=&quot;http://www.phpdoc.org/&quot; hreflang=&quot;en&quot;&gt;phpDoc&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;C'est le service minimum en matière de commentaires. Il est vital de savoir
ce qu'une fonction attend en parametre et ce qu'elle retourne. De plus, cela
permet la génération d'une documentation; et certains éditeurs tels que
&lt;a href=&quot;http://www.activestate.com/komodo_ide&quot; hreflang=&quot;en&quot;&gt;Komodo edit&lt;/a&gt;
s'en servent pour afficher une aide en ligne lorsque vous y faites appel .&lt;/dd&gt;
&lt;dt&gt;2 - Ne pas voir le bénéfice d'un bon outil de développement intégré tel que
Zend Studio ou Eclipse.&lt;/dt&gt;
&lt;dd&gt;Ces usines à gaz ? Non, désolé.&lt;/dd&gt;
&lt;dt&gt;3 - N'avoir jamais utilisé d'outil de contrôle de versions tel que &lt;a href=&quot;http://subversion.tigris.org/&quot; hreflang=&quot;en&quot;&gt;Subversion&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;Plus que la qualité du programmeur, je crois que c'est surtout une question
de projet. Pour une appli professionnelle ou un projet open source, c'est
vital, mais on n'a pas toujours un serveur subversion sous la main pour un site
perso....&lt;/dd&gt;
&lt;dt&gt;4 - Ne pas adopter de convention de codage et de nommage et s'y tenir, au
moins à l'échelle d'un projet.&lt;/dt&gt;
&lt;dd&gt;Qui ne s'est pas déjà arraché les cheveux avec le nom des fonctions natives
php (avec ou sans underscore), et pire l'ordre des arguments qui varie d'une
fonction à l'autre ?&lt;/dd&gt;
&lt;dt&gt;5 - Ne pas adopter une méthodologie constante&lt;/dt&gt;
&lt;dd&gt;Faudrait déjà en avoir une. Personnellement, je suis plutôt habitué à
&lt;a href=&quot;http://www.cafenware.org/la-rache&quot; hreflang=&quot;fr&quot;&gt;La Rache&lt;/a&gt;.&lt;/dd&gt;
&lt;dt&gt;6 - Ne pas échapper ou valider les variables pour les requêtes SQL&lt;/dt&gt;
&lt;dd&gt;Là c'est plus de la mauvaise programmation, c'est l'amour du risque.&lt;/dd&gt;
&lt;dt&gt;7 - Ne pas planifier l'application avant de commencer à coder.&lt;/dt&gt;
&lt;dd&gt;Dans un monde idéal, les utilisateurs sauraient ce qu'ils veulent les
spécifications ne changeraient pas tous les trois mois. Dans un monde
idéal.&lt;/dd&gt;
&lt;dt&gt;8 - Ne pas pratiquer le développement dirigé par les tests.&lt;/dt&gt;
&lt;dd&gt;Les test unitaires, c'est bon. Mangez-en.&lt;/dd&gt;
&lt;dt&gt;9 - Désactiver l'affichage des erreurs&lt;/dt&gt;
&lt;dd&gt;La première fois qu'on l'active, ça fait mal. Mais après, c'est tellement
bon. Et surtout, cela permet généralement de préparer en douceur la prochaine
mise à jour de PHP.&lt;/dd&gt;
&lt;dt&gt;10 - Ne pas voir les bénéfices d'un débogueur&lt;/dt&gt;
&lt;dd&gt;Il n'y a qu'un débogueur ici, c'est moi. Sans rire, pour un langage web
interprété, le débogueur, c'est un petit coup de rafraichissement de la page.
Non ?&lt;/dd&gt;
&lt;dt&gt;11 - Ne pas refactoriser son code&lt;/dt&gt;
&lt;dd&gt;On peut faire autrement ? Mon nom est Refactoring. Constant
Refactoring.&lt;/dd&gt;
&lt;dt&gt;12 - Ne pas séparer les couches de traitement en utilisant un motif tel que
MVC.&lt;/dt&gt;
&lt;dd&gt;Ou MVT. Elementaire, mon cher Django.&lt;/dd&gt;
&lt;dt&gt;13 - Ne pas connaitre les acronymes KISS, DRY, MVC, OOP, REST&lt;/dt&gt;
&lt;dd&gt;Mouais, pas besoin de connaitre les acronymes pour pratiquer.&lt;/dd&gt;
&lt;dt&gt;14 - Ne pas retourner de contenu mais faire des print() depuis les
fonctions et classes&lt;/dt&gt;
&lt;dd&gt;Autrement dit, éviter les effets de bord. Et appliquer le principe de la
séparation des couches de traitement.&lt;/dd&gt;
&lt;dt&gt;15 - Ne pas connaitre les avantages des tests unitaires et des tests en
général&lt;/dt&gt;
&lt;dd&gt;On avait pas dit DRY ? cf #8&lt;/dd&gt;
&lt;dt&gt;16 - Retourner du html au lieu de données / objets&lt;/dt&gt;
&lt;dd&gt;Pareil, voir #14&lt;/dd&gt;
&lt;dt&gt;17 - Coder en dur les messages et les parametres de configuration&lt;/dt&gt;
&lt;dd&gt;Coder en dur, c'est mal&lt;/dd&gt;
&lt;dt&gt;18 - Ne pas optimiser ses requetes SQL&lt;/dt&gt;
&lt;dd&gt;Je veux bien, mais qui le fait vraiment au lieu de juste le prétendre
?&lt;/dd&gt;
&lt;dt&gt;19 - Ne pas utiliser __autoload()&lt;/dt&gt;
&lt;dd&gt;J'ai la malchance de maintenir des applications PHP4. Mais j'ai mieux
qu'autoload : &lt;a href=&quot;http://webappkit.net&quot;&gt;Webappkit&amp;quot;&lt;/a&gt;&lt;/dd&gt;
&lt;dt&gt;20 - Ne pas autoriser la gestion intelligente des erreurs&lt;/dt&gt;
&lt;dd&gt;???&lt;/dd&gt;
&lt;dt&gt;21 - Utiliser GET au lieu de POST pour toutes les actions de
destruction&lt;/dt&gt;
&lt;dd&gt;Ca, c'est pour les applications accessibles aux moteurs de recherche. Qui
suivront tous les liens en GET qu'ils trouveront. Et ne savent pas si cela
correspond à un document ou une action sur un document. Trop dur pour
vous.&lt;/dd&gt;
&lt;dt&gt;22 - Ne pas savoir se servir des expressions régulières&lt;/dt&gt;
&lt;dd&gt;Qui voudrait se priver de si belles migraines ?&lt;/dd&gt;
&lt;dt&gt;23 - N'avoir jamais entendu parler d'injection SQL ou de scripting
multisites&lt;/dt&gt;
&lt;dt&gt;24 - Ne pas permettre de configurer simplement ses classes, que ce soit par
arguments passés au constructeur, via des méthodes dédiées ou des
constantes&lt;/dt&gt;
&lt;dd&gt;Je suis moi-même un fanatique de la configurabilité. Un bon script
générique avec une configuration spécifique peut parfois permettre de
s'économiser bien des lignes de code. C'est ce qui a présidé au concept des
Outils (&lt;em&gt;Tools&lt;/em&gt;) pour Webappkit.&lt;/dd&gt;
&lt;dt&gt;25 - Ne pas connaitre les bénéfices et limitations de la programmation
orienté objet&lt;/dt&gt;
&lt;dd&gt;J'ai du mal à me souvenir de ma brève période procédurale puis
fonctionnelle...&lt;/dd&gt;
&lt;dt&gt;26 - Mal utiliser la POO&lt;/dt&gt;
&lt;dt&gt;27 - Penser que du code réutilisable implique du code POO&lt;/dt&gt;
&lt;dd&gt;Parfois une bonne fonction peut suffire, mais ça devient rare...&lt;/dd&gt;
&lt;dt&gt;28 - Mal choisir ses valeurs par défaut&lt;/dt&gt;
&lt;dt&gt;29 - Ne pas avoir un unique fichier de configuration&lt;/dt&gt;
&lt;dd&gt;Pas d'accord. Les premières versions de webappkit fonctionnaient comme cela
et pour de grosses applis, cela devient un enfer à maintenir. D'autant que tout
n'est pas forcément utilisé et ralentit donc inutilement le tout.&lt;/dd&gt;
&lt;dt&gt;30 - Croire masquer le contenu d'un script en le renommant .inc au lieu de
.php&lt;/dt&gt;
&lt;dt&gt;31 - Ne pas utiliser une couche d'abstraction de base de données.&lt;/dt&gt;
&lt;dd&gt;Je plaide coupable. Je suis masochiste et je préfère faire mon SQL à la
main.&lt;/dd&gt;
&lt;dt&gt;32 - Se répéter. Si vous devez faire du copier-coller de code, il y a sans
doute une erreur de design.&lt;/dt&gt;
&lt;dt&gt;33 - don't make a function/class/method do just one thing and don't make
them interact.&lt;/dt&gt;
&lt;dd&gt;Moi pas compris. Toi parler moi ?&lt;/dd&gt;
&lt;dt&gt;34 - Ne pas se servir des mécanismes objets tels qu'interface, héritage
multiple et (modifeurs d'accès ?)&lt;/dt&gt;
&lt;dt&gt;35 - Ne pas optimiser l'architectire de son application en suivant les
motifs de conceptions éprouvés.&lt;/dt&gt;
&lt;dt&gt;36 - Ne pas autoriser les chemins relatifs&lt;/dt&gt;
&lt;dd&gt;Les chemins absolus, c'est le mal. Vous brulerez en enfer pour cela.&lt;/dd&gt;
&lt;dt&gt;37 - Polluer l'espace de nommage global en en préfixant pas ses noms de
fonctions.&lt;/dt&gt;
&lt;dt&gt;38 - Ne pas autoriser le prefixage des tables de sa base de données&lt;/dt&gt;
&lt;dt&gt;39 - Utiliser un moteur de gabarits séparé&lt;/dt&gt;
&lt;dd&gt;Hein ? Quoi ? Qu'est-ce qu'il entend par &amp;quot;séparé&amp;quot; ?&lt;/dd&gt;
&lt;dt&gt;40 - Ne pas s'inspirer des frameworks PHP existants&lt;/dt&gt;
&lt;dd&gt;Les frameworks Python, ça compte ?&lt;/dd&gt;
&lt;/dl&gt;</description>
    
    
    
          <comments>http://blog.sorcellerieweb.net/post/2008/02/12/Ali-Baba-et-les-40-mauvaises-pratiques-du-programmeur-PHP#comment-form</comments>
      <wfw:comment>http://blog.sorcellerieweb.net/post/2008/02/12/Ali-Baba-et-les-40-mauvaises-pratiques-du-programmeur-PHP#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.sorcellerieweb.net/feed/rss2/comments/208332</wfw:commentRss>
      </item>
    
  <item>
    <title>Fichiers de configuration</title>
    <link>http://blog.sorcellerieweb.net/post/2007/12/07/Fichiers-de-configuration</link>
    <guid isPermaLink="false">urn:md5:6141a8df36266042717321c4a8302074</guid>
    <pubDate>Fri, 07 Dec 2007 16:27:00 +0100</pubDate>
    <dc:creator>J.Ducastel</dc:creator>
        <category>Formules</category>
        <category>ini</category><category>php</category><category>pratique</category><category>python</category><category>xml</category><category>yaml</category>    
    <description>&lt;p&gt;&lt;img src=&quot;http://blog.sorcellerieweb.net/public/img/advanced-directory.png&quot; alt=&quot;configuration-48x48&quot; style=&quot;float: left; margin: 0 1em 1em 0;&quot; /&gt;Lorsqu'on développe une application
ou un composant de manière à pouvoir le réutiliser, il est nécessaire de
pouvoir définir une configuration d'environnement de manière séparée du code.
Cela peut être fait par inclusion d'un fichier se contentant de déclarer un
suite de variables ou de constantes dans le language de l'application (c'est le
cas des fichiers urls.py et settings.py de Django). Mais il est généralement
préférable d'utiliser un format qui puisse être lu et modifié par un
non-programmeur.&lt;/p&gt;    &lt;h3&gt;Le format INI&lt;/h3&gt;
&lt;p&gt;A la fois très simple et très largement utilisé, le &lt;a href=&quot;http://fr.wikipedia.org/wiki/Fichier_INI&quot;&gt;format INI&lt;/a&gt; permet de définir des
paires clefs/valeur, éventuellement organisées par sections. Il est
suffisamment intuitif pour être modifié par quelqu'un qui n'en connait pas la
syntaxe.&lt;/p&gt;
&lt;p&gt;C'est le format de configuration de PHP, et une &lt;a href=&quot;http://fr.php.net/manual/fr/function.parse-ini-file.php&quot;&gt;fonction native&lt;/a&gt;
permet de lire un tel fichier et de récupérer directement les données stockées
dans un tableau associatif, à deux dimensions en activant le support des
sections.&lt;/p&gt;
&lt;p&gt;Python dispose du module &lt;a href=&quot;http://docs.python.org/lib/module-ConfigParser.html&quot;&gt;ConfigParser&lt;/a&gt;, qui
supporte une syntaxe un peu plus évoluée.&lt;/p&gt;
&lt;h3&gt;Le format XML&lt;/h3&gt;
&lt;p&gt;Le patriarche des formats de structuration et d'échange de données. Plus
qu'un format de fichier, &lt;a href=&quot;http://fr.wikipedia.org/wiki/Xml&quot;&gt;XML&lt;/a&gt; est
une grammaire dont dérivent des zillions de syntaxes, qu'elles soient
standardisées ou propriétaires. Très largement utilisé pour la configuration
d'application, ce n'est pourtant pas forcément des plus simples à éditer. De
plus, il est généralement assez lourd à manipuler en programmation, ce qui
n'est pas terrible en termes de performance. Surtout dans le cadre d'une
application web, si celle-ci doit lire le fichier à chaque requete...&lt;/p&gt;
&lt;h3&gt;Le format YAML&lt;/h3&gt;
&lt;p&gt;Si vous avez besoin de données de configuration plus élaborées, notamment
s'il vous faut plus de deux niveaux de données ou des textes sur plusieurs
lignes, il y a le &lt;a href=&quot;http://fr.wikipedia.org/wiki/Yaml&quot;&gt;format YAML&lt;/a&gt;.
Celui-ci se veut une alternative à XML, qui soit à la fois plus concise (donc
plus légère à stocker) et plus lisible pour un être humain. Ce qui en fait un
candidat idéal pour des fichiers de configuration. Comme en Python,
l'indentation y joue un rôle clef.&lt;/p&gt;
&lt;p&gt;Contrairement à INI, il n'est pas supporté nativement par PHP, mais la
&lt;a href=&quot;http://spyc.sourceforge.net/&quot;&gt;librairie Spyc&lt;/a&gt; permet de convertir
ces fichiers en tableaux de données et inversement.&lt;/p&gt;
&lt;p&gt;Python dispose de la librairie &lt;a href=&quot;http://pyyaml.org/&quot;&gt;PyYaml&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.sorcellerieweb.net/post/2007/12/07/Fichiers-de-configuration#comment-form</comments>
      <wfw:comment>http://blog.sorcellerieweb.net/post/2007/12/07/Fichiers-de-configuration#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.sorcellerieweb.net/feed/rss2/comments/183556</wfw:commentRss>
      </item>
    
  <item>
    <title>Petit guide à l'usage du developpeur agile</title>
    <link>http://blog.sorcellerieweb.net/post/2007/11/07/Petit-Guide-a-lusage-du-developpeur-agile</link>
    <guid isPermaLink="false">urn:md5:af2f4075dbf7490ccc335b57d40d8922</guid>
    <pubDate>Fri, 23 Nov 2007 10:16:00 +0100</pubDate>
    <dc:creator>J.Ducastel</dc:creator>
        <category>Bave de crapaud</category>
        <category>livre</category><category>pratique</category><category>python</category>    
    <description>    &lt;p&gt;&lt;a href=&quot;http://programmation-python.org/guide&quot;&gt;&lt;img src=&quot;http://blog.sorcellerieweb.net/public/img/.python-guide-developpeur-agile_t.jpg&quot; alt=&quot;python-guide-developpeur-agile.png&quot; style=&quot;float: left; margin: 0 1em 1em 0;&quot; /&gt;&lt;/a&gt; Il etait déjà dans ma liste Amazon,
mais &lt;a href=&quot;http://www.biologeek.com/journal/index.php/envie-de-developper-agilement-en-python-suivez-le-guide&quot; hreflang=&quot;fr&quot;&gt;une critique de BioloGeek&lt;/a&gt; m'a décidé à l'acheter sur le
champ. Et je ne regrette pas. Plus qu'un ouvrage sur Python, il traite pour
l'essentiel de méthodologie et de bonnes pratiques de développement. Beaucoup
de conseils sont génériques et transposables à d'autres language comme le
PHP.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.sorcellerieweb.net/post/2007/11/07/Petit-Guide-a-lusage-du-developpeur-agile#comment-form</comments>
      <wfw:comment>http://blog.sorcellerieweb.net/post/2007/11/07/Petit-Guide-a-lusage-du-developpeur-agile#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.sorcellerieweb.net/feed/rss2/comments/178152</wfw:commentRss>
      </item>
    
  <item>
    <title>Astuces Firefox</title>
    <link>http://blog.sorcellerieweb.net/post/2005/02/18/Astuces-Firefox</link>
    <guid isPermaLink="false">urn:md5:15e3f46c0e0aba569afbbd8ac960f0c1</guid>
    <pubDate>Fri, 18 Feb 2005 15:51:00 +0100</pubDate>
    <dc:creator>J.Ducastel</dc:creator>
        <category>Artefacts</category>
        <category>firefox</category><category>pratique</category>    
    <description>&lt;p&gt;J'imagine que la plupart de mes lecteurs connaissent et utilisent déjà
&lt;a href=&quot;http://www.mozilla-europe.org/fr/products/firefox/&quot; hreflang=&quot;fr&quot;&gt;Firefox&lt;/a&gt;, le navigateur open-source issu de &lt;a href=&quot;http://www.mozilla-europe.org/fr/products/mozilla1x/&quot; hreflang=&quot;fr&quot;&gt;Mozilla&lt;/a&gt; et &lt;a href=&quot;http://www.netscape.fr/&quot; hreflang=&quot;fr&quot; rel=&quot;nofollow&quot;&gt;Netscape&lt;/a&gt;. Plus sûr, plus fonctionnel, plus conforme aux &lt;a href=&quot;http://blog.sorcellerieweb.net/post/2005/02/18/openweb.org.eu&quot;&gt;standards du web&lt;/a&gt;, plus &lt;a href=&quot;http://extensions.geckozone.org/Firefox/&quot; hreflang=&quot;fr&quot;&gt;extensible&lt;/a&gt;, le
navigateur du &lt;a href=&quot;http://quizzgeek.net&quot; hreflang=&quot;fr&quot;&gt;geek&lt;/a&gt;. Je viens
par hasard de découvrir une fonctionnalité qui &lt;em&gt;roxe&lt;/em&gt; et j'en suis tout
guilleret, je me suis dit que j'allais noter ici quelques astuces d'utilisation
à destination des novices ou moins novices. Il existe bien &lt;a href=&quot;http://www.geckozone.org/articles/2005/01/16/75-guide-d-utilisation-de-firefox-1-0-pour-debutants-partie-1-13&quot; hreflang=&quot;fr&quot;&gt;un guide d'utilisation&lt;/a&gt;, mais encore incomplet.&lt;/p&gt;    &lt;h3&gt;signets&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;La découverte du jour : à la longue, les bookmarks s'accumulent et
deviennent de moins en moins accessibles dans les dossiers et sous-dossiers, il
faut faire faire une bonne balade à sa souris avant de retrouver celui qu'on
cherche, surtout si on ne sait plus où il se trouve. Tadaam ! CTRL+B ouvre le
panneau latéral des signets (&lt;strong&gt;B&lt;/strong&gt;ookmarks) et met le focus sur un
champ de recherche. Au fur et à mesure de la frappe, la liste des signets se
réduit aux résultats de la recherche. Helas, la recherche ne porte que sur le
nom du signet, pas sur les mots-clefs ni la description associés.&lt;/li&gt;
&lt;li&gt;La barre personnelle : il s'agit d'un dossier spécial au sein des signets
qui peut être affiché comme une barre d'outils, et ainsi rendre les signets
couramment visités plus accessibles. Il est également possible d'y mettre des
dossiers de signets.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://extensions.geckozone.org/BookmarksSynchronizer/&quot; hreflang=&quot;fr&quot;&gt;Bookmarks Synchronizer&lt;/a&gt; : cette extension permet de synchroniser les
signets avec un fichier de stockage accessible via &lt;acronym title=&quot;File Transfert Protocol&quot;&gt;FTP&lt;/acronym&gt;, très pratique si vous utilisez
plusieurs ordinateurs.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://extensions.geckozone.org/AddBookmarkHere&quot; hreflang=&quot;fr&quot;&gt;Add
Bookmark Here&lt;/a&gt; : cette extension rajoute simplement un menu homonyme à vos
dossiers de signets, permettant d'ajouter directement à ce dossier la page en
cours d'affichage. C'est une question de goût, moi je trouve ça plus
pratique.&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://openweb.eu.org/articles/rss_introduction/&quot; hreflang=&quot;fr&quot;&gt;Fils de syndication&lt;/a&gt; (RSS, Atom) : Depuis la 1.0, Firefox affiche les
fils de syndication comme des &lt;em&gt;marques pages dynamiques&lt;/em&gt; ou &amp;quot;live
bookmarks&amp;quot;, des dossiers virtuels contenant les liens du fil, mis à jour
automatiquement. Lorsqu'un fil de syndication est disponible pour une page
(pour ce site par exemple), vous verrez apparaitre en bas à droite, dans la
barre de statut, une icône permettant de s'y abonner en insérant ce signet
dynamique dans vos favoris. Vous pourrez ainsi suivre aisément l'actualité du
site et atteindre directement les contenus qui vous intéressent. Quelquefois,
un site offre un fil de syndication (généralement un petit bouton orange
portant la mention rss, xml ou atom) sans que l'icone apparaisse, c'est que le
lien n'est pas mentionnée explicitement dans l'en tête de la page. Il est alors
quand même possible d'ajouter le fil en copiant son adresse (clic droit &amp;gt;
copier l'adresse du lien), puis en l'ajoutant manuellement dans le gestionnaire
de signets (marques pages &amp;gt; gérer les marques pages &amp;gt; fichier &amp;gt;
nouveau marque page dynamique).&lt;/li&gt;
&lt;li&gt;Fin du fin, &lt;a href=&quot;http://extensions.geckozone.org/BookmarksHome/&quot; hreflang=&quot;fr&quot;&gt;bookmarks home&lt;/a&gt; est une extension qui génère une page
&lt;em&gt;portail&lt;/em&gt; à partir de vos signets. Elle prend en compte les signets
dynamiques, il est possible d'exclure des dossiers et même de modifier la
feuille de style !&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Onglets&lt;/h3&gt;
&lt;p&gt;Onglets : un des atouts de firefox est sans contexte la navigation par
onglets, permettant de n'ouvrir qu'une fenêtre de navigateur tout en consultant
simultanément plusieurs pages. Le propre de l'&lt;a href=&quot;http://fr.wikipedia.org/wiki/Hypertexte&quot; hreflang=&quot;fr&quot;&gt;hypertexte&lt;/a&gt; est de
pouvoir être truffé de liens. Avec Firefox, il est possible de les ouvrir dans
un autre onglet tout en continuant sa lecture avec un &lt;em&gt;middle clic&lt;/em&gt;
(clic sur la molette ou le bouton central de la souris), en ayant configuré le
navigateur pour ne pas ouvrir les liens en avant-plan (c'est la config par
défaut).&lt;/p&gt;
&lt;p&gt;De plus, il est possible de sauvegarder l'ensemble des onglets ouverts dans
un dossier en cochant la case &amp;quot;sauver comme un groupe d'onglets&amp;quot; lors de la
création d'un signet. Sachant qu'il est possible d'ouvrir tous les liens des
dossiers comme une série d'onglets via le menu &amp;quot;ouvrir dans des onglets&amp;quot;, il
est alors possible de se créer des &lt;em&gt;sessions thématiques&lt;/em&gt;, ouvrant par
exemple d'un clic un site en cours de développement, &lt;a href=&quot;http://www.phpmyadmin.net/home_page/&quot; hreflang=&quot;en&quot;&gt;phpMyAdmin&lt;/a&gt;, et
diverses pages de documentation...&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://extensions.geckozone.org/MiniTPlus&quot; hreflang=&quot;fr&quot;&gt;MiniT+&lt;/a&gt; est une extension offrant un menu supplémentaire de
configuration des onglets&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Navigation&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://extensions.geckozone.org/Adblock/&quot; hreflang=&quot;fr&quot;&gt;Adblock&lt;/a&gt; est probablement une des extensions les plus appréciées, elle
permet de bloquer les bannières de publicité ou autres éléments gênants que
vous lui aurez indiqué. Elle fonctionne par reconnaissance de l'adresse
d'origine. Sachant que la plupart des publicités proviennent de serveurs
spécialisés exterieurs aux sites visités, après quelques jours d'apprentissage
celles-ci se feront de plus en plus rares. Pour cela, faites un clic droit sur
les publicités (ou cliquez sur l'onglet adblock dans le cas d'un élément en
Flash). Sélectionnez adblock image, ou adblock iframe la cas échéant. Une boite
de dialogue s'ouvrira vous permettant d'affiner la règle de blocage basée sur
l'url. Vous pouvez alors remplacer certaines parties de l'url par des * servant
de jokers : tout élement ayant une url correspondant au masque ainsi défini
sera alors supprimé des pages que vous visitez ! Quelques exemples de règles :
http://ad.*.doubleclick.net/*, http://*.smartadserver.com/*,
http://ad.*.doubleclick.net/*...&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://extensions.geckozone.org/NukeAnything/&quot; hreflang=&quot;fr&quot;&gt;Nuke
Anything&lt;/a&gt; permet de supprimer d'un clic droit n'importe quel élément de la
page (hors Flash), ce qui permet par exemple de faire un petit nettoyage des
éléments inutiles avant impression. Cela dit, il est possible que la page
possède une feuille de style spécifique à l'impression qui s'en charge déjà.
C'est par exemple le cas de la page que vous lisez.&lt;/li&gt;
&lt;li&gt;Recherche dans la page : avec CTRL+F, vous ouvrez une discrète barre de
recherche en bas de la fenêtre du navigateur, juste au dessus de la barre de
statut. Là encore, les résultats s'affichent au fur et à mesure de la frappe,
notamment si vous activez l'option &lt;em&gt;surligner&lt;/em&gt;. Cela permet de garder la
page sous les yeux tout en faisant sa recherche !&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>http://blog.sorcellerieweb.net/post/2005/02/18/Astuces-Firefox#comment-form</comments>
      <wfw:comment>http://blog.sorcellerieweb.net/post/2005/02/18/Astuces-Firefox#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.sorcellerieweb.net/feed/rss2/comments/179226</wfw:commentRss>
      </item>
    
  <item>
    <title>tags, meta tags delicious</title>
    <link>http://blog.sorcellerieweb.net/post/2004/02/04/tags-meta-tags-delicious</link>
    <guid isPermaLink="false">urn:md5:7eb6f3b97b668f994d4311cae7b79863</guid>
    <pubDate>Wed, 04 Feb 2004 17:43:00 +0100</pubDate>
    <dc:creator>J.Ducastel</dc:creator>
        <category>Boule de cristal</category>
        <category>classement</category><category>pratique</category><category>social</category><category>web</category>    
    <description>    &lt;p&gt;&lt;em&gt;english readers : please scroll down for english translation&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Pour ceux qui ne connaitraient pas &lt;a href=&quot;http://del.icio.us&quot; lang=&quot;en&quot;&gt;delicious&lt;/a&gt;, il s'agit d'une application web de stockage de
signets en ligne. Ses points forts :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Hierarchie plate : vous classez vos signets par mots clefs
(&lt;strong&gt;tags&lt;/strong&gt;), chaque signet peut recevoir autant de mots clef que
nécessaire. C'est un système de classement beaucoup plus puissant, je pense,
que le classement arborescent par catégories.&lt;/li&gt;
&lt;li&gt;Mutualisation : delicious se présente comme un outil &lt;em&gt;social&lt;/em&gt;, les
signets sont partagés entre tous les utilisateurs. Chaque utilisateur a le
contrôle total sur ses signets et leur marquage, mais une recherche par
mot-clef portera sur les signets de tous les utilisateurs : le travail de
recherche et de marquage est &lt;strong&gt;collectif&lt;/strong&gt;. &lt;em&gt;C'est la lutte,
euh, finale-euh...&lt;/em&gt; ;o)&lt;/li&gt;
&lt;li&gt;Syndication : chaque page de résultats possède son propre fil de
syndication; ainsi on peut suivre l'actualité d'un mot-clef par exemple.&lt;/li&gt;
&lt;li&gt;simplicité, gratuité, ergonimie. Il est aussi simple de collecter un signet
que de cliquer sur un signet special du navigateur, saisir les mots clefs et
valider pour etre redirigé vers la page d'origine.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;L'outil est simple et puissant. Tellement que ça donne des idées (je
posterai sur le sujet prochainement). En attendant, je tente d'enrichir mes
signets par l'usage de meta-tags, que je place entre [crochets], des mots-clefs
qui renseignent non pas sur le contenu du signet mais plutot sur sa forme :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;langue : [fr] pour un ressource francaise, [en] pour une ressource
anglaise, etc. Pour des ressources multilingues je mets autant de tags que
nécessaires, ainsi le signet sera present dans une recherche pour chacun de ces
tags.&lt;/li&gt;
&lt;li&gt;type : [blog], [wiki], [forum], [article] ...selon le type de site
hebergeant la ressource.&lt;/li&gt;
&lt;li&gt;licence : [gpl] &lt;a href=&quot;http://www.gnu.org/copyleft/gpl.html&quot; lang=&quot;en&quot; title=&quot;general public license&quot;&gt;GPL&lt;/a&gt;, [cc] &lt;a href=&quot;http://creativecommons.org/&quot; lang=&quot;en&quot;&gt;creative commons&lt;/a&gt;,
[lyber] &lt;a href=&quot;http://www.lyber-eclat.net/&quot; lang=&quot;fr&quot;&gt;lyber&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Je propose ici cet usage à la communauté. Si vous trouvez l'idée pertinente,
reprenez la. Si vous en avez une meilleure, publiez la.&lt;/p&gt;
&lt;h3&gt;In english, please&lt;/h3&gt;
&lt;p&gt;If ever you don't know about &lt;a href=&quot;http://del.icio.us&quot; lang=&quot;en&quot;&gt;delicious&lt;/a&gt;, it's a bookmarks storage web application. Its
strengths are :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Flat hierarchy : bookmarks organization is done through keywords, called
&lt;strong&gt;tags&lt;/strong&gt;. Each bookmark can be tagged with as much tags as
necessary, so it will be present on a search on all its tags. I think it's a
more powerful classification than using a folders tree.&lt;/li&gt;
&lt;li&gt;Shared bookmarks : del.icio.us is describing itself as a social bookmarks
manager, because the bookmarks and their associated tags are shared amongst
users. Each user has plain control over its own bookmarks and tags, but a
search on a tag will browse the entire collection. Therefore, the search and
classification work is made collective. &lt;em&gt;Free communism rules&lt;/em&gt; ;o)&lt;/li&gt;
&lt;li&gt;Syndication : each result page provides its own RSS syndication. So you can
track a tag, tags combination, a user's tags...&lt;/li&gt;
&lt;li&gt;Free, simple, easy. Implementation is just near perfect.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The tool is simple yet powerful. Enough to give me some ideas, but i'll talk
about these later. For the moment, i try to enhance it by the use of meta-tags,
tags which aren't about indexed content itself, but its &lt;em&gt;form&lt;/em&gt;. I put
these tags between [brackets] to distinguish them from content indexing tags.
Here are the ones i used :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;language : [en], [fr], [de] etc. If a content provides translations, i add
as many as necessary, so the bookmark is indexed for all potential
readers.&lt;/li&gt;
&lt;li&gt;Type : [blog] [wiki] [forum] : depends on the kind of website offering the
resource.&lt;/li&gt;
&lt;li&gt;License : [gpl] &lt;a href=&quot;http://www.gnu.org/copyleft/gpl.html&quot; lang=&quot;en&quot; title=&quot;general public license&quot;&gt;GPL&lt;/a&gt;, [cc] &lt;a href=&quot;http://creativecommons.org/&quot; lang=&quot;en&quot;&gt;creative commons&lt;/a&gt;,
[lyber] &lt;a href=&quot;http://www.lyber-eclat.net/&quot; lang=&quot;fr&quot;&gt;lyber&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Use this meta-tags convention if you think it's useful. Please tell me if
you have better ideas.&lt;/p&gt;</description>
    
    
    
          <comments>http://blog.sorcellerieweb.net/post/2004/02/04/tags-meta-tags-delicious#comment-form</comments>
      <wfw:comment>http://blog.sorcellerieweb.net/post/2004/02/04/tags-meta-tags-delicious#comment-form</wfw:comment>
      <wfw:commentRss>http://blog.sorcellerieweb.net/feed/rss2/comments/178149</wfw:commentRss>
      </item>
    
</channel>
</rss>