Effraie@blog

Un tas de gens n'aiment pas admettre la logique quand elle dicte des décisions difficiles. C'est un problème avec les gens, pas avec la logique.

Corry Doctorow

RSS | Photos | Stats | Admin | Clef GPG | Contact

samedi 16 février 2008

Prochaine session: Vim

Qui n'est jamais passé par là... Démarrage de vim (généralement par un complet hasard), râleries parce que cet éditeur bizarre n'a pas l'air de marcher (jusqu'à ce qu'on tombe sur la bonne touche, mais sans comprendre ce qui s'est passé), et fermeture violente de console parce qu'impossible de trouver comment sortir de l'éditeur :)

C'est Yannick LM qui sera le professeur pour la session classroom sur vim. Elle se déroulera le vendredi 22 février à 20 heures (heure métropolitaine, 19H00 UTC), sur le canal #u-classroom du réseau irc freenode.

Aucun pré-requis n'est nécessaire à ce cours, si ce n'est une installation du logiciel ('sudo apt-get install vim' pour debian et dérivés).

Une fois vim maîtrisé, vous ne verrez plus votre console du même œil ! Et vous pourrez profiter de la seconde session (dont la date sera donnée ultérieurement).

A bientôt sur #u-classroom !

Via u-classroom, en attendant que celui ci soit validé pour l'agrégation sur www.planet-libre.org

dimanche 10 février 2008

Un script python pour calculer l'Hyperfocale (MAJ)

Je viens de mettre à jour le script hyperfocale... une version 0.2, en quelque sorte. Il est toujours disponible ici, et calcule désormais, en fonction de la distance du point: la distance du 1° et du dernier plan net, et la profondeur de champ.

Hyperfocale v0.2

Lisez le billet précédent si vous avez besoin de plus de détails.

Un script python pour calculer l'Hyperfocale

Jusqu'ici, lorsque je souhaitais calculer la valeur hyperfocale d'un objectif, je me reportais en général a une applet mal fichue sur un site web, ou bien je sortais ma calculatrice.

A force, c'est un peu lassant, et aujourd'hui, avec l'aide de quelques petits camarades, j'ai écris un petit script python qui fait ça à ma place. Pour l'utiliser, sauvegardez simplement ce script et exécutez le.

Chez moi ça donne:

hyperfocale.py

Voici le contenu du fichier:

#!/usr/bin/env python
# -*- coding: UTF8 -*-
#Copyright Mathieu Rousseau - mathieu_AT_effraie_DOT_org
#Programme sous licence WTFPL - http://sam.zoy.org/wtfpl/COPYING
 
# Choisissez ici la valeur adaptée à votre boitier (reflex numérique par défaut) #
####################################################
#APS (reflex numériques):
confusion_circle = 0.02
#24x36 (reflex argentiques, numériques Full Frame...)
#confusion_circle = 0.03
#Film 6x6
#confusion_circle = 0.05
#Film 4x5
#confusion_circle = 0.01
 
f = raw_input("Quelle focale (en millimétres )? ")
focale = float(f)
d = raw_input("Quel diaphragme ? ")
diaph = float(d)
hyperfocale = ((focale*focale)/(diaph*confusion_circle))/1000
print "Pour ce couple focale/diaphragme, l'hyperfocale est de : %.2f mètres. La zone de netteté s'étendra de %.2f mètres à l'infini." % (hyperfocale, hyperfocale/2)



Si vous utilisez autre chose qu'un reflex numérique, pensez à modifier la valeur du cercle de confusion.
Le script étant sous licence wtfpl, vous en faites exactement ce que vous voulez.

jeudi 03 janvier 2008

Les licences et la notion de liberté

Suite à un commentaire ou l'on me demande de préciser un peu ma remarque sur les licences Creative Common, voici un billet au sujet de la notion de libre, ce mouvement qui bouscule la propriété intellectuelle dans le domaine logiciel essentiellement (mais pas uniquement!).

La propriété intellectuelle, le copyright, les droits d'auteurs... et les sujets proches sont des sujets complexes et touffus, pour l'essentiel juridiques, et sont le terrain de nombreuses confusions.

N'étant pas un spécialiste (au sens de juriste spécialisé...), je m'en tiendrais à un domaine restreint, ou je pense ne pas faire trop d'erreurs, si ce n'est sur la lettre, au moins sur l'esprit: les licences, de logiciels mais pas uniquement, dites libres, et les licences qui s'en approchent. Il ne s'agit pas ici d'être exhaustif, mais de tenter de dessiner les grandes lignes d'une idée complexe et instructive.

