Syndiquer le contenu
Mis à jour : il y a 18 heures 22 min

Revue de presse de l'April pour la semaine 38 de l'année 2014

22 septembre, 2014 - 17:17

La revue de presse de l'April est régulièrement éditée par les membres de l'association. Elle couvre l'actualité de la presse en ligne, liée au logiciel libre. Il s'agit donc d'une sélection d'articles de presse et non de prises de position de l'association de promotion et de défense du logiciel libre.

Sommaire

[Next INpact] Les consommateurs devront être avertis de la présence de DRM

Par Marc Rees, le vendredi 19 septembre 2014. Extrait:

Outre l’encadrement du droit de rétractation, le décret publié ce matin au Journal officiel contient une autre disposition importante en matière de droit à la consommation. Elle vise les questions des verrous numériques et de l’interopérabilité, mettant sur le dos des professionnels de nouvelles obligations.

Lien vers l'article original: http://www.nextinpact.com/news/89976-les-consommateurs-devront-etre-avertis-presence-drm.htm

Voir aussi:

[JDN] E-commerce: solutions open source vs solutions propriétaires: 5 questions a se poser avant de faire son choix

Par Yannick Maingot, le vendredi 19 septembre 2014. Extrait:

Dans le monde «impitoyable» des technologies e-commerce, s’affrontent depuis toujours deux philosophies: celle des solutions technologiques reposant sur le modèle Open Source et celle des éditeurs de solutions propriétaires.

Lien vers l'article original: http://www.journaldunet.com/ebusiness/expert/58489/e-commerce---solutions-open-source-vs-solutions-proprietaires---5-questions-a-se-poser-avant-de-faire-son-choix.shtml

Et aussi:

[Next INpact] Le projet de loi sur le terrorisme adopté par les députés: notre compte-rendu

Par Marc Rees, le jeudi 18 septembre 2014. Extrait:

Les députés viennent d'adopter le projet de loi sur le terrorisme après les débats que vous avez pu suivre ces derniers jours sur ce flux ou en suivant le hashtag #PJLterrorisme sur Twitter. Voici notre compte-rendu.

Lien vers l'article original: http://www.nextinpact.com/news/89946-projet-loi-sur-terrorisme-en-temps-reel-articles-deja-votes.htm

Et aussi:

Voir aussi:

[Le Monde Informatique] FixMyDocuments veut aider les sites publics à adopter les formats ouverts

Par Loek Essers, le jeudi 18 septembre 2014. Extrait:

A travers sa campagne FixMyDocuments, le groupement d'intérêt Open Forum Europe dit vouloir aider les administrations à utiliser les formats de documents ouverts sur leurs sites web. Neelie Kroes a apporté son soutien à l'initiative, mais on ne sait pas si ses successeurs lui emboîteront le pas.

Lien vers l'article original: http://www.lemondeinformatique.fr/actualites/lire-fixmydocuments-veut-aider-les-sites-publics-a-adopter-les-formats-ouverts-58665.html

Et aussi:

Voir aussi:

[La gazette.fr] L'Etat entrepreneur ouvert, nouvel avatar du numérique au service de la modernisation

Par Sabine Blanc, le jeudi 18 septembre 2014. Extrait:

Ce mercredi 17 septembre, le secrétaire d’Etat en charge de la Modernisation de l’Etat et de la Simplification a présenté une communication synthétisant sa stratégie en terme de numérique. Elle s’inspire du monde de l’entreprise et la donnée y joue un rôle pivot.

Lien vers l'article original: http://www.lagazettedescommunes.com/270157/letat-entrepreneur-ouvert-nouvel-avatar-du-numerique-au-service-de-la-modernisation

Et aussi:

[Le Monde.fr] Le cryptoanarchiste allemand et l'ancien cadre du CAC 40 alliés contre la NSA

Par la rédaction, le mardi 16 septembre 2014. Extrait:

Le projet «Pretty Easy Privacy» veut faire des communications chiffrées un standard utilisable par M. et Mme Tout-le-Monde, aussi bien dans l'entreprise que dans le cadre privé.

Lien vers l'article original: http://www.lemonde.fr/pixels/article/2014/09/16/le-cryptoanarchiste-allemand-et-l-ancien-cadre-du-cac-40-allies-contre-la-nsa_4486314_4408996.html

Et aussi:

[Framablog] Le combat pour Internet est un combat pour des personnes

Par Cory Doctorow (transcription Marie-Alice et traduction Framalang), le lundi 15 septembre 2014. Extrait:

Bon, il y a pas mal de chances que les personnes qui assistent à des événements comme celui-ci gagnent leur vie avec une activité en ligne et même si vous ne gagnez pas votre vie en ligne aujourd’hui, vous le ferez probablement demain, parce que tout ce que nous faisons aujourd’hui implique Internet et Internet sera nécessaire pour tout ce que nous ferons demain.

Lien vers l'article original: http://www.framablog.org/index.php/post/2014/09/14/Le-combat-pour-Internet-pour-des-personnes

Et aussi:

Télécharger ce contenu au format Epub

Lire les commentaires

Revue des techniques de programmation en shell

22 septembre, 2014 - 09:36

L'été est fini, c'est la rentrée ! Pour se remettre en forme, rien de tel qu'une revue des techniques de programmation en shell — ces techniques sont pour le shell de Bourne /bin/sh mais peuvent être utilisées avec les shells compatibles qui permettent parfois des solutions plus faciles.

Sommaire

Note: comme ce texte est déjà très long, je propose que ceux qui ont aussi des choses à dire sur ce sujet le fassent dans des dépêches supplémentaires.

Le dernier qui a fait ça chez nous est en train de sécher dans un faux plafond

Si vous souhaitez faire don de votre corps à un taxidermiste, utilisez l'une des techniques suivantes dans votre programme: les backquotes, la commande echo ou bien analysez la sortie de la commande ls.

Les backquotes, backticks ou contr'apostrophes

N'écrivez jamais

candidates=`awk '{print($2)}' /etc/fstab`

mais plutôt

candidates=$(awk '{print($2)}' /etc/fstab)

parce que c'est plus facile à lire, plus facile de présenter correctement une longue fonction, plus facile à emboiter, bref les backquotes sont une technologie obsolète.

À propos, il est souvent plus facile et plus lisible de définir une fonction auxiliaire:

list_mount_points() { awk ' /^#/||/^$/{next} {print($2)} ' /etc/fstab } candidates=$(list_mount_points)

Quand on a plus de place, c'est plus facile de mieux présenter son code, d'écrire un code plus robuste et le nom de la fonction décrit son rôle.

La commande echo

La fonction echo n'est utile que pour afficher des messages de diagnostic, si la fonction printf est disponible, il faut toujours préférer cette dernière, qui est plus puissante et plus facile à utiliser!

On peut par exemple imprimer des codes de caractère arbitraires:

TAB=$(printf '\t') CR=$(printf '\015')

et imprimer correctement toutes les variables

attrape_nigaud='Pan!\cPan!' printf '>>> %s <<<\n' "$attrape_nigaud" echo "$attrape_nigaud"

L'appel à printf est bien défini mais pas celui à echo qui produit Pan! sous Debian/Jessie mais Pan!\cPan! sous FreeBSD.

Rappelons la définition bien pratique de la fonction eprintf permettant d'écrire sur la sortie d'erreur standard :

eprintf() { >&2 printf "$@" } Analyse de la sortie de la commande ls

En bref la règle d'or est que la commande ls sert uniquement pour l'utilisation interactive du shell, dans le cas d'un script shell, on utilise soit le globbing soit la commande find en conjonction avec xargs.

La raison est que la commande ls est inutilisable dès que les fichiers contiennent des caractères exotiques. Il est inutilement difficile d'analyser correctement la sortie de ls et il est tellement facile d'utiliser un globbing:

for file in $(ls); do ← Exemple à ne pas suivre! printf '%s\n' "$file" done

est corrigé en

for file in *; do printf '%s\n' "$file" done

ou bien, pour des recherches plus compliquées:

