L'appartement

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

samedi, juillet 9 2005

Les RMLL 2005, on y était

Avec quelques amis du gluglu, nous nous sommes rendu ce vendredi à Dijon au Rencontres Mondiales du Logiciel Libre 2005. Une bonne représentation du monde du logiciel libre. Plein de conférences intéressantes pour les convaincus que nous sommes : du Java dans un très prometteur ERP libre (Compierre), des standards et de l'accessibilité dans les CMS (OpenWeb), un Tristan Nitot en grande forme (Mozilla Europe), des purs geeks qui essayaient d'installer installaient Mozilla sur un micro noyau Hurd, un restaurant universitaire digne d'un... Bref on reviendra ;)

RMLL

Private joke : Bruno ? Est-ce que Odile a aimé le Tee Shirt "I love my Geek" ?

mardi, juillet 5 2005

Tidy, ton extension est formidable

Je suis plus que ravi d'avoir découvert cet outils qui permet de corriger les petites erreurs de syntaxe XHTML, d'indenter correctement le code, de supprimer les commentaires HTML, de nettoyer du code Word 2002 (enfin presque) ect... Ce n'est pas non plus une solution miracle (non, Tidy ne fait pas la café) et rien n'y fera si vous avez vraiment codé comme un vilain avec un M$ Frontpage d'avant-guerre.

Ainsi, et tout de même, tout un site de publication de contenu peut vite devenir "Full XHTML compliant" même si le code n'était pas des plus parfait au départ ou suite à la saisie fantaisiste de quelques rédacteurs zélés.

Cerise sur le W3C, SPIP, mon CMS préféré du moment, intègre dans sa version 1.8 la correction des pages via cette fameuse extension Tidy. On peux l'utiliser au choix en extension PHP ou en ligne de commande (puisque l'outil en question est à la base un correcteur syntaxique en ligne de commande).

Je vous laisse admirer sur le site spatial-modelling.info qui tourne sous SPIP, le maaaagnifique code source bien indenté par la version de Tidy en ligne de commande. Est-ce lent ? Absolument pas car pour le cas de ce système de gestion de contenu, la sortie est ensuite directement mise en cache !

Alors, la question vous brûle les lèvres : pour une utilisation de Tidy sur son propre site en PHP, comment faire ? Attention, c'est du tutorial ultra rapide qui ne remplace pas une bonne lecture de la page de PHP et des options de Tidy.

Il faut tout d'abord posséder l'extension PHP qui va bien ou l'outil en ligne de commande (apt-get install tidy sous Debian ou Ubuntu fera l'affaire). Pour le cas de l'extension, elle disponible pour PHP5 mais reste un petit peu bricolage pour PHP4 et j'ai. Une installation via le PEAR repository est aussi envisageable. je vous renvois à la page du manuel PHP, assez bien faîtes à ce sujet.

Ensuite, si vous n'avez pas le courage de modifier toutes vos pages proprement codé en PHP ou en HTML, voici un petit truc dont le but est de placer tout le contenu de votre page dans un "buffer".

En début de page on place un ob_start pour mettre le contenu qui suit dans un buffer. On peux éventuellement utiliser l'option gzip tant qu'on y est, afin de renvoyer des pages compressées à un navigateur moderne (ne comptez pas sur vos clients en Netscape 4 pour le comprendre). A la fin du code, un ob_get_clean nous permet de récupérer le contenu du buffer dans une variable. Il suffit ensuite de passer tout ça à Tidy pour qui il nous le corrige et un echo servira le résultat et... Ohhh la belle page qui valide :)

Voici donc un petit résumé de l'exemple :

J'ai mis tout le "nécessaire de nettoyage" dans une fonction. Des problèmes avec les caractères Word m'ont obligés à ajouter le remplacement des caractères en question. J'ai également supprimé un élément xml ajouté par Tidy et dont je ne voit pas bien l'utilité :

