<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://www.stacksegment.net/blog/index.php?feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>Greg's blog</title>
  <link>http://www.stacksegment.net/blog/index.php?</link>
  <description>Computer and IT Security, Open Source and Web blog</description>
  <language>en</language>
  <pubDate>Mon, 06 Sep 2010 14:33:10 +0200</pubDate>
  <copyright>CC</copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Des applications web vraiment libres ?</title>
    <link>http://www.stacksegment.net/blog/index.php?post/2009/03/25/Des-applications-web-vraiment-libres</link>
    <guid isPermaLink="false">urn:md5:b849fd2d02d862088325af09eb482ea2</guid>
    <pubDate>Wed, 25 Mar 2009 00:18:00 +0100</pubDate>
    <dc:creator>Greg</dc:creator>
        <category>thoughts and musings</category>
        <category>fsf</category><category>gnu</category><category>javascript</category><category>licence</category><category>philosophy</category><category>web</category>    
    <description>    &lt;p&gt;Aujourd'hui l'actualité m'encourage à prendre du temps pour partager quelques reflexions à propos du logiciel libre. L'article de Richard Stallman (RMS)&lt;sup&gt;[&lt;a href=&quot;http://www.stacksegment.net/blog/index.php?post/2009/03/25/#pnote-43-1&quot; id=&quot;rev-pnote-43-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt; sur &lt;a href=&quot;http://www.gnu.org&quot;&gt;gnu.org&lt;/a&gt;, &lt;a href=&quot;http://www.gnu.org/philosophy/javascript-trap.html&quot; hreflang=&quot;en&quot;&gt;The Javascript Trap&lt;/a&gt;, fait du bruit. Il me semble mal compris. Deux autres nouvelles intéressantes&amp;nbsp;: une opinion que Eric S. Raymond (ESR)&lt;sup&gt;[&lt;a href=&quot;http://www.stacksegment.net/blog/index.php?post/2009/03/25/#pnote-43-2&quot; id=&quot;rev-pnote-43-2&quot;&gt;2&lt;/a&gt;]&lt;/sup&gt; qualifie lui-même d'hérésie, reprise dans &lt;a href=&quot;http://dotcommie.net//feed/index.php?id=160&quot; hreflang=&quot;en&quot;&gt;Eric S. Raymond speaks heresy&lt;/a&gt;; et &lt;a href=&quot;http://blog.last.fm/2009/03/24/lastfm-radio-announcement&quot; hreflang=&quot;en&quot;&gt;l'abonnement obligatoire à last.fm Radio&lt;/a&gt;&lt;sup&gt;[&lt;a href=&quot;http://www.stacksegment.net/blog/index.php?post/2009/03/25/#pnote-43-3&quot; id=&quot;rev-pnote-43-3&quot;&gt;3&lt;/a&gt;]&lt;/sup&gt; pour les utilisateurs hors US, UK et Allemagne. &lt;em&gt;Note&amp;nbsp;: cet article est en cours de rédaction, mais j'ai decidé de le publier pour pouvoir bénéficier de retours si quelques lecteurs s'égarent sur ce blog. N'hésitez donc pas a ajouter vos commentaires. J'en prendrai compte pour faire évoluer ce post.&lt;/em&gt; Voir l'avis de Marc dans &lt;a href=&quot;http://marcarea.com/weblog/?post/2009/03/25/Le-piege-du-JavaScript&quot;&gt;Le piège du JavaScript&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;L'essai de RMS décrit l'exception qui existe actuellement sur la partie cliente des applications web. Il se concentre sur le langage Javascript mais n'exclut pas d'autres environnement tout aussi problématique - voire davantage - comme Flash, Silverlight ou les applet Java. Le Javascript est utilisé actuellement pour créer de vraies applications&lt;sup&gt;[&lt;a href=&quot;http://www.stacksegment.net/blog/index.php?post/2009/03/25/#pnote-43-4&quot; id=&quot;rev-pnote-43-4&quot;&gt;4&lt;/a&gt;]&lt;/sup&gt;. Dans ce cas, si l'on adhère aux principes du logiciel libre, il semble évident que ces applications Javascript non triviales doivent également être libres. Si c'est le cas, l'utilisateur devrait pouvoir exécuter une version modifiée à la place du code original. Certaines réactions ont dénoncé une position quelque peu extremiste de RMS. Cependant, son exposé est clair et je partage son point de vue&amp;nbsp;: à partir du moment où l'on utilise une application, on peut exiger qu'elle soit libre. Le langage dans lequel l'application est écrite n'y change rien.&lt;/p&gt;


&lt;p&gt;Cet essai a l'intéret de soulever le problème plus général du manque d'applications web libres. Il y fait allusion brièvement, en indiquant qu'un texte complémentaire lui serait dédié. Si je prend mon exemple personnel, j'essaie autant que possible d'utiliser des logiciels libres. J'installe des Debian GNU/Linux sur toutes mes machines (mes serveurs Gandi ou mes machines personnelles), et n'installe presque exclusivement des applications libres. Je dis bien &quot;presque&quot; car malheuresement dans certains cas, je ne peux m'en passer. Un exemple simple est flashplayer qui même s'il peut être en partie remplaceé par Gnash&lt;sup&gt;[&lt;a href=&quot;http://www.stacksegment.net/blog/index.php?post/2009/03/25/#pnote-43-5&quot; id=&quot;rev-pnote-43-5&quot;&gt;5&lt;/a&gt;]&lt;/sup&gt;, reste parfois indispensable... je le regrette. Cependant j'utilise des services web. Et c'est là que s'illustre l'autre face du problème. J'utilise twitter qui n'a rien de libre, juste une API documentée. Paradoxalement j'utilise twidge comme client, qui lui est libre mais cela ne résout rien. Alors bien sûr, vous me direz, &quot;utilise identi.ca qui a ouvert son code !&quot;; ce n'est pas faux, mais je me heurte alors à un autre problème&amp;nbsp;: la base utilisateur. Ce problème je l'ai déja rencontré avec la messagerie instantanée. Fervent promoteur de Jabber, jusqu'à installer un serveur&lt;sup&gt;[&lt;a href=&quot;http://www.stacksegment.net/blog/index.php?post/2009/03/25/#pnote-43-6&quot; id=&quot;rev-pnote-43-6&quot;&gt;6&lt;/a&gt;]&lt;/sup&gt; et commencer à designer un client&lt;sup&gt;[&lt;a href=&quot;http://www.stacksegment.net/blog/index.php?post/2009/03/25/#pnote-43-7&quot; id=&quot;rev-pnote-43-7&quot;&gt;7&lt;/a&gt;]&lt;/sup&gt;, j'ai du me résoudre à me créer un compte MSN que j'utilise chaque jour pour discuter avec des amis. Dans le cas de MSN, si je décompose la pile logiciel, nous trouvons le serveur - et probablement les proxy -, le protocole, et enfin le client. De nombreux clients libres existent&lt;sup&gt;[&lt;a href=&quot;http://www.stacksegment.net/blog/index.php?post/2009/03/25/#pnote-43-8&quot; id=&quot;rev-pnote-43-8&quot;&gt;8&lt;/a&gt;]&lt;/sup&gt;. Pour les serveurs c'est autre chose puisqu'ils sont propriétaires et maintenus par Microsoft MSN. Et enfin du côté du protocole ce n'est pas mieux. Tout ceci est bien déprimant&amp;nbsp;! Mais finalement pour les applications est-ce vraiment mieux&amp;nbsp;? gmail, twitter, last.fm... que d'applications propriétaires&amp;nbsp;! On y gagne tout de même un protocole souvent standard (HTTP Rest ou autre) et une API documentée, mais pas libre. Cela a permis d'écrire des clients libres, et d'avoir le plaisir d'en trouver en Haskell (twidge).&lt;/p&gt;


&lt;p&gt;Pourquoi vouloir une application web libre&amp;nbsp;? Et bien, ce sont les mêmes raisons que pour les autres logiciels. Je veux pouvoir le comprendre, l'adapter à mes besoins, le ré-utiliser pour d'autres projets. Le code, au même titre que des livres, représente du savoir. Du savoir appliqué certes, mais du savoir quand même. Les fondateurs des figures de proue du web2.0 rétorqueraient probablement qu'ils doivent garder leur avantage concurrentiel, leurs petits secrets et ne pas faciliter la l'apparition d'offres similaire qui utiliseraient la même base logicielle. Cet argument n'a rien de nouveau. Dans certains domaines, il est plausible. Elaborer un modèle économique viable, voire - osons-le - efficace, demande de la créativité. Il n'en demeure pas moins désuet à une époque où nombre de grands éditeurs&lt;sup&gt;[&lt;a href=&quot;http://www.stacksegment.net/blog/index.php?post/2009/03/25/#pnote-43-9&quot; id=&quot;rev-pnote-43-9&quot;&gt;9&lt;/a&gt;]&lt;/sup&gt; expriment leur attrait pour le logiciel libre. Ce serait naïf de les croire philanthropes, Ils voient dans le logiciel libre un modèle efficace qui répond à leurs besoins sur certains segments de marché. Dans son essai &lt;em&gt;Open Source and the Commodization of Software&lt;/em&gt;&lt;sup&gt;[&lt;a href=&quot;http://www.stacksegment.net/blog/index.php?post/2009/03/25/#pnote-43-10&quot; id=&quot;rev-pnote-43-10&quot;&gt;10&lt;/a&gt;]&lt;/sup&gt;, Ian Murdock&lt;sup&gt;[&lt;a href=&quot;http://www.stacksegment.net/blog/index.php?post/2009/03/25/#pnote-43-11&quot; id=&quot;rev-pnote-43-11&quot;&gt;11&lt;/a&gt;]&lt;/sup&gt; expose comment le logiciel libre s'est imposé de facto dans certains domaines. Cela s'est fait en partie en rendant le code source accessible facilement. Ensuite pour générer des revenus, des offres à valeur ajoutée sont construites au-delà du code source. Ses offres vont du conseil, à l'adaption du logiciel en passant par l'externalisation de l'exploitation du logiciel.&lt;/p&gt;


&lt;p&gt;Ces voies me paraissent envisageables pour des applications web. Certaines entreprises ont décidé de les suivre. identi.ca propose un service hébergé. L'utilisateur n'a pas à se soucier de l'exploitation du logiciel - ici Laconica -. Un autre modèle consiste à implémenter en priorité les fonctionnalités demandées par les utilisateurs qui paient. La démarche repose alors sur l'adaption du logiciel aux besoins de l'utilisateur. Si certains voient dans le mouvement du logiciel libre un idéalisme forcené, il serait temps d'équilibrer cette vision et de comprendre les avantages économiques qu'il apporte. &lt;em&gt;A suivre...&lt;/em&gt;&lt;/p&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://www.stacksegment.net/blog/index.php?post/2009/03/25/#rev-pnote-43-1&quot; id=&quot;pnote-43-1&quot;&gt;1&lt;/a&gt;] fondateur du projet GNU et de la FSF, a initié les projets Emacs, GCC et GDB&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://www.stacksegment.net/blog/index.php?post/2009/03/25/#rev-pnote-43-2&quot; id=&quot;pnote-43-2&quot;&gt;2&lt;/a&gt;] auteur entre autres de l'essai &lt;a href=&quot;http://www.catb.org/~esr/writings/cathedral-bazaar/&quot;&gt;The Cathedral and the Bazaar&lt;/a&gt;, du livre &lt;a href=&quot;http://www.catb.org/~esr/writings/taoup/&quot;&gt;The Art of Unix Programming&lt;/a&gt; (TAOUP) et des &lt;a href=&quot;http://www.catb.org/~esr/software.html&quot;&gt;logiciels libres&lt;/a&gt; fetchmail, bogofilter et gpds&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://www.stacksegment.net/blog/index.php?post/2009/03/25/#rev-pnote-43-3&quot; id=&quot;pnote-43-3&quot;&gt;3&lt;/a&gt;] 3 dollars ou 2.50 euros par mois&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://www.stacksegment.net/blog/index.php?post/2009/03/25/#rev-pnote-43-4&quot; id=&quot;pnote-43-4&quot;&gt;4&lt;/a&gt;] il prend l'exemple de Google Docs dont le code Javascript &lt;em&gt;obfusqué&lt;/em&gt; représente environ 500k&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://www.stacksegment.net/blog/index.php?post/2009/03/25/#rev-pnote-43-5&quot; id=&quot;pnote-43-5&quot;&gt;5&lt;/a&gt;] par ailleurs classé dans les projets prioritaires de GNU&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://www.stacksegment.net/blog/index.php?post/2009/03/25/#rev-pnote-43-6&quot; id=&quot;pnote-43-6&quot;&gt;6&lt;/a&gt;] malheuresement jabberd à l'époque&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://www.stacksegment.net/blog/index.php?post/2009/03/25/#rev-pnote-43-7&quot; id=&quot;pnote-43-7&quot;&gt;7&lt;/a&gt;] repris par de très bonnes mains, ma contributions fût vraiment mineure&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://www.stacksegment.net/blog/index.php?post/2009/03/25/#rev-pnote-43-8&quot; id=&quot;pnote-43-8&quot;&gt;8&lt;/a&gt;] j'utilise bitlbee et kopete&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://www.stacksegment.net/blog/index.php?post/2009/03/25/#rev-pnote-43-9&quot; id=&quot;pnote-43-9&quot;&gt;9&lt;/a&gt;] Sun avec la libération de Java et de Solaris, ainsi que le rachat de MySQL, IBM par ses multiples contributions à des projets libres dont Linux et malgré quelques brevêts mal venus, et Apple&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://www.stacksegment.net/blog/index.php?post/2009/03/25/#rev-pnote-43-10&quot; id=&quot;pnote-43-10&quot;&gt;10&lt;/a&gt;] Open Sources 2.0, O'Reilly, 2005&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://www.stacksegment.net/blog/index.php?post/2009/03/25/#rev-pnote-43-11&quot; id=&quot;pnote-43-11&quot;&gt;11&lt;/a&gt;] Le &lt;em&gt;ian&lt;/em&gt; de Debian, aujourd'hui chez Sun&lt;/p&gt;&lt;/div&gt;
</description>
    
    
    
          <comments>http://www.stacksegment.net/blog/index.php?post/2009/03/25/Des-applications-web-vraiment-libres#comment-form</comments>
      <wfw:comment>http://www.stacksegment.net/blog/index.php?post/2009/03/25/Des-applications-web-vraiment-libres#comment-form</wfw:comment>
      <wfw:commentRss>http://www.stacksegment.net/blog/index.php?feed/rss2/comments/43</wfw:commentRss>
      </item>
    
  <item>
    <title>Optimisation du blog</title>
    <link>http://www.stacksegment.net/blog/index.php?post/2008/11/19/Optimisation-du-blog</link>
    <guid isPermaLink="false">urn:md5:5a1278e1f39e5419240888cebf77595a</guid>
    <pubDate>Wed, 19 Nov 2008 07:38:00 +0100</pubDate>
    <dc:creator>Greg</dc:creator>
        <category>dev</category>
        <category>blog</category><category>cache</category><category>optimisation</category><category>performance</category><category>php</category><category>profiling</category>    
    <description>&lt;p&gt;Les quelques lecteurs de ce blog ont du remarquer qu'il était lent a charger&amp;nbsp;: 8.573 s pour la page d'accueil, c'est ... très
très long. Il est pourtant hébergé sur deux parts gandi, ce qui est largement suffisant - bien qu'il y ait d'autres services et sites web sur ce serveur. 512 MB de RAM, avec de la RAM de libre. Curieux de trouver d'où provenait cette lenteur, j'ai pris un peu de temps pour profiler dotclear et ajouter des mécanismes de cache.&lt;/p&gt;    &lt;h2&gt;Profiling de dotclear&lt;/h2&gt;



&lt;p&gt;Le profiling est une technique courante pour trouver les bottleneck dans du code. Il est implémenté soit dans le compilateur (dans le cas d'un langage compile) soit dans l'interpréteur ou une extension.&lt;/p&gt;


&lt;p&gt;Installer xdebug&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
$ aptitude install php5-xdebug
&lt;/pre&gt;


&lt;p&gt;Ajouter dans /etc/php5/conf.d/xdebug.ini&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
zend_extension=/usr/lib/php5/20060613+lfs/xdebug.so
# append ?XDEBUG_PROFILE=1 to profile an url
xdebug.profiler_enable_trigger = on
xdebug.profiler_output_dir = /tmp/xdebug
&lt;/pre&gt;


&lt;p&gt;Pour profiler une url, tapper l'url et lui ajouter ?XDEBUG_PROFILE=1
Lorsque la page est traitée, des fichiers cachegrind.out.xxx sont
crées dans /tmp/xdebug.&lt;/p&gt;


&lt;p&gt;Ensuite j'utilise kcachegrind (très pratique aussi pour analyser les résultats d'OProfile et Valgrind) pour analyser le profile.&lt;/p&gt;


&lt;p&gt;Et la je vois 2 936 appels a netSocketIterator-&amp;gt;current . Surprise&amp;nbsp;!
Juste au-dessus, le coupable est enfin dévoilé&amp;nbsp;: tplamis::amisWidget.
Le widget pour récupérer des feeds&amp;nbsp;! Entre la connexion au serveur
distant, la récupération du feed et le parsing du xml, ça a de quoi
faire ramer le chargement de la page.&lt;/p&gt;


&lt;p&gt;Donc zou'&amp;nbsp;! Suppression des widgets d'agrégation de flux qui n'étaient pas très utiles de toutes façons.&lt;/p&gt;


&lt;h2&gt;Deuxième phase, ajout de mécanisme de cache&lt;/h2&gt;



&lt;p&gt;Ici rien de bien complique non plus puisqu'il s'agit essentiellement d'installation de softs&amp;nbsp;: xcache pour php, memcached et le plugin memcache pour dotclear.&lt;/p&gt;


&lt;p&gt;xcache est implémenté un cache et un optimisateur des opcodes php.&lt;/p&gt;
&lt;pre&gt;
$ aptitude install php5-xcache 
&lt;/pre&gt;


&lt;p&gt;Ajuster les variables xcache.size et xcache.optimizer dans le fichier /etc/apache2/php5/xcache.ini&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
xcache.size = 32M # ou plus selon vos besoins
xcache.optimizer = On
&lt;/pre&gt;


&lt;p&gt;note&amp;nbsp;: &lt;em&gt;nécessite d'ajouter le repo lenny ou un repo de backports.&lt;/em&gt;&lt;/p&gt;


&lt;p&gt;memcached est un serveur de cache distribue. Il écoute par défaut sur localhost:11211&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
$ aptitude install memcached
&lt;/pre&gt;


&lt;p&gt;Et enfin télécharger le plugin memcache pour dotclear2 puis le décompresser dans le repertoire plugins/ de l'install dotclear sur le serveur.&lt;/p&gt;


&lt;h2&gt;Consommation mémoire par Apache2 et nginx/php5-fastcgi&lt;/h2&gt;



&lt;p&gt;En bonus un petit comparatif&amp;nbsp;:&lt;/p&gt;

&lt;pre&gt;
$ ps -o cmd,pid,rsz,vsz -C php5-cgi
CMD                           PID   RSZ    VSZ
/usr/bin/php5-cgi           26576  5172  50344
/usr/bin/php5-cgi           26577  5172  50344
/usr/bin/php5-cgi           26578 16892  56468
/usr/bin/php5-cgi           26579  2076  50344
/usr/bin/php5-cgi           26580  2076  50344
/usr/bin/php5-cgi           26581  2076  50344
/usr/bin/php5-cgi           26582  2076  50344
/usr/bin/php5-cgi           26583  2076  50344
/usr/bin/php5-cgi           26584  2076  50344
/usr/bin/php5-cgi           26585  2076  50344
/usr/bin/php5-cgi           26586  2076  50344
/usr/bin/php5-cgi           26587  2076  50344
&lt;/pre&gt;


&lt;p&gt;(lancé avec /usr/local/bin/spawn-fcgi -f /usr/bin/php5-cgi -F 2 -s
/var/run/nginx/fastcgi.sock -u www-data -g www-data)&lt;/p&gt;


&lt;p&gt;Et nginx&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
CMD                           PID   RSZ    VSZ
nginx: master process /usr/ 13828   440   2648
nginx: worker process       13829  1084   2808
&lt;/pre&gt;


&lt;p&gt;Et pour apache2&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
CMD                           PID   RSZ    VSZ
/usr/sbin/apache2 -k start  24880  8464  54824
/usr/sbin/apache2 -k start  24885 15116  57520
/usr/sbin/apache2 -k start  24886 16116  58004
/usr/sbin/apache2 -k start  24887 13292  56576
/usr/sbin/apache2 -k start  24888 15308  57896
/usr/sbin/apache2 -k start  24889 13528  56620
/usr/sbin/apache2 -k start  25196 13780  56728
/usr/sbin/apache2 -k start  26564  4520  54956
&lt;/pre&gt;


&lt;p&gt;note&amp;nbsp;: rsz = mémoire résidente (RAM physique), vsz = mémoire virtuelle
(allouée par l'application mais par forcément utilisée, et répartie entre la RAM et la swap).&lt;/p&gt;


&lt;p&gt;Bien sur ça évolue en fonction des scripts qui sont appelés, mais ça donne un petit aperçu de la différence.&lt;/p&gt;


&lt;p&gt;Par exemple, je viens de charger la page d'accueil du blog servie par nginx et j'ai maintenant&amp;nbsp;:&lt;/p&gt;
&lt;pre&gt;
CMD                           PID   RSZ    VSZ
/usr/bin/php5-cgi           13812  5172  50344
/usr/bin/php5-cgi           13814 17188  55820
/usr/bin/php5-cgi           13815  5172  50344
/usr/bin/php5-cgi           13817 13096  53376
/usr/bin/php5-cgi           13820  2076  50344
/usr/bin/php5-cgi           13831  2076  50344
&lt;/pre&gt;


&lt;h2&gt;Conclusion&lt;/h2&gt;



&lt;p&gt;Comme l'a dit Don Knuth, il ne faut pas optimiser prématurément (à part sur des parties évidentes ou des algorithmes bien connus pour une tache précise). Il faut surtout analyser le comportement de l'application et découvrir ses goulots d'étranglement. Comme on l'a vu ici c'est l'usage inapproprié (ou sans trop de réflexion préalable) qui ralentissait le chargement. En continuant la démarche de profiling et d'analyse il sera possible de découvrir les fonctions appelées trop souvent ou les requêtes mysql qui seraient trop coûteuses.&lt;/p&gt;


&lt;p&gt;D'autre part, ça souligne qu'il n'est pas toujours - voire rarement mais il faudrait le démontrer ;) - optimal d'intégrer un peu tout dans un application web et de l'exécuter à la demande (ou à chaque chargement) certaines fonctions. Dans le cas d'un agrégateur il sûrement plus efficace de lancer une tache cron regulierement pour générer du html qui serait charge par un plugin.&lt;/p&gt;


&lt;p&gt;[edit] Si vous passez par là, n'hésitez pas à me laisser un commentaire avec le temps de chargement de la page dans votre navigateur ;).&lt;/p&gt;</description>
    
    
    
          <comments>http://www.stacksegment.net/blog/index.php?post/2008/11/19/Optimisation-du-blog#comment-form</comments>
      <wfw:comment>http://www.stacksegment.net/blog/index.php?post/2008/11/19/Optimisation-du-blog#comment-form</wfw:comment>
      <wfw:commentRss>http://www.stacksegment.net/blog/index.php?feed/rss2/comments/41</wfw:commentRss>
      </item>
    
  <item>
    <title>I'm back</title>
    <link>http://www.stacksegment.net/blog/index.php?post/2008/11/17/Im-back</link>
    <guid isPermaLink="false">urn:md5:00db76f98f58c5b894f806fb7a474bb1</guid>
    <pubDate>Mon, 17 Nov 2008 22:30:00 +0100</pubDate>
    <dc:creator>Greg</dc:creator>
        <category>dev</category>
        <category>C</category><category>dev</category><category>haskell</category>    
    <description>&lt;p&gt;Et oui de retour après... longtemps. Plein de prévisions, quelques réflexions, plein de projets mais finalement peu de concret sur ce blog. Pourtant il s'est passé des choses depuis. Un nouveau design (quelques changements dans la css) pour changer et pour que vos ecrans consomment moins d'énergie. J'ai finalement mis django de côté, je suis de loin les évolutions qui touchent le projet et m'intéresse toujours aux questions techniques qui concernent le framework mais j'ai plutôt jeté mon dévolu sur des framework bases sur des langages fonctionnels comme haskell (HaPPS) ou scheme (PLT-Scheme Continue). Le distribué et notamment erlang et les framework Map/Reduce (Hadoop, Disco...) m'attirent également beaucoup. Mon intérêt se porte également sur la visualisation d'informations et l'intelligence artificielle (a un niveau basique).&lt;/p&gt;


&lt;p&gt;Nouveau job : virtualisation, développement kernel / système et du python. J'ai pu redécouvrir le C++ avec un autre regard. Bien qu'il reste difficile d'avoir le même niveau d'abstraction que des langages comme haskell, ocaml ou scheme; c'est agréable d'avoir :&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;un typage plus fort que le C,&lt;/li&gt;
&lt;li&gt;une utilisation la plus systèmatique possible de &lt;em&gt;const&lt;/em&gt; (sur lequel g++-4.3 est assez rigoureux comparé a du C avec gcc-4.x)&lt;/li&gt;
&lt;li&gt;les &lt;em&gt;references&lt;/em&gt; (pour éviter de passer des pointeurs non initialisés),&lt;/li&gt;
&lt;li&gt;les &lt;em&gt;functions classes&lt;/em&gt; pour avoir un mécanisme plus sûr de pointeur sur fonction,&lt;/li&gt;
&lt;li&gt;les &lt;em&gt;exceptions&lt;/em&gt; (avec la documentation des expressions susceptibles d'être levées par la fonction, dans son prototype i.e. int fonction(a, b, c) throw (runtime_error);&lt;/li&gt;
&lt;li&gt;les &lt;em&gt;templates&lt;/em&gt; pour disposer de structures génériques (avec modération pour ne pas avoir un binaire trop avide de mémoire)&lt;/li&gt;
&lt;/ul&gt;    &lt;p&gt;J'essaie de minimiser le recours a des libs externes, donc je n'utilise pas boost par exemple, même si elle apporte certains mécanismes assez pratique comme les fonctions anonymes (lambda), la composition de fonction, etc ... C'est un choix pour limiter les dépendances externes. Ca ne manque pas tant que ça au final. Dans les documents utiles, la page &lt;a href=&quot;http://www.research.att.com/~bs/C++.html&quot; hreflang=&quot;en&quot;&gt;Bjarne Stroustrup&lt;/a&gt; (concepteur du langage), la &lt;a href=&quot;http://www.parashift.com/c++-faq-lite/&quot; hreflang=&quot;en&quot;&gt;FAQ Lite&lt;/a&gt;, un &lt;a href=&quot;http://www.open-std.org/Jtc1/sc22/wg21/docs/TR18015.pdf&quot; hreflang=&quot;pdf&quot;&gt;Technical Report on C++ Performance&lt;/a&gt;, un pdf d'&lt;a href=&quot;http://okmij.org/ftp/&quot; hreflang=&quot;en&quot;&gt;Oleg&lt;/a&gt; (attention mine d'or !), et bien sûr le livre le Langage C++ de Bjarne Stroustrup.&lt;/p&gt;


&lt;p&gt;Après avoir parlé de manière récurrente de langages fonctionnels (notamment haskell), pourquoi du C++ ? Essentiellement pour des raisons de performances (calculs et espace mémoire). Il y a peu d'abstractions car il s'agit essentiellement de programmation système avec beaucoup d'appels systèmes et probablement des parties qui seront réimplementées en module kernel (linux). Les structures de données restent simples.&lt;/p&gt;


&lt;p&gt;Quand on pense C++, on pense programmation orientée objet. Rien ne l'impose bien sur ! Mais ça devient vite pratique d'utiliser une classe pour stocker les attributs et les fonctions (qui sont donc des méthodes) au même endroit. Un peu d'héritage, de polymorphisme et de surcharge d'opérateur et voila, sans faire dans le code objet académique, on va appeler ca de l'objet.&lt;/p&gt;


&lt;p&gt;En parallèle je fais du Haskell, ce qui me permet de vraiment comprendre pourquoi l'accent est porte sur la séparation stricte entre les fonctions pures et celles effectuant des effets de bord. La plupart des bugs proviennent en effet, soit du manque de contraintes (qu'on peut exprimer a des &lt;em&gt;guards&lt;/em&gt; en haskell), soit d'effets de bord mal controlés, autrement des variables inter-dépendates modifiées dans le mauvais ordre, ou encore des modifications inattendues.&lt;/p&gt;


&lt;p&gt;Une petite note, le wiki est cassé pour le moment, j'ai fais quelques tests avec nginx (pour voir si je migrais tout dessus) et je n'ai pas encore pris le temps de le remettre bien comme il faut.&lt;/p&gt;


&lt;p&gt;To be continued... (OProfile, haskell, HaPPS, epoll, scheme, SICP...),&lt;/p&gt;</description>
    
    
    
          <comments>http://www.stacksegment.net/blog/index.php?post/2008/11/17/Im-back#comment-form</comments>
      <wfw:comment>http://www.stacksegment.net/blog/index.php?post/2008/11/17/Im-back#comment-form</wfw:comment>
      <wfw:commentRss>http://www.stacksegment.net/blog/index.php?feed/rss2/comments/40</wfw:commentRss>
      </item>
    
  <item>
    <title>Quelques nouvelles : système et sécu, programmation fonctionnelle, moteur de blog</title>
    <link>http://www.stacksegment.net/blog/index.php?post/2008/02/23/Quelques-nouvelles-%3A-systeme-et-secu-programmation-fonctionnelle-moteur-de-blog</link>
    <guid isPermaLink="false">urn:md5:dd92a334a93ed26b5fc96da33ad894f0</guid>
    <pubDate>Sat, 23 Feb 2008 10:46:00 +0100</pubDate>
    <dc:creator>Greg</dc:creator>
        <category>IT security / Privacy</category>
        <category>blog</category><category>code</category><category>django</category><category>exploits</category><category>functional</category><category>haskell</category><category>programming</category><category>security</category><category>system</category>    
    <description>    &lt;p&gt;Quelques nouvelles pour les quelques lecteurs de ce blog qui doivent se demander si j'ai perdu les clés de la cave dans laquelle je me suis enfermé. Première nouvelle, non je ne suis ni dans une cave ni enfermé mais je n'ai pas trouvé le temps d'écrire un billet avant aujourd'hui. Je me suis replongé dans le dev d'exploit sous linux en me donnant pour objectif de gérer la plupart des protections userland (heap hardening, -fstrack-protector-all, ...) et kernel (ASLR, NX, et autres, en commençant par les fonctionnalités de base du noyau 2.6, puis en continuant avec ExecShield et Pax). Dans le même temps, l'&lt;a href=&quot;http://lkml.org/lkml/2008/2/13/274&quot; hreflang=&quot;en&quot;&gt;actualité récente&lt;/a&gt; m'a poussé à m'intéresser de plus près aux vulns kernel.&lt;/p&gt;


&lt;p&gt;En parallèle, je garde toujours un oeil sur la programmation fonctionnelle, notamment Haskell. Je profite de mes travaux en exploitation de vuln userland et kernel pour écrire du code concret et je l'espère utile en Haskell. Pour l'instant c'est du python ou un peu de ruby (metasploit), langages très appréciés par la communauté sécurité à côté des chers dinos que sont le C et le perl. Néanmoins je pense que ces travaux autour de la sécurité se prête bien à la programmation fonctionnelle et l'écriture de DSLs. Un projet intéressant était &lt;a href=&quot;http://mosref.sourceforge.net/repos/mosvm/&quot; hreflang=&quot;en&quot;&gt;mosvm&lt;/a&gt;  &lt;a href=&quot;http://www.dc414.org/download/confs/defcon14/DC-14-Presentations/DC-14-Brown/DC-14-Brown.pdf&quot; hreflang=&quot;en&quot;&gt;présenté par Wes Brown&lt;/a&gt; au DefCon et au HITB de 2006.Il consistait en l'exécution distante de processus dans une VM Lisp. C'est dans la continuité :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;de &lt;a href=&quot;http://www.immunitysec.com/resources-freesoftware.shtml&quot; hreflang=&quot;en&quot;&gt;mosdef&lt;/a&gt; de Dave Aitel&lt;/li&gt;
&lt;li&gt;du syscall proxying (kudos à Core Security)&lt;/li&gt;
&lt;li&gt;des méthodes antiforensics de Grugq &lt;a href=&quot;http://www.phrack.org/issues.html?issue=62&amp;amp;id=8#article&quot; hreflang=&quot;en&quot;&gt;Remote Exec&lt;/a&gt; et &lt;a href=&quot;http://www.phrack.org/issues.html?issue=63&amp;amp;id=11#article&quot; hreflang=&quot;en&quot;&gt;Pluf et Ripe&lt;/a&gt; complétées par les &lt;a href=&quot;http://actes.sstic.org/SSTIC06/Corruption_memoire/&quot; hreflang=&quot;en&quot;&gt;travaux de Kad et Samuel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;de &lt;a href=&quot;http://www.metasploit.org&quot; hreflang=&quot;en&quot;&gt;meterpreter&lt;/a&gt; (et j'espère bientôt de meterpretux car meterpreter est windows only)&lt;/li&gt;
&lt;li&gt;et d'autres projets.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pas mal de choses intéressantes à faire en perspective :). Je vais d'abord continuer ce que j'ai commencé et saisir les opportunités d'écrire du haskell quand elles se présentent.&lt;/p&gt;


&lt;p&gt;Pour finir, j'avais parlé du redesign de ce blog. Je me suis dit que c'était l'occasion de migrer vers un moteur de blog écrit en python et pourquoi pas - à tous hasard - reposant sur django. J'ai regardé ce qui se faisait, tenté de construire sur le django-blog de basic apps et au final je me suis rendu compte que j'avais besoin de vraiment comprendre chaque élément et de pouvoir facilement les modifier. Je m'en suis vraiment rendu compte quand j'ai commencé à écrire une classe et des outils pour importer ce blog depuis dotclear2. J'ai alors décidé de ré-écrire un moteur de blog pour mes besoins. Dans un sens, c'est dommage, car ça répartit les efforts au lieu de les concentrer sur quelques projets, mais je prend ça comme un projet perso sans ambition autre que répondre à mes besoins et sans vouloir faire un moteur de blog de plus comme dotclear ou wordpress.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.stacksegment.net/blog/index.php?post/2008/02/23/Quelques-nouvelles-%3A-systeme-et-secu-programmation-fonctionnelle-moteur-de-blog#comment-form</comments>
      <wfw:comment>http://www.stacksegment.net/blog/index.php?post/2008/02/23/Quelques-nouvelles-%3A-systeme-et-secu-programmation-fonctionnelle-moteur-de-blog#comment-form</wfw:comment>
      <wfw:commentRss>http://www.stacksegment.net/blog/index.php?feed/rss2/comments/38</wfw:commentRss>
      </item>
    
  <item>
    <title>Ce que j'attends en 2008</title>
    <link>http://www.stacksegment.net/blog/index.php?post/2008/01/17/Ce-que-jattens-en-2008</link>
    <guid isPermaLink="false">urn:md5:9628499954951ba1252c86f5f6359e6a</guid>
    <pubDate>Thu, 17 Jan 2008 09:27:00 +0100</pubDate>
    <dc:creator>Greg</dc:creator>
        <category>thoughts and musings</category>
        <category>2008</category><category>embedded</category><category>FOSS</category><category>functional</category><category>languages</category><category>programming</category><category>technology</category>    
    <description>    &lt;p&gt;Ca ressemble à des prédictions sans en être :). Je ne suis pas voyant et les tendances que je perçois ou que j'attends sont liées aux domaines qui m'intéressent. Je ne vais donc pas m'essayer à prédire les grands évèments de 2008, mais plutôt énoncer ce que j'attends.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Les langages fonctionnels vont réellement commencer à être utilisés. Par réellement, j'entends de manière moins confidentielle. L'exemple le plus frappant est l'utilisation d'Erlang pour le service SimpleDB d'Amazon AWS&lt;sup&gt;[&lt;a href=&quot;http://www.stacksegment.net/blog/index.php?post/2008/01/17/#pnote-37-1&quot; id=&quot;rev-pnote-37-1&quot;&gt;1&lt;/a&gt;]&lt;/sup&gt;. Les capacités fontionnelles de certains langages&lt;sup&gt;[&lt;a href=&quot;http://www.stacksegment.net/blog/index.php?post/2008/01/17/#pnote-37-2&quot; id=&quot;rev-pnote-37-2&quot;&gt;2&lt;/a&gt;]&lt;/sup&gt; très appréciés pour le développement agile comme Ruby et Python (pour ne citer qu'eux) sont indéniablement très pratiques et rendent plus productif (et plus succinct, exemple : les list comprehension en Python). Le style fonctionnel dans ces langages est partiel, on trouve en effet des effets de bord. Avec la vogue des architectures multicore et la nécessité de faire du calcul parallèle (distribué ou multithread local), les langages fonctionnels sont très adaptés. Une raison simple à cela, ils sont fondés (pour les langages fonctionnels purs c'est même imposé) sur l'absence d'effet de bord. Par conséquent la concurrence est implémentée avec des processus qui ne partagent pas de mémoire et communique de manière asynchrone par passage de messages. C'est le style fonctionnel qui amène à cela. On trouve une bonne illustration de ce principe dans une description d'Erlang et de la raison de son succès récent &lt;em&gt;&lt;a href=&quot;http://pragprog.com/articles/erlang&quot; hreflang=&quot;en&quot;&gt;What's all this fuss about Erlang?&lt;/a&gt;&lt;/em&gt; par Joe Amstrong. &lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;br /&gt; C'est toujours difficile de choisir un langage de programmation quand on se lance dans un projet. Plusieurs approche se présentent : choisir celui qu'on maîtrise le mieux d'où la proéminence du C/C++, .Net, PHP et Java; choisir celui pour lequel on aura le plus de contributeurs ou développeurs à embaucher (qui a parlé de Java ?? ;) ); choisir les langages les plus appropriés pour traiter chaque composant du projet. hmmm oui vous avez bien lu LES langages. Alors bien sûr en pratique ça finit souvent par un langage, mais il n'est pas proscrit d'envisager l'utilisation de plusieurs langages. C'est d'ailleurs ce que pas mal de projets font déjà depuis longtemps en ajoutant la possibilité d'utiliser des langages de scripts&lt;sup&gt;[&lt;a href=&quot;http://www.stacksegment.net/blog/index.php?post/2008/01/17/#pnote-37-3&quot; id=&quot;rev-pnote-37-3&quot;&gt;3&lt;/a&gt;]&lt;/sup&gt; dans les applications. Paul Graham mets en avant ce choix dans son essai &lt;a href=&quot;http://www.paulgraham.com/avg.html&quot; hreflang=&quot;en&quot;&gt;Beating the Averages&lt;/a&gt;. Certains y voit l'apologie de Lisp, j'y vois surtout la mise en exergue de ce qui constitue un des avantages majeurs d'une startup sur ces concurrents : le socle technologique. Il faut batir sur de bonnes fondations, celles qui permettront de ne pas perdre de temps et de répondre à la demande. &quot;Faut qu'ça scale!!!&quot;. Les gens qui créés des entreprises sont souvent intelligents et l'équipe technique compétente. Ce qui va faire la différence, outre les choix stratégiques, sont les choix qui vont permettre d'aller plus vite et de faire mieux. Ca n'empêche pas d'avoir des startups qui marchent en utilisant du Java, mais certains, comme &lt;a href=&quot;http://www.artima.com/weblogs/index.jsp?blogger=fsommers&quot; hreflang=&quot;en&quot;&gt;Frank Sommers&lt;/a&gt;, se posent des questions sur l'utilisation du langage dans l'efficacité d'un framework &lt;a href=&quot;http://www.artima.com/weblogs/viewpost.jsp?thread=222388&quot; hreflang=&quot;en&quot;&gt;How Does Language Impact Framework Design?&lt;/a&gt;. Le seul élément qui n'est pas extensible c'est le temps. Ensuite la grosse question est qu'est-ce qu'un bon langage ? Qu'est-ce qu'une bonne technologie ? Et la chacun a sa réponse en fonction de ses besoins, de son expérience et de son humeur. &lt;a href=&quot;http://www.paulgraham.com/hundred.html&quot; hreflang=&quot;en&quot;&gt;The Hundred-Year Language&lt;/a&gt; de Paul Graham&lt;sup&gt;[&lt;a href=&quot;http://www.stacksegment.net/blog/index.php?post/2008/01/17/#pnote-37-4&quot; id=&quot;rev-pnote-37-4&quot;&gt;4&lt;/a&gt;]&lt;/sup&gt; est une réflexion parmi d'autres sur ce point.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Comme cela a déjà commencé, les outils, APIs et protocoles permettant la réalisation applications web riches (RIA) vont être plus en plus exploitées à des fins malicieuses. Exemples avec flash: &lt;a href=&quot;http://www.gnucitizen.org/blog/flash-upnp-attack-faq&quot; hreflang=&quot;en&quot;&gt;Flash UPnP Attack FAQ&lt;/a&gt; et &lt;a href=&quot;http://www.gnucitizen.org/blog/hacking-the-interwebs&quot; hreflang=&quot;en&quot;&gt;Hacking the Interwebs&lt;/a&gt;, et Ajax (déjà traité en 2007 dans la plupart des conférences sécurité). On surveillera d'ailleurs les travaux du W3C sur le Same Origin Policy, &lt;a href=&quot;http://www.w3.org/TR/access-control/&quot; hreflang=&quot;en&quot;&gt;Access Control for Cross-site Requests&lt;/a&gt;, commenté &lt;a href=&quot;http://taossa.com/index.php/2008/01/10/w3c-cross-site-request/&quot; hreflang=&quot;en&quot;&gt;Browser Security Gets Even More Confusing (Cross-site Request Draft)&lt;/a&gt; par Justin Schuh, et traité dans cet article &lt;a href=&quot;http://www-128.ibm.com/developerworks/library/x-securemashups/&quot; hreflang=&quot;en&quot;&gt;Shaping the future of secure Ajax mashups&lt;/a&gt; sur IBM DeveloperWorks.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Le logiciel libre sur l'embarqué grand public et les téléphones mobiles va se généraliser : &lt;a href=&quot;http://code.google.com/p/android/&quot; hreflang=&quot;en&quot;&gt;Google Android&lt;/a&gt;, &lt;a href=&quot;http://www.openmoko.org/&quot; hreflang=&quot;en&quot;&gt;OpenMoko&lt;/a&gt;, &lt;a href=&quot;http://www.buglabs.net&quot; hreflang=&quot;en&quot;&gt;The BUG&lt;/a&gt; (qui a été gratifié d'un CNET Award au CES et massivement couvert par la presse spécialisée récemment). Je me demande comment va réagir &lt;a href=&quot;http://www.archos.com&quot;&gt;Archos&lt;/a&gt; au projet &lt;a href=&quot;http://www.openpma.org/gen4/Main_Page&quot;&gt;OpenPMA&lt;/a&gt;. Soit ils le font ala Apple en essayant de tout vérouiller - ce serait vraiment moche -, soit ils décident de créer une communauté autour de leur produit et de leur plateforme logiciel. C'est un modèle économique différent car actuellement ils vendent des plugins et ouvrir la plateforme logicielle permettrait d'avoir des alternatives à leurs plugins propriétaires et donc ne pas les acheter. Cela peut constituer un pari intéressant sur l'innovation et permettre de rattraper le retard d'Archos sur Apple notamment sur la partie interface utilisateur -- pour le reste difficile de parler de retard. J'aimerais bien un PMP qui sache lire le MKV !&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;footnotes&quot;&gt;&lt;h4&gt;Notes&lt;/h4&gt;
&lt;p&gt;[&lt;a href=&quot;http://www.stacksegment.net/blog/index.php?post/2008/01/17/#rev-pnote-37-1&quot; id=&quot;pnote-37-1&quot;&gt;1&lt;/a&gt;] Pourquoi Amazon a choisit erlang pour SimpleDB. J'ai une piste ici -- bien que je ne connaisse pas les détails d'implémentations de SimpleDB notamment le moteur de base de données : &quot;&lt;em&gt;Mnesia - Base de donnée temps réel distribuée pour Erlang. Mnesia supporte la réplication en mémoire vive (RAM) aussi bien que le stockage sur disque, permet la modification dynamique des schémas et permet de stocker des structures de données d'une complexité arbitraire. Mnesia est très rapide car fonctionne dans le même espace d'adressage que les applications qui l'utilise: cette caractéristique est possible, car Mnesia et les programmes qui l'utilise sont écrits en Erlang. Mnesia est un bon exemple de la puissance d'Erlang: Dans combien de langage pourriez-vous écrire un SGBD distribué, complet et de qualité industrielle en moins de 20 000 lignes de code.&lt;/em&gt;&quot; (extrait de &lt;a href=&quot;http://www.erlang-fr.org/tutorials/whitepaper.html&quot; hreflang=&quot;fr&quot;&gt;Livre blanc: Le langage Erlang&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://www.stacksegment.net/blog/index.php?post/2008/01/17/#rev-pnote-37-2&quot; id=&quot;pnote-37-2&quot;&gt;2&lt;/a&gt;] &lt;a href=&quot;http://www.joelonsoftware.com/items/2006/08/01.html&quot; hreflang=&quot;en&quot;&gt;Can Your Programming Language Do This?&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://www.stacksegment.net/blog/index.php?post/2008/01/17/#rev-pnote-37-3&quot; id=&quot;pnote-37-3&quot;&gt;3&lt;/a&gt;] lua, perl, python, clisp me viennent en tête&lt;/p&gt;
&lt;p&gt;[&lt;a href=&quot;http://www.stacksegment.net/blog/index.php?post/2008/01/17/#rev-pnote-37-4&quot; id=&quot;pnote-37-4&quot;&gt;4&lt;/a&gt;] Deux essais cités de lui, vous allez croire que je suis fan ! Et bien pas spécialement, c'est juste que je lis Hackers and Painters en ce moment, et que son expérience est intéressante.&lt;/p&gt;&lt;/div&gt;
</description>
    
    
    
          <comments>http://www.stacksegment.net/blog/index.php?post/2008/01/17/Ce-que-jattens-en-2008#comment-form</comments>
      <wfw:comment>http://www.stacksegment.net/blog/index.php?post/2008/01/17/Ce-que-jattens-en-2008#comment-form</wfw:comment>
      <wfw:commentRss>http://www.stacksegment.net/blog/index.php?feed/rss2/comments/37</wfw:commentRss>
      </item>
    
  <item>
    <title>Bonnes fêtes ! Et un peu de teasing pour 2008 ;)</title>
    <link>http://www.stacksegment.net/blog/index.php?post/2007/12/24/Bonnes-fetes-Et-un-peu-de-teasing-pour-2008</link>
    <guid isPermaLink="false">urn:md5:81afbe7662806012428d4ae537614889</guid>
    <pubDate>Mon, 24 Dec 2007 14:16:00 +0100</pubDate>
    <dc:creator>Greg</dc:creator>
        <category>thoughts and musings</category>
        <category>2008</category><category>teasing</category>    
    <description>    &lt;p&gt;Nous sommes en pleine période de fêtes de fin d'années. Entre la course aux cadeaux et les expéditions pour voir tout le monde, le temps passe vite ! Pour ceux qui lisent ce blog et que je n'aurais pas l'occasion de voir, je vous souhaite de passer de très bonnes fêtes de fin d'années. Beaucoup de courage pour ceux qui doivent travailler le soir du réveillon et/ou le jour de Noël et qui n'ont pas pris de congés.&lt;/p&gt;


&lt;p&gt;Nous ne sommes pas encore en 2008, mais je vais décrire un peu ce qui attend ce blog au début de l'année.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Un redesign complet : ce blog en a bien besoin ! J'avais repris le thème deep_green, de Carnegie. Et au final j'ai complètement changé les couleurs (le thème était au départ vert sur noir...). Donc oui ça ne servait à rien de prendre ce thème :p. Je vais donc reprendre ça from scratch et apprendre à utiliser Inkscape.&lt;/li&gt;
&lt;li&gt;La suite, enfin la ré-écriture plutôt, de la réflexion sur l'avenir des applications web libres. J'ai une ébauche bien avancée de la structure et des notes de côté. Après avoir relu le billet que j'avais écrit je ne suis pas satisfait : c'est pas très clair et j'ai du mal à poursuivre la réflexion à partir de ça. Je vais donc prendre le temps - car je trouve que le sujet le mérite - et mettre l'essai en ligne courant janvier.&lt;/li&gt;
&lt;li&gt;Une présentation d'une application web écrite avec Django. Je n'en dis pas plus pour le moment :).&lt;/li&gt;
&lt;li&gt;+ de billets et surtout plus régulièrement. C'est probablement la résolution que l'on trouve le plus souvent chez bloggeurs, je vais essayer de m'y tenir !&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>http://www.stacksegment.net/blog/index.php?post/2007/12/24/Bonnes-fetes-Et-un-peu-de-teasing-pour-2008#comment-form</comments>
      <wfw:comment>http://www.stacksegment.net/blog/index.php?post/2007/12/24/Bonnes-fetes-Et-un-peu-de-teasing-pour-2008#comment-form</wfw:comment>
      <wfw:commentRss>http://www.stacksegment.net/blog/index.php?feed/rss2/comments/36</wfw:commentRss>
      </item>
    
  <item>
    <title>Le financement des services web gratuits par la pub</title>
    <link>http://www.stacksegment.net/blog/index.php?post/2007/12/07/Le-financement-des-services-web-gratuits-par-la-pub</link>
    <guid isPermaLink="false">urn:md5:caee5f3162d9266ee2076cdc00868c9c</guid>
    <pubDate>Fri, 07 Dec 2007 13:08:00 +0000</pubDate>
    <dc:creator>Greg</dc:creator>
        <category>thoughts and musings</category>
        <category>financement</category><category>gratuit</category><category>pub</category><category>web</category>    
    <description>&lt;p&gt;Ce billet est une tentative de réponse à la question soulevée par &lt;a href=&quot;http://leblog.cfait.fr&quot;&gt;GML&lt;/a&gt;, &lt;a href=&quot;http://leblog.cfait.fr/post/2007/12/05/Le-web-gratuit-a-t-il-un-avenir&quot;&gt;Le web gratuit a-t-il un avenir ?&lt;/a&gt;. Après éclaircissement de sa part, je me suis rendu compte que j'avais mal compris l'hypothèse qu'il avançait. Je vais essayer de reprendre dans le bon sens ici :).&lt;/p&gt;    &lt;p&gt;On peut distinguer deux modèles basés sur la pub (d'après le Rapport O'Reilly Web2.0), syndicated advertising (i.e. contextuel comme AdSense) et sponsorship advertising (modèle plus classique &lt;em&gt;je vends de l'espace de pub directement à une boîte&lt;/em&gt;). Le premier est indirect, dans le cas d'AdSense, c'est AdSense qui se débrouille avec les annonceurs et me reverse une commission. Dans le second, on négocie en gros directement avec l'annonceur (ou on passe par une régie pub). Dans les deux cas, on peut avoir un paiement par commission au clic.&lt;/p&gt;


&lt;p&gt;Ca s'adapte avec la demande, plus il y a d'utilisateurs de mon services, plus il y a potentiellement de clics. Cependant on est tributaire de la qualité de ciblage des pubs&amp;nbsp;! Dans le modèle par sponsorship, on peut aussi vendre l'espace comme dans les média traditionnels avec un prix en fonction de l'audience du service. On a donc un prix fixe qui n'est d'ailleurs pas toujours facile à déterminer.&lt;/p&gt;


&lt;p&gt;Considérons uniquement le syndicated advertising avec commission au clic. Qui dit commission, dit pour l'annonceur qu'il ne reverse de l'argent que lorsqu'il en gagne. En se mettant à la place de l'annonceur, on se rend compte qu'on ne peut potentiellement pas perdre d'argent (c'est très simpliste bien sûr, mais ça se tient). En revanche si on a énormément de services pour un nombre d'utilisateur constant, et un nombre d'annonceurs également constant, le revenu généré est le même (car il est une fonction du nombre d'utilisateurs) mais il est réparti sur plus de services. Plus il y a de services, moins chacun touchera (en gardant la même répartition des revenus) d'argent.&lt;/p&gt;


&lt;p&gt;Pour résumer, on prend trois variables Ns = nombre de services, Nu = nombre d'utilisateurs et Na = nombre d'annonceurs. Le point critique est atteint lorsque Nu et Na sont fixes et que Ns continue d'augmenter. Le ratio qu'évoquait GML est donc Na / Ns (avec Ns &amp;gt;&amp;gt; Na&amp;nbsp;; dans le sens très supérieur, pas décalage vers la droite ;) ).&lt;/p&gt;


