PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Antistress : Débuter : Qu'est-ce qu'une distribution GNU/linux ?

mardi 5 mars 2013 à 01:31

Bébé habillé d'un body Tux

Qu'est-ce qu'une distribution GNU/linux en pratique ? Et pourquoi parle t-on de distributions GNU/Linux au pluriel ?

Contrairement aux systèmes Windows et Mac où l'interface et le noyau sont liés (par analogie avec la voiture, considérez que l'interface est la carrosserie, et que le noyau est le moteur), le noyau Linux est conçu de façon autonome et peut être appairé à n'importe quelle interface conçue pour lui.

Ainsi les téléphones Android reposent sur un noyau Linux pour lequel Google a développé sa propre interface, laquelle peut elle-même être modifiée par le constructeur (par exemple : Samsung a développé sa propre interface nommée TouchWiz).

Sur les PC, il existe différentes interfaces pour le noyau Linux, dont les plus connues sont GNOME, KDE, Xfce et Unity.

Hormis Unity qui est propre au système Ubuntu, les autres interfaces peuvent être appairées au noyau Linux et proposées avec une sélection de logiciels propre, suivant une infinité de combinaisons.

En fonction des choix notamment techniques effectués, ces différentes combinaisons donnent lieu à ce que l'on appelle des distributions GNU/Linux, c'est à dire un système d'exploitation complet reposant sur une des interfaces mentionnées ci-dessus et offrant un choix de logiciels par défaut en fonction de la cible visée (distribution généraliste, distribution destinée à la création multimédia, distribution destinée aux serveurs...). Ubuntu, Fedora ou encore Debian sont quelques unes des distributions GNU/Linux généralistes existantes.

À noter que parfois une distribution est à ce point complète qu'elle offre le choix entre différentes interfaces ! Ainsi j'utilise personnellement une distribution GNU/Linux Debian avec l'interface GNOME, mais Debian permet aussi d'utiliser une autre interface comme KDE ou Xfce.

Ces distributions sont-elles compatibles entre elles ?