NUL=$(printf '\000) find /path/to/dir -type d -name '* *' -print0 \ | while IFS="$NUL" read file; do printf '%s\n' "$file" done

L'information fournie par ls -l est facilement accessible avec stat.

Construction de la ligne de commande

Un problème analogue à celui de l'analyse la sortie de la commande ls est celui de la préparation de l'appel à une commande du type

utility -file file1 -file file2

La version vite-fait mal fait consiste à dire:

argv='' for file in *; do argv="$argv -file $file" ← Exemple à ne pas suivre done utility $argv

Évidemment, comme vos noms de fichiers utilisent un codage binaire où le ' ' représente 0 et le retour à la ligne représente 1, tout va de travers! La façon indestructible d'appeler utility est d'utiliser xargs -0 comme dans:

job_strategy() { local file for file in *; do printf '-file\000%s\000' "$file" done } job_strategy | xargs -0 utility Programmation structurée

Les débutants commettent souvent l'erreur consistant à vouloir répliquer les structures d'enregistrement (les struct de C ou C++, les record de Pascal) dans des variables du shell.

Mais ce n'est pas comme ça que ça marche!

Un bonne règle pour l'organisation des données dans un programme shell est de de n'utiliser les variables que pour les objets du monde UNIX: chemins de dossiers, chemins de fichiers, pids, uids, etc. Tout le reste, en particulier les structures d'enregistrement, va dans des fichiers ou des pipes, sous forme de table séparée par des | ­ou par des caractères ASCII US=$(printf '\037) pour ceux qui vivent au pays des gens utilisant | dans leurs données — et les traitements complexes sont effectués par des filtres. Si ça ne convient pas à votre programme, changez de langage, utilisez OCaml, Perl ou Python. Bien-sûr, tout le monde n'est pas de cet avis, en particulier, les maîtres de la programmation shell. Les maîtres ont une caractéristique importante qui démultiplie leur faculté de jugement bien au delà de ce que peut imaginer un débutant : ce sont des maîtres. Si vous êtes un débutant, ne vous laissez pas impressionner par les maîtres qui ont déjà écrit un interpréteur Scheme en sed et utilisent la commande printf pour insérer du code shell auto-modifiant dans le noyau Linux. N'hésitez pas à utiliser un autre langage pour résoudre votre problème.

Exemple du renommage de fichier

Illustrons cette technique sur l'exemple classique du renommage de fichier en masse. La procédure finale se décompose en

job_select | job_strategy | job_perform

On a trois fonctions correspondant aux étapes suivantes:

  1. job_select prépare une liste des fichiers à renommer ;
  2. job_strategy prépare une donnée tabulaire avec deux colonnes, l'une contenant le nom initial, l'autre le nouveau nom ;
  3. job_perform qui fait la modification finale.

On fait l'hypothèse paranoïaque que les caractères /n et | n'apparaîssent pas dans les noms de fichiers. Si ce n'est pas le cas, utilisez un vrai langage de programmation — mais les maîtres, eux, savent comment faire!

La fonction job_select ressemble typiquement à

job_select() { find /path/to/directory -name '*@!*' -print0 }

La commande job_strategy prépare un plan de travail:

job_strategy() { sed -e' h s/@!/--censored--/g H x s/\n/|/' }

Ceux qui n'ont pas encore écrit d'interpréteur Scheme en sed peuvent lire le walkthtough suivant, en anglais parceque je ne sais pas dire walkthrough ou pattern space en français et que personne n'en comprendrait les traductions:

h Save pattern space to hold space s/…/…/ Edit the name in the pattern space H Append the edited name to the hold space x Exchange hold and pattern space s/\n/|/ Replace the newline by a field separator

Bien-sûr on peut utiliser n'importe quel autre langage que sed pourvu qu'on soit capable d'écrire un filtre transformant

Quel @! de patron

en

Quel @! de patron|Quel --censored-- de patron

Finalement la procédure de renommage ressemble à

job_rename() { local oldname newname while IFS='|' read oldname newname; do if [ "$oldname" = "$newname" ]; then printf 'Skipping %s\n' "$oldname" >&2 else mv "$oldname" "$newname" fi done }

Oui je sais, on peut faire la même chose avec rename '/@!/--censored--/' * ou avec la commande @! de zsh, mais il s'agit d'un exemple un peu scolaire pour illustrer la méthode.

Un effet secondaire très appréciable de cette organisation est qu'on peut tester chaque morceau individuellement et faire du mocking facilement.

Ainsi, si au lieu d'exécuter job_select | job_strategy | job_perform à la fin de mon script j'utilise simplement job_select je peux m'assurer que la liste de fichiers est correcte, et avec job_select | job_strategy je peux vérifier que mon plan de travail est correct. Aussi, je peux créer des données artificielles pour tester job_strategy, par exemple

mock_issue_42_job_select() { cat <<'EOF' This is an example of pathological input causing issue 42 EOF } mock_issue_42_job_select | job_strategy Exemple de l'analyse de contenu de fichier vidéo

Un exemple plus amusant est celui de cette fonction, issue d'un programme de vidéothèque que j'ai écrit en shell.

# cinema_identify FILE # Identify the given file. # # Identifying the file causes a content index to be dumped on # stdout. This content index describes the content of the file. # There is two types of records, for Tracks and for Attachments. # # Track|INDEX|TYPE|CODEC # Attachment|INDEX|TYPE|SIZE|FILENAME # # An output example is: # # Track|0|video|V_MPEG4/ISO/AVC # Track|1|audio|A_VORBIS # Track|2|audio|A_VORBIS # Track|3|audio|A_VORBIS # Track|4|subtitles|S_VOBSUB # Track|5|subtitles|S_VOBSUB # Attachment|1|image/jpeg|93405|+POSTER # Attachment|2|text/plain|54|+INDEX cinema_identify() { env LANG=C mkvmerge --identify "$1" \ | sed -e ' s/'//g /^File/{ d } /^Track/{ s/ ID /|/ s/: /|/ s/ (\(.*\))/|/ } /^Attachment/{ s/ ID /|/ s/: type /|/ s/. size /|/ s/ bytes, file name /|/ }' }

Cette commande prend un fichier vidéo en argument et écrit sur la sortie un truc du genre

Track|0|video|V_MPEG4/ISO/AVC Track|1|audio|A_VORBIS Track|2|audio|A_VORBIS Track|3|audio|A_VORBIS Track|4|subtitles|S_VOBSUB Track|5|subtitles|S_VOBSUB Attachment|1|image/jpeg|93405|+POSTER Attachment|2|text/plain|54|+INDEX

Bien-sûr dans le vrai script, le script sed est dans un fichier auxiliaire pour, pour le test et la lisibilité.

Voici comment traiter de façon polymorphe cette sortie:

cinema_polymorph_example() { local field_type rest while IFS='|' read field_type rest; do IFS='|' set -- $rest case "$field_type" in Track) process_track "$@";; Attachment) process_attachment "$@";; *) >&2 printf 'Unknown field type %s\n' "$field_type"; exit;; esac done }

Dans cet exemple chaque ligne commençant par Track est traitée par process_track et chaque ligne commençant par Attachment est traitée par process_attachment.

Liste des commandes travaillant avec des données tabulaires

Voici une liste pêle-mêle de fonctions travaillant sur des données tabulaires.

awk(1) - pattern-directed scanning and processing language sed(1) - stream editor paste(1) - merge corresponding or subsequent lines of files join(1) - relational database operator comm(1) - select or reject lines common to two files cut(1) - cut out selected portions of each line of a file lam(1) - laminate files sort(1) - sort or merge records (lines) of text and binary files uniq(1) - report or filter out repeated lines in a file

Il faut bien noter que toutes ces fonctions n'utilisent pas forcément les mêmes options pour définir le délimiteur.

Introspection

Oui, vous lisez bien, le shell permet de faire l'introspection, de façon limitée. Par exemple, voyons comment définir une mini base de données de repositories git à sauvegarder:

project1_repo='/var/git/project1.git' project1_refs='master v1.0 v2.0' project2_repo='/var/git/project2.git' project2_refs='master v1.0 v2.0' gitdb_list() { set | sed -n -e 's/_repo$//p' } gitdb_tabular() { local repo dir refs gitdb_list | while read repo; do eval printf '%s|%s|%s\n' "$repo" "\$${repo}_dir" "\$${repo}_refs" done } gitdb_backup() { local repo dir refs gitdb_list | while read repo dir refs; do git bundle create "/backup/$repo" "$repo_dir" HEAD $refs done }

Dans ce cas particulier, je préfèrerais utiliser directement une base de données tabulaires, mais si pour une raison ou une autre on ne devait utiliser que des variables shell pour transmettre l'information alors cette technique est utilisable.

Télécharger ce contenu au format Epub

Lire les commentaires

Sortie de Paperwork 0.2

22 septembre, 2014 - 02:05

Paperwork est l'outil idéal pour les flemmards qui veulent numériser tous leurs documents papiers. Il s'agit d'une interface graphique conçue avec une idée en tête : "scan&forget" (« numériser et puis voilà fini »). Lire, trier et indexer les papiers est un travail de machine, pas d'humain.