Les utilisateurs de distributions GNU/Linux grand public, comme l'est Ubuntu sont concernés au premier chef, leur système d'exploitation étant constituée de logiciels sous diverses licences, dont la compréhension aide à la compréhension globale du système, de ses tenants et des ses aboutissants

Au commencement, la GNU General Public License (GPL)

GNU Mère de toutes les licences libres, et sans doute aussi de la notion même de libre, en tant que concept touchant a la propriété intellectuelle, la GNU GPL, actuellement en version 3, apparaît en janvier 1989. Elle est écrite pour protéger les logiciels GNU et les projets de la Free Software Foundation.

L'idée centrale de la GPL, c'est le copyleft un jeu de mot (mal traduit en français par les termes gauche d'auteur) fondé sur le terme copyright. Il s'agit d'utiliser le mécanisme du copyright, mais en le retournant au profit des libertés de l'utilisateur. Richard M. Stallman, fondateur du projet GNU, en parle ainsi:

L'idée centrale du gauche d'auteur est de donner à quiconque la permission d'exécuter le programme, de le copier, de le modifier, et d'en distribuer des versions modifiées - mais pas la permission d'ajouter des restrictions de son cru. C'est ainsi que les libertés cruciales qui définissent le « logiciel libre » sont garanties pour quiconque en possède une copie; elles deviennent des droits inaliénables.

On trouve là évoquées ce qui sont les 4 libertés fondamentales du logiciel libre, et la restriction fondamentale également du copyleft: il n'est pas possible de retirer ces libertés aux utilisateurs, la liberté se propage partout ou va le logiciel.
Vous trouverez plus d'information sur la licence GPL, mais aussi sur les licences "sœurs" que sont les LGPL (plus souple) et GFDL (adaptée aux documentations), sur wikipedia, et plus d'éléments quand à la philosophie du projet GNU ici.

Une autre licence logicielle phare: la BSD

BSDLa licence BSD est une autre licence phare du monde libre. Elle a été rédigée pour s'appliquer au(x) projet(s) d'uni(ces)x libre(s) dit Berkeley Software Distribution(BSD)[1]. Elle est considérée comme plus permissive, dans le sens ou elle ne fournit pas la restriction fondamentale du copyleft: un logiciel sous licence BSD pourra être utilisée dans un projet non-libre, sa licence pourra être modifié, on peut modifier son code et le redistribuer sans être forcé de fournir les sources...

Ces deux grands modèles ont leurs partisans, et l'on considère habituellement (bien que ce soit une simplification importante!) que la BSD est une licence plus pragmatique, qui permet (notamment) la viabilité du logiciel libre dans le monde de l'entreprise, alors que le modèle GNU (GPL, copyleft...) est l'émanation d'un mouvement social, pour la liberté des utilisateurs.

Il est important de noter que, si ces deux types de licences accorde, pour l'essentiel, les mêmes libertés aux utilisateurs, les quelques incompatibilités qu'elles renferment induisent des différences de philosophie importantes.
Pour ce qui est de la compatibilité, je signalerais juste que la licence BSD étant permissive, le code publié sous cette licence peut être re-licencié en GPL[2], tandis que l'inverse n'est pas vrai. (Ceci n'implique pas que l'on puisse retirer la licence BSD... oui, c'est compliqué, les (in)compatibilités de licences)

Du libre en dehors du domaine logiciel

La licence Art Libre



al La licence art libre reprend les principes du copyleft pour les transférer au delà du monde logiciel, à toutes les œuvres de l'esprit. Wikipedia [3] nous dit:

Elle autorise tout tiers (personne physique ou morale), ayant accepté ses conditions, à procéder à la copie, la diffusion et la transformation d'une œuvre, comme à son exploitation gratuite ou onéreuse, à condition qu'il soit toujours possible d'accéder à sa source pour la copier, la diffuser ou la transformer.

Cette licence, que j'affectionne particulièrement, poursuis explicitement l'objectif d'un modèle de société non-marchand. Dans la Foire aux questions a son sujet, on trouve:

L’utilisation de la Licence Art Libre est aussi un bon moyen pour prendre des libertés avec le système de la marchandise généré par l’économie dominante. Cette licence offre un cadre juridique intéressant pour empêcher toute appropriation abusive. Il n’est plus possible de s’emparer de votre œuvre pour en court-circuiter la création et en faire un profit exclusif. Il est interdit de faire main basse sur le travail collectif qui est à l’œuvre, interdit de s’accaparer les ressources de la création en mouvement pour le seul bénéfice de quelques-uns.

on y retrouve la notion de collectif, que je raproche du mouvement social évoqué par Richard M. Stallman à propos des logiciels libres.

Les licences Creative Commons

cc

Creative Commons propose gratuitement des contrats flexibles de droit d'auteur pour diffuser vos créations.

Voila la phrase qui nous accueille sur le site francophone de Creative Commons. En effet, Creative Commons n'est pas une licence, mais une organisation (représentée en France par le CERSA CNRS, Centre d'Etudes et de Recherches de Science Administrative[4]), qui met à la disposition de chacun six contrats, modulables, pour diffuser ses créations en définissant ce que les utilisateurs peuvent en faire. (En effet, ne pas donner de licence a son œuvre la place d'emblée dans un régime de droit d'auteur restrictif). Détaillons (un peu) les six contrats:

  • Paternité: Ce contrat autorise la distribution, la modification, la reproduction et la communication de l'œuvre, à la condition de citer le nom de l'auteur original. (Il est noté CC-by)
  • Paternité, pas de modification: Les droits sont similaires au contrat Paternité, à la différence (énorme!) que l'utilisateur ne peut en aucun cas modifier l'œuvre. (noté CC-by-nd)
  • Paternité, pas de modification, pas d'utilisation commerciale: Ce contrat ajoutes encore une restrictions aux libertés accordées dans les contrats précédents: cette fois çi, il est formellement interdit de faire un usage comercial de l'œuvre, que l'on a le droit de distribuer, reproduire et communiquer, en citant le nom de l'auteur original. (noté CC-by-nc-nd)
  • Paternité, pas d'utilisation commerciale: Si l'on a la non plus, pas le droit d'en faire un usage commercial, on peut modifier l'œuvre, en citant son auteur original (noté CC-by-nc)
  • Paternité, pas d'utilisation commerciale, partage des conditions initiales à l'identique: Ce contrat introduit la notion de propagation, issue du Copyleft. cependant, il y a une restrictions sur les usage commerciaux de l'œuvre. (noté CC-by-nc-sa)
  • Paternité, partage des conditions initiales à l'identique: Ce contrat reprends les libertés accordées par le contrat Paternité, en y ajoutant la notion de propagation des libertés, puisque toute redistribution, modification... doit se faire sous le même contrat. (noté CC-by-sa)


Les contrats Creative Commons sont souvent assimilés à des licences libres. Cependant, il est essentiel de remarquer que les six contrats ont des implications très différentes. En effet, seul deux contrats (CC-by et CC-by-sa) accordent les 4 libertés fondamentales du (logiciel) libre à l'utilisateur de l'œuvre, tandis que les autres restreignent l'usage qui peut en être fait. Seul le contrat CC-by-sa accorde les 4 liberté fondamentales, et la notion de propagation des libertés, proche du copyleft (c'est sous ce contrat que je diffuse mes photos). Il est donc plus juste de considérer que seul ces deux contrat sont libres, et que seul CC-by est un contrat permissif (de type BSD), et CC-by-sa un contrat copyleft (de type GNU)[5]