Rassurez-vous : ces choix techniques qui forment les distributions se font dans le respect d'un cahier des charges commun à tous les systèmes GNU/Linux, de sorte qu'au final un logiciel conçu pour GNU/Linux (Firefox, LibreOffice, VLC, GIMP et tant d'autres) fonctionnera sur n'importe laquelle de ces distributions utilisant n'importe laquelle de ces interfaces graphiques... Un peu comme une application Android peut fonctionner sur différents smartphones Android de différents constructeurs !

Un exemple : la distribution que j'utilise en ce moment

J’utilise actuellement une distribution Debian GNU/Linux avec l'environnement graphique GNOME.

Pourquoi « actuellement » ? Parce que, nous l'avons vu, dans la mesure où un logiciel est conçu pour systèmes GNU/Linux, il fonctionnera sur n'importe quelle distribution GNU/Linux. Il est dès lors assez facile de changer de distribution puisque vous retrouverez dans tous les cas vos logiciels habituels.

Cliquez ici pour voir à quoi ressemble le système que j'utilise.

Je le trouve pour ma part très classe et ergonomique, mais c'est bien sûr une affaire de goût.

Il est encore jeune (l'interface a été complètement revue en avril 2011 lors du passage de GNOME 2.x à GNOME 3.x) et évolue rapidement d'une version à l'autre (une nouvelle version sort tous les six mois selon un principe bien connu de l'Open Source : release early, release often – cela valorise/encourage notamment les contributions aux projets car celles-ci se matérialisent rapidement, mais rassurez-vous la mise à jour n'a rien d'obligatoire !).

À retenir :

Pour aller plus loin, lire : « Débuter : Essayer un système libre GNU/Linux sans rien installer ! ».

Gravatar de Antistress
Original post of Antistress.Votez pour ce billet sur Planet Libre.

Influence PC : Discovery sait à présent parler : vidéo et code source !

lundi 4 mars 2013 à 19:15

Voilà comme promis la suite du guide pour créer votre propre robot Arduino ! J’ai rencontré un certain nombre de problèmes que je vais vous présenter et qui ont été difficiles à identifier. Ça m’a également donné l’occasion de mieux comprendre le fonctionnement de la carte Arduino.

Les robots ont la même problématique que les humains pour se déplacer : ils doivent utiliser au choix l’un des cinq sens connus, mais de préférence le plus pertinent ! Le type et le nombre de capteurs va leur donner un certain comportement.

Par exemple, Discovery a deux capteurs télémètres infrarouges, c’est à dire deux rayons lumineux afin de mesurer les reflets sur les obstacles qu’il rencontre. La position des capteurs en « V » l’empêche de voir ce qui se situe juste en face de lui, un algorithme pourrait alors palier ce problème en slalomant doucement afin que chaque capteur croise la trajectoire empruntée. D’autres robots n’ont qu’un seul capteur et le montent sur une tête qu’ils orientent tour à tour de droite à gauche. D’autres ont trois capteurs.

Les robots n’ont pas besoin de nous comprendre ou de penser pour avoir l’air intelligents, il leur suffi de réagir à notre présence. C’est ce que font tous les robots actuels sans la moindre exception. C’est ce que j’ai voulu expérimenter en donnant la parole et un comportement basique à Discovery : il salue en s’allumant, puis attend que quelqu’un choisisse le capteur droit (idle) ou le capteur gauche (rouler) et s’exclame lorsqu’un choix est fait. Puis il se déplace en lançant des petites phrases de temps à autre, mais se plaint vigoureusement si quelque chose lui barre la route.

Pour y parvenir, j’ai placé sur la carte SD des dossiers contenant des profils de sons qui sont joués à des moments-clés du programme. Lorsqu’une action a lieu, un son est choisi au hasard dans le dossier correspondant. Le son précédemment joué est alors retiré du random, et l’opération recommence de manière aléatoire dans le temps (sous dix secondes).

Je vous disais qu’il fallait se méfier d’éventuelles incompatibilités entre le WaveShield (la carte son) et le Rotoshield (la carte de commande des moteurs). Je pensais échapper à la moindre soudure mais il en faut bien une. Et un cutter.

J’ai listé les pins qui sont utilisés par mon montage, ça donne :
D0 : vide, RX Ne pas utiliser
D1 : vide, TX Ne pas utiliser
D2 : Wave Shield déplaçable
D3 : Rotoshield « M1″ inamovible + Wave Shield amovible, timer 2
D4 : Wave Shield déplaçable
D5 : Rotoshield « M3″ inamovible + Wave Shield amovible, timer 0
D6 : Rotoshield « M4″ inamovible, timer 0
D7 : [Wave Shield du pin D3 à déplacer ici pour pouvoir utiliser M1]
D8 : [Wave Shield du pin D5 déplacé ici pour pouvoir utiliser M3]
D9 : vide, timer 1
D10: Wave Shield déplaçable, timer 1
D11: Wave Shield inamovible (Rotoshield « M2″ à sacrifier), timer 2
D12: Wave Shield inamovible
D13: Wave Shield inamovible
A0 : Capteur IR
A1 : Capteur IR
A2 : vide
A3 : Générateur de RandomSeed() (pin libre générant du bruit)
A4 : Rotoshield inamovible
A5 : Rotoshield inamovible

Vous aurez remarqué trois choses :
- le bornier M2 du Rotoshield ne doit pas être utilisé pour que le Waveshield puisse fonctionner
- le bornier M4 est le seul à pouvoir fonctionner out-of-the-box, pour utiliser M3 sans créer d’interférence il faudra aller modifier son utilisation dans la bibliothèque du WaveShield (WavePinDefs.h) et effectuer la soudure correspondante sur la carte électronique (avec les schémas on s’en sort bien)
- j’ai ajouté les positions des Timers Arduino car le déplacement de M1 me parait plus risqué, étant placé sur le Timer2 que le Waveshield utilise en D11.

Voilà le topic Adafruit où on m’a aidé à déplacer un pin, ils ont été très compétents. J’ai réalisé un travail de boucher mais au moins ca marche :D

Et comme promis les codes sources : je vous conseille de vous en inspirer mais d’écrire vos propres programmes, c’est plus sympa.

Gravatar de Influence PC
Original post of Influence PC.Votez pour ce billet sur Planet Libre.

Jonathan Le Lous : Logiciel libre: de la liberté à la stratégie

lundi 4 mars 2013 à 13:58

Bonjour,

Un nouveau post enfin :-) Il concerne mon intervention auprès des étudiants du Master Conduite de projet informatique de l'Université Paris 8. J'ai été invité à intervenir, ainsi que Tangui Morlier, par Ivaylo Ganchev pour parler pendant 4 heures de logiciel libre. Vous imaginez comme cela a dut être dur ;-)

