Irregular Messy News #2
Contenu
Deuxième article sur des blogs, du OCaml, de l’Open Data, de REPL, de Python, d’API REST et de qualité de l’air. News toujours autant irrégulières. Comme quoi le titre de l’article porte bien son nom.
Rappelez-vous, le premier Irregular Messy News. L’idée reste la même, un beau bazar de trucs que j’ai vu passés, que j’ai lus, plus ou moins récents.
OCaml, langage de programmation très français, crée et porté par Inria. J’ai toujours eu l’impression qu’il avait du mal à sortir de l’Hégaxone et qu’il n’était pas nécessairement beaucoup utilisé dans l’industrie. Facebook l’utilise pour un analyseur statique de code Javascript. Son doux nom : flow. Il l’utilise aussi pour un projet nommé pfff qui fait de l’analyse, visualisation et refactoring de code pour plusieurs langages : C, Javascript, Java et PHP. Il commence à avoir des supports pour du C++, Rust, C#, Lisp, Erlang, Haskell, etc.
Et quand on regarde les différentes entreprises qui utilisent OCaml, il y a effectivement Facebook, Bloomberg, Citrix, Dassault Systems et bien d’autres.
Néanmoins, rien d’étonnant quand on voit les principaux contributeurs Open Source de ces boîtes : ce sont des frenchies qui ont fait un passage à l’Inria !!
La nouvelle Debian 8, nom de code Jessie est arrivée !! Bon, c’est pas très neuf, c’était il y a plus d’un mois. Mais pas grave. Bravo à toutes ces équipes et à cette distribution GNU/Linux que j’utilise depuis des années. J’en profite pour poser un bon lien sur systemd lu dans LinuxFr, maintenant supporté par Debian.
De l’Open Data, c’est bon d’en manger, surtout quand elles sont de qualité. Le site http://adresse.data.gouv.fr/ fournit la base d’adresses nationales en données libres et ouvertes.
- Chercher et visualiser avec la carte intéractive. Épurée, simple et efficace. Derrière, c’est du leaflet et du OpenStreetMap.
Pour les plus geeks ou ceux qui veulent consommer les données, y’a une API REST sur http://api-adresse.data.gouv.fr/search/. Vous recevez les données en GeoJSON. Il y a même la possibilité de faire une recherche inverse : vous donnez les coordonnées, et ça vous donne l’adresse.
Je l’ai utilisé en Python avec requests et c’est du bonheur :
import requests URL = "http://api-adresse.data.gouv.fr/search/" data = requests.get(URL, params={'q': 'place de la Victoire Bordeaux'}).json() print(data)
Et le score le plus haut nous donne :
{"geometry": {"coordinates": [-0.572764, 44.830838], "type": "Point"}, "properties": {"city": "Bordeaux", "context": "33, Gironde, Aquitaine", "id": "33063_9285_2f7e02", "label": "Place de la Victoire 33000 Bordeaux", "name": "Place de la Victoire", "postcode": "33000", "score": 0.7832994652406416, "type": "street"}, "type": "Feature"}
Dans la même veine, le projet Photon qui est un projet Open Source de geocoding fait par une boîte allemande (http://photon.komoot.de/). Un géocodeur boosté aux hormones élastiques (voir le fameux et puissant ElasticSearch)
Le site repl.it propose des REPL (Read Eval Print Loop) pour différents langages : Python3, JavaScript, Ruby, Scheme, Lua, C++, etc. Comment facilement écrire du code et le voir s’exécuter. Pratique pour faire des démos, peut être très utile pour des formations en programmation.
Découverte tardive d’un paquet Python qui permet de faire des interfaces en lignes de commande (CLI en anglais) à partir de la documentation de votre script. Ça s’appelle docopt, c’est simple et efficace.
Je suis tombé sur le site plumeLabs en lisant un article d’Inriality sur la pollution de l’air. Permet de récupérer des indices sur la qualité de l’air dans votre ville, fait des applis mobiles et communique avec qualité autour de ce sujet. Et oui, toujours sensible à la chose puisque ce fut le sujet de mon doctorat
Besoin d’exposer votre base de données via une API REST ? Deux projets Open Source, l’un en Python, l’autre en Haskell
- sandman projet Python qui peut, contrairement à son confrère, supporter différentes base de données : PostgreSQL, MariaDB, SQLite, etc.
- PostgREST comme son nom l’indique, propose de servir vos données avec une API REST pour des bases PostgreSQL