&lt;p&gt;Maintenant que les trois principales variables (elles ne sont pas les seules, mais elles me semblent suffisantes pour le raisonnement) sont définies, je vais essayer d'étudier dans quelle mesure elles peuvent varier.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Nombre de services (Ns)&amp;nbsp;: on est d'accord ça va augmenter encore pendant un bon moment :).&lt;/li&gt;
&lt;li&gt;Nombre d'annonceurs (Na)&amp;nbsp;: je pense que ça va augmenter car il y a toujours une inertie de certains domaines pour qu'ils adoptent certains modèles. Ainsi on devrait probablement voir des acteurs industriels se positionner encore plus sur le web. Bon je ne suis pas dans la pub et le marketing, donc si je me plante sur ce point, n'hésitez pas à rectifier (en commentaire par exemple, ou par mail) !!!&lt;/li&gt;
&lt;li&gt;Nombre d'utilisateurs (Nu)&amp;nbsp;: j'ai gardé ce point pour la fin car il me parait essentiel. Le potentiel d'accroissement du nombre d'utilisateurs du web est encore énorme. Ce n'est pas un hasard si les opérateurs tentent de démocratiser la 3G pour des connexions data !! Deux phénomènes peuvent faire exploser le nombre d'utilisateurs&amp;nbsp;: la généralisation des accès haut débit avec connexion permanente dans les pays en voie de développement (en particulier les BRIC, Brésil-Russie-Inde-Chine) et dans les pays développés (je n'aime pas ce mot car il ne représente pas sémantiquement ce que je veux dire, mais bon...), les seniors. Dans les pays occidentaux (en incluant le Japon et la Corée du Sud) la pyramide des âges est inversée, il y a donc beaucoup plus de seniors. Pourtant ce n'est pas encore la tranche de la population la plus présente sur le web.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On voit donc que le nombre d'utilisateurs devrait augmenter. Cependant, tous les services ne vont pas bénéficier de cette augmentation. D'où l'importance de la localisation autant dans le sens services que langage, de la souplesse du service et de la compréhension des cultures. ebay s'est par exemple fait surprendre en Chine. Quelques exemples dans cette  &lt;a href=&quot;http://asie.atelier.fr/jeux-video/article/chine-les-usages-emergents-d%E2%80%99un-marche-gigantesque&quot; hreflang=&quot;fr&quot;&gt;article&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Il n'y aura pas de la place pour tout le monde, mais ceux qui s'adapteront pourront tirer leur épingle du jeu. La pub a encore de l'avenir devant elle, mais devra s'adapter.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.stacksegment.net/blog/index.php?post/2007/12/07/Le-financement-des-services-web-gratuits-par-la-pub#comment-form</comments>
      <wfw:comment>http://www.stacksegment.net/blog/index.php?post/2007/12/07/Le-financement-des-services-web-gratuits-par-la-pub#comment-form</wfw:comment>
      <wfw:commentRss>http://www.stacksegment.net/blog/index.php?feed/rss2/comments/34</wfw:commentRss>
      </item>
    
  <item>
    <title>Remember VisiCalc!</title>
    <link>http://www.stacksegment.net/blog/index.php?post/2007/12/06/Remember-VisiCalc</link>
    <guid isPermaLink="false">urn:md5:e11a67f66ee80b8a91d07ab8bcf18131</guid>
    <pubDate>Thu, 06 Dec 2007 13:45:00 +0000</pubDate>
    <dc:creator>Greg</dc:creator>
        <category>fun</category>
            
    <description>    &lt;p&gt;And other &lt;a href=&quot;http://www.computerhistory.org/&quot;&gt;oldies&lt;/a&gt; ;). I am reading &lt;a href=&quot;http://www.amazon.com/Founders-Work-Stories-Startups-Early/dp/1590597141/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1196861266&amp;amp;sr=8-1&quot;&gt;Founders at Work: Stories of Startups' Early Days&lt;/a&gt; and one of the stories is about &lt;a href=&quot;http://www.bricklin.com&quot;&gt;Dan Bricklin&lt;/a&gt; and the early days of Software Arts, which he co-founded with &lt;a href=&quot;http://www.frankston.com/&quot;&gt;Bob Frankston&lt;/a&gt;. On his website, he details the &lt;a href=&quot;http://www.bricklin.com/history/intro.htm&quot;&gt;history of Software Arts and VisiCalc&lt;/a&gt;. &lt;a href=&quot;http://en.wikipedia.org/wiki/VisiCalc&quot;&gt;VisiCalc&lt;/a&gt; was _the_ first spreadsheet software (&lt;a href=&quot;http://en.wikipedia.org/wiki/Lotus_1-2-3&quot;&gt;1-2-3&lt;/a&gt; followed just after).   Bob tells how &lt;a href=&quot;http://www.frankston.com/public/?name=ImplementingVisiCalc&quot;&gt;Implementing VisiCalc&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;I have not yet finished the book, but I already learned a lot from the first stories. I think there is a lot to learn in this book from the story of such legendary startups (see the TOC for the list).&lt;/p&gt;


&lt;p&gt;Pour les francophones, j'ai découvert &lt;a href=&quot;http://www.antememoire.org/TV_r27.html&quot; hreflang=&quot;fr&quot;&gt;AnteMemoire TV&lt;/a&gt;, une émission qui retrace l'histoire de l'informatique à travers des personnes, logiciels ou matériels connus et qui ont marqué leur temps. Cela fait partie d'un projet plus globale de musée de l'informatique. L'émission &lt;a href=&quot;http://www.antememoire.org/index.php?action=article&amp;amp;id_article=525209&quot; hreflang=&quot;fr&quot;&gt;AnteMemoire TV #6&lt;/a&gt; parle de VisiCalc (c'est le sujet du billet quand même !!).&lt;/p&gt;


&lt;p&gt;Dédicace spéciale à Stéphane !!! A quand une démo sur l'Apple II ? ;)&lt;/p&gt;


&lt;p&gt;[update] Comme quoi on se refait pas, Dan a fondé &lt;a href=&quot;http://www.softwaregarden.com&quot;&gt;Software Garden&lt;/a&gt; et développé &lt;a href=&quot;http://www.softwaregarden.com/products/wikicalc/index.html&quot;&gt;WikiCalc&lt;/a&gt; que l'on peut voir à l'oeuvre dans cette &lt;a href=&quot;http://www.peapodcast.com/sgi/wikicalc97demo/&quot;&gt;demo&lt;/a&gt; (screencast en flash).&lt;/p&gt;</description>
    
    
    
          <comments>http://www.stacksegment.net/blog/index.php?post/2007/12/06/Remember-VisiCalc#comment-form</comments>
      <wfw:comment>http://www.stacksegment.net/blog/index.php?post/2007/12/06/Remember-VisiCalc#comment-form</wfw:comment>
      <wfw:commentRss>http://www.stacksegment.net/blog/index.php?feed/rss2/comments/33</wfw:commentRss>
      </item>
    
  <item>
    <title>TDD: Does writing software backwards really improve quality?</title>
    <link>http://www.stacksegment.net/blog/index.php?post/2007/12/06/Good-article-about-Test-Driven-Development</link>
    <guid isPermaLink="false">urn:md5:28a533a0054c1132cb2acf8418b4ca94</guid>
    <pubDate>Thu, 06 Dec 2007 12:56:00 +0000</pubDate>
    <dc:creator>Greg</dc:creator>
        <category>dev</category>
        <category>agile</category><category>dev</category><category>tdd</category>    
    <description>    &lt;p&gt;If you have adopted agile development methods, or even just interested in them, &lt;a href=&quot;http://www.ddj.com&quot;&gt;Dr. Dobb's&lt;/a&gt; published an article &lt;a href=&quot;http://www.ddj.com/architect/204300064&quot;&gt;Test Driven Development: Does writing software backwards really improve quality?&lt;/a&gt;  where they tried to evaluate if Test Driven Development (TDD) really improves code quality. The article shows that TDD helps to have less critical (none where found by the QA in the article's case) bugs and less bugs in general. The developer's feedback - the one who wrote the code used in the evaluation - is worth the reading:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;The TDD code was refactored several times during development. Methods were created, then changed, and then changed again with each revision, resulting in code that was tighter or clearer. The developer felt like the code went through an extensive proofreading cycle similar to what is done for newspapers, magazines, or the like.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;There was a freedom of experimentation that led to better design decisions. Once the first working version of a class method was completed and properly tested, the developer could then try new design ideas. The unit tests quickly confirmed or denied that the new code worked, providing a digital safety net.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;On a number of occasions, the developer found that the TDD method forced him to slow down and think more carefully about what he was trying to accomplish. Rather than just banging out code to get the job done, he focused on writing high quality code.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This encourage me to try it in my current projects :). As they say in the introduction, writing tests before the code is not so natural ;) at first sight, but it could be fine to spend less time on bug squashing by taking some additional time to write the unit tests before.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.stacksegment.net/blog/index.php?post/2007/12/06/Good-article-about-Test-Driven-Development#comment-form</comments>
      <wfw:comment>http://www.stacksegment.net/blog/index.php?post/2007/12/06/Good-article-about-Test-Driven-Development#comment-form</wfw:comment>
      <wfw:commentRss>http://www.stacksegment.net/blog/index.php?feed/rss2/comments/32</wfw:commentRss>
      </item>
    
  <item>
    <title>I like this king of BUG!</title>
    <link>http://www.stacksegment.net/blog/index.php?post/2007/12/05/I-like-this-king-of-BUG</link>
    <guid isPermaLink="false">urn:md5:5138789efd08b26f0302ad4c535a4576</guid>
    <pubDate>Wed, 05 Dec 2007 17:35:00 +0000</pubDate>
    <dc:creator>Greg</dc:creator>
        <category>hardware</category>
        <category>embedded</category><category>hardware</category><category>linux</category><category>opensource</category><category>oss</category>    
    <description>    &lt;p&gt;&lt;img src=&quot;http://www.stacksegment.net/blog/public/BUG_Logo_whiteBack_sm.jpg&quot; alt=&quot;BUG_Logo_whiteBack_sm.jpg&quot; /&gt; Do you know &lt;a href=&quot;http://buglabs.net/&quot;&gt;Buglabs&lt;/a&gt;? Because I can't wait to see their &lt;a href=&quot;http://buglabs.net/products&quot;&gt;BUG&lt;/a&gt;!! To quote the site: &quot;&lt;em&gt;BUG is a collection of easy-to-use, open source hardware modules, each capable of producing one or more Web services. These modules snap together physically and the services connect together logically to enable users to easily build, program and share innovative devices and applications.&lt;/em&gt;&quot;. The first modules they'll release are the GPS, videocam, touch sensitive LCD screen and accelerometer/motion sensor. The SDK is based on Eclipse and will be freely available. It aims to be an entirely opensource project (like the &lt;a href=&quot;http://www.chumby.com&quot;&gt;Chumby&lt;/a&gt; which is based on a linux stack and freely distributes the electronic schematics): &quot;&lt;em&gt;We are using Linux 2.6.19. In addition, the hardware schematics, BOMs and so forth will be made freely available to encourage users in forums and so on to hack, extend and enhance it (from #165 LinuxJournal).&lt;/em&gt;&quot;&lt;/p&gt;


&lt;p&gt;I'll hope they'll succeed. Currently nothing is actually available but it seems they made some demos in SF and NY. Opensource hardware is a huge thing though not so novel. Remember the beginning of Apple and the Homebrew Computer Club. Back to the source! Back to the garage! :)&lt;/p&gt;</description>
    
    
    
          <comments>http://www.stacksegment.net/blog/index.php?post/2007/12/05/I-like-this-king-of-BUG#comment-form</comments>
      <wfw:comment>http://www.stacksegment.net/blog/index.php?post/2007/12/05/I-like-this-king-of-BUG#comment-form</wfw:comment>
      <wfw:commentRss>http://www.stacksegment.net/blog/index.php?feed/rss2/comments/31</wfw:commentRss>
      </item>
    
  <item>
    <title>Quel avenir pour les applications web libres ? (1/?)</title>
    <link>http://www.stacksegment.net/blog/index.php?post/2007/12/04/Quel-avenir-pour-les-applications-web-libres-1/</link>
    <guid isPermaLink="false">urn:md5:ebc7371beaf4d7e5fe245f20c4ba6e09</guid>
    <pubDate>Tue, 04 Dec 2007 10:32:00 +0000</pubDate>
    <dc:creator>Greg</dc:creator>
        <category>thoughts and musings</category>
        <category>avenir</category><category>libre</category><category>opensource</category><category>oss</category><category>web</category>    
    <description>&lt;p&gt;Aujourd'hui le &lt;a href=&quot;http://www.w3.org&quot;&gt;web&lt;/a&gt; est présent partout. Et comme le met en avant &lt;a href=&quot;http://www.biologeek.com&quot;&gt;David Larlet&lt;/a&gt;, nos données personnelles se trouvent de plus en plus disséminées sur la toile. Dans ce contexte, &lt;a href=&quot;http://www.biologeek.com/journal/index.php/quel-avenir-pour-les-applications-web-libres&quot;&gt;l'avenir des applications web libres&lt;/a&gt; peut sembler primordial, car ce pourrait être un moyen de connaître ce qui est fait de ces données.&lt;/p&gt;


