Leave a comment

Retours d’un auditeur CNAM

Je crois bien que je n’ai jamais parlé ici très en détail de mon expérience au CNAM.

Comme cette année aura été pour moi un peu charnière avec l’obtention de deux licences (en électronique et, il y a quelques jours, en informatique), je me suis donc dit que c’était certainement le moment pour moi de faire un peu le point.

Continue Reading »

Changement de thème

Pour celles et ceux qui viennent voir mon blog de temps en temps et qui se demandent s’ils sont sur le bon site, je viens de changer de thème.

Le précédent, bien qu’agréable à mon goût, était légèrement trop épuré. J’ai donc changé de thème et ai installé le thème Nuntius.

Je reste néanmoins convaincu que ce blog doit rester le plus simple possible afin qu’il reste agréable à consulter.

[edit du 01/10/2014]
Concernant le thème, il utilise des fonts google. Ces polices n’apportant rien, si ce n’est quelques informations à google, il est préférable de s’en passer.
Autant sur le thème que j’utilisais précédemment, j’avais pu désactiver ces polices (avec l’extension « disable google font »), autant là, ça semble sans effet. Du coup, j’ai simplement commenté les 3 appels à ces polices directement dans le thème. Il est probable que j’ai à le refaire à chaque mise à jour du thème.
[/edit]

Nouvelles en vrac en cette mi-septembre 2014

Les vacances sont terminées depuis un moment déjà et je reprend mon rythme.

Côté projets personnels en cours, j’avance de temps à autre sur mon jeu ActionRPG. Pour le moment, je m’occupe essentiellement de la construction du monde.
Pour ce qui est de l’outil d’analyse de flux que je développe en python, je le laisse de côté pour le moment aussi. Cela est volontaire de ma part car la collecte de données tourne toujours. Je pense recommencer à travailler dessus vers la fin de l’année (j’aurai alors à disposition au moins 6 mois de données).
J’ai encore d’autres projets amusants en tête mais j’attendrais d’avoir bien avancé sur ceux là avant de m’y pencher.

Côté cours, j’ai officiellement obtenu ma licence d’électronique du CNAM :D . J’attends maintenant avec impatience ma licence d’informatique (ma demande a déjà été envoyée, ça ne devrait donc pas trop tarder). A part ça, je continue à suivre des cours au CNAM mais je n’ai pas encore décidé de la spécialité du diplôme d’ingénieur que je voulais tenter de valider. Je me donne donc encore un an pour arrêter mon choix.

Côté auto-hébergement, peu d’évolutions récentes, si ce n’est que mes quelques sites web hébergés sur ce serveur sont à présent accessible en HTTPS (avec un certificat auto-signé). L’accès en HTTP reste néanmoins possible pour ce blog et ma page de dev notamment.

Le logiciel libre n’est pas nécessairement un gage de liberté pour l’utilisateur

Le titre est un poil provocateur.

L’erreur que l’on fait tous plus ou moins, c’est de considérer le libre comme un gage de liberté. Se le dire, c’est prendre le risque de passer à côté d’un détail important. En effet, on peut se poser la question suivante : « Suis-je bien l’utilisateur qui bénéficie des avantages de la solution libre et/ou open source ? »

Clairement, il est impossible de répondre systématique à cette question par l’affirmative. Il faudrait lister quelques cas de figure :

Continue Reading »

Trouver une actualité dominante -> préparer la collecte

Comme expliqué précédemment, le projet sur lequel je travaille en ce moment repose sur une collecte préalable de données. l’analyse permettant de trouver l’actualité dominante est réalisée dans un second temps.

Si vous voulez essayer, il vous faudra donc des données sur lesquelles vous appuyer. Pour mettre en place la collecte des données depuis votre machine, vous pouvez suivre ce qui suit. La description que j’indique est valable pour un système GNU/Linux (description pour Ubuntu). Dans le principe, ce sera comparable sur d’autres systèmes.

Installation des paquets nécessaires :
sudo apt-get install python3 python3-psycopg2 postgresql

Les fichiers dont vous aurez besoin par la suite se trouvent à l’adresse suivante :
http://dev.sujets-libres.fr/sources/FluxRSS/

Copiez l’ensemble des fichiers sur votre machine dans un nouveau dossier.
Ouvrez un terminal et placez-vous dans ce dossier (toutes les commandes qui vont suivre seront à lancer depuis cet emplacement).

Les scripts tels qu’il sont faits se connectent à la base de données avec l’utilisateur par défaut de postgresql (postgres). Vous pouvez bien entendu utiliser n’importe quel autre utilisateur mais il ne faudra pas oublier de modifier le fichier identifiantsBDD.txt avant. Pour la suite, j’utiliserai l’utilisateur par défaut de postgresql. Commencez par vous loguer :
sudo su postgres