Une multitude de licences (plus ou moins) libre

Si les licences que j'ai présentées jusque là sont les plus connues, il existe néamoins une multitude d'autres licences, qui se veulent libres, et qui pour certaines le sont, pour d'autres, ne le sont pas, et pour d'autres encore... et bien ça dépends de qui en juge!.
On trouve par exemple les licences Apache, CeCILL, Mozilla Public Licence, et bien d'autre, plus confidentielles encore.
À titre d'exemple, j'utilise pour les contenus de ce site la licence WTFPL, une licence libre tellement libérale qu'elle permet toute modification et redistribution sans aucune restriction. (je ne conseille personnellement cette licence que pour les œuvres les plus triviales). Dans ce maquis de licences, plus ou moins libres, plus ou moins confidentielles, comment s'y retrouver?

Le projet Debian, son contrat social et les DFSG

DebianSi le meilleur moyen de s'y retrouver dans le maquis des licences libres, c'est de bien les connaître, et d'avoir des convictions en la matière, il existe un projet qui s'est depuis longtemps penché sur la question du libre et qui a produit un gros travail, à la fois théorique et pratique, sur le concept de libre, et sa traduction pratique dans l'utilisation quotidienne. Il s'agit du projet Debian, la célèbre distribution GNU/Linux communautaire. Chacun se forgera sa propre opinion, mais l'abord que Debian à du libre me convient, et je vais donc vous en dire un peu plus à ce sujet.