&lt;p&gt;Le &lt;a href=&quot;http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html&quot;&gt;web 2.0&lt;/a&gt; a amené des principes qui changent la manière de voir et concevoir les services sur le web. Si la notion d'application parait simple sur le desktop, la notion de &lt;a href=&quot;http://fr.wikipedia.org/wiki/SaaS&quot;&gt;Software as a Service&lt;/a&gt; (SaaS), a changé la donne des applications web. Les &lt;a href=&quot;http://fr.wikipedia.org/wiki/Application_composite&quot;&gt;mashups&lt;/a&gt; en sont une preuve, lorsque les données sont suffisamment bien découpées - c'est à dire en unités petites et ré-utilisables -, le service est utilisé avec d'autres services pour constituer une nouvelle application. On utilisera à cet effet l'API fourni par les différentes services. Cependant, il existe toujours de manière sous-jacente une plateforme technique qui permet de mettre en oeuvre et d'assurer le service.&lt;/p&gt;


&lt;p&gt;En résumé&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Une application libre ne garantit pas le contrôle des données personnelles à partir du moment où elle est hébergée chez un fournisseur de service.&lt;/li&gt;
&lt;li&gt;Les offres d'hébergement gratuit ou pas cher suffisamment souples pour permettre l'installation d'environnement web variés permettent de pousser la création et la diversité technologique.&lt;/li&gt;
&lt;li&gt;La réactivité de la communauté et la rapidité d'intégration des nouvelles technologies et normes permettra une adoption dans les entreprises.&lt;/li&gt;
&lt;/ul&gt;    &lt;p&gt;Je vais dans un premier temps discuter de la partie plateforme technique et plus particulièrement du code. La plupart des succès du web 2.0 (flickr, facebook, basecamp, googlemaps) sont basés sur un mix toolkit et code propriétaire. Certes, elles fournissent des APIs qui permettent d'accéder aux données qu'elles détiennent et d'utiliser le service; mais elles ne permettent pas de modifier ce service par exemple. Le code dans ces cas n'est pas libre. On pourra rétorquer que yahoo, google, et autres, distribuent des toolkit sous des licences libres comme le &lt;a href=&quot;http://code.google.com/webtoolkit/&quot; hreflang=&quot;en&quot;&gt;Google Web Toolkit (GWT)&lt;/a&gt; et le &lt;a href=&quot;http://developer.yahoo.com/yui/&quot; hreflang=&quot;en&quot;&gt;Yahoo User Interface (YUI)&lt;/a&gt; Library. Oui c'est orienté RIA et donc plutôt côté client (YUI est une lib JavaScript, GWT en revanche est en Java donc côté serveur). C'est bien, mais ce sont des toolkits pas des applications complètes&amp;nbsp;!&lt;/p&gt;