Avant toute chose, il faut créer la base vide :
createdb fluxRSS

Importer ensuite le schéma de la base :
psql fluxRSS < db-schema.sql

Il n'y a maintenant plus besoin d'être logué avec l'utilisateur postgres. Vous pouvez donc taper :
exit

A ce stade, votre base est vide. Il faut donc dans un premier temps lui indiquer quels flux suivre. Avec votre utilisateur habituel, exécutez ensuite le script d'ajout de nouveau flux et suivez les indications :
python3 AjoutFlux.py

(exemple de flux : http://rss.lemonde.fr/c/205/f/3050/index.rss)

Il est maintenant possible de faire lancer la collecte par la commande suivante :
python3 lectureEtEnregistrementFluxRSS.py

Si la collecte est lancée plusieurs fois, seules les nouvelles entrées du flux sont enregistrées dans la base (lorsqu'un titre existe déjà, il n'y a pas de nouvel enregistrement).

Lancer l'opération manuellement reste une opération fastidieuse. Il est donc intéressant d'automatiser cette tâche. Si la collecte est effectuée localement, il peut être envisageable de lancer le script au démarrage de l'ordinateur. Pour ma part, j'ai opté pour un tâche cron lancée périodiquement toutes les deux heures :
42 */2 * * * cd /home/monUser/cheminVersLesFichiersDuProjet/ && python3 lectureEtEnregistrementFluxRSS.py

Je suis toujours en train de travailler sur l'analyse. Le fichier AnalyseFlux.py est donné à titre indicatif mais ce qu'il retourne n'est pas encore vraiment satisfaisant.

3 Comments

Trouver l’actualité dominante sur une période donnée

J’ai précédemment évoqué vaguement le projet sur lequel je travaille en ce moment. Cette fois ci, je vais expliquer le truc plus concrètement.

Le problème à résoudre

La génération de mes parents et plus encore celle de mes grand parents savaient globalement mieux utiliser leur mémoire que nos générations. A leur époque, il était tout à fait normal de connaître les noms de l’ensemble des départements français, et ce, en primaire. Je me rappel avoir vu en vidéo une conférence de Michel Serres il y a quelques années traitant des grandes étapes de l’évolution de l’homme. Pour faire court, à chaque fois que l’homme a perdu (un peu) une faculté, c’est parce qu’il a gagné quelque chose de plus intéressant ailleurs. Aujourd’hui, nos machines disposent de capacités de mémorisation (et de calcul) largement supérieures à celles du cerveau humain. Tout naturellement, notre génération a moins besoin de faire travailler sa mémoire et par la force des choses, cette mémoire est moins bonne.

Pour preuve, lorsque je demande dans mon entourage s’ils se souviennent de l’actualité qui les a marqué disons… il y a 3 mois, je n’obtiens pas beaucoup de réponses positives. Précision importante, la notion d’information « importante » est fixée par celui à qui on pose la question. Ainsi, cette notion variera entre un amateur de sport collectifs et une personne suivant l’actualité internationale ou tout autre sujet.

Ce mouvement est inéluctable, alors autant l’accompagner. Je me suis donc demandé par quel moyen il était possible pour chacun de retrouver les actualités qui de son point de vue on eu de l’importance sur une période donnée.

Continue Reading »

Quelques nouvelles en cette fin juin 2014

Je me concentre actuellement sur l’apprentissage de python. Avec un petit mois de recul (et deux petites applications fonctionnelles) sur ce langage, je peux déjà dire que j’aime assez.

J’ai donc décidé de m’appuyer dessus pour développer mon prochain projet. Pour le moment, ce n’est qu’une idée qui traîne dans ma tête et je ne sais pas encore si elle peut présenter un réel intérêt. Ceci dit, lorsque j’en parle autour de moi, cette idée suscite une certaine curiosité, ce qui est plutôt encourageant. Afin de lever le doute, je réalise donc une première implémentation de cette idée. Cela ne devrait pas prendre trop de temps. Je décrirai l’idée ultérieurement dès que j’aurai quelque chose à présenter.

Pour le reste, je ne travaille pas trop sur le clone de Zelda en ce moment. J’y reviendrai plus tard.

Le jeu de la vie en python

Je débute le python en ce moment et je réalise de petites applications, histoire de me familiariser avec ce langage.

Après avoir achevé une bataille navale rudimentaire (en mode texte et en réseau), je me suis lancé dans l’implémentation du jeu de la vie (pour plus d’infos –> Jeu_de_la_vie (wikipedia)), dans le but de me familiariser avec tkinter.

C’est assez basique mais ça fonctionne.

jeuDeLaVie.png

Mon script est disponible par le lien suivant : JeuDeLaVie

7 Comments

Vie privée, internet, … tout ça … pfff

Je pense que je viens de comprendre quelque chose récemment. Une chose qui m’avait échappé jusqu’alors.

J’ai pris conscience il y a quelques années déjà que le respect de la vie privée était un enjeu important, notamment sur internet en général et sur le web en particulier. Ce n’est pas par pur intérêt technique que j’ai décidé d’auto-héberger mes services internet avec un maximum de logiciels libres. Je pense que ça fait partie des moyens susceptibles de renforcer le respect de ma vie privée sur internet.

Ceci dit, l’auto-hébergement ne protège pas des atteinte à la vie privée lorsqu’on surf sur internet. De nombreux sites collectent des infos et tracent de plus en plus finement leurs visiteurs. Ainsi, certains comme Facebook tracent leurs utilisateurs y compris lorsqu’ils ne sont plus sur le site.
Il existe quand même des moyens pour se prémunir au moins partiellement des effets de ces pratiques. On peut citer le « Do Not Track » à activer dans son navigateur (de moins en moins respecté quand même), des modules à ajouter au navigateur (j’utilise adblock et RequestPolicy sous Firefox), ou simplement la suppression des cookies à la fin de la session.

Bon, ok, tout ceci est connu, vu, revu et rabâché.
Je parle parfois des atteintes à la vie privée sur internet à mon entourage. Je constate que ces problématiques sont généralement plutôt comprises quand on les exposent et pourtant, ça s’arrête là. Dans les faits, le retour à la réalité se fait sans le moindre changement.
J’en ai sans doute parlé à plusieurs dizaines de personnes et rien ne bouge. C’est même souvent de pire en pire. Les services ou logiciels peu respectueux des libertés semblent plus séduisant que ce que j’ai à en dire.

J’ai plusieurs hypothèse pour expliquer ça :

  • Les gens ne se sentent pas concernées individuellement.
  • Ils sont devenus fatalistes et pensent qu’on a quoi qu’il arrive déjà perdu.
  • Ils pensent naïvement que puisqu’ils n’ont rien cacher, il n’y a pas de problème pour tout montrer à qui le veut. Ça c’est juste un raisonnement fallacieux.
  • Ils ont pris goût au confort de tout ces services qui leur veulent du bien.

Une nouvelle hypothèse m’est venue récemment :

  • Les gens n’ont pas (ou plus) le moindre respect pour leur propre vie privée.

Je pense que cette hypothèse est la conséquence de toutes les autres réunies et j’ai l’impression que finalement, c’est la bonne :( .
Cela me fait dire que quoi que l’on propose comme solution technique pour protéger la vie privée, cela n’aura qu’un impact limité, voir très limité, puisqu’on ne cible pas le bon problème.
Quand plus de gens auront pris conscience que leur vie privée a une valeur inestimable, ils seront plus demandeurs de solutions techniques pour la protéger.
Mon constat peut sembler fataliste mais je ne désespère pas totalement…

1 Comment

Pourquoi « faire » des logiciels libres ?

Voici une question récurrente, parmi d’autres, au sujet des logiciels libres :

Pourquoi utiliser des logiciels libres ?

C’est une question intéressante (de mon point de vue) et qui s’adresse à tout un chacun, utilisateur averti ou non. Sur le net (et IRL), une multitude de personnes tentent d’y répondre. Généralement, ces questions à propos des logiciels libres se placent d’un point de vue utilisateur, ce qui est logique puisqu’il y a statistiquement plus d’utilisateurs que de développeurs.

A l’autre bout, d’un point de vue « développeur », la question de la pertinence de ce choix me semble nettement moins abordée. Je vais tenter donc de répondre à la question suivante :

Pourquoi est-ce que je fais des logiciels libres ?

Je précise que mon point de vue est celui que j’adopte dans un cadre personnel (projets perso, sur mon temps libre).
Dans mon cadre professionnel, je n’ai pas la liberté de choisir la licence sous laquelle je place mes softs.

J’utilise des licences libres pour plusieurs raisons

Parce que je suis avant tout un utilisateur de logiciels libres

Il existe des logiciels libres pour presque tout et je n’utilise presque que cela dans mon environnement personnel depuis plusieurs années. Je profite de la qualité des logiciels libres et du travail souvent bénévole de toute une communauté sans que rien ne me soit exigé en retour. Ce sont des raisons éthiques qui m’ont amenées à faire ce choix (ce serait ma réponse principale à la question « Pourquoi utilisez-vous des logiciels libres ? »). Il ne serait pas normal que je profite de ce système pour produire du logiciel privateur.

Parce que j’ai appris énormément grâce au libre accès à l’information

L’informatique est un domaine où étudier signifie aller au delà de ce que le cours nous propose. 50 heures de cours théoriques accompagnés de quelques TD ou TP ne suffisent pas pour maîtriser réellement un langage de programmation par exemple. L’intérêt des cours classiques est de donner des clés permettant d’approfondir le domaine étudié. Je suis donc régulièrement amené à consulter des ressources que je trouve sur internet lorsque je veux aller plus loin sur un sujet. Ce que j’ai appris, je le doit en grande partie à celles et ceux qui ont choisit de partager leurs connaissances ou leurs travaux plutôt que le contraire. A mon tour, j’espère pouvoir aider d’une manière ou d’une autre et faire du logiciel libre me semble être un bon moyen pour y parvenir.

Parce que d’un point de vue pragmatique, on apprend de ses erreurs

Et un bon moyen pour voir et comprendre ses erreur, c’est de commencer par partager son travail et le présenter à ses pairs plus expérimentés. Un logiciel peut fonctionner convenablement en apparence mais comporter des bugs, voir être très mal conçu. J’ai plusieurs fois eu des retours assez critiques sur mes applications de la part de développeur plus chevronnés. Ces retours sont extrêmement utiles et m’ont aidé à progresser. A l’inverse, j’ai tendance à penser qu’une part de ceux qui ne partagent pas les sources de leurs programmes le font par refus ou peur des critiques négatives.
Je ne me considère toujours pas comme un bon développeur mais en montrant mes sources, je progresse, c’est certain.

Parce que je veux protéger mes applications

Je souhaite produire des logiciels respectueux des utilisateurs, notamment par rapport à leur vie privée. Comme expliqué précédemment, en tant qu’utilisateur, je souhaite pouvoir faire confiance aux logiciels que j’utilise. C’est une relation de confiance et pour établir cette confiance je souhaite accorder des droits que je trouve juste à l’utilisateur. Je veux qu’il puisse :

  • utiliser mes logiciels comme il l’entend.
  • voir comment ils fonctionnent.
  • les modifier s’il le désire.
  • en redistribuer des copies, mon seul souhait étant qu’il accorde alors à son tour les mêmes droits sur la nouvelle version.

Ce sont les quatre libertés fondamentales du logiciel libre. Ces libertés permettent de protéger le logiciel des abus dont il pourrait faire l’objet. Je considérerais comme abusif que le fruit de mon travail soit réutilisé en ne respectant pas ces termes.
Note important, c’est mon logiciel et non moi directement que je souhaite protéger en lui appliquant une licence libre. Je pense qu’une fois que l’on a compris cela, on comprend l’une des grosses motivations des développeurs de logiciels libres.

Réponse aux questions qui m’ont parfois été posées

Pourquoi prendre sur mon temps libre pour écrire des programme ?

Ce n’est pas une question propre à l’écriture des logiciels libres mais y répondre permet peut être aussi mieux de comprendre le reste. C’est pour moi quelque chose du même ordre que faire un sport collectif, du bricolage ou de se plonger avec plaisir dans la lecture. Je ne considère pas cela comme du travail car je le fait de mon propre chef et par plaisir. Le développement est quelque chose d’à la fois passionnant et stimulant. Pour que cela reste agréable, je ne m’impose pas de contrainte de temps. Je m’astreint seulement à terminer ce que je commence.

Et l’argent ? Tout travail mérite salaire, non ?

Comme expliqué précédemment, je ne considère pas cette activité comme un travail à proprement parler (même si j’emploie parfois ce terme abusivement). C’est une passion qui mobilise parfois certaines compétences techniques mais qui a vocation à être partagée et la plus ouverte possible.
En contre partie, il est évident que dans un cadre personnel je ne vais pas passer du temps sur des sujets pour lesquels je ne trouve pas d’intérêt personnel. Il est par exemple tout à fait exclu que de mon propre chef, j’apprenne à utiliser une techno propriétaire sur mon temps libre.

Conclusion

Voilà donc quelques unes de mes réponses à cette question.
Dans la mesure du possible, je choisis donc de placer mes logiciels sous licence GPLv3.
Quelques liens au sujet de cette licence :
GPLv3 (en)
GPLv3 (fr)
http://www.gnu.org/licenses/quick-guide-gplv3.fr.html