PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Hobbestigrou : Bpython

jeudi 17 janvier 2013 à 02:00

Introduction

J'ai déjà présenté un repl en Perl, il y a quelques temps de ça PerlConsole, développé par Sukria, je fais pas mal de Python maintenant, j'en ai donc cherché pour ce langage. L'interpréteur par défaut Python offre un repl, mais je le trouve un peu rudimentaire.

Installation

Pour une distribution Debian et ses dérivées il est packagé, et si vous utiliser l'interprète du système il suffit donc d'utiliser apt-get:

sudo apt-get install bpython

J'ai pour habitude d'utiliser virtualenv qui est vraiment génial, pour lequel je ferai un article plus tard, dans ce cas, il est aussi bien de l'installer par projet, déplacer vous dans le répertoire bin à la racine de votre projet après l'avoir activé et utiliser pip:

source bin/activate
cd Project/bin
./pip install bpython

Utilisation

L'utilisation est vraiment très simple et agréable. Il n'y pas grand chose à connaitre pour l'utiliser, et un récapitulatif des commandes et lister en bas de l'écran. Lorsque vous lancez bpython et que vous commencer à taper le nom d'une méthode vous pourrez bénéficier de la complétion via la tabulation, il va ouvrir une bulle avec les différentes fonctions matchées, ce qui est intéressant c'est qu'il affiche aussi la documentation de la dite fonctions, par exemple:

bpython
>>> set(
┌──────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ set: (obj, ...)                                                                                      │
│ x.__init__(...) initializes x; see help(type(x)) for signature                                       │
└──────────────────────────────────────────────────────────────────────────────────────────────────────┘
>>> date = datetime.datetime.now()
>>> date.
┌──────────────────────────────────────────────────────────────────────────────────────────────────────┐
│astimezone       combine          ctime            date             day              dst              │
│fromordinal      fromtimestamp    hour             isocalendar      isoformat        isoweekday       │
│max              microsecond      min              minute           month            now              │
│replace          resolution       second           strftime         strptime         time             │
│timetuple        timetz           today            toordinal        tzinfo           tzname           │
│utcfromtimestamp utcnow           utcoffset        utctimetuple     weekday          year             │
└──────────────────────────────────────────────────────────────────────────────────────────────────────┘

Ce qui est très intéressant. Ensuite l'autre aspect que je trouve utile, c'est le fait de pouvoir paster directement via une touche ce qui est affiché à l'écran avec F8, il utilise bpaste.net, le pasteur de bpython. Il est aussi possible de nettoyer ce qui est à l'écran avec la touche ctrl+r. La touche F2 permet d'afficher le source d'un module autre point très fort:

bpython
>>> import json
>>> json
r"""JSON (JavaScript Object Notation)  is a subset of
JavaScript syntax (ECMA-262 3rd edition) used as a lightweight data
interchange format.

:mod:`json` exposes an API familiar to users of the standard library
:mod:`marshal` and :mod:`pickle` modules. It is the externally maintained
version of the :mod:`json` library contained in Python 2.6, but maintains
compatibility with Python 2.4 and Python 2.5 and (currently) has
significant performance advantages, even without using the optional C
extension for speedups.

Taper le nom du module appuyer sur F2 un pager s'ouvre avec le code source. Je n'ai bien-sûr pas tout pasté dans l'exemple ci-dessus. En revanche, ça ne fonctionne pas pour les fonctions builtin.

Un autre aspect très bien offert par bpython et de pouvoir sauver ce qui est à l'écran dans un fichier, par exemple:

bpython
>>> import datetime
>>> date = datetime.datetime.now()
>>> print date.hour
23

Il est alors possible de faire ctrl+s pour sauver ces instructions dans un fichier, ce qui va donner:

import datetime
date = datetime.datetime.now()
print date.hour
# OUT: 23

On peut constater des commentaires avec la valeur affichée par le print. Cette fonctionnalité peut s'avérer très utile, lorsqu'on tests des choses, dont on pourrait avoir besoin plus tard.

Conclusion

Un projet très intéressant moins puissant que ipython mais plus userfriendly est très largement suffisant, et beaucoup plus agréable que celui par défaut. Je le recommande vivement à tout développeur Python, qui devrait toujours avoir un terminal d'ouvert sur un repl pour pouvoir tester rapidement des petits bout de codes, fonctions ou méthodes. Je pense que ce petit repl change vraiment la vie d'un développeur.

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

Philippe Scoffoni : Logiciel libre et analyse de la valeur

mercredi 16 janvier 2013 à 18:41

valeur mutualisation fork Le concept d’analyse de la valeur date d’après guerre. Appliqué au développement d’un logiciel, il offre une façon pertinente d’analyser les évolutions que l’on souhaite apporter à ce dernier. Mais son utilisation reste souvent marginale en informatique. Pourtant, c’est une bonne façon d’éviter les “faux besoins” et d’optimiser les coûts d’un projet. Une méthode qui appliquée aux logiciels libres permettrait peut-être de limiter les tentations de fork, développement de logiciels déjà existants, etc…

Analyse de la valeur

Née à la fin de la seconde guerre mondiale et formalisée par Lawrence Delos Miles, ingénieur à la General Electric, l’analyse de la valeur selon l’AFNOR se définit comme :

Une méthode de compétitivité, organisée et créative, visant à la satisfaction du besoin de l’utilisateur, par une démarche spécifique de conception, à la fois fonctionnelle, économique et pluridisciplinaire. La valeur d’un produit est une grandeur qui croit lorsque la satisfaction du besoin augmente et/ou que le coût du produit diminue. La valeur peut donc être considérée comme le rapport entre l’aptitude aux fonctions divisée par le coût des solutions.

Appliqué à l’informatique, cela nous donne une méthode de conception qui met en balance les services rendus par un produit, une application ou une prestation, avec ses coûts initiaux : la valeur étant mesurée au regard du niveau de satisfaction client ou en fonction de la réduction de l’investissement.

Il s’agit donc d’aller au-delà de la simple spécification des fonctionnalités et d’analyser pour chacune la valeur qu’elle apporte au projet au regard de son coût. Il ne s’agit d’ailleurs pas que de réduction de coût, mais bien aussi d’une logique d’amélioration des services fournis aux utilisateurs.

Application au domaine du logiciel libre

Il ne faut pas oublier non plus que l’analyse de la valeur est née d’une nécessité : résoudre un problème de pénurie de matériaux nobles. Le temps est une denrée rare et coûteuse. Le logiciel libre a réussi ce tour de force de créer des quantités de logiciels grâce au temps consacré par les contributeurs. Un temps et un travail parfois non rémunérés.

En reprenant le concept de l’analyse de la valeur et en l’appliquant systématiquement au développement des logiciels libres, je me demande s’il n’y aurait pas là un facteur d’amélioration de l’efficacité globale du système.

Prenons un exemple volontairement simpliste pour illustrer le principe. Je souhaite développer un nouveau webmail. Déjà on peut se poser la question de la valeur globale de ce projet. Ce type de logiciel n’existe-t-il pas déjà ? Si oui quelle est la valeur supplémentaire que vont apporter les fonctionnalités que j’ai imaginées et pour quel coût ? Sur un projet de ce type, il y a fort à parier qu’il n’y ait guère d’intérêt à se lancer dans un développement en partant de zéro.

C’est l’identification des fonctionnalités ayant une valeur significative qui va donner la réponse. Si ma valeur ajoutée se situe par exemple sur la gestion des emails et d’une fonction à la Gmail de tri “intelligent”, j’ai probablement intérêt à contribuer à un projet de webmail pour lui apporter cette nouvelle fonction. Reste à choisir le webmail en question et là ce sont probablement des considérations de proximité technique et de langage de développement qui vont guider le choix sans oublier l’ouverture de la communauté pour accepter la contribution…

Si ce type de raisonnement était plus souvent appliqué dans le monde du logiciel libre et si, il était considéré comme “honteux” de développer ce qui existe déjà, il est probable qu’il y aurait moins de doublons et dispersion. Mais voilà, cela implique aussi de laisser son ego de côté pour n’être qu’un “simple” contributeur et pas le leader solitaire d’un projet.

Alors, si je devais donner un conseil à des développeurs désireux de créer un logiciel libre, je leur dirais qu’ils se posent bien la question de la valeur de ce qu’ils s’apprêtent à faire. Le temps dans le monde du logiciel libre est un bien précieux, alors prenons le temps de réfléchir à ce que nous allons faire. Il est déjà possible de faire tant de choses avec ce qui existe et qui ne demande qu’à être amélioré et complété.

Crédit image certains droits réservés par nyuhuhuu


Réagir à cet article

Article original écrit par Philippe Scoffoni le 16/01/2013. | Lien direct vers cet article

Cette création est mise à disposition sous un contrat Creative Commons BY à l'exception des images qui l'illustrent (celles-ci demeurent placées sous leur mention légale d'origine).

.

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

Articles similaires

Ploum : La conséquence inattendue du libre : la politique

mercredi 16 janvier 2013 à 17:12

open_lock

Dernièrement, j’ai partagé avec vous trois éléments que je trouve cruciaux pour l’informatique de demain et qui, je pense, ont été très mal négociés par le monde du logiciel libre. Tellement mal négociés que je doute que le logiciel libre puisse jamais rattraper son retard. Il s’agit de l’expérience utilisateur, de la décentralisation et du respect de la vie privée.

À certains égards, les libristes comme moi font de plus en plus penser à une tribu de Papous vivant à l’écart, n’ayant que très peu de contacts avec le reste du monde. Ainsi, à l’heure où plus personne n’utilise Flash, le projet prioritaire de la Free Software Foundation reste l’implémentation d’un lecteur Flash libre. Le FOSDEM, grand messe des libristes, possède des salles réservées aux discussions des développeurs ADA ou Smalltalk mais aucune n’a pour sujet les réseaux sociaux libres ou HTML5 et Javascript.

Soyons réalistes : si le libre est partout, on cherchera à trouver plus d’une poignée de produit grand public et libres au sens de la FSF. Les plus grands succès du libre comme Android et, dans une moindre mesure, Ubuntu, sont rejetés des puristes.

Le libre devrait-il toujours s’associer avec le propriétaire pour réussir ? A-t-il donc échoué ? Est-il mort ? Faut-il renier toutes ces années ?

Non car, pour réussir, le propriétaire n’est-il pas désormais obligé de s’associer avec le libre ? Les deux ne sont-ils pas intrinsèquement liés ? La pureté est-elle essentielle au succès ?

Mais au-delà de l’informatique, le libre a étendu son influence dans un domaine où peu l’attendaient : la politique. Si le libre n’a pas su gérer techniquement la décentralisation et la vie privée, les idées sous-jacentes ont fait leur chemin dans la conscience collective. Au point d’envahir la place publique.

Dernièrement, les chemins de fer belges ont diffusé par accident les données personnelles de plus d’un million d’utilisateurs, prenant complètement au dépourvu une classe politique ne sachant même pas s’il s’agissait d’un fait grave ou pas. Ce sont les citoyens qui ont répondus les premiers, qui ont géré la crise et qui ont mis en place l’information nécessaire. Là où le libre n’a pas su apporter une solution technique, il a néanmoins préparé le terrain pour que les citoyens puissent faire face.

Si beaucoup de sociétés privées ne voient que le court terme ou le prix, de plus en plus d’administrations découvrent la nécessité de l’intéropérabilité et financent des projets comme LibreOffice. Le modèle même de collaboration du libre s’invite de plus en plus souvent au sein des collectivités, afin de mettre en commun les ressources comme on peut le voir notamment avec CommunesPlone.

Le libre n’a pas su tenir toutes ses promesses techniques. Mais il a finalement apporté beaucoup plus que de la technique. Il change le monde. Son influence se fait sentir dans les conférences et jusque dans les partis politiques existants (citons Ecolo en Belgique, chez qui c’est particulièrement visible). Cet univers libriste a même été le terreau d’un nouveau mouvement politique : le Parti Pirate.

Car si tous les libristes sont loin d’adhérer à la philosophie du Parti Pirate, force est de constater que celui-ci rejoint souvent les préoccupations du libre : liberté individuelle, respect de la vie privée et transparence de la politique, le code source de notre société. À tel point que beaucoup de pirates passent au logiciel libre suite à leur engagement politique !

On pourrait y voir une idéologie libriste à l’œuvre. J’y vois surtout un pragmatisme. Une génération a découvert, à travers tous les projets libres, les bienfaits de la collaboration à l’échelle planétaire, l’efficacité de la gestion transparente. Une génération biberonnée à la mixité culturelle, maternée au débat technique et à la remise en question permanente sans a priori de race, de sexe, d’apparence physique.

Cette génération qui ouvre les yeux et qui se dit : « Si on a réussi à le faire pour des projets techniquement ultra-complexes, pourquoi est-ce que cela ne marcherait pas avec la gestion de la chose publique ? ».

Peut-être que la plus grande conséquence du libre n’est pas à chercher dans les milliards de lignes de code ni dans les millions de pages Wikipédia mais là, parmi ceux qui, ayant fait l’expérience de l’ouverture, de la transparence et de l’égalité ne peuvent plus concevoir un état obscur, complexe et trop souvent inique.

Peut-être que le libre est avant tout un modèle de société, une école de vie.

 

Photo par Lyudagreen.

PS: Comme mon blog prend une connotation de plus en plus politique, certains lecteurs du Planet Libre se plaignent, par mails ou dans les commentaires, qu’il s’agit de contenu qu’ils n’ont pas envie de lire sur le Planet. Bien que je me souvienne pas avoir forcé qui que ce soit à me lire, je ne souhaite pas entrer dans ce débat à chacun de mes billets et j’ai donc demandé la suppression de mon blog du Planet Libre. J’invite ceux qui souhaitent continuer à me lire à me suivre directement par RSS ou Twitter.

 

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

Fitzdsl Blog : Migrez vos Foreman et dormez sur vos deux oreilles.

mercredi 16 janvier 2013 à 16:18

Je viens de migrer Foreman pour mettre la version 1.1 en production (je reviendrais sur les nouvelles fonctionnalités de la version 1.1).

Un des points les plus important que je teste quand je mets Foreman à jour, c’est la non regression de l’output de l’ENC. C’est à dire, je vérifie que la nouvelle version de Foreman envoie le même YAML au Puppet Master pendant ENC lookup. Pour me faciliter la vie, j’ai écris un petit script ruby (en partant du script d’external node controler de Foreman) qui va comparer les réponses en YAML entre deux instances de Foreman (ex: une instance de production et une instance de QA).

Afin de supporter les classes paramétrées, Foreman à changé un peu la structure du YAML mais le script supporte ce changement.
Vous pouvez le retrouver sur mon Github. Vous avez juste à modifier les deux URLs de vos Foreman de Production et de DEV ainsi que vos identifiants et mot de passe.

Le script s’arrête automatiquement si il trouve une définition de node différente entre le Foreman de dev et celui de production. Cet outils me permet donc d’être plus tranquile quand je fais une mise à jour majeure de mes Foreman !

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

Jeoffrey Bauvin : Alias.sh : Partagez vos alias

mercredi 16 janvier 2013 à 12:30

Levez la main si vous vous reconnaissez : vous avez sur votre laptop une quantité faramineuse d'alias Linux, qui facilitent grandement votre douce vie au sein de votre terminal favori. Seulement voilà, sauvegarder son fichier .bash_aliases, c'est lourd, et peu pratique. Pire, vous vous retrouvez sur votre PC de boulot, et là, plus aucun alias.

Moi moi moi

Voici un service Web que je viens de découvrir, qui se nomme Alias.sh. Ce service, comme son nom l'indique est une plateforme de partage et de synchronisation d'alias de commandes !

Alias.sh

Pour l'instant, il n'y a pas énormément d'alias, mais ça grimpe vite ! Et chose pratique, vous pouvez ajouter les vôtres, les synchroniser, et découvrir ceux des autres utilisateurs. Par exemple, mes alias sont disponibles à cette adresse.

Une fois inscrit sur le site, vous pourrez récupérer vos alias en local via cette commande :

wget -q -O - "$@" https://alias.sh/user/415/alias >> ~/.bash_aliases

415 étant mon ID utilisateur ;).

Voici également un alias permettant de mettre à jour votre fichier d'alias :

alias update-aliases="wget -q -O - \\"$@\\" https://alias.sh/user/$ALIAS_SH_USER_ID/alias > ~/.bash_aliases && source ~/.bash_aliases"

N'oubliez pas de modifier votre fichier .bashrc en y ajoutant cette ligne :

ALIAS_SH_USER_ID=415

Bref, un petit service bien pratique ! N'hésitez pas à partager vos alias !

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