&lt;h2&gt;Pourquoi des applications web libres&amp;nbsp;?&lt;/h2&gt;


&lt;p&gt;A l'opposé prenons &lt;a href=&quot;http://www.dotclear.net&quot;&gt;Dotclear&lt;/a&gt; ou &lt;a href=&quot;http://www.mediawiki.org&quot;&gt;Mediawiki&lt;/a&gt;. Ce sont des applications libres. Dans le cas de Dotclear c'est une application développée indépendamment d'un service, dans le cas de Mediawiki, c'est le moteur qui supporte le projet &lt;a href=&quot;http://www.wikipedia.org&quot;&gt;Wikipedia&lt;/a&gt;. Pour comprendre l'avenir des applications libres, il faut d'abord comprendre pourquoi elles existent. Bien sûr, ce sera difficile d'y répondre en quelques lignes, et je ne peux parler à la place des milliers de développeurs et contributeurs. Je pense que les applications libres comme toute application naissent pour répondre à un besoin. Là où elles sont différentes des applications propriétaires c'est dans l'intention de leurs auteurs. Créer une application libre c'est permettre à d'autres personnes de la comprendre, de la modifier et également de faire autre chose avec, puis de la redistribuer. Créer une application propriétaire c'est vouloir tirer un avantage concurrentiel de ses &lt;em&gt;secrets industriels&lt;/em&gt;, de son code. Pour le revendre ou juste pour empêcher d'autres personnes de partager la même base par peur qu'elles ne fassent mieux.&lt;/p&gt;