<?php
 // Tidy configuration
 $config_tidy = array('indent'=> true,
                                 'indent-spaces'=> 2,
                                 'output-xhtml' => true,
                                 'wrap' => 0,
                                 'add-xml-decl'=> false,
                                 'output-encoding'=> latin1,
                                 'input-encoding'=> latin1,
                                 'quote-nbsp' => false,
                                 'show-body-only' => false);

 foreach ($config_tidy as $key => $value) {
              tidy_setopt($key,$value);
 }

 // nettoyage du code
 function tidycleaner($html) {
   
    // problème avec M$ Word
    $conv = array(
     chr(129) => '',
     chr(130) => '&#8218',
     chr(131) => '&#402;',
     chr(132) => '&#8222;',
     chr(133) => '&#8230;',
     chr(134) => '&#8224;',
     chr(135) => '&#8225;',
     chr(136) => '&#710;',
     chr(137) => '&#8240;',
     chr(138) => '&#352;',
     chr(139) => '&#8249;',
     chr(140) => '&#338;',
     chr(141) => '',
     chr(142) => '',
     chr(143) => '',
     chr(144) => '',
     chr(145) => '&#8216;',
     chr(146) => '&#8217;',
     chr(147) => '&#8220;',
     chr(148) => '&#8221;',
     chr(149) => '&#8226;',
     chr(150) => '&#8211',
     chr(151) => '&#8212;',
     chr(152) => '&#732;',
     chr(153) => '&#8482;',
     chr(154) => '&#353;',
     chr(155) => '&#8250;',
     chr(156) => '&#339;',
     chr(157) => '',
     chr(158) => '',
     chr(159) => '&#376;'
     );
     
     tidy_parse_string($html);
     tidy_clean_repair();
     $html = tidy_get_output();
 
     // on remplace les caracteres M$ Word
     $html = str_replace(array_keys($conv),array_values($conv),$html);
     
     // syntaxe xml à supprimer
     $html = ereg_replace ("\<\?xml([^\>]*)\>", "", $html);
     
     return $html;
 }
?>

Voici une page type avec l'introduction de la fonction tidycleaner :

<?php
 // debut du buffer
 ob_start(gzip);
 
 // ...
 // contenu de la page, traitement divers et tout le toutim...
 // ...
 
 // fin du buffer, dans une variable et ensuite affichage de la page
 $html = ob_get_clean();
 echo tidycleaner($html);
?>
<?php echo 'test'; ?>

Pour éviter la lourdeur éventuel du traitement par Tidy, il est bien entendu fortement conseillé d'utiliser un système de cache ! Alors ? ça valide partout !?

samedi, juillet 2 2005

Du Ajax plein les yeux... XmlHttpRequest inside

La rumeur court sur la planète Webdesign, il paraît que le futur des applications Web passera peut-être par "Ajax". Mais que se cache t'il donc derrière ce nom de produit ménager ?! En tout cas mon avis est fait après quelques lectures non dénuées d'intérêts et quelques mises en applications des exemples donnés : c'est sans doute vrai qu'une petite révolution est en marche !

Google Mail ou encore Google Suggest, par exemple, sont déjà basés sur ce système et le nombre de sites qui utilisent cette technologie ne fait qu'augmenter de jour en jour.

C'est vrai qu'à la vue des possibilités offertes par ce système on peux imaginer beaucoup de mise en pratique. Avant d'en arriver là, voici un article que Bruno m'avait signalé et qui résume très bien le mode de fonctionnement des applications Web utilisant cette technologie. Si vous n'êtes pas un parfait bilingue, je vous conseille quand même de vous attarder sur le schéma explicatif...

Après avoir lu cet article, vous voudrez bien évidement connaître toutes les possibilités offertes par Ajax, et vous y essayer. C'est là qu'un petit tour dans la partie "demo" du site consacré à OpenRico - Une classe justement à cette fabuleuse technologie - vous permettra définitivement d'être convaincu que vos applications vont s'enrichir de cette nouveauté !

De mon côté, après l'avoir très modestement éprouvée sur le moteur de recherche par référence du site de La Crosse Technology, j'ai récidivé sur Theatre-contemporain.net.

Je me suis déjà attaqué à la page des éditeurs. Pour cet exemple, j'ai utilisé la classe découverte sur ce blog de qwix trouvé par hasard et qui semble être le fait d'un blogueur bisontin. Je vous livre donc tel quel, brut de décoffrage, le bout de source qui va bien :

Quelques extrait de la page qui contient la liste nominative :