Un peu plus d'un an après Paperwork 0.1, voici Paperwork 0.2. Cette nouvelle version apporte essentiellement des améliorations de l'interface graphique, ainsi que de l'ajout d'une fonctionnalité appelée "prédiction des labels" (histoire de pouvoir être encore plus flemmard lorsqu'on numérise ses documents).

Les principaux changements sont :

  • Recherche améliorée
  • L'apparence des labels a été améliorée
  • La barre de menu a été remplacée par un menu d'application
  • Prédiction de label : lors de la numérisation d'un nouveau document, Paperwork tente de deviner les labels à appliquer en se basant sur les documents déjà scannés
  • Les pages ne sont plus affichées une à une. Il est désormais possible de faire défiler d'une page à l'autre.
  • Nouvelles options :
    • source de la numérisation (plateau, bac d'alimentation, etc)
    • le nombre d'orientation de pages à essayer
    • l'OCR peut être complètement désactivée
  • Les numérisations sont affichés en temps réel
  • Et bien entendu, plein de nouveaux bugs … :-)

Il y aussi quelques nouvelles dépendances (utilisées pour la prédiction de labels) :

  • joblib
  • numpy
  • scipy
  • scikit-learn
  • scikit-image
Télécharger ce contenu au format Epub

Lire les commentaires

GNU Dr. Geo 14.10

21 septembre, 2014 - 22:55

Dr. Geo est un studio de géométrie interactive et de programmation. À l'image des logiciels classiques de géométrie dynamique, il permet de créer des figures géométriques à la souris. En revanche, dans sa dimension programmation, une figure géométrique est décrite à l'aide d'une API sous la forme d'un code informatique.

Avec cette dernière fonctionnalité, des modèles informatiques ou des simulations sont créés dans un canevas de géométrie interactive, voir par exemple l'article en lien du Problème des 3 portes.
Enfin dernier point, Dr. Geo est auto-modifiable (modify-me-ready) : l'utilisateur peut modifier Dr. Geo depuis lui même et le redistribuer.

Télécharger ce contenu au format Epub

Lire les commentaires

Vindinium, un concours d'intelligence artificielle bien sympathique

21 septembre, 2014 - 18:24

Vindinium est un concours d'intelligence avec des règles simples mais beaucoup de possibilités. D'après le site web :

Vindinium est un concours de programmation d'intelligence artificielle. Vous devez prendre le contrôle d'un héros légendaire en utilisant le langage de votre choix. Vous combattrez d'autres IA pendant un nombre de tours fixé à l'avance et le héros qui aura amassé le plus de pièces d'or gagnera.

Que vous soyez débutant(e) ou confirmé(e), c'est très amusant et très instructif. Rejoignez-nous !

Comme les bots sont hébergés sur votre machine et communiquent avec le serveur par HTTP, il est possible de développer en utilisant l'environnement de son choix. Cependant, pour gagner du temps, des kits de démarrage sont disponibles pour une foule de langages tels que Scala, Go, Haskell, Lua, Javascript et même Idris.

Les règles complètes sont disponibles là (en anglais) : http://vindinium.org/doc

Le code du serveur (licence MIT) ainsi que les kits de démarrage sont open-source et hébergés sur Github. Les participants communiquent soit sur freenode (IRC) sur le chaîne #vindinium, soit sur reddit (https://reddit.com/r/vindinium).

Télécharger ce contenu au format Epub

Lire les commentaires

Prix Ig Nobel de 2011 à 2014

21 septembre, 2014 - 15:19

Les prix Ig Nobel (jeu de mot sur ignoble et Nobel) 2014 ont été attribués le 18 septembre dernier. Rappelons qu’ils récompensent des publications ou des travaux scientifiques qui font des recherches inusuelles et imaginatives. Les vainqueurs ont tous fait des choses qui ont d’abord fait rire, puis réfléchir les gens.

Liste des prix 2014 :
  • nutrition : la caractérisation d'une bactérie liée à l'acide lactique, isolée depuis les selles d'un enfant, comme démarreur de culture probiotique pour saucisses fermentées ;
  • psychologie : les couche-tard plus égocentriques, manipulateurs et psychopathes que les lève-tôt ;
  • santé publique : les risques mentaux d'avoir un chat ;
  • médecine : le traitement des saignements de nez incontrôlés par la tranche de porc ;
  • science arctique : la réaction des rennes face à des humains déguisés en ours polaires ;
  • biologie : l'alignement nord-sud des chiens durant la défécation et la miction ;
  • physique : étude des frictions lorsque l'on marche sur une peau de banane ;
  • art : la différence de souffrance à regarder une mauvaise peinture par rapport à une belle peinture, lorsque l'on est pointé par un laser puissant ;
  • économie : la croissance de l'économie nationale en prenant en compte la prostitution, les ventes de drogues, la contrebande et autres transactions financières illégales ;
  • neuroscience : ce qui se passe dans votre cerveau lorsque vous voyez un toast avec un visage de Jésus dessus.
D’abord faire rire puis réfléchir les gens ?

On rappellera, comme l’avait fait Malicia en 2010, que « Andre Geim a été récompensé par le Prix Nobel de Physique 2010 (avec Konstantin Novoselov) après avoir eu une récompense Ig Nobel en 2000 (avec Sir Michael Berry), pour avoir fait léviter une grenouille avec des aimants ». On peut aussi citer le professeur Keller qui a reçu deux prix Ig Nobel en physique en 1999 et en 2012.

Historique

Ces prix sont évoqués depuis plusieurs années sur LinuxFr.org (2001, 2002, 2004, 2005, 2006, 2008, 2010, 2011).

Et puis, ça change des Prix FSF du logiciel libre (Awards for the Advancement of Free Software) (2001 et 2001, 2005, 2008, 2013, etc.), ou même des plus pessimistes Big Brother Awards (2000, 2001 et 2001, 2002, 2003, 2005, 2007, 2009, 2010, 2012 Belgique, 2013, etc.) ou Darwin Awards.

Et en bonus,

comme ça serait dommage d'avoir manqué des avancées scientifiques notables, voici le palmarès Ig Nobel depuis la dépêche précédente :

2013
  • médecine : l'écoute de l'opéra durant la transplantation cardiaque chez les souris ;
  • psychologie : la confirmation que les personnes saoules se pensent séduisantes ;
  • astronomie et biologie : la réorientation des coccinelles perdues par l'observation de la Voie lactée ;
  • ingénierie sûre : la capture et le parachutage automatique de pirates aériens en vol ;
  • physique : la possibilité pour certaines personnes de courir à la surface d'une mare, sur la Lune ;
  • chimie : la complexité inattendue des processus biochimiques entraînant les larmes lors de l'épluchage d'oignons ;
  • archéologie : la cuisson et l'ingurgitation sans mâcher d'une musaraigne et l'étude des selles les jours suivant ;
  • paix : le président du Belarus Alexander Lukashenko pour avoir rendu les applaudissements en public illégal et la police d'État Belarus pour avoir arrêté un manchot pour applaudissement ;
  • probabilité : plus une vache est restée longtemps couchée, plus il est probable qu'elle se lève, et ensuite il est impossible de savoir quand elle va se recoucher ;
  • santé publique : la chirurgie lors de l'épidémie d'amputations de pénis au Siam, sauf dans les cas d'ingurgitation par un canard ;
2012
  • psychologie : se pencher vers la gauche rend la Tour Eiffel plus petite ;
  • paix : l'entreprise russe SKN qui convertit des anciennes munitions en diamants ;
  • acoustique : le brouilleur de communication SpeechJammer, qui vous répète vos paroles avec un délai ;
  • neuroscience : les neuro-chercheurs peuvent mesurer l'activité du cerveau, même sur un saumon mort ;
  • chimie : la solution de l'énigme du pourquoi à Anderslöv en Suède certains cheveux sont devenus verts ;
  • littérature : la « Cour des comptes » (GAO) américaine pour la publication d'un rapport sur les rapports concernant les rapports recommandant l'écriture d'un rapport sur le rapport sur les rapports à propos des rapports ;
  • physique : le calcul de l'équilibre des forces qui s'applique sur une coupe queue de cheval ;
  • dynamique des fluides : la tasse de café durant la marche ;
  • anatomie : l'identification entre chimpanzés en voyant des photos de leur postérieur ;
  • médecine : comment aider les médecins à limiter l'explosion des patients durant la coloscopie.
2011
  • psychologie :
    • l'absence de preuve de la contagion du bâillement chez la tortue charbonnière à pattes rouges ;
    • pourquoi les gens soupirent dans la vie de tous les jours ;
  • chimie : la densité idéale de wasabi aéroporté pour réveiller les gens en cas de feu ou d'urgence ;
  • médecine : la démonstration que les gens prennent des décisions meilleures concernant certaines choses et d'autres plus mauvaises, lorsqu'elles sont pressées d'uriner ;
  • littérature : la théorie de la procrastination structurée ;
  • biologie : le rapprochement de certaines coccinelles avec certaines bouteilles de bières australiennes ;
  • physique : pourquoi les lanceurs de disque deviennent étourdis alors que les lanceurs de marteaux non ;
  • mathématiques : la prédiction de la fin du monde en 1954, 1982, 1990, 1992, 1994, 1999 et 2011 ;
  • paix : le maire de Vilnius pour le traitement du stationnement illégal de voitures de luxe par l'écrasement au véhicule blindé ;
  • santé publique : la conduite sur autoroute lors d'aveuglements.
Télécharger ce contenu au format Epub

Lire les commentaires

webOS se relance en LuneOS

20 septembre, 2014 - 19:23

webOS (avec un "web" minuscule et un "OS" majuscule), après avoir été créé par Palm, racheté par HP, revendu à LG, renommé en Open webOS, se nomme désormais LuneOS. Plus précisément, il s'agit du renommage du projet « WebOS Ports Open webOS ».

Le projet LuneOS

Pourquoi "Lune" ? C'est le français de LunaSysMgr, le system manager, qui présente les applications en cours sous forme de cartes que l'on peut jeter par un balayage vers le haut pour les tuer.

Cette première version, nommée "Affogato", vise principalement des personnes intéressées à participer au développement du système. En effet, après avoir effectué un gros travail de fond pour se baser sur des technologies plus récentes (Qt 5.2, systemd, Wayland, nouvelle interface LunaNext utilisant QtQuick…), l'accent est mis sur le développement d'applications.

Il faut noter cependant que le but n'est pas de concurrencer Android ou iOS, mais bien de faire revivre sur d'autres appareils mobiles cette expérience unique qu'était webOS. Le projet se construit autour du logiciel libre et de sa communauté, et son développement peut être suivi sur Github et sur IRC (#webos-ports sur Freenode).

Nouveautés depuis la dernière release (Alpha 2, en juin 2013)

Beaucoup de choses ont changé en un an. Voici une liste de quelques-uns de ces changements, donnant une idée du chemin accompli.

Améliorations du cœur du système
  • Réécriture avec QtQuick 2 et Qt 5.2 du compositeur de fenêtres : le gestionnaire de « cartes » LunaSysMgr est remplacé par LunaNext pour la partie graphique, tandis que la partie « infrastructure» de LunaSysMgr a été conservée pour éviter les réécritures inutiles de code.

  • Utilisation de la bibliothèque libhybris pour faciliter le portage de l'OS sur des appareils Android ; les éléments suivants d'Android sont actuellement réutilisés :

    • Système de téléphonie (rild)
    • Pilotes graphiques
  • Il est prévu d'utiliser plus d'éléments encore d'Android via libhybris :

    • Accélération matérielle vidéo et audio
    • Intégration des capteurs
    • Capture photo
  • Il n'est actuellement pas prévu de faire tourner des applications Android dans LuneOS (via par exemple ACL ou AndroidChroot)

  • Utilisation de systemd comme système d'init à la place d'Upstart, permettant de raccourcir le temps de démarrage et de mieux contrôler les différentes tâches de l'init

  • Pour les tests et le développement, une image compilée pour VirtualBox est disponible

  • Tout est construit par la communauté (Système de compilation OpenEmbedded)

Améliorations des applications
  • Preware 2 est maintenant fonctionnel et permet l'installation d'applications additionnelles
  • Corrections de bugs dans les applications Memo, Calculator et Email
  • Une nouvelle application PDF a été créée, basée sur l'implémentation de PDF.js de Mozilla
  • Un gestionnaire de fichiers basique est disponible
  • Un mécanisme de mise à jour a été mis en place pour permettre de passer facilement à une version plus récente de LuneOS
Comment l'essayer ?

Les Nexus 4 et HP TouchPad sont pleinement pris en charge, tandis que les Galaxy Nexus et Nexus 7 (2012 Wifi) sont pris en charge par Affogato, mais ne seront pas activement maintenus à l'avenir.

Les appareils éligibles à un portage sont ceux qui peuvent faire tourner Android 4.2.2, dont une partie des pilotes est réutilisée via la bibliothèque libhybris pour fournir la prise en charge du matériel, indispensable à son fonctionnement.

Pour ceux qui ne possèdent aucun de ces appareils mais qui souhaiteraient quand même essayer LuneOS, une image pour VirtualBox est également disponible.

La suite

LuneOS est un projet vaste, porté actuellement par un groupe assez réduit de développeurs. Sur de nombreux sujet, les contributions sont donc évidemment les bienvenues, notamment au niveau des applications.

Le projet prévoit maintenant de publier des versions de façon régulière (une version par mois environ), sous forme de rolling release.

Télécharger ce contenu au format Epub

Lire les commentaires

Le Capitole du Libre, jusqu'au dimanche 21 septembre pour proposer votre participation !

20 septembre, 2014 - 00:56

Vous le savez sûrement, le Capitole du Libre 2014 aura lieu les samedi 15 et dimanche 16 novembre prochains.

Le Capitole du Libre est l'événement du Libre à Toulouse ; il accueille cette année notamment Adrienne Charmet de La Quadrature du Net, Lionel Maurel juriste et bibliothécaire, et Benjamin Bayart de FFDN. Il y aura également Pierre Ficheux d'Open Wide, auteur du livre Linux Embarqué et Christophe Blaess, ingénieur indépendant qui aide régulièrement à la conception de systèmes Linux embarqués ou nécessitant des contraintes temps réel fortes.

Des conférences et ateliers sont proposés au travers de diverses thématiques telles que les enjeux du Libre, le Multimédia, Internet Libre, la Bureautique, l'Embarqué et DevOps.

Le Capitole du Libre accueille également deux événements hébergés :

  • la communauté LibreOffice pour un Hackfest ;
  • la communauté KDE au travers d'Akademy-FR.

Il ne reste que quelques jours pour proposer une conférence ou un atelier à cet événement. Alors n'hésitez pas.

Thématiques de conférences et ateliers

Cette année les thèmes abordés seront :

  • Grand Public et Enjeux du Libre (découverte, éducation, juridique, biens communs…) ;
  • Technique (système, développement, réseau…) ;
  • Multimédia & Bureautique (graphisme, vidéo, son, ainsi que les logiciels de bureau) ;
  • Internet Libre (outils libre pour l'auto-hébergement de site, de mail…) ;
  • Open Hardware et Embarqué (Arduino, Raspberry Pi…) ;
  • DevOps (déploiement et intégration automatisée).

Les propositions sont encore ouvertes jusqu'au 21 septembre à minuit. Nous remercions celles et ceux qui ont déjà proposé leur participation, ils seront notifiés de notre décision la semaine du 22 septembre au plus tard.

Événements hébergés LibreOffice Hackfest

Dans un Hackfest, les contributeurs se réunissent afin de coordonner dans un temps donné et dans une atmosphère détendue, le développement du produit et faire avancer le projet.

Akademy-FR

Événement français de la communauté KDE, l'objectif est de permettre aux contributeurs francophones de se retrouver, mais également de promouvoir les produits de la communauté à l'échelle française.

Pour les novices, c'est l'occasion rêvée de découvrir cet environnement libre et complet. Pour les personnes souhaitant contribuer, elles pourront rencontrer des contributeurs d'horizons divers qui les aideront à se lancer dans le grand bain KDE. Vous retrouverez donc à la fois des conférences orientées contribution mais également grand public.

Télécharger ce contenu au format Epub

Lire les commentaires

Atelier framebuffer à Bordeaux le 29 septembre 2014

19 septembre, 2014 - 15:40

Le lundi 29 septembre 2014 se tiendra le deuxième atelier CLI dont le thème porte sur le framebuffer.

Le but de ces ateliers, proposés par des membres d’associations et collectifs Bordelais, est de progresser ensemble autour d'un outil ou d'un thème, toujours en ligne de commande. Les ateliers de type spécial débutants reprendront le 13 octobre.

Cet atelier se déroulera dans les locaux du L@BX, à la fabrique POLA (Rue Marc Sangnier, 33130 Bègles).

Télécharger ce contenu au format Epub

Lire les commentaires

Cartopartie OpenStreetMap pour la Fête du Parc du Verdon - dimanche 28 septembre 2014 à La Verdière

19 septembre, 2014 - 11:26

APITUX vous emmène à la découverte de la cartographie libre OpenStreetMap. Venez dessiner avec nous le plan de La Verdière, ses rues et ses chemins, ses places et ses fontaines, ses points d'intérêt et ses services. Un atelier proposé dans le cadre de la Fête du Parc du Verdon, dimanche 28 septembre 2014 de 14h à 17h. Inscription gratuite au 04 92 74 68 00.

OpenStreetMap est une base de données géographique construite de manière collaborative et publiée sous licence libre. Le projet reprend les principes qui ont fait le succès de Wikipédia. La contribution est ouverte à tous, chacun peut cartographier sa commune, son quartier, sa randonnée préférée. La carte du monde se dessine progressivement par l'assemblage de toutes les contributions.

Le Parc naturel régional du Verdon est un territoire de projets qui regroupe 46 communes des Alpes-de-Haute-Provence et du Var. Il compte plus de 30 000 habitants pour une surface de 180 000 hectares. Les missions, les objectifs, l'organisation du Parc font l'objet d'une charte qui fédère les collectivités adhérentes et l'État autour d'un projet concerté de développement durable conclu pour une période de 12 ans.

APITUX est spécialisé dans la formation et le conseil en informatique libre. Il intervient en tant qu'expert auprès des collectivités sur les logiciels libres adaptés à leurs métiers, la mise en place et l'animation de leurs démarches opendata et la cartographie collaborative avec OpenStreetMap.

Télécharger ce contenu au format Epub

Lire les commentaires

Aperi’tic logiciel libre en milieu professionnel - jeudi 25 septembre 2014 à Gap

19 septembre, 2014 - 11:12

Un Aperi’tic consacré au logiciel libre en milieu professionnel, jeudi 25 septembre 2014 de 10h à 12h à la CCI 05, 16 rue Carnot à Gap.

Né au MIT en 1983, le logiciel libre est aujourd'hui sorti des laboratoires de recherche pour s'établir très largement dans tous les domaines de l'informatique. On trouve des logiciels libres dans les « Box » qui gèrent nos connexions Internet, sur nos ordinateurs personnels et nos postes de travail mais aussi dans nos téléphones et autres objets technologiques qui peuplent notre quotidien. L'histoire du logiciel libre est intimement liée à celle du réseau Internet. Saviez-vous que la majorité des serveurs web fonctionnent avec des logiciels libres ?

Comment fonctionnent les licences de ces logiciels que chacun peut utiliser, copier, étudier et modifier librement en toute légalité ? Quels sont les modèles économiques du logiciel libre ? Quels sont les enjeux dans le cadre d'une utilisation professionnelle ?

D'un point de vue pratique, quels sont les logiciels libres utilisables ? Pour la bureautique ? Pour l'internet et le multimédia ? Pour le travail collaboratif et le partage de données en réseau ? Quel est l'état de l'art en matière de logiciels libres pour la gestion d'entreprise ? Comment s'y prendre pour tirer le meilleur parti de ces solutions ? Telles sont les questions auxquelles répondra Jean-Christophe Becquet, directeur d'APITUX et vice-président de l'April, expert du logiciel libre en milieu professionnel depuis 1997.

Télécharger ce contenu au format Epub

Lire les commentaires

Formation, Certification et Technologie Libre

19 septembre, 2014 - 09:52

L'Institut de Technologie Libre (ITL) organise sur Perpignan et (bientôt) sur Montpellier une formation menant au Titre Professionnel Concepteur(trice) Développeur(se) Informatique de niveau 2 délivré par le Ministère du Travail, de l'Emploi, de la Formation Professionnelle et du Dialogue social.

L'ITL est agréé par la Direction Régionale des Entreprises, de la concurrence, de la Consommation du Travail et de l'Emploi (Languedoc-Roussillon), pour organiser des sessions de validation pour ce Titre Professionnel.

Dans le cadre de cette formation, l'ITL utilise exclusivement des logiciels libres (e.g. PostgreSQL) et des standards ouverts (e.g. HTML5).

Le programme de formation couvre les trois Certificats de Compétences Professionnelles composant le Titre Professionnel :

  • développer des composants d'interface ;
  • développer la persistance des données ;
  • développer une application n-tiers.

La prochaine session de formation démarre le 21/01/2015 et finit le 19/07/2015, tandis que celle de validation démarre le 27/07/2015 pour une durée de cinq jours.

Comme l'ITL accueille des candidats non informaticiens (en reconversion professionnelle), une préparation (facultative) est organisée. La prochaine session de préparation démarre le 21/10/2014 et finit le 20/01/2015.

L'ITL organise également une session de validation blanche (facultative), laquelle démarre le 20/07/2015 et dure cinq jours. De plus amples informations, un formulaire de demande d'information et un formulaire de candidature figurent sur le site de l'ITL.

Télécharger ce contenu au format Epub

Lire les commentaires

Sortie de Odoo 8 (anciennement OpenERP)

18 septembre, 2014 - 22:11

Odoo, la suite libre d'applications de gestion, vient de sortir sa version 8. Dans les nouvelles fonctionnalités, on retrouve un point de vente fonctionnant aussi sur iPad et Android, un outil de création de site internet, une boutique en ligne, un moteur de rapports statistiques, un système de blogue (clone open source de Medium).

Quelques applications marketing ont également été publiées : envois de mails, une gestion d'événements, un outil de création de sondages et un clone de Stackoverflow (Q&A)

Le cadriciel Python a été totalement réécrit permettant d'être plus efficace pour créer des modules personnalisés.

Toutes les applications de gestion d'Odoo ont été complétées d'une interface frontend (site web). Quelques exemples de fonctionnalités qui sont apparues grâce à la partie web :

  • ventes : une boutique en ligne ;
  • événement : un site web de publication d'événements et vente de tickets ;
  • recrutements : publication des offres d'emploi et formulaires pour postuler ;
  • devis : version en ligne des devis construite sur base de modèles ;
  • composition graphique d'e-mails pour l'envoi massif ;
  • gestion de la relation client : formulaires de contact.

Cette version est le résultat de 18 mois de recherche et développement avec une collaboration efficace entre l'éditeur et la communauté. Une bonne partie des modules communautaires ont d'ailleurs déjà été portés à la nouvelle API.

Télécharger ce contenu au format Epub

Lire les commentaires

Numba 0.14

18 septembre, 2014 - 07:47

Numba, l'optimiseur Python spécialisé dans le calcul numérique, est sorti en version 0.14. Numba est un compilateur juste-à-temps (JIT) pour Python, basé sur LLVM, permettant d'optimiser du code de calcul numérique, notamment basé sur Numpy. Il est compatible avec CPython 2.6, 2.7, 3.3 et 3.4. Des paquets binaires sont disponibles via Anaconda, la distribution de paquets binaires dédiée au calcul scientifique maintenue par Continuum Analytics, l'entreprise qui développe Numba.

Sommaire Qu'est-ce que Numba ?

Numba est un compilateur juste à temps pour CPython spécialisé dans l'optimisation de code scientifique.

… CPython ?

CPython est l'implémentation par défaut (ou "de référence", en langage politiquement correct) de Python. Les autres implémentations s'appellent PyPy, Jython, etc.

… Spécialisé ?

Numba ne prétend pas être capable d'optimiser tous les types de code Python, ni même toutes les constructions du langage (même si cela n'est pas exclu comme objectif à long terme). Numba est capable d'optimiser les calculs numériques et scientifiques impliquant des entiers, des flottants, des complexes ; il est capable de reconnaître certaines types de données bien connus, comme les tableaux Numpy.

La liste des fonctionnalités optimisables grandit évidemment de version en version, par exemple la version 0.14 supporte désormais les types numpy.datetime64 et numpy.timedelta64, qui permettent de faire des calculs sur des séries temporelles.

… Juste à temps ?

Numba fonctionne lors de l'exécution de votre code Python. Il suffit d'apposer le décorateur "@numba.jit" à une fonction pour la faire optimiser par Numba (certains aiment prier pour qu'il arrive à l'optimiser). Il n'y a pas de phase de compilation séparée, ni de ligne de commande à lancer.

Plateformes supportées

Numba utilise LLVM, ce qui permet une portabilité relativement aisée. Actuellement, les systèmes sous Linux, OS X et Windows sont supportés. Côté matériel, x86, x86-64 sont supportés et il y a également un backend CUDA (avec des limitations).

Un exemple

Partons de notre ami l'ensemble de Mandelbrot. Pour cela, posons la fonction suivante dans un fichier nommé mandel.py :

import numpy def mandelbrot(width, height): x_min, x_max = -2.0, 1.0 y_min, y_max = -1.0, 1.0 arr = numpy.zeros((height, width), dtype=int) xs = numpy.linspace(x_min, x_max, num=width) ys = numpy.linspace(y_min, y_max, num=height) max_iters = 20 for idx_x, x in enumerate(xs): for idx_y, y in enumerate(ys): c = complex(x, y) z = 0.0j for i in range(max_iters): z = z * z + c if z.real * z.real + z.imag * z.imag >= 4: # Hors de l'ensemble break else: # Dans l'ensemble arr[idx_y, idx_x] = 1 return arr

Cette fonction renvoie un tableau d'entiers Numpy indiquant si un point fait partie de l'ensemble de Mandelbrot (1) ou non (0).

Maintenant, lançons un Python depuis le même répertoire :

>>> import mandel >>> print(mandel.mandelbrot(20, 15)) [[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0] [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0] [0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0] [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0] [0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0] [0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]]

Ouf, ça ressemble :-) Maintenant compilons cette même fonction avec Numba :