&lt;p&gt;L'ouverture est en partie ce qui rend une application pérenne. Si les mainteneurs d'une application libre ne peuvent plus s'en occuper, d'autres développeurs peuvent prendre la relève, et soit reprendre le projet, soit en faire un fork. Dans certains cas, les fork s'opèrent spontanément en réponse aux divergences dans le développement ou la stratégie à adopter. Si on regarde cela d'un point de vue économique, cela encourage la concurrence et l'innovation. C'est ce qui est fait du code et sa mise en oeuvre qui donne un avantage à un fournisseur de service. Cependant, les applications libres occupent peu le devant de la scène depuis quelques temps. Si la base est souvent du LAMP ou du J2EE libre, le code de l'application elle-même est propriétaire comme on l'a vu précédemment.&lt;/p&gt;


&lt;p&gt;Dans ce sens, l'avenir des applications web libres, s'il ne semble pas en péril - je vois mal wordpress, dotclear ou mediawiki être abandonnés vu leur utilisation et les communautés qui gravitent autour - il parait en revanche un peu en retrait des applications propriétaires maison de start-up ou géants du web.&lt;/p&gt;


&lt;h2&gt;Pourquoi LAMP s'est imposé&amp;nbsp;?&lt;/h2&gt;


&lt;h3&gt;PHP&lt;/h3&gt;