// appel à la classe
// fonction javascript
<script type="text/javascript" language="javascript">
    function chargeFichier(id) {
        // Création de l'objet
        var XHR = new XHRConnection();
        // Zone a remplir
        XHR.setRefreshArea('zonedetail'+id);
        // Chargement de la page
        XHR.sendAndLoad("details-editeur.php?idedit="+id, "GET");
        return true;
    }
</script>
<?php
// boucle depuis la base de données
    while ($row = $result->fetchRow()) {
        $country =& $db->getOne("SELECT ".$lang." FROM ".$table_paysth." WHERE id='".$row['country']."' ");
            echo "<li><a href=\"javascript:;\" onclick=\"chargeFichier(".$row['id'].");\">".$row['organisation']."</a> - ".$row['city']." (".$country.")";
            echo "<div id=\"zonedetail".$row'id'."\"></div>";
            echo "</li>";
    }
... ect
?>

Extrait de la page qui contient les détails :

<?php
 echo "<div class=\"maisonseditions\">";
       echo "<div style=\"font-size: 10px; text-align: right;\"><a href=\"javascript:;\" onclick=\"document.getElementById('zonedetail".$row'id'."').innerHTML = '';\">x
fermer</a></div>";
... ici les infos détaillées ....
       echo "</div>";
?>

Pour être sur que tout le monde à compris : la page editeurs.html ne charge que la liste nominative. Ensuite chaque clic sur le nom d'un éditeur fait appel au données le concernant. Léger et efficace, seulement quelques octets de données sont appelés à chaque fois depuis le serveur.

Sur ma lancée, j'ai aussi utilisé Ajax sur la page du calendrier afin d'éviter de charger les importantes et longues listes déroulantes du moteur de recherche avancé à chaque chargement de la page "calendrier" (couplé à un système de cache c'est bien rapide).

Alors pas convaincu par l'intitulé de l'article cité plus haut : "Ajax: A New Approach to Web Applications" ?

jeudi, juin 30 2005

Google parcours la terre

Google Earth Je vais finir par faire un blog sur Google... Enfin ca vaut le coup d'essayer : le nouveau joujou de chez Google s'appelle Google Earth et permet de parcourir le monde via des images satellites avec effet 3D et tout et tout. C'est impressionant ! La qualité des images varie selon les secteurs géographiques mais en général le détail est là !

Seul Hic : pour le moment il vous faut trouver une machine assez récente et sous Windows...

Note : dans le genre MappyViaMichelinQuiTue il y a aussi Google Maps qui couvre maintenant la France.

vendredi, juin 24 2005

Ils sont fort chez Free

Free Ma FreeBox va bientôt devenir Media Center. C'est en effet le sens de la nouvelle annonce de FreeMediaPlayer. Ce qui est à noter pour les utilisateurs de libre que nous sommes :

  • le logiciel Free Player sera disponible en plus de Mac et PC en version pour Linux (assez rare pour le noter)
  • le logiciel utilisera le formidable lecteur VLC sous licence GPL (voir le premier point)
  • les sources seront disponibles en accord avec la licence GNU/GPL (voir le deuxième point)

On savait déjà que la FreeBox utilisait un noyau linux (mais là, pas de source dispo...), on sait maintenant que les développeurs de chez Free ont su convaincre leurs employeurs que le libre pouvait leur apporter des brouzoufs.

On notera en dernier lieu que l'un des developpeur chez Free est un actif développeur de VLC. VideoLan, une application bien française... Et oui mooosieur !

Quelques liens :

Voilà encore de la pub gratuite pour le deuxième FAI français qui n'en a sans doute plus besoin ;)

L'Internet libre de Gandi est à vendre

Gandi C'est un bout de l'Internet "libertaire" qui disparaît. Avec mes 29 domaines chez Gandi, c'est (c'était ?) LE service qui marche tout le temps avec une interface simple et efficace sans fioriture. Surtout, contrairement à beaucoup de registrar, le propriétaire du domaine n'est pas Gandi mais bel et bien moi ceci contractuellement ! J'ai même signé la pétition de Olivier Meunier ici

mercredi, juin 15 2005

Un Intel dans ta Pomme

mac Ma news, c'est un peu du réchauffé tellement on en cause. Mais moi qui vient de m'acheter un MacMini processeur G4 qui va bien... Je sens que dans quelques semaines, des versions de Mac OS X Tiger pour I386 seront disponibles en Torrent ;)