>>> from numba import jit >>> opt = jit(mandel.mandelbrot) >>> print(opt(20, 15)) [[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0] [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0] [0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0] [0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0] [0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 0 0 0 0] [0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]]

Et lançons un benchmark d'une scientificité rigoureuse sur un tableau de 200x200 :

>>> import timeit >>> timeit.timeit("mandel.mandelbrot(200, 200)", setup="import mandel", number=1) 0.20483311700081686 >>> timeit.timeit("opt(200, 200)", setup="from __main__ import opt", number=1) 0.003343598000355996

Sur ce cas d'usage d'une grande importance, Numba est ainsi 60 fois plus rapide que l'interpréteur CPython !

Principe de fonctionnement

Numba est un optimiseur fonction par fonction. Il part de la fonction que vous décorez avec numba.jit et lance une inférence de types pour essayer d'assigner un type précis à chaque variable et valeur intermédiaire dans la fonction. Pour cela, il utilise des règles dédiées à chaque opérateur, fonction standard, etc.

Pour définir les types de départ du processus d'inférence, il y a en réalité deux possibilités :

  • Dans l'utilisation de base de numba.jit, l'utilisateur ne passe pas de paramètres : c'est alors lors de l'appel de la fonction décorée que les types des arguments sont utilisés pour lancer le processus d'inférence (la compilation est ici paresseuse).
  • Dans une utilisation avancée, l'utilisateur peut décrire explicitement les types à l'entrée de la fonction (cela lui permet, par exemple, de choisir des flottants simple précision plutôt que double précision) ; dans ce cas, la compilation a lieu immédiatement.