&lt;p&gt;En citant ces trois projets (qui me sont venus en tête sans réfléchir et sans intention particulière), on se rend rapidement compte d'une chose. Ils sont écrits en PHP. Pourquoi&amp;nbsp;? Qu'est-ce qui a fait le succès de PHP&amp;nbsp;? A présent, le langage intègre des constructions de langage moderne, mais pour ceux qui se souviennent de PHP3, c'était loin d'être la panacée&amp;nbsp;! Avant ça, on avait des cgi en Perl, voire en C et de l'asp.&lt;/p&gt;


&lt;p&gt;Premier ingrédient du succès de PHP, il tournait sur de l'Apache (en module avec mod_php ou en cgi). C'était donc gratuit, libre et répandu. Deuxième ingrédient, c'était léger et rapide à installer. C'est sûrement un des points qui encouragea les hébergeurs et les FAI à proposer de l'hébergement gratuit ou pas cher de pages persos dynamique avec PHP. Troisième ingrédient, la syntaxe était proche du C et le langage simple. Ensuite la communauté qui s'est constituée autour du langage a apportée des libs qui ont rendu le développement encore plus facile et rapide.&lt;/p&gt;


&lt;h3&gt;L'hébergement&lt;/h3&gt;


&lt;p&gt;Remettons nous à la place d'un dévelopeur web de l'époque. Quelle est son premier problème avant même de penser à coder&amp;nbsp;? Trouver un hébergement. Il ne sert à rien d'écrire du code qu'on ne pourra pas exécuter quelque part. Il faut donc qu'il trouve un langage qui soit proposé dans des hébergements gratuits ou pas chers. Bon là on tombe dans le problème de l'oeuf et de la poule. Les hébergeurs se sont sûrement posés la question dans l'autre sens&amp;nbsp;: comment fournir à mes clients un langage dynamique pour leurs pages persos&amp;nbsp;? Déjà pourquoi fournir de l'hébergement gratuit. Je ne sais si c'est totalement vrai, mais dans le cas de Free il semblerait que c'était pour peser plus dans les accords de peering. Ce qui est crédible. Je pense qu'il y avait quand même un peu plus derrière. C'est peut-être ce qui a convaincu les managers au final.&lt;/p&gt;


&lt;h3&gt;Les framework&lt;/h3&gt;


&lt;p&gt;Maintenant, les framework de développement web sont à la mode. On entends partout parler de Ruby on Rails, Django, Struts, Symfony. Les hébergements commencent à arrivés. On avait déjà le dédié pas cher (lost oasis - qui se souvient des openbrick&amp;nbsp;? ;) - puis dedibox) et les serveurs virtualisés. Cela permet de faire tourner autre chose que du PHP (avec parfois une configuration contraignante). Avec la généralisation de l'adsl (ça commence à remonter maintenant !), il est devenu facile d'héberger son site à la maison.&lt;/p&gt;


&lt;h2&gt;Disposer du code source. Pour qui&amp;nbsp;? Pourquoi&amp;nbsp;?&lt;/h2&gt;


&lt;p&gt;Pourquoi je parle de tout ça (un peu comme un ancien alors que je ne suis pas si vieux que ça ;) )&amp;nbsp;? Parce que ce qui différencie fondamentalement une application web libre, d'une application web propriétaire, c'est la disponibilité du code. Pour une utilisation personnelle, il faut donc pouvoir &quot;&lt;em&gt;installer&lt;/em&gt;&quot; ce code quelque part. Les nouvelles offres d'hébergement comme &lt;a href=&quot;http://www.mediatemple.net&quot;&gt;Media Temple&lt;/a&gt;, sont super intéressantes dans ce sens car elles permettent de proposer des environnements variés facilement et pas chers. Cela permet d'utiliser une application web libre pour ses besoins.&lt;/p&gt;


&lt;h2&gt;Et les entreprises&amp;nbsp;?&lt;/h2&gt;


&lt;p&gt;Bien sûr, les applications web sont utilisées en dehors des besoins persos. On retrouve les mêmes avantages que les autres types d'applications libres&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;communauté&amp;nbsp;: relecture du code par des tiers, contributions, support communautaire, réactivité&lt;/li&gt;
&lt;li&gt;utilisation dans d'autres situations que celles prévues initialement (et donc ajout de fonctionnalités par exemple)&lt;/li&gt;
&lt;li&gt;pérennité&lt;/li&gt;
&lt;li&gt;transparence&lt;/li&gt;
&lt;li&gt;gratuité&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Certaines entreprises sont aussi très attachées aux valeurs éthiques du libre. Donc de ce point de vue là, l'avenir se présente plutôt bien.&lt;/p&gt;


