jeudi 30 décembre 2010

Censure, suite ...

Le jour même de l'écriture de mon dernier billet, sur la censure du net programmée par le gouvernement, Éric Ciotti a essayé de défendre cette même censure sur RMC-info. Je n'ai pas eu le plaisir d'entendre ce moment apparemment digne des plus grands humoristes, mais Me Éolas a écrit, avec sa verve habituelle un billet pour commenter cet extraordinaire moment de mauvaise foi.

La lecture de ce billet vous apportera également un explication claire et juridiquement argumentée des conséquences de l'article 4 de la LOPPSI2,  dont je vous ai parlé la dernière fois.

Bref, si vous ne l'avais pas encore lu, allez-y de suite : Prix Busiris pour Éric Ciotti

édité le 19/02/2011 :  Le PS soumet la loppsi 2 au conseil constitutionnel
édité le 16/03/2011 : L'article 4 est validé par le conseil constitutionnel - lire la réaction de Korben

mercredi 22 décembre 2010

Internet sous la censure du gouvernement ?

J'ai déjà deux billets en cours d'écriture et en retard mais tant pis, je ne résiste pas à vous faire partager ce qui se passe à l'assemblée nationale autour du projet de loi d'orientation et de programmation pour la performance de la sécurité intérieure — ou LOPPSI de son petit nom.

Les médias s'en sont fait écho autour de certains aspect de cette loi comme les peines plancher ou le retour de la double peine, mais ils ont pour la plupart passé sous silence ce qui s'est passé autour de l'article 4.

Cet article concerne le filtrage des sites internet à caractère pédopornographique. Voici les évolutions de cet article (retracé par pcimpact).
  • Version 1 de la LOPPSI adoptée à l’Assemblée nationale :
« Le juge donne son accord (ou non) au blocage des sites pédopornographiques (plus exactement les contenus relevant de l’article 227-23 du Code pénal) » — Il est intéressant de noter que l'intervention du juge a été votée contre l'avis du gouvernement.
« L’autorité administrative fait bloquer les sites manifestement pédopornographiques
L’autorité administrative peut saisir le juge pour faire bloquer les sites qui n’ont pas ce caractère manifeste »
  • Version 2 de la LOPPSI votée à l’Assemblée nationale :
« L’autorité administrative fait bloquer les sites contrevenant à l’article 227-23 du code pénal. »
De plus, le gouvernement s'est opposé à ce que la liste des sites bloqués soit rendue publique et/ou contrôlée par une autorité de régulation. Il semblerait également que le fichier ne puisse être audité pendant 2 ans et que sa gestion relèvera directement du ministère de l'intérieur.

La France est donc en train, merci Monsieur Hortefeux, de se doter de moyens de censure d'internet digne de ce qui est mis en œuvre en Chine ou d'en d'autres paradis de la liberté d'expression.

« Oui ! Mais quand même les sites pédopornographiques, il faut faire quelque chose » me direz-vous ! 

Et vous avez bien raison. Malheureusement, le gouvernement choisit ici de se cacher les yeux au moyen de cette nouvelle loi plutôt que de se donner les moyens permettant de supprimer les contenus litigieux.

On parle en effet dans cet article de blocage, donc de filtrage d'internet par les FAI — fournisseurs d'accès internet — plutôt que la suppression du contenu, chose déjà permise par la loi, mais qui demande le recours à la justice et un peu de moyens financiers pour mettre en œuvre les brigades policières spécialisées.


Les associations de lutte contre la pédopornographie ne s'y trompent pas, relayées par Jean-Dionis du Séjour, le seul des députés centriste à avoir voté contre :
« Nous regrettons la faiblesse du volet préventif de la loi. Il aurait été notamment judicieux d'organiser une coopération de fait entre les FAI et les hébergeurs afin de lutter efficacement contre les « contenus odieux » sur internet. (…) Le filtrage doit donc rester une mesure exceptionnelle sous contrôle du juge car cette approche du filtrage de l'internet est clairement un marqueur distinctif entre les démocraties et les régimes autoritaires ».
Pour aller plus loin :