L'inférence de type est l'étage fondamental qui permet ensuite de produire du code travaillant sur des types bas niveau, plutôt qu'au niveau du modèle objet de Python, qui est beaucoup plus difficile à optimiser. Bien entendu, la chaîne de traitement (pipeline) est constituée de multiples étages :

  1. décodage du bytecode CPython
  2. construction d'un graphe de flot de contrôle (CFG)
  3. génération d'une représentation intermédiaire (IR) spécifique à Numba
  4. inférence de types, produisant une détermination du type de chaque variable manipulée par la fonction
  5. génération de code LLVM correspondant à l'exécution de l'IR sur les types déterminés précédemment
  6. appel à LLVM pour la génération du code machine, et encapsulation du tout dans un objet dédié (wrapper) qui lance le code machine quand il est appelé

Grâce à LLVM, Numba n'a pas à se charger des optimisations bas niveau (propagation de constantes, vectorisation SIMD, etc.) et peut se concentrer sur les traitements spécifiques au langage Python.

Pour une présentation plus détaillée, il convient de lire la documentation (en anglais) : architecture de Numba.

Limitations

À l'heure actuelle, plutôt que de se lancer dans une liste interminable de limitations, il est plus raisonnable de lister ce qui est supporté.

Types supportés
  • les scalaires numériques, que ce soit les types Python (int, float, complex…) ou NumPy (numpy.complex64, etc.)
  • les booléens
  • les dates et intervalles de temps NumPy (numpy.datetime64 et numpy.timedelta64)—mais pas les types standard datetime.datetime et datetime.timedelta
  • les tuples des types ci-dessus
  • les tableaux NumPy des types ci-dessus