&lt;p&gt;Par contre que se passerait-il si des cabinets de conseil, et dans la continuité de l'externalisation, poussaient les entreprises à faire des mashup plutôt que d'utiliser des applications libres&amp;nbsp;? Cela me semble peut probable dans beaucoup de situations. Pour la simple raison que mashup implique données stockées un peu partout et sans maîtrise. Pour des données personnelles, si on l'accepte, ça peut passer. Pour des besoins professionnels, ça devient tendu&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;To be continued...&lt;/p&gt;</description>
    
    
    
          <comments>http://www.stacksegment.net/blog/index.php?post/2007/12/04/Quel-avenir-pour-les-applications-web-libres-1/#comment-form</comments>
      <wfw:comment>http://www.stacksegment.net/blog/index.php?post/2007/12/04/Quel-avenir-pour-les-applications-web-libres-1/#comment-form</wfw:comment>
      <wfw:commentRss>http://www.stacksegment.net/blog/index.php?feed/rss2/comments/30</wfw:commentRss>
      </item>
    
  <item>
    <title>Innovation Happens Elsewhere online version</title>
    <link>http://www.stacksegment.net/blog/index.php?post/2007/11/22/Innovation-Happens-Elsewhere-online-version</link>
    <guid isPermaLink="false">urn:md5:44395ba5f1db9eb61b60f136308560c5</guid>
    <pubDate>Thu, 22 Nov 2007 16:55:00 +0000</pubDate>
    <dc:creator>Greg</dc:creator>
        <category>OSS</category>
        <category>book</category><category>foss</category><category>reading</category>    
    <description>    &lt;p&gt;Web 2.0 brings to the world and to business minds the proof that opensource models (lamp, interoperability, respect to the standards, etc...) and values (openness and wisdom of crowds) can succeed. Actually it breaks the old proprietary approach by pushing mashups and remixability that needs open and standard interfaces, let say APIs. I've ordered some books about opensource philosophy today. That's why I found in my Amazon.com recommendations &lt;a href=&quot;http://www.amazon.com/Innovation-Happens-Elsewhere-Business-Strategy/dp/1558608893/ref=pd_ys_ir_all_15?pf_rd_p=258372101&amp;amp;pf_rd_s=center-1&amp;amp;pf_rd_t=1501&amp;amp;pf_rd_i=list&amp;amp;pf_rd_m=ATVPDKIKX0DER&amp;amp;pf_rd_r=0V6FQCD4PYJQTF2NXVTV&quot;&gt;Innovation Happens Elsewhere&lt;/a&gt;.  It has good reviews that helped me to find the authors provides an &lt;a href=&quot;http://dreamsongs.com/IHE/IHE.html&quot;&gt;online version&lt;/a&gt; under creative commons. Good reading ;).&lt;/p&gt;</description>
    
    
    
          <comments>http://www.stacksegment.net/blog/index.php?post/2007/11/22/Innovation-Happens-Elsewhere-online-version#comment-form</comments>
      <wfw:comment>http://www.stacksegment.net/blog/index.php?post/2007/11/22/Innovation-Happens-Elsewhere-online-version#comment-form</wfw:comment>
      <wfw:commentRss>http://www.stacksegment.net/blog/index.php?feed/rss2/comments/28</wfw:commentRss>
      </item>
    
  <item>
    <title>No Amazon mp3 downloads outside US</title>
    <link>http://www.stacksegment.net/blog/index.php?post/2007/11/22/No-Amazon-mp3-downloads-outside-US</link>
    <guid isPermaLink="false">urn:md5:5b36b422089fe7b3a864e7e3457bc5f2</guid>
    <pubDate>Thu, 22 Nov 2007 16:33:00 +0000</pubDate>
    <dc:creator>Greg</dc:creator>
        <category>amazon</category><category>download</category><category>mp3</category><category>music</category><category>nodrm</category><category>shopping</category>    
    <description>    &lt;p&gt;&lt;img src=&quot;http://www.stacksegment.net/blog/public/amazon_logo.gif&quot; alt=&quot;amazon_logo.gif&quot; /&gt; sells 192 kbps without drm mp3 songs and full albums (cheaper than buying all songs individually) on &lt;a href=&quot;http://www.amazon.com/MP3-Music-Download/b/ref=sa_menu_dmusic2?ie=UTF8&amp;amp;node=163856011&amp;amp;pf_rd_p=328655101&amp;amp;pf_rd_s=left-nav-1&amp;amp;pf_rd_t=101&amp;amp;pf_rd_i=507846&amp;amp;pf_rd_m=ATVPDKIKX0DER&amp;amp;pf_rd_r=0ME7TW6B64QPCG7CRQ42&quot;&gt;Amazon.com MP3 Downloads&lt;/a&gt;. Unfortunately as the screenshot below shows, this is not for people outside US. And if you are a linux user, you can't natively - which means without virtualization or emulation - download full albums.&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.stacksegment.net/blog/public/Amazon_MP3.png&quot; alt=&quot;Amazon_MP3.png&quot; /&gt;&lt;/p&gt;</description>
    
    
    
          <comments>http://www.stacksegment.net/blog/index.php?post/2007/11/22/No-Amazon-mp3-downloads-outside-US#comment-form</comments>
      <wfw:comment>http://www.stacksegment.net/blog/index.php?post/2007/11/22/No-Amazon-mp3-downloads-outside-US#comment-form</wfw:comment>
      <wfw:commentRss>http://www.stacksegment.net/blog/index.php?feed/rss2/comments/27</wfw:commentRss>
      </item>
    
  <item>
    <title>nvidia CUDA</title>
    <link>http://www.stacksegment.net/blog/index.php?post/2007/11/22/nvidia-CUDA</link>
    <guid isPermaLink="false">urn:md5:27190c58b799c8e5611d9e13b7b34704</guid>
    <pubDate>Thu, 22 Nov 2007 09:36:00 +0000</pubDate>
    <dc:creator>Greg</dc:creator>
        <category>IT security / Privacy</category>
        <category>computing</category><category>cracking</category><category>gpu</category><category>parallel</category><category>password</category><category>programming</category><category>security</category>    
    <description>    &lt;p&gt;&lt;img src=&quot;http://www.stacksegment.net/blog/public/nvidia_logo.gif&quot; alt=&quot;nvidia_logo.gif&quot; /&gt;
Thanks to the &lt;a href=&quot;http://www.ddj.com&quot;&gt;Dr. Dobb's&lt;/a&gt; Report newsletter, I've learned about &lt;a href=&quot;http://www.nvidia.com&quot;&gt;nvidia&lt;/a&gt; &lt;a href=&quot;http://developer.nvidia.com/object/cuda.html&quot;&gt;CUDA&lt;/a&gt;. It's a SDK that aims to use nvidia GPUs for computing. It includes a C compiler, hardware debugger based on gdb interface), and a profiler. It also includes standard FFT and BLAS libraries. For even more fun, it provides a low level assembly language layer and driver interface. CUDA is supported on Linux and Windows XP. As one may guess, nvidia only provides binary files.&lt;/p&gt;


&lt;p&gt;A comprehensive &lt;a href=&quot;http://forums.nvidia.com/index.php?showtopic=36286&quot;&gt;FAQ&lt;/a&gt; is available.&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.elcomsoft.com&quot;&gt;Elcomsoft&lt;/a&gt; has already find a usage for CUDA, it recently made some buzz in the &lt;a href=&quot;http://technology.newscientist.com/article.ns?id=dn12825&amp;amp;feedId=online-news_rss20&quot;&gt;news&lt;/a&gt; (press release in &lt;a href=&quot;http://www.elcomsoft.com/EDPR/gpu_en.pdf&quot;&gt;pdf&lt;/a&gt;) by adding support for GPUs in their password recovery products. For an overview of password cracking check this &lt;a href=&quot;http://www.informit.com/articles/article.aspx?p=761748&amp;amp;rl=1&quot;&gt;except&lt;/a&gt; from the book &lt;a href=&quot;http://www.informit.com/title/0321436954&quot;&gt;Endpoint Security&lt;/a&gt;. Password cracking with FPGAs was presented at conferences (like &lt;a href=&quot;http://www.layerone.info/archives/2006/presentations/Cracking_WiFi_Faster-LayerOne-Church_of_WiFi.pdf&quot;&gt;Cracking Wifi... Faster!&lt;/a&gt; at &lt;a href=&quot;http://www.layerone.info&quot;&gt;layerone&lt;/a&gt;) mainly for wep and &lt;a href=&quot;http://openciphers.sourceforge.net/oc/wpa.php&quot;&gt;wpa cracking&lt;/a&gt;. But now there is a growing interest in commodity hardware (like Sony PS3 with &lt;a href=&quot;http://www.802.11mercenary.net/ps3-wepcrack/&quot;&gt;ps3-wepcrack&lt;/a&gt;). In fact, why spending money and time in FPGAs if you can use commodity - almost cheap - hardware? I hope we'll see soon &lt;a href=&quot;http://www.openwall.com/john/&quot;&gt;john the ripper&lt;/a&gt; using CUDA :).&lt;/p&gt;</description>
    
          <enclosure url="http://www.stacksegment.net/blog/public/Cracking_WiFi_Faster-LayerOne-Church_of_WiFi.pdf"
      length="6176511" type="application/pdf" />
          <enclosure url="http://www.stacksegment.net/blog/public/shmoocon-2007.pdf"
      length="1461340" type="application/pdf" />
    
    
          <comments>http://www.stacksegment.net/blog/index.php?post/2007/11/22/nvidia-CUDA#comment-form</comments>
      <wfw:comment>http://www.stacksegment.net/blog/index.php?post/2007/11/22/nvidia-CUDA#comment-form</wfw:comment>
      <wfw:commentRss>http://www.stacksegment.net/blog/index.php?feed/rss2/comments/26</wfw:commentRss>
      </item>
    
  <item>
    <title>Software Development round up #1</title>
    <link>http://www.stacksegment.net/blog/index.php?post/2007/11/15/Software-Development-round-up-1</link>
    <guid isPermaLink="false">urn:md5:f9a080fb7ec9143b6fcf842b201d1b54</guid>
    <pubDate>Thu, 15 Nov 2007 16:36:00 +0000</pubDate>
    <dc:creator>Greg</dc:creator>
        <category>dev</category>
        <category>agile</category><category>dev</category><category>ide</category><category>programming</category><category>python</category>    
    <description>    &lt;p&gt;As you may know, I'm not a software developer. However I like this domain and am always happy to write some code when I need (or not ;) ). Recently I am focusing on web development (with Django) and &lt;a href=&quot;http://en.wikipedia.org/wiki/Agile_software_development&quot;&gt;Agile methods&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.stacksegment.net/blog/public/pad.jpg&quot; alt=&quot;pad.jpg&quot; /&gt;&lt;/p&gt;


&lt;p&gt;I am reading &lt;a href=&quot;http://www.pragprog.com/titles/pad&quot;&gt;Practices of an Agile Developer&lt;/a&gt; which is a very interesting book. It brings some real feedback and experience, as well as good advices. I believe it is useful not only in software development but more generally in any IT (or even non-IT) project. The &lt;a href=&quot;http://media.pragprog.com/titles/pad/TOC.pdf&quot;&gt;table of content&lt;/a&gt; gives a good overview of the book and the practices. The next step is to choose a agile method to focus on. Intuitively I may try &lt;a href=&quot;http://www.extremeprogramming.org/&quot;&gt;eXtreme Programming&lt;/a&gt; at first.&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://www.stacksegment.net/blog/public/python-logo.gif&quot; alt=&quot;python-logo.gif&quot; /&gt;&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://www.vim.org&quot;&gt;Vim&lt;/a&gt; has always seemed to fit my needs. But I didn't try an IDE for ages, so now I give a try to &lt;a href=&quot;http://pydev.sourceforge.net/&quot;&gt;PyDev&lt;/a&gt;, a plugin to &lt;a href=&quot;http://www.eclipse.org&quot;&gt;Eclipse&lt;/a&gt;. I can't bear using arrow keys!!!! So I'll need to quickly find how to use vim modes. I found &lt;a href=&quot;http://vimplugin.sourceforge.net/wiki/pmwiki.php&quot;&gt;Vimplugin&lt;/a&gt; and &lt;a href=&quot;http://www.satokar.com/viplugin/&quot;&gt;viPlugin&lt;/a&gt;. &lt;del&gt;After a quick comparison, I'll see which to choose.&lt;/del&gt; viPlugin is not free (neither as in free beer nor as in freedom). Thus I'll use vimplugin!&lt;/p&gt;


&lt;p&gt;I have seen this &lt;a href=&quot;http://wiki.python.org/moin/IntegratedDevelopmentEnvironments&quot;&gt;list of python IDEs&lt;/a&gt;. Wing appears to be a good tool but is not free (as in freedom or even as in free beer!).&lt;/p&gt;


&lt;p&gt;I also begin to learn more about &lt;a href=&quot;http://martinfowler.com/articles/continuousIntegration.html&quot;&gt;Continuous Integration&lt;/a&gt; which is an important practice of Agile methods. I aim to integrate all agile practices in my programming tasks.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.stacksegment.net/blog/index.php?post/2007/11/15/Software-Development-round-up-1#comment-form</comments>
      <wfw:comment>http://www.stacksegment.net/blog/index.php?post/2007/11/15/Software-Development-round-up-1#comment-form</wfw:comment>
      <wfw:commentRss>http://www.stacksegment.net/blog/index.php?feed/rss2/comments/23</wfw:commentRss>
      </item>
    
  <item>
    <title>Google's Android SDK is available</title>
    <link>http://www.stacksegment.net/blog/index.php?post/2007/11/12/Googles-Android-SDK-is-available</link>
    <guid isPermaLink="false">urn:md5:978228820bdda3effe1597138eec5a25</guid>
    <pubDate>Mon, 12 Nov 2007 18:17:00 +0000</pubDate>
    <dc:creator>Greg</dc:creator>
        <category>hardware</category>
        <category>google</category><category>mobile</category><category>phone</category><category>sdk</category>    
    <description>    &lt;p&gt;&lt;img src=&quot;http://www.stacksegment.net/blog/public/android-wallpaper5_thumbnail.jpg&quot; alt=&quot;android-wallpaper5_thumbnail.jpg&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Google has made &lt;a href=&quot;http://www.openhandsetalliance.com/developers.html&quot;&gt;Android SDK&lt;/a&gt; available. It is released under an &lt;a href=&quot;http://code.google.com/android/terms.html&quot;&gt;Apache-like license&lt;/a&gt;. This &lt;a href=&quot;http://www.onlamp.com/pub/a/onlamp/2007/11/12/google-calling-inside-the-gphone-sdk.html&quot;&gt;ONLamp's article&lt;/a&gt; covers it. Android SDK provides an emulator environment to test it on a PC (as it is developed in Java, it should run on windows, osx and linux).&lt;/p&gt;