Enfin la question qui travaille tout le monde : pourquoi t'as fais ça Steve ?!

Bruno en parle ici et plein de réaction au sujet sur Macbidouille

dimanche, mai 1 2005

Ubuntu 5.04 "The Hoary Hedgehog"

Ubuntu J'ai installé sur mon notebook la nouvelle version stable d'Ubuntu. Une excellente détection du matériel, une installation nickel, un beau bureau. Ubuntu nouvelle version c'est donc que du bien !

J'ai placé mes quelques fichiers de configuration de l'ancienne version Warty et "zou". Je n'ai en effet pas fais d'upgrade car ça commencais à être un beau bordel sur mon système (des noyaux partout, des partitions de 5 Mo, des trucs qui trainent dans tous les coins, des répertoires en 777 ...).

Dire qu'il y a quelques temps je ne bossais que sur Microsoft Windows... Au programme de la nouvelle mouture, on trouve notament :

  • Un système de notification des mises à jour
  • Bureau Gnome 2.10
  • Xorg

A essayer d'urgence et téléchargeable ici.

Note : Pour les fans de KDE, il y a maintenant Kubuntu.

mercredi, avril 13 2005

Gmail dans la langue de Molière

Gmail Gmail est enfin en français. Ca ne m'étonnerais pas qu'on se rapproche encore un peu plus de l'ouverture du service. J'ai d'ailleurs encore 50 invitations à distribuer. A noter aussi que le stockage est passé à 2 Go ! Je l'utilise en autres choses comme boite de stockage de mes mails envoyés et, avec plus de 1000 messages, je n'occupe que 100 Mo sur les 2000 Mo qui me sont attribués par môsieur Google... Soit 4% de l'espace ;)

mardi, avril 5 2005

Comment déplacer les répertoires sur d'autres partitions

Voici un truc toujours bon à savoir si on a, par exemple, été un peu radin sur la taille de ces partitions linux ;)

Il est donc possible de déplacer très simplement des répertoires de son système sur d'autres partitions ou sur d'autres disques.

Avant de commencer, il vous faut une distribution live CD du genre Knoppix.

Pour l'exemple, on se place dans la configuration suivante : il n'y a qu'une seule partition ext3 avec tout le système /dev/hda1 et on veut déplacer /usr sur une autre partition /dev/hda5 en ext3 elle aussi.

Lire la suite...

samedi, mars 26 2005

Rotation des logs après l'analyse statistique

Je me suis pas mal pris la tête sur ce problème. Il s'agit d'archiver les logs brut du serveur web Apache compressés en gzip, toutes les nuits après la génération des statistiques par AWStats. Ceci pour une historisation des journaux qui laisse la possibilité de, par exemple, recalculer les statistiques annuelles avec autre choses que AWStats.

La solution est en fait assez simple : il suffit de préciser à logrotate qu'il doit exécuter un script avant d'archiver. Voici donc la configuration de logrotate sur le serveur en question :

     /home/web/*/logs*/access_log {
         notifempty
         daily
         rotate 31
         compress
         sharedscripts
         prerotate
             /home/cgi-stats/tools/awstats_updateall.pl now -awstatsprog=/home/cgi-stats/awstats.pl -configdir=/home/cgi-stats/
         endscript
         postrotate
             /usr/bin/killall -HUP httpd
         endscript
     }
     
     /home/web/*/logs*/error_log {
        notifempty
        weekly
        rotate 4
        compress
        postrotate
             /usr/bin/killall -HUP httpd
        endscript
     }

Pour comprendre l'utilisation des jokers (*), voici comment sont organisés les fichiers du serveur web :

/home/web/domaine.tld/logs/acces_log
/home/web/domain.tld/logs/error_log

Enfin, le script awstats_updateall.pl permet de lancer l'analyse statistique pour tous les domaines en même temps.

Pour le détail sur logrotate, je vous renvois au man ;) . Et on me souffle dans l'oreillette que cronolog est aussi une solution intéressante... A voir !

mercredi, mars 16 2005

Pour ne pas oublier

Aujourd'hui j'ai décider de créer un post de trucs et astuces qui dorment parfois dans mon QuickNote

