Gli strumenti del 2016
In passato ho scritto del diario di lavoro che tengo oramai da due anni e mezzo. Mi è venuta la curiosità di fare un'analisi di quanto ho scritto con un software di text processing per capire su che cosa ho lavorato nel 2016 e come si sta modificando il mio ruolo.
Per il text processing non mi sono dato grandi obiettivi, solo avere la lista delle parole più utilizzate. Con l'aiuto di textblob ho fatto un piccolo script per stampare le parole in ordine di occorrenza:
from textblob import TextBlob
with open('/tmp/2016.md') as f:
text = unicode(f.read(), 'utf-8')
blob = TextBlob(text)
wc = blob.word_counts
iwc = {}
for w, c in wc.items():
if c in iwc:
iwc[c].append(w)
else:
iwc[c] = [w]
print len(blob.words)
for i in range(1,1000):
print i, ", ".join(iwc.get(i, []))
Sono quindi andato a fare un po' di pulizia manuale per togliere le parole di uso comune e lasciare solamente software, servizi e termini informatici. Ho escluso i software sviluppati internamente dall'azienda per cui lavoro o quelli sviluppati da esterni esclusivamente per noi. Ho escluso i fornitori, tranne nei casi in cui il fornitore si identifica con il servizio che offre. Ho escluso strumenti informatici di uso comune, come l'email. Ho tenuto gli aspetti tecnologici ma ho tolto i termini relativi al dominio applicativo (come pubblicità o pubbliredazionale). Ho tolto le parole che probabilmente fanno parte di un comando (come checkout), tranne quando si tratta anche del nome del software (git). Ho tenuto pratiche e concetti informatici. Infine ho escluso quelli che hanno una sola occorrenza.
Ecco la lista, con a fianco il numero di occorrenze, estratta da un totale di 42555 parole scritte:
- polopoly 125
- deis 123
- docker 109
- deploy 104
- api 87
- convox 76
- cache 57
- endpoint 55
- mockserver 50
- mobile 49
- logging 45
- redis 39
- documentazione 39
- amp 36
- heroku 35
- git 35
- dokku 32
- json 31
- container 29
- spf 28
- script 28
- template 28
- html 27
- rest 26
- grunt 26
- vagrant 26
- webtrekk 26
- js 25
- bash 24
- firebase 24
- reperibilità 23
- rack 23
- database 23
- userspike 22
- pilbox 21
- loginradius 20
- cloudwatch 19
- routing 19
- papertrail 18
- coda 18
- refactoring 17
- python 17
- nginx 17
- pivotal 17
- google 16
- ram 16
- zip 16
- aws 15
- algolia 15
- abao 14
- rpc 14
- dns 13
- gitlab 13
- cms 13
- asincrono 13
- uwsgi 12
- sudo 12
- cron 12
- docker-compose 12
- jwplayer 11
- ads 11
- parsing 11
- javascript 10
- iubenda 10
- gpt 10
- aiohttp 10
- versioning 10
- s3 9
- npm 9
- raml 9
- varnish 9
- mpay 9
- apt-get 9
- marfeel 9
- gzip 9
- new relic 9
- mysql 8
- sso 8
- vim 8
- dfp 8
- apache 8
- cloud 8
- csv 8
- encoding 8
- xml 7
- ubuntu 7
- cluster 7
- amazon 7
- gunicorn 6
- cpu 6
- load 6
- blog 6
- prestashop 6
- changelog 6
- elasticsearch 6
- heartbeat 6
- unplanned 6
- medium 6
- windows 6
- sass 6
- lazyload 6
- schema.org 6
- zabbix 5
- monitoring 5
- ftp 5
- haproxy 5
- ghost 5
- middleware 5
- a/b 5
- pin 5
- postgres 5
- ssh 5
- thread 5
- tomcat 5
- ottimizzare 5
- cookie 5
- jenkins 4
- ttl 4
- trello 4
- slack 4
- grep 4
- ci/cd 4
- cdn 4
- coreos 4
- fallback 4
- validazione 4
- python3.5 4
- memcached 4
- feed 4
- slug 4
- cloudformation 4
- django 3
- proxy 3
- virtualenv 3
- android 3
- rendering 3
- carousel 3
- svg 3
- go 3
- linkpulse 3
- paas 3
- ec2 3
- prefetch 3
- ldap 3
- webpy 3
- beautiful soup 3
- agent 3
- utf-8 3
- diagramma 3
- statistiche 3
- wsdl 3
- vmware 3
- lame 3
- vpn 3
- mediawiki 3
- node 3
- handler 3
- ssl 3
- sitemap 3
- nfs 3
- otrs 2
- unix 2
- goyo 2
- 12-factor 2
- permgen 2
- awesome 2
- sh 2
- rdesktop 2
- demone 2
- markdown 2
- ux 2
- compressione 2
- dnsmasq 2
- disaccoppiare 2
- solr 2
- lsof 2
- alpine 2
- pagespeed 2
- fork 2
- provisioning 2
- orchestration 2
- authentication 2
- fcgi 2
- sftp 2
- sqlite 2
- ios 2
- pip 2
- cors 2
- ecs 2
- jwt 2
- python-mode 2
- sincrono 2
- sentry 2
- etag 2
- vim-markdown 2
- apiary 2
- python3 2
Nel 2015 invece queste erano le parole più usate su 35693 parole totali:
- userspike 153
- script 70
- polopoly 67
- documentazione 62
- database 56
- feed 47
- celery 42
- template 41
- django 40
- wiki 39
Ed ecco la variazione dal 2015 al 2016 delle parole più usate nel 2015:
- polopoly 67 -> 125
- deis 0 -> 123
- docker 0 -> 109
- deploy 33 -> 104
- api 15 -> 87
- convox 0 -> 76
- cache 6 -> 57
- endpoint 1 -> 55
- mockserver 0 -> 50
- mobile 18 -> 49
Altre parole del 2015 scomparse nel 2016: magento, mongo, angular, asana, fabric, balsamiq, camel, flask.
In retrospettiva, la cosa più notevole è l'attenzione dedicata al mondo PaaS. Il nuovo sito adotta infatti una strutta a microservices con API costruite intorno al CMS, Polopoly. I servizi sono inseriti in container Docker su AWS, utilizzando Convox come piattaforma di gestione dei rack Amazon. Prima di scegliere Convox abbiamo studiato altre soluzioni, in particolare Deis, ma siamo rimasti convinti dall'approccio "integration over invention" e dal supporto di Convox.
Come conseguenza della svolta microservices, l'attività di sviluppo si è spostata dal classico stack basato su Django con deploy tramite Fabric, a framework più leggeri e orientati all'I/O, come aiohttp basato su asyncio di python3. Parallelamente, al grande lavoro fatto con Celery nel 2015 si sostituisce il semplicissimo rq.
Lato frontend, per non farsi mancare nulla, abbiamo i primi tentativi con AMP e un non completo impiego di SPF di youtube. Comincia nel 2016 anche la mia esperienza on call. Infine, a supportare il nostro scrum, Pivotal Tracker prende il posto di Asana.
Cover by Darlene Hildebrandt, some rights reserved