Le projet Debian, entiérement communautaire, s'appuie sur quelques textes fondamentaux pour pouvoir s'orienter et faire des choix. L'un de ces textes est le Contrat Social avec la communauté des logiciels libres , dont voici un extrait:

Nos priorités sont nos utilisateurs et les logiciels libres.

Les besoins de nos utilisateurs et de la communauté des logiciels libres nous guideront. Nous placerons leurs intérêts en tête de nos priorités. Nous répondrons aux besoins de nos utilisateurs dans de nombreux types d'environnements informatiques différents. Nous ne nous opposerons pas aux travaux non libres prévus pour fonctionner sur les systèmes Debian. Nous permettrons, sans réclamer rétribution, que d'autres créent des distributions contenant conjointement des logiciels Debian et d'autres travaux. Pour servir ces objectifs, nous fournirons un système intégrant des composants de grande qualité sans restrictions légales incompatibles avec ces modes d'utilisation.

Si je vous donne cet extrait ici, c'est qu'il me semble exprimer le compromis nécessaire si l'on souhaite que le libre profites aux individus et aux peuples: placer l'intérêt des utilisateurs avants les dogmes techniques et/ou philosophiques.

Pour appliquer ce contrat social, Debian s'est doté d'un texte qui défini les logiciels qui peuvent entrer dans le système Debian : Les principes du logiciel libre selon Debian (DFSG)[6]. Ce texte définis, plus largement que ne le font chacune des licences, avec leurs particularités, leurs objectifs spécifiques, leurs parti-pris idéologiques respectif, les conditions que doivent remplir les logiciels pour être compatible avec le contrat social précédemment cité. La page wikipedia anglophone sur le sujet nous en apprends plus sur le questions que ces Guidelines soulèvent, et les conséquences qu'il faut en tirer. On y trouvent notamment trois tests de compatibilité avec les DFSG, que je traduit ici, puisque je n'ai pas trouvé de traduction sur internet:

  • Le test de l'île déserte Imaginez un naufragé sur une île déserte avec un ordinateur fonctionnant à l'énergie solaire avec une connexion Internet qui ne peut pas transférer[7]. En conséquence, il lui serait impossible de respecter une obligation de mettre ses modifications à la disposition du public ou d'envoyer ses correctifs à certains destinataires en particulier. C'est valable même si ces exigences ne le sont à la demande uniquement, comme le naufragé qui pourrait être en mesure de recevoir des messages mais ne pas être en mesure d'en envoyer. Pour être libres, les logiciels doivent être modifiables par ce malheureux naufragé, qui doit aussi être en mesure de partager légalement ses modifications avec des amis sur l'île.
  • Le test du dissident Envisageons un dissident dans un état totalitaire qui souhaite partager quelques modifications d'un logiciel avec d'autres dissidents, mais ne souhaite pas révéler l'identité du modificateur, ou révéler les modifications elles-mêmes, ou même la possession du programme au gouvernement. Toute exigence de l'envoi du code source des modifications, à toute personne autre que le destinataire des binaires modifiés - en fait, toute distribution forcée quelle qu'elle soit, hormis donner le code source à ceux qui reçoivent une copie du binaire - mettrait en danger le dissident. Pour qu'un logiciel soit libre selon Debian, il doit doit pas avoir de telles exigences (excédentaires) de redistribution.
  • Le test des Tentacules du Mal Imaginez que l'auteur est retenu par une grande société malfaisante, le tenant en esclavage, et visant à faire le pire pour les utilisateurs du programme: rendre leur vie misérable, les faire cesser d'utiliser le programme, les exposer à une responsabilité légale , rendre le programme non-libre, chercher à découvrir leurs secrets…[8] La même chose peut arriver à une société rachetée par une grande société s'acharnant à détruire les logiciels libres afin de maintenir son monopole et d'étendre son empire du mal[9]. La licence ne peut permettre, même à l'auteur, de retirer les libertés.

Voila, j'espère, quelques éléments qui permettront a ceux qui se sentaient un peu largués de mieux se repérer dans le maquis du (logiciel?) libre, et éventuellement, partant de là, de faire les choix éthiques et techniques appropriés, et correspondants à leurs besoins, envies, désirs, opinions.... (dédicace spéciale au monolecte ^^')

il est fort possible que j'ai fait quelques erreurs, mais rien de vous empêche de troller me répondre dans les commentaires :)

Notes

[1] les projet sous licence BSD les plus connus sont sans doute FreeBSD, OpenBSD, NetBSD, et OpenSSH

[2] Cette idée est polémique!

[3] http://fr.wikipedia.org/wiki/Licence_Art_Libre