Monter un partage windows avec des droits (j'oublie tout le temps)

smbmount //windows/partage /mnt/partage/ -o uid=501,gid=500,guest--

Rechercher un fichier et le supprimer

find . -name '*toto' | xargs -p rm (il y a plein d'autres possibilités bien entendu).

Rechercher toutes les erreurs 404 (liens brisés) d'un site avec un super outils : LinkChecker

installation sous Debian ou Ubuntu :

apt-get install linkchecker

exemple : on parcours le site en analysant uniquement les erreurs des liens internes de toto.com et en mettant le résultat dans un belle page en HTML :

linkchecker -ohtml -r2 -s -itoto.com http://www.toto.com > /home/web/temp/sample.html

A essayer d'urgence pour "beautifier" son code HTML et le rendre W3C compliant : TiDy

Pour trouver un chaine de caractère dans des fichiers et mettre dans un fichier texte les noms et chemins des fichiers qui contiennent cette chaine :

find /home/web/toto.com/www/ -type f | xargs egrep -i -l "chaine à rechercher" >> /home/yves/change.txt

samedi, mars 5 2005

Ca y est, j'ai le MacMini

Mac Voilà, j'ai reçu la bête. Magnifique objet, silencieux, véloce malgré la configuration minimale que j'ai choisi. Mac OS X me semble être un bon système. J'ai installé tous les outils permettant de faire tourner des applications GNU/Linux sur Mac OS X (basé sur un noyau FreeBSD pour mémoire). J'ai également installé Fink qui permet via aptitude (apt-get machintruc) d'installer plein de logiciels d'un repository d'applications Linux re-packagées pour Mac OS X.

Je crois que OS X est vraiment un système qui gagne à être connu. Pour résumer, c'est entre Windows XP où l'on est pas du tout maître de sa machine et le Linux où tout est possible (auto critique : ca c'est vraiment du résumé trop vite fait !)... En étant nettement plus proche de Linux ;)

Concernant la disponibilité de logiciels Mac OS X gratuit, c'est loin d'être la même chose que OS 9... On trouve de tout et pas des logiciels à "deux euros six sous".

Voilà trois lignes d'impressions mais j'aurais sans beaucoup à dire dans les prochains mois...

mercredi, mars 2 2005

Backports de Ubuntu

Ubuntu On arrête pas le progrès ! Ubuntu inspiré de Debian a déjà ses backports : http://backports.ubuntuforums.org/

C'est quoi des backports en quelques mots : Ce sont des paquets d'applications de la branche de développement qui sont packagés pour fonctionner sur la branche stable. Ca sert principalement à bénéficier de logiciels récents sans passer toute sa distribution dans une version "testing" (appelé Hoary sur Ubuntu).

Ca reste bien entendu à vos risques et périls puisque la compatibilté avec les versions "officielles" n'est pas garantie. Enfin c'est quand même bien pratique pour installer des logiciels récents sans attendre la prochaine version stable de Ubuntu :)

Sur Debian Woody, j'ai par exemple installé postfix-mysql, amavis-new et spamassasin par ce biais sur un serveur en production. Ca marche sans problème et avec une bonne configuration de son sources.list, les mises à jour ne mettent pas le cirque dans le reste du système.

Dernier truc, comment ca marche ? On ajoute simplement les adresses des backports dans son fichier sources.list ou dans Synaptic pour les durs du clic ;)

mardi, février 15 2005

Installer le dictionnaire français de Thunderbird sur Ubuntu

Thunderbird Voilà un truc que j'ai cherché un (petit) moment. En fait, Mozilla Thunderbird sous Ubuntu utilise le dictionnaire du système. C'est souvent "myspell". Il suffit donc de télécharger le dictionnaire français de OpenOffice et de mettre les fichiers fr_FR.aff et fr_FR.dic dans /usr/share/myspell/dicts/ . Relancer Thunderbird et ca y est plus d'excuse pour les fotes d'ortographe (je suis sur que j'en fais à tour de bras sur ce blog).

Puisque je parle de correcteur orthographique, sachez que la prochaine version de SPIP intégrera un système de correcteur orthographique en ligne. Sympa pour de la publication rapide et sans bavure ;)

lundi, janvier 31 2005

Une nouvelle réalisation pour La Crosse Technology

Il faut bien que je me congratule un peu ;) Mon premier site vraiment, réellement et entièrement en XHTML strict et en CSS. Bon il y a quelques parties en Flash mais c'est pas moi qui est insisté. Il manque aussi un bonne intégration des "accesskey" , j'ai encore quelques soucis pour des javascript qui ne sont pas "compliant" plus quelques autres détails. Enfin c'est déjà bien sous Lynx, lecteur écran, palm, Pocket PC (netscape 4, s'abstenir).