Constructions supportées

Numba supporte la plupart des constructions syntaxiques du langage, sauf le traitement des exceptions (try... except, etc.), les gestionnaires de contexte (with), les générateurs (yield) et quelques autres détails.

Fonctions supportées

Numba supporte une grande partie des opérateurs numériques, des fonctions standard (notamment le module math), et certaines fonctions de NumPy. Il est également capable d'optimiser les appels à des fonctions externes via ctypes ou cffi.

Différences sémantiques

Le caractère volontaire (opt-in) de la compilation permet à Numba de présenter des différences sémantiques par rapport au langage Python. Je ne les listerai pas ici, mais une différence évidente a trait aux entiers : les entiers de Python sont de largeur arbitraire, ceux de Numba sont de largeur fixe (déterminée à l'inférence de types, ou forcée par l'utilisateur). Un dépassement lors d'opérations mathématiques entraîne simplement une troncation.

Notons qu'une grande partie de ces différences reflète en réalité le comportement de NumPy (dont les entiers sont aussi à largeur fixe, par exemple).

Numba et l'écosystème Python

Le fait que Numba fonctionne au-dessus de CPython lui permet de s'intégrer facilement à l'écosystème existant. Comme on l'aura compris, l'intégration avec NumPy est également une fonctionnalité de premier plan. D'une manière générale, la stratégie de Continuum (cf. ci-dessous) est de maximiser les possibilités d'interaction entre les multiples briques de calcul scientifique disponibles pour Python.

Statut du projet

Numba est supporté par Continuum Analytics, qui paye à cet effet plusieurs développeurs (dont l'auteur de cette dépêche). Le développement est en partie financé par des clients et des fonds de recherche américains. Nous recevons également des contributions extérieures. Bien entendu, le projet est libre (licence de type MIT).

Contribuer

Numba est un projet jeune auquel manquent de nombreuses fonctionnalités ; il y a donc beaucoup d'opportunités de contribution. Le processus est détaillé dans la documentation. Les compétences nécessaires dépendent de ce à quoi vous vous intéressez :-) La majeure partie du code de Numba est en Python ; il y a quelques parties en C, mais on les évite assez facilement. Nul besoin d'être en expert en NumPy ou en LLVM pour commencer (je ne les connaissais presque pas).

Au débotté, voici quelques directions possibles de contribution, par ordre de difficulté :

  • améliorer la documentation
  • améliorer le retour utilisateur, qui est actuellement assez fruste (messages d'erreur, informations sur la fonction compilée)
  • corriger des bugs (!)
  • ajouter le support de nouvelles fonctions (de la bibliothèque standard ou de NumPy)
  • ajouter le support de nouveaux types
  • ajouter le support de nouvelles constructions (comme la gestion des exceptions ou les générateurs)
Télécharger ce contenu au format Epub

Lire les commentaires

Apéro Python à Lyon le mercredi 24 septembre

17 septembre, 2014 - 20:25

Un apéro Python aura lieu à Lyon le mercredi 24 septembre à partir de 19h à l'Antre Autre (11 rue Terme, Lyon 1er). Un AFPyro est un moment convivial où les Pythonistes peuvent échanger librement autour d’un verre ou d’une assiette.

Une présentation sur les docstrings sera proposée. Les docstrings permettent de rédiger la documentation développeur directement dans le code.

Venez nombreux !

Télécharger ce contenu au format Epub

Lire les commentaires

Install Party GNU/Linux le samedi 27 septembre à Marseille

17 septembre, 2014 - 08:34

L'association CercLL (CercLL d'Entraide et Réseau Coopératif autour des Logiciels Libres) vous invite à une install party GNU/Linux, le samedi 27 septembre 2014 de 14h30 à 19h30 dans la salle de la Fabulerie au 4 rue de la bibliothèque 13001 Marseille. Au programme :

  • découverte de l'univers des logiciels libres ;
  • installation d'un environnement GNU/Linux, ainsi que le meilleur des logiciels libres ;
  • démonstration de jeux vidéo sous Linux.

L'entrée est libre, et l'évènement est accessible aux débutants-e-s. Une participation de 2 euros est demandée. Vous pourrez, si vous le souhaitez, adhérer à l'association pour la soutenir (cotisation de 20 euros pour une durée d'un an). Si vous avez d'autres questions en préalable à votre venue à l'évènement, une adresse mail de contact est disponible : cerll13@gmail.com.