Edit du 23/12/10 : ajout du lien vers le blog de Zythom.

samedi 4 décembre 2010

De la sur-ingénierie dans l'automobile...

... ou comment accuser les autres de nos petits malheurs !

Il m'est arrivé une mésaventure mardi dernier que j'ai le plaisir de vous conter :

Dans le soucis d'améliorer mon karma éco-biologique, je prends de temps en temps le bus qui m'emmène pour une modique somme de 70 ¢ de la gare de Pertuis à l'arrêt de bus en face de mon travailj'en profite pour remercier la communauté des communes du pays d'Aix et l'inciter à continuer en ce sens vu l'impact négatif qu'ont toutes ces heures de bouchons sur la santé économique, écologique et sociale de ce même pays d'Aix.

Donc mardi matin, je saute dans la voiture avec quelques minutes de retard sur mon timing, arrive à la gare vers 7h43 et demie, sort en catastrophe de la voiture et cours pour prendre le bus qui décolleils ont des super bus à la CCPA :-) à 7h45 pétante ! Ouf... Je suis dans le bus.

Tout va bien ! Et vous commencez à vous demander pourquoi je vous raconte tout ceci et comment je vais arriver à parler de l'ingénierie automobile ? Serais-je atteint de sénilité précoce pour déblatérer ainsi par le menu détail ces moments insignifiants mais néanmoins récurrents de ma vie quotidienne ? Non, non, je vous rassure. Voici ce qui se passa le soir, en descendant du bus avec le sentiment béat du devoir accompli.
— « Tiens, tiens ? » me dis-je en appuyant sur la télécommande d'ouverture et en constatant une absence complète du début du moindre frémissement de la voiture.
Et là, assez vite je me rends compte que quelque chose ne va pas. J'ouvre la voiture avec la clef  – vous savez, sans appuyer sur un bouton mais en introduisant la partie métallique dans la fente appelée « serrure » et en effectuant un mouvement de rotation du poignet dans le sens horaire –, prends place sur le siège du conducteur et constate avec dépit que la commande d'allumage des feux est bien en position allumé.

Damned ! Ce matin, dans la précipitation, j'ai oublié d'éteindre les phares ! Je n'ai même pas eu le temps d'entendre la voiture me signaler, de cette agréable mélodie entendue quotidiennement, « tu-n'as-pas-éteint-les-feux-tu-n'as-pas-éteint-les-feux-tu-n'as-pas-éteint-les-feux-tu-n'as-pas-éteint-les-feux-tu-n'as-pas-éteint-les-feux-t'es-ballot-ou-quoi »

Et là, dépité par ce mauvais coup du sort, dans la nuit froide de cette fin d'après-midi hivernale, je me sens pris d'un irrésistible sentiment de pitié pour ces ingénieurs de l'automobile qui en sont arrivés à concevoir cette fabuleuse solution technique...

Observons au ralenti ces instants d'intense création au moyen d'un petit flash-back romancé que nous autorise la fiction :
— « Bon les gars ! Il va falloir être créatif ! Ce matin encore, notre chef s'est pris un savon par le big boss car la batterie de son carrosse était à plat.
Jules – il a été viré depuis – avait oublié d'éteindre les phares de la voiture du patron hier au soir. En conséquence de quoi le grand chef n'a pas pu aller prendre son petit déj' au Fouquet's ce matin et a fait une irruption d'une rare violence dans le bureau du chef ce matin.
Je peux vous dire que ça a crié et qu'on a intérêt à se démener si on veut être encore là le mois prochain. »
« Je veux une solution demain midi sur mon bureau ! Au boulot ! »
J'enjolive peut-être mais je pense que seule une situation de stress intense a pu conduire à ce genre de résultat.
Examinons tout aussi calmement la solution retenue sur un scénario des plus standards :
  1. la nuit tombe,
  2. le conducteur allume ses phares,
  3. le conducteur arrive à destination,
  4. il coupe le contact,
  5. il ouvre la portière,
  6. il met un pied dehors,
  7. il entend une alarme,
  8. il réalise que quelque chose ne va pas,
  9. il se souvient que les phares sont allumés,
  10. il se penche vers les commandes de phare,
  11. il tourne cette dernière jusqu'à extinction des phares,
  12. il sort de la voiture, légèrement agacé par le son de l'alarme et par le sentiment d'être rappelé à l'ordre par un bête mécanisme sans intelligence,
  13. il ferme la voiture....