[4] http://www.cersa.org/

[5] Cette typologie en type est improvisée, soumise a caution, et simplificatrice! pas taper!

[6] Debian Free Software Guidelines, en anglais

[7] Le texte original parle d'upload

[8] Toutes ressemblances avec... (vous connaissez la suite)

[9] Toutes ressemblances...

samedi 29 décembre 2007

Mes extension firefox préférées...

Oui, je sais, c'est vu et revu, ce genre de billet...
Ne le dites à personne, mais je l'écris surtout pour pouvoir les retrouver facilement quand je libère un ordi chez quelqu'un! Et puis bon, malgré tout ses défauts, ce sont ces extensions qui font que firefox reste un logiciel indispensable à mes yeux, alors, je répand la parole ^^'

Les indispensables:

  • Customize Google Permet de faire disparaître les pubs google (adsense, vous savez, ces petites pub en mode texte horripilantes...) et de protéger votre vie privée... un must have, ici



  • Flashblock Le flash, c'est un des pires fléaux que le web ai porté... lourd, rarement joli, pratiquement jamais utile, mal accessible, propriétaire... beurk. Cela dit, certains sites utiles l'utilisent, et comme sur beaucoup d'autres, le plugin flash est installé sur ma machine. Comme je ne veux pas me taper tout les menus kikoololant et inutiles en flash, j'utilise flashblock et j'autorise le flash au cas par cas, quand j'en ai vraiment besoin.



  • Adblock Plus : Sans doute l'anti-pub le plus efficace du web! A installer d'urgence, à moins que vous teniez absolument a voir les pages web clignoter, briller, wiiiiizzzzer et peser lourd. Quand aux quelques (rares...) webmasters qui se sentent spoliés quand je cache les pubs de leur page, voir qui veulent m'empécher d'accéder à leurs contenus pour ça... C'est vraiment sale d'envisager le web comme ça! (ceci n'engage que moi ®) et de toutes façon votre contenu est probablement tout pourri, na.



  • Tab Mix Plus : Pour les gros navigateurs! Cette extension permet a ceux qui tirent vraiement trop sur la ficelle (pleins d'onglets ouvert en même temps, plusieurs fenêtres sur différents bureaux, et du mal à garder ça cohérent... vous vous reconnaissez?) d'accéder à un nombre conséquent d'options et de fonctionnalités concernant de prés ou de loin la navigation par onglet. Un must have pour les boulimiques du web. (ici)



  • Firebug : Indispensable si vous développez, même peu et mal (comment ça, comme moi !?), des pages oueb. À télécharger ici





  • Dans la série WebDev, me reste a pointer CSS Validator, pour valider vos CSS (nan, sérieux?) et le compte est bon.



Les accessoires

(mais bien quand même hein :) )

  • Greasemonkey : Une extension qui permet, en javascript, d'agir sur le contenu des pages web. Très très prometteur. Installez l'extension, et rendez vous sur http://userscripts.org pour télécharger des scripts fait par d'autres utilisateurs pour des centaines (des milliers?) de sites. (jetez un œil aux scripts Flickr et del.icio.us si vous utilisez ces sites...)





  • DownThemAll un outils de téléchargement massif pour firefox. Permet par exemple d'automatiser la récupération de toutes les images d'une page web. (ici).



  • Linkification transforme les liens textes en lien hypertextes. Si vous ne comprenez pas, vous n'en avez pas besoin ^^' . C'est là.



  • Update Scanner Vous voulez être tenu au courant des modifications sur une page qui ne fournis pas de flux RSS ou Atom? Cette extension scanne le contenu des pages, et vous avertis dés lors que n caractères ont été modifiés. n étant configurable... Pratique.



Inutile, donc indispensable



  • StumbleUpon ce service et son extension vous propose des pages, et vous propose de les noter (j'aime/j'aime pas). Au fur et a mesure, le service apprends a connaitre vos gout, et vous propose des pages qui vous intéresse. Surprenant, et efficace (et chronophage) au moins en anglais, parcequ'en français, je pense que la masse critique d'utilisateurs n'est pas réunie.



  • Fission J'en suis content car elle me permet d'optimiser la place prise à l'écran par Firefox sans perder en fonctionnalités utiles (à mon goût... je vire la barre d'état, c'est plus joli, ça prend moins de place, et je conserve l'indicateur de chargement et de destination des liens, reporté dans la barre d'URL). Geek et inutile, j'adore.



Voila... je crois que j'ai fait le tour. Ça en fait pas mal tout de même!

- page 3 de 14 -