<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://keul.fr/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/"
  xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
  <title>keul.fr - technologie web</title>
  <link>http://keul.fr/</link>
  <atom:link href="http://www.keul.fr/feed/rss2" rel="self" type="application/rss+xml"/>
  <description></description>
  <language>fr</language>
  <pubDate>Tue, 31 Jan 2012 16:05:15 +0100</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Internet mobile</title>
    <link>http://keul.fr/post/45</link>
    <guid isPermaLink="false">urn:md5:49b81328bc921fa46b73710a1ec63c87</guid>
    <pubDate>Fri, 27 Jan 2012 08:15:00 +0100</pubDate>
    <dc:creator>Keul</dc:creator>
            
    <description>    &lt;h3&gt;Internet&lt;/h3&gt;
&lt;p&gt;Internet est un réseau mondial comparable aux réseau routier, crée par des scientifiques pour faciliter la communication de l'information entres différents ordinateurs. Reliant au début les laboratoires militaires, scientifiques, ainsi que les universités et les écoles, il se rependit ensuite au grand public avec les cybercafés et l'arrivée chez les particuliers en utilisant les réseaux téléphoniques existants. Il permet de transférer de la voix, des images, du texte, des vidéos ou tout autre donnée à travers le monde en utilisant un protocole (langage) commun appelé IP, (Internet Protocol).&lt;/p&gt;
&lt;p&gt;Or, les différents gouvernements, à la ramasse et obéissant plus aux commerciaux et entreprises qu'aux scientifiques causèrent quelques problèmes: un manque de législation efficace contre les problèmes de peering, de spam, d'arnaques et une absence d'éducation contre les dangers (on n'accepte pas de &quot;bonbons&quot; d'un inconnu, donc on fait aussi attention aux réseaux sociaux).&lt;/p&gt;
&lt;h3&gt;Les mobiles&lt;/h3&gt;
&lt;p&gt;Des version mobile de sites web furent disponibles, dans un &lt;a href=&quot;http://www.raton-laveur.net/post/594&quot;&gt;format WAP&lt;/a&gt;, version ultra allégée d'HTML prévu pour des téléphones de l'époque, qui coutaient une centaine d'euros. La performance exceptionnelle (une minute pour charger une page WAP de 10Ko) allié à des prix comparables au minitel (1€ la dizaine de pages) attira peu le grand public en dehors des geeks curieux.&lt;/p&gt;
&lt;p&gt;Un climat sans concurrence stabilisa les prix et laissa les responsable marketing faire joujou avec leurs délires. Pendant que l'ADSL passais de 512k à 30Méga, en incluant le téléphone, la télé, puis la fibre optique, les offres mobile évoluaient peux, proposant difficilement les appels illimités* (dans la limite de 3 correspondants) et de l'internet illimité* et des SMS illimités*&lt;/p&gt;
&lt;p&gt;Avec l'arrivée du wifi, de forfaits 2G/3G et des écrans tactiles (bien mieux qu'un clavier) et d'un gros budget, l'HTML amputé de flash pouvais se pointer sur smartphone. Pour mieux faire passer le budget, les opérateurs &lt;del&gt;planquèrent du crédit sur&lt;/del&gt; subventionnèrent le smartphone dans des offres avec engagement.&lt;/p&gt;
&lt;p&gt;Internet n'est pas que l'affichage de pages web avec une option mail. Internet, c'est: le web, le mail, les discussion en direct, les visioconférences, les jeux, les newsgroups, le P2P, le partage de connexion (ou &lt;a hreflang=&quot;fr&quot; href=&quot;http://www.tux-planet.fr/android-utiliser-le-tethering-partage-de-connexion-internet/&quot;&gt;thethering&lt;/a&gt;), le cryptage, le respect des protocoles.&lt;/p&gt;
&lt;p&gt;On pourra donc féliciter Free d'être le premier opérateur téléphonique à fournir une véritable connexion Internet en dehors des offres professionnelles précises (les offres grand-public étant pour moi une pauvre rustine), en plus de l'illimité à bas pris. Ils auront été plus efficace que l'état pour aller dans al bonne voie et éviter les problèmes que j'avais déjà souligné dans mon &lt;a href=&quot;http://keul.fr/post/26&quot;&gt;article sur IPV6&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Les limitations&lt;/h3&gt;
&lt;p&gt;On pourrait se demander pourquoi ces limitations? Les réponses sont simples:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Le blocage du partage de connexion leurs a permis de vendre des forfaits clefs 3G pour plusieurs dizaines d'euros par mois&lt;/li&gt;
&lt;li&gt;Le blocage des e-mails a évité la mort du MMS et des sms payés à l'unité&lt;/li&gt;
&lt;li&gt;Le blocage de la VOIP leurs a permis d'éviter la baisse de prix de la
communication audio. Une heure d'audio, c'est environ une trentaine de
méga en qualité téléphonique (64kb/s = 8Ko/s = 28Mo/h).&lt;/li&gt;
&lt;li&gt;Le blocage de la VOIP leurs a aussi permis de faire payer des suppléments
pour l’international à prix démentiel (a croire que les entreprises
profitent bien du mondialisme pour faire travailler des petits chinois
avec des salaires ridicules, et ne se privent absolument pas pour
imposer un zonage)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;J'en profiterai aussi pour féliciter Orange qui m'a bien fait rigoler en ventant ses boutiques qui ne m'ont pas vraiment servi, avec les conseillers ne vous aident pas à trouver le meilleur forfait et vous renvoient systématiquement vers le service client surtaxé pour les problèmes techniques.&lt;/p&gt;</description>
    
    
    
          <comments>http://keul.fr/post/45#comment-form</comments>
      <wfw:comment>http://keul.fr/post/45#comment-form</wfw:comment>
      <wfw:commentRss>http://keul.fr/feed/atom/comments/45</wfw:commentRss>
      </item>
    
  <item>
    <title>Vous aimez spammer?</title>
    <link>http://keul.fr/post/44</link>
    <guid isPermaLink="false">urn:md5:f6c837babb1284ad53d69ff728237b95</guid>
    <pubDate>Tue, 17 Jan 2012 13:38:00 +0100</pubDate>
    <dc:creator>Keul</dc:creator>
            
    <description>    Si vous êtes tombé sur cette page parce qu'on vous a donné un lien, c'est que vous avez fait fait une grosse erreur: &lt;strong&gt;vous avez envoyé du SPAM&lt;/strong&gt;, généralement appelé &quot;courrier indésirable&quot;. Pour les autres, ça sera de la prévention.&lt;br /&gt;&lt;br /&gt;Afin de ne plus recommencer, suivez ces conseils:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Si vous envoyez un e-mail à une seule personne, il n'y a généralement pas de problèmes, vous contactez la personne pour une raison précise et elle a donc de forte chance d'être intéressée.&lt;/li&gt;
&lt;li&gt;Si vous envoyez un e-mail à plusieurs personnes, vous risquez très fortement d'envoyer un spam. Tournez donc votre mulot trois fois autour du clavier et posez-vous la question suivante : Suis-je sûr que &lt;strong&gt;TOUS &lt;/strong&gt;les destinataires &lt;strong&gt;désirent recevoir&lt;/strong&gt; cet e-mail?&lt;/li&gt;
&lt;/ul&gt;
La règle d'or est de&lt;strong&gt; RÉFLÉCHIR&lt;/strong&gt;. Ne faites pas &lt;strong&gt;CONFIANCE&lt;/strong&gt;, les ragots et arnaques sont monnaie courante et un peu de bon sens suffit à les éviter.&lt;br /&gt;&lt;br /&gt;Une petite aide :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Si vous voulez envoyez une blague (à plusieurs personnes), c'est généralement du spam.&lt;/li&gt;
&lt;li&gt;Si vous voulez envoyer une combine pour gagner de l'argent facilement, c'est du spam. Allez plutôt voir l'&lt;a href=&quot;http://pole-emploi.fr&quot;&gt;ANPE&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Si vous n'avez pas vérifié l'information (avec &lt;a href=&quot;http://google.fr&quot;&gt;google&lt;/a&gt;), c'est du spam&lt;/li&gt;
&lt;li&gt;Si vous voulez les prévenir qu'un virus va tout faire péter, c'est du spam&lt;/li&gt;
&lt;li&gt;Si vous l'envoyez à tout votre carnet d'adresse, c'est du spam (hors changement d'e-mail)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;En cas de doute, &lt;strong&gt;demandez à votre entourage&lt;/strong&gt;.&lt;/p&gt;</description>
    
    
    
          <comments>http://keul.fr/post/44#comment-form</comments>
      <wfw:comment>http://keul.fr/post/44#comment-form</wfw:comment>
      <wfw:commentRss>http://keul.fr/feed/atom/comments/44</wfw:commentRss>
      </item>
    
  <item>
    <title>Les noms de domaine</title>
    <link>http://keul.fr/post/37</link>
    <guid isPermaLink="false">urn:md5:6d3d4bf37b1c628ec12f67b94bc00dcb</guid>
    <pubDate>Sat, 31 Dec 2011 16:10:00 +0100</pubDate>
    <dc:creator>Keul</dc:creator>
            
    <description>    Petit résumé rapide: Les différents ordinateurs et appareils peuvent communiquer sur internet grâce à des adresse IP, un peu équivalent aux numéros de téléphone. (exemple : 176.31.232.221 ou 2001:41d0:2:f9dd::1).&lt;br /&gt;Vu la difficulté pour retenir, un système de nom de domaine, équivalent à l'annuaire a été crée et permet de remplacer une adresse IP par un nom plus facile à retenir (exemple: nanami.fr).&lt;br /&gt;Lorsque l'on possède un nom de domaine, on peux créer des sous-domaines, gérés par le possesseur du nom de domaine d'origine. (exemple: forum.nanami.fr).&lt;br /&gt;&lt;br /&gt;Lorsque l'on crée un compte sur un site pour avoir une adresse e-mail, un site web, un blog ou tout autre service, on deviens généralement dépendant de son fournisseur de service. Si je crée un site chez Free, je deviens dépendant de l'administrateur du nom de domaine free.fr. SI je me crée une adresse Gmail, je deviens dépendant de gmail.com et de leurs service (donc de leurs éventuels dérapages...).&lt;br /&gt;Pour éviter de changer de nom de domaine, on pourrait être tenté de prendre un service de redirection. Un tel service à déjà existé : &lt;a href=&quot;http://www.01net.com/article/154576.html&quot;&gt;@fairesuivre.com&lt;/a&gt;. Manque de bol, ils ont fermé, laissant leurs clients dans l'impasse.&lt;br /&gt;Or, le système de nom de domaine possède un attribut non négligeable: le transfert de nom de domaine. En effet, si vous achetez un nom de domaine chez un fournisseur et que celui-ci ne vous conviens plus ou fait faillite, vous pouvez alors transférer le nom de domaine chez un autre fournisseur.&lt;br /&gt;&lt;br /&gt;Un nom de domaine permet alors d'avoir une identité (e-mail, site internet, ...) et son indépendance à vie pour une dizaine d'euros par an. Il ne vous reste plus qu'à savoir si vous êtes prêt à mettre un peu d'argent pour être certain de garder votre identité et votre indépendance.&lt;br /&gt;</description>
    
    
    
          <comments>http://keul.fr/post/37#comment-form</comments>
      <wfw:comment>http://keul.fr/post/37#comment-form</wfw:comment>
      <wfw:commentRss>http://keul.fr/feed/atom/comments/37</wfw:commentRss>
      </item>
    
  <item>
    <title>Chargement d'une image avec Ajax</title>
    <link>http://keul.fr/post/43</link>
    <guid isPermaLink="false">urn:md5:0c9c4d6a7cd8f578042bb90b066116ef</guid>
    <pubDate>Wed, 30 Nov 2011 19:20:00 +0100</pubDate>
    <dc:creator>Keul</dc:creator>
            
    <description>    &lt;p&gt;Dans mon &lt;a href=&quot;http://keul.fr/post/15&quot;&gt;précédent billet&lt;/a&gt;, j'expliquais comment charger du texte avec Ajax.&lt;/p&gt;