C'est un site codé avec les fabuleuses classes PEAR et notamment la classe DB (je peux donc le passer sous Oracle ou Postgree en changeant 2 lignes). J'ai placé un petit gadget sympa : moteur de recherche avec autocomplétion sur la page "produits" (trouvé sur ici. marche avec un backend xml). Le site est en 3 langues SVP merci ;)

J'ai failli oublier de donner l'adresse : http://www.lacrossetechnology.fr

vendredi, janvier 28 2005

Brevets logiciels. Le rapport avec l'agriculture ?

Voici des nouvelles des brevets logiciels :

- Sur Standblog.org

Sur le site de Tristan Nitot, vous trouverez également de nombreux liens et analyses pour mieux comprendre le problème :

- Voir les listes de référence à la fin de ce billet

jeudi, janvier 20 2005

Vais-je devenir un "switcher" ?

J'ai craqué et je me suis commandé un MacMini. Au désespoir et à la surprise de mes amis informaticiens pécéistes (ils se reconnaitront). Pourtant, tant qu'on a pas essayé Mac OSX, comment se faire une véritable opinion ?!

Si OSX ne me plait pas, ca sera un MacMini sous Debian ou Ubuntu (un peu pareil certes).

Ce n'est de toutes manière plus Windows qui me retiens ;)

Ce qui me plait aussi c'est la taille de l'engin, le silence et le design...

Je vous donne mon avis objectif (?) sur la question essentiel ("faut il passer sur Mac ?") dès que je l'ai recu !

Passage à ubuntu.. bye bye Windows

Ca y est j'ai définitivement lacher Windows pour Linux. Je suis me suis laissé convaincre par la distribution Ubuntu

Distribution qui est, pour résumer, une distribution Debian orientée desktop. Livrée avec le strict nécessaire au niveau applicatif, le desktop manager est un Gnome vraiment très pratique et pas trop dépaysant pour un habitué de Windows (la faute à Nautilus). Le changement d'habitude a quand même mis quelques semaines, d'où le peu de message sur ce blog (ce n'est, certes, pas la seule raison).

Il faut dire que quand on est habitué depuis plusieurs années à travailler sur Windows, il n'est pas facile au début de changer quelques comportements. En tout cas et pour exemple de ce qui me plait, je ne sais pas comment j'ai fais pour travailler sans plusieurs bureaux virtuels jusqu'à présent.

Au niveau de l'installation d'Ubuntu : aucun problème. Une installation qui détecte tout parfaitement bien pour mon cas.

Le seul truc qui ne marche pas (encore ?) par défaut mais je ne me suis pas penché dessus : le FireWire.

Les logiciels installés par défaut : OpenOffice, FireFox, Evolution (vite remplacé par Thunderbird), Synaptic (gestion des paquets Debian), Gimp et quelques autres trucs. Je ne parle pas des outils servant à la configuration visuelle de Gnome. Ce n'est donc pas surchargé de logiciels inutiles comme souvent sur les distributions Linux orientées desktop.

Ce qui est top : l'ergonomie, la simplicité, le système apt avec tous les paquets Debian (passer en hoary => version "testing" de Ubuntu ou rester en multiverse pour du plus stable mais quand même récent)...

On va essayer de trouver le point négatif : quelques logiciels préinstallés pas toujours super, notamment au niveau du multimedia. Mais ca se change vite avec un coup de synaptic/apt ;)

Voici quelques liens sur Ubuntu pour se lancer... et peut-être l'adopter :

Pour le reste, je vous laisse avec Google ;)

dimanche, décembre 19 2004

Encore des adresses Gmail

Gmail J'en ai quelques unes à distribuer. Votre demande en commentaire. Les premiers arrivés sont les premiers servis comme le veux la tradition ;)

- page 5 de 7 -