2016-02-01T16:38:47+01:00The Silence of Platotag:eiro.github.com,2014:blogMarc Chantreuxtag:eiro.github.com,2018-06-10:2018-06-10T02:17:51+01:00la gendarmerie a juste 20 ans d'avance2018-06-10T02:17:51+01:002018-06-10T02:17:51+01:00<h1 id="la-gendarmerie-a-juste-20-ans-davance">la gendarmerie a juste 20 ans d'avance</h1>
<p>ben ouais gros!</p>
tag:eiro.github.com,2016-02-01:2016-02-01T16:38:47+01:00Accéssibilité et typographie2016-02-01T16:38:47+01:002016-02-01T16:38:47+01:00<h1 id="accessibilité-et-typographie">Accessibilité et typographie</h1>
<p>une sensibilisation à l'<a href="https://fr.wikipedia.org/wiki/Accessibilit%C3%A9">accessibilité</a> numérique, prélude à une formation technique de deux jours sur les solutions techniques pour le web.</p>
<h1 id="en-résumé-de-la-présentation">En résumé de la présentation</h1>
<p>L'accessibilité est la capacité d'un usager à accéder à une ressource (consulter un document, utiliser un service, ...). Cette accessibilité peut être gênée ou rendue impossible par des handicaps de diverses natures:</p>
<ul>
<li>physiques (visuels, moteurs, ...)</li>
<li>intellectuelles (troubles ou limitations)</li>
<li>technologiques (faible débit, terminaux incapables de rendre certains contenus)</li>
<li>culturelles (non compréhension des codes, ...)</li>
<li>multiples (par exemple: une video sous-titrée en francais reste compliquée à déchiffrer pour un sourd-muet parceque sa langue maternelle est celles des signes: il n'a jamais entendu le francais)</li>
</ul>
<p>La politique d'accessibilité est l'ensemble des stratégies</p>
<ul>
<li>fonctionnelles</li>
<li>graphiques</li>
<li>techniques</li>
<li>éditoriales</li>
</ul>
<p>Qui améliorent le confort d'usage de tous en tenant compte des adaptations possibles pour les handicaps connus et pertinents. Il s'agit d'adapter la ressource elle-même ou de modifier/compléter la chaine de dispositifs permettant son accès.</p>
<p>Le coût de cette politique respecte une distribution de Pareto et les mesures de base (pour le web, respecter le niveau <a href="https://www.w3.org/TR/UNDERSTANDING-WCAG20/conformance.html#uc-levels-head">A</a> est une nécessité).</p>
<p>De plus, ce coût sera pondéré par:</p>
<ul>
<li>l'adoption de la problématique en amont des projets</li>
<li>les choix technologiques adéquats</li>
</ul>
<h1 id="notes-et-réflexions">Notes et réflexions</h1>
<p>Il me semble que de manière générale, le confort d'utilisateur repose dans sa capacité à choisir les modalités d'accès à une ressource. Il faut donc lui fournir un contenu qui soit</p>
<ul>
<li>le plus neutre possible en terme de mise en forme</li>
<li>le plus riche possible en terme de métadonnées ou de liens vers les métadonnées</li>
</ul>
<p>Je suis handicapé idéologique (handicapé technologique par choix) et ce handicap m'a toujours poussé à avoir une réflexion personnelle sur l'accessibilité. Ce que j'ai entendu conforte les pratiques développées intuitivement mais me semble en inadéquation totale avec l'économie du web actuel du web (à mes yeux un immense panneau de pub).</p>
<h2 id="wow-moments">wow moments</h2>
<p>La présentation étaient ponctuées d'informations qui font réfléchir. Par exemple</p>
<p>Seulement 20% des aveugles lisent le braille: les progrès de la médecine actuelle font que la cécité infantile est faible: on devient aveugle. Le braille est alors difficile à apprendre et sa mise en œuvre a des coûts pratiques et économiques importants.</p>
<p>Le français n'est <em>pas</em> la langue maternelle des sourds-muets des pays francophones. Ils l'ont jamais entendu parlé cette langue et du coup, les sous-titres en français sont aussi compliqués pour nous que la lecture de langues étrangère pour nous.</p>
<p>Les <em>langues</em> (parce que du coup de sont bien des langues) sont fortement empruntes des cultures dans lesquelles elles vivent.</p>
<ul>
<li><p>pour signer "autorité", l'américain bombera fièrement le torse pour tapoter à l'endroit ou on porte habituellement l'étoile de shérif alors qu'en France, c'est la place du galon qui sera pointé.</p></li>
<li><p>bonne chance pour trouver un signe universel pour "maison" …</p></li>
</ul>
<h1 id="conclusion"> Conclusion</h1>
<p>Même si je suis sensible à l'idée, je n'avais jamais envisager d'autres démarches que celles que me dictaient mon bon sens. J'attends donc avec impatience les 2 jours de formation technique sur la partie web.</p>
<p>En attendant, je vais tenter de trouver des lectures sur les stratégies générales et la possibilité d'automatiser ce qui peut l'être dans la contrôle de la qualité au mieux des contrôles.</p>
<p>À voir: <a href="http://asqatasun.org/">asqatasun</a></p>
tag:eiro.github.com,2015-12-13:2015-12-13T10:16:36+01:00Je vote Coluche2015-12-13T10:16:36+01:002015-12-13T10:16:36+01:00<h1 id="je-vote-coluche">Je vote Coluche</h1>
<p>En 1981 (j'avais 5 ans), les chars russes sont aux portes de Paris d'après les les observateurs les plus subtiles. Pour une grande partie de la France, c'est l'espoir d'un renouveau. cette bonne blague ...</p>
<p>depuis,</p>
<ul>
<li>on me parle de cette crise qui demande que chaque français fasse un effort</li>
<li>on tente de me faire croire que voter pour l'oposition permettera l'avenement de gens plus compétents ou plus honnêtes.</li>
<li>on nous propose toujours plus de sévérité, moins de tolérance à l'égard de ceux qui s'écartent de la loi alors que de nombreux politiques devraient être en prison.</li>
<li>on me propose de voter entre bonnet blanc et blanc bonnet afin d'éviter le retour de Staline ou d'Hitler.</li>
<li>on continue de voir notre drapeau et notre honneur souillés par le sang de leurs affaires. Ils sont prets a organiser des genocides pour vendre des armes ou mettre la main sur de l'uranium, du pétrole.</li>
<li>on subit leurs leçons de morale quand un artiste demande la dépénalisation du canabis ou insulte notre police devenue le bras armé de leurs injustices. (les policiers sont à compter parmis les victimes: comme nous, ils sont désabusés et ont peur de l'avenir).</li>
<li>...</li>
</ul>
<p>la liste est encore longue et je dois partir voter ... mais cette fois: je vote Coluche, le seul candidat honête de la 5ème république. le seul pour qui j'aurais aimé voté. il aurait eu 71 ans aujourd'hui.</p>
<p>Le vote blanc ne veut rien dire pour eux? Alors voilà le message explicite que je fais passer en votant Coluche:</p>
<pre><code>"Vous n'êtes pas légitimes à mes yeux si vous n'obtenez pas 50% des inscrits.
Si vous accepter votre charge malgré un suffrage plus faible, vous
appellez ma désobeissance civique et l'application des décisions que vous
prendrez seront autant de rapels de la violation des principes pour
lesquels nos ancêtres se sont battus."</code></pre>
<p>Aux armes, citoyens! Allons voter contre nous de la tyranie!</p>
tag:eiro.github.com,2015-09-14:2015-09-14T12:04:52+01:00Lyon patch -p32015-09-14T12:04:52+01:002015-09-14T12:04:52+01:00<p>Avec le soutien financier des <a href="http://mongueurs.pm/">Mongueurs de Perl</a> (que je remercie au passage), j'ai pu me rendre avec deux nouveaux mongueurs (<a href="https://github.com/geoffroybeck">Geoffroy "Jef" Beck</a> et Julien "kernel" Simonet de l'<a href="http://www.arn-fai.net/">ARN (Alsace réseau neutre)</a>) à Lyon avec dans l'idée de faire avancer des <a href="http://patch.pm/p3/wiki?node=Projets">des modules existants</a>. Et là...</p>
<h1 id="we-need-to-talk-about-spore">"We need to talk about SPORE"</h1>
<p>Au début du hackathon, je me rends compte que se trouvent dans la même pièce :</p>
<ul>
<li><a href="irc://lizmat@freenode">lizmat</a>, une experte Perl6</li>
<li><a href="https://github.com/fperrad">François Perrad</a>, contributeur de la première version de la spécification de <a href="https://github.com/SPORE/specifications">SPORE</a>, auteur et mainteneur de <a href="https://github.com/fperrad/lua-Spore">l'implémentation Lua</a>.</li>
<li><a href="https://github.com/geoffroybeck">Geoffroy "Jef" Beck</a>, auteur et mainteneur de l'implémentation <a href="http://www.groovy-lang.org/">groovy</a> (<a href="https://github.com/unistra/gspore">gspore</a>) et probablement co-auteur de la <a href="https://github.com/unistra/ls-spore">version livescript</a>. Il travaille dans l'équipe de <a href="https://github.com/agrausem">Arnaud Grausem</a> à l'<a href="http://www.unistra.fr">Université de Strasbourg</a>, ce dernier étant le papa de <a href="https://github.com/agrausem/britney">Britney</a>, la version <a href="http://python.org">python</a>.</li>
<li>moi-même, intermittent du spectacle à la recherche d'emploi, presque diplomé de la <a href="http://perdu.com/">Zavatta school of bullshit</a>.</li>
</ul>
<p>Rapidement, donc, les discutions se sont orientées vers <a href="https://github.com/SPORE/specifications">SPORE</a>. <a href="https://github.com/geoffroybeck">Geoffroy "Jef" Beck</a> explique que la simplicité et la souplesse de <a href="https://github.com/SPORE/specifications">SPORE</a> ont permis à cette spécification de s'inserer dans des parties centrales du système d'information de l'<a href="http://www.unistra.fr">Université de Strasbourg</a> et que la popularité de la solution est grandissante. Il rapporte toutefois quelques manques dans la spécification qui ont été rapportés par <a href="https://github.com/agrausem">Arnaud Grausem</a> il y a quelques années. Les <em>pull request</em> sont restées lettre morte.</p>
<p>François explique que ces manques sont connus, qu'une spécification a été discutée lors des <a href="http://journeesperl.fr/fpw2012/">Journées Perl 2012</a> sans avoir été complètement rédigée mais les idées se voient déjà implémentées dans <a href="https://github.com/fperrad/lua-Spore">lua-spore</a>. À cette occasion, l'équipe se demandait pourquoi <a href="https://github.com/SPORE/specifications">SPORE</a> n'avait pas rencontré un plus large succès tant il est vrai que cette idée simple fait gagner un temps fou (et d'autant que des spécifications qui nous semblent moins intéressantes conceptuellement sont apparues par la suite).</p>
<p>Afin de réactiver cette communauté, François nous a ajoutés (Arnaud et moi-même) comme membres de <a href="https://github.com/spore">l'organisation SPORE</a> de <a href="https://github.com/">github</a>.</p>
<p>Cette réactivation (la définition d'objectifs sur lequels je reviendrai dans un prochain billet) est à mes yeux un motif suffisant de satisfaction.</p>
<h1 id="coté-code">coté code</h1>
<p>J'ai profité des moments de la discution sur les manques de <a href="https://github.com/SPORE/specifications">SPORE</a> nécessitait d'avoir un peu d'experience en la matière pour écrire un micro <a href="https://metacpan.org/pod/Dist::Zilla">Dist::Zilla</a> pour <a href="http://perl6.org/">Perl6</a>: <a href="https://github.com/eiro/p6-p6sm">p6sm</a> est sur github.</p>
<p>Ensuite, nous avons profité de l'expertise et la patience de <a href="irc://lizmat@freenode">lizmat</a> pour expérimenter les possibilités de metaprogrammation de Perl6 (ou pour être plus franc nous avons simplement appliqué sans varier les idées qu'elle nous a proposées) ce qui nous a rassuré : même si les namespaces sont immutables une fois clos, il est possible de créer des classes anonymes. en plus d'avoir un embryon d'implémentation que j'ai <a href="https://github.com/eiro/p6-spore">poussé sur github</a>, nous avons surtout été satisfait par l'élégance des concepts et de la syntaxe de <a href="http://perl6.org/">Perl6</a>.</p>
tag:eiro.github.com,2015-05-07:2015-05-07T18:01:42+01:00Let's build a Perlists that reflects the perl community2015-05-07T18:01:42+01:002015-05-07T18:01:42+01:00<h1 id="lets-build-a-perlists-that-reflects-the-perl-community">Let's build a Perlists that reflects the perl community</h1>
<p>Perl is our community and i would like <a href="https://groups.perlists.pm/sympa">Perlists</a> to reflect it. I <a href="eiro.github.io/posts/2015/Host_your_perl_project_on_perlists_en_.html">recently presented</a> the new shiny [perlists platform] and hope a lot of perl mongers around the world will benefit from it. To make things more attractive, we still have some work:</p>
<p>First, we have find and fix all the rendering bugs of the new interface (i suspect there are lot of them hidden in the corner) so feedbacks and wishlists are very welcomed, please write to <a href="mailto:listmaster@groups.perlists.pm">us</a>.</p>
<p>We also need to "shape" the site to fit your needs. David built a geographical herarchy which is great for the perl monger groups but i also would like something like a "project pack": when you declare a project "foo", it will automatically</p>
<ul>
<li>creates and gives you ownership yo foo, foo-devel, foo-users and foo-announce.</li>
<li>include foo-devel, foo-users and foo-announces in foo.</li>
</ul>
<p>We need more features, more ideas and any suggestion of any kind would be considered by the <a href="mailto:listmaster@groups.perlists.pm">listmasters</a>. i can share mine:</p>
<p>I did a simple experiment to use sympa as a comment platform ("à la" <a href="https://disqus.com/about/">disqus</a>).</p>
<ul>
<li>If you click on "comment the post", you actually send a mail to a mailing list.</li>
<li>If you click on "see comments", you actually go to the archives page (i expect something more "ajaxy" on the future).</li>
</ul>
<p>I also would like more interactions with the <a href="http://metacpan.org">metacpan</a> ecosystem. For example: a [https://metacpan.org/pod/Dist::Zilla][dzil] plugin to post on "foo-announce" when i <code>dzil release</code> a new version of foo.</p>
<p>i hope to read from you.</p>
tag:eiro.github.com,2015-03-16:2015-03-16T21:29:24+01:00propositions de posters pour JRES 20152015-03-16T21:29:24+01:002015-03-16T21:29:24+01:00<p>"tu parles? tu pars!". ce gros facteur de motivation était la règle à <a href="http://linkfluence.net">linkfluence</a> et l'est maintenant dans le pôle de la direction informatique de l'<a href="http://www.unistra.fr">unistra</a> ou je travaille.</p>
<p>Il reste quelques jours avant la cloture des CfP pour les <a href="https://www.jres.org/en">JRES 2015</a> et faute d'avoir des sujets plus en raccord avec l'audience de l'évenement et mon travail quotidien de hotliner surpayé, j'ai une soudaine envie de posters (ou de présentations format lightning talks). Voilà donc qq idées que je partage avec vous histoire de récolter vos avis. n'hésitez pas à me faire parvenir vos remarques (et meme vos <a href="https://github.com/eiro/eiro.github.com/">pull requests</a>). Lequel présenter? les approches et thèmes sont ils-bons ? autres remarques ? D) réponse D?</p>
<h1 id="lécosystème-perl-le-paradis-des-administrateur">L'écosystème perl, le paradis des administrateur</h1>
<p>A l'heure ou j'écris ces lignes (lundi 16 mars 2015, 20:35:41), le CPAN (The Comprehensive Perl Archive Network) propose 144,578 modules Perl répartis dans 31,486 distributions maintenues par 12,089 authors et disponibles sur 251 mirroirs. ce sera probablement plus dans quelques heures (et c'est ainsi depuis octobre 1995).</p>
<p>Perl est communauté experimentée de professionnels (soutenus par un nombre croissant d'entreprises qui choisissent d'utiliser et soutenir Perl) et d'une miriade de composants logiciels qui exploitent de solides infrastructures et des conventions bien établies, reposant sur une forte culture unix et servie par 20 années de rétrocompatiblité l'interpréteur.</p>
<p>Que faut-t'il savoir aujourd'hui pour utiliser perl ?</p>
<ul>
<li>quels sont les outils pour déployer simplement ?</li>
<li>quelles sont les pratiques et outils modernes de développement ?</li>
<li>quels sont les bonnes sources de documentation et d'information ?</li>
<li>comment trouver de l'assistance ou un support professionnel ?</li>
<li>comment intégrer la communauté ?</li>
</ul>
<p>(3 modules ont été mis à jour sur CPAN pendant la rédaction de ces quelques lignes)</p>
<h1 id="automatiser-sympa-les-leçons-apprises">Automatiser Sympa: les leçons apprises</h1>
<p>De l'édition brutale des fichiers de configuration et des données contenues dans la base à la redaction de scripts Perl utilisant l'API de sympa directement en passant par le webscrapping et l'utilisation de "sympa.pl", j'ai tout tenté en attendant la prochaine version majeure de Sympa et son API REST.</p>
<p>Ce poster présente les avantages et inconvenients de chaques méthodes, les bonnes et mauvaises surprises que m'a réserve sympa, mes espoirs et idées pour la prochaine version.</p>
<h1 id="vim-la-console-dadministation-qui-vous-manquait">vim, la console d'administation qui vous manquait</h1>
<p>Contraints par le temps, les cultures de sites, la taille et le caractère mouvant de nos systèmes d'informations, nous peinons à développer et maintenir des interfaces simples et cohérentes nous permettant de débarasser nos quotidiens de taches chronophages, répétitives ou complexes (y compris en partant de solutions "clef en main" qu'on se retrouve à adapter en permanence pendant que ces dernières s'éloignent de nos besoins au fil des versions).</p>
<p>Nos trousses à outils se réduisent bien souvent à quelques scripts, de bonnes habitudes qui s'appuient sur des logiciels génériques (la documentation étant parfois la cerise sur le gateau) et l'esperance de ne pas retomber dans les embuches courantes. Le temps est à la fois ce qui nous manque pour disposer d'interface plus construite et ce que nous perdons à ne pas en disposer.</p>
<p>En utilisant vim comme point d'entrée sur notre SI (et en adoptant la méthode que je propose dans ce poster), chaque tache réalisée est l'occasion de laisser des tuteurs facilitant une prochaine itération. Petit à petit, vous construisez simplement des documentations ou des vues du SI qui soient interactives, simples et dynamiques.</p>
<p>Pour ma part, vim me permet d'échanger des informations entre ma messagerie, ma liste des taches, le bug tracker et le wiki du service, les differents outils d'administration et bases de données (relationnelles, ldap, flat files, REST APIs ...), des dépots git ... Rien n'est parfait mais mon niveau de satisfaction dépasse de loin toutes les autres approches que j'ai experimenté au cours de ma carrière.</p>
tag:eiro.github.com,2015-03-06:2015-03-06T19:12:22+01:00Host your perl project on perlists (en)2015-03-06T19:12:22+01:002015-03-06T19:12:22+01:00<h1 id="host-your-perl-project-on-perlists-en">Host your perl project on perlists (en)</h1>
<p>In order to support the Perl community, the french "Research and Education Network" (<a href="http://renater.fr">RENATER</a>) hosts <a href="https://groups.perlists.pm/sympa">Perlists</a>, a free mailing list infrastructure based on <a href="http://www.sympa.org">Sympa</a>. <a href="http://london.pm/">London.pm</a> recently moved their lists on it and you should do the same if you need a free, simple and powerfull way to manage mailing lists and working groups for a perl related project.</p>
<p>Any Perl-related community, monger group or software project is welcome to create mailing lists on this server so you will be able to, from a simple web interace:</p>
<ul>
<li>create and manage lists and subscriptions,</li>
<li>configure and customize lists using the many parameters available</li>
<li>and much more! (David Verdin (lead developer) gave a talk about all the sympa features at <a href="https://www.youtube.com/watch?v=-JMg1wdYdOU">YAPC::Europe 2014</a> (en) and <a href="https://www.youtube.com/watch?v=q70XBXZ8yE8">FPW 2013</a> (fr)). Sympa is much more than a list manager and provides basic groupware system.</li>
</ul>
<p>Sympa is written in <a href="http://www.perl.org">perl</a> and supported by <a href="http://renater.fr">RENATER</a>, its community is very welcoming and the user base is very large: 90% of the french universities, organizations like UNESCO, NASA, ... it is designed for very large infrastructures and usages.</p>
<p>The project is as active as it can with a very small team, you can see the <a href="http://www.sympa.org/distribution/latest-unstable/NEWS">news from 6.2 version</a> and the <a href="https://www.sympa.org/dev/project_direction">ambitious 7.0 roadmap</a>. Every contributor is welcome!</p>
<p>Any questions about <a href="https://groups.perlists.pm/sympa">Perlists</a> or <a href="http://www.sympa.org">sympa</a>? please ask <a href="mailto:listmaster@groups.perlists.pm">the sysops</a>.</p>
<p>See you on perlists!</p>
<figure>
<img src="/img/talks/14/yapc-eu/david_verdin.png" alt="David Verdin, YAPC::Europe 2013" /><figcaption>David Verdin, YAPC::Europe 2013</figcaption>
</figure>
tag:eiro.github.com,2015-03-05:2015-03-05T17:00:40+01:00Host your perl project on perlists 2015-03-05T17:00:40+01:002015-03-05T17:00:40+01:00<h1 id="host-your-perl-project-on-perlists">Host your perl project on perlists</h1>
<p>RENATER (le "Research and Education Network" français) soutient la communauté Perl et met gratuitement à disposition de ses membres une plate-forme <a href="http://wwww.sympa.org">sympa</a> nommée <a href="https://groups.perlists.pm/sympa">Perlists</a>. <a href="http://london.pm/">London.pm</a> y a récement transféré ses listes et vous pourriez faire de même gratuitement.</p>
<p>Vous n'étiez pas au courant? Bien sur que non: nous sommes nuls en marketing!</p>
<p>David Verdin (le lead developper) l'avait annoncé durant sa présentation lors de <a href="http://act.yapc.eu/ye2014/">YAPC::Europe 2014</a>: <a href="https://groups.perlists.pm/sympa">Perlists</a> permet à quiconque possédant une adresse email de disposer d'une interface web pour:</p>
<ul>
<li>créer des listes de diffusion</li>
<li>gérer les abonnés</li>
<li>disposer d'une archive</li>
<li>disposer d'un espace de documents publics ou partagés avec vos seuls co-listiers</li>
<li>gérer finement les droits d'accès à toutes ces ressources</li>
<li>bien d'autres choses (je vous renvoie aux présentations de David en <a href="http://act.yapc.eu/ye2014/">anglais</a> ou en <a href="http://journeesperl.fr/fpw2013/talk/4789">français</a>).</li>
</ul>
<p>Sympa est évidement développé en <a href="http://www.perl.org">perl</a> par une communauté très réduite et fort accueillante. Il sert les listes de 90% des universités françaises, d'organismes tels que l'UNESCO ou la NASA avec des volumes de mail traités assez impressionnants. C'est donc un logiciel conçu pour les grosses infrastructures. Fonctionnellement, sympa est maintenant plus proche d'une plate-forme de groupware minimaliste que d'un serveur de listes de diffusion (voir la <a href="https://www.sympa.org/overview/features">liste des fonctionnalités</a>).</p>
<p>Le projet reste <a href="http://www.sympa.org/distribution/latest-unstable/NEWS">actif</a> (sympa 6.2 est sur le point de sortir et la <a href="https://www.sympa.org/dev/project_direction">roadmap</a> de la version 7 est très ambitieuse). tous les nouveaux utilisateurs et contributeurs sont les bienvenus.</p>
<p>Si vous avez des questions sur l'utilisation de <a href="https://groups.perlists.pm/sympa">Perlists</a>, n'hésitez pas à contacter les <a href="mailto:listmaster@groups.perlists.pm">administrateurs de la plate-forme</a>.</p>
<p>Au plaisir de vous lire bientot sur Perlists.</p>
<figure>
<img src="/img/talks/14/yapc-eu/david_verdin.png" alt="David Verdin, YAPC::Europe 2013" /><figcaption>David Verdin, YAPC::Europe 2013</figcaption>
</figure>
tag:eiro.github.com,2015-02-17:2015-02-17T12:55:06+01:00et celle-là, elle est digitale ?2015-02-17T12:55:06+01:002015-02-17T12:55:06+01:00<figure>
<img src="/img/fun/digitale.png" alt="En français, on dit "numérique"" /><figcaption>En français, on dit "numérique"</figcaption>
</figure>
<p>En français, on dit <a href="http://fr.wikipedia.org/wiki/Num%C3%A9rique">Numérique</a> et pas <a href="http://fr.wikipedia.org/wiki/Digital">Digital</a>!</p>
tag:eiro.github.com,2015-01-02:2015-01-02T03:32:16+01:00Sympa Hackathon 12015-01-02T03:32:16+01:002015-01-02T03:32:16+01:00<p>Le premier "Sympa Hackathon" a eu lieu les 4 et 5 novembre à l'antenne parisienne de <a href="http://www.inria.fr">l'INRIA</a>. Le présent compte-rendu est une compilation des idées dont j'ai pris note pendant et après l'évenement. Certaines de ces notes correspondent à des réflexions personnelles qui n'ont pas été livrées lors des réunions.</p>
<p>Ont participé</p>
<pre><code>* David Verdin et Etienne Méléard (RENATER)
* Guillaume Rousse (INRIA)
* Marc Chantreux (Université de Strasbourg)</code></pre>
<h1 id="retour-sur-les-usages-et-évolution-de-sympa">Retour sur les usages et évolution de sympa</h1>
<h2 id="les-nouveaux-usages-de-sympa-groupware">les nouveaux usages de sympa (groupware)</h2>
<p>Nous avons évoqué la vie des instances que nous gérons (à Strasbourg: presque 9400 listes réparties dans 17 robots) et observons unanimement des changements dans les usages et les attentes des utilisateurs relatives à sympa.</p>
<p>En effet, les usagers commandent aux listmasters des configurations avancées et font usage des outils périphériques à la liste de diffusion (les archives, les documents partagés, pages de réponses, circuit de modération, ...) et organisent de véritables groupes de travail autour des outils proposés malgré la relative austérité de l'interface.</p>
<p>La version prochaine de sympa (6.2) sera l'occasion de fournir une nouvelle interface plus aggréable: ca n'est qu'un début.</p>
<h2 id="lintégration-dans-les-systèmes-dinformation">L'intégration dans les systèmes d'information</h2>
<p>L'intégration dans les systèmes d'information ne se fait plus uniquement dans le sens de la consommation: sympa permet aux utilisateurs de produire de l'information valorisable dans tous le système (A Strasbourg, il est couplé avec Sogo et permet d'alimenter des groupes dans notre annuaire).</p>
<h1 id="sympa-7">Sympa 7</h1>
<h2 id="techniquement">Techniquement</h2>
<h3 id="pour-les-développeurs">Pour les développeurs</h3>
<p>Afin d'accélérer le développement de Sympa, il était nécessaire de rendre la base de code plus simple à comprendre et à faire évoluer. Ainsi, la réorganisation complète du code (travail de longue date de Guillaume Rousse) s'accompagne d'une large batterie de tests unitaires afin de détecter plus facilement les éventuels bugs et régréssions que les développements futurs pourraient introduire.</p>
<ul>
<li>Un refactoring complet sur lequel Guillaume Rousse travaille de longue date. L'idée n'est pas seulement de nettoyer et réorganiser le code: Guillaume introduit aussi des pratiques de développement qui manquaient généralement pour permettre aux développeurs de travailler plus confortablement et rapidement sans introduire de régréssions ou de bugs. Cette version se vera accompagnée d'une large batterie de tests unitaires.</li>
<li>Nous rendrons le fonctionnement interne de Sympa plus strict, il est acté que les fonctions qui n'aboutissent pas provoqueront un <code>die</code> plutot que de renvoyer <code>undef</code>.</li>
<li>Nous passsons sous git (toujours hebergé sur <a href="https://sourcesup.renater.fr/projects/sympa-ng/">sourcesup</a>), ce qui permettera de simplifier les experimentations et les contributions externes (je compte créer un repo sur <a href="http://github.com/">github</a> qui est utilisé par de nombreux développeurs Perl).</li>
<li>Nous experimentons l'introduction de modules CPAN afin de profiter du dynamisme de la communauté et nous défaire de la maintenance de code spécifique à sympa. Ainsi, <a href="https://metacpan.org/pod/Plack">plack</a> replacera le code FastCGI maison. J'ai aussi suggéré l'utilisation de <a href="https://metacpan.org/pod/Moo">Moo</a> puisque ce dernier est conforme aux décisions prises pour le passage d'arguments des methodes.</li>
<li>Concernant les dépendances que nous allons ajouter, Guillaume insiste sur un point: pas de XS qui qu'il en coute (afin de s'assurer que les déploiements de sympa restent simples et sans problème).</li>
<li>Je note a posteriori que nous n'avons pas parlé de la version minimale de Perl sur laquelle Sympa doit tourner. J'aurais tendance à pousser le curseur vers le haut (beaucoup de distributions récentes fournissent 5.18) mais de nombreux administrateurs de la communauté semblent bloqués par les Perl standards fournis par des versions assez anciennes de RHEL (que c'est triste!).</li>
</ul>
<h3 id="pour-les-administrateurs">Pour les administrateurs</h3>
<p>le wizzard va disparaitre au profit</p>
<p>Nous allons simplifier l'installation en remplacant le wizzard</p>
<ul>
<li>un module Perl <code>Sympa::Task</code> qui sera disponible sur le CPAN. Pour peu que le client CPAN soit correctement installé sur la machine cible, l'intégralité des dépendances de sympa s'installera par la saisie d'une seule commande standard (laissant au passage à l'adminitrateur le choix de l'utilisation de <code>local::lib</code>).</li>
<li>un sample de <code>sympa.conf</code> largement documenté qui pourra servir de base à la configuration.</li>
</ul>
<h2 id="fonctionnellement">Fonctionnellement</h2>
<p>Le terme Robot (qui était mal choisi de toute façon), doit lui aussi disparaitre mais nous n'avons là rien de tranché. quelques propositions faites par des collègues de l'université:</p>
<pre><code>Communauté, Tribu, Domaine
Community , Tribe, Realm </code></pre>
<p>Votre avis nous intéresse: n'hésitez pas à réagir sur les listes de diffusion <a href="https://listes.renater.fr/sympa/info/sympa-users">sympa-users</a>, <a href="https://listes.renater.fr/sympa/info/sympa-fr">sympa-fr</a> ou en commentant ce post.</p>
<h1 id="travail-commencé-durant-le-workshop">Travail commencé durant le Workshop</h1>
<p>David et Guillaume ont travaillé sur le refactoring pendant qu'Etienne et moi nous chargions de:</p>
<ul>
<li>rendre sympa7 installable en l'état (afin d'avoir une version utilisable en pour test le plus rapidement possible)</li>
<li>installer et tester l'UI développé par l'université de Massey (Nouvelle-Zelande)</li>
<li>discutions autour d'un système de hooks ou de middleware pour la gestion des différents evenements de Sympa. L'idée est de permettre aux développeurs Perl de pouvoir développer des fonctionnalités sour la forme de modules. Etienne penche pour une approche de Hooks à la Drupal. Pour ma part, un cycle de vie aller-retour me semble plus pertinente et répandue (Plack et ses middleware, DOM Level 2 et le bubbling/capturing, la stack PAM, ...). La discution est restée ouverte. Quoi qu'il en soit: l'enrichissement des scenarii (déjà utilisé partout dans sympa) permetterait de dépasser de nombreuses restrictions actuelles.</li>
</ul>
<h1 id="liste-de-mes-attentes-en-vrac">Liste de mes attentes en vrac</h1>
<p>(discutées ou non lors du workshop, plus ou moins catégorisée par priorité)</p>
<ul>
<li>Améliorer la convivialité de l'interface et prioritairement</li>
<li>donner un aspect webforum aux archives et à la page de publication (toutes les fonctionnalités existent déjà dans l'interface actuelle)</li>
<li>permettre du drag and drop dans le depot de document partagé</li>
<li>simplifier la page d'administration de la liste (ajouter plusieurs modérateurs est par exemple une action tres malaisée pour le moment)</li>
<li>permettre facilement de mettre un répondeur en place depuis l'interface</li>
<li>Si possible, permettre aux utilisateurs de conserver l'ancienne interface (pour les utilisateurs les plus réticents au changement)</li>
<li>exposer les fonctionnalités de Sympa via une API REST et une spécification SPORE</li>
<li>utilisation de sympa pour alimenter des ACL de wiki, des groupes seafile, des conférences Jitsi</li>
<li>documentation: fournir un guide pour chacune des audiences que sont les développeurs, les administrateurs système, les listmasters et les usagers</li>
</ul>
<h1 id="notes-pour-plus-tard">Notes pour plus tard</h1>
<ul>
<li>expliquer le (VERP: Variable Enveloppe Return Path)</li>
<li>expliquer le tracking:
<ul>
<li>récuperer les accusés de réception</li>
<li>récuperer les mail delivery notification</li>
<li>utilisation des MDN (mail delivery notification) quand serveur accepte</li>
</ul></li>
</ul>
tag:eiro.github.com,2014-10-29:2014-10-29T23:58:27+01:00hacking on my blog again2014-10-29T23:58:27+01:002014-10-29T23:58:27+01:00<p>as i have nothing to report to the perl community this year, nothing happened to "please ironman" (as i wrote in a <a href="http://eiro.github.com/posts/2014/eiro-brain-dump_to_please_ironman.html">previous post</a>).</p>
<p>Things could change quickly (i'll be able to hack on <a href="http://sympa.org/">sympa</a> next week) so i just wrote a m4 powered kludge to be sure my new plan will work. I had no time for the "testing on local instance part" but hey! if you read this throught Ironman, it worked.</p>
tag:eiro.github.com,2014-03-19:2014-03-19T11:12:11+01:00make my mind up about a sympa ListDef parser2014-03-19T11:12:11+01:002014-03-19T11:12:11+01:00<p>within few days, i'll write a REST service to <a href="http://en.wikipedia.org/wiki/Create,_read,_update_and_delete">CRUD</a> the <a href="https://www.sympa.org/manual_6.3/list-definition#list_configuration_file">sympa list defs</a>.</p>
<p>I will not use the parser from the sympa code because:</p>
<ul>
<li>i don't want sympa to be a a software dependency: there is no need</li>
<li>i want to be able to extend the format without editing the sympa code</li>
</ul>
<p>i'll probably push this parser on <a href="http://metacpan.org">CPAN</a> but for now, <a href="http://en.wikipedia.org/wiki/There%27s_more_than_one_way_to_do_it">TIMTOWTDI</a> and i consider 3 of those:</p>
<ul>
<li>wrap roughly copy/paste from the sympa code</li>
<li>use pegex</li>
<li>write my incremental m//cxmsg parser (i still don't understand if it's bottom/up or top/down :))</li>
</ul>
<p>all with pros and cons.</p>
<h2 id="copypaste">copy/paste</h2>
<p>would be harder to maintain (the current code is a cargo cult parsing in a while loop) but every improvement can be contributed back to sympa.</p>
<h2 id="pegex">Pegex</h2>
<p>pegex grammars are very simple to maintain and read which could be usable in other languages (i haven't tested yet but javascript could be an example). It would add a dependency to Pegex but i really don't think it's a cons argument in 2014.</p>
<h2 id="incremental-mcxmsg-parser">incremental m//cxmsg parser</h2>
<p>as i'm used to it, i think i can provide simple, extensible and readble code following this way but is it worth to do it just to avoid the Pegex dependency? does Pegex add an runtime overload ?</p>
tag:eiro.github.com,2014-03-19:2014-03-19T10:53:31+01:00eiro-brain-dump to please ironman2014-03-19T10:53:31+01:002014-03-19T10:53:31+01:00<p>some days ago, i had a chat on <a href="http://www.enlightenedperl.org/">epo</a>@<a href="http://freenode.net/">freenode</a> because <a href="/atom.xml">my atom</a> is completly ignored by <a href="http://ironman.enlightenedperl.org/">ironman planet</a>. this post is a reminder.</p>
<p><a href="http://ironman.enlightenedperl.org/">Ironman planet</a> expects each entries to provide an alternate html address (which wasn't my initial plan but after all: every text can be rendered as html).</p>
<p>So the plan is</p>
<ul>
<li>fix <a href="http://eiro.github.io">eiro-brain-dump</a> to make it ironman compliant (i still have to decide how).</li>
<li>install a local ironman and provide a patch to show error reports when you update your feed (so you can fix your stuff without disturbing EPO people)</li>
</ul>
<p>this was an excuse create a profile on <a href="https://questhub.io/">questhub.io</a> and create a <a href="https://questhub.io/realm/perl/quest/531f0d326e78176e6a0000bd">related quest</a>.</p>
tag:eiro.github.com,2014-03-06:2014-03-06T22:37:09+01:00sympa to comment blog posts: how?2014-03-06T22:37:09+01:002014-03-06T22:37:09+01:00<p>I explained <a href="http://eiro.github.io/news.html#sympa-to-comment-blog-posts-why">why</a> i want to use sympa to manage comments. this is the "how" (as an experiment)</p>
<h2 id="create-a-blogcomment-scenario">create a blogcomment scenario</h2>
<p>the idea of this scenario is you can publish in 2 cases:</p>
<ul>
<li>you are a member of the list</li>
<li>you're commenting a blog post</li>
</ul>
<p>so my <code>/etc/sympa/scenari/send.blogcomment</code> file is</p>
<pre><code>title.gettext Blogpost comment
title.fr Blogpost Comment
match([msg_header->X-Spam-Status], /^YES/) smtp,smime,md5 -> reject,quiet
match([msg_header->In-Reply-To], /eiro.github.io/) smtp,smime,md5 -> do_it
match([msg_header->In-Reply-To], /blog/) smtp,smime,md5 -> do_it
is_subscriber([listname],[sender]) smtp,smime,md5 -> do_it
true() smtp,smime,md5 -> reject,quiet </code></pre>
<p>now the list itself is configured to use the blogcomment scenario. which means that you must have this in in the list root</p>
<pre><code> grep '^send' config
send blogcomment</code></pre>
<h2 id="create-posts-from-your-webpage">create posts from your webpage</h2>
<p>what you need is add an mailto: URL with</p>
<ul>
<li>the subject of the post as subject</li>
<li>a <code>Reply-To</code> header to please the <code>blogcomment</code> scenario</li>
</ul>
<p>i use <a href="add_comment_links.pl">this simple script</a> in combination with <a href="https://github.com/eiro/app-atombomb">atombomb</a> to achieve that on this site.</p>
tag:eiro.github.com,2014-03-05:2014-03-05T10:58:35+01:007 habitudes pour editer du texte efficacement2014-03-05T10:58:35+01:002014-03-05T10:58:35+01:00<p>Nouvelle version de la conférence de <a href="http://fr.wikipedia.org/wiki/Bram_Moolenaar">Bram Moolenaar</a>, "<a href="https://www.youtube.com/watch?v=p6K4iIMlouI">7 Habits For Effective Text Editing 2.0</a>" est sur youtube. C'est méthodologique plus que technique. Très intéressant!</p>
<p>je traduis une <a href="https://www.youtube.com/watch?v=p6K4iIMlouI#t=2274">diapo importante</a>.</p>
<ul>
<li>étape 1: détecter les pratiques inefficaces, rébarbatives (identifier les moments ou vous perdez du temps)</li>
<li>étape 2: trouver plus rapide (alternatives en cas d'échec)</li>
<li>chercher dans l'aide en ligne</li>
<li>chercher dans les quick refs, cookbooks, archives des listes, …</li>
<li>demander à vos amis, vos collègues</li>
<li>chercher sur internet</li>
<li>faites le vous-même</li>
<li>étape 2: faites-en une habitude</li>
<li>faites-le</li>
<li>continuer à l'améliorer</li>
</ul>
<p>j'aurais tendance à ajouter:</p>
<ul>
<li>gitez votre conf. et n'hésitez pas a virer ce qui ne vous sert plus (au pire vous piocherez dans l'historique).</li>
<li>ne pas chercher à améliorer les choses plus de 10mn (y revenir plus tard avec des idées fraiches est souvent bien plus efficace).</li>
<li>accepter les imperfections</li>
<li>meme si vous savez que votre macro/habitude ne traite pas tous les cas, utilisez-la.</li>
<li>ne tentez pas de l'améliorer avant de tomber <em>régulièrement</em> sur des cas pourris.</li>
</ul>
tag:eiro.github.com,2014-02-25:2014-02-25T13:22:40+01:00sympa to comment blog posts: why ?2014-02-25T13:22:40+01:002014-02-25T13:22:40+01:00<p>I maintain websites since 1997 and my motto always was "as static as possible". I run my own "static web" engines, used open source ones and ended with <a href="#adieu-jekyll-i-dumped-you-for-a-28-lines-makefile">a simple <code>Makefile</code></a>.</p>
<p>The very important missing part was blog comments but it's not only about serving static pages: we're in year 2014 and still, the web failed to provide tools that can approach the productivity of mutt when it comes to share thoughts about a post: editing in textareas, navigating in the thread, tagging, archiving, ... all those basics are just jokes in a webpages! Trying to compare wikis to just editing files in your filesystem (then share them with git, rsync, seafile, whatever ..) also is.</p>
<p>But i didn't carre for a while because i had a bigger plan (my beloved <code>mindpipe</code>) so asked commenters to send me mails instead of expecting a "comment" textarea. I miss <a href="http://en.wikipedia.org/wiki/Usenet">usenet</a>.</p>
<p>Years ago, i came at a <a href="http://journeesperl.fr/">French Perl Workshop</a> and spoke about a subset of what mindpipe could be. Then i learnt (thanks to <a href="http://philippe.bruhat.net/">BooK</a> and <a href="http://lumberjaph.net/">Franck</a>) about <a href="http://disqus.com/">disqus</a>. i also was aware of <a href="http://gmane.org/">gname</a>.</p>
<p>Finally, i'm now convinced that the technical roots of mindpipe was invented in a 80's OS named <a href="http://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs">Plan9</a>. What i want is just piping, copying and editing <a href="http://en.wikipedia.org/wiki/9P">9p</a> served files thru <a href="http://www.vim.org">vim</a>, <a href="http://en.wikipedia.org/wiki/Acme_(editor)">acme</a>) or emacs.</p>
<p>I know web browsers are bloated enough to serve as a base of very handy editing application (cloud9 or etherpad are some moving tries to render edited content in a web page) but they need a 9p support (maybe <a href="https://github.com/mozilla/servo/">servo</a> could have one?) and i think plan9 ideas are finally spreading (i remember how sarcatic were people about linux or open source just ten years ago, they just heard about it).</p>
<p>Nevertheless: ten years later, mindpipe is still just an idea and i changed my mind about doing software. I really think that</p>
<ul>
<li>nothing is perfect</li>
<li>starting small is better than not starting at all</li>
<li>the best code is the one you don't have to write</li>
</ul>
<p>thinking the unix way: what is the best tool to provide simple ways to</p>
<ul>
<li>subscribe a discutions that can be seen as emails?</li>
<li>make discutions and archives public, private, moderated?</li>
<li>avoid spams and robots using bayesians and sending scenaries to check the validity of your posts?</li>
</ul>
<p>I i need a battle tested, highly configurable and extendable but just a "mailing list manager"! I know it's not perfect but it's way better than running yet another anoying web forum.</p>
<p>And i know the beast: <a href="http://www.sympa.org">sympa</a> is way the best mailing list manager i ever seen. Yes, i have tons of grievances about it but in the end, it's much more superior than everything i saw and is in a constant evolution since 1996 (AFAIK). Plus: it's written in <a href="http://www.perl.org">Perl</a>! not a so modern one but you don't carre if you just have to write plugins.</p>
tag:eiro.github.com,2014-02-15:2014-02-15T11:55:23+01:00FOSDEM sequel: C++11, scrum, ...2014-02-15T11:55:23+01:002014-02-15T11:55:23+01:00<p>Once again, i came to <a href="https://fosdem.org/2014/">FOSDEM</a> with some talks in mind, missed them and learnt a lot of new, completly different things.</p>
<p>Once again, FOSDEM is the echo of my internet feeds (at this point, the cultural spectrum of the people i spoke to is too large to just say we're reading the same blogs).</p>
<ul>
<li>the rise of the functionnal programming for the masses</li>
<li>the rise of the "let's fire all managers" movement (coming from both scrum and open source as "working models")</li>
</ul>
<p>The big surprise for me is a very interesting discution about the modern paradigms of C++. I realized i was acting like the "perl is dead" people: comparing C++ from nineties to the very last features of the langages i use daily: I was not unfair, just ignorant.</p>
<p>So i began to read the C++ posts again and seen <a href="http://nathan.ca/2014/02/type-rich-programming/">this article</a> pointing on <a href="http://channel9.msdn.com/Events/GoingNative/GoingNative-2012/Keynote-Bjarne-Stroustrup-Cpp11-Style">Bjarne Stroustrup: C++11 Style</a> which is a very interesting talk about what the "good C++" should be.</p>
tag:eiro.github.com,2014-01-31:2014-01-31T10:15:57+01:00adieu, Jekyll (i dumped you for a 28 lines Makefile)2014-01-31T10:15:57+01:002014-01-31T10:15:57+01:00<p>Months ago, and once again, i spent hours to figure out how to do things i expected to be simple. In this case, Jekyll isn't the one to blame: the ruby ecosystem is. I'm a happy <a href="https://metacpan.org/">CPAN</a> user and contributor as well as <a href="http://www.haskell.org/cabal/">cabal</a> happy user. Coming from those world, the ruby one is quiet messy.</p>
<p>So i decided to throw all the blog/wiki engines away, running a temporary solution with the simplest bootstrap i can write. Following the rules of the unix <a href="http://en.wikipedia.org/wiki/KISS_principle">KISS principles</a>, i divided the "CMS" problem more little ones. I needed something as simple as possible to extend coming with:</p>
<ul>
<li>a content generator</li>
<li>a conductor to drive it</li>
<li>a responsive design</li>
<li>a web browsable SCM</li>
<li>an atom generator</li>
<li>a discus-like comment system</li>
</ul>
<p>so i choose the simplest (or best) tools i know for each task:</p>
<ul>
<li><a href="http://johnmacfarlane.net/pandoc/">pandoc</a> to generate html content from md files. I don't know about the internals but both the CLI tool and the haskell API are very pleasant to use.</li>
<li><a href="http://pubs.opengroup.org/onlinepubs/000095399/utilities/make.html">make</a> is my conductor. As i really expect the every so-called unix users have the basics of make. It get the job done for many decades now. I also have a look on mk from <a href="http://tools.suckless.org/9base">the 9base</a>.</li>
<li><a href="https://git.wiki.kernel.org">git</a> as SCM, lot of tools out there to browse it from the web.</li>
<li><a href="http://unsemantic.com/">Unsemanic CSS framework</a>. I don't know a lot about web development but i was aware about <a href="http://en.wikipedia.org/wiki/Responsive_web_design">Responsive web design</a> and saw the ancestor of unsemantic was in the roadmap of <a href="http://werc.cat-v.org/">werc</a> (when it comes to simplicity, you really can trust the <a href="http://cat-v.org/">cat-v</a> Ayatollahs^wpeople)</li>
<li>more recently, i wrote <a href="https://github.com/eiro/app-atombomb">atombomb</a> to add atom feeds to some sites.</li>
</ul>
<p>so the workflow is:</p>
<ul>
<li>create a new md for a new page</li>
<li>manually maintain the atom feed ( <a href="https://github.com/eiro/eiro.github.com/blob/master/Makefile">atombomb format</a> is quiet helpfull for this part)</li>
<li>run make to build a section</li>
<li>git submodules to add subsection</li>
<li>rsync or git to push on the server</li>
</ul>
<p>you can see all the revision by using a git browser (like the github one) and i plan to use an ajax call the powerfull <a href="http://sympa.org">sympa list manager</a> to run a discus-like comment system.</p>
<p>Months passed and it became clear i will not step back: those 62 LOC (it takes less than 5 minutes to understand the whole thing) never desapointed me.</p>
<ul>
<li>the publishing process is faster and easier</li>
<li>i use the :make command of vim</li>
<li>my working directory is served by a local http server</li>
<li>everything is relative to the working directory: if it renders well here, it will render well offline. faster and easier local preview before pushing</li>
<li>so easy to extend i never was stuck by a new problem, i just had to write some few extra lines in the Makefile to get new features like</li>
<li><a href="http://www.graphviz.org/">graphviz</a> and <a href="http://ditaa.sourceforge.net/">ditaa</a>) support</li>
<li>beamer slides (using the theme of my university).</li>
<li>render html report from external sources (just use pandoc md as intermediate representation and run make)</li>
</ul>
<p>Actually, even my todolist/notes system is now based on it (in combination with vim and mutt i'll explain in another post) and as always, i realized how happy i am when i follow the rules of the unix <a href="http://en.wikipedia.org/wiki/KISS_principle">KISS principles</a>.</p>
<pre>
# wc -l M* t*
28 [Makefile](https://github.com/eiro/eiro.github.com/blob/master/Makefile)
27 [template.html5](https://github.com/eiro/eiro.github.com/blob/master/template.html5)
7 theme.css
62 total
</pre>
<p>the only thing i was afraid was "all is relative to the working directory" thing: i copy the css files for each new section. suprisingly, it has benefic effects.</p>
<ul>
<li>i think twice before adding a section and it keep me aware of the content.</li>
<li>the local CSS actually import a stylesheet shared by all the sites i manage so i can easily<br />
maintain the whole stuff.</li>
</ul>
<p>So another unix principle is at work here: "Premature optimization is the root of all evil". Thanks Donald!</p>
<h1 id="t2208520100-atom-bomb-first-test">(2014-01-18T22:08:52+01:00) atom bomb first test</h1>
<p>i decided to push a repository on github with all those tests and notes that can maybe become a project some day and named it <a href="https://github.com/eiro/labo/">labo</a>.</p>
<p>this feed is generated with <a href="https://github.com/eiro/app-atombomb">atom bomb</a> and the <a href="https://github.com/eiro/app-atombomb/blob/master/t/feed">feed file</a> i just maintain manually with vim and <a href="https://github.com/eiro/uze/blob/master/atombomb">simple zsh helper</a> to create headers.</p>
<p>atom bomb (i'm not sure about the name) is written in <a href="http://www.perl.org/">perl5</a> and <a href="https://metacpan.org/pod/release/MARCC/eirotic-0.0/lib/Eirotic.pm">Eirotic.pm</a> which replace my common boilerplate:</p>
<ul>
<li><a href="https://metacpan.org/release/perlude">Perlude</a></li>
<li><a href="https://metacpan.org/pod/Method::Signatures">Method::Signatures</a></li>
<li>perl 5.14 with strictures</li>
<li>YAML</li>
</ul>
<p>markdown conversion is made by <a href="http://johnmacfarlane.net/pandoc/">pandoc</a>.</p>
tag:eiro.github.com,2014-01-17:2014-01-17T13:24:08+01:00new (experimental) atom feed2014-01-17T13:24:08+01:002014-01-17T13:24:08+01:00<p>few months ago, i decided to experiment <a href="http://pubs.opengroup.org/onlinepubs/009695399/utilities/make.html">make</a> and <a href="http://johnmacfarlane.net/pandoc/">pandoc</a> and <a href="http://git-scm.com/">git</a> as a minimalistic blog/wiki engine (<a href="http://werc.cat-v.org/">werc</a> was on my list too) to replace jekyll (i was a fan of ruby until i tried it).</p>
<p>now i'm totally happy with the basics and i need to extend:</p>
<ul>
<li>comment posts via sending an email to the list</li>
<li>see comments by viewing archives</li>
<li>a simple way to maintain feeds. i wrote a little perl script to test it</li>
</ul>