&lt;br /&gt;Pour charger de l'XML avec, il suffit de remplacer responseText par responseXml, retournant alors un objet javascript plutôt que du texte.&lt;br /&gt;&lt;br /&gt;AJAX n'est pas prévu pour transférer des données binaires mais uniquement du texte. Une solution pourrait être de transférer l'image en l'encodant en base64 et de l'intégrer via les data-uri en utilisant un code ressemblant à ceci :&lt;br /&gt;&lt;pre&gt;imgtest=new Image();&lt;br /&gt;imgtest.src=&quot;data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHV...&quot;&lt;/pre&gt;Problème : une image encodé en base64 prends 33% de place en plus.&lt;br /&gt;&lt;br /&gt;La solution est en fait plus simple et était déjà utilisa avant l'apparition d'ajax: le préchargement d'images avec l'utilisation d'onload pour s'avoir quand elle a fini son chargement&lt;br /&gt;&lt;pre&gt;imgtest=new Image();
imgtest.src=&quot;http://keul.fr/post/example.com/image.jpg&quot;&lt;br /&gt;imgtest.onload=function(){ imgtest.style.display='block'; }&lt;/pre&gt;&lt;br /&gt;On pourra alors combiner les deux méthodes pour charger par exemple une image et sa description.&lt;br /&gt;</description>
    
    
    
          <comments>http://keul.fr/post/43#comment-form</comments>
      <wfw:comment>http://keul.fr/post/43#comment-form</wfw:comment>
      <wfw:commentRss>http://keul.fr/feed/atom/comments/43</wfw:commentRss>
      </item>
    
  <item>
    <title>Les données dans &quot;le cloud&quot;</title>
    <link>http://keul.fr/post/39</link>
    <guid isPermaLink="false">urn:md5:bb8793727181e764fddb2787818e3208</guid>
    <pubDate>Tue, 04 Oct 2011 13:07:00 +0200</pubDate>
    <dc:creator>Keul</dc:creator>
            
    <description>    &lt;p&gt;Suite à &lt;a href=&quot;http://standblog.org/blog/post/2011/10/03/adieu-pc-bonjour-cloud#comments&quot;&gt;un article&lt;/a&gt; de &lt;a href=&quot;http://standblog.org&quot;&gt;Tristan Nitot&lt;/a&gt;, j'ai pas mal réfléchi sur le sujet et j'ai donc décidé de publier un article sur les données dans le cloud et la vie privée.&lt;/p&gt;
&lt;p&gt;Quand on veux mettre ses données dans le cloud pour pouvoir y accéder de partout, on se retrouve face à plusieurs solutions :&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;un système tel que forumactif/skyblog ne vous permet pas d’accéder à vos données (certains s'en approprient même les droits comme un certain réseau social)&amp;nbsp; (vie privée : catastrophe)&lt;/li&gt;
&lt;li&gt;un système tel que googledoc permet d'acceder à vos données, mais de
manière peu pratique : il faut passer par l'interface web pour
télécharger un .zip&amp;nbsp; (vie privée : pas terrible du tout)&lt;/li&gt;
&lt;li&gt;un système tel que gmail permet de sauvegarder facilement et
régulièrement ses mails en local via imap/pop, mais l'hébergeur peux
facilement exploiter les données (vie privée : pas terrible du tout)&lt;/li&gt;
&lt;li&gt;un système tel qu'un forum SMF/PHPBB hébergé chez un hébergeur gratuit
ou payant permet de sauvegarder facilement les fichiers via SFTP et la
base de donnée&amp;nbsp; (vie privée : je ne connais pas d'hébergeur s’autorisant
dans ses GCU la fouille d'un FTP à des fins publicitaires, c'est donc
pas mal au niveau vie privée)&lt;/li&gt;
&lt;li&gt;un système ftp/dropbox/ubuntuone avec une surcouche de cryptage (vie privée : le must)&lt;/li&gt;
&lt;li&gt;un système de fichier, décrypté coté navigateur, avec des applications
certifiées et que l'on peux CHOISIR (par la communauté, pas par un
market ou un certain UEFI avec des certificats non gérables par
l'utilisateur (contrairement au certificats dans firefox, totalement
éditables)) : (ultime)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Le problème est ensuite celui de l'application qui va utiliser ces données :&lt;br /&gt;&lt;br /&gt;Quand un ami partage un album photo via un service web, je suis obligé de passer par l'application web de visualisation des photos, alors qu'à la base, il devrait uniquement indiquer un répertoire web avec un système de métadonnées standardisé et ouvert.&lt;br /&gt;&lt;br /&gt;Plutôt que de chercher à utiliser des surcouches de logiciel, je pense qu'il vaudrait mieux revoir l'architecture des OS qui ne permettent pas avec une interface &quot;user friendly&quot;&lt;br /&gt;&lt;br /&gt;En effet, l'idée du chromebook est une mauvaise idée, on transforme le navigateur en gestionnaire d'applications qui deviens un intercepteur d'applications javascript. Chaque application est téléchargée par le fournisseur de service qui se retrouve à avoir un contrôle total sur l'application et les données!&lt;br /&gt;&lt;br /&gt;Pour moi, chaque ordinateur devrait avoir un système d'exploitation qui va s'occuper de la gestion des drivers, des programmes, des utilisateurs et du système de fichier.&lt;br /&gt;Quand un utilisateur se connecte à l'ordinateur, il se connecte à son profil crypté sur le web, qui:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;va indiquer quels applications installer en local en supplément (si elles ne sont pas déjà disponibles)&lt;/li&gt;
&lt;li&gt;va gérer un cache local crypté (un peu comme un GIT crypté)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Quand l'utilisateur quitte le poste, il peux choisir :&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;de supprimer ses données locales&lt;/li&gt;
&lt;li&gt;de les conserver en cache en évitant des les effacer (pour ceux qui compte le réutiliser)&lt;/li&gt;
&lt;li&gt;de les conserver en cache, mais qu'ils peuvent êtres effacés (pour ceux qui veulent garder un cache mais ne pas gêner le propriétaire s'il a besoin de place&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pour l'instant, on en est loin et le libre à du mal à rattraper les commerciaux avec leurs services privatifs en ligne où les utilisateurs ne voient pas les problèmes futurs, en espérant que les commerciaux n'arriveront pas à se débarrasser du libre en revendant de l'&lt;a href=&quot;http://www.generation-nt.com/windows-8-uefi-secure-boot-linux-actualite-1259881.html&quot;&gt;UEFI avec la liste de certificats non éditable&lt;/a&gt; alors qu'ils n'hésitent pas à faire tourner leurs serveurs sous linux.&lt;/p&gt;
&lt;p&gt;(personnellement, ce n'est pas à Microsoft de demander aux constructeurs de pouvoir désactiver l'UEFI ou mettre un certificat custom, mais à l'État d'interdire la vente de carte mères avec UEFI ne prenant que des certificats Microsoft, et interdire la vente de téléphone portable sans procédure pour le rootkiter (quitte à perdre la garantie) après un certain délai comme le désimlocage)&lt;/p&gt;</description>
    
    
    
          <comments>http://keul.fr/post/39#comment-form</comments>
      <wfw:comment>http://keul.fr/post/39#comment-form</wfw:comment>
      <wfw:commentRss>http://keul.fr/feed/atom/comments/39</wfw:commentRss>
      </item>
    
  <item>
    <title>Stockage de mots de passe</title>
    <link>http://keul.fr/post/40</link>
    <guid isPermaLink="false">urn:md5:559b91c73c252cd9b156e08abf73afc4</guid>
    <pubDate>Tue, 04 Oct 2011 13:01:00 +0200</pubDate>
    <dc:creator>Keul</dc:creator>
            
    <description>    &lt;p&gt;En informatique, il deviens très rapidement nécessaire de gérer son identités sur plusieurs sites et systèmes.&lt;/p&gt;