&lt;p&gt;Check &lt;a href=&quot;http://code.google.com/android/what-is-android.html&quot;&gt;Android @Google Code&lt;/a&gt; for a detailed description and everything else about the project.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.stacksegment.net/blog/index.php?post/2007/11/12/Googles-Android-SDK-is-available#comment-form</comments>
      <wfw:comment>http://www.stacksegment.net/blog/index.php?post/2007/11/12/Googles-Android-SDK-is-available#comment-form</wfw:comment>
      <wfw:commentRss>http://www.stacksegment.net/blog/index.php?feed/rss2/comments/22</wfw:commentRss>
      </item>
    
  <item>
    <title>Hushmail and the feds</title>
    <link>http://www.stacksegment.net/blog/index.php?post/2007/11/08/Hushmail-and-the-feds</link>
    <guid isPermaLink="false">urn:md5:61a8f9fe0f7a3dfded9a866f0b68fbda</guid>
    <pubDate>Thu, 08 Nov 2007 14:58:00 +0000</pubDate>
    <dc:creator>Greg</dc:creator>
        <category>IT security / Privacy</category>
        <category>crypto</category><category>mail</category><category>privacy</category>    
    <description>&lt;p&gt;&lt;img src=&quot;http://www.stacksegment.net/blog/public/logo.gif&quot; alt=&quot;logo.gif&quot; /&gt;
This morning I read the Wired's article, &lt;a href=&quot;http://blog.wired.com/27bstroke6/2007/11/encrypted-e-mai.html&quot;&gt;Encrypted E-Mail Company Hushmail Spills to Feds&lt;/a&gt;. In short, Hushmail - &lt;em&gt;which is a canadian comparny&lt;/em&gt; - helped the feds to decrypt steroid dealers' mails who were using the non-java webmail service (see the &lt;a href=&quot;https://www.hushmail.com/hushmail/showHelpFile.php?file=compatibility/java/index.html&quot;&gt;comparison java/non-java configuration&lt;/a&gt; for details). Read also the &lt;a href=&quot;https://www.hushmail.com/hushmail/showHelpFile.php?file=compatibility/java/index.html&quot;&gt;mail thread&lt;/a&gt; between Kevin Poulsen and Hushmail CTO, Brian Smith. He stressed that &quot;&lt;em&gt;The key point, though, is that in the non-Java configuration, private key and passphrase operations are performed on the server- side. This requires that users place a higher level of trust in our servers as a trade off for the better usability they get from not having to install Java and load an applet.&lt;/em&gt;&quot;.&lt;/p&gt;    &lt;p&gt;But one can guess that even in the java configuration, the user has to trust the Java applet. Hushmail could modify it to get the user's passphrase or  not encrypt the mail between the browser and the mail server. Brian Smith told people can assess the java applet source code, but how to check that the binary java applet comes from this source code ? Even if you hash or sign the applet, it may change to correct bug or add features. So, you need to trust Hushmail and their software. In this case, one solution is to share signature or hashes between different users. It needs several third party signature repository. The counterpart is that you need at least one person from your web-of-trust to sign the binary. Another solution is to compile the applet from the source and use it instead the applet stored in Hushmail's servers. It seems to be the best solution, but I wonder if it would actually work.&lt;/p&gt;


&lt;p&gt;It is a good reminder on encryption and trust. It is also a real life example. I remember the &lt;a href=&quot;https://www.ciphire.com/cm/technology/reviews.html&quot;&gt;external reviews&lt;/a&gt; of &lt;a href=&quot;http://www.ciphire.com&quot;&gt;Ciphire&lt;/a&gt;. &lt;a href=&quot;https://www.ciphire.com/cm/technology.html&quot;&gt;Technical docs&lt;/a&gt; are interesting too. This kind of mail service add automation to e-mail encryption. This is very helpful to make adoption of e-mail encryption easier. However recipients still need to subscribe to or use the same service. One may say &quot;&lt;em&gt;why not only install enigmail or firefox's extensions that add s/mime or openpgp to common webmails??&lt;/em&gt;&quot;. The problem is not encrypting e-mail. The problem  is in managing keys and/or certificates. That's what make automatic encryption services so helpful. You don't even need to manage your keys or to look for someone's openpgp public key.&lt;/p&gt;


&lt;p&gt;I don't really know why e-mail encryption is so hard to adopt for private use. Even myself, I quite never encrypt or sign e-mail because I know people will not check the signature or do not have a public key or certificate. Though I have an openpgp key exported on public servers, and a cacert personal certificate (on an usb token).&lt;/p&gt;


&lt;p&gt;Maybe it is because we don't feel the need. We only use cryptography when we believe information must be kept private and genuine. For less valuable information, there are also other way to check integrity of an e-mail (like the way an e-mail is written, or the recent discussion with the person who seems to have sent the e-mail). As often in cryptography, the main issue is key management. Once created, it's not hard to use. But the process of re-generation, revocation, etc... can be painful and boring...&lt;/p&gt;


&lt;p&gt;That's why vendors try to use already available and daily life hardware like mobile phones (and mainly the SIM card) to store keys and certificates.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.stacksegment.net/blog/index.php?post/2007/11/08/Hushmail-and-the-feds#comment-form</comments>
      <wfw:comment>http://www.stacksegment.net/blog/index.php?post/2007/11/08/Hushmail-and-the-feds#comment-form</wfw:comment>
      <wfw:commentRss>http://www.stacksegment.net/blog/index.php?feed/rss2/comments/21</wfw:commentRss>
      </item>
    
  <item>
    <title>wpa_supplicant and libssl0.9.8g-2 segfaults on Debian Unstable</title>
    <link>http://www.stacksegment.net/blog/index.php?post/2007/11/08/wpa_supplicant-and-libssl098g-2-segfault-on-Debian-Unstable</link>
    <guid isPermaLink="false">urn:md5:6698f34ad1b21f13cca7a82ca10b8174</guid>
    <pubDate>Thu, 08 Nov 2007 12:15:00 +0000</pubDate>
    <dc:creator>Greg</dc:creator>
        <category>debian</category>
        <category>bugs</category><category>debian</category>    
    <description>    &lt;p&gt;If like me this morning you got a segmentation fault in wpa_supplicant while trying to connect to an access point with WPA, check this &lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=449200&quot;&gt;Debian bug report&lt;/a&gt;. Upgrade to libssl0.9.8g-3 solves the issue (not yet available in upstream). Packages are available &lt;a href=&quot;http://people.debian.org/~kroeckx/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.stacksegment.net/blog/index.php?post/2007/11/08/wpa_supplicant-and-libssl098g-2-segfault-on-Debian-Unstable#comment-form</comments>
      <wfw:comment>http://www.stacksegment.net/blog/index.php?post/2007/11/08/wpa_supplicant-and-libssl098g-2-segfault-on-Debian-Unstable#comment-form</wfw:comment>
      <wfw:commentRss>http://www.stacksegment.net/blog/index.php?feed/rss2/comments/20</wfw:commentRss>
      </item>
    
  <item>
    <title>N9UF Twin Tact (Ep. 2)</title>
    <link>http://www.stacksegment.net/blog/index.php?post/2007/11/06/N9UF-Twin-Tact-Ep-2</link>
    <guid isPermaLink="false">urn:md5:4f9d616d1d0fe24ab00548c49e6b1e08</guid>
    <pubDate>Tue, 06 Nov 2007 13:01:00 +0000</pubDate>
    <dc:creator>Greg</dc:creator>
        <category>hardware</category>
        <category>hardware</category><category>mobile</category><category>phone</category><category>wifi</category>    
    <description>    &lt;p&gt;Ce matin mon compte Neuf mobile était enfin créé pour de bon (j'ai l'impression que quand ils disent 2 jours après l'activation de la ligne/SIM c'est deux jours ouvrés). J'ai donc pu le rattacher à mon Neuf ID principal et me créer un Neuf ID mobile pour utiliser les services multimedia. Ce que j'ai fais dans la foulée en testant la TV en stream par le wifi.&lt;/p&gt;


&lt;p&gt;Ca marche plutôt bien. Je n'ai pour l'instant testé que quelques minutes, mais c'est fluide. &lt;del&gt;En revanche il manque la possibilité de tourner l'écran&lt;/del&gt; (au temps pour moi on peut le faire très simplement). Par défaut, la vidéo s'affiche en 4/3 en tenant le téléphone clavier en bas (position normale). En cliquant sur l'écran en cours de lecture, la vidéo tourne dans le sens anti-horaire. Un nouveau clic permet de revenir à la disposition initiale.&lt;/p&gt;


&lt;p&gt;Pour l'instant j'ai relevé les defauts/bugs suivants&amp;nbsp;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pas de réglage du volume sur le téléphone (avec une molette par exemple)&lt;/li&gt;
&lt;li&gt;Problème d'incateur de charge. Là par exemple, le téléphone est connecté en USB à mon laptop et je ne vois pas l'état de la charge&lt;/li&gt;
&lt;li&gt;Un seul port USB sert à tout faire&amp;nbsp;: connexion avec le PC, kit main-libre, etc...&lt;/li&gt;
&lt;li&gt;Bascule automatique vers le GPRS quand le signal wifi est très faible. Ce point est assez moche. Pour le décrire un peu plus précisément, je me suis connecté sur la Neufbox chez des proches via le hotspot Neuf Wifi. Le signal était très faible, il fallait qu'il traverse un plancher en béton ;). Et la je lance le navigateur et hop, je vois le petit &lt;em&gt;g&lt;/em&gt; qui s'affiche, m'indiquant que je suis passé en GPRS sans me demander quoique ce soit&amp;nbsp;!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;En parlant du hotspot Neuf WiFi, je me demande comment se passe l'authentification. C'est un point à regarder.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.stacksegment.net/blog/index.php?post/2007/11/06/N9UF-Twin-Tact-Ep-2#comment-form</comments>
      <wfw:comment>http://www.stacksegment.net/blog/index.php?post/2007/11/06/N9UF-Twin-Tact-Ep-2#comment-form</wfw:comment>
      <wfw:commentRss>http://www.stacksegment.net/blog/index.php?feed/rss2/comments/19</wfw:commentRss>
      </item>
    
  <item>
    <title>Google's Android mobile OS and Open Handset Alliance</title>
    <link>http://www.stacksegment.net/blog/index.php?post/2007/11/06/Googles-Android-mobile-OS-and-Open-Handset-Alliance</link>
    <guid isPermaLink="false">urn:md5:0dbb56e8a5a781aad4facadf038d08d2</guid>
    <pubDate>Tue, 06 Nov 2007 09:56:00 +0000</pubDate>
    <dc:creator>Greg</dc:creator>
        <category>mobile</category><category>phone</category>    
    <description>    &lt;p&gt;A quick post about &lt;a href=&quot;http://www.arstechnica.com&quot;&gt;Ars Technica&lt;/a&gt;'s article on &lt;a href=&quot;http://arstechnica.com/news.ars/post/20071105-its-official-google-announces-open-source-mobile-phone-os-android.html&quot;&gt;Google's Android &lt;/a&gt; and Open Handset Alliance.&lt;/p&gt;


&lt;p&gt;Main facts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;No hardware manufacturing&lt;/em&gt; but a partnership with &lt;a href=&quot;http://www.openhandsetalliance.com/oha_members.html&quot;&gt;mobile manufacturers&lt;/a&gt; (HTC, LG, Motorola, Samsung) and carriers&lt;/li&gt;
&lt;li&gt;&lt;em&gt;&lt;a href=&quot;http://www.openhandsetalliance.com/android_overview.html&quot;&gt;Android&lt;/a&gt;&lt;/em&gt; is a linux-based OS that comes from the acquisition of the mobile compary in 2005&lt;/li&gt;
&lt;li&gt;Aspects of the platform will be provided under the &lt;em&gt;Apache license&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Full SDK&lt;/em&gt; for Android available next week&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There is also a true free (as in freedom) mobile phone: the &lt;a href=&quot;http://www.openmoko.com&quot;&gt;Neo1973&lt;/a&gt; which runs &lt;a href=&quot;http://www.openmoko.org&quot;&gt;OpenMoko&lt;/a&gt;. It is said to be available soon. Wait 'n see.&lt;/p&gt;</description>
    
    
    
          <comments>http://www.stacksegment.net/blog/index.php?post/2007/11/06/Googles-Android-mobile-OS-and-Open-Handset-Alliance#comment-form</comments>
      <wfw:comment>http://www.stacksegment.net/blog/index.php?post/2007/11/06/Googles-Android-mobile-OS-and-Open-Handset-Alliance#comment-form</wfw:comment>
      <wfw:commentRss>http://www.stacksegment.net/blog/index.php?feed/rss2/comments/18</wfw:commentRss>
      </item>
    
</channel>
</rss>