L'idée est de présenter le logiciel libre à partir de sa création, ses principes fondateurs pour ensuite aborder les éléments de stratégie. Bien entendu ces slides ne vous apporteront pas l'ensemble des points que nous avons abordé mais c'est un premier pas. Lors de cette après-midi les étudiants se sont montrés très interactifs et ils ont ensuite jeté leurs iPhone à la sortie du cours en criant à bas le logiciel proprio ! - bon ok ok ça c'est juste un fantasme de libriste !

De la liberté à la stratégie

A bientôt, Jonathan

Gravatar de Jonathan Le Lous
Original post of Jonathan Le Lous.Votez pour ce billet sur Planet Libre.

Nicolas Lœuillet : wp2pluxml, pour passer de WordPress à PluXml

lundi 4 mars 2013 à 13:48

wp2pluxml, un script que j’ai développé il y a quelques temps, est de nouveau en ligne http://cdetc.fr/wp2pluxml/.

Ce n’est pas dit que ça fonctionne pour l’instant, puisque ce sont les sources du début et que depuis, WordPress comme PluXml ont pas mal bougé.

Mais je vais me replonger dans le code, donc ça sera très prochainement fonctionnel.

Gravatar de Nicolas Lœuillet
Original post of Nicolas Lœuillet.Votez pour ce billet sur Planet Libre.

Martin T. : Les API mortes se ramassent à la pelle

lundi 4 mars 2013 à 13:02


Les souvenirs et les regrets aussi.
Mais mon serveur silencieux et fidèle sourit toujours et remercie la vie.
Je t’aimais tant, tu étais si standardisée, comment veux-tu que je t’oublie ?

– Jacques Prévert.

Les réseaux libres et décentralisés c’est beau, pas de censure ou exploitation de vos données, bel exemple de liberté d’expression. Chacun choisissant son serveur, on évite les problèmes de points de passage uniques et diminue les problèmes en cas de défaillance d’un nœud. Enfin dans la théorie parce qu’en réalité c’est complètement le bordel. Les réseaux sociaux libres fleurissent un peu partout mais il n’y a pas moyen de s’entendre.

La semaine passée, pump.io venait de sortir sa version 0.2, une première release après 4 mois de développement (c’est là qu’on se rend compte que Diaspora avec ses 2 ans de développement s’est bien foutu de nous). Pump est un projet de Evan Prodromou, le créateur de StatusNet, et présenté comme la succession de ce dernier (prévu pour la 0.3, en avril 2013, les inscriptions sur identi.ca sont d’ailleurs désormais gelées). StatusNet continuera a vivre et être maintenu mais il ne faut pas s’attendre a voir de grandes nouveautés apparaître. Pump est écrit en NodeJS et avec une base de donnée NoSQL (MongoDB & co). Je n’ai aucun problème avec le fait d’abandonner le couple vieillissant PHP/MySQL (au contraire). Le point problématique est un aspect que l’on voit apparaître très souvent avec les réseaux sociaux libres : il n’utilise pas OStatus mais une nouvelle API. OStatus est une suite de protocoles (Atom, Activity Streams, PubSubHubbub, Salmon et Webfinger) qui permet de se mettre d’accord sur la façon dont deux serveurs OStatus peuvent communiquer. C’est grâce à OStatus que je ne suis pas obligé d’utiliser StatusNet pour communiquer avec quelqu’un l’utilisant, je peux utiliser Friendica par exemple. Cependant Friendica est un peu l’exception qui confirme la règle, a part lui qui met un point d’honneur a être compatible avec plusieurs réseaux, les autres utilisent systématiquement des manières propre pour communiquer.

Prenons l’exemple de Tent, un nouveau protocole décentralisé assez sympa (dont TentStatus est la partie permettant le microblogging). La façon de voir les choses est intéressante et suis convaincu qu’on puisse voir de chouettes projets apparaître (comme la page Related Projects le montre). Cependant ils ont fait le choix de recommencer from-scratch et cassant toute compatibilité. Les serveurs Tent ne peuvent parler qu’avec des serveurs Tent. Les raisons avancées pour ne pas utiliser OStatus sont discutables : pas de messages prives, impossible de changer de serveur en gardant les relations, pas d’API standard pour l’interaction. Mais comme mentionné dans un commentaire, c’est plus drôle de partir de zéro.

