PageSourceSearch

https://makina-corpus-blog-scrollytelling.netlify.app/static/js/main.ae0b9384.chunk.js

js makina-corpus-blog-scrollytelling.netlify.app collected 2026-10-03 11:02:20 UTC 136,349 bytes, 2 lines download raw bytes

1(this["webpackJsonpmakina-corpus-blog"]=this["webpackJsonpmakina-corpus-blog"]||[]).push([[0],{21:function(t){t.exports=JSON.parse('[{"id":1,"dateString":"2016-06-20","yearMonthString":"2016-06","title":"Drupal & SEO : am\xe9liorer le r\xe9f\xe9rencement naturel de votre site","link":"https://makina-corpus.com/blog/metier/2013/seo-ameliorer-le-referencement-de-votre-site-drupal","tag":"seo","tag_tech_FromTop":"drupal","tag_FromTop":"autres","num_approx_character":10253,"year":2013,"author":"sgeo"},{"id":2,"dateString":"2013-12-18","yearMonthString":"2013-12","title":"Infrastructure webmapping minimaliste (partie 4) - Javascript","link":"https://makina-corpus.com/blog/metier/2013/infrastructure-webmapping-minimaliste-partie-4-javascript","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":5404,"year":2013,"author":"sgeo"},{"id":3,"dateString":"2013-12-18","yearMonthString":"2013-12","title":"Infrastructure webmapping minimaliste (partie 3) - Leaflet","link":"https://makina-corpus.com/blog/metier/2013/infrastructure-webmapping-minimaliste-partie-3-leaflet","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":7910,"year":2013,"author":"sgeo"},{"id":4,"dateString":"2013-12-12","yearMonthString":"2013-12","title":"Infrastructure webmapping minimaliste (partie 2) - TileMill","link":"https://makina-corpus.com/blog/metier/2013/infrastructure-webmapping-minimaliste-partie-2-tilemill","tag":"SIG / Webmapping","tag_tech_FromTop":"tuilage","tag_FromTop":"SIG / Webmapping","num_approx_character":4489,"year":2013,"author":"sgeo"},{"id":5,"dateString":"2013-12-02","yearMonthString":"2013-12","title":"Infrastructure webmapping minimaliste (partie 1)","link":"https://makina-corpus.com/blog/metier/2013/infrastructure-webmapping-minimaliste-partie-1","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":4819,"year":2013,"author":"sgeo"},{"id":6,"dateString":"2013-11-26","yearMonthString":"2013-11","title":"Signez vos documents sur tablette tactile avec django-jsignature","link":"https://makina-corpus.com/blog/metier/2013/signez-vos-documents-sur-tablette-tactile-avec-django-jsignature","tag":"django","tag_tech_FromTop":"django","tag_FromTop":"django","num_approx_character":5066,"year":2013,"author":"fleb"},{"id":7,"dateString":"2013-11-25","yearMonthString":"2013-11","title":"Les alternatives libres \xe0 Google Maps","link":"https://makina-corpus.com/blog/metier/2013/les-alternatives-libres-a-google-maps","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":1482,"year":2013,"author":"mlep"},{"id":8,"dateString":"2013-11-19","yearMonthString":"2013-11","title":"Les technologies utilis\xe9es dans notre GMAO JOB","link":"https://makina-corpus.com/blog/metier/2013/les-technologies-utilisees-dans-notre-gmao-job","tag":"django","tag_tech_FromTop":"autres","tag_FromTop":"django","num_approx_character":6282,"year":2013,"author":"sbou"},{"id":9,"dateString":"2013-11-08","yearMonthString":"2013-11","title":"Cartes historiques de Toulouse avec TileMill","link":"https://makina-corpus.com/blog/metier/2013/toulouse-1680","tag":"SIG / Webmapping","tag_tech_FromTop":"tuilage","tag_FromTop":"SIG / Webmapping","num_approx_character":4417,"year":2013,"author":"fbon"},{"id":10,"dateString":"2013-10-31","yearMonthString":"2013-10","title":"Geotrek, histoire d\'un projet libre","link":"https://makina-corpus.com/blog/metier/2013/geotrek-histoire-dun-projet-libre","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":10947,"year":2013,"author":"mlep"},{"id":11,"dateString":"2013-10-18","yearMonthString":"2013-10","title":"Utiliser les topologies PostGIS pour nettoyer un filaire de voirie","link":"https://makina-corpus.com/blog/metier/2013/utiliser-les-topologies-postgis-pour-nettoyer-un-filaire-de-voirie","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":5255,"year":2013,"author":"mlep"},{"id":12,"dateString":"2013-10-15","yearMonthString":"2013-10","title":"Draper des lignes sur un MNT avec PostGIS","link":"https://makina-corpus.com/blog/metier/2013/draper-des-lignes-sur-un-mnt-avec-postgis","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":4491,"year":2013,"author":"mlep"},{"id":13,"dateString":"2013-09-30","yearMonthString":"2013-09","title":"MoodWalkR: behind the scenes","link":"https://makina-corpus.com/blog/metier/2013/moodwalkr-behind-the-scenes","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":3503,"year":2013,"author":"fbon"},{"id":14,"dateString":"2013-09-17","yearMonthString":"2013-09","title":"G\xe9n\xe9rer des documents bureautiques avec Django","link":"https://makina-corpus.com/blog/metier/2013/generer-des-documents-bureautiques-avec-django","tag":"django","tag_tech_FromTop":"django","tag_FromTop":"django","num_approx_character":4888,"year":2013,"author":"mlep"},{"id":15,"dateString":"2013-09-05","yearMonthString":"2013-09","title":"Des cartes avec GeoDjango et Leaflet","link":"https://makina-corpus.com/blog/metier/2013/des-cartes-avec-geodjango-et-leaflet","tag":"django","tag_tech_FromTop":"django","tag_FromTop":"django","num_approx_character":4795,"year":2013,"author":"mlep"},{"id":16,"dateString":"2013-08-26","yearMonthString":"2013-08","title":"D\xe9ployer vos projets Django avec git push","link":"https://makina-corpus.com/blog/metier/2013/deployer-vos-projets-django-avec-git-push","tag":"django","tag_tech_FromTop":"django","tag_FromTop":"django","num_approx_character":4370,"year":2013,"author":"mlep"},{"id":17,"dateString":"2013-08-23","yearMonthString":"2013-08","title":"R\xe9solution de probl\xe8mes Drupal : d\xe9veloppement (4/4)","link":"https://makina-corpus.com/blog/metier/2013/resolution-de-problemes-drupal-developpement","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":2115,"year":2013,"author":"sgeo"},{"id":18,"dateString":"2013-08-16","yearMonthString":"2013-08","title":"R\xe9solution de probl\xe8mes Drupal : transfert de site (3/4)","link":"https://makina-corpus.com/blog/metier/2013/resolution-de-problemes-drupal-transfert-de-site","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":1327,"year":2013,"author":"sgeo"},{"id":19,"dateString":"2013-08-09","yearMonthString":"2013-08","title":"R\xe9solution de probl\xe8mes Drupal : construction de site (2/4)","link":"https://makina-corpus.com/blog/metier/2013/resolution-de-problemes-drupal-construction-de-site","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":1963,"year":2013,"author":"sgeo"},{"id":20,"dateString":"2013-08-02","yearMonthString":"2013-08","title":"R\xe9solution de probl\xe8mes Drupal : Installation (1/4)","link":"https://makina-corpus.com/blog/metier/2013/resolution-de-problemes-drupal-installation","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":2211,"year":2013,"author":"sgeo"},{"id":21,"dateString":"2013-06-23","yearMonthString":"2013-06","title":"Recherche module Drupal d\xe9sesp\xe9r\xe9ment","link":"https://makina-corpus.com/blog/metier/2013/recherche-module-drupal","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":2803,"year":2013,"author":"sgeo"},{"id":22,"dateString":"2013-04-29","yearMonthString":"2013-04","title":"OpenStreetMap cartographie votre ville en temps r\xe9el","link":"https://makina-corpus.com/blog/metier/2013/openstreetmap-cartographie-votre-ville-en-temps-reel","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":1907,"year":2013,"author":"fbon"},{"id":23,"dateString":"2014-12-30","yearMonthString":"2014-12","title":"Cr\xe9er facilement un plugin CKEditor 4","link":"https://makina-corpus.com/blog/metier/2014/creer-facilement-et-rapidement-un-plugin-ckeditor-4","tag":"front-end","tag_tech_FromTop":"autres","tag_FromTop":"front-end","num_approx_character":9345,"year":2014,"author":"ycha"},{"id":24,"dateString":"2014-12-17","yearMonthString":"2014-12","title":"Mesures et unit\xe9s avec Python","link":"https://makina-corpus.com/blog/metier/2014/mesures-et-unites-avec-python","tag":"python","tag_tech_FromTop":"python","tag_FromTop":"python","num_approx_character":4736,"year":2014,"author":"sbou"},{"id":25,"dateString":"2014-10-03","yearMonthString":"2014-10","title":"Pourquoi les CMS ne vont pas mourir","link":"https://makina-corpus.com/blog/metier/2014/pourquoi-les-cms-ne-vont-pas-mourir","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":5898,"year":2014,"author":"ebre"}
1,{"id":26,"dateString":"2014-09-16","yearMonthString":"2014-09","title":"Pourquoi vendons-nous Geotrek, disponible sous licence libre ?","link":"https://makina-corpus.com/blog/metier/2014/pourquoi-vendons-nous-geotrek-disponible-sous-licence-libre","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":3089,"year":2014,"author":"mlep"},{"id":27,"dateString":"2014-09-08","yearMonthString":"2014-09","title":"Importer une couche de tron\xe7ons dans Geotrek","link":"https://makina-corpus.com/blog/metier/2014/importer-une-couche-de-troncons-dans-geotrek","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":3393,"year":2014,"author":"mlep"},{"id":28,"dateString":"2014-09-05","yearMonthString":"2014-09","title":"Bonnes pratiques pour votre projet Open Source","link":"https://makina-corpus.com/blog/metier/2014/bonnes-pratiques-pour-votre-projet-open-source","tag":"projet","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":5273,"year":2014,"author":"mlep"},{"id":29,"dateString":"2014-06-30","yearMonthString":"2014-06","title":"Cartographie 3D : Position initiale d\'une cam\xe9ra en fonction de la topographie d\'un terrain.","link":"https://makina-corpus.com/blog/metier/2014/cartographie-3d-position-initiale-dune-camera-en-fonction-de-la-topographie-dun-terrain","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":4237,"year":2014,"author":"cgar"},{"id":30,"dateString":"2014-06-10","yearMonthString":"2014-06","title":"Introduction \xe0 AngularJS","link":"https://makina-corpus.com/blog/metier/2014/introduction-angularjs","tag":"angular","tag_tech_FromTop":"angular","tag_FromTop":"autres","num_approx_character":8143,"year":2014,"author":"jfra"},{"id":31,"dateString":"2014-06-03","yearMonthString":"2014-06","title":"Une randonn\xe9e en 3D gr\xe2ce \xe0 BabylonJS ! Partie 3 : Les textures","link":"https://makina-corpus.com/blog/metier/2014/une-randonnee-en-3d-grace-a-babylonjs-partie-3-les-textures","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":2769,"year":2014,"author":"cgar"},{"id":32,"dateString":"2014-05-27","yearMonthString":"2014-05","title":"Une randonn\xe9e en 3D gr\xe2ce \xe0 BabylonJS ! Partie 2 : Le chemin","link":"https://makina-corpus.com/blog/metier/2014/une-randonnee-en-3d-grace-a-babylonjs-partie-2-le-chemin","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":3412,"year":2014,"author":"cgar"},{"id":33,"dateString":"2014-05-19","yearMonthString":"2014-05","title":"Une randonn\xe9e en 3D gr\xe2ce \xe0 BabylonJS ! Partie 1 : Le terrain","link":"https://makina-corpus.com/blog/metier/2014/visualiser-des-chemins-de-randonnee-en-3d-grace-a-babylonjs","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":3283,"year":2014,"author":"cgar"},{"id":34,"dateString":"2014-05-05","yearMonthString":"2014-05","title":"Python tutorial : Understanding Python threading","link":"https://makina-corpus.com/blog/metier/2014/python-tutorial-understanding-python-threading","tag":"python","tag_tech_FromTop":"python","tag_FromTop":"python","num_approx_character":14193,"year":2014,"author":"gpeg"},{"id":35,"dateString":"2014-04-10","yearMonthString":"2014-04","title":"Construire un MBTiles le long d\'un itin\xe9raire","link":"https://makina-corpus.com/blog/metier/2014/construire-un-mbtiles-le-long-dun-itineraire","tag":"SIG / Webmapping","tag_tech_FromTop":"tuilage","tag_FromTop":"SIG / Webmapping","num_approx_character":2047,"year":2014,"author":"mlep"},{"id":36,"dateString":"2014-03-27","yearMonthString":"2014-03","title":"Convertir un flux TourInFrance en GeoJSON","link":"https://makina-corpus.com/blog/metier/2014/convertir-un-flux-tourinfrance-en-geojson","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":1241,"year":2014,"author":"mlep"},{"id":37,"dateString":"2014-03-21","yearMonthString":"2014-03","title":"Python Tutorial: Understanding Python MRO - Class search path","link":"https://makina-corpus.com/blog/metier/2014/python-tutorial-understanding-python-mro-class-search-path","tag":"python","tag_tech_FromTop":"python","tag_FromTop":"python","num_approx_character":10426,"
1year":2014,"author":"gpeg"},{"id":38,"dateString":"2014-03-20","yearMonthString":"2014-03","title":"Dessiner une ville \xe0 la main avec TileMill (3 \u2013 Occupation des sols et cours d\'eau)","link":"https://makina-corpus.com/blog/metier/2014/dessiner-une-ville-a-la-main-avec-tilemill-3-2013-occupation-des-sols-et-cours-deau","tag":"SIG / Webmapping","tag_tech_FromTop":"tuilage","tag_FromTop":"SIG / Webmapping","num_approx_character":2244,"year":2014,"author":"kaz\xe9"},{"id":39,"dateString":"2014-03-19","yearMonthString":"2014-03","title":"Dessiner une ville \xe0 la main avec TileMill (2 - D\xe9couper 340 000 polygones)","link":"https://makina-corpus.com/blog/metier/2014/dessiner-une-ville-a-la-main-avec-tilemill-2-decouper-les-polygones","tag":"SIG / Webmapping","tag_tech_FromTop":"tuilage","tag_FromTop":"SIG / Webmapping","num_approx_character":4650,"year":2014,"author":"kaz\xe9"},{"id":40,"dateString":"2014-03-14","yearMonthString":"2014-03","title":"Dessiner une ville \xe0 la main avec TileMill (1 - Les b\xe2timents)","link":"https://makina-corpus.com/blog/metier/2014/dessiner-une-ville-a-la-main-les-batiments","tag":"SIG / Webmapping","tag_tech_FromTop":"tuilage","tag_FromTop":"SIG / Webmapping","num_approx_character":3132,"year":2014,"author":"kaz\xe9"},{"id":41,"dateString":"2014-03-06","yearMonthString":"2014-03","title":"Mise en place d\'un site Drupal 7 \xe9ditorial multilingue","link":"https://makina-corpus.com/blog/metier/2014/mise-en-place-dun-site-drupal-7-editorial-multilingue","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":7632,"year":2014,"author":"sgeo"},{"id":42,"dateString":"2014-03-04","yearMonthString":"2014-03","title":"R\xe9duire le poids d\'un GeoJSON","link":"https://makina-corpus.com/blog/metier/2014/reduire-le-poids-dun-geojson","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":2946,"year":2014,"author":"fbon"},{"id":43,"dateString":"2014-03-03","yearMonthString":"2014-03","title":"Affichage d\'un Mod\xe8le Num\xe9rique de Terrain avec Babylon.js \xe0 partir de donn\xe9es PostgreSQL ","link":"https://makina-corpus.com/blog/metier/2014/affichage-dun-mnt-avec-babylon-js-a-partir-de-donnees-postgresql","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":5831,"year":2014,"author":"cgar"},{"id":44,"dateString":"2014-02-21","yearMonthString":"2014-02","title":"Visualiser en 3D un Mod\xe8le Num\xe9rique de Terrain avec Qgis2threejs","link":"https://makina-corpus.com/blog/metier/2014/visualiser-en-3d-un-modele-numerique-de-terrain-avec-qgis2threejs-sous-qgis","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":4153,"year":2014,"author":"cgar"},{"id":45,"dateString":"2014-02-17","yearMonthString":"2014-02","title":"La segmentation dynamique","link":"https://makina-corpus.com/blog/metier/2014/la-segmentation-dynamique","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":4978,"year":2014,"author":"mlep"},{"id":46,"dateString":"2014-02-14","yearMonthString":"2014-02","title":"Visualiser en 3D un Mod\xe8le Num\xe9rique de Terrain avec NVIZ sous QGIS","link":"https://makina-corpus.com/blog/metier/2014/visualiser-en-3d-un-modele-numerique-de-terrain-avec-nviz-sous-qgis","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":4984,"year":2014,"author":"cgar"},{"id":47,"dateString":"2014-02-12","yearMonthString":"2014-02","title":"Un workflow Git efficace pour les projets \xe0 moyen/long terme","link":"https://makina-corpus.com/blog/metier/2014/un-workflow-git-efficace-pour-les-projets-a-moyen-long-terme","tag":"projet","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":5212,"year":2014,"author":"fleb"},{"id":48,"dateString":"2014-01-29","yearMonthString":"2014-01","title":"Introduction \xe0 Node.js","link":"https://makina-corpus.com/blog/metier/2014/introduction-a-nodejs","tag":"front-end","tag_tech_FromTop":"autres","tag_FromTop":"front-end","num_approx_character":6012,"year":2014,"author":"jfra"},{"id":49,"dateString":"2014-01-20","yearMonthString":"2014-01","title":"Stockage de tuiles : comprendre WMTS et TMS","link":"https://makina-corpus.com/blog/metier/2014/stockage-des-tuiles-cartographiques","tag":"SIG / Webmapping","tag_tech_FromTop":"tuilage","tag_FromTop":"SIG / Webmapping","num_approx_character":2297,"year":2014,"author":"ival"},{"id":50,"dateString":"2014-01-14","yearMonthString":"2014-01","title":"Rendre son code compatible avec Python 3","link":"https://makina-corpus.com/blog/metier/2014/faire-tourner-son-projet-django-sur-python-2-et-python-3","tag":"python","tag_tech_FromTop":"python","tag_FromTop":"python","num_approx_character":6967,"year":2014,"author":"amar"},{"id":51,"dateString":"2014-01-14","yearMonthString":"2014-01","title":"Afficher des graphiques (charts) avec Leaflet DVF","link":"https://makina-corpus.com/blog/metier/2014/afficher-des-graphiques-charts-avec-leaflet-dvf","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":6959,"year":2014,"author":"sbeo"},{"id":52,"dateString":"2014-01-14","yearMonthString":"2014-01","title":"Stocker un MBTiles volumineux sur une carte SD","link":"https://makina-corpus.com/blog/metier/2014/stocker-un-mbtiles-volumineux-sur-une-carte-sd","tag":"SIG / Webmapping","tag_tech_FromTop":"tuilage","tag_FromTop":"SIG / Webmapping","num_approx_character":2493,"year":2014,"author":"mlep"},{"id":53,"dateString":"2014-01-10","yearMonthString":"2014-01","title":"Combiner une authentification LDAP et l\'authentification classique Django","link":"https://makina-corpus.com/blog/metier/2014/combiner-une-authentification-ldap-et-lauthentification-classique-django","tag":"django","tag_tech_FromTop":"django","tag_FromTop":"django","num_approx_character":4451,"year":2014,"author":"fleb"},{"id":54,"dateString":"2014-01-09","yearMonthString":"2014-01","title":"Un serveur OpenStreetMap pour votre ville","link":"https://makina-corpus.com/blog/metier/2014/un-serveur-openstreetmap-pour-votre-ville","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":2444,"year":2014,"author":"mlep"},{"id":55,"dateString":"2015-12-23","yearMonthString":"2015-12","t
1itle":"G\xe9rer ses d\xe9pendances de paquets Python","link":"https://makina-corpus.com/blog/metier/2015/gerer-ses-dependances-de-paquets-python","tag":"python","tag_tech_FromTop":"python","tag_FromTop":"python","num_approx_character":9291,"year":2015,"author":"scor"},{"id":56,"dateString":"2015-12-20","yearMonthString":"2015-12","title":"Django Rest Framework : les Viewset (partie 2)","link":"https://makina-corpus.com/blog/metier/2015/django-rest-framework-les-viewset-partie-2","tag":"django","tag_tech_FromTop":"django","tag_FromTop":"django","num_approx_character":14452,"year":2015,"author":"ycha"},{"id":57,"dateString":"2015-12-18","yearMonthString":"2015-12","title":"Utiliser Bootstrap avec Sass","link":"https://makina-corpus.com/blog/metier/2015/utiliser-bootstrap-avec-un-pre-processeur","tag":"front-end","tag_tech_FromTop":"autres","tag_FromTop":"front-end","num_approx_character":16702,"year":2015,"author":"amar"},{"id":58,"dateString":"2015-12-17","yearMonthString":"2015-12","title":"Bien d\xe9marrer avec Scrum","link":"https://makina-corpus.com/blog/metier/2015/bien-commencer-avec-scrum","tag":"projet","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":6368,"year":2015,"author":"ebre"},{"id":59,"dateString":"2015-12-16","yearMonthString":"2015-12","title":"Django Rest Framework : les Serializer et les exceptions (partie 1)","link":"https://makina-corpus.com/blog/metier/2015/django-rest-framework-les-serializer-et-les-exceptions-partie-1","tag":"django","tag_tech_FromTop":"django","tag_FromTop":"django","num_approx_character":8501,"year":2015,"author":"ycha"},{"id":60,"dateString":"2015-12-15","yearMonthString":"2015-12","title":"Bien d\xe9marrer avec JavaScript","link":"https://makina-corpus.com/blog/metier/2015/bien-demarrer-avec-javascript","tag":"front-end","tag_tech_FromTop":"autres","tag_FromTop":"front-end","num_approx_character":11992,"year":2015,"author":"ecol"},{"id":61,"dateString":"2015-12-14","yearMonthString":"2015-12","title":"Bien commencer \xe0 \xe9crire un article de blog","link":"https://makina-corpus.com/blog/metier/2015/bien-commencer-a-ecrire-un-article-de-blog","tag":null,"tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":4567,"year":2015,"author":"sgeo"},{"id":62,"dateString":"2015-12-10","yearMonthString":"2015-12","title":"Conseils \xe0 nos clients pour ma\xeetriser leurs projets Drupal","link":"https://makina-corpus.com/blog/metier/2015/chers-clients-maitrisez-votre-projet-drupal","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":5828,"year":2015,"author":"sgen"},{"id":63,"dateString":"2015-12-09","yearMonthString":"2015-12","title":"Bien d\xe9buter avec les transactions SQL","link":"https://makina-corpus.com/blog/metier/2015/bien-debuter-avec-les-transactions-sql","tag":null,"tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":23926,"year":2015,"author":"rler"},{"id":64,"dateString":"2015-12-08","yearMonthString":"2015-12","title":"La revue de code, il n\'est jamais trop tard pour commencer","link":"https://makina-corpus.com/blog/metier/2015/la-revue-de-code-il-nest-jamais-trop-tard-pour-commencer","tag":"projet","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":9169,"year":2015,"author":"sgri"},{"id":65,"dateString":"2015-12-07","yearMonthString":"2015-12","title":"Python : Bien configurer son environnement de d\xe9veloppement","link":"https://makina-corpus.com/blog/metier/2015/bien-configurer-son-environnement-de-developpement-python","tag":"python","tag_tech_FromTop":"python","tag_FromTop":"python","num_approx_character":12151,"year":2015,"author":"sbou"},{"id":66,"dateString":"2015-12-07","yearMonthString":"2015-12","title":"Bien d\xe9marrer avec Ionic","link":"https://makina-corpus.com/blog/metier/2015/bien-demarrer-avec-ionic","tag":"front-end","tag_tech_FromTop":"autres","tag_FromTop":"front-end","num_approx_character":13270,"year":2015,"author":"ecol"},{"id":67,"dateString":"2015-12-03","yearMonthString":"2015-12","title":"Bien d\xe9buter avec Nginx","link":"https://makina-corpus.com/blog/metier/2015/bien-debuter-avec-nginx","tag":"sql","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":14777,"year":2015,"author":"rler"},{"id":68,"dateString":"2015-12-02","yearMonthString":"2015-12","t
1itle":"SEO : introduction technique au r\xe9f\xe9rencement","link":"https://makina-corpus.com/blog/metier/2015/bien-commencer-techniquement-en-seo-referencement","tag":"seo","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":18223,"year":2015,"author":"sgeo"},{"id":69,"dateString":"2015-11-23","yearMonthString":"2015-11","title":"Les nouveaut\xe9s de Drupal 8","link":"https://makina-corpus.com/blog/metier/2015/les-nouveautes-de-drupal-8","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":8839,"year":2015,"author":"sgeo"},{"id":70,"dateString":"2015-11-16","yearMonthString":"2015-11","title":"Les distributions Drupal en 2015","link":"https://makina-corpus.com/blog/metier/2015/les-distributions-drupal-en-2015","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":8573,"year":2015,"author":"sgeo"},{"id":71,"dateString":"2015-11-09","yearMonthString":"2015-11","title":"G\xe9rer le fil d\'Ariane Drupal par le code","link":"https://makina-corpus.com/blog/metier/2015/gerer-arborescence-menu-et-fil-ariane-drupal","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":4264,"year":2015,"author":"scor"},{"id":72,"dateString":"2015-10-23","yearMonthString":"2015-10","title":"Ionic 2 : les nouveaut\xe9s (retours de l\'AngularConnect)","link":"https://makina-corpus.com/blog/metier/2015/les-nouveautes-dionic-2-retours-de-langularconnect","tag":"front-end","tag_tech_FromTop":"autres","tag_FromTop":"front-end","num_approx_character":4233,"year":2015,"author":"sbat"},{"id":73,"dateString":"2015-10-23","yearMonthString":"2015-10","title":"Les 13 erreurs les plus courantes d\'un d\xe9veloppeur Drupal","link":"https://makina-corpus.com/blog/metier/2015/les-x-erreurs-les-plus-courantes-dun-developpeur-drupal","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":9453,"year":2015,"author":"scor"},{"id":74,"dateString":"2015-08-31","yearMonthString":"2015-08","title":"\xcatre develop-p\xe8re","link":"https://makina-corpus.com/blog/metier/2015/etre-develop-pere","tag":null,"tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":7548,"year":2015,"author":"ebre"},{"id":75,"dateString":"2015-08-03","yearMonthString":"2015-08","title":"Talend tutorial: Extraire un fichier XML contenu dans un autre fichier XML","link":"https://makina-corpus.com/blog/metier/2015/talend-extract-xml-from-xml/extraire-un-fichier-xml-contenu-dan-un-autre-fichier-xml","tag":null,"tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":7363,"year":2015,"author":"gpeg"},{"id":76,"dateString":"2015-07-17","yearMonthString":"2015-07","title":"Que mettre dans une Feature Drupal ?","link":"https://makina-corpus.com/blog/metier/2015/que-mettre-dans-une-feature-drupal","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":6902,"year":2015,"author":"sgeo"},{"id":77,"dateString":"2015-06-30","yearMonthString":"2015-06","title":"Mythes et r\xe9alit\xe9s des tests automatis\xe9s","link":"https://makina-corpus.com/blog/metier/2015/mythes-et-realites-des-tests-automatises","tag":"projet","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":17107,"year":2015,"author":"amar"},{"id":78,"dateString":"2015-06-29","yearMonthString":"2015-06","title":"Django : am\xe9liorer les performances de prefetch_related avec l\'objet Prefetch","link":"https://makina-corpus.com/blog/metier/2015/ameliorer-les-performances-de-prefetch_related-avec-lobjet-prefetch","tag":"django","tag_tech_FromTop":"django","tag_FromTop":"django","num_approx_character":1671,"year":2015,"author":"yfou"},{"id":79,"dateString":"2015-06-26","yearMonthString":"2015-06","title":"LeafletJS et les popovers / modales d\'Ionic","link":"https://makina-corpus.com/blog/metier/2015/leafletjs-et-les-popovers-modales-ionic","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":1255,"year":2015,"author":"sbat"},{"id":80,"dateString":"2015-06-25","yearMonthString":"2015-06","title":"D\xe9velopper avec Twig dans Drupal 7","link":"https://makina-corpus.com/blog/metier/2015/developper-avec-twig-dans-drupal-7","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":5169,"year":2015,"author":"scor"},{"id":81,"dateString":"2015-06-22","yearMonthString":"2015-06","title":"Optimiser ses tests unitaires Django avec setUpTestData","link":"https://makina-corpus.com/blog/metier/2015/optimiser-ses-tests-unitaires-django-avec-setuptestdata","tag":"django","tag_tech_FromTop":"django","tag_FromTop":"django","num_approx_character":3617,"year":2015,"author":"yfou"},{"id":82,"dateString":"2015-06-17","yearMonthString":"2015-06","title":"Un captcha de calcul simple","link":"https://makina-corpus.com/blog/metier/2015/un-captcha-de-calcul-simple","tag":"s\xe9curit\xe9","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":2458,"year":2015,"author":"ebre"},{"id":83,"dateString":"2015-06-11","yearMonthString":"2015-06","title":"Les curseurs PostgreSQL","link":"https://makina-corpus.com/blog/metier/2015/les-curseurs-postgresql","tag":"sql","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":2857,"year":2015,"author":"amar"},{"id":84,"dateString":"2015-05-11","yearMonthString":"2015-05","title":"Webmapping avec Drupal et Leaflet","link":"https://makina-corpus.com/blog/metier/2015/webmapping-avec-drupal-et-leaflet","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":8896,"year":2015,"author":"sgeo"},{"id":85,"dateString":"2015-04-23","yearMonthString":"2015-04","title":"Ecrire du code Drupal compatible avec plusieurs versions","link":"https://makina-corpus.com/blog/metier/2015/ecrire-du-code-drupal-compatible-avec-plusieurs-versions","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":3641,"year":2015,"author":"sgeo"},{"id":86,"dateString":"2015-04-20","yearMonthString":"2015-04","title":"Performance des caches Drupal","link":"https://makina-corpus.com/blog/metier/2015/performance-des-caches-drupal","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":2281,"year":2015,"author":"sgeo"},{"id":87,"dateString":"2015-04-18","yearMonthString":"2015-04","title":"Les meilleures pratiques pour un site Drupal multilingue","link":"https://makina-corpus.com/blog/metier/2015/les-meilleures-pratiques-pour-un-site-drupal-multilingue","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":5027,"year":2015,"author":"sgeo"},{"id":88,"dateString":"2015-04-18","yearMonthString":"2015-04","title":"Drupal 8 en production : pourquoi et comment ?","link":"https://makina-corpus.com/blog/metier/2015/drupal-8-en-production-pourquoi-et-comment","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":6191,"year":2015,"author":"sgeo"},{"id":89,"dateString":"2015-04-17","yearMonthString":"2015-04","title":"Retour d\'exp\xe9rience sur le port d\'un module en Drupal 8","link":"https://makina-corpus.com/blog/metier/2015/retour-dexperience-sur-le-port-dun-module-en-drupal-8","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":4587,"year":2015,"author":"sgeo"},{"id":90,"dateString":"2015-04-17","yearMonthString":"2015-04","title":"Les entit\xe9s et Drupal 8, ceci est une r\xe9volution","link":"https://makina-corpus.com/blog/metier/2015/les-entites-et-drupal-8-une-revolution","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":4902,"year":2015,"author":"lsai"},{"id":91,"dateString":"2015-04-16","yearMonthString":"2015-04","title":"\xc9volution d\'une communaut\xe9 Open Source : l\'exemple de Drupal","link":"https://makina-corpus.com/blog/metier/2015/evolution-dune
1-communaute-open-source-lexemple-de-drupal","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":5167,"year":2015,"author":"sgeo"},{"id":92,"dateString":"2015-03-31","yearMonthString":"2015-03","title":"Optimiser le chargement des publicit\xe9s en asynchrone","link":"https://makina-corpus.com/blog/metier/2015/optimiser-le-chargement-des-publicites-en-asynchrone","tag":"front-end","tag_tech_FromTop":"autres","tag_FromTop":"front-end","num_approx_character":4904,"year":2015,"author":"scor"},{"id":93,"dateString":"2015-03-30","yearMonthString":"2015-03","title":"Open Data et \xe9lections, des progr\xe8s \xe0 faire","link":"https://makina-corpus.com/blog/metier/2015/opendata-et-elections-des-progres-a-faire","tag":"opendata","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":5387,"year":2015,"author":"sgeo"},{"id":94,"dateString":"2015-03-30","yearMonthString":"2015-03","title":"Elections.js g\xe9n\xe8re des cartes pour vous","link":"https://makina-corpus.com/blog/metier/2015/elections-js-genere-des-cartes-pour-vous","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":7152,"year":2015,"author":"sgeo"},{"id":95,"dateString":"2015-03-27","yearMonthString":"2015-03","title":"D\xe9bordement d\'entiers dans Nginx (fix\xe9 en 1.7.11)","link":"https://makina-corpus.com/blog/metier/2015/debordement-dentiers-dans-nginx-fixe-en-1-7-11","tag":"s\xe9curit\xe9","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":15499,"year":2015,"author":"rler"},{"id":96,"dateString":"2015-03-05","yearMonthString":"2015-03","title":"Cr\xe9er une heatmap de donn\xe9es raster avec Leaflet","link":"https://makina-corpus.com/blog/metier/2015/creer-une-heatmap-de-donnees-raster-avec-leaflet","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":2906,"year":2015,"author":"fbon"},{"id":97,"dateString":"2015-03-05","yearMonthString":"2015-03","title":"Profiling Drupal : analyser et optimiser les performances du trafic authentifi\xe9 ","link":"https://makina-corpus.com/blog/metier/2015/profiling-drupal-analyser-et-optimiser-les-performances-du-trafic-authentifie","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":14731,"year":2015,"author":"ycha"},{"id":98,"dateString":"2015-03-03","yearMonthString":"2015-03","title":"Introduction au cache de block Drupal","link":"https://makina-corpus.com/blog/metier/2015/introduction-au-cache-de-block-drupal","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":3850,"year":2015,"author":"sgeo"},{"id":99,"dateString":"2015-02-23","yearMonthString":"2015-02","title":"\\"Ok Robot, fais les tests\\"","link":"https://makina-corpus.com/blog/metier/2015/ok-robot-fais-les-tests","tag":"projet","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":4667,"year":2015,"author":"ebre"},{"id":100,"dateString":"2015-02-03","yearMonthString":"2015-02","title":"Exercice de lecture de code malveillant","link":"https://makina-corpus.com/blog/metier/2015/exercice-de-lecture-de-code-malveillant","tag":"s\xe9curit\xe9","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":18486,"year":2015,"author":"rler"},{"id":101,"dateString":"2015-01-27","yearMonthString":"2015-01","title":"10 modules pour g\xe9rer le fil d\'Ariane (breadcrumb) en Drupal","link":"https://makina-corpus.com/blog/metier/2015/10-modules-fil-ariane-breadcrumb-drupal","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":7287,"year":2015,"author":"sgeo"},{"id":102,"dateString":"2016-12-20","yearMonthString":"2016-12","title":"Utiliser Migrate en Drupal 8","link":"https://makina-corpus.com/blog/metier/2016/utiliser-migrate-en-drupal-8","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":8927,"year":2016,"author":"sgeo"},{"id":103,"dateString":"2016-12-19","yearMonthString":"2016-12","title":"S\xe9curit\xe9 web: D\xe9tail de failles de s\xe9curit\xe9 dompdf","link":"https://makina-corpus.com/blog/metier/2016/securite-web-detail-de-failles-de-securite-dompdf","tag":"s\xe9curit\xe9","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":12982,"year":2016,"author":"rler"},{"id":104,"dateString":"2016-12-19","yearMonthString":"2016-12","title":"Utiliser des bundles Symfony dans Drupal 7","link":"https://makina-corpus.com/blog/metier/2016/utiliser-des-bundles-symfony-dans-drupal-7","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":8913,"year":2016,"author":"scor"},{"id":105,"dateString":"2016-12-14","yearMonthString":"2016-12","title":"Utiliser le DIC de Symfony dans Drupal 7","link":"https://makina-corpus.com/blog/metier/2016/utiliser-le-dic-de-symfony-dans-drupal-7","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":9059,"year":2016,"author":"scor"},{"id":106,"dateString":"2016-12-12","yearMonthString":"2016-12","title":"Top 10 des composants PHP r\xe9utilisables","link":"https://makina-corpus.com/blog/metier/2016/top-des-composants-php-reutilisables","tag":null,"tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":5236,"year":2016,"author":"scor"},{"id":107,"dateString":"2016-12-08","yearMonthString":"2016-12","title":"G\xe9rer ses d\xe9pe
1ndances Drupal 7 avec Composer","link":"https://makina-corpus.com/blog/metier/2016/gerer-ses-dependances-drupal-7-avec-composer","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":4776,"year":2016,"author":"scor"},{"id":108,"dateString":"2016-11-25","yearMonthString":"2016-11","title":"SEO et indexation de site : th\xe9orie et pratique","link":"https://makina-corpus.com/blog/metier/2016/seo-et-indexation-de-site-theorie-et-pratique","tag":"seo","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":14862,"year":2016,"author":"sgeo"},{"id":109,"dateString":"2016-10-27","yearMonthString":"2016-10","title":"Authentification OAuth 2.0 avec Ionic 2","link":"https://makina-corpus.com/blog/metier/2016/authentification-oauth-2-0-avec-ionic-2","tag":"s\xe9curit\xe9","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":4879,"year":2016,"author":"balv"},{"id":110,"dateString":"2016-10-04","yearMonthString":"2016-10","title":"Pourquoi vous devriez utiliser les s\xe9lecteurs avec Redux","link":"https://makina-corpus.com/blog/metier/2016/pourquoi-vous-devriez-utiliser-les-selecteurs-avec-redux","tag":"front-end","tag_tech_FromTop":"autres","tag_FromTop":"front-end","num_approx_character":4471,"year":2016,"author":"sbat"},{"id":111,"dateString":"2016-10-03","yearMonthString":"2016-10","title":"Pr\xe9sentation \xabL\'asynchrone en JavaScript\xbb","link":"https://makina-corpus.com/blog/metier/2016/presentation-lasynchrone-en-javascript","tag":"front-end","tag_tech_FromTop":"autres","tag_FromTop":"front-end","num_approx_character":306,"year":2016,"author":"amar"},{"id":112,"dateString":"2016-08-31","yearMonthString":"2016-08","title":"Tout savoir avant de cr\xe9er son a
1pplication mobile","link":"https://makina-corpus.com/blog/metier/2016/tout-savoir-avant-de-creer-son-application-mobile","tag":"mobile","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":8197,"year":2016,"author":"ecol"},{"id":113,"dateString":"2016-08-12","yearMonthString":"2016-08","title":"Retour d\'exp\xe9rience sur un premier projet Drupal 8","link":"https://makina-corpus.com/blog/metier/2016/retour-dexperience-sur-un-premier-projet-drupal-8","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":15892,"year":2016,"author":"sgeo"},{"id":114,"dateString":"2016-08-09","yearMonthString":"2016-08","title":"D\xe9marrer un th\xe8me Drupal 8 en 10 minutes","link":"https://makina-corpus.com/blog/metier/2016/comment-demarrer-un-theme-drupal","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":6281,"year":2016,"author":"sgeo"},{"id":115,"dateString":"2016-07-22","yearMonthString":"2016-07","title":"Presentation of the latest Django CMS: Wagtail","link":"https://makina-corpus.com/blog/metier/2016/wagtail-presentation-the-latest-django-cms","tag":"django","tag_tech_FromTop":"django","tag_FromTop":"django","num_approx_character":3096,"year":2016,"author":"yfou"},{"id":116,"dateString":"2016-07-20","yearMonthString":"2016-07","title":"Cr\xe9er un menu natif crossplatform avec React Native","link":"https://makina-corpus.com/blog/metier/2016/creer-un-menu-natif-crossplatform-avec-react-native","tag":"mobile","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":5239,"year":2016,"author":"balv"},{"id":117,"dateString":"2016-07-18","yearMonthString":"2016-07","title":"Wagtail : Comment \xe9crire les templates (partie 3)","link":"https://makina-corpus.com/blog/metier/2016/wagtail-comment-ecrire-les-templates-partie-3","tag":"django","tag_tech_FromTop":"django","tag_FromTop":"django","num_approx_character":4022,"year":2016,"author":"yfou"},{"id":118,"dateString":"2016-07-12","yearMonthString":"2016-07","title":"Wagtail : Utiliser le mod\xe8le Page ainsi que son Manager (partie 2)","link":"https://makina-corpus.com/blog/metier/2016/wagtail-utiliser-le-modele-page-ainsi-que-son-manager-partie-2","tag":"django","tag_tech_FromTop":"django","tag_FromTop":"django","num_approx_character":4534,"year":2016,"author":"yfou"},{"id":119,"dateString":"2016-07-11","yearMonthString":"2016-07","title":"Faire une boucle for dans un template Angular 2","link":"https://makina-corpus.com/blog/metier/2016/faire-une-boucle-for-dans-un-template-angular-2","tag":"angular","tag_tech_FromTop":"angular","tag_FromTop":"autres","num_approx_character":742,"year":2016,"author":"sbat"},{"id":120,"dateString":"2016-07-05","yearMonthString":"2016-07","title":"Wagtail : Cr\xe9er ses mod\xe8les de type de contenu (partie 
11)","link":"https://makina-corpus.com/blog/metier/2016/wagtail-creer-ses-modeles-de-type-de-contenu-partie-1","tag":"django","tag_tech_FromTop":"django","tag_FromTop":"django","num_approx_character":7330,"year":2016,"author":"yfou"},{"id":121,"dateString":"2016-06-30","yearMonthString":"2016-06","title":"Les  formulaires en Drupal 8","link":"https://makina-corpus.com/blog/metier/2016/les-formulaires-en-drupal-8","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":4529,"year":2016,"author":"sgeo"},{"id":122,"dateString":"2016-06-24","yearMonthString":"2016-06","title":"Comment cr\xe9er un site web avec Drupal ?","link":"https://makina-corpus.com/blog/metier/2016/comment-creer-un-site-web-avec-drupal","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":8273,"year":2016,"author":"sgeo"},{"id":123,"dateString":"2016-06-23","yearMonthString":"2016-06","title":"Construire une application hybride mobile et desktop avec Cordova et Electron","link":"https://makina-corpus.com/blog/metier/2016/construire-une-application-hybride-mobile-et-desktop-avec-cordova-et-electron","tag":"mobile","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":5690,"year":2016,"author":"ajan"},{"id":124,"dateString":"2016-06-22","yearMonthString":"2016-06","title":"S\xe9curit\xe9 Web: Utiliser du mauvais HTML pour s\'\xe9vader d\'un DIV","link":"https://makina-corpus.com/blog/metier/2016/securite-web-utiliser-du-mauvais-html-pour-sevader-dun-div-1","tag":"s\xe9curit\xe9","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":9787,"year":2016,"author":"rler"},{"id":125,"dateString":"2016-06-20","yearMonthString":"2016-06","title":"Bien comprendre les Progressive Web Apps","link":"https://makina-corpus.com/blog/metier/2016/introduction-progressive-web-apps","tag":"mobile","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":5382,"year":2016,"author":"ecol"},{"id":126,"dateString":"2016-06-17","yearMonthString":"2016-06","title":"Comparaison de plugins JS : les select widgets","link":"https://makina-corpus.com/blog/metier/2016/comparaison-de-plugins-js-les-select-widgets","tag":"front-end","tag_tech_FromTop":"autres","tag_FromTop":"front-end","num_approx_character":4536,"year":2016,"author":"scor"},{"id":127,"dateString":"2016-06-16","yearMonthString":"2016-06","title":"Les nouveaut\xe9s de Git 2.9","link":"https://makina-corpus.com/blog/metier/2016/les-nouveautes-de-git-2.9","tag":"projet","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":3151,"year":2016,"author":"bmar"},{"id":128,"dateString":"2016-06-16","yearMonthString":"2016-06","title":"D\xe9mystifions le r\xe9f\xe9rencement","link":"https://makina-corpus.com/blog/metier/2016/demystifions-le-seo","tag":"seo","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":6516,"year":2016,"author":"sgeo"},{"id":129,"dateString":"2016-06-14","yearMonthString":"2016-06","title":"Gestion de configuration, migration \xe0 Drupal 8 et DrupalCommerce","link":"https://makina-corpus.com/blog/metier/2016/compte-rendu-du-drupalcamp-nantes-2016","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":7368,"year":2016,"author":"sgeo"},{"id":130,"dateString":"2016-06-06","yearMonthString":"2016-06","title":"Pr\xe9sentation de Wagtail, le dernier CMS Django","link":"https://makina-corpus.com/blog/metier/2016/presentation-de-wagtail-le-dernier-cms-django","tag":"django","tag_tech_FromTop":"django","tag_FromTop":"django","num_approx_character":3574,"year":2016,"author":"yfou"},{"id":131,"dateString":"2016-06-02","yearMonthString":"2016-06","title":"Physiologie et m\u0153urs des services Angular 2","link":"https://makina-corpus.com/blog/metier/2016/physiologie-et-moeurs-des-services-angular-2","tag":"angular","tag_tech_FromTop":"angular","tag_FromTop":"autres","num_approx_character":4336,"year":2016,"author":"ebre"},{"id":132,"dateString":"2016-06-02","yearMonthString":"2016-06","title":"Profil d\'\xe9l\xe9vation avec des tuiles vectorielles","link":"https://makina-corpus.com/blog/metier/2016/profil-delevation-avec-des-tuiles-vectorielles","tag":"SIG / Webmapping","tag_tech_FromTop":"tuilage","tag_FromTop":"SIG / Webmapping","num_approx_character":5145,"year":2016,"author":"fbon"},{"id":133,"dateString":"2016-06-02","yearMonthString":"2016-06","title":"G\xe9n\xe9rer des tuiles vectorielles sur mesure avec Django","link":"https://makina-corpus.com/blog/metier/2016/generer-des-tuiles-vectorielles-avec-django","tag":"SIG / Webmapping","tag_tech_FromTop":"django","tag_FromTop":"SIG / Webmapping","num_approx_character":7112,"year":2016,"author":"guta"},{"id":134,"dateString":"2016-05-27","yearMonthString":"2016-05","title":"Compiler les librairies Python sous Windows","link":"https://makina-corpus.com/blog/metier/2016/compile_python_wheels_windows/compiler-les-librairies-python-sous-windows","tag":"python","tag_tech_FromTop":"python","tag_FromTop":"python","num_approx_character":10657,"year":2016,"author":"gpeg"},{"id":135,"dateString":"2016-05-24","yearMonthString":"2016-05","title":"Surcharge th\xe9matique avec Webpack","link":"https://makina-corpus.com/blog/metier/2016/surcharge-thematique-avec-webpack","tag":"front-end","tag_tech_FromTop":"autres","tag_FromTop":"front-end","num_approx_character":4128,"year":2016,"author":"ebre"},{"id":136,"dateString":"2016-05-19","yearMonthString":"2016-05","title":"SEO & typologie de site web illustr\xe9e avec Gephi","link":"https://makina-corpus.com/blog/metier/2016/seo-typologie-de-site-web-illustree-avec-gephi","tag":"seo","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":6170,"year":2016,"author":"sgeo"},{"id":137,"dateString":"2016-05-09","yearMonthString":"2016-05","title":"SEO & visualisation de site : allons plus loin avec Gephi","link":"https://makina-corpus.com/blog/metier/2016/seo-visualisation-de-site-allons-plus-loin-avec-gephi","tag":"seo","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":10216,"year":2016,"author":"sgeo"},{"id":138,"dateString":"2016-04-26","yearMonthString":"2016-04","title":"Mon site est trop lent : que faire ?","link":"https://makina-corpus.com/blog/metier/2016/mon-site-est-trop-lent-que-faire","tag":"front-end","tag_tech_FromTop":"autres","tag_FromTop":"front-end","num_approx_character":6396,"year":2016,"author":"sgeo"},{"id":139,"dateString":"2016-04-21","yearMonthString":"2016-04","title":"Tutoriel: Installation de PySNMP sur Windows","link":"https://makina-corpus.com/blog/metier/2016/tutoriel-installation-de-pysnmp-sur-windows","tag":"python","tag_tech_FromTop":"python","tag_FromTop":"python","num_approx_character":7688,"year":2016,"author":"gpeg"},{"id":140,"dateString":"2016-04-18","yearMonthString":"2016-04","title":"D\xe9couverte de React Native","link":"https://makina-corpus.com/blog/metier/2016/decouverte-de-react-native","tag":"mobile","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":7873,"year":2016,"author":"ajan"},{"id":141,"dateString":"2016-04-07","yearMonthString":"2016-04","title":"SEO & Drupal : forces et faiblesses du CMS","link":"https://makina-corpus.com/blog/metier/2016/seo-drupal-forces-et-faiblesses","tag":"seo","tag_tech_FromTop":"drupal","tag_FromTop":"autres","num_approx_character":6393,"year":2016,"author":"sgeo"},{"id":142,"dateString":"2016-04-07","yearMonthString":"2016-04","title":"Initiation \xe0 SNMP avec Python : PySNMP (Partie 3) - Les tables","link":"https://makina-corpus.com/blog/metier/2016/initiation-a-snmp-avec-python-pysnmp-
1partie-3","tag":"python","tag_tech_FromTop":"python","tag_FromTop":"python","num_approx_character":14652,"year":2016,"author":"gpeg"},{"id":143,"dateString":"2016-04-04","yearMonthString":"2016-04","title":"Design d\'API pour app mobile","link":"https://makina-corpus.com/blog/metier/2016/design-dapi-pour-app-mobile","tag":"mobile","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":9559,"year":2016,"author":"ecol"},{"id":144,"dateString":"2016-03-30","yearMonthString":"2016-03","title":"How to create a custom dialog in TinyMCE 4","link":"https://makina-corpus.com/blog/metier/2016/how-to-create-a-custom-dialog-in-tinymce-4","tag":null,"tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":3200,"year":2016,"author":"yfou"},{"id":145,"dateString":"2016-03-17","yearMonthString":"2016-03","title":"Nettoyer un d\xe9p\xf4t Git","link":"https://makina-corpus.com/blog/metier/2016/nettoyer-un-depot-git","tag":"projet","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":2292,"year":2016,"author":"bmar"},{"id":146,"dateString":"2016-03-15","yearMonthString":"2016-03","title":"Bien commencer avec Behat","link":"https://makina-corpus.com/blog/metier/2016/bien-commencer-avec-behat","tag":"projet","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":4245,"year":2016,"author":"ehel"},{"id":147,"dateString":"2016-03-03","yearMonthString":"2016-03","title":"Initiation \xe0 SNMP avec Python : PySNMP (Partie 1) - Le protocole et les commandes","link":"https://makina-corpus.com/blog/metier/2016/initiation-a-snmp-avec-python-pysnmp","tag":"python","tag_tech_FromTop":"python","tag_FromTop":"python","num_approx_character":23686,"year":2016,"author":"gpeg"},{"id":148,"dateString":"2016-03-03","yearMonthString":"2016-03","title":"Initiation \xe0 SNMP avec Python : PySNMP (Partie 2) - Utilisation de la librairie","link":"https://makina-corpus.com/blog/metier/2016/initiation-a-snmp-avec-python-pysnmp-partie2","tag":"python","tag_tech_FromTop":"python","tag_FromTop":"python","num_approx_character":24390,"year":2016,"author":"gpeg"},{"id":149,"dateString":"2016-02-22","yearMonthString":"2016-02","title":"Django Rest Framework : les tests (partie 8)","link":"https://makina-corpus.com/blog/metier/2016/django-rest-framework-les-tests-partie-8","tag":"django","tag_tech_FromTop":"django","tag_FromTop":"django","num_approx_character":18679,"year":2016,"author":"ycha"},{"id":150,"dateString":"2016-02-18","yearMonthString":"2016-02","title":"Quelle solution pour mon application mobile hybride ?","link":"https://makina-corpus.com/blog/metier/2016/quelle-solution-pour-mon-application-mobile-hybride","tag":"mobile","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":5399,"year":2016,"author":"sbat"},{"id":151,"dateString":"2016-02-17","yearMonthString":"2016-02","title":"Repatelier GPG","link":"https://makina-corpus.com/blog/metier/2016/repatelier-gpg","tag":"s\xe9curit\xe9","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":6770,"year":2016,"author":"ecol"},{"id":152,"dateString":"2016-02-15","yearMonthString":"2016-02","title":"Django Rest Framework : versioning avec DRF (partie 7)","link":"https://makina-corpus.com/blog/metier/2016/django-rest-framework-le-versioning-avec-drf-partie-7","tag":"django","tag_tech_FromTop":"django","tag_FromTop":"django","num_approx_character":18973,"year":2016,"author":"ycha"},{"id":153,"dateString":"2016-02-08","yearMonthString":"2016-02","title":"Django Rest Framework : versioning pour les API REST (hors s\xe9rie)","link":"https://makina-corpus.com/blog/metier/2016/django-rest-framework-le-versioning-pour-les-api-rest-hors-serie","tag":"django","tag_tech_FromTop":"django","tag_FromTop":"django","num_approx_character":8765,"year":2016,"author":"ycha"},{"id":154,"dateString":"2016-01-29","yearMonthString":"2016-01","title":"Git : r\xe9concilier HEAD d\xe9tach\xe9 sur un commit avec une branche","link":"https://makina-corpus.com/blog/metier/2016/git-reconcilier-head-detache-avec-une-branche","tag":"projet","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":1009,"year":2016,"author":"ehel"},{"id":155,"dateString":"2016-01-26","yearMonthString":"2016-01","title":"Django Rest Framework : n\xe9gociation de contenu (partie 6) ","link":"https://makina-corpus.com/blog/metier/2016/django-rest-framework-la-negociation-de-contenu-partie-6","tag":"django","tag_tech_FromTop":"django","tag_FromTop":"django","num_approx_character":13126,"year":2016,"author":"ycha"},{"id":156,"dateString":"2016-01-21","yearMonthString":"2016-01","title":"10 modules Drupal 8 \xe0 suivre","link":"https://makina-corpus.com/blog/metier/2016/10-modules-drupal-8-a-suivre","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":8063,"year":2016,"author":"sgeo"},{"id":157,"dateString":"2016-01-14","yearMonthString":"2016-01","title":"Modales et pseudo-navigation avec Foundation 6","link":"https://makina-corpus.com/blog/metier/2016/modales-et-pseudo-navigation-avec-foundation-6","tag":"front-end","tag_tech_FromTop":"autres","tag_FromTop":"front-end","num_approx_character":5247,"year":2016,"author":"ebre"},{"id":158,"dateString":"2016-01-14","yearMonthString":"2016-01","title":"Django Rest Framework : personnalisation des routeurs (partie 5)","link":"https://makina-corpus.com/blog/metier/2016/django-rest-framework-pers
1onnalisation-des-routeurs-partie-5","tag":"django","tag_tech_FromTop":"django","tag_FromTop":"django","num_approx_character":12065,"year":2016,"author":"ycha"},{"id":159,"dateString":"2016-01-11","yearMonthString":"2016-01","title":"Drupal 8 est-il pr\xeat ?","link":"https://makina-corpus.com/blog/metier/2016/drupal-8-est-il-pret","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":7845,"year":2016,"author":"sgeo"},{"id":160,"dateString":"2016-01-11","yearMonthString":"2016-01","title":"Django Rest Framework :  int\xe9gration des routeurs (partie 4)","link":"https://makina-corpus.com/blog/metier/2016/django-rest-framework-integration-des-routeurs-partie-4","tag":"django","tag_tech_FromTop":"django","tag_FromTop":"django","num_approx_character":16683,"year":2016,"author":"ycha"},{"id":161,"dateString":"2016-01-07","yearMonthString":"2016-01","title":"Django Rest Framework : fonctionnement des routeurs (partie 3)","link":"https://makina-corpus.com/blog/metier/2016/django-rest-framework-fonctionnement-des-routeurs-partie-3","tag":"django","tag_tech_FromTop":"django","tag_FromTop":"django","num_approx_character":15768,"year":2016,"author":"ycha"},{"id":162,"dateString":"2016-01-06","yearMonthString":"2016-01","title":"D\xe9couvrir le Service Worker","link":"https://makina-corpus.com/blog/metier/2016/decouvrir-le-service-worker","tag":"mobile","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":12777,"year":2016,"author":"ecol"},{"id":163,"dateString":"2016-01-01","yearMonthString":"2016-01","title":"Gulf Stream Story : traitement des donn\xe9es","link":"https://makina-corpus.com/blog/metier/2016/gulf-stream-story-traitement-des-donnees","tag":"python","tag_tech_FromTop":"python","tag_FromTop":"python","num_approx_character":5051,"year":2016,"author":"mbro"},{"id":164,"dateString":"2016-01-01","yearMonthString":"2016-01","title":"Gulf Stream Story : r\xe9cup\xe9rer et visualiser des donn\xe9es oc\xe9anographiques","link":"https://makina-corpus.com/blog/metier/2016/gulf-stream-story-recuperer-et-visualiser-des-donnees-oceanographiques","tag":"dataviz","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":4910,"year":2016,"author":"mbro"},{"id":165,"dateString":"2018-08-13","yearMonthString":"2018-08","title":"Mise en pratique de RxJS dans Angular","link":"https://makina-corpus.com/blog/metier/2017/premiers-pas-avec-rxjs-dans-angular","tag":"angular","tag_tech_FromTop":"angular","tag_FromTop":"autres","num_approx_character":18489,"year":2017,"author":"yfou"},{"id":166,"dateString":"2018-02-15","yearMonthString":"2018-02","title":"Retour d\'exp\xe9rience sur la r\xe9alisation d\'un portail Drupal m\xealant cartographie et Open Data","link":"https://makina-corpus.com/blog/metier/2017/retour-dexperience-sur-un-gros-projet-drupal-7","tag":"SIG / Webmapping","tag_tech_FromTop":"drupal","tag_FromTop":"SIG / Webmapping","num_approx_character":13886,"year":2017,"author":"qdel"},{"id":167,"dateString":"2018-01-17","yearMonthString":"2018-01","title":"Drupal 8 pour un site d\'universit\xe9","link":"https://makina-corpus.com/blog/metier/2017/drupal-pour-un-site-duniversite","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":8789,"year":2017,"author":"sgeo"},{"id":168,"dateString":"2017-10-31","yearMonthString":"2017-10","title":"Localisation d\'un objet par classification de superpixels","link":"https://makina-corpus.com/blog/metier/2017/localisation-dun-objet-par-classification-de-superpixels","tag":"IA / Data Science","tag_tech_FromTop":"python","tag_FromTop":"IA / Data Science","num_approx_character":14177,"year":2017,"author":"bmat"},{"id":169,"dateString":"2017-07-28","yearMonthString":"2017-07","title":"Introduction \xe0 Flexbox","link":"https://makina-corpus.com/blog/metier/2017/introduction-a-flexbox","tag":"front-end","tag_tech_FromTop":"autres","tag_FromTop":"front-end","num_approx_character":4157,"year":2017,"author":"ehel"},{"id":170,"dateString":"2017-06-29","yearMonthString":"2017-06","title":"SEO : indexer une application Javascript","link":"https://makina-corpus.com/blog/metier/2017/seo-indexer-une-application-javascript","tag":"seo","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":9871,"year":2017,"author":"sgeo"},{"id":171,"dateString":"2017-06-29","yearMonthString":"2017-06","title":"Comment mettre en place Angular Universal","link":"https://makina-corpus.com/blog/metier/2017/comment-mettre-en-place-angular-universal","tag":"angular","tag_tech_FromTop":"angular","tag_FromTop":"autres","num_approx_character":13942,"year":2017,"author":"ebre"},{"id":172,"dateString":"2017-06-27","yearMonthString":"2017-06","title":"PostgreSQL utilisations avanc\xe9es de generate_series pour g\xe9n\xe9rer du contenu","link":"https://makina-corpus.com/blog/metier/2017/postgresql-utilisations-avancees-de-generate_series-pour-generer-du-contenu","tag":"sql","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":16679,"year":2017,"author":"rler"},{"id":173,"dateString":"2017-06-14","yearMonthString":"2017-06","title":"Comment mettre en place un site Drupal \\"Headless\\" ?","link":"https://makina-corpus.com/blog/metier/2017/comment-mettre-en-place-un-site-drupal-headless","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":18451,"year":2017,"author":"sgeo"},{"id":174,"dateString":"2017-06-07","yearMonthString":"2017-06","title":"Initiation au Machine Learning avec Python - La pratique","link":"https://makina-corpus.com/blog/metier/2017/initiation-au-machine-learning-avec-python-pratique","tag":"IA / Data Science","tag_tech_FromTop":"python","tag_FromTop":"IA / Data Science","num_approx_character":32825,"year":2017,"author":"gpeg"},{"id":175,"dateString":"2017-06-07","yearMonthString":"2017-06","title":"Initiation au Machine Learning avec Python - La th\xe9orie","link":"https://makina-corpus.com/blog/metier/2017/initiation-au-machine-learning-avec-python-theorie","tag":"IA / Data Science","tag_tech_FromTop":"python","tag_FromTop":"IA / Data Science","num_approx_character":34247,"year":2017,"author":"gpeg"},{"id":176,"dateString":"2017-05-29","yearMonthString":"2017-05","title":"Migrer de SPIP \xe0 Drupal","link":"https://makina-corpus.com/blog/metier/2017/passer-de-spip-a-drupal","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":21285,"year":2017,"author":"sgeo"},{"id":177,"dateString":"2017-05-02","yearMonthString":"2017-05","title":"R\xe9cup\xe9rer des donn\xe9es Hadoop avec Python","link":"https://makina-corpus.com/blog/metier/2017/recuperer-des-donnees-depuis-hadoop-avec-python","tag":"python","tag_tech_FromTop":"python","tag_FromTop":"python","num_approx_character":2973,"year":2017,"author":"amar"},{"id":178,"dateString":"2017-05-02","yearMonthString":"2017-05","title":"Lost in Translation : les d\xe9veloppeurs francophones et l\'anglais","link":"https://makina-corpus.com/blog/metier/2017/lost-in-translation-les-developpeurs-francophones-et-langlais","tag":null,"tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":2951,"year":2017,"author":"amar"},{"id":179,"dateString":"2017-04-05","yearMonthString":"2017-04","title":"La roadmap Drupal 8","link":"https://makina-corpus.com/blog/metier/2017/roadmap-drupal-8","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":14726,"year":2017,"author":"sgeo"},{"id":180,"dateString":"2017-03-30","yearMonthString":"2017-03","title":"PWA : Atteindre un score \xe9lev\xe9 dans Google Lighthouse avec Ionic 2","link":"https://makina-corpus.com/blog/metier/2017/pwa-atteindre-un-score-eleve-dans-google-lighthouse
1-avec-ionic-2","tag":"front-end","tag_tech_FromTop":"autres","tag_FromTop":"front-end","num_approx_character":2939,"year":2017,"author":"balv"},{"id":181,"dateString":"2017-02-21","yearMonthString":"2017-02","title":"Bien g\xe9rer le passage au d\xe9veloppement front end","link":"https://makina-corpus.com/blog/metier/2017/bien-gerer-le-passage-au-developpement-front-end","tag":"front-end","tag_tech_FromTop":"autres","tag_FromTop":"front-end","num_approx_character":3997,"year":2017,"author":"ebre"},{"id":182,"dateString":"2017-01-31","yearMonthString":"2017-01","title":"Introduction aux animations Angular","link":"https://makina-corpus.com/blog/metier/2017/introduction-aux-animations-angular","tag":"angular","tag_tech_FromTop":"angular","tag_FromTop":"autres","num_approx_character":1745,"year":2017,"author":"balv"},{"id":183,"dateString":"2017-01-16","yearMonthString":"2017-01","title":"Et votre DSI, il fait quoi en 2017 ?","link":"https://makina-corpus.com/blog/metier/2017/et-votre-dsi-il-fait-quoi-en-2017","tag":null,"tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":8579,"year":2017,"author":"sgeo"},{"id":184,"dateString":"2016-11-10","yearMonthString":"2016-11","title":"Pr\xe9sentation de l\'\xe9cosyst\xe8me Python scientifique","link":"https://makina-corpus.com/blog/metier/2017/presentation-de-lecosysteme-python-scientifique","tag":"python","tag_tech_FromTop":"python","tag_FromTop":"python","num_approx_character":19475,"year":2017,"author":"gpeg"},{"id":185,"dateString":"2019-09-19","yearMonthString":"2019-09","title":"S\xe9curit\xe9 : Contrebande de HTTP, Apache Traffic Server","link":"https://makina-corpus.com/blog/metier/2018/securite-contrebande-de-http-apache-traffic-server","tag":"s\xe9curit\xe9","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":41776,"year":2018,"author":"rler"},{"id":186,"dateString":"2018-12-18","yearMonthString":"2018-12","title":"Une usine \xe0 sites en Drupal","link":"https://makina-corpus.com/blog/metier/2018/usine-a-site-drupal","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":14935,"year":2018,"author":"sgeo"},{"id":187,"dateString":"2018-12-03","yearMonthString":"2018-12","title":"Pourquoi mettre \xe0 jour son Python (r\xe9guli\xe8rement)","link":"https://makina-corpus.com/blog/metier/2018/pourquoi-mettre-a-jour-son-python-regulierement","tag":"python","tag_tech_FromTop":"python","tag_FromTop":"python","num_approx_character":8565,"year":2018,"author":"scor"},{"id":188,"dateString":"2018-11-27","yearMonthString":"2018-11","title":"Internationalisation avec Django","link":"https://makina-corpus.com/blog/metier/2018/internationalisation-avec-django","tag":"django","tag_tech_FromTop":"django","tag_FromTop":"django","num_approx_character":13559,"year":2018,"author":"vmon"},{"id":189,"dateString":"2018-10-16","yearMonthString":"2018-10","title":"Mettre en place Angular Universal avec Angular 6 et 7","link":"https://makina-corpus.com/blog/metier/2018/mettre-en-place-angular-universal-avec-angular-6-angular-7","tag":"angular","tag_tech_FromTop":"angular","tag_FromTop":"autres","num_approx_character":23655,"year":2018,"author":"tdes"},{"id":190,"dateString":"2018-10-08","yearMonthString":"2018-10","title":"10 choses qui me font aimer Python","link":"https://makina-corpus.com/blog/metier/2018/10-choses-qui-me-font-aimer-python","tag":"python","tag_tech_FromTop":"python","tag_FromTop":"python","num_approx_character":5170,"year":2018,"author":"scor"},{"id":191,"dateString":"2018-09-10","yearMonthString":"2018-09","title":"S\xe9curit\xe9 HTTP : Apache Traffic Server - Contrebande de HTTP","link":"https://makina-corpus.com/blog/metier/2018/securite-http-apache-traffic-server-contrebande-de-http","tag":"s\xe9curit\xe9","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":2530,"year":2018,"author":"rler"},{"id":192,"dateString":"2018-08-17","yearMonthString":"2018-08","title":"Clustering pour l\'analyse de la biodiversit\xe9","link":"https://makina-corpus.com/blog/metier/2018/clustering-pour-lanalyse-de-la-biodiversite","tag":"IA / Data Science","tag_tech_FromTop":"autres","tag_FromTop":"IA / Data Science","num_approx_character":13002,"year":2018,"author":"ache"},{"id":193,"dateString":"2018-08-13","yearMonthString":"2018-08","title":"Les nouveaut\xe9s de Typescript 3.0","link":"https://makina-corpus.com/blog/metier/2018/les-nouveautes-de-typescript-3.0","tag":"front-end","tag_tech_FromTop":"autres","tag_FromTop":"front-end","num_approx_character":13252,"year":2018,"author":"tdes"},{"id":194,"dateString":"2018-07-03","yearMonthString":"2018-07","title":"Contrebande de HTTP (Smuggling): Load Balancer Apsis Pound","link":"https://makina-corpus.com/blog/metier/2018/contrebande-
1de-http-smuggling-load-balancer-apsis-pound","tag":"front-end","tag_tech_FromTop":"autres","tag_FromTop":"front-end","num_approx_character":18979,"year":2018,"author":"rler"},{"id":195,"dateString":"2018-06-18","yearMonthString":"2018-06","title":"Makina Corpus et Drupal","link":"https://makina-corpus.com/blog/metier/2018/makina-corpus-et-drupal","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":4066,"year":2018,"author":"qdel"},{"id":196,"dateString":"2018-06-08","yearMonthString":"2018-06","title":"Routing Angular : optimisez le rendu au changement de page","link":"https://makina-corpus.com/blog/metier/2018/routing-angular-optimisez-le-rendu-au-changement-de-page","tag":"angular","tag_tech_FromTop":"angular","tag_FromTop":"autres","num_approx_character":14764,"year":2018,"author":"tdes"},{"id":197,"dateString":"2018-05-24","yearMonthString":"2018-05","title":"Comment d\xe9marrer un projet Symfony 4 en 5 minutes","link":"https://makina-corpus.com/blog/metier/2018/comment-demarrer-un-projet-symfony-4-en-5-minutes","tag":"symfony","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":4109,"year":2018,"author":"sgeo"},{"id":198,"dateString":"2018-05-17","yearMonthString":"2018-05","title":"Deep Learning et d\xe9tection d\'\xe9motions ","link":"https://makina-corpus.com/blog/metier/2018/deep-learning-et-detection-demotions","tag":"IA / Data Science","tag_tech_FromTop":"autres","tag_FromTop":"IA / Data Science","num_approx_character":9275,"year":2018,"author":"bmat"},{"id":199,"dateString":"2018-05-07","yearMonthString":"2018-05","title":"Faire des calculs g\xe9ographiques en Python sans PostGIS","link":"https://makina-corpus.com/blog/metier/2018/faire-des-calculs-geographique-en-python-sans-postgis","tag":"SIG / Webmapping","tag_tech_FromTop":"python","tag_FromTop":"SIG / Webmapping","num_approx_character":5153,"year":2018,"author":"yfou"},{"id":200,"dateString":"2018-04-24","yearMonthString":"2018-04","title":"Breaking news : j\'aime la communaut\xe9 Drupal !","link":"https://makina-corpus.com/blog/metier/2018/breaking-news-jaime-la-communaute-drupal","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":6680,"year":2018,"author":"rmor"},{"id":201,"dateString":"2018-04-06","yearMonthString":"2018-04","title":"React 16.3 : Introduction de la context API","link":"https://makina-corpus.com/blog/metier/2018/react-16-3-utilisation-de-la-context-api","tag":"front-end","tag_tech_FromTop":"autres","tag_FromTop":"front-end","num_approx_character":4048,"year":2018,"author":"balv"},{"id":202,"dateString":"2018-04-01","yearMonthString":"2018-04","title":"Hackaviz 2018, recette d\'une visualisation de donn\xe9es","link":"https://makina-corpus.com/blog/metier/2018/hackaviz-2018","tag":"dataviz","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":5106,"year":2018,"author":"mcor"},{"id":203,"dateString":"2018-03-20","yearMonthString":"2018-03","title":"Machine Learning : classer automatiquement vos donn\xe9es \xe0 l\'import","link":"https://makina-corpus.com/blog/metier/2018/machine-learning-import-donnees","tag":"IA / Data Science","tag_tech_FromTop":"autres","tag_FromTop":"IA / Data Science","num_approx_character":15940,"year":2018,"author":"sgeo"},{"id":204,"dateString":"2018-03-14","yearMonthString":"2018-03","title":"Varnish et Drupal : g\xe9rer un cache anonyme \xe9tendu","link":"https://makina-corpus.com/blog/metier/2018/varnish-et-drupal-gerer-un-cache-anonyme-etendu","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":52194,"year":2018,"author":"rler"},{"id":205,"dateString":"2018-03-01","yearMonthString":"2018-03","title":"Superset, l\'outil de DataViz de AirBnB","link":"https://makina-corpus.com/blog/metier/2018/superset-loutil-de-dataviz-de-airbnb","tag":"dataviz","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":7550,"year":2018,"author":"bmat"},{"id":206,"dateString":"2018-02-09","yearMonthString":"2018-02","title":"R\xe9-ordonner des lignes dans PostGIS avec une requ\xeate r\xe9cursive","link":"https://makina-corpus.com/blog/metier/2018/re-ordonner
1-des-lignes-dans-postgis-avec-une-requete-recursive","tag":"sql","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":1678,"year":2018,"author":"fbon"},{"id":207,"dateString":"2018-02-02","yearMonthString":"2018-02","title":"Calcul d\'itin\xe9raires pi\xe9tons avec OSRM","link":"https://makina-corpus.com/blog/metier/2018/calcul-ditineraires-pietons-avec-osrm","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":4963,"year":2018,"author":"fbon"},{"id":208,"dateString":"2018-01-22","yearMonthString":"2018-01","title":"Scraping & Machine Learning : comment fonctionne un moteur de recherche ?","link":"https://makina-corpus.com/blog/metier/2018/seo-scraping-machine-learning-comprendre-le-fonctionnement-dun-moteur-de-recherche","tag":"IA / Data Science","tag_tech_FromTop":"autres","tag_FromTop":"IA / Data Science","num_approx_character":23344,"year":2018,"author":"sgeo"},{"id":209,"dateString":"2020-01-30","yearMonthString":"2020-01","title":"SIG : Pr\xe9paration de donn\xe9es pour la cr\xe9ation de tuiles vectorielles","link":"https://makina-corpus.com/blog/metier/2019/preparation-de-donnees-pour-la-creation-de-tuiles-vectorielles","tag":"SIG / Webmapping","tag_tech_FromTop":"tuilage","tag_FromTop":"SIG / Webmapping","num_approx_character":14648,"year":2019,"author":"bpal"},{"id":210,"dateString":"2019-11-26","yearMonthString":"2019-11","title":"Carte de Cassini vectorielle","link":"https://makina-corpus.com/blog/metier/2019/carte-de-cassini-vectorielle","tag":"SIG / Webmapping","tag_tech_FromTop":"tuilage","tag_FromTop":"SIG / Webmapping","num_approx_character":23666,"year":2019,"author":"frod"},{"id":211,"dateString":"2019-11-19","yearMonthString":"2019-11","title":"Lier les photographies d\'un observatoire ayant des th\xe9matiques communes","link":"https://makina-corpus.com/blog/metier/2019/lier-les-photographies-dun-observatoire-ayant-des-thematiques-communes","tag":"IA / Data Science","tag_tech_FromTop":"autres","tag_FromTop":"IA / Data Science","num_approx_character":18709,"year":2019,"author":"bmat"},{"id":212,"dateString":"2019-11-14","yearMonthString":"2019-11","title":"Indexer et agr\xe9ger des donn\xe9es sur une sph\xe8re de mani\xe8re homog\xe8ne","link":"https://makina-corpus.com/blog/metier/2019/indexer-et-agreger-homogenement-des-donnees-sur-une-sphere","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":5544,"year":2019,"author":"frod"},{"id":213,"dateString":"2019-11-12","yearMonthString":"2019-11","title":"Am\xe9liorez votre SQL : utilisez des index filtr\xe9s","link":"https://makina-corpus.com/blog/metier/2019/ameliorez-votre-sql-utilisez-des-index-filtres","tag":"sql","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":9181,"year":2019,"author":"rler"},{"id":214,"dateString":"2019-11-05","yearMonthString":"2019-11","title":"Am\xe9liorez votre SQL : utilisez des invariants dans les conditions","link":"https://makina-corpus.com/blog/metier/2019/ameliorez-votre-sql-utilisez-des-invariants-dans-les-conditions","tag":"sql","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":17844,"year":2019,"author":"rler"},{"id":215,"dateString":"2019-10-18","yearMonthString":"2019-10","title":"Augmenter l\'int\xe9ractivit\xe9 de vos notebooks Jupyter","link":"https://makina-corpus.com/blog/metier/2019/augmenter-linteractivite-de-vos-notebooks-jupyter-1","tag":"IA / Data Science","tag_tech_FromTop":"python","tag_FromTop":"IA / Data Science","num_approx_character":14013,"year":2019,"author":"dler"},{"id":216,"dateString":"2019-10-15","yearMonthString":"2019-10","title":"Les logiciels et API pour g\xe9ocoder","link":"https://makina-corpus.com/blog/metier/2019/les-logiciels-et-api-pour-geocoder","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":23339,"year":2019,"author":"frod"},{"id":217,"dateString":"2019-10-10","yearMonthString":"2019-10","title":"G\xe9ocodeur : la th\xe9orie","link":"https://makina-corpus.com/blog/metier/2019/geocodeur-la-theorie","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":11687,"year":2019,"author":"frod"},{"id":218,"dateString":"2019-10-08","yearMonthString":"2019-10","title":"Index g\xe9ographique : avant le g\xe9ocodage, le gazetteer","link":"https://makina-corpus.com/blog/metier/2019/index-geographique-avant-le-geocodage-le-gazetteer","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":11466,"year":2019,"author":"frod"},{"id":219,"dateString":"2019-07-03","yearMonthString":"2019-07","title":"Cr\xe9er une carte avec Umap","link":"https://makina-corpus.com/blog/metier/2019/creer-une-carte-avec-umap","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":7215,"year":2019,"author":"ehel"},{"id":220,"dateString":"2019-06-26","yearMonthString":"2019-06","title":"Retour sur le State of the Map France 2019","link":"https://makina-corpus.com/blog/metier/2019/retour-sur
1-le-state-of-the-map-france-2019","tag":null,"tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":21056,"year":2019,"author":"frod"},{"id":221,"dateString":"2019-05-14","yearMonthString":"2019-05","title":"Utilisation de la vision par ordinateur pour redresser des images","link":"https://makina-corpus.com/blog/metier/2019/redressement-dimages","tag":"IA / Data Science","tag_tech_FromTop":"autres","tag_FromTop":"IA / Data Science","num_approx_character":6791,"year":2019,"author":"pmil"},{"id":222,"dateString":"2019-04-29","yearMonthString":"2019-04","title":"Contrebande de HTTP (HTTP Smuggling): Jetty","link":"https://makina-corpus.com/blog/metier/2019/contrebande-de-http-http-smuggling-jetty","tag":"s\xe9curit\xe9","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":19249,"year":2019,"author":"rler"},{"id":223,"dateString":"2019-04-15","yearMonthString":"2019-04","title":"Des boucles de composants g\xe9n\xe9riques avec Angular","link":"https://makina-corpus.com/blog/metier/2019/des-boucles-generiques-de-composants-avec-angular","tag":"angular","tag_tech_FromTop":"angular","tag_FromTop":"autres","num_approx_character":13515,"year":2019,"author":"tdes"},{"id":224,"dateString":"2019-04-08","yearMonthString":"2019-04","title":"Notre expertise en Data science","link":"https://makina-corpus.com/blog/metier/2019/expertise-data-science-IA","tag":"IA / Data Science","tag_tech_FromTop":"autres","tag_FromTop":"IA / Data Science","num_approx_character":5104,"year":2019,"author":"bmat"},{"id":225,"dateString":"2019-03-18","yearMonthString":"2019-03","title":"Bien configurer ses tests Python avec tox et Travis","link":"https://makina-corpus.com/blog/metier/2019/bien-configurer-ses-tests-python-avec-tox-et-travis","tag":"python","tag_tech_FromTop":"python","tag_FromTop":"python","num_approx_character":4112,"year":2019,"author":"yfou"},{"id":226,"dateString":"2019-02-16","yearMonthString":"2019-02","title":"Mon Top 30 des modules Drupal 8","link":"https://makina-corpus.com/blog/metier/2019/top-drupal-modules","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":25153,"year":2019,"author":"sgeo"},{"id":227,"dateString":"2019-02-15","yearMonthString":"2019-02","title":"Drupal : un CMS pas comme les autres","link":"https://makina-corpus.com/blog/metier/2019/drupal-un-cms-pas-comme-les-autres","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":8090,"year":2019,"author":"sgeo"},{"id":228,"dateString":"2019-02-14","yearMonthString":"2019-02","title":"G\xe9rer des projets avec Gitlab","link":"https://makina-corpus.com/blog/metier/2019/gitlab-astuces-projets","tag":"projet","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":7857,"year":2019,"author":"ehel"},{"id":229,"dateString":"2019-02-14","yearMonthString":"2019-02","title":"D\xe9tecter des formes dans des photos de paysage","link":"https://makina-corpus.com/blog/metier/2019/detecter-des-formes-dans-des-photos-satellites","tag":"IA / Data Science","tag_tech_FromTop":"autres","tag_FromTop":"IA / Data Science","num_approx_character":4659,"year":2019,"author":"dler"},{"id":230,"dateString":"2019-02-11","yearMonthString":"2019-02","title":"Repr\xe9sentation des mod\xe8les num\xe9riques de terrain sur le web : ombrage et 3D","link":"https://makina-corpus.com/blog/metier/2019/modeles-numeriques-terrain-ombrage-3D","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":10163,"year":2019,"author":"frod"},{"id":231,"dateString":"2019-01-28","yearMonthString":"2019-01","title":"Machine learning : d\xe9tection d\'anomalies","link":"https://makina-corpus.com/blog/metier/2019/machine-learning-detection-anomalies","tag":"IA / Data Science","tag_tech_FromTop":"autres","tag_FromTop":"IA / Data Science","num_approx_character":9257,"year":2019,"author":"sgeo"},{"id":232,"dateString":"2019-01-25","yearMonthString":"2019-01","title":"R\xe9tro(pro)spective","link":"https://makina-corpus.com/blog/metier/2019/retro-pro-spective","tag":null,"tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":8738,"year":2019,"author":"sgeo"},{"id":233,"dateString":"2019-01-21","yearMonthString":"2019-01","title":"Pr\xe9diction du taux de monoxyde de carbone \xe0 Madrid - int\xe9r\xeat d\'une approche Deep Learning","link":"https://makina-corpus.com/blog/metier/2019/qualite-de-lair-a-madrid","tag":"IA / Data Science","tag_tech_FromTop":"autres","tag_FromTop":"IA / Data Science","num_approx_character":15675,"year":2019,"author":"bmat"},{"id":234,"dateString":"2019-01-08","yearMonthString":"2019-01","title":"Cartographie Web 3D - possibilit\xe9s techniques en logiciels libres","link":"https://makina-corpus.com/blog/metier/2019/carte-web-3d","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":6673,"year":2019,"author":"frod"},{"id":235,"dateString":"2019-01-08","yearMonthString":"2019-01","title":"Cartographier le manteau neigeux avec Python","link":"https://makina-corpus.com/blog/metier/2019/python-carto","tag":"SIG / Webmapping","tag_tech_FromTop":"python","tag_FromTop":"SIG / Webmapping","num_approx_character":9033,"year":2019,"author":"dler"},{"id":236,"dateString":"2018-12-18","yearMonthString":"2018-12","title":"Drupal 8 : Dynamiser vos contenus \xe0 l\'aide des formulaires AJAX","link":"https://makina-corpus.com/blog/metier/2019/drupal-8-dynamiser-vos-contenus-a-laide-des-ajax-commands","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":6503,"year":2019,"author":"smel"},{"id":237,"dateString":"2020-12-31","yearMonthString":"2020-12","t
1itle":"Migration d\'un site Drupal 7 en Drupal 9","link":"https://makina-corpus.com/blog/metier/2020/histoire-dune-migration-de-drupal-7-a-drupal-9","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":15419,"year":2020,"author":"sgeo"},{"id":238,"dateString":"2020-12-22","yearMonthString":"2020-12","title":"Cr\xe9er un tag d\'inclusion avec param\xe8tres dans Django","link":"https://makina-corpus.com/blog/metier/2020/creer-un-tag-dinclusion-avec-parametres-dans-django","tag":"django","tag_tech_FromTop":"django","tag_FromTop":"django","num_approx_character":5862,"year":2020,"author":"scor"},{"id":239,"dateString":"2020-11-12","yearMonthString":"2020-11","title":"Pr\xe9sentation de django-admin-watchdog","link":"https://makina-corpus.com/blog/metier/2020/presentation-django-admin-watchdog","tag":"django","tag_tech_FromTop":"django","tag_FromTop":"django","num_approx_character":851,"year":2020,"author":"yfou"},{"id":240,"dateString":"2020-11-03","yearMonthString":"2020-11","title":"Pr\xe9sentation de django-tracking-fields","link":"https://makina-corpus.com/blog/metier/2020/presentation-django-tracking-fields","tag":"django","tag_tech_FromTop":"django","tag_FromTop":"django","num_approx_character":1305,"year":2020,"author":"yfou"},{"id":241,"dateString":"2020-10-01","yearMonthString":"2020-10","title":"QGIS\xa0: le nouveau support des tuiles rasters et vectorielles","link":"https://makina-corpus.com/blog/metier/2020/qgis-nouveau-support-tuiles-rasters-vectorielles","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":2605,"year":2020,"author":"frod"},{"id":242,"dateString":"2020-09-01","yearMonthString":"2020-09","title":"Drupal & Gatsby : retour d\'exp\xe9rimentation","link":"https://makina-corpus.com/blog/metier/2020/drupal-gatsby-retour-dexperiementation","tag":"front-end","tag_tech_FromTop":"autres","tag_FromTop":"front-end","num_approx_character":9417,"year":2020,"author":"smel"},{"id":243,"dateString":"2020-09-01","yearMonthString":"2020-09","title":"IA et cartographie : l\'IA pour d\xe9couvrir un territoire  [Article 2]","link":"https://makina-corpus.com/blog/metier/2020/ia-et-cartographie-lia-pour-decouvrir-un-territoire","tag":"IA / Data Science","tag_tech_FromTop":"autres","tag_FromTop":"IA / Data Science","num_approx_character":7600,"year":2020,"author":"dler"},{"id":244,"dateString":"2020-08-04","yearMonthString":"2020-08","title":"IA & cartographie : l\'IA pour cr\xe9er des cartes [Article 1]","link":"https://makina-corpus.com/blog/metier/2020/ia-et-cartographie-lia-pour-creer-des-cartes","tag":"IA / Data Science","tag_tech_FromTop":"autres","tag_FromTop":"IA / Data Science","num_approx_character":11337,"year":2020,"author":"dler"},{"id":245,"dateString":"2020-07-30","yearMonthString":"2020-07","title":"Web mapping\xa0: comparaison des serveurs de tuiles vectorielles depuis Postgres / PostGIS","link":"https://makina-corpus.com/blog/metier/2020/web-mapping-comparaison-des-serveurs-de-tuiles-vectorielles-depuis-postgres-postgis","tag":"SIG / Webmapping","tag_tech_FromTop":"tuilage","tag_FromTop":"SIG / Webmapping","num_approx_character":11198,"year":2020,"author":"frod"},{"id":246,"dateString":"2020-07-28","yearMonthString":"2020-07","title":"S\xe9rie d\'articles : IA & cartographie ","link":"https://makina-corpus.com/blog/metier/2020/ia-et-cartographie","tag":"IA / Data Science","tag_tech_FromTop":"autres","tag_FromTop":"IA / Data Science","num_approx_character":2272,"year":2020,"author":"dler"},{"id":247,"dateString":"2020-07-21","yearMonthString":"2020-07","title":"Migrer une application de Python 2 \xe0 Python 3","link":"https://makina-corpus.com/blog/metier/2020/migrer-python-2-python-3","tag":"python","tag_tech_FromTop":"python","tag_FromTop":"python","num_approx_character":3347,"year":2020,"author":"yfou"},{"id":248,"dateString":"2020-06-25","yearMonthString":"2020-06","title":"Une approche de reconstruction automatique de la g\xe9om\xe9trie des bureaux de vote","link":"https://makina-corpus.com/blog/metier/2020/approche-reconstruction-automatique-geometrie-bureaux-vote","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":25713,"year":2020,"author":"frod"},{"id":249,"dateString":"2020-06-23","yearMonthString":"2020-06","title":"Application cartographique : TerraVisu ","link":"https://makina-corpus.com/blog/metier/2020/application-cartographique-terravisu","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":7204,"year":2020,"author":"mfau"},{"id":250,"dateString":"2020-06-18","yearMonthString":"2020-06","title":"Extraction d\'objets pour la cartographie par deep-learning : \xe9valuation du mod\xe8le","link":"https://makina-corpus.com/blog/metier/2020/extraction-dobjets-p
1our-la-cartographie-par-deep-learning-evaluation-du-modele","tag":"IA / Data Science","tag_tech_FromTop":"autres","tag_FromTop":"IA / Data Science","num_approx_character":15697,"year":2020,"author":"lcam"},{"id":251,"dateString":"2020-06-04","yearMonthString":"2020-06","title":"Extraction d\'objets pour la cartographie par deep-learning : choix du mod\xe8le","link":"https://makina-corpus.com/blog/metier/2020/extraction-dobjets-pour-la-cartographie-par-deep-learning-choix-du-modele","tag":"IA / Data Science","tag_tech_FromTop":"autres","tag_FromTop":"IA / Data Science","num_approx_character":20160,"year":2020,"author":"lcam"},{"id":252,"dateString":"2020-06-02","yearMonthString":"2020-06","title":"S\xe9rie d\'articles, 4\xe8me article : le cas concret d\'un r\xe9seau de neurones siamois","link":"https://makina-corpus.com/blog/metier/2020/serie-articles-4-article-cas-concret-reseau-neurones-siamois","tag":"IA / Data Science","tag_tech_FromTop":"autres","tag_FromTop":"IA / Data Science","num_approx_character":7315,"year":2020,"author":"abou"},{"id":253,"dateString":"2020-05-28","yearMonthString":"2020-05","title":"Sortie de Drupal 9 : pr\xe9parez-vous !","link":"https://makina-corpus.com/blog/metier/2020/preparez-vous-sortie-drupal-9","tag":"drupal","tag_tech_FromTop":"drupal","tag_FromTop":"drupal","num_approx_character":8428,"year":2020,"author":"slav"},{"id":254,"dateString":"2020-05-20","yearMonthString":"2020-05","title":"Extraction d\'objets pour la cartographie par deep-learning : cr\xe9ation d\'une v\xe9rit\xe9 terrain","link":"https://makina-corpus.com/blog/metier/2020/extraction-dobjets-pour-la-cartographie-par-deep-learning-creation-dune-verite-terrain","tag":"IA / Data Science","tag_tech_FromTop":"autres","tag_FromTop":"IA / Data Science","num_approx_character":19483,"year":2020,"author":"lcam"},{"id":255,"dateString":"2020-05-14","yearMonthString":"2020-05","title":"Visualiser les inondations avec Sentinel-2","link":"https://makina-corpus.com/blog/metier/2020/visualiser-inondations-sentinel-2","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":2196,"year":2020,"author":"pmil"},{"id":256,"dateString":"2020-05-05","yearMonthString":"2020-05","title":"Enrichissement de donn\xe9es ouvertes, croisement spatial et web s\xe9mantique","link":"https://makina-corpus.com/blog/metier/2020/enrichissement-donnees-ouvertes-croisement-spatial-web-semantique","tag":"opendata","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":16813,"year":2020,"author":"frod"},{"id":257,"dateString":"2020-04-30","yearMonthString":"2020-04","title":"\xcatre plus \xe0 l\'aise en visio avec Jitsi","link":"https://makina-corpus.com/blog/metier/2020/utiliser-jitsi","tag":"projet","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":3824,"year":2020,"author":"bmar"},{"id":258,"dateString":"2020-04-15","yearMonthString":"2020-04","title":"S\xe9rie d\'articles, 3\xe8me article : All\xe9ger les besoins en donn\xe9es","link":"https://makina-corpus.com/blog/metier/2020/alleger-les-besoins-en-donnees","tag":"IA / Data Science","tag_tech_FromTop":"autres","tag_FromTop":"IA / Data Science","num_approx_character":12931,"year":2020,"author":"abou"},{"id":259,"dateString":"2020-04-07","yearMonthString":"2020-04","title":"SIG : Mettre en place des tuiles vectorielles","link":"https://makina-corpus.com/blog/metier/2020/sig-mettre-en-place-des-tuiles-vectorielles","tag":"SIG / Webmapping","tag_tech_FromTop":"tuilage","tag_FromTop":"SIG / Webmapping","num_approx_character":8771,"year":2020,"author":"sgeo"},{"id":260,"dateString":"2020-03-31","yearMonthString":"2020-03","title":"Parall\xe9liser des requ\xeates avec PostgreSQL","link":"https://makina-corpus.com/blog/metier/2020/paralleliser-des-requetes-avec-postgresql","tag":"sql","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":12369,"year":2020,"author":"frod"},{"id":261,"dateString":"2020-03-05","yearMonthString":"2020-03","title":"S\xe9rie d\'articles, 2\xe8me article : Permettre \xe0 une IA de s\'adapter","link":"https://makina-corpus.com/blog/metier/2020/permettre-ia-de-sadapter","tag":"IA / Data Science","tag_tech_FromTop":"autres","tag_FromTop":"IA / Data Science","num_approx_character":10167,"year":2020,"author":"abou"},{"id":262,"dateString":"2020-02-27","yearMonthString":"2020-02","t
1itle":"ImpOsm2pgRouting : calcul d\u2019itin\xe9raires sur un r\xe9seau de voirie OpenStreetMap en profitant des mises \xe0 jour","link":"https://makina-corpus.com/blog/metier/2020/calcul-itineraires-reseau-voirie-openstreetmap-profitant-mises-a-jour","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":13687,"year":2020,"author":"frod"},{"id":263,"dateString":"2020-02-26","yearMonthString":"2020-02","title":"Symfony : utiliser une contrainte de type Callback dans un formulaire pour de la validation sp\xe9cifique","link":"https://makina-corpus.com/blog/metier/2020/symfony-utiliser-contrainte-de-type-callback-dans-un-form-pour-de-la-validation-metier","tag":"symfony","tag_tech_FromTop":"autres","tag_FromTop":"autres","num_approx_character":7981,"year":2020,"author":"smel"},{"id":264,"dateString":"2020-02-25","yearMonthString":"2020-02","title":"Comment r\xe9ussir son projet de machine learning ?","link":"https://makina-corpus.com/blog/metier/2020/reussir-son-projet-de-machine-learning","tag":"IA / Data Science","tag_tech_FromTop":"autres","tag_FromTop":"IA / Data Science","num_approx_character":9185,"year":2020,"author":"sgeo"},{"id":265,"dateString":"2020-02-13","yearMonthString":"2020-02","title":"S\xe9rie d\'articles, 1er article : ces innovations qui permettent \xe0 l\'IA de sortir des laboratoires","link":"https://makina-corpus.com/blog/metier/2020/integration-realiste-ias-applications-metiers","tag":"IA / Data Science","tag_tech_FromTop":"autres","tag_FromTop":"IA / Data Science","num_approx_character":10664,"year":2020,"author":"bmat"},{"id":266,"dateString":"2020-02-13","yearMonthString":"2020-02","title":"S\xe9rie d\'articles, article de pr\xe9sentation : ces innovations qui permettent \xe0 l\'IA de sortir des laboratoires","link":"https://makina-corpus.com/blog/metier/2020/innovations-lia-sortir-laboratoires","tag":"IA / Data Science","tag_tech_FromTop":"autres","tag_FromTop":"IA / Data Science","num_approx_character":1154,"year":2020,"author":"bmat"},{"id":267,"dateString":"2020-02-04","yearMonthString":"2020-02","title":"Optimisation de la production de tuiles vectorielles de fond de carte OpenStreetMap pour un service \xe0 la demande : Makina Maps","link":"https://makina-corpus.com/blog/metier/2020/optimisation-de-la-production-de-tuiles-vectorielles-de-fond-de-carte-openstreetmap-pour-un-service-a-la-demande","tag":"SIG / Webmapping","tag_tech_FromTop":"tuilage","tag_FromTop":"SIG / Webmapping","num_approx_character":21103,"year":2020,"author":"frod"},{"id":268,"dateString":"2020-01-16","yearMonthString":"2020-01","title":"Mise en correspondance de donn\xe9es textuelles h\xe9t\xe9roclites","link":"https://makina-corpus.com/blog/metier/2020/mise-en-correspondance-de-donnees-textuelles-heteroclites","tag":"IA / Data Science","tag_tech_FromTop":"autres","tag_FromTop":"IA / Data Science","num_approx_character":12216,"year":2020,"author":"bmat"},{"id":269,"dateString":"2020-01-14","yearMonthString":"2020-01","title":"Recherche et d\xe9veloppement d\u2019indicateurs pour l\u2019am\xe9nagement d\u2019un territoire","link":"https://makina-corpus.com/blog/metier/2020/recherche-et-developpement-d-indicateurs-pour-l-amenagement-d-un-territoire","tag":"SIG / Webmapping","tag_tech_FromTop":"autres","tag_FromTop":"SIG / Webmapping","num_approx_character":9969,"year":2020,"author":"yiin"},{"id":270,"dateString":"2013-07-09","yearMonthString":"2013-07","title":"Pr\xe9sentation de Django-Safedelete","link":"https://makina-corpus.com/blog/metier/2020/presentation-django-safedelete","tag":"django","tag_tech_FromTop":"django","tag_FromTop":"django","num_approx_character":3228,"year":2020,"author":"stka"}]')},372:function(t,e,a){"use strict";a.r(e);var r=a(0),o=a.n(r),n=a(54),i=a.n(n),c=a(426),p=a(425),s=(a(215),a(216),a(5)),u=a(397),l=a(177),g=a(2),m=function(t){var e=Object.assign({},t);return Object(g.jsxs)(g.Fragment,{children:[Object(g.jsx)(l.a,{htmlAttributes:{lang:"fr"},title:"Il \xe9tait une fois le blog de Makina Corpus"}),Object(g.jsx)(u.a,Object(s.a)({maxWidth:"md",component:"main"},e))]})},h=a(427),d=a(398),_=a(377),b=Object(d.a)((function(t){return{title:{textAlign:"center"}}})),y=function(t){var e=t.title,a=t.subtitle,r=b();return Object(g.jsxs)(h.a,{className:r.title,children:[Object(g.jsx)(_.a,{variant:"h1",gutterBottom:!0,children:e}),Object(g.jsx)(_.a,{variant:"h2",gutterBottom:!0,children:a})]})},S=a(20),f=a.n(S),k=a(62),j=a(73),x=a(184),T=a.n(x),F=a(399),v=function(){var t=Object(j.useSpring)({from:{transform:"translateY(-10px)"},to:function(){var t=Object(k.a)(f.a.mark((function t(e){return f.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=3,e({transform:"translateY(10px)"});case 3:return t.next=5,e({transform:"translateY(-10px)"});case 5:t.next=0;break;case 7:case"end":return t.stop()}}),t)})));return function(e){return t.apply(this,arguments)}}()});return Object(g.jsx)(j.animated.div,{style:t,children:Object(g.jsxs)(F.a,{container:!0,direction:"column",alignItems:"center",children:["Scroll",Object(g.jsx)(T.a,{})]})})},O=Object(d.a)((function(t){return{coloredTitle:{backgroundColor:t.palette.secondary.main,borderBottom:"4px solid lightgrey",padding:t.spacing(30,0,5,0),margin:t.spacing(0,0,5,0),textAlign:"center"},scrollHint:{margin:t.spacing(8,0,0,0)}}})),M=function(){var t=O();return Object(g.jsxs)(h.a,{className:t.coloredTitle,children:[Object(g.jsx)(u.a,{maxWidth:"md",children:Object(g.jsx)(y,{className:t.titleText,title:"Il \xe9tait une fois le blog de Makina Corpus",subtitle:"Ce que la r\xe9trospective de nos articles de blog peut nous apprendre gr\xe2ce \xe0 la visualisation de donn\xe9es"})}
1),Object(g.jsx)(h.a,{className:t.scrollHint,children:Object(g.jsx)(v,{})})]})},I=a(8),D=a(185),w=a.n(D),A=a(186),G=a.n(A),W=a(187),q=a.n(W),P=a(188),C=a.n(P),L=a(400),N=Object(d.a)((function(t){return{paragraph:{margin:t.spacing(3,0)},niceLink:{color:"black",background:"#d0dd2a",padding:"1px 3px","&:hover":{background:"grey",color:"white",textDecoration:"none"}}}})),z=function(t){var e=t.markdownFile,a=N(),n=Object(r.useState)(""),i=Object(I.a)(n,2),c=i[0],p=i[1],u={createElement:o.a.createElement,Fragment:o.a.Fragment,components:{h1:function(t){return Object(g.jsx)(_.a,Object(s.a)({variant:"h1",gutterBottom:!0},t))},h2:function(t){return Object(g.jsx)(_.a,Object(s.a)({variant:"h2",gutterBottom:!0},t))},h3:function(t){return Object(g.jsx)(_.a,Object(s.a)({variant:"h3",gutterBottom:!0},t))},h4:function(t){return Object(g.jsx)(_.a,Object(s.a)({variant:"h4",gutterBottom:!0},t))},h5:function(t){return Object(g.jsx)(_.a,Object(s.a)({variant:"h5",gutterBottom:!0},t))},h6:function(t){return Object(g.jsx)(_.a,Object(s.a)({variant:"h6",gutterBottom:!0},t))},p:function(t){return Object(g.jsx)(_.a,Object(s.a)({variant:"body1",className:a.paragraph},t))},a:function(t){return Object(g.jsx)(L.a,Object(s.a)({target:"_blank",rel:"noopener",className:a.niceLink},t))}}};return fetch(e).then((function(t){return t.text()})).then((function(t){p(t)})),w()().use(G.a).use(q.a).use(C.a,u).processSync(c).result},R=a(9),B=a(434),E=a(430),U=a(439),J=a(401),H=a(189),Y=a(14),V=a(437),Q=a(402),X=a(403),K=a(407),Z=a(408),$=a(428),tt=a(21),et=Array.from(new Set(Object(R.a)(tt.map((function(t){return t.author}))))),at=(Array.from(new Set(Object(R.a)(tt.map((function(t){return t.tag}))))),Object(V.b)(tt,(function(t){return t.length}),(function(t){return t.tag}))),rt=Object(R.a)(at.keys()).map((function(t){return{tag:t,count:at.get(t)}})).sort((function(t,e){return e.count-t.count})).filter((function(t){var e=t.tag;return Boolean(e)})).map((function(t){return t.tag})),ot=Array.from(new Set(Object(R.a)(tt.map((function(t){return t.year}))))),nt=Object(V.b)(tt,(function(t){return t.length}),(function(t){return t.year}),(function(t){return t.author})),it=Object(V.b)(tt,(function(t){return t.length}),(function(t){return t.author})),ct=Array.from(it.keys()).map((function(t){return{author:t,count:it.get(t)}})).sort((function(t,e){return e.count-t.count})),pt=ct.map((function(t){return t.author})),st=ct.slice(0,5),ut=ct.slice(5,ct.length),lt=pt.slice(0,5),gt=(pt.slice(5,pt.length-1),["1","2-5","5-10",">10"]),mt=Object(J.a)().domain([2,5,10.1]).range(gt),ht=ot.map((function(t){var e=nt.get(t);return Array.from(e.keys()).map((function(a,r){var o=lt.includes(a)?"top5":mt(ct.find((function(t){return t.author===a})).count);return{year:t,author:a,count:e.get(a),numPosition:r,categoryOverall:o}})).sort((function(t,e){return e.count-t.count}))})),dt=lt.length,_t=function(t,e,a,r){return lt.includes(t)?e-1-a.indexOf(t)+dt:r.indexOf(t)+e+dt},bt=ht.map((function(t){var e=t.map((function(t){return t.author})).filter((function(t){return lt.includes(t)})),a=t.map((function(t){return t.author})).filter((function(t){return!lt.includes(t)}));return t.map((function(r){var o=function(t,e,a){return e.filter((function(t){return t.categoryOverall===a})).map((function(t){return t.author})).indexOf(t)}(r.author,t,r.categoryOverall);return Object(s.a)({numPositionTop:_t(r.author,4,e,a),positionInCategory:o},r)}))})).flat(),yt=ot.map((function(t){var e=nt.get(t),a=0,r=0;return Array.from(e.keys()).forEach((function(t){lt.includes(t)?a+=e.get(t):r+=e.get(t)})),{year:t,articleTop5:a,articleOther:r}})),St=(Object(Q.a)(yt.map((function(t){return t.articleTop5+t.articleOther}))),function(t){var e=Object(V.b)(tt,(function(t){return t.length}),(function(t){return t.year}),(function(e){return e[t]})),a=Object(R.a)(new Set(tt.map((function(e){return e[t]})))),r=ot.map((function(t){return Object(X.a)(Object(R.a)(e.get(t).values()))}));return ot.map((function(t,o){var n=a.reduce((function(a,n){return Object(s.a)(Object(s.a)({},a),{},Object(Y.a)({},n,e.get(t).has(n)?e.get(t).get(n)/r[o]:0))}),{});return Object(s.a)({year:t},n)}))}),ft=(St("tag_tech_FromTop"),St("tag_FromTop")),kt=Object(B.b)("%Y-%m"),jt=Object(B.a)("%Y-%m"),xt=Object(R.a)(new Set(tt.map((function(t){return kt(t.yearMonthString)})))).sort(),Tt=Object(K.a)(xt),Ft=Z.a.range(Tt[0],Tt[1]).map(jt),vt=function(t){var e=Object(V.b)(tt,(function(t){return t.length}),(function(t){return t.yearMonthString}),(function(e){return e[t]})),a=Object(R.a)(new Set(tt.map((function(e){return e[t]}))));return Ft.map((function(t,r){var o=a.reduce((function(a,r){return Object(s.a)(Object(s.a)({},a),{},Object(Y.a)({},r,e.has(t)&&e.get(t).has(r)?e.get(t).get(r):0))}),{});return Object(s.a)({month:t},o)}))}("tag_FromTop"),Ot=Object(V.b)(tt,(function(t){return t.length}),(function(t){return t.author}),(function(t){return t.tag})),Mt=pt.map((function(t){var e=Ot.get(t);return Object(R.a)(e.keys()).map((function(a){return{from:t,to:a,count:e.get(a),percentageOfArticles:e.get(a)/it.get(t)}}))})).flat().filter((function(t){var e=t.to;return Boolean(e)})),It=Object(V.a)(ut,(function(t){var e=t.count;return e>10?">10":e>=5?"5-10":e>=2?"2-5":"1"})),Dt=Object(R.a)(It.keys()).map((function(t){var e={children:It.get(t)};return Object($.a)(e).sum((function(t){return t.count})).sort((function(t,e){return e.count-t.count}))})),wt=function(t,e){return t.reduce((function(t,a){return t+a[e]}),0)},At=Object(R.a)(It.keys()).map((function(t){return{group:t,countPeople:It.get(t).length,countArticles:wt(It.get(t),"count")}}));At.push({group:"top5",countPeople:st.length,countArticles:wt(st,"count")});var Gt,Wt,qt=Object(Q.a)(At.map((function(t){return t.countArticles}))),Pt=Object(B.b)("%Y-%m-%d"),Ct=Object(B.b)("%Y-%m"),Lt=(Object(B.a)("%b %y"),Object(B.a)("%Y")),Nt=Object(B.a)("%d/%m/%y"),zt=Object(E.a)(".0%"),Rt=function(t){return zt(t)},Bt=Object(E.a)("~s"),Et={stroke:"lightgrey",tickStroke:"lightgrey",tickLabelProps:function(){return{fill:"grey",fontSize:11,textAnchor:"middle"}}},Ut={stroke:"lightgrey",tickStroke:"lightgrey",tickLabelProps:function(){return{fill:"grey",fontSize:9,textAnchor:"end"}}},Jt="(max-width: 700px)",Ht=null===(Gt=window)||void 0===Gt?void 0:Gt.matchMedia(Jt).matches,Yt=Ht?300:450,Vt=Ht?500:600,Qt=Object(J.a)().domain([1,2,5,10,15]).range(["white","#a1d99b","#74c476","#31a354","#006d2c","#003314"]),Xt=Object(H.a)().domain([!0,!1]).range(["#1b1237","lightgrey"]),Kt=["SIG / Webmapping","drupal","IA / Data Science","django","front-end","python","autres"],Zt=["drupal","python","django","angular","tuilage","autres"],$t=[].
1concat(Object(R.a)(U.a.slice(0,Kt.length-1)),["lightgrey"]),te=Kt.slice(0,Kt.length-1),ee=(Zt.slice(0,Kt.length-1),Object(R.a)(Array(rt.length-U.a.length+1).keys()).map((function(t){return"grey"}))),ae=[].concat(Object(R.a)(U.a.slice(0,-1)),Object(R.a)(ee)),re=Object(d.a)((function(t){return{coloredFooter:{color:"lightgrey",backgroundColor:t.palette.secondary.darker,borderTop:"4px solid lightgrey",padding:t.spacing(10,0),margin:t.spacing(15,0,0,0)},title:{margin:t.spacing(0,0,5,0)}}})),oe=Ht?12:6,ne=function(){var t=re();return Object(g.jsx)(h.a,{className:t.coloredFooter,children:Object(g.jsxs)(u.a,{maxWidth:"md",children:[Object(g.jsx)(_.a,{variant:"h3",gutterBottom:!0,className:t.title,children:"M\xe9thodologie"}),Object(g.jsxs)(F.a,{container:!0,direction:"row",spacing:4,children:[Object(g.jsx)(F.a,{item:!0,xs:oe,children:Object(g.jsx)(z,{markdownFile:"./content/methodology/process.md"})}),Object(g.jsx)(F.a,{item:!0,xs:oe,children:Object(g.jsx)(z,{markdownFile:"./content/methodology/tech.md"})})]})]})})},ie=a(128),ce=a(418),pe=a(419),se=a(420),ue=a(421),le=a(422),ge=a(415),me=a(432),he=a(198),de=a(440),_e=a(423),be=a(410),ye=a(126),Se=a(10),fe=a(409),ke=function(t){var e=t.currentStepIndex,a=t.onStepEnter,r=t.onStepExit,o=t.stepMessages,n=t.children,i=t.height,c=Object(fe.a)(Jt),p=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"600px";return Object(d.a)((function(e){return{scrollContainer:{display:"flex",justifyContent:"space-between"},scrollContainerMobile:{display:"block",boxSizing:"content-box"},graphicContainer:{marginBottom:"20px",flexBasis:"70%",position:"sticky",width:"100%",height:t,top:"100px",display:"flex",alignItems:"center",justifyContent:"center"},graphicContainerMobile:{width:"100%",height:"600px",position:"sticky",top:"50px"},scroller:{flexBasis:"35%"},scrollerMobile:{position:"relative",margin:"0 auto"},stepPaper:{margin:e.spacing(40,0),minHeight:e.spacing(5),padding:e.spacing(2),justifyContent:"center",alignItems:"center",zIndex:10,"&:last-child":{margin:e.spacing(40,0,80,0)}},stepPaperMobile:{padding:e.spacing(2)},step:{},stepMobile:{minHeight:e.spacing(80),zIndex:10,"&:last-child":{minHeight:e.spacing(100)}}}}))}(i)(),s=Object(Se.a)(Object(Y.a)({},p.stepPaperMobile,c),Object(Y.a)({},p.stepPaper,!c)),u=Object(Se.a)(Object(Y.a)({},p.stepMobile,c),Object(Y.a)({},p.step,!c)),l=Object(Se.a)(Object(Y.a)({},p.graphicContainerMobile,c),Object(Y.a)({},p.graphicContainer,!c)),m=Object(Se.a)(Object(Y.a)({},p.scrollContainerMobile,c),Object(Y.a)({},p.scrollContainer,!c)),b=Object(Se.a)(Object(Y.a)({},p.scrollerMobile,c),Object(Y.a)({},p.scroller,!c)),y=Object(g.jsx)(h.a,{className:l,children:Object(g.jsx)(g.Fragment,{children:n})});return Object(g.jsxs)(h.a,{className:m,children:[c&&y,Object(g.jsx)(h.a,{className:b,children:Object(g.jsx)(ye.a,{onStepEnter:a,onStepExit:r,offset:.6,children:o.map((function(t,a){return Object(g.jsx)(ye.b,{data:a,children:Object(g.jsx)(h.a,{className:u,children:Object(g.jsx)(be.a,{className:s,children:Object(g.jsx)(_.a,{variant:"body1",style:{opacity:e===a?1:.2},children:o[a]})})})},a)}))})}),!c&&y]})},je=function(t,e,a,r){t.moveTo(e.x,e.y),t.arc(e.x,e.y,a(e[r]),0,2*Math.PI)},xe=function(t,e,a){var r=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null,n=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,i=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null;return r?o.isPointInPath(n,i)?"darkgrey":e(t[a]):e(t.num_approx_character)},Te=function(t,e,a,r,o,n,i,c){var p=arguments.length>8&&void 0!==arguments[8]&&arguments[8],s=arguments.length>9&&void 0!==arguments[9]?arguments[9]:null,u=arguments.length>10&&void 0!==arguments[10]?arguments[10]:null;t.save(),t.clearRect(0,0,e,a),t.beginPath(),r.forEach((function(e){t.beginPath(),je(t,e,o,n),t.fillStyle=p?xe(e,i,c,p,t,s,u):xe(e,i,c),t.fill()})),t.restore()},Fe=function(t,e){e.forEach((function(e){var a=e.name,r=e.force;t.force(a,r)})),t.alpha(.2).restart()},ve=function(t,e){var a=t.current.getBoundingClientRect();return{x:e.clientX-a.left,y:e.clientY-a.top}},Oe=a(411),Me=a(413),Ie=a(414),De=function(t){var e=t.type,a=t.scale,r=t.width,o=t.height,n=t.label,i=t.format,c=function(){switch(e){case"bottom":return Object(g.jsxs)(g.Fragment,{children:[Object(g.jsx)(Oe.a,Object(s.a)({top:o/2,scale:a,tickFormat:i},Et)),Object(g.jsx)("text",{x:"20",y:"10",style:{fontSize:12,fontWeight:"bold"},children:n})]});case"top":return Object(g.jsxs)(g.Fragment,{children:[Object(g.jsx)(Me.a,Object(s.a)({top:o/2,scale:a,tickFormat:i},Et)),Object(g.jsx)("text",{x:"20",y:"10",style:{fontSize:12,fontWeight:"bold"},children:n})]});case"left":return Object(g.jsxs)(g.Fragment,{children:[Object(g.jsx)(Ie.a,Object(s.a)({left:r/2,scale:a,tickFormat:i},Et)),Object(g.jsx)("text",{x:"-130",y:r,transform:"rotate(-90)",style:{fontSize:12,fontWeight:"bold"},children:n})]});default:return null}}();return Object(g.jsx)("svg",{width:r,height:o,children:c})},we=["Chaque article est repr\xe9sent\xe9 ici par un cercle. Sa taille et sa couleur sont fonction du nombre de caract\xe8res, c'est \xe0 dire de sa longeur. \n  \n Vous pouvez voir le nom de l'article au survol et cliquer dessus pour le lire dans un autre onglet.","Voyons voir leur r\xe9partition au cours du temps. Nous avons un pic en 2016 et plusieurs fluctuations au cours des ann\xe9es dans la dynamique de publication.","Nous avons 6 tags pr\xe9pond\xe9rants repr\xe9sentant les technologies cit\xe9es, et une bonne partie d'articles plus g\xe9n\xe9riques.","Si on regarde l'\xe9volution de la longueur des articles au cours du temps, on voit une mont\xe9e en puissance de 2013 \xe0 2020."],Ae=["Le tag le plus repr\xe9sent\xe9 est la cat\xe9gorie SIG / Webmapping. Sa pr\xe9pond\xe9rance a \xe9t\xe9 la plus forte de 2013 \xe0 2015 et plus r\xe9cemment depuis fin 2019.","Viennent ensuite les articles traitant de Drupal. C'est un sujet qui revient r\xe9guli\xe8rement, quoiqu'un peu moins r\xe9cemment depuis 2019.","La th\xe9matique de l'IA et de la Data Science fait sont entr\xe9e mi 2017 et se fraye un chemin depuis en repr\xe9sentant de plus en plus d'articles du blog.","La technologie Django est le 4e th\xe8me le plus repr\xe9sent\xe9 depuis 2013, mais relativement peu depuis fin 2016.","Nous avons ensuite les articles traitant de front-end qui s
1ont assez r\xe9guliers depuis 2014.","C'est aussi le cas pour le sujet Python."],Ge=["D'abord, listons le nombre de personnes contribuant au blog par ann\xe9e. Un rectangle repr\xe9sente un\xb7e auteur\xb7e. C'est en 2016 que le plus grand nombre de personnes a contribu\xe9 au blog.","Regardons ensuite comment les auteur\xb7e\xb7s ont contribu\xe9s dans le temps. Plus un rectangle est fonc\xe9, plus le nombre d'articles \xe9crits cette ann\xe9e est grand. Nous avons des contributeur\xb7trice\xb7s toujours pr\xe9sent\xb7e\xb7s depuis 2013 et d'autres qui se sont joins \xe0 l'aventure du blog \xe0 leur arriv\xe9e \xe0 Makina Corpus.","Quel est le top 5 des personnes ayant contribu\xe9 au blog depuis 2013 ? On retrouve des auteurs contribuant chaque ann\xe9e ou presque depuis 2013, mais aussi d'autres qui ont \xe9crit activement avant leur d\xe9part ou apr\xe8s leur arriv\xe9e.","Comptons maintenant le nombre d'auteur\xb7e\xb7s par ann\xe9e appartenant \xe0 ce top 5. Jusqu'\xe0 quatre d'entre eux ont contribu\xe9 lors d'une m\xeame ann\xe9e (2019). C'est par contre en 2016 que le nombre d'autres d'auteur\xb7e\xb7s a \xe9t\xe9 le plus important.","Ann\xe9e par ann\xe9e, d\xe9coupons les auteur\xb7e\xb7s en groupe en fonction du nombre d'articles \xe9crits.","Voyons groupe par groupe le nombre total d'articles \xe9crits par an ainsi que le nombre de personnes uniques ayant contribu\xe9es depuis 2013."],We=Ht?250:500,qe=500,Pe=Ht?1:2,Ce=Ht?6:10,Le=Object(Q.a)(tt.map((function(t){return t.num_approx_character}))),Ne=Object(K.a)(tt.map((function(t){var e=t.dateString;return Pt(e)}))),ze="num_approx_character",Re="num_approx_character",Be=Object(ge.a)().domain([0,Le]).range([Pe,Ce]),Ee=Object(me.a)().domain(Ne).range([20,We-20]),Ue=Object(he.a)().domain([0,Le]).range(["#bbc44b","#879100"]),Je=Object(de.a)().domain(Kt).range([0,We]).padding(1),He=Object(he.a)().domain([Le,0]).range([20,480]),Ye=Object(ie.a)().force("charge",Object(ce.a)().strength(.5)).force("collide",Object(pe.a)().strength(.7).radius((function(t){var e=t.num_approx_character;return Be(e)+1}))).force("center",Object(se.a)(We/2,-200).strength(.05)),Ve=[[{name:"y",force:Object(ue.a)(-200).strength(.1)}]],Qe=[[{name:"x",force:Object(le.a)(We/2).strength(.3)},{name:"y",force:Object(ue.a)(250).strength(.3)},{name:"center",force:Object(se.a)().strength(0)}],[{name:"x",force:Object(le.a)().strength(.9).x((function(t){var e=t.dateString;return Ee(Pt(e))}))},{name:"y",force:Object(ue.a)().strength(.3).y(250)},{name:"center",force:Object(se.a)().strength(0)}],[{name:"x",force:Object(le.a)().strength(1).x((function(t){return Je(t.tag_FromTop)}))},{name:"y",force:Object(ue.a)().strength(0)},{name:"center",force:Object(se.a)().strength(0)}],[{name:"x",force:Object(le.a)().strength(.9).x((function(t){var e=t.dateString;return Ee(Pt(e))}))},{name:"y",force:Object(ue.a)().strength(.9).y((function(t){var e=t.num_approx_character;return He(e)}))},{name:"center",force:Object(se.a)().strength(0)}]],Xe=[[null,null],[null,{type:"bottom",scale:Ee,width:We,height:40,label:"Date",format:Lt}],[{type:"top",scale:Je,width:We,height:80,label:"Tags"},null],[{type:"left",scale:He,width:50,height:qe,label:"Nombre de caract\xe8res",format:function(t){return Bt(t)}},{type:"bottom",scale:Ee,width:We,height:40,label:"Date",format:Lt}]],Ke=function(t,e){var a=!1;return t&&Xe[t][e]&&(a=!0),a},Ze=Object(d.a)((function(t){return{tooltip:{position:"absolute",display:"inline-block",width:t.spacing(30),padding:t.spacing(1),pointerEvents:"none",opacity:0,zIndex:1},canvasContainer:{height:"700px",textAlign:"center",margin:t.spacing(10,0,0,0)}}})),$e=function(){var t=Object(r.useRef)(),e=Object(r.useRef)(),a=Ze(),o=Object(r.useState)(null),n=Object(I.a)(o,2),i=n[0],c=n[1];return Object(r.useEffect)((function(){var e=t.current.getContext("2d");null!=i&&Fe(Ye,Qe[i]),Ye.nodes(tt).on("tick",(function(){return Te(e,We,qe,tt,Be,ze,Ue,Re)}))}),[t,i]),Object(g.jsxs)(ke,{currentStepIndex:i,onStepEnter:function(t){var e=t.data;c(e)},onStepExit:function(t){var e=t.direction,a=t.data;"up"===e&&0===a&&Fe(Ye,Ve)},stepMessages:we,children:[Object(g.jsx)(be.a,{ref:e,className:a.tooltip}),Object(g.jsxs)(h.a,{className:a.canvasContainer,children:[Ke(i,0)&&Object(g.jsx)(De,Object(s.a)({},Xe[i][0])),Object(g.jsx)("canvas",{width:We,height:qe,ref:t,onClick:function(e){var a=ve(t,e),r=a.x,o=a.y,n=Ye.find(r,o,Be(Le));n&&window.open(n.link)},onMouseMove:function(a){var r=t.current.getContext("2d"),o=ve(t,a),n=o.x,i=o.y;Te(r,We,qe,tt,Be,ze,Ue,Re,!0,n,i);var c=Ye.find(n,i,Be(Le));c?Object(_e.a)(e.current).style("opacity",.8).style("top",i+5+"px").style("left",n+5+"px").html(c.title):Object(_e.a)(e.current).style("opacity",0)}}),Ke(i,1)&&Object(g.jsx)(De,Object(s.a)({},Xe[i][1]))]})]})},ta=a(431),ea=a(194),aa=a.n(ea),ra=null===(Wt=window)||void 0===Wt?void 0:Wt.matchMedia(Jt).matches,oa=Object(d.a)((function(t){return{main:{overflowX:"hidden",overflowY:"auto",transition:"width ease 250ms",width:ra?200:700,height:ra?500:170},inner:{overflowX:ra?"hidden":"auto",overflowY:ra?"auto":"hidden",display:ra?"row":"flex",margin:t.spacing(1)},card:{margin:t.spacing(1),padding:t.spacing(1),width:120,flexGrow:0,flexShrink:0,alignSelf:"stretch"},icon:{padding:t.spacing(0,1)}}})),na=function(t){return t.length>40?t.slice(0,40)+"...":t},ia=function(t){var e=t.articles,a=oa();return Object(g.jsx)(h.a,{className:a.main,children:Object(g.jsx)(h.a,{className:a.inner,children:e.map((function(t){var e=t.i
1d,r=t.title,o=t.dateString,n=t.link;return Object(g.jsxs)(be.a,{className:a.card,children:[Object(g.jsx)(_.a,{variant:"caption",color:"textSecondary",children:Nt(Pt(o))}),Object(g.jsx)(ta.a,{"aria-label":"link",className:a.icon,onClick:function(){window.open(n)},children:Object(g.jsx)(aa.a,{fontSize:"small"})}),Object(g.jsx)(_.a,{variant:"body2",color:"textSecondary",children:na(r)})]},e)}))})})},ca=a(429),pa=function(t,e,a,r){var o=function(t,e){var a=e[0]-t[0],r=e[1]-t[1];return{length:Math.sqrt(Math.pow(a,2)+Math.pow(r,2)),angle:Math.atan2(r,a)}}(e||t,a||t),n=o.angle+(r?Math.PI:0),i=.2*o.length;return[t[0]+Math.cos(n)*i,t[1]+Math.sin(n)*i]},sa=function(t,e,a){var r=pa(a[e-1],a[e-2],t),o=Object(I.a)(r,2),n=o[0],i=o[1],c=pa(t,a[e-1],a[e+1],!0),p=Object(I.a)(c,2),s=p[0],u=p[1];return"C ".concat(n,",").concat(i," ").concat(s,",").concat(u," ").concat(t[0],",").concat(t[1])},ua=function(t,e,a){return"\n  M ".concat(t[0],", ").concat(t[1]," \n  C ").concat(t[0]+a," , ").concat(t[1]," \n  ").concat(e[0]-a,", ").concat(e[1]," \n  ").concat(e[0],", ").concat(e[1],"\n")},la=function(t){var e,a,r=t.stackKey,o=t.stackScaledY0,n=t.stackScaledY1,i=t.color,c=Object(j.useSpring)({d:(e=o.concat(n.reverse()),a=sa,e.reduce((function(t,e,r,o){return 0===r?"M ".concat(e[0],",").concat(e[1]):"".concat(t," ").concat(a(e,r,o))}),""))});return Object(g.jsx)(j.animated.path,{d:c.d||"",fill:i},"series-".concat(r))},ga=function(t){var e=t.data,a=t.keys,r=t.offset,o=t.order,n=t.colorScale,i=t.xScale,c=t.getY0,p=t.getY1;return Object(g.jsx)(ca.a,{data:e,keys:a,offset:r,order:o,color:n,x:function(t,e){return i(e)},y0:c,y1:p,children:function(t){var e=t.stacks;t.path;return e.map((function(t){var e=t.map((function(t,e){return[i(e),c(t)]})),a=t.map((function(t,e){return[i(e),p(t)]})),r=n(t.key);return Object(g.jsx)("g",{children:Object(g.jsx)(la,{stackKey:t.key,stackScaledY0:e,stackScaledY1:a,color:r})},"stack-".concat(t.key))}))}})},ma="autres",ha=Object(H.a)().domain(te).range($t.slice(0,-1)),da=Ht?500:700,_a=Ht?90:0,ba=Ht?-da/3-15:0,ya=Ht?da/3+30:0,Sa=vt,fa=Object(K.a)(Sa.map((function(t){var e=t.month;return Ct(e)}))),ka=Object(Q.a)(Sa.map((function(t){return Object.keys(t).reduce((function(e,a){return e+(Zt.includes(a)?t[a]:0)}),0)}))),ja=Object(he.a)().domain([0,Sa.length-1]).range([0,da]),xa=Object(me.a)().domain(fa).range([0,da]),Ta=Object(he.a)().domain([ka,0]).range([30,80]),Fa=function(t){return Ta(t[0])},va=function(t){return Ta(t[1])},Oa=function(t){var e=t.tag,a=function(t,e){var a=te.concat([ma]);return e.map((function(e){var r,o=Object.keys(e),n=0,i=0;return o.forEach((function(r){a.includes(r)&&(r===t?n+=e[r]:i+=e[r])})),r={},Object(Y.a)(r,t,n),Object(Y.a)(r,ma,i),r}))}(e,Sa),r=function(t){return[t,ma]}(e),o=Object(H.a)().domain(r).range([ha(e),"lightgrey"]);return Object(g.jsxs)("svg",{width:da,height:110,transform:"translate(".concat(ba,",").concat(ya,") rotate(").concat(_a,")"),children:[Object(g.jsx)("rect",{x:0,y:0,width:da,height:80,fill:"#f5f5f5"}),Object(g.jsx)(ga,{data:a,keys:r,offset:"none",order:"ascending",colorScale:o,xScale:ja,getY0:Fa,getY1:va}),Object(g.jsx)("rect",{x:0,y:80,width:da,height:15,fill:"white"}),Object(g.jsx)(Oe.a,Object(s.a)({top:80,scale:xa,tickFormat:Lt},Et))]})},Ma=Object(d.a)((function(t){return{title:{textAlign:"center"}}})),Ia=Ht?6:12,Da=function(t){var e=t.tag,a=Ma(),r=tt.filter((function(t){return t.tag_FromTop===e}));return Object(g.jsx)(h.a,{className:a.title,children:Object(g.jsxs)(F.a,{container:!0,spacing:1,children:[Object(g.jsx)(F.a,{item:!0,xs:12,children:Object(g.jsx)(_.a,{variant:"h5",gutterBottom:!0,children:e})}),Object(g.jsx)(F.a,{item:!0,xs:Ia,children:Object(g.jsx)(Oa,{tag:e})}),Object(g.jsx)(F.a,{item:!0,xs:Ia,container:!0,justify:"center",children:Object(g.jsx)(ia,{articles:r})})]})})},wa=function(){var t=Object(r.useState)(null),e=Object(I.a)(t,2),a=e[0],o=e[1],n=null===a?"tous les articles":te[a];return Object(g.jsx)(ke,{currentStepIndex:a,onStepEnter:function(t){var e=t.data;o(e)},stepMessages:Ae,height:"350px",children:Object(g.jsx)(Da,{tag:n})})},Aa=a(424),Ga=(a(373),30),Wa=30,qa=Vt-Ga,Pa=Yt-Wa-110,Ca=[Ga,Ga+qa],La=[Wa,Wa+Pa],Na=Object(de.a)().domain(ot).range(La),za=Object(de.a)().domain(et).range(Ca),Ra=Object(he.a)().domain([0,et.length]).range(Ca),Ba=Wa+Pa+30,Ea=Object(he.a)().domain([0,qt]).range([0,80]),Ua=Pa/ot.length-1,Ja=qa/et.length-1,Ha=["top5"].concat(Object(R.a)(gt.reverse())),Ya=Ha.slice(1,Ha.length).map((function(t){var e="1"===t?"":"s";return"ayant \xe9crit ".concat(t," article").concat(e)}));Ya.unshift("faiant parti du top 5");var Va=Object(de.a)().domain(Ha).range(Ca).paddingInner(.5).paddingOuter(.5).align(1),Qa=[{yScale:function(t){var e=t.numPosition;return Ra(e)},fillRect:function(){return"lightgrey"},fillOpacity:function(){return 1}},{yScale:function(t){var e=t.author;return za(e)},fillRect:function(t){var e=t.count;return Qt(e)},fillOpacity:function(){return 1},authorScale:1},{yScale:function(t){var e=t.author;return za(e)},fillRect:function(t){var e=t.count;return Qt(e)},fillOpacity:function(t){var e=t.author;return lt.includes(e)?1:.3},authorScale:1},{yScale:function(t){var e=t.numPositionTop;return Ra(e)},fillRect:function(t){var e=t.author;return Xt(lt.includes(e))},fillOpacity:function(){return 1}},{yScale:function(t){var e=t.categoryOverall,a=t.positionInCategory;return Va(e)-a*(Ja+1)},fillRect:function(t){var e=t.author;return Xt(lt.includes(e))},fillOpacity:function(){return 1}},{}],Xa=function(t){var e=t.svgRef,a=t.stepIndex,o=t.direction;return Object(r.useEffect)((function(){0===a&&null===o?function(t){Object(_e.a)(t.current).selectAll("rect").data(bt).enter().append("rect").attr("x",(function(t){return Na(t.year)+.5})).attr("y",(function(t){return Qa[0].yScale(t)})).attr("width",Ua).attr("height",Ja).style("fill",(function(t){return Qa[0].fillRect(t)})).style("opacity",(function(t){return Qa[0].fillOpacity(t)}))}(e):(0===a&&"up"===o||a>0&&a<=4)&&function(t,e){Object(_e.a)(t.current).selectAll("rect").transition().duration(500).attr("y",(function(t){return Qa[e].yScale(t)})).style("fill",(function(t){return Qa[e].fillRect(t)})).style("opacity",(function(t){return Qa[e].fillOpacity(t)}))}(e,a)}),[e,a,o]),Object(g.jsxs)(g.Fragment,{children:[Object(g.jsx)(Me.a,Object(s.a)({top:Ga,scale:Na},Et)),Qa[a].authorScale&&Object(g.jsx)(Ie.a,Object(s.a)({top:0,left:Wa,scale:za,numTicks:et.length},Ut)),(3===a||4===a||5===a)&&Object(g.jsx)("text",{x:Wa,y:48,children:"Nombre d'auteur\xb7e\xb7s par an"}),(4===a||5===a)&&Ha.map((function(t){return Object(g.jsx)("text",{fontStyle:"italic",fontSize:"smaller",x:Wa,y:Va(t)+25,children:Ya[Ha.indexOf(t)]},"explain-".concat(t))})),5===a&&Object(g.jsxs)(g.Fragment,{children:[Object(g.jsx)("text",{x:Ba,y:48,children:"et au total"}),Object(g.jsx)("line",{x1:Ba,y1:60,x2:Ba,y2:Ga+qa-30,style:{stroke:"lightgrey",strokeWidth:1}}),At.map((function(t){var e=t.group,a=t.countPeople,r=t.countArticles;return Object(g.jsxs)(g.Fragment,{children:[Object(g.jsx)("rect",{x:Ba,y:Va(e)-3*Ja,width:Ea(r),height:2*Ja,fill:Xt("top5"===e)}),Object(g.jsxs)("text",{fontStyle:"italic",fontSize:"smaller",x:Ba,y:Va(e)+12.5,children:[r," articles"]},"num-article-".concat(e)),Object(g.jsxs)("text",{fontStyle:"italic",fontSize:"smaller",x:Ba,y:Va(e)+25,children:["(",a," pers.)"]},"num-person-".concat(e))]})}))]})]})},Ka=a(195),Za=a(441),$a=a(196),tr=Object(d.a)({legendTitle:{fontSize:12,fontWeight:"bold"},legendLabel:{color:"grey",fontSize:11},legendItem:{stroke:"grey",strokeWidth:"1px"}}),er=function(t){var e=t.thresholdScale,a=t.itemSize,r=tr();return Object(g.jsxs)(g.Fragment,{children:[Object(g.jsx)(Ka.a,{align:"left",margin:"0 4px",className:r.legendTitle,children:"Nombre d'article"}),Object(g.jsx)(Za.a,{scale:e,children:function(t){return Object(g.jsx)("div",{style:{display:"flex",flexDirection:"row"},children:t.map((function(t,e){return Object(g.jsxs)($a.a,{margin:"0 4px",children:[Object(g.jsx)("svg",{width:a,height:a,children:Object(g.jsx)("rect",{fill:t.value?t.value:"white",width:a,height:a,className:r.legendItem})}),Object(g.jsx)(Ka.a,{align:"left",margin:"0 0 0 2px",className:r.legendLabel,children:(o=e,0===o?"pas d'articles":1===o?"1 article":2===o?"2 - 4":3===o?"5 - 10":4===o?"11 - 15":5===o?"> 15 articles":void 0)})]},"legend-threshold-".concat(e));var o}))})}})]})},ar=Object(d.a)((function(t){return{svgContainer:{textAlign:"center"},legendLabel:{color:"grey",fontSize:11}}})),rr=function(){var t=ar(),e=Object(r.useRef)(),a=Object(r.useState)(null),o=Object(I.a)(a,2),n=o[0],i=o[1],c=Object(r.useState)(null),p=Object(I.a)(c,2),s=p[0],u=p[1];return Object(g.jsx)(ke,{currentStepIndex:n,onStepEnter:function(t){var e=t.data;i(e)},onStepExit:function(t){var e=t.direction;u(e)},stepMessages:Ge,children:Object(g.jsxs)(F.a,{container:!0,direction:"column",alignItems:"center",className:t.
1svgContainer,children:[(1===n||2===n)&&Object(g.jsx)(er,{thresholdScale:Qt,itemSize:12}),n>2&&Object(g.jsx)(Aa.a,{className:t.legendLabel,scale:Xt,direction:"row",labelMargin:"0 6px 0 0",labelFormat:function(t){return!0===t?"Auteurs du top 5":"Autre auteur\xb7e\xb7s"},shapeMargin:"3px",shapeHeight:12,shapeWidth:12,shapeStyle:function(){return{border:"1px solid grey"}}}),Object(g.jsx)("svg",{width:Yt,height:Vt,ref:e,children:null!=n&&Object(g.jsx)(Xa,{stepIndex:n,direction:s,svgRef:e})})]})})},or=a(436),nr=function(t){var e=t.data,a=t.keys,r=t.xAccesor,o=t.xScale,n=t.yScale,i=t.colorScale,c=t.heightPadding,p=void 0===c?0:c;return Object(g.jsx)(or.a,{data:e,keys:a,x:r,xScale:o,yScale:n,color:i,children:function(t){return t.map((function(t){return t.bars.map((function(e){return Object(g.jsx)("rect",{x:e.x,y:e.y,height:e.height-p,width:e.width,fill:e.color},"bar-stack-".concat(t.index,"-").concat(e.index))}))}))}})},ir=Object(d.a)((function(t){return{graphicsContainer:{margin:t.spacing(6,0)},svgContainer:{margin:t.spacing(2)}}})),cr=Ht?280:320,pr=Object(de.a)().domain(ot).range([40,cr]).paddingInner(.05),sr=Object(he.a)().domain([0,1]).range([260,10]),ur=function(t){return t.year},lr=Object(H.a)().domain(Kt).range($t),gr=function(){var t=ir();return Object(g.jsxs)(F.a,{container:!0,direction:"row",justify:"center",alignItems:"center",className:t.graphicsContainer,children:[Object(g.jsxs)("svg",{width:cr,height:300,className:t.svgContainer,children:[Object(g.jsx)(nr,{data:ft,keys:Kt,xAccesor:ur,xScale:pr,yScale:sr,colorScale:lr,heightPadding:1.5}),Object(g.jsx)(Oe.a,Object(s.a)({top:264,scale:pr}
1,Et)),Object(g.jsx)(Ie.a,Object(s.a)({top:5,left:20,scale:sr,hideAxisLine:!0,numTicks:5,tickFormat:Rt},Et))]}),Object(g.jsx)(Aa.a,{scale:lr,direction:"column-reverse",labelMargin:"0 20px 0 0",shapeMargin:"1px"})]})},mr=a(438),hr=a(433),dr=Ht?300:400,_r=500,br=Ht?100:140,yr=function(t){return t-br/3},Sr=[{packSize:40,padding:2},{packSize:52,padding:2},{packSize:48,padding:2},{packSize:51,padding:4}],fr=(Dt.length,Dt.map((function(t,e){var a=Sr[e];return function(t,e,a){return Object(hr.a)().size([e,e]).padding(a)(t)}(t,a.packSize,a.padding)}))),kr=["1","2-5","5-10","10"],jr=Object(de.a)().domain(Object(R.a)(Array(kr.length).keys())).range([0,_r]).padding(.5),xr=Object(J.a)().domain([2,5,10.1]).range(kr),Tr={1:3,"2-5":2,"5-10":1,10:0},Fr=.85*dr,vr=function(t){var e=ct.filter((function(e){return e.author===t}))[0].count,a=xr(e),r=Tr[a],o=Dt[r],n=o.data.children.findIndex((function(e){return e.author===t})),i=o.children[n],c=i.x,p=i.y;return{x:c+Fr,y:p+jr(r)}},Or=ut.map((function(t){var e=t.author;return[e,vr(e)]})),Mr=new Map(Or),Ir=function(t,e,a){var r=ct.filter(e).map((function(t){return t.author}));return t.filter((function(t){var e=t.from;return r.includes(e)})).filter(a)},Dr=function(t){var e=t.tagSorted,a=t.xPosition,r=t.tagScale,o=t.filteredLinks,n=Object(H.a)().domain(e).range(ae);return e.map((function(t){var e,i=(e=o,new Set(Object(R.a)(e.map((function(t){return t.to}))))).has(t)?1:.3,c=a-br/3,p=Ht?function(t){var e=t;return t.length>9&&(e=t.slice(0,9)+"..."),e}(t):t;return Object(g.jsxs)("g",{children:[Object(g.jsx)("rect",{x:c,y:r(t),width:br,height:25,fill:"#f5f5f5",fillOpacity:i},"rect-tag-".concat(t)),Object(g.jsx)("rect",{x:c,y:r(t),width:7,height:25,fill:n(t),fillOpacity:i},"border-tag-".concat(t)),Object(g.jsx)("text",{x:c+14,y:r(t)+17.5,fill:"grey",fillOpacity:i,children:p},"text-tag-".concat(t))]},"tag-".concat(t))}))},wr=Ht?15:30,Ar=function(t){var e=t.linkAuthorTag,a=t.filteredLinks,r=t.top5authorScale,o=t.tagScale,n=t.xTagPosition,i=t.xTopAuthorPosition,c=Object(Q.a)(e.map((function(t){return t.count}))),p=Object(J.a)().domain([2,5,c]).range([1,2,4.5]),s=Object(J.a)().domain([2,5,c]).range([.9,.3,.6,.9]);return a.map((function(t){var e,a,c,u=t.from,l=t.to,m=t.count;if(lt.includes(u))e=[i,r(u)],a=[yr(n),o(l)+12.5],c=2*wr;else{var h=Mr.get(u),d=h.x,_=h.y;e=[yr(n)+br,o(l)+12.5],a=[d,_],c=wr}return Object(g.jsx)("path",{d:ua(e,a,c),stroke:"lightgrey",strokeWidth:p(m),strokeOpacity:s(m),fill:"none"},"link-".concat(u,"-").concat(l))}))},Gr=Object(K.a)(ct.map((function(t){return t.count}))),Wr=Object(ge.a)().domain(Gr).range([3,15]),qr=function(t){var e=t.authors,a=t.top5authorScale,r=t.xPosition,o=t.isFocus;return e.map((function(t){var e=t.author,n=t.count;return Object(g.jsx)("circle",{cx:r,cy:a(e),r:Wr(n),fill:"#1b1237",fillOpacity:o?1:.1},"circle-top5authorCount-".concat(e))}))},Pr=function(t){var e=t.hierarchyIndexToDisplay,a=t.xBasePosition;return fr.filter((function(t,a){return e.includes(a)})).map((function(t,r){return t.descendants().filter((function(t){return 1===t.depth})).map((function(t,o){return Object(g.jsx)("circle",{cx:t.x+a,cy:t.y+jr(e[r]),r:t.r,fill:"grey"},"circle-pack-".concat(r,"-").concat(o))}))}))},Cr=Ht?.4:.3,Lr=Object(de.a)().domain(Object(R.a)(Array(3).keys())).range([0,dr]).paddingInner(.9).paddingOuter(Cr).align(.5),Nr=Object(de.a)().domain(lt).range([0,_r]).padding(1),zr=Object(de.a)().domain(rt).range([0,_r]).padding(.3),Rr=Ir(Mt,(function(t){var e=t.author;return lt.includes(e)}),(function(){return!0})),Br=Ir(Mt,(function(t){var e=t.author;return lt.includes(e)}),(function(t){return t.count>1})),Er=Ir(Mt,(function(t){var e=t.author,a=t.count;return!lt.includes(e)&&1===a}),(function(){return!0})),Ur=Ir(Mt,(function(t){var e=t.author,a=t.count;return!lt.includes(e)&&a>1&&a<5}),(function(){return!0})),Jr=Ir(Mt,(function(t){var e=t.author,a=t.count;return!lt.includes(e)&&a>5}),(function(){return!0})),Hr=Ir(Mt,(function(t){return t.count>=4}),(function(t){return t.percentageOfArticles>.5})),Yr={showTopAuthor:!1,isFocus:!0,showOtherAuthors:!1,links:[],linksTagShow:Mt,hierarchyIndexToDisplay:null},Vr=[{showTopAuthor:!0,isFocus:!0,showOtherAuthors:!1,links:Rr,linksTagShow:Rr,hierarchyIndexToDisplay:null},{showTopAuthor:!0,isFocus:!0,showOtherAuthors:!1,links:Br,linksTagShow:Br,hierarchyIndexToDisplay:null},{showTopAuthor:!0,isFocus:!1,showOtherAuthors:!0,links:Er,linksTagShow:Er,hierarchyIndexToDisplay:[3]},{showTopAuthor:!0,isFocus:!1,showOtherAuthors:!0,links:Ur,linksTagShow:Ur,hierarchyIndexToDisplay:[2]},{showTopAuthor:!0,isFocus:!1,showOtherAuthors:!0,links:Jr,linksTagShow:Jr,hierarchyIndexToDisplay:[0,1]},{showTopAuthor:!0,isFocus:!0,showOtherAuthors:!0,links:Hr,linksTagShow:Hr,hierarchyIndexToDisplay:[0,1,2,3]},{showTopAuthor:!0,isFocus:!0,showOtherAuthors:!0,links:[],linksTagShow:Mt,hierarchyIndexToDisplay:[0,1,2,3]}],Qr=[{text:"Auteurs du top 5",range:0,steps:[0,1,2,3,4,5],yPosition:null},{text:"Autres auteur\xb7e\xb7s",range:2,steps:[2,3,4,5],yPosition:null},{text:"1 article",range:2,steps:[2,5],yPosition:3},{text:"2 \xe0 4 articles",range:2,steps:[3,5],yPosition:2},{text:"5 \xe0 10 articles",range:2,steps:[4,5],yPosition:1},{text:"plus de 10 articles",range:2,steps:[4,5],yPosition:0}],Xr=function(t){var e=t.stepIndex,a=null===e?Yr:Vr[e],r=a.showTopAuthor,o=a.isFocus,n=a.showOtherAuthors,i=a.links,c=a.linksTagShow,p=a.hierarchyIndexToDisplay;return Object(g.jsxs)("svg",{width:dr,height:_r,children:[Object(g.jsx)(Ar,{linkAuthorTag:Mt,filteredLinks:i,top5authorScale:Nr,tagScale:zr,xTagPosition:Lr(1),xTopAuthorPosition:Lr(0)}),r&&Object(g.jsx)(qr,{authors:st,top5authorScale:Nr,xPosition:Lr(0),isFocus:o}),n&&Object(g.jsx)(Pr,{hierarchyIndexToDisplay:p,xBasePosition:Lr(2)}),Object(g.jsx)(Dr,{tagSorted:rt,xPosition:Lr(1),tagScale:zr,filteredLinks:c}),Qr.map((function(t){var a=t.text,r=t.range,o=t.steps,n=t.yPosition;return o.includes(e)?Object(g.jsx)(mr.a,{x:Lr(r),y:null===n?15:jr(n)+50,width:50,verticalAnchor:"start",textAnchor:"middle",children:a},"links-text-".concat(a)):null}))]})},Kr=Object(d.a)((function(t){return{svgContainer:{textAlign:"center",margin:t.spacing(10,0,0,0)}}})),Zr=["Nos auteurs du top 5 se trouvent sur la gauche. On voit qu'ils ont trait\xe9 presque tout les sujets \xe0 eux cinq depuis le lancement du blog, \xe0 part les th\xe9matiques mobile et dataviz.","Cependant, comme on consid\xe8re ici toute la vie du blog depuis 2013, mettons de c\xf4t\xe9 les tags pour lesquels l'auteur n'a \xe9crit qu'une seule fois, pour mieux voir les th\xe8mes majoritairement trait\xe9s par ces cinq auteurs. Il y en a d\xe9j\xe0 moins qui sont repr\xe9sent\xe9s.","Pour les autres auteur\xb7e\xb7s, proc\xe9dons par cat\xe9gorie. \xc0 propos de quoi \xe9crivent les personnes qui ont \xe9crit un seul article ?","Et les contributeur\xb7trice\xb7s ponctuel\xb7le\xb7s, entre deux et cinq articles ?","Comme pour les cas pr\xe9c\xe9dents, on voit que les auteur\xb7e\xb7s ayant \xe9crit plus de 5 articles contribuent grandement \xe0 la diversit\xe9 des th\xe9matiques trait\xe9s dans le blog.","Regardons aussi quels s
1ont les personnes qui ont \xe9crit plus de 50% de leurs contributions sur le m\xeame sujet (pour celles\xb7ceux qui ont \xe9crit plus de quatre articles), ce sont majoritairement les plus grand\xb7e\xb7s contributeur\xb7trice\xb7s que ce soit dans le top 5 ou non."],$r=function(){var t=Kr(),e=Object(r.useState)(null),a=Object(I.a)(e,2),o=a[0],n=a[1];return Object(g.jsx)(ke,{currentStepIndex:o,onStepEnter:function(t){var e=t.data;n(e)},stepMessages:Zr,children:Object(g.jsx)(h.a,{className:t.svgContainer,children:Object(g.jsx)(Xr,{stepIndex:o})})})},to=Object(d.a)((function(t){return{paragraphLayout:{margin:"0 auto",maxWidth:Ht?"90%":"40em"},paragraph:{margin:t.spacing(5,0)}}})),eo=function(){var t=to();return Object(g.jsxs)(g.Fragment,{children:[Object(g.jsx)(M,{}),Object(g.jsx)(m,{children:Object(g.jsxs)(g.Fragment,{children:[Object(g.jsx)(h.a,{className:t.paragraphLayout,children:Object(g.jsx)(z,{className:t.paragraph,markdownFile:"./content/sections/section1.md"})}),Object(g.jsx)($e,{}),Object(g.jsx)(h.a,{className:t.paragraphLayout,children:Object(g.jsx)(z,{markdownFile:"./content/sections/section2.md"})}),Object(g.jsx)(wa,{}),Object(g.jsx)(h.a,{className:t.paragraphLayout,children:Object(g.jsx)(z,{markdownFile:"./content/sections/section3.md"})}),Object(g.jsx)(gr,{}),Object(g.jsx)(h.a,{className:t.paragraphLayout,children:Object(g.jsx)(z,{markdownFile:"./content/sections/section4.md"})}),Object(g.jsx)(rr,{}),Object(g.jsx)(h.a,{className:t.paragraphLayout,children:Object(g.jsx)(z,{markdownFile:"./content/sections/section5.md"})}),Object(g.jsx)($r,{}),Object(g.jsx)(h.a,{className:t.paragraphLayout,children:Object(g.jsx)(z,{markdownFile:"./content/sections/section6.md"})})]})}),Object(g.jsx)(ne,{})]})},ao=a(197),ro=Object(ao.a)({palette:{primary:{main:"#1b1237"},secondary:{main:"#d0dd2a",darker:"#232f39"},background:{default:"#fff"}},typography:{h1:{fontFamily:"Merriweather",fontWeight:900,fontSize:65,color:"#384702"},h2:{fontSize:28,fontWeight:100,color:"#384702"},h3:{fontSize:30,fontWeight:900,fontFamily:"Merriweather"},h4:{fontSize:25,fontWeight:700,color:"#384702"},h5:{color:"#d0dd2a"},body1:{fontSize:18},caption:{fontStyle:"italic"}}});i.a.render(Object(g.jsxs)(p.a,{theme:ro,children:[Object(g.jsx)(c.a,{}),Object(g.jsx)(eo,{})]}),document.getElementById("root"))}},[[372,1,2]]]);
2//# sourceMappingURL=main.ae0b9384.chunk.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.