Vous avez envie de découvrir un système d'exploitation libre, simple d'utilisation, stable, rapide et sécurisé ? Vous souhaitez une nouvelle façon d'utiliser votre ordinateur ? Vous vous sentez une affection naissante pour le gnou et le manchot, les mascottes de GNU/Linux ? Venez avec votre ordinateur ! Nous installerons ensemble une distribution GNU/Linux avec des logiciels libres et gratuits pour une utilisation quotidienne.

Télécharger ce contenu au format Epub

Lire les commentaires

FACIL célèbre la Journée internationale du logiciel libre à Montréal le samedi le 20 septembre 2014

16 septembre, 2014 - 23:02

FACIL, pour l'appropriation collective de l'informatique libre (FACIL) invite le grand public de la région de Montréal, de même que les acteurs et actrices de la communauté du libre à converger au Centre de recherche informatique de Montréal (CRIM), le samedi 20 septembre 2014, pour célébrer la Journée internationale du logiciel libre (JILL). Cet événement, qui inaugure la Semaine québécoise de l'informatique libre (SQIL) du 20 au 28 septembre, est gratuit et ouvert à tous et toutes, sans distinction d'âge.

Au programme cette année :

  1. En avant-midi, dévoilement du prototype de la Clé FACIL, dont la campagne de financement participatif sera lancée le jour même, ainsi que des présentations variées venant des membres de la communauté du libre.
  2. En après-midi, débutant à 14h, une table ronde sur les ressources éducatives libres (REL) au Québec, avec des expert(e)s du milieu de l'enseignement et de la recherche.
  3. 5@7 d'ouverture de la SQIL au Café l'Artère en compagnie des passionné(e)s du Club Linux Atomic.

QUAND : le samedi 20 septembre de 9 h à 17 h

OÙ : CRIM, 405, avenue Ogilvy à Montréal (métro Parc)

Pour plus d'infos. : http://jill.facil.qc.ca/http://cle.facil.qc.ca/http://2014.sqil.info/

Télécharger ce contenu au format Epub

Lire les commentaires

Parution du second tome du Guide d’autodéfense numérique

16 septembre, 2014 - 21:01