installation-parabole

Avec cette parabole Turbo+ 2.0, nous devrions enfin a comprendre leurs messages codés avec ce mystérieux « XMPP »

Vous vous souvenez de Diaspora ? Belle levée de fond, beaucoup d’espoirs, deux ans de développement pour finalement abandonner le projet a la communauté. Les créateurs décident de se concentrer sur leur sorte de générateur de meme (qui utilise ironiquement Facebook-connect, un bel aveu d’échec). Il semble avoir une bonne relève et il est possible que ce projet aboutisse a quelque chose mais Diaspora part avec une mauvaise base : un protocole interne quasi inexistant (qu’on pourrait presque qualifier de propriétaire). Diaspora avait été conçut sans trop savoir où aller puisque l’API n’était pas documentée et changeait tout le temps. Le projet Friendica a essayé d’être compatible avec celui ci mais a rencontre de nombreuses difficultés. Il semblerait que la communauté a prit conscience de ce problème puisqu’ils essayent d’être compatible avec d’autres réseaux. Personnellement, j’ai abandonné mais espoirs concernant Diaspora mais je peux changer d’avis, wait and see… ou pas.

Ces deux exemples ne sont pas les seuls, dans les plus connus on a aussi Movim (a base de XMPP, pas d’interopérabilité avec d’autres API type OStatus) ou SalutAToi (utilise une API basée sur XMPP documentée mais de leur cru quand même). Notons les bons élèves que sont Friendica et BuddyCloud puisqu’ils supportent plusieurs standards.

Pour revenir a Pump, Evan avait sans doute de bonnes raisons de changer la façon d’interagir entre serveurs, il s’y connaît en réseaux décentralisés et API. En raison de quelques problèmes avec StatusNet, il a préféré repartir sur une nouvelle base. Il annonçait quand même qu’un effort serait fait pour être compatible avec StatusNet. Cependant, l’API de base reste différente, toutes les fonctionnalités devront être adaptées pour faire la transition.

Pour se rendre compte du problème, imaginons maintenant que StatusNet ou Diaspora soient complètement abandonnés par les développeurs et ne soient plus maintenus. Les logiciels ont amassés une bonne base d’utilisateur mais ces utilisateurs vont lentement migrer vers des solutions plus modernes et maintenues. Sans l’émergence d’une solution supérieure, ils vont se diviser, se tournant peut être même vers une solution propriétaire. Cette migration se fera petit a petit, avec une base d’utilisateur ne voulant pas faire de migrer en raison de la communauté déjà présente sur son vieux réseau. Si ces logiciels ne sont plus maintenus, des Pump ou Friendica seront sans doute moins tentés de continuer a maintenir un niveau de compatibilité vers eux. Les nouvelles fonctionnalités ne seraient pas portées en OStatus. La communauté se retrouverait encore plus fragmentée. C’est évidement un scénario peu probable (déjà car OStatus n’est pas utilisé que par StatusNet) mais cela montre le problème des multiplications de standards : division de la communauté encore plus accentuée en cas d’abandon de projets.

Se mettre d’accord sur un protocole standard c’est une condition essentielle pour le succès des réseaux libres décentralisés. Sans cela, je ne pense pas que l’on pourra dominer les réseaux propriétaires centralisés ayant l’avantage de ne pas avoir a se soucier de ce problème. Je ne critique pas un standard en particulier (je ne me permettrais pas d’en désigner un supérieur aux autres), que ce soit OStatus, Pump, Tent, Diaspora ou un autre à base de XMPP, il faut se mettre d’accord sur une API commune et il faut arrêter d’en développer une nouvelle pour chaque logiciel. Toutes les API ne sont sans doute pas compatibles avec tous les cas de figure (sans parler de l’école HTTP vs XMPP) mais il y a sûrement moyen de dégrossir. Créer c’est bien, améliorer l’existant, c’est mieux.

CC-BY-NC XKCD

CC-BY-NC XKCD

Gravatar de Martin T.
Original post of Martin T..Votez pour ce billet sur Planet Libre.