&lt;p&gt;Et actuellement, on se retrouve à retenir plein de mots de passe, vu qu'il n'existe pas encore de solution unique et complète. En effet, j’estime qu'il faut :&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;un système pérenne qui résiste à la suppression de compte mail (en quittant son ancien FAI), du nom de domaine (comme un certain wikileaks), de son téléphone...&lt;/li&gt;
&lt;li&gt;un système qui permettes un certain anonymat : si mon compte ebay et mon compte google utilisent la même adresse e-mail ou la même URL pour openID, ils peuvent me suivre à la trace.&lt;/li&gt;
&lt;li&gt;un système blindé : en cas de vol/perte de mot de passe, il doit y avoir des systèmes de révocation.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;OpenID et BrowserID n'y répondent pas vraiment et pour moi, la solution réside dans les certificats GPG et un principe de fonctionnement tel que décrit :&lt;/p&gt;
&lt;p&gt;Sur un PC (de préférence sécurisé, en live CD et non connecté au net), on génère un trousseau de clef A B C D (qu'on peux imprimer voir une master qui signe toutes ces clefs) ... chacune signe des clefs A1 B1 C1 D1 qu'on stocke sur une clef USB&lt;/p&gt;
&lt;p&gt;On utilise alors les clefs A1 B1 C1 D1 pour s'authentifier sur les sites. Si la clef B1 est corrompue, on retourne sur le netbook et on génère une clef B2 qui révoquera la clef B1 et qui servira de nouvelle clef d'authentification.&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Le système est indépendant d'un quelconque compte mail ou nom de domaine&lt;/li&gt;
&lt;li&gt;un système qui permettes un certain anonymat : si mon compte ebay
et mon compte google utilisent la même adresse e-mail ou la même URL
pour openID, ils peuvent me suivre à la trace.&lt;/li&gt;
&lt;li&gt;un système blindé : en cas de vol/perte de mot de passe, il doit y avoir des systèmes de révocation.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;En attendant qu'un tel système soit utilisable, on se retrouve à gérer plein de mots de passe. Problème, je n'ai pas de serveur chez moi où héberger en permanence ce fichier, et je n'ai pas envie de le stocker en clair chez mon hébergeur. Je pourrais le crypter chez mon hébergeur, mais ça signifierais envoyer le mot de passe par le réseau (et je n'ai pas de https disponible dans mon offre).&lt;/p&gt;
Solution: effectuer le cryptage/décryptage coté navigateur. Ceux-ci ne gérant pas les fonctions cryptographiques en natif, j'ai dû recourir à une librairie en javascript.&lt;br /&gt;Le script ci dessous effectue des copies de sauvegardes du fichier crypté.&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://fichiers.keul.fr/motsdepasse.php.txt&quot;&gt;Télécharger le script&lt;/a&gt; (&lt;a href=&quot;http://fr.wikipedia.org/wiki/WTFPL&quot;&gt;WTFPL&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;Ce script php génère donc une page HTML avec un champ textarea crypté, qui se décrypte via javascript quand vous aurez saisi la bonne clé. Vous pouvez saisir de nouvelles informations , une autre clef et cliquer sur save pour envoyer la nouvelle version cryptée sur le serveur.&lt;br /&gt;Le script est fourni sans garantie (ne l'utilisez pas pour des trucs trop importants sans vérifier le code source)&lt;br /&gt;</description>
    
    
    
          <comments>http://keul.fr/post/40#comment-form</comments>
      <wfw:comment>http://keul.fr/post/40#comment-form</wfw:comment>
      <wfw:commentRss>http://keul.fr/feed/atom/comments/40</wfw:commentRss>
      </item>
    
  <item>
    <title>Démontage de netbook Acer eMachines M350</title>
    <link>http://keul.fr/post/38</link>
    <guid isPermaLink="false">urn:md5:24e8e15e9ba4449fb07826f3c1bfe0a2</guid>
    <pubDate>Wed, 28 Sep 2011 13:23:00 +0200</pubDate>
    <dc:creator>Keul</dc:creator>
            
    <description>&lt;p&gt;Ayant du démonter mon netbook récemment, j'en profite pour mettre quelques photos ici.&lt;/p&gt;    &lt;p&gt;&lt;a title=&quot;e01.jpg&quot; href=&quot;http://keul.fr/public/netbook/e01.jpg&quot;&gt;&lt;img alt=&quot;e01.jpg&quot; src=&quot;http://keul.fr/public/netbook/.e01_m.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;e02.jpg&quot; href=&quot;http://keul.fr/public/netbook/e02.jpg&quot;&gt;&lt;img alt=&quot;e01.jpg&quot; src=&quot;http://keul.fr/public/netbook/.e02_m.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;e03.jpg&quot; href=&quot;http://keul.fr/public/netbook/e03.jpg&quot;&gt;&lt;img alt=&quot;e01.jpg&quot; src=&quot;http://keul.fr/public/netbook/.e03_m.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;e04.jpg&quot; href=&quot;http://keul.fr/public/netbook/e04.jpg&quot;&gt;&lt;img alt=&quot;e01.jpg&quot; src=&quot;http://keul.fr/public/netbook/.e04_m.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Il y a 2 attaches qui coulissent à droite, il faut commencer à le détacher par la gauche pour libérer l'emplacement du HDD.&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;e05.jpg&quot; href=&quot;http://keul.fr/public/netbook/e05.jpg&quot;&gt;&lt;img alt=&quot;e01.jpg&quot; src=&quot;http://keul.fr/public/netbook/.e05_m.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Ici, il faut forcer un peu sur le haut pour soulever la plaque, les attaches du bas coulissent&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;e06.jpg&quot; href=&quot;http://keul.fr/public/netbook/e06.jpg&quot;&gt;&lt;img alt=&quot;e01.jpg&quot; src=&quot;http://keul.fr/public/netbook/.e06_m.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Aperçu des encoches à forcer pour libérer l'emplacement&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;e07.jpg&quot; href=&quot;http://keul.fr/public/netbook/e07.jpg&quot;&gt;&lt;img alt=&quot;e01.jpg&quot; src=&quot;http://keul.fr/public/netbook/.e07_m.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;On tire sur la languette du disque dur pour l'aider à s'extraire du port SATA.&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;e08.jpg&quot; href=&quot;http://keul.fr/public/netbook/e08.jpg&quot;&gt;&lt;img alt=&quot;e01.jpg&quot; src=&quot;http://keul.fr/public/netbook/.e08_m.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;e09.jpg&quot; href=&quot;http://keul.fr/public/netbook/e09.jpg&quot;&gt;&lt;img alt=&quot;e01.jpg&quot; src=&quot;http://keul.fr/public/netbook/.e09_m.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;La barrette de RAM se retire facilement en poussant sur l’extérieur les 2 encoches métalliques&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;e10.jpg&quot; href=&quot;http://keul.fr/public/netbook/e10.jpg&quot;&gt;&lt;img alt=&quot;e01.jpg&quot; src=&quot;http://keul.fr/public/netbook/.e10_m.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;L'une des partie les plus dur : détacher le clavier avec un tournevis plat/une pince fine en le faisant sortir des encoches (visibles dans les photos suivantes)&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;e11.jpg&quot; href=&quot;http://keul.fr/public/netbook/e11.jpg&quot;&gt;&lt;img alt=&quot;e01.jpg&quot; src=&quot;http://keul.fr/public/netbook/.e11_m.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;e12.jpg&quot; href=&quot;http://keul.fr/public/netbook/e12.jpg&quot;&gt;&lt;img alt=&quot;e01.jpg&quot; src=&quot;http://keul.fr/public/netbook/.e12_m.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Les encoches qui retenaient le clavier&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;e13.jpg&quot; href=&quot;http://keul.fr/public/netbook/e13.jpg&quot;&gt;&lt;img alt=&quot;e01.jpg&quot; src=&quot;http://keul.fr/public/netbook/.e13_m.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;On retire la nappe du clavier&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;e14.jpg&quot; href=&quot;http://keul.fr/public/netbook/e14.jpg&quot;&gt;&lt;img alt=&quot;e01.jpg&quot; src=&quot;http://keul.fr/public/netbook/.e14_m.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;e15.jpg&quot; href=&quot;http://keul.fr/public/netbook/e15.jpg&quot;&gt;&lt;img alt=&quot;e01.jpg&quot; src=&quot;http://keul.fr/public/netbook/.e15_m.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;D'autres encoches qui maintiennent la carcasse en plastique sur le haut&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;e16.jpg&quot; href=&quot;http://keul.fr/public/netbook/e16.jpg&quot;&gt;&lt;img alt=&quot;e01.jpg&quot; src=&quot;http://keul.fr/public/netbook/.e16_m.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;e17.jpg&quot; href=&quot;http://keul.fr/public/netbook/e17.jpg&quot;&gt;&lt;img alt=&quot;e01.jpg&quot; src=&quot;http://keul.fr/public/netbook/.e17_m.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;On détache la carte wifi en retirant la vis et en la soulevant.&lt;/p&gt;
&lt;p&gt;Le connecteur sers à l'alimentation de l'écran.&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;e18.jpg&quot; href=&quot;http://keul.fr/public/netbook/e18.jpg&quot;&gt;&lt;img alt=&quot;e01.jpg&quot; src=&quot;http://keul.fr/public/netbook/.e18_m.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;On retire la nappe du lecteur de carte SD et le connecteur du haut-parleur&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;e19.jpg&quot; href=&quot;http://keul.fr/public/netbook/e19.jpg&quot;&gt;&lt;img alt=&quot;e01.jpg&quot; src=&quot;http://keul.fr/public/netbook/.e19_m.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;On retire les 2 vis qui maintiennent la carte-mère&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;e20.jpg&quot; href=&quot;http://keul.fr/public/netbook/e20.jpg&quot;&gt;&lt;img alt=&quot;e01.jpg&quot; src=&quot;http://keul.fr/public/netbook/.e20_m.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;e21.jpg&quot; href=&quot;http://keul.fr/public/netbook/e21.jpg&quot;&gt;&lt;img alt=&quot;e01.jpg&quot; src=&quot;http://keul.fr/public/netbook/.e21_m.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Il ne reste pus qu'à nettoyer le ventilateur&lt;/p&gt;
&lt;p&gt;&lt;a title=&quot;e22.jpg&quot; href=&quot;http://keul.fr/public/netbook/e22.jpg&quot;&gt;&lt;img alt=&quot;e01.jpg&quot; src=&quot;http://keul.fr/public/netbook/.e22_m.jpg&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://keul.fr/post/38#comment-form</comments>
      <wfw:comment>http://keul.fr/post/38#comment-form</wfw:comment>
      <wfw:commentRss>http://keul.fr/feed/atom/comments/38</wfw:commentRss>
      </item>
    
  <item>
    <title>Les numéros de version</title>
    <link>http://keul.fr/post/36</link>
    <guid isPermaLink="false">urn:md5:163fc5c430b0e74fee36b59a2d93f7bf</guid>
    <pubDate>Wed, 17 Aug 2011 19:22:00 +0200</pubDate>
    <dc:creator>Keul</dc:creator>
            
    <description>    &lt;p&gt;S'il y a bien un problème avec les logiciels, c'est leurs système de numération de versions qui peut causer bien des problèmes.&lt;/p&gt;
&lt;p&gt;&lt;img title=&quot;Firefox6-goto5&quot; style=&quot;margin: 0 auto; display: block;&quot; alt=&quot;Firefox6-goto5&quot; src=&quot;http://keul.fr/public/.ScreenShot002_m.jpg&quot; /&gt;&lt;/p&gt;
&lt;p style=&quot;text-align:center&quot;&gt;&lt;a href=&quot;https://plus.google.com/111843973871258959646/posts/KcSU13hXqte&quot;&gt;Source&lt;/a&gt;&lt;/p&gt;
&lt;a hreflang=&quot;en&quot; href=&quot;http://www.nerfnow.com/comic/378&quot;&gt;Capitalisme&lt;/a&gt;
oblige, les versions permettent d'amasser pas mal d'argent avec la
vente de logiciels, plus concurrentiels, plus performants, plus fonctionnels, plus jolis,
plus efficaces, plus &lt;a hreflang=&quot;fr&quot; href=&quot;http://professeurs.esiea.fr/wassner/?2007/02/01/37-loi-de-moore-loi-de-lourd-match-nul&quot;&gt;lourds&lt;/a&gt;... Difficile donc de se débarrasser avec élégance.&lt;br /&gt;&lt;br /&gt;Si ce n'est pas un problème avec les sites web dont les logiciels qui le génère tournent coté serveur (hors navigateur), ça l'est beaucoup plus avec les logiciels coté utilisateur. &lt;br /&gt;&lt;br /&gt;Et ça, Google l'a bien compris et sait que l'utilisateur ne veux pas s'embêter avec ce genre de détails, en mettant le tout à jour sans trop l'annoncer à l'utilisateur. Je ne sais pas à quelle version est Google Chrome, ni Gmail, ni Google Earth... La seule exception étant Android, mais ça tiens plus aux limites matérielle (j'ai un smartphone d'entrée de gamme) et à la flemmardise des constructeurs. En tout cas, quand je vais sur un PC, que je vois Chrome à jour, Firefox 3.6 et IE6, je comprends vite le bug.&lt;p&gt;Je pense qu'il serait temps pour Mozilla de mettre automatiquement ses logiciels à jours de manière silencieuse (comme Chrome), MAIS en proposant néanmoins dans les options le choix de désactiver cette fonctionnalité (contrairement à Chrome).&lt;/p&gt;
&lt;p&gt;Les développeurs doivent aussi éviter autant que possible la vérification du numéro de version pour se baser uniquement sur la présence de la fonctionnalité.&lt;/p&gt;
Une solution élégante est aussi celle adopté par ubuntu, utilisant la date : on sais facilement si on a à faire à une version à jour, il n'y a pas de concours d'e-penis.&lt;br /&gt;&lt;br /&gt;J'en ferai d'ailleurs un article sur les bonnes pratiques de programmation web.&lt;br /&gt;</description>
    
    
    
          <comments>http://keul.fr/post/36#comment-form</comments>
      <wfw:comment>http://keul.fr/post/36#comment-form</wfw:comment>
      <wfw:commentRss>http://keul.fr/feed/atom/comments/36</wfw:commentRss>
      </item>
    
  <item>
    <title>XML soupe(SOAP) ?</title>
    <link>http://keul.fr/post/35</link>
    <guid isPermaLink="false">urn:md5:465bbe4484b0dec0755ecca6a081e0b2</guid>
    <pubDate>Sun, 31 Jul 2011 23:33:00 +0200</pubDate>
    <dc:creator>Keul</dc:creator>
            
    <description>    L'informatique, c'est de la rigueur.&lt;br /&gt;&lt;br /&gt;Bon, après, y'en a qui ne comprennent pas et qui publient des trucs foireux. Donc quand dans un flux XML vous avez des personnes qui utilisent le caractère &amp;amp; autrement que comme entitée HTML (&amp;amp;amp;, &amp;amp;acute, &amp;amp;lt;…) en oubliant par exemple de parser une URL, on obtiens une belle erreur en exploitant le flux.&lt;br /&gt;&lt;br /&gt;Solution pour corriger si le responsable du bug met 15 plombes à réagir :&lt;br /&gt;
&lt;pre&gt;//Attention, patch honteux
$pattern = &quot;/(&amp;amp;[^a-zA-Z\#])|(&amp;amp;\#[^0-9])|(&amp;amp;[a-zA-Z]+[^;a-zA-Z])|(&amp;amp;\#[0-9]+[^;0-9])/&quot;;//bullshit pattern
$replacement = &quot;&amp;amp;$2&quot;;//rustine grosse comme ma B
if( preg_match_all ($pattern, $raw_flux, $matches) &amp;gt; 0 ) {
//A chaque fois que le script entre dans cette boucle, Dieu tue un chaton (Shami inclus)
$datas=explode('&amp;lt;![CDATA[',$raw_flux);//on ne fait des remplace que sur les parties hors de &amp;lt;![CDATA[ * ]]&amp;gt;
foreach($datas as $key =&amp;gt; $cdt) {
if($key&amp;gt;0) {
$ct=explode(']]&amp;gt;',$cdt);
$ct[1] = preg_replace ($pattern, $replacement, $ct[1]);
$datas[$key]=implode(']]&amp;gt;',$ct);
} else {
$datas[$key] = preg_replace ($pattern, $replacement, $cdt);
}
}
$raw_flux=implode('&amp;lt;![CDATA[',$datas);
}
&lt;/pre&gt;</description>
    
    
    
          <comments>http://keul.fr/post/35#comment-form</comments>
      <wfw:comment>http://keul.fr/post/35#comment-form</wfw:comment>
      <wfw:commentRss>http://keul.fr/feed/atom/comments/35</wfw:commentRss>
      </item>
    
  <item>
    <title>Le web et les données</title>
    <link>http://keul.fr/post/33</link>
    <guid isPermaLink="false">urn:md5:2ae57d6ca7a59e714958204b600ecd21</guid>
    <pubDate>Wed, 29 Jun 2011 18:10:00 +0200</pubDate>
    <dc:creator>Keul</dc:creator>
            
    <description>    Certaines entreprises se mettent à tenter de prendre possession de vos données tout en voulant garder les leurs. La loi étant (normalement) la même pour tous, on se retrouve avec certains concepts intéressants :&lt;br /&gt;&lt;br /&gt;- Blizzard tente de s'approprier votre réseau en vous interdisant d'analiser le traffic circulant sur celui-ci à la &lt;a href=&quot;http://eu.blizzard.com/fr-fr/company/about/termsofuse.html&quot;&gt;section 12.3 de leurs contrat&lt;/a&gt;.&lt;br /&gt;Blizzard ne serait donc pas compatible avec la LOPPSI et avec tout réseau de plus d'un utilisateur. Si un membre de ma famille joue à un jeu blizzard, rien ne m’empêche de lancer &lt;a href=&quot;http://www.wireshark.org/&quot;&gt;wireshark &lt;/a&gt;sur le PC, n'ayant pas accepté leurs contrat. FAIL.&lt;br /&gt;&lt;br /&gt;- Facebook/twitterpic/... veulent s'approprier les droits sur les images postées par leurs utilisateurs. Manque de bol, &lt;a href=&quot;http://fr.wikipedia.org/wiki/Le_Cadeau_de_C%C3%A9sar&quot;&gt;on ne peut pas récupérer ce que les autres ne possèdent pas&lt;/a&gt;. S'ils disent qu'ils possèdent les droits de publier l'image, répondez leurs simplement : &quot;cette image/texte/vidéo est sous copyright et a été posté par un membre de ma famille sur votre site. Je ne vous ai donc jamais donné de droits sur cette œuvre vous prie de bien vouloir la retirer rapidement, conformément aux lois sur le copyright.&quot;&lt;br /&gt;&lt;br /&gt;Enfin, j'attends quand-même de voir ce que va donner la loi hadopi quand elle va se mettre à couper les connexions à internet pour &lt;a href=&quot;http://www.20minutes.fr/article/657578/web-facebook-page-sarkozy-piratee&quot;&gt;défaut&lt;/a&gt; &lt;a href=&quot;http://www.lefigaro.fr/societes/2011/04/27/04015-20110427ARTFIG00495-sony-victime-du-pire-piratage-de-son-histoire.php&quot;&gt;de&lt;/a&gt; &lt;a href=&quot;http://fr.wikipedia.org/wiki/Lulzsec&quot;&gt;sécurisation&lt;/a&gt; et qui cherche à rendre le visionnage de streaming illegal (hop, mettons en prison tout ceux qui se sont fait &lt;a href=&quot;http://www.youtube.com/watch?v=oHg5SJYRHA0&quot;&gt;rick-roller&lt;/a&gt; XD)&lt;br /&gt;</description>
    
    
    
          <comments>http://keul.fr/post/33#comment-form</comments>
      <wfw:comment>http://keul.fr/post/33#comment-form</wfw:comment>
      <wfw:commentRss>http://keul.fr/feed/atom/comments/33</wfw:commentRss>
      </item>
    
  <item>
    <title>Ma vision du panneau d'options dans firefox</title>
    <link>http://keul.fr/post/17</link>
    <guid isPermaLink="false">urn:md5:106954590a6dbadf64601a8e7266f530</guid>
    <pubDate>Tue, 31 May 2011 23:52:00 +0200</pubDate>
    <dc:creator>Keul</dc:creator>
            
    <description>    &lt;p&gt;(english version below)&lt;/p&gt;
&lt;p&gt;Personnellement, j'ai adoré le concept d'avoir mis les modules de Firefox dans une fenêtre du navigateur et non plus dans un popup souvent limité en taille.&lt;/p&gt;
&lt;p&gt;Par contre, je pense qu'il faudrait revoir l'organisation des options.&lt;/p&gt;
&lt;p&gt;J'ai donc réalisé une petite interface dans une page web montrant comment je verrai bien la configuration de Firefox, avec quelques idées :&lt;/p&gt;
&lt;p&gt;- La gestion des profils, avec un mode débutant qui n'affiche pas les options avancées&lt;/p&gt;
&lt;p&gt;- Un test de connexion internet avec un bouton permettant de corriger les problèmes de connexion (effectuant une détection automatique du proxy)&lt;/p&gt;
&lt;p&gt;- Un système de test du filtrage de contenu, indiquant par exemple si le navigateur passe par un proxy, si certains protocoles sont bloqués ou certains sites sensibles (en utilisant une liste personnalisable de sites à tester)&lt;/p&gt;
&lt;p&gt;- Une section social, permettant facilement de publier dans son réseau social un article sans que celui-ci ne doives proposer plein de boutons pour chaque réseau social existant.&lt;/p&gt;
&lt;p&gt;- Une gestion de l'interface du navigateur triée (vidéo/audio/images/texte/...)&lt;/p&gt;
&lt;p&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://fichiers.keul.fr/firefox-options.html&quot;&gt;http://fichiers.keul.fr/firefox-options.html&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://fichiers.keul.fr/firefox-options.html&quot;&gt;&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;&lt;br /&gt;&lt;br /&gt;I loved the concept of putting the Firefox module manager in the browser window rather than in a popup limited in size.&lt;p&gt;But I think that we need to organize the management of options.&lt;/p&gt;
&lt;p&gt;I've made a small interface in a web page showing how I see the new Firefox option panel, with some ideas :&lt;/p&gt;
&lt;p&gt;- Profil management, with a beginner mode that hide advanced options.&lt;/p&gt;
&lt;p&gt;- Internet connectivity test with an auto-configure button that correct connectivity problems (with an automatic proxy configuration detection)&lt;/p&gt;
&lt;p&gt;- A system that detect content filtering, displaying for example the use of a proxy, the protocols that are blocked or some sensible websites (using a custom list to test)&lt;/p&gt;
&lt;p&gt;- A social section, that permits to link in the user social network a web page without&amp;nbsp; using a lot of buttons for all social networks existing.&lt;/p&gt;
&lt;p&gt;- The management of the web browser interface better sorted (vidéo/audio/pictures/text/...)&lt;/p&gt;
&lt;p&gt;&lt;a hreflang=&quot;en&quot; href=&quot;http://fichiers.keul.fr/firefox-options.html&quot;&gt;http://fichiers.keul.fr/firefox-options.html&lt;/a&gt;&lt;/p&gt;
&lt;br /&gt;</description>
    
    
    
          <comments>http://keul.fr/post/17#comment-form</comments>
      <wfw:comment>http://keul.fr/post/17#comment-form</wfw:comment>
      <wfw:commentRss>http://keul.fr/feed/atom/comments/17</wfw:commentRss>
      </item>
    
  <item>
    <title>La signature électronique et le cryptage</title>
    <link>http://keul.fr/post/31</link>
    <guid isPermaLink="false">urn:md5:24bc71459c75bb3315ef87a58370deea</guid>
    <pubDate>Mon, 18 Apr 2011 18:41:00 +0200</pubDate>
    <dc:creator>Keul</dc:creator>
            
    <description>    L'informatique est basé sur la gestion des données, qui sont converties (clavier/écran/haut-parleur), transmises(cables), stockées(RAM, HDD) et traitées(CPU, circuits intégrés).&lt;br /&gt;Et ces données sont précieuses. Gérés par d'énormes systèmes informatiques, elles ont fait la fortune de Microsoft, Google, Apple, Facebook, Twitter...&lt;br /&gt;&lt;br /&gt;J'avais déjà expliqué qu'il était important de pouvoir &lt;a href=&quot;http://keul.fr/post/12&quot;&gt;posséder ses données&lt;/a&gt;, parce-que devoir les récupérer ensuite peut être une véritable plaie (10H pour &lt;a href=&quot;http://keul.fr/post/13&quot;&gt;importer un forumactif propriétaire&lt;/a&gt; avec perte des mots de passe contre 15min d'&lt;a href=&quot;http://keul.fr/post/28&quot;&gt;import d'une galerie d'images&lt;/a&gt; sans perte).&lt;br /&gt;Mais en plus de les posséder, il faut aussi les sécuriser, avec des&lt;a href=&quot;http://keul.fr/post/23&quot;&gt; méthodes adaptées&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;En informatique, on dispose de deux méthodes :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Le cryptage ou &lt;a href=&quot;http://fr.wikipedia.org/wiki/Chiffrement&quot;&gt;chiffrement &lt;/a&gt;qui traite une données afin qu'elle ne soit lisible que par les personnes voulues.&lt;/li&gt;
&lt;li&gt;La signature ou le hashage qui permet de certifier une donnée.&lt;/li&gt;
&lt;/ul&gt;
Le chiffrement peut être symétrique, le message est donc chiffré et déchiffré avec la même clef, n'importe-qui ayant cette clef pouvant décoder le message.&lt;br /&gt;&lt;br /&gt;Le chiffrement peut aussi être asymétrique, chiffré par une clef publique, et déchiffrable uniquement par une clef privé correspondante. On peux donc facilement distribuer des clef publique à la vue de tous (la confidentialités n'est pas nécessaire, seul l'authenticité compte.)&lt;br /&gt;&lt;br /&gt;La signature permet elle de certifier l'authenticité du contenu.&lt;br /&gt;Si je prends par exemple que la signature de &lt;a href=&quot;http://www.google.com/search?q=Insurance.aes256&quot;&gt;Insurance.aes256&lt;/a&gt; est &lt;strong&gt;cce54d3a8af370213d23fcbfe8cddc8619a0734c&lt;/strong&gt;, si jamais vous téléchargez le fichier, vous pourrez vérifier que le fichier est bien celui dont je parle en comparant la signature sha1 avec celle que j'ai donnée ci-dessus. Si jamais vous téléchargez un autre fichier, ou le même fichier, mais corrompu (intentionnellement ou pas), la signature ne sera pas la même.&lt;br /&gt;&lt;br /&gt;Pour faire simple : je possède une paire de clef publique et privée GPG. N'importe-qui peux donc en utilisant ma clef publique chiffrer un document, dont je serai le seul à pouvoir déchiffrer à l'aide de ma clef privée. Je peux ensuite signer un document avec ma clef privée, et toute personne disposant de la clef publique pourra vérifier que c'est bien moi qui l'ai signé.&lt;br /&gt;&lt;br /&gt;Comparé à un document papier,&lt;br /&gt;- La signature d'un fichier correspond à la certification de celui-ci au bit près, en assurant qu'il n'a pas été altéré depuis la signature.&lt;br /&gt;- Si vous signez une feuille de papier, je doute que cette signature disparaissent ou soit invalidée si jamais la feuille est modifiée (on peut éventuellement ajouter une clause dans un espace vide sur un contrat), là, l'employé sera protégé uniquement parce-qu'il aura la copie du contrat signé par l'entreprise sans cette clause).&lt;br /&gt;&lt;br /&gt;- Par contre, une signature n'est jamais fiable à 100%, vu qu'il y a toujours possibilité de piratage de l'ordinateur (des solutions très sécurisées existent, à vous de juger la sécurité requise face à la convivialité: un live-cd linux/BSD ne stocke rien sur disque-dur et donc est plus sécurisé, mais reste moins pratique qu'une version installée) ou la faille humaine (Si vous n'avez pas laissé votre mot de passe sur un post-it, on peux toujours passer par la méthode forte)&lt;br /&gt;&lt;br /&gt;&lt;hr&gt;&lt;br /&gt;Suite &lt;a href=&quot;https://twitter.com/#%21/Maitre_Eolas/status/59900132073807872&quot;&gt;aux&lt;/a&gt; &lt;a href=&quot;https://twitter.com/#%21/Maitre_Eolas/status/59902153841582081&quot;&gt;twitts&lt;/a&gt; de Maitre Éolas, une réponse technique s'impose :&lt;br /&gt;&lt;br /&gt;Un fichier zip, c'est comme une enveloppe qui permet de rassembler plusieurs documents et de les compacter.&lt;br /&gt;Imaginons trois fichiers contenant &quot;&lt;strong&gt;AAAAA&lt;/strong&gt;&quot;, &quot;&lt;strong&gt;BBBCC&lt;/strong&gt;&quot; et &quot;&lt;strong&gt;DDDEE&lt;/strong&gt;&quot;&lt;br /&gt;De manière très simple, un fichier zip contiendrais &quot;&lt;strong&gt;ZIP A5-B3C2-D3E2 ZIP&lt;/strong&gt;&quot; (je simplifie, en réalité, c'est plus compliqué)&lt;br /&gt;&lt;br /&gt;Vous pouvez signer sur l'enveloppe ou signer chacun des documents qu'il contiens, vous connaissez le résultat.&lt;br /&gt;Quand vous signez le fichier zip, vous ne signez pas l'&quot;enveloppe&quot; du fichier &quot;ZIP_&quot; mais TOUT le document.&lt;br /&gt;On peux donc dire que signer une archive zip reviens à avoir TOUS les fichiers de cette archive signé.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;ATTENTION &lt;/strong&gt;par contre. La signature étant &quot;étalée&quot; sur tous les fichiers de l'archive, la signature n'est valide que si vous disposez de l'archive complète.&lt;br /&gt;&lt;br /&gt;En gros, signer un fichier zip reviens à étaler tous les documents d'une enveloppe et faire une grosse signature sur tous les documents en même temps&lt;br /&gt;&lt;br /&gt;La faille restant tiens ensuite de la sécurités de l’algorithme et de la fiabilitée du processus.&lt;br /&gt;</description>
    
    
    
          <comments>http://keul.fr/post/31#comment-form</comments>
      <wfw:comment>http://keul.fr/post/31#comment-form</wfw:comment>
      <wfw:commentRss>http://keul.fr/feed/atom/comments/31</wfw:commentRss>
      </item>
    
  <item>
    <title>Dropbox</title>
    <link>http://keul.fr/post/29</link>
    <guid isPermaLink="false">urn:md5:71e584d48f862a41dc16fc876643a073</guid>
    <pubDate>Sat, 26 Mar 2011 23:12:00 +0100</pubDate>
    <dc:creator>Keul</dc:creator>
            
    <description>    &lt;p&gt;Pour pouvoir travailler facilement de manière collaborative au sein de mon association, on m'a conseillé d'utiliser &lt;a href=&quot;https://www.dropbox.com&quot;&gt;Dropbox&lt;/a&gt;. Suite aux incompréhensions devant mon refus de l'utiliser, j'ai décidé de rédiger un article expliquant les problème du logiciel.&lt;/p&gt;
&lt;p&gt;Pour ceux qui ne connaissent pas, Dropbox est un service d'hébergement de fichiers en ligne permettant de partager des fichiers, d'en gérer différentes versions, de les synchroniser avec des dossiers locaux... &lt;a hreflang=&quot;en&quot; href=&quot;https://www.dropbox.com/tour#6&quot;&gt;Dans la présentation&lt;/a&gt; et &lt;a hreflang=&quot;en&quot; href=&quot;https://www.dropbox.com/features&quot;&gt;les fonctionnalités&lt;/a&gt;, il y a quelques points que je ne tolère pas par contre :&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Dropbox replaces:&lt;/em&gt;&lt;/p&gt;
&lt;ul style=&quot;font-style: italic;&quot; class=&quot;blue-bullets&quot;&gt;&lt;li&gt;Using USB drives to move files between computers&lt;/li&gt;
&lt;/ul&gt;
Dropbox passe par ma connexion internet qui ne &lt;a href=&quot;https://twitter.com/#%21/Keul125/status/46123928086773760&quot;&gt;fonctionne pas toujours&lt;/a&gt;  et son pauvre méga d'upload (128Ko/s). Mes clef/disques USB, mon réseau gigabit et mon wifi sont &lt;del&gt;vingt fois plus rapide et&lt;/del&gt; autonomes. EDIT : argument invalide, Dropbox sais utiliser les transferts via LAN.&lt;br /&gt;&lt;ul style=&quot;font-style: italic;&quot; class=&quot;blue-bullets&quot;&gt;&lt;li&gt;Complicated backup software and hardware&lt;/li&gt;
&lt;/ul&gt;
Dropbox ne fait PAS de backup. Le backup, c'est ÇA : &lt;a hreflang=&quot;en&quot; href=&quot;http://www.taobackup.com/&quot;&gt;http://www.taobackup.com&lt;/a&gt;.&lt;br /&gt;&lt;ul class=&quot;blue-bullets&quot;&gt;
&lt;li&gt;Security &amp;amp; Privacy : Dropbox uses military grade encryption methods to both transfer and store your data.
&lt;/li&gt;
&lt;/ul&gt;
Security &amp;amp; Privacy n'est pas possible avec un logiciel propriétaire.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;On a donc les avantages suivants :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;On peux toujours avoir une &lt;a href=&quot;http://keul.fr/post/12&quot;&gt;copie des données&lt;/a&gt;, donc c'est tolérable.&lt;/li&gt;
&lt;li&gt;C'est simple à utiliser (comme un Ipad/Facebook/...)&lt;/li&gt;
&lt;li&gt;C'est gratuit si on se contente de 2Go (extensible à 8Go par parrainage sur mails jetable)&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;Et les inconvénients suivants :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Espace limité (Impossible de dépasser les 100Go)&lt;/li&gt;
&lt;li&gt;Peu adaptable (impossible de relier à d'autres outils pour avoir une gestion unifiée de comptes et de systèmes contrairement à FTP/SFTP...)&lt;/li&gt;
&lt;li&gt;Pas de sécurités des données (impossible de vérifier dans le code source que les données ne sont pas exploitable par la société Dropbox, &lt;a hreflang=&quot;en&quot; href=&quot;https://services.mozilla.com/privacy-policy/&quot;&gt;contrairement à Firefox sync&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Vous n'avez pas de contrôle sur le serveur, l'hébergeur peut faire ce que bon lui semble, en &lt;a href=&quot;http://www.linformaticien.com/actualites/id/9695/wikileaks-suite-aux-menaces-d-eric-besson-ovh-saisit-la-justice.aspx&quot;&gt;bien &lt;/a&gt;ou en &lt;a href=&quot;http://www.silicon.fr/amazone-boute-wikileaks-hors-des-etats-unis-43220.html&quot;&gt;mal&lt;/a&gt;. N’espérez pas héberger les câbles de WikiLeaks dessus ou une copie de &lt;span style=&quot;&quot; id=&quot;search&quot;&gt;FairUse4WM&lt;/span&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;Conclusion :&lt;br /&gt;Tant qu'il y aura de la concurrence, vous pourrez utiliser drop-box si vous voulez.&lt;br /&gt;Personnellement, ça ne m’intéresse pas, je préfère FTP/SFTP qui est libre et extensible à tout, après, on a des CVS plus évolués aussi (plus complexes aussi, mais on n'a pas rien sans rien).&lt;br /&gt;</description>
    
    
    
          <comments>http://keul.fr/post/29#comment-form</comments>
      <wfw:comment>http://keul.fr/post/29#comment-form</wfw:comment>
      <wfw:commentRss>http://keul.fr/feed/atom/comments/29</wfw:commentRss>
      </item>
    
  <item>
    <title>Passer de Danbooru à Shimmie</title>
    <link>http://keul.fr/post/28</link>
    <guid isPermaLink="false">urn:md5:785cdcfa0d8b877a88cd5d851bec648d</guid>
    <pubDate>Thu, 24 Mar 2011 12:55:00 +0100</pubDate>
    <dc:creator>Keul</dc:creator>
            
    <description>    &lt;p&gt;Après mon script de conversion de forumactif vers SMF, un autre petit outil de conversion pour passer de &lt;a href=&quot;http://en.wikipedia.org/wiki/Danbooru&quot;&gt;Danbooru&lt;/a&gt; à &lt;a href=&quot;http://code.shishnet.org/shimmie2/&quot;&gt;Shimmie&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://fichiers.keul.fr/conv_danbooru_shimmie.zip&quot;&gt;Télécharger le script&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;MAJ : cette version recalcule les occurences de tags: Si votre migration est déjà faite, executez juste cette requête : &lt;/p&gt;
&lt;pre&gt;UPDATE tags&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; SET&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; `count`=&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; (SELECT COUNT(image_id) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; FROM image_tags&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; WHERE image_tags.tag_id=tags.id&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; GROUP BY tags.id)&lt;/pre&gt;
&lt;p&gt;Attention, shimmie utilise l'ID 1 lorsque l'utilisateur est anonyme, ce qui correspond au premier utilisateur de danbooru.&lt;/p&gt;
&lt;pre&gt;INSERT INTO `config` (`name`,`value`) VALUES (&quot;anon_id&quot;,-1) ON DUPLICATE KEY UPDATE value=-1&lt;/pre&gt;&lt;p&gt;Remplissez les variables de configuration et roulez jeunesse.&lt;/p&gt;
&lt;p&gt;Détails techniques :&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Importe les utilisateurs (pas les mots de passe par contre)&lt;/li&gt;
&lt;li&gt;Importe les tags et aliases&lt;/li&gt;
&lt;li&gt;régénéré les miniatures&lt;/li&gt;
&lt;li&gt;copie les images dans les bons répertoires&lt;/li&gt;
&lt;li&gt;importe les commentaires des images&lt;/li&gt;
&lt;/ul&gt;
J'ai converti une base de 8000 images environ en un quart d'heure. Il est possible de conserver les mots de passe avec quelques modifications pour que Shimmie puisses les utiliser.&lt;br /&gt;&lt;br /&gt;J'ai aussi un patch de liaison avec &lt;a href=&quot;http://www.simplemachines.org/&quot;&gt;SMF&lt;/a&gt; qui permet d'utiliser les login/pass de SMF et de gérer les commentaires dans le forum.&lt;br /&gt;</description>
    
    
    
          <comments>http://keul.fr/post/28#comment-form</comments>
      <wfw:comment>http://keul.fr/post/28#comment-form</wfw:comment>
      <wfw:commentRss>http://keul.fr/feed/atom/comments/28</wfw:commentRss>
      </item>
    
  <item>
    <title>Hashage et signatures</title>
    <link>http://keul.fr/post/23</link>
    <guid isPermaLink="false">urn:md5:0c501433ce8b9cb31d64db822c5c68cc</guid>
    <pubDate>Sat, 12 Feb 2011 13:34:00 +0100</pubDate>
    <dc:creator>Keul</dc:creator>
            
    <description>    &lt;h3&gt;Les données corrompues&lt;/h3&gt;
&lt;p&gt;En informatique, on est souvent amené à traiter les données. compression avec pertes, compression sans perte, chiffrement (en cryptogtraphie)&lt;/p&gt;
&lt;p&gt;Lors de la transmission d'une grande quantité de données, on peut être amené à vouloir vérifier qu'il n'y a pas eu de dommages lors du transfert ou du stockage sur un support physique.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;L'une des méthode les plus basique est l'ajout d'un &lt;a href=&quot;http://fr.wikipedia.org/wiki/Bit_de_parit%C3%A9#Exemple_:_bit_de_parit.C3.A9&quot;&gt;&lt;strong&gt;bit de parité&lt;/strong&gt;&lt;/a&gt;, mis à 1 lorsque le nombre de bits présent dans les données à transmettre est impair. Très facile à implémenter, il peut s'avérer insuffisant si trop de données sont corrompues. &lt;/li&gt;
&lt;li&gt;On utilisera alors des algorithmes plus complexes, tel que le &lt;a href=&quot;http://fr.wikipedia.org/wiki/Contr%C3%B4le_de_redondance_cyclique&quot;&gt;&lt;strong&gt;crc&lt;/strong&gt;&lt;/a&gt; qui peux détecter de manière plus fiable si des données sont corrompues. On le voit généralement lors de l'utilisation de CD-ROM rayés ou endommagés.&lt;/li&gt;
&lt;li&gt;Il est même possible de pouvoir corriger des erreurs éventuelles avec les &lt;a style=&quot;font-weight: bold;&quot; href=&quot;http://fr.wikipedia.org/wiki/Code_correcteur&quot;&gt;codes correcteurs&lt;/a&gt; dans le cas où une faible partie des données seraient corrompues. On les trouve non seulement sur les CD-ROM mais aussi sur usenet (&lt;a href=&quot;http://fr.wikipedia.org/wiki/Parchive&quot;&gt;fichiers Parchive&lt;/a&gt;) ou dans les systèmes RAID qui incluent cette redondance capable de récupérer les données corrompues.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;=&amp;gt; Je vous conseille vivement l'utilisation de &lt;a href=&quot;http://rapidcrc.sourceforge.net/&quot;&gt;RapidCRC&lt;/a&gt; pour vérifier par exemple après gravure/stockage que les fichiers n'ont pas été corrompus en ayant préalablement mis le CRC dans le nom du fichier.&lt;/strong&gt;&lt;/p&gt;
&lt;br /&gt;&lt;h3&gt;Les données corrompues intentionnellement&lt;/h3&gt;
&lt;p&gt;Un autre aspect est le problème des dommages intentionnel qui peuvent apparaitre sur les données. Une personne mal intentionnée serait alors capable de modifier les données sans que le système qui détecte la corruption ne s'en rende comptes.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;On utilisera alors des algorithmes plus évolués qui rendront très difficile la modification intentionnelle, au cout de calculs supplémentaires et d'une augmentation de la taille de la &quot;signature&quot;.&lt;/li&gt;
&lt;li&gt;Il existe plusieurs algorithmes plus ou moins fiables, les plus connus étant md5 et sha128.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;=&amp;gt; Si vous distribuez des fichiers sur votre site web par exemple, vous pouvez donner les signatures md5 correspondantes. (on pourra voir par exemple le fichier &lt;a href=&quot;http://blender-mirror.kino3d.org/peach/md5sums&quot;&gt;md5sums&lt;/a&gt; de &lt;a href=&quot;http://www.bigbuckbunny.org/&quot;&gt;bigbuckbunny.org&lt;/a&gt; qui avec le logiciel rapidCRC permet de vérifier que les autres fichiers ne sont pas corrompus, intentionnellement ou pas.)&lt;/strong&gt;&lt;/p&gt;
&lt;br /&gt;&lt;h3&gt;La protection des mots de passe&lt;/h3&gt;
&lt;p&gt;Ces algorithmes ont permis d'améliorer la sécurité dans le stockage des mots de passe : En effet, la &quot;signature&quot; permet de vérifier que les données transmises n'ont pas été modifiées, mais ne permettent pas de les connaitre. On pourra donc utiliser la signature du mot de passe d'un utilisateur, et la comparer à la signature du mot de passe fourni lors de son authentification pour vérifier que les mots de passe sont identique, sans pouvoir les connaitre.&lt;/p&gt;
&lt;p&gt;On pourrait alors penser à utiliser la &quot;signature&quot; md5 d'un mot de passe, mais un gros inconvénient apparait : l'attaque par &lt;a href=&quot;http://fr.wikipedia.org/wiki/Table_arc-en-ciel&quot;&gt;table arc-en-ciel&lt;/a&gt; qui consiste à chercher dans une liste pré-calculée et optimisée d'une grande taille (prévu pour tenir sur un DVD généralement) de signatures si un mot de passe corresponds. Une parade est alors d'inclure une donnée supplémentaire qui sera mixée avec et stockée en supplément : un &lt;a href=&quot;http://fr.wikipedia.org/wiki/Table_arc-en-ciel#Contre-mesures&quot;&gt;sel&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Cette contre-mesure empêche donc l'attaque par table rainbow, mais il reste un problème : md5 et sha128 sont prévu pour pouvoir facilement vérifier la signature de fichiers, qui peuvent atteindre plusieurs centaines de Mo. Mais ils peuvent, à l'aide des processeurs actuels et les processeurs de carte graphiques adaptés calculer la signature de plein de mots de passe potentiels par force brute en l'espace de quelques jours et avec les technologies de type &lt;a href=&quot;http://fr.wikipedia.org/wiki/Compute_Unified_Device_Architecture&quot;&gt;CUDA&lt;/a&gt;, c'est encore plus &lt;a href=&quot;http://fr.wikipedia.org/wiki/MD5#Cryptanalyse&quot;&gt;rapide&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;On passe alors à de nouveaux algorithmes dont le but est de demander plus de calculs afin de ralentir l'attaque par force brute, au point qu'une attaque par force brute ne prendrais pas quelques jours mais quelques centaines de siècles, et qui se paient même le luxe de pouvoir définir manuellement le niveau de complexités pour s'adapter à la montée en puissance incessante de nos ordinateurs. Grosso modo, on aurait par exemple, md5 qui calcule la signature d'un &lt;a href=&quot;http://www.bigbuckbunny.org/&quot;&gt;film&lt;/a&gt; en quelques dizaines de secondes, et des mots de passe en quelques microsecondes, et &lt;a href=&quot;http://us.php.net/manual/fr/function.crypt.php&quot;&gt;crypt&lt;/a&gt; qui calcul un mot de passe en dixièmes de secondes (vous pouvez donc vérifier le mot de passe d'un utilisateur qui s’authentifie en quelques dixièmes de secondes, où une attaque par force brute serait alors inefficace).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;=&amp;gt; Pour &lt;/strong&gt;&lt;a style=&quot;font-weight: bold;&quot; href=&quot;http://www.f-secure.com/weblog/archives/00002095.html&quot;&gt;protéger les mots de passe&lt;/a&gt;&lt;strong&gt; de vos utilisateurs, utilisez des fonctions &lt;a href=&quot;http://php.net/manual/fr/function.crypt.php&quot;&gt;prévues pour&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Edit:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Suite à une discussion avec &lt;a href=&quot;http://haruhi.fr&quot;&gt;Axel&lt;/a&gt; et aux problèmes de compatibilité entre &lt;a href=&quot;http://keul.fr/post/13&quot;&gt;différents systèmes&lt;/a&gt;, je vous rappelle que la fonction &lt;a href=&quot;http://php.net/manual/fr/function.crypt.php&quot;&gt;crypt &lt;/a&gt;génère des hash contenant un identifiant d’algorithme utilisé et qu'il est donc possible avec un autre logiciel de pouvoir utiliser la même authentification alors que les mots de passe hashés avec un algorithme perso ne le permettent pas.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Enfin, vu le succès et les défauts d'&lt;a href=&quot;http://www.openidfrance.fr/&quot;&gt;OpenID&lt;/a&gt; ainsi que les autres méthodes d'authentification, il reste encore beaucoup de travail dans la gestion de l'authentification des utilisateurs.&lt;/p&gt;</description>
    
    
    
          <comments>http://keul.fr/post/23#comment-form</comments>
      <wfw:comment>http://keul.fr/post/23#comment-form</wfw:comment>
      <wfw:commentRss>http://keul.fr/feed/atom/comments/23</wfw:commentRss>
      </item>
    
  <item>
    <title>IPv6</title>
    <link>http://keul.fr/post/26</link>
    <guid isPermaLink="false">urn:md5:3b406f04a4e8ae507e4e7cdb0ed08874</guid>
    <pubDate>Wed, 02 Feb 2011 20:37:00 +0100</pubDate>
    <dc:creator>Keul</dc:creator>
            
    <description>    L'&lt;a href=&quot;http://fr.wikipedia.org/wiki/Internet_Assigned_Numbers_Authority&quot;&gt;IANA&lt;/a&gt; viens d'assigner ses deux dernier bloc d'adresses ipv4 et les différents &lt;a href=&quot;http://fr.wikipedia.org/wiki/Registre_Internet_r%C3%A9gional&quot;&gt;RIR&lt;/a&gt; fonctionnent désormais sur leurs réserves.&lt;br /&gt;&lt;br /&gt;&quot;Un bloc d'adresse IPv4 entre dans un bar : 'Un &lt;a href=&quot;http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing&quot;&gt;CIDR&lt;/a&gt; bien fort s'il vous plait, je suis épuisé.'&quot; (&lt;a href=&quot;http://twitter.com/henet/status/32407702151888896&quot;&gt;source&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;La seule solution est donc un passage au &lt;a href=&quot;http://www.framablog.org/index.php/post/2008/11/21/benjamin-bayart-internet-libre-ou-minitel-20&quot;&gt;Minitel 2.0&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Enfin, pour ceux qui veulent retourner au minitel. Pour les autres, l'alternative consiste à passer à IPv6, qui pour résumer :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Dispose de beaucoup plus d'adresses.&lt;/li&gt;
&lt;li&gt;Gère le QOS (les discussions et jeux auront une priorités supérieur au streaming qui aura une priorité supérieur au téléchargements, évitant ainsi les coupures et saccades.&lt;/li&gt;
&lt;li&gt;Gère nativement l’encryption afin d'éviter d'avoir recours à des protocoles dédiés comme ssh, sftp et https qui dans certains cas peuvent êtres complexes.&lt;/li&gt;
&lt;li&gt;S'auto-configure.&lt;/li&gt;
&lt;li&gt;Et quelques autres détails intéressants...&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;Qu'est-ce qui nous attends alors?&lt;br /&gt;&lt;br /&gt;Testez votre connectivitée IPv4 et IPv6 ici : &lt;a href=&quot;http://ipv6-test.com/&quot;&gt;http://ipv6-test.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Si votre FAI ne peut vous fournir une connectivité ipv6, ou si votre switch/routeur/point d'accès wifi, ainsi que votre OS et vos logiciels ne supportent pas ipv6, vous ne verrez pas de problème dans l'immédiat.&lt;br /&gt;&lt;br /&gt;Par contre les problèmes vont apparaître au fil du temps :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Impossible d'utiliser Skype ou tout logiciel de VoIP avec certaines personnes.&lt;/li&gt;
&lt;li&gt;Impossible de jouer à certains jeux avec certaines personnes.&lt;/li&gt;
&lt;li&gt;Impossible de se connecter à son poste en contrôle distant (VNC, ssh, administration de NAS)&lt;/li&gt;
&lt;li&gt;Impossibilité de se connecter à certains serveurs/sites web&lt;/li&gt;
&lt;/ul&gt;
Et ces problèmes vont perdurer en s'aggravant jusqu'à ce que l'on supporte tous IPv6 et on en a pour quelques années.&lt;br /&gt;
En fait, ipv4 et ipv6 sont incompatibles. &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Si vous supportez les deux, vous n'aurez aucun problème.&lt;/li&gt;
&lt;li&gt;Si vous n'êtes qu'en ipv4, vous ne pourrez pas parler à quelqu'un en ipv6 directement (a moins de passer par un serveur disposant d'ipv4 ET ipv6)&lt;/li&gt;
&lt;li&gt;Si vous n'êtes qu'en ipv6, vous allez regretter de voir aussi peu de serveurs compatibles ipv6 et de ne pouvoir vous connecter directement à certaines personnes.&lt;/li&gt;
&lt;/ul&gt;
Certains FAI iront sûrement utiliser des méthodes pourries comme du NAT à leurs niveau, vous faisant partager votre adresse IP avec d'autres client. Personnellement, je n'y crois pas trop vu les systèmes de sécurités basés sur l'adresse IP et aux délires supplémentaires que ça provoquerait à la Hadopi.&lt;br /&gt;&lt;br /&gt;En tout cas, si ça ne fonctionne pas, n'hésitez pas à vous plaindre à votre FAI ou à changer.&lt;br /&gt;Lui ne fera rien tant que vous ne lui demanderez pas car ça lui coute de l'argent et qu'il s'en fout de la concurrence chez laquelle le client n'ira pas (à 15KM d'un DSLAM, le RTC et l'ADSL à 200ms de ping n'est pas un concurrent pour Numéricable).&lt;br /&gt;Les clients ne sont pas assez informés, l'état étant plus préoccupés par le fait que certains riches pourraient perdre de l'argent à cause du &lt;a href=&quot;http://www.korben.info/fnac-et-drm-suite-de-lhistoire.html&quot;&gt;piratage&lt;/a&gt;, de la &lt;a href=&quot;http://www.humblebundle.com/&quot;&gt;concurrence déloyale&lt;/a&gt; et du manque d'action face à des &lt;a href=&quot;http://store.steampowered.com/&quot;&gt;entreprises&lt;/a&gt; qui &lt;a href=&quot;http://techno.branchez-vous.com/actualite/2010/11/extrait-musicaux-itunes-90-secondes-apple.html&quot;&gt;bougent leurs cul&lt;/a&gt; (certes, leurs systèmes ont des DRM et sont imparfaits, mais il proposent autre chose qu'une technologie vieille de 30ans).&lt;br /&gt;&lt;br /&gt;Et pourtant, le problème est grave:&lt;br /&gt;- La &lt;a href=&quot;http://www.lemonde.fr/technologies/article/2010/08/13/neutralite-du-net-google-defend-son-accord-avec-verizon_1398757_651865.html&quot;&gt;neutralité&lt;/a&gt; du net est &lt;a href=&quot;http://www.generation-nt.com/orange-megaupload-bridage-cogent-opentransit-actualite-1146981.html&quot;&gt;fragile&lt;/a&gt;, surtout lorsqu'elle est géré par des fournisseurs à but lucratif et sans scrupules et non plus par les militaires, universités ou associations.&lt;br /&gt;- Des opérateurs téléphoniques limitent Internet et ne vous donne accès qu'au web (http et https parmi des milliers de services possibles : IRC, MSN, jeux, email ...), essayant même de vous faire payer pour les e-mails.&lt;br /&gt;- Et proposent des forfaits minitel débiles donnant accès à &lt;a href=&quot;http://www.m6mobile.fr/offres-m6-mobile/forfaits-bloques.html&quot;&gt;3 sites internet&lt;/a&gt; parmi les milliard de milliards disponibles sur internet.&lt;br /&gt;- Ils pourraient même faire des offres mobiles IPv6 uniquement avec IPv4 en option pour avoir plus d'Internet.&lt;br /&gt;&lt;a title=&quot;Neutralité du net&quot; href=&quot;http://keul.fr/public/net-neutrality-thumb-550xauto-27419.jpg&quot;&gt;&lt;img title=&quot;Neutralité du net&quot; alt=&quot;Neutralité du net&quot; src=&quot;http://keul.fr/public/.net-neutrality-thumb-550xauto-27419_t.jpg&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Bientôt, on pourra rajouter : Adresse IPv4 pour vous connecter à l'Old Internet.&lt;br /&gt;&lt;br /&gt;Ne tombez pas dans leur piège, demandez un accès au réseau des réseaux, pas un accès au minitel.&lt;br /&gt;&lt;br /&gt;Plus d'informations ici : &lt;a href=&quot;https://www.apnic.net/community/ipv4-exhaustion&quot;&gt;https://www.apnic.net/community/ipv4-exhaustion&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;</description>
    
    
    
          <comments>http://keul.fr/post/26#comment-form</comments>
      <wfw:comment>http://keul.fr/post/26#comment-form</wfw:comment>
      <wfw:commentRss>http://keul.fr/feed/atom/comments/26</wfw:commentRss>
      </item>
    
  <item>
    <title>Les standards</title>
    <link>http://keul.fr/post/20</link>
    <guid isPermaLink="false">urn:md5:41555d191352747baad0cbb465252c50</guid>
    <pubDate>Mon, 31 Jan 2011 13:05:00 +0100</pubDate>
    <dc:creator>Keul</dc:creator>
            
    <description>    mp3, Internet, web, DVD, USB, Divx ou document word font parti de standards tellement répandu que même les personnes qui touchent peu à la technologie connaissent. On en a beaucoup parlé et ils sont énormément utilisés.&lt;br /&gt;&lt;p&gt;Ils sont devenus des standards massivement adoptés suite à des avantages importants :&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;La simplicité (à moins de le rendre obligatoire comme l'administratif français)&lt;/li&gt;
&lt;li&gt;Le faible coût (ou étalé comme dans un abonnement mobile ou MMORPG)&lt;/li&gt;
&lt;li&gt;La compatibilité et fonctionnalité&lt;/li&gt;
&lt;li&gt;Les ajouts/innovations&lt;/li&gt;
&lt;li&gt;La concurrence &lt;/li&gt;
&lt;/ul&gt;
Les standards qui tentent de s'imposer :&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Ogg Vorbis : tente de luter vaillamment face au mp3 super connu et implanté partout et à l'aac (DRMisé)&lt;/li&gt;
&lt;li&gt;OpenDocument : La prise de conscience aide les gens à se tourner vers l'&lt;a href=&quot;http://www.documentfoundation.org/&quot;&gt;open document&lt;/a&gt; face aux documents de la suite office de Microsoft&lt;/li&gt;
&lt;li&gt;WebP :  le nouveau format d'image développé par Google, en lute face au JPEG&lt;/li&gt;
&lt;li&gt;WebM : Dans une bataille qui fait rage face à h264 et Theora&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;Et qu'en est-il de ces formats?&lt;br /&gt;
&lt;p&gt;Bien qu'ogg Vorbis commence à être de plus en plus utilisé dans les jeux, les lecteurs mp3 freinent son déploiement et les constructeurs s'amusent à implémenter de l'aac qui s'oriente vers la haute définition, mais se voit plombé de brevets. A croire que les entreprises préfèrent perdre de l'argent dans les brevets plutôt que d'en dépenser dans la recherche. Au moins, Vorbis et FLAC existent et permettent aux indépendants et débutants de partir sur de bonnes bases.&lt;/p&gt;
&lt;p&gt;Le format OpenDocument commence à prendre de l'ampleur : Avec l'arrivé de LibreOffice (fork d'OpenOffice), son utilisation par l'administration française, son format exploitable par les webmaster et disponible dans GoogleDocuments, l'avenir des standards est positif de ce coté. Pourvu que ça continues dans ce sens.&lt;/p&gt;
Google s'amuse lui aussi avec les formats, et à donc sorti &quot;WebP&quot; pour une meilleur qualité que le JPEG.&lt;br /&gt;Manque de bol, même si la qualités est meilleur, les appareils photos numériques, les télévisions et énormément d'appareils gèrent nativement le JPEG. Il lui faudra énormément de temps pour s'imposer mais Google pourrait y arriver avec un grand coup de marketing (faire comprendre aux gens l’intérêt de passer à ce format) pour que es gens puissent facilement l'utiliser tous les jours.&lt;br /&gt;Personnellement, et à part son nom à la con &quot;WebP&quot;??? Ils auraient pu l'appeler PicturePro ou PictureHQ, il leur faudra énormément de temps pour arriver à un succès, mais ce n'est pas impossible vu le manque de concurrents.&lt;br /&gt;&lt;p&gt;Pour WebM, et à la vue des récents évènements, il est indéniable qu'il sortira grand gagnant :&lt;br /&gt;h264 est plombé par les brevets, ne sera plus disponible sous Google chrome, n'est pas compatible avec la GPL et ne peux donc être integré dans Firefox&lt;br /&gt;WebM est lisible en natif par Firefox, Chrome et Opera, et sera lisible sous IE et Safari &lt;a href=&quot;http://www.pcworld.fr/2011/01/18/internet/des-plugins-webm-internet-explorer-safari/510741/&quot;&gt;grâce à des plugins&lt;/a&gt;, de plus, des puces de décodages matérielles sont en cours d'élaboration/déploiement. Google aura été exemplaire sur ce coup.&lt;/p&gt;
&lt;p&gt;Et je leurs tire mon chapeau quand je vois les services qu'ils proposent : leurs moteur de recherche, Gmail, GoogleDocuments, Google maps et passe pour un ange face à Facebook et Apple.&lt;br /&gt;Certes, on peut les accuser d'ogre absorbant toutes nos informations en se nourrissant de publicité mais il s'agit d'une entreprise qui fonctionne dans une société de capitalisme et qui ne peut pas être exempte de défauts.&lt;br /&gt;Je me demande par contre s'il ne serait pas intéressant d'avoir un site de présentation du libre connu et complet montrant les projets intéressants, avec non seulement Wikipédia ou Firefox, mais aussi des projets moins connus tels qu'&lt;a href=&quot;http://www.openstreetmap.fr/&quot;&gt;OpenStreetMap&lt;/a&gt;, &lt;a href=&quot;http://www.dmoz.org/World/Fran%C3%A7ais/&quot;&gt;DMoz&lt;/a&gt;, &lt;a href=&quot;http://www.documentfoundation.org/&quot;&gt;DocumentFoundation&lt;/a&gt;...&lt;/p&gt;
&lt;p&gt;En tout cas, n'oubliez pas de &lt;a href=&quot;http://keul.fr/post/12&quot;&gt;rester libre&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://keul.fr/post/20#comment-form</comments>
      <wfw:comment>http://keul.fr/post/20#comment-form</wfw:comment>
      <wfw:commentRss>http://keul.fr/feed/atom/comments/20</wfw:commentRss>
      </item>
    
  <item>
    <title>Astuces PHP</title>
    <link>http://keul.fr/post/16</link>
    <guid isPermaLink="false">urn:md5:134715b1dc594695d90856388eeefb9e</guid>
    <pubDate>Fri, 31 Dec 2010 21:57:00 +0100</pubDate>
    <dc:creator>Keul</dc:creator>
            
    <description>&lt;p&gt;Quelques astuces PHP pour :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Traitemer des dates&lt;/li&gt;
&lt;li&gt;Obtenir le résumé d'un texte UTF-8 (sans couper les mots)&lt;/li&gt;
&lt;li&gt;Envoyer un mail en texte HTML en UTF-8&lt;/li&gt;
&lt;li&gt;Connexions à une base de donnée&lt;/li&gt;
&lt;/ul&gt;
&lt;a href=&quot;http://fichiers.keul.fr/astuces.php.txt&quot;&gt;Le tout dans un unique fichier&lt;/a&gt;&lt;br /&gt;    &lt;p&gt;Traitemer des dates :&lt;/p&gt;
&lt;pre&gt;//conversion unix en date
date('(G)H: i:     s        (j)d/(n)m/(y)Y ',$timestamp);
//    heure:minute:seconde  jour/mois/année   ()=sans zero initiaux
date('N          W             U    c',$timestamp);
//   joursemaine semaineannée  unix ISO-8601
//conversion date en unix
$timestamp=mktime($heure,$minutes,$secondes,$mois,$jour,$annee))
//gestion de dates dans mySQL
$date_MYSQL=date('Y-m-d G:i:s',$timestamp);
$timestamp=strtotime($date_MYSQL);
//travail sur les dates
$timestamp=strtotime(&quot;+6 day&quot;,$timestamp);&lt;/pre&gt;
&lt;p&gt;Obtenir le résumé d'un texte UTF-8 (sans couper les mots) :&lt;/p&gt;
&lt;pre&gt;function utf8summary($str,$l) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;if (mb_strlen($str) &amp;gt; $l &amp;amp;&amp;amp; $l) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$s = preg_split('/([\s]+)/u',$str,-1,PREG_SPLIT_DELIM_CAPTURE);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$res = '';
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$L = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (mb_strlen($s[0]) &amp;gt;= $l) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return mb_substr($s[0],0,$l);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;foreach ($s as $v) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$L = $L+strlen($v);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if ($L &amp;gt; $l) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$res .= $v;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return trim($res).'[...]';
&amp;nbsp;&amp;nbsp;&amp;nbsp;}
&amp;nbsp;&amp;nbsp;&amp;nbsp;return $str;
}&lt;/pre&gt;
&lt;p&gt;Envoyer un mail en texte9HTML en UTF-8 :&lt;/p&gt;
&lt;pre&gt;function mail_html_utf8($dest,$sujet,$contenu,$cc='',$bcc='') {
&amp;nbsp;&amp;nbsp;&amp;nbsp;$eol=strtoupper(substr(PHP_OS,0,3) == 'WIN') ? &quot;\r\n&quot; : &quot;\n&quot;;
&amp;nbsp;&amp;nbsp;&amp;nbsp;//message en HTML
&amp;nbsp;&amp;nbsp;&amp;nbsp;$message = &quot;--main boundary&quot;.$eol;
&amp;nbsp;&amp;nbsp;&amp;nbsp;$message .= &quot;Content-Type: text/html; charset=UTF-8&quot;.$eol;
&amp;nbsp;&amp;nbsp;&amp;nbsp;$message .= &quot;Content-Transfer-Encoding: 8bit&quot;.$eol.$eol;
&amp;nbsp;&amp;nbsp;&amp;nbsp;$message .= $contenu.$eol.$eol;
&amp;nbsp;&amp;nbsp;&amp;nbsp;//message en texte
&amp;nbsp;&amp;nbsp;&amp;nbsp;$message  = &quot;--main boundary&quot;.$eol;
&amp;nbsp;&amp;nbsp;&amp;nbsp;$message .= &quot;Content-Type: text/plain; charset=UTF-8&quot;.$eol;
&amp;nbsp;&amp;nbsp;&amp;nbsp;$message .= &quot;Content-Transfer-Encoding: 8bit&quot;.$eol.$eol;
&amp;nbsp;&amp;nbsp;&amp;nbsp;$message .= strip_tags($contenu).$eol.$eol;
&amp;nbsp;&amp;nbsp;&amp;nbsp;//fin messages alternatifs
&amp;nbsp;&amp;nbsp;&amp;nbsp;$message .= &quot;--main boundary--&quot;.$eol;
&amp;nbsp;&amp;nbsp;&amp;nbsp;//gestion des cc/bcc
&amp;nbsp;&amp;nbsp;&amp;nbsp;$cc=($cc!='')?'Cc: '.$cc.$eol:'';
&amp;nbsp;&amp;nbsp;&amp;nbsp;$bcc=($bcc!='')?'Bcc: '.$bcc.$eol:'';
&amp;nbsp;&amp;nbsp;&amp;nbsp;//envoi du mail (fonction mail)
&amp;nbsp;&amp;nbsp;&amp;nbsp;$mailsend = mail($dest,'=?UTF-8?B?'.base64_encode($sujet).'?=',$message,
&amp;nbsp;&amp;nbsp;&amp;nbsp;'From:'.$config['email_sender'].$eol.$cc.$bcc.
&amp;nbsp;&amp;nbsp;&amp;nbsp;'Reply-To: '.$config['email_sender'].$eol.
&amp;nbsp;&amp;nbsp;&amp;nbsp;'X-Mailer: PHP'.phpversion().$eol.
&amp;nbsp;&amp;nbsp;&amp;nbsp;'MIME-Version: 1.0'.$eol.
&amp;nbsp;&amp;nbsp;&amp;nbsp;'Content-type: multipart/alternative;  boundary=&quot;main boundary&quot;');
&amp;nbsp;&amp;nbsp;&amp;nbsp;return $mailsend;
}&lt;/pre&gt;
&lt;p&gt;Connexion à une base de donnée :&lt;/p&gt;
&lt;pre&gt;//proteger texte
function db_esc($txt) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;global $db;
&amp;nbsp;&amp;nbsp;&amp;nbsp;return mysql_real_escape_string($txt,$db);
}
//connection à la base
function db_connect($file, $line, $host, $port, $user, $password, $dbname) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;if (!function_exists('mysql_connect'))
&amp;nbsp;&amp;nbsp;&amp;nbsp;die('Le module PHP mySQL n\'est pas installé.');
&amp;nbsp;&amp;nbsp;&amp;nbsp;if (($this-&amp;gt;db = @mysql_connect($host.':'.$port,$user,$password,true)) === false)
&amp;nbsp;&amp;nbsp;&amp;nbsp;die(sprintf('Impossible d\'établir une connection avec la base de données à l\'adresse %s:%s.',$host,$port));
&amp;nbsp;&amp;nbsp;&amp;nbsp;//base de donée en utf-8
&amp;nbsp;&amp;nbsp;&amp;nbsp;mysql_query(&quot;SET NAMES 'utf8'&quot;,$db);
&amp;nbsp;&amp;nbsp;&amp;nbsp;mysql_query(&quot;SET CHARACTER SET utf8&quot;,$db);
&amp;nbsp;&amp;nbsp;&amp;nbsp;if(!@mysql_select_db($dbname, $db))
&amp;nbsp;&amp;nbsp;&amp;nbsp;die(sprintf('Impossible de sélectionner la base de données %s à l\'adresse %s:%s.',$name,$host,$port));
}
//requête
function db_query($file, $line, $query) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;$GLOBALS['lastrequest']=$query;
&amp;nbsp;&amp;nbsp;&amp;nbsp;$ressource=@mysql_query($query,$this-&amp;gt;db) or die(sprintf('Erreur avec une requête [%s (ligne %s), requête «%s»: %s]',$file,$line,$query,mysql_error($db)));
&amp;nbsp;&amp;nbsp;&amp;nbsp;$retour=array();
&amp;nbsp;&amp;nbsp;&amp;nbsp;while($data = mysql_fetch_assoc($ressource))
&amp;nbsp;&amp;nbsp;&amp;nbsp;$retour[]=$data;
&amp;nbsp;&amp;nbsp;&amp;nbsp;return $retour;
}
//Exemple
$sql = &quot;SELECT .....&quot;;
db_query($sql,__FILE__,__LINE__);&lt;/pre&gt;</description>
    
    
    
          <comments>http://keul.fr/post/16#comment-form</comments>
      <wfw:comment>http://keul.fr/post/16#comment-form</wfw:comment>
      <wfw:commentRss>http://keul.fr/feed/atom/comments/16</wfw:commentRss>
      </item>
    
  <item>
    <title>Bug du &lt;select&gt; d'IE</title>
    <link>http://keul.fr/post/22</link>
    <guid isPermaLink="false">urn:md5:b9ef48c3178eba858cd936998aaa0f22</guid>
    <pubDate>Thu, 18 Nov 2010 18:48:00 +0100</pubDate>
    <dc:creator>Keul</dc:creator>
            
    <description>    &lt;p&gt;Un des bugs d'IE qui n'a pas été corrigé dans sa version 8 est le fait de ne pouvoir changer dynamiquement le contenu d'un select avec .innerHTML.&lt;/p&gt;
&lt;p&gt;Microsoft propose des &lt;a href=&quot;http://support.microsoft.com/kb/276228/fr&quot;&gt;solutions de contournement&lt;/a&gt; : utiliser .innerHTML sur l'élément parent ou de passer par du DOM.&lt;/p&gt;
&lt;p&gt;Très peu pratique quand on a déjà codé un select_element.innerHTML=&quot;nouvelles_options&quot;;&lt;/p&gt;
&lt;p&gt;Heureusement, une solution rapide et efficace : remplacez select_element.innerHTML=&quot;nouvelles_options&quot; par selectupdate(select_element,&quot;nouvelles_options&quot;) et ajoutez la fonction de la page d'exemple suivante dans votre code :&lt;/p&gt;
&lt;code&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;function selectupdate(destination,contenu) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(navigator.userAgent.indexOf(&quot;MSIE&quot;) != -1) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var emptyselect = destination.outerHTML.split(destination.innerHTML);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;var result=emptyselect[0]+contenu+emptyselect[1];&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;destination.outerHTML=result;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} else {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;destination.innerHTML=out;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
Exemple : &amp;lt;select id=&quot;test&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;lt;option&amp;gt;test1&amp;lt;/option&amp;gt;&lt;br /&gt;
&amp;lt;/select&amp;gt;&lt;br /&gt;
&amp;lt;input type=&quot;button&quot; onclick=&quot;selectupdate(document.getElementById('test'), '&amp;lt;option&amp;gt;test2&amp;lt;/option&amp;gt;')&quot; value=&quot;OK&quot;&amp;gt;
&lt;/code&gt;</description>
    
    
    
          <comments>http://keul.fr/post/22#comment-form</comments>
      <wfw:comment>http://keul.fr/post/22#comment-form</wfw:comment>
      <wfw:commentRss>http://keul.fr/feed/atom/comments/22</wfw:commentRss>
      </item>
    
  <item>
    <title>Supprimer les accents en PHP</title>
    <link>http://keul.fr/post/21</link>
    <guid isPermaLink="false">urn:md5:e5c98b11278b40abb86c261ab255fe50</guid>
    <pubDate>Thu, 21 Oct 2010 14:05:00 +0200</pubDate>
    <dc:creator>Keul</dc:creator>
            
    <description>    &lt;p&gt;S'il y a bien un truc embêtant en informatique, c'est la gestion des caractères. Vous connaissez ASCII, qui est un standard qui dit que par exemple, que &quot;A&quot; correspond à &quot;1000001&quot; histoire que les ordinateurs qui n'utilisent que des 0 et 1 puissent travailler avec.&lt;/p&gt;
&lt;p&gt;Sauf que sur terre, on ne parle pas qu'anglais et que des caractères, il y en a un paquet dont une infime partie est gérée par ASCII. Vu que les autres standards de correspondance entre les caractères ne permet pas de mélanger des caractères facilement, on a crée utf-8 qui permet de gérer un grand nombre de caractères. Manque de bol, il faudra attendre PHP6 pour qu'il soit géré nativement.&lt;/p&gt;
&lt;p&gt;En attendant que PHP6 sortes, pour convertir un texte UTF-8 en minuscules :&lt;/p&gt;
&lt;pre&gt;$texte=mb_strtolower($texte, 'UTF-8'); &lt;/pre&gt;
&lt;p&gt;Et une méthode efficace pour supprimer les accents avec un texte UTF-8 (le script PHP doit être encodé en UTF-8!) :&lt;/p&gt;
&lt;pre&gt;$search =explode(',','á,à,â,ä,ã,å,ç,é,è,ê,ë,í,ì,î,ï,ñ,ó,ò,ô,ö,õ,ú,ù,û,ü,ý,ÿ');&lt;br /&gt;$replace=explode(',','a,a,a,a,a,a,c,e,e,e,e,i,i,i,i,n,o,o,o,o,o,u,u,u,u,y,y');&lt;br /&gt;$texte=  str_replace($search,$replace,$texte);&lt;/pre&gt;
&lt;p&gt;Et pour un nom de fichier dont on veux retirer les caractères spéciaux :&lt;/p&gt;
&lt;pre&gt;$nom_fichier =  preg_replace('#[^a-zA-Z0-9\-\._]#', '_', $nom_fichier);&lt;/pre&gt;
&lt;p&gt;Et de quoi faire fonctionner des expressions régulières avec de l'UTF-8 :&lt;/p&gt;
&lt;pre&gt;$texte=utf8_decode($texte);&lt;br /&gt;$mot=utf8_decode($mot);&lt;br /&gt;$texte=preg_replace('#(?!&amp;lt;.*?)('.preg_quote($mot).')(?![^&amp;lt;&amp;gt;]*?&amp;gt;)#i','&amp;lt;span class=&quot;found&quot;&amp;gt;\1&amp;lt;/span&amp;gt;',$texte);&lt;br /&gt;$texte=utf8_encode($texte);&lt;/pre&gt;
&lt;p&gt;N'hésitez pas à en parler dans les commentaires si vous avez aussi des astuces pour gerer l'UTF-8&lt;/p&gt;</description>
    
    
    
          <comments>http://keul.fr/post/21#comment-form</comments>
      <wfw:comment>http://keul.fr/post/21#comment-form</wfw:comment>
      <wfw:commentRss>http://keul.fr/feed/atom/comments/21</wfw:commentRss>
      </item>
    
</channel>
</rss>