Quatre ans après la parution du premier tome du Guide d'autodéfense numérique, le second tome, dédié aux enjeux liés de l'utilisation des réseaux et d'Internet est enfin terminé. Cet ouvrage vise à présenter l’« absence d’intimité » du monde numérique et propose des méthodes pour ajuster ses pratiques quotidiennes en conséquence. Les deux volumes sont d’ores et déjà disponibles en consultation et en version imprimable à l’adresse http://guide.boum.org/.

    Les technologies numériques, auxquelles il est devenu très difficile d’échapper, offrent des possibilités de contrôle et de surveillance inédites. S’ils semblent souvent très pratiques, ces outils sont également de puissants supports dans les processus de surveillance et de répression. C’est à partir de ce constat, et de la détermination à ne pas se laisser contrôler par quelque Big Brother que ce soit, qu’un collectif s’est attelé il y a plus de quatre ans à la rédaction du « Guide d’autodéfense numérique ».

    Jusqu'ici, seul le premier tome, qui se concentre sur l’utilisation d’un ordinateur « hors connexions » — on pourrait aussi bien dire préalablement à toute connexion, était disponible. Un second volume vient enfin le compléter. Il ambitionne de permettre à tout un chacun de comprendre quels sont les risques et les limites associés à l'utilisation d'Internet et de se donner les moyens de faire des choix éclairés quant à nos usages de l'Internet.

    Ce second tome est accompagné d'une troisième édition revue et corrigée du premier volume qui prend en considération les révélations concernant l'état actuel de la surveillance numérique ainsi que les dernières évolutions légales et techniques – et notamment les nouvelles versions des systèmes Debian et Tails.

    On trouve dans ce « Guide d'autodéfense numérique » enfin complet des éléments de compréhension de l’outil informatique et de ses failles, des éléments de réflexion permettant d’élaborer et de mettre en place des « politiques de sécurité » et des outils permettant à quiconque d’apprendre et de répandre des pratiques de protection appropriés à chaque situation.

    Pour en finir avec les illusions et les demi-solutions, apprenons et diffusons des pratiques d’autodéfense numérique !

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Rentrée de l'association Linux-Alpes à Digne - jeudi 2 octobre

    16 septembre, 2014 - 11:54

    Depuis 1999, Linux-Alpes, l'association des utilisateurs de logiciels libres dans les Alpes du sud (Alpes de Haute Provence et Hautes Alpes) organise des rencontres sur Digne, Gap, Veynes, parfois Sisteron, Manosque, Briançon, Villars-Colmars, Puimoisson, Peipin ou Forcalquier.

    À Digne, Linux-Alpes fait sa rentrée jeudi 2 octobre 2014 avec une nouvelle soirée d'échanges et de rencontres autour des logiciels libres. Rendez-vous à partir de 20h chez Xsalto, Rue Pasteur (plan d'accès) qui nous accueille à nouveau dans ses locaux cette année.

    Une autre soirée a lieu à Veynes vendredi 26 septembre à partir de 20h à l'espace Mul'OT, 10 rue Léon Cornand (plan d'accès).

    À Gap, les soirées ont repris dans les locaux du L.A.P., 5 rue léon Olphe Galliard depuis le mardi 9 septembre.

    Venez avec vos questions, vos pratiques à partager… en relation avec GNU-Linux et les logiciels libres. Ces soirées sont ouvertes à tous, l'entrée est libre et gratuite.

    Télécharger ce contenu au format Epub

    Lire les commentaires

    Quelques nouvelles sur Qt et KDE

    16 septembre, 2014 - 11:43

    Le nombre de dépêches sur KDE et Qt semble assez faible sur LinuxFr.org en comparaison du rythme effréné de l’actualité de ces deux projets libres en ce moment. Voici donc quelques nouvelles qui peuvent valoir la peine d'être lues.

    Évidemment, c’est loin d’être exhaustif et vous êtes invité à lire le très actif planetkde.org, si vous souhaitez plus de précisions.

    Sommaire Qt

    Pour rappel, Qt est la brique logicielle sur laquelle l'essentiel des logiciels KDE sont construits.

    Passage à la LGPL 3

    En 2009, Nokia a décidé d'ajouter la licence LGPL 2.1 à Qt, afin de faciliter son adoption dans plus de projets : la GPL, précédemment seule licence libre utilisée par le projet communautaire, a des contraintes car elle impose que tout projet dérivé soit également disponible sous la GPL. Cette année, Digia ajoutera la licence LGPL 3 à Qt 5.4 (les nouveaux modules ne disposeront pas de la LGPL 2.1). Son principal avantage est d'éliminer quelques faiblesses juridiques.

    Cette nouvelle licence facilitera la mise à disposition de modules sous licence libre ou propriétaire : Digia prévoyait initialement de garder les modules Qt Canvas3D (implémentation de WebGL pour Qt Quick) et Qt WebView (utilisation du moteur de rendu Web natif) pour la licence commerciale^Wpropriétaire, mais accepte de les diffuser sous la LGPL 3.

    Plus de détails sur le blog de Digia.

    Les versions commerciales^Wpropriétaires et communautaires de Qt se rapprochent

    Jusqu'à présent, les éditions commerciales de Qt sont présentées sur deux sites totalement distincts : qt.digia.com pour le commercial^Wpropriétaire, qt-project.org pour le libre. L'objectif est de fusionner ces deux sites, pour éviter la confusion et l’éparpillement entre les deux éditions.

    Plus de détails sur le blog de Digia.

    KDE

    KDE SC 4.14

    La version 4.14 de KDE SC a été annoncée le 20 août dernier. Comme dans la précédente version, aucune nouveauté majeure : les développeurs se sont concentrés sur divers petits détails, petites améliorations et corrections de bugs sous le capot. Les changements importants se font depuis un moment uniquement sur Plasma 5, KDE Frameworks 5 et KDE Applications 5.

    KF5

    Frameworks 5 a reçu sa première mise à jour le 7 août, puis la seconde le 12 septembre. Parmi les changements, KAuth a obtenu un nouveau dorsal (backend), on peut donc à nouveau ajouter des fonctionnalités qui requièrent l’accès superutilisateur, KWallet a obtenu un système de migration depuis sa version KDELibs 4, et la prise en charge des fichiers AppStream.

    Les développeurs de KF5 ont pris la décision controversée de ne plus faire de mises à jour de corrections de bugs et de faire des mises à jour mensuelles. Pour cela, tout est fait pour que les versions de développement de KF5 puissent être utilisées par les développeurs (dog fooding, i.e. de l'alimentation continue) et que les développeurs d’application contribuent à KF5. Il y aura également plus de tests automatisés, de revues par les pairs et des ajouts de fonctionnalités de manière plus fine.

    pyKDE5

    pyKDE5, c’est le binding pour utiliser KF5 depuis le langage de programmation Python. Pour le moment, les cadriciels suivants sont utilisables :

    • karchive ;
    • kcoreaddons ;
    • kguiaddons ;
    • kitemmodels ;
    • kitemviews ;
    • kplotting ;
    • kwidgetsaddons ;
    • solid ;
    • sonnet.

    Cela inclut la plupart des cadriciels de niveau 1, le plus gros manque étant KConfig. Certains petits cadriciels (comme kcodecs ou kwindowsystem) n’ont pas d’utilité depuis Python ou bien leur fonctionnalité y est déjà présente, ils n’ont donc pas de binding. D’autre part, seul Python 3 est géré (puisqu’il faut de toute façon faire le port de pyKDE4 à pyKDE5).

    (Note : le terme «  tier 1  » que j’utilisais dans la précédente dépêche est une traduction erronée ou, plutôt, une non-traduction, c’est pourquoi c’est maintenant traduit en «  niveau 1 »).

    Scripts de portage

    Les scripts de portages avaient été abordés dans la dépêche sur la sortie de KF5 et dans les commentaires.

    De nouveaux scripts sont disponibles :

    • convert-kdialog.pl aide au portage de KDialog vers QDialog (une classe de KDElib4Support utilisée par toutes les applications KDE), mais comme c’est une transition (et donc un script) plus compliquée que les autres, il faudra donc faire plus attention en vérifiant le résultat ;
    • autogenerate_export_header.sh va permettre de se passer de l'utilisation du fichier kdemacros.h, présent dans kdelibs4support, en générant directement les fichiers d'en-tête ;
    • convert-kcolordialog.pl aide au portage de KColorDialog::getColor vers QColorDialog::getColor (non ce n’est pas simplement un script d’une ligne) ;
    • convert-kcmdlineargs.pl sert quant à lui à la conversion de kcmdlineargs en aidant au portage de K4AboutData vers KApplication ;
    • convert-ktempdir.pl est chargé du portage de KTempDir vers QTemporaryDir ;
    • convert-ktemporaryfile.pl va s'occuper du portage de KTemporaryFile vers QTemporaryFile ;
    • convert-qt-os-macro.pl permet de remplacer Q_WS_* par Q_OS_* ;
    • convert-kdoublenuminput.pl s'occupe de migrer KDoubleNumInput vers QSpinBox ;
    • convert-kbuttongroup.pl aide au portage de kbuttongroup vers QGroupBox + QButtonGroup ;
    • convert-to-new-signal-slot-signal.pl est là pour le portage vers la nouvelle syntaxe des signaux et des slots de Qt5 ;
    • search-kdelibs4support-header.sh trouve les classes de KDElibs4Support de tous les fichiers d’un répertoire : il indique ce qu’il faut supprimer pour se débarrasser de KDElibs4Support.

    En outre, les scripts convert-kmenu.pl, convert-kmd5.pl, remove-kde4support.pl, convert-kcmdlineargs.pl, convert-kurl.pl et convert-kmimetype.pl ont été améliorés et, bien sûr, les autres ont reçu des corrections.

    Pour plus d’informations, vous pouvez consulter le blog de Laurent Montel, l’auteur de tous ces scripts : convert-kdialog.pl, port_to_autogenerate_export_header.sh and others, convert-ktemporaryfile.pl and co :), convert-kbuttongroup.pl, convert-to-new-signal-slot-signal.pl ? et clean-forward-declaration.sh?.

    Plasma

    Le 12 août dernier, Plasma 5 a reçu sa première mise à jour (correction de bogues). Concernant les plasmoïdes maintenus par l’équipe de Plasma, dans certains cas il faut complètement les réécrire. Mais c’est, par exemple, l’occasion de faire le nettoyage (pas la peine de porter un plasmoïde qui n’aurait pas de mainteneur par la suite). Pour plus d’informations, et .

    La prochaine version du plasmoïde NetworkManager pour Plasma 5 a reçu pas mal de changements sous le capot pour améliorer sa fiabilité et prendre en charge plus de configurations. Le port est presque fini, mais il n’y a pas de moniteur de trafic, celui-ci n’ayant pas encore été porté. De nouvelles notifications ont également été ajoutées pour les deux versions (Plasma 4 et 5) pour mieux informer l’utilisateur.

    Baloo

    À partir de Plasma 5.1, Baloo ne prend plus en charge FAT et les systèmes de fichiers réseau. Ne pouvant pas stocker les attributs (étiquettes, notes et commentaires) dans le système de fichier (via xattr), il a fallu trouver une solution de contournement : une base interne à Baloo. Elle est cependant mauvaise, car :

    • les informations sont stockées dans une base de données à part ;
    • ce n’est pas portable ;
    • il n'y a pas de mécanisme visible à l’utilisateur pour sauvegarder ou restaurer ces informations ;
    • cela fonctionne terriblement mal sur les systèmes de fichiers réseau car les informations sont stockées localement.

    Les développeurs ont préféré ne pas prendre en charge ces cas d’utilisation plutôt que de mal les gérer. En outre, cela a permis de grosses simplifications et d’améliorer le fonctionnement de Baloo. En effet, utiliser uniquement le système de fichiers local est très simple et rapide.

    En outre, il est maintenant possible de modifier ces informations avec une application tierce, sans perturber le fonctionnement de Baloo (il fallait auparavant mettre à jour la base de données interne de Baloo) et il est possible de surveiller et de réagir aux modifications.

    D’autre part, l’analyseur de requêtes naturelles (d’un précédent GSoC) a été porté sur KF5. Pour rappel, il permet d’effectuer facilement des requêtes très puissantes en langage naturel, telles que :

    GSoC

    Quelques projets et résultats des GSoC avancent bien et contribuent au dynamisme de KDE.

    Kpeople Adressbook est un carnet d’adresse pour KDE basé sur KPeople qui permet de consulter toutes les données et discussions d’un contact. On peut désormais, à l’issu du GSoC, consulter les clavardages, évènements, publications et fichiers d’une personne.

    OTR est maintenant disponible dans KTP (avec trois façons d’authentifier un pair, paramètres de politique OTR, gestion des empreintes connues et génération de clé privée par compte).

    KDE Connect est maintenant disponible sur iOS ! Il y a un dorsal et une interface graphique pour les plateformes iOS et les modules Ping, MPRIS, Partage de photo, synchronisation de presse-papiers, pavé tactile, et surveillance de la batterie.

    La prise en charge des fichiers Geogebra dans Kig, après avoir été réécrite plusieurs fois, est enfin fonctionnelle !

    KDevelopp a été bien amélioré ! L’intégration de Clang a été étendue pour pouvoir naviguer dans les macros C++ et passer de la déclaration à la définition d’un élément. D’autre part, la bibliothèque kdevplatformlanguage a été séparée en plusieurs parties plus faciles à maintenir, et elle compile maintenant sous Windows. Enfin, de nombreux bogues ont été corrigés.

    GCompris

    Depuis l'annonce en janvier dernier de la ré-écriture en Qt Quick, le projet a officiellement rejoint l'incubateur KDE. L'idée, à terme, est de compléter la liste des logiciels de KDE-Edu. Le portage avance bien : actuellement 80 activités sur les 140 de la version GTK+ ont été portées.

    Vous pouvez également en apprendre plus sur le blog de la bratcave.

    Autres Appel à contribution

    Ça fait quelques temps que votre serviteur essaie de vous tenir informé de l’actualité de KDE mais cette activité est vraiment chronophage. Alors, amateurs de KDE, n’hésitez pas à donner un coup de main en participant à la rédaction de dépêches et mettre en lumière les évolutions de KDE qui vous intéressent !

    Télécharger ce contenu au format Epub

    Lire les commentaires