L'analyse du scénario a vraisemblablement été faite pour contrer le cas redouté « le conducteur oublie d'éteindre ses phares ». La solution est alors évidente : puisqu'il faut lui éviter d'oublier rappelons le lui ! Bon sang, mais c'est bien sûr.
— « Chef, chef ! On a la solution. Il suffit d'ajouter :
  • un détecteur de courant sur le circuit des phares,
  • un détecteur de coupure de contact,
  • un micro-contrôleur permettant de coupler la détection de courant avec la détection de coupure de contact,
  • un générateur de tonalité couplé avec une gestion de la variation de période (il ne faut pas que l'alarme soit trop agressive tout de même),
  • un haut-parleur,
et avec ça, nos voitures seront capables de rappeler au conducteur d'éteindre les phares, et Jules ne sera plus jamais viré ! On est trop fort ! On a aussi pensé mettre un synthétiseur vocal avec la voix d'Angelina Jolie, mais on a pensé que ça serait un peu cher. »
Pour faire court, je vous donne l'autre solution, mise en œuvre sur une voiture de marque italienne populaire et souvent décriée depuis au moins 15 ans :
  • mettre le circuit des phares sur le coupe circuit du contact
Avec cette solution, les phares s'éteignent quand on coupe le contact. C'est économique à réaliser, ça répond au besoin qui est de ne pas laisser les phares allumés, ça n'agace pas le conducteur.
Seulement fallait-il se concentrer sur le vrai besoin qui était  « éteindre les phares » et non pas « rappeler à Jules de faire quelque chose »...


samedi 20 novembre 2010

Easy footnotes on blogger


Have you ever wanted to simplify the use of footnotes on blogger ? With the help of BrandSpankingNew blog I managed to set up a not so complicated solution. Of course you still have to do some sort of HTML, but is limited to putting a <span class="footnote"> </spanaround each footnote text in the HTML editor.

Here after you'll see how to set up your blog, and the minimal template needed for each new blog post.

Installation

Change your blog layout so as to add an HTML/Javascript gadget at the beginning of your page. You will call it footnote and past the following code in it:
<style>
/*
================================================
styling for footnotes begins here
================================================
*/
/* footnotes as they original appear inline, before reformatting */
#content span.footnote {
color: #f30;
}
/* footnote links in text */
#content a.ftnlink {
vertical-align: super;
font-size: 0.8em;
}
/* div to hold all reformatted footnotes */
.footnoteholder {
border-left: 1px solid #ccc;
margin: 20px 0 50px 0;
padding: 20px 10px;
font-size: 0.8em;
line-height: 1.2em;
}
/* div to hold single reformatted footnote */
.footnoteholder div.footnote {
margin: 0 0 10px 0;
}
</style>


<script type='text/javascript'>
//<![CDATA[


// ======================================================================
//
//
// formatFootnotes
//
//
// project: css / javascript footnotes
//
// author: Timothy Groves desk [at] brandspankingnew.net
// version: 1.0
//
// language: javascript
// requires: nothing
//
// tested on: Safari 2.0 Mac / FF 1.5 Mac / Opera 9 Mac
//
// history: 26.01.2006 - created
//
// ======================================================================
var articles = 0;


function formatFootnotes(contID,noteID)
{
// check for DOM capabilities
if (!document.getElementById)
return false;


var cont = document.getElementById(contID);
var noteholder = document.getElementById(noteID);
var spans = cont.getElementsByTagName("span");


var notes = 0;
articles++;


for (i=0;i<spans.length;i++)
{
if (spans[i].className == "footnote")
{
notes++;


// get content of span
var noteNode = spans[i].cloneNode( true );


// remove css styling
noteNode.className = "";


// create a new div to hold the footnote
var newEle = document.createElement( "div" );


newEle.appendChild( document.createTextNode( notes + ". " ) );
newEle.appendChild( noteNode );


// add backlink
blink = document.createElement("a");
blink.href = "#ftnlink"+articles+"_"+notes;
blink.appendChild( document.createTextNode( " [back]" ) );
newEle.appendChild( blink );


noteholder.appendChild( newEle );


// add id & style
noteholder.lastChild.id = "ftn"+articles+"_"+notes;
noteholder.lastChild.className = "footnote";


// insert link into span
var newEle = document.createElement( "a" );
newEle.href = "#"+noteID;
newEle.title = "show footnote";
newEle.id = "ftnlink"+articles+"_"+notes;
newEle.className = "ftnlink";


newEle.appendChild( document.createTextNode( notes ) );


// empty span
while (spans[i].childNodes.length)
spans[i].removeChild( spans[i].firstChild );
var super = document.createElement( "sup" );
super.appendChild(newEle)
spans[i].appendChild( super );
}
}
}
//]]>
</script>

Usage

Create a new blog post, with the following content:
<div id="articlefootnote">
Some texte <span class="footnote">with a footnote</span> and some other text (article should be in the div).
</div>


<div class="footnoteholder" id="articlenotes"></div>
<script type="text/javascript">
//<![CDATA[
formatFootnotes('articlefootnote','articlenotes');
//]]>
</script>

It will be displayed as follow :
Some texte with a footnote and some other text (article should be in the div).

Des notes de bas de pages sur Blogger


Avez vous déjà essayé de faire des notes de bas de page sur Blogger ? Ce n'est pas si facile. Avec l'aide de BrandSpankingNew blog, j'ai mis en place une solution presque satisfaisante qui nécessite quand même de faire un peu d'édition HTML, mais qui reste limitée à l'ajout d'un <span class="footnote"> </spanautour de chaque note de bas de page.

Voici comment faire :

Installation
Il faut modifier la mise en page du blog et y ajouter un gadget HTML/Javascript au début de la page. Appelez le footnote et coller le code suivant dedans :
<style>
/*
================================================
styling for footnotes begins here
================================================
*/
/* footnotes as they original appear inline, before reformatting */
#content span.footnote {
color: #f30;
}
/* footnote links in text */
#content a.ftnlink {
vertical-align: super;
font-size: 0.8em;
}
/* div to hold all reformatted footnotes */
.footnoteholder {
border-left: 1px solid #ccc;
margin: 20px 0 50px 0;
padding: 20px 10px;
font-size: 0.8em;
line-height: 1.2em;
}
/* div to hold single reformatted footnote */
.footnoteholder div.footnote {
margin: 0 0 10px 0;
}
</style>


<script type='text/javascript'>
//<![CDATA[


// ======================================================================
//
//
// formatFootnotes
//
//
// project: css / javascript footnotes
//
// author: Timothy Groves desk [at] brandspankingnew.net
// version: 1.0
//
// language: javascript
// requires: nothing
//
// tested on: Safari 2.0 Mac / FF 1.5 Mac / Opera 9 Mac
//
// history: 26.01.2006 - created
//
// ======================================================================
var articles = 0;


function formatFootnotes(contID,noteID)
{
// check for DOM capabilities
if (!document.getElementById)
return false;


var cont = document.getElementById(contID);
var noteholder = document.getElementById(noteID);
var spans = cont.getElementsByTagName("span");


var notes = 0;
articles++;


for (i=0;i<spans.length;i++)
{
if (spans[i].className == "footnote")
{
notes++;


// get content of span
var noteNode = spans[i].cloneNode( true );


// remove css styling
noteNode.className = "";


// create a new div to hold the footnote
var newEle = document.createElement( "div" );


newEle.appendChild( document.createTextNode( notes + ". " ) );
newEle.appendChild( noteNode );


// add backlink
blink = document.createElement("a");
blink.href = "#ftnlink"+articles+"_"+notes;
blink.appendChild( document.createTextNode( " [back]" ) );
newEle.appendChild( blink );


noteholder.appendChild( newEle );


// add id & style
noteholder.lastChild.id = "ftn"+articles+"_"+notes;
noteholder.lastChild.className = "footnote";


// insert link into span
var newEle = document.createElement( "a" );
newEle.href = "#"+noteID;
newEle.title = "show footnote";
newEle.id = "ftnlink"+articles+"_"+notes;
newEle.className = "ftnlink";


newEle.appendChild( document.createTextNode( notes ) );


// empty span
while (spans[i].childNodes.length)
spans[i].removeChild( spans[i].firstChild );
var super = document.createElement( "sup" );
super.appendChild(newEle)
spans[i].appendChild( super );
}
}
}
//]]>
</script>

Utilisation

Créé un nouveau post avec le contenu HTML suivant :
<div id="articlefootnotefr">
Du texte <span class="footnote">avec une note de bas de page</span> et le reste de l'article qui doit être dans le 'div'.
</div>


<div class="footnoteholder" id="articlenotesfr"></div>
<script type="text/javascript">
//<![CDATA[
formatFootnotes('articlefootnotefr','articlenotesfr');
//]]>
</script>

Il sera affiché comme suit :
Du texte avec une note de bas de page et le reste de l'article qui doit être dans le 'div'.

mercredi 15 septembre 2010

Affiche - petite rétrospective

Dans la série affiches, et à la suite de la note précédente, voici un petit récapitulatif des affiches réalisées à ce jour pour les activités organisées par la bibliothèque de la Tour-d'Aigues :










Je n'ai affiché ici que celles qui trouvaient grâce à mes yeux...


Notez que j'ai en stock une version vectorielle de la plupart de ces dessins. Si ça intéresse quelqu'un je suis disposé à les publier sous une licence du type creative common.

dimanche 12 septembre 2010

Affiche - Promenade contée sur le thème de l'eau


J'ai enfin fini mon affiche pour la prochaine activité de la bibliothèque de la Tour-d'Aigues : une promenade contée sur le thème de l'eau...

J'espère qu'elle conviendra... Mais je me suis bien amusé à la réaliser, même si ma technique est un peu artisanale :
  • dessin au crayon,
  • encrage au pinceau (sinon, la photographie n'était pas assez contrastée pour bien séparer le dessin du bruit de fond),
  • photographie,
  • sélection de la zone intéressante et amélioration du contraste avec Gimp,
  • import et passage en vectoriel du dessin au trait sous Inkscape,
  • coloriage, toujours sous Inkscape (à la souris... mais si ça continue, je vais aller voir du coté des tablettes graphiques)



mercredi 8 septembre 2010

Banderole

Je voulais la mettre dans la note précédente, mais c'est raté !

Voici la banderole que nous avons utilisé samedi....J'espère que vous me pardonnerez la grossièreté (j'ai dû faire le tour de table à cloche pied en ayant l'air le plus bête possible pour ça !1 )
liberté, égalité, fraternité. Cassez-vous pauvres connes

Les réactions des manifestants étaient partagées, allant de
« Bravo ! Super votre banderole ! », 
à :
« Je dois dire qu'on a été très choqué par votre banderole, pouvez vous nous expliquer en quoi nous sommes des connes, et pourquoi nous devons nous en aller ? »
Bref, nous ne souhaitions pas avoir à expliquer que ce calicot a effectivement pour objectif de choquer en reprenant les propos de notre bien-aimé président (que ses talonnettes soient bénies), mais cette fois-ci appliqués aux termes liberté, égalité, fraternité -- ce que d'aucun pourrait croire être la volonté d'icelui. Nous avons en conséquence de ceci et d'une légère impréparation décidé d'y aller les mains vides.

[1] tradition familiale : il s'agit du gage infligé lorsque quelqu'un profère des grossièretés !

PS. si ça intéresse quelqu'un, j'ai une version SVG disponible...

Pourquoi j'ai manifesté mon père !

Non, cette note n'est pas une confession !

Cependant, peut-être que certains d'entre vous se sont posé cette question dont la réponse n'a, a priori, rien d'évident. En effet, pourquoi donc un informaticien n'ayant jusqu'alors jamais manifesté et qui ne verra de toute façon pas la couleur de la retraite avant 65 ou 67 ans, irait s'inquiéter de voir l'âge légal de départ à la retraite passer de 60 à 62 ans ? Serait-ce par pure philanthropie ? J'aimerais pouvoir l'affirmer, mais je crains que ce ne soit pour des raisons beaucoup plus personnelles et égoïstes :
Je crains pour l'avenir de notre (de ma) démocratie et de ses trois mamelles : la liberté, l'égalité et la fraternité.
Ouh là ! « Rien que ça » direz-vous !

Et je peux comprendre votre interrogation sceptique, mais il s'agit bien là de la raison qui m'a poussé à aller aux manifestations du 4 et 7 septembre (et à poser une journée de congé pour ce faire). Je vais donc essayer dans la suite de cet article2 d'exposer les fondements de mes craintes et de détailler les faits qui m'ont mis dans cet état d'esprit.

Il s'agit essentiellement d'actions du gouvernements qui sont pour moi :
  • des atteintes à la liberté,
  • des atteintes à l'égalité,
  • des atteintes à la fraternité,
mais aussi des atteintes à ce qui m'apparaît comme les fondements de la démocratie et qui se traduisent par :
  • la volonté de contrôle des médias,
  • la remise en cause de la séparation entre le pouvoir exécutif et le pouvoir judiciaire,
  • l'absence d'exemplarité, ce qui contribue à diffuser un sentiment d'arbitrarité de l'état sur le citoyen lambda.
Je puiserais de quoi argumenter sur ces points, à la fois dans les interventions publiques des membres du gouvernement et dans certains projets de loi qui ont été discutés ces derniers mois. Je parlerais sans surprise de la loi dite HADOPI (on devrait écrire HADŒPI) et vraisemblablement de la LOPSI, lois qui sont de près ou de loin liées à mon domaine professionnel. 

Voilà pour l'introduction. La prochaine note sera sur la loi HADOPI.



[1] Le « mon père » du titre est venu de lui même, par similitude avec le titre d'un roman de Roy Lewis que j'avais lu avec beaucoup de plaisir à l'époque : Pourquoi j'ai mangé mon père.
[2] et quelques autres, car mon temps de rédaction reste malgré tout limité.

lundi 6 septembre 2010

Espérance de vie et retraites

Je suis tombé par l'intermédiaire de mes lectures informatiques sur ce blog, qui fait une analyse intéressante à mon goût. Elle permet en effet de prendre conscience que les arguments relatifs à l'espérance de vie lancés par les politiciens sur les ondes et le papier ne sont peut être pas aussi clairs qu'ils y paraissent.

Mais qu'est-ce que l'espérance de vie ? En fait cette notion n'existe pas ! On utilise cette expression comme raccourci commode pour parler de l'espérance de vie à la naissance. Et oui, on peut aussi parler de l'espérance de vie à 60 ou 70 ans... Et cela change beaucoup de choses. Si effectivement, ces dernières cinquante années nous avons gagné un peu plus de 12 ans d'espérance de vie à la naissance, à 70 ans, les hommes ont seulement gagné 5 ans d'espérance de vie (environ 5 semaines par an1).

Nous voilà loin des discours de nos politiques (par exemple : La question qui nous est posée est simple : depuis 1950, nous avons gagné 15 années d'espérance de vie, le statu quo est-il possible ?)...


À méditer (ou pas) !

[1] En effet, le gain fait depuis 50 ans sur la mortalité infantile a contribué pour beaucoup à l'allongement de l'espérance de vie.