Ho comprato le scarpe nuove per correre circa due settimane fa. Facebook, senza perdere un colpo, continua a propormi di comprare scarpe. Con buona probabilità continuerà così per almeno altre due settimane.

Facebook Ad #1

L’algoritmo “ti propongo X perché hai cercato X” funziona in un numero estremamente ridotto di casi.
L’algoritmo “ti propongo X perché so per certo che X serve per il tuo interesse Y” è sicuramente più efficace, ed è per questo motivo che ogni giorno che passa mi viene voglia di fare tabula rasa dell’account Facebook. Promemoria: se il prodotto è gratis, stai semplicemente pagando con i tuoi dati.

Oggi però Facebook si è superato.

Facebook Ad #2

Passi per le solite scarpe. Peccato che quello sopra sia un annuncio messo dal sottoscritto. Probabilità di comprare la bici messa in vendita da me stesso? Fate vobis.


Confesso di non apprezzare il nome scelto – ne ignoro i motivi, ma nella mia testolina bacata lo immagino pronunciato da Enzo Braschi in versione Drive In – però non è da escludere che abbia successo con un pubblico anglofono abituato a storpiare l’italiano.

Ho letto diversi post sulla questione, incluso questo di Matteo Flora e questo (assolutamente condivisibile): c’è poco da vantarsi per un sito che muore sotto un numero di richieste che non pare straordinario. Va detto che su Twitter e altrove c’è gente che commenta un po’ a pene di segugio, incluso il digital champion (sigh) che confonde mobile first e app per cellulari.

Personalmente ho solo due problemi con quel sito, e non ho visto nessuno farli notare (magari frequento le persone sbagliate):

  • Caricare la home significa scaricare un index di 8951 righe. 84 richieste (ma gli sprite non van più di moda?), più di 6 secondi per caricare la pagina. Non ho una connessione in fibra, ma un’ADSL probabilmente sopra la media della qualità italiana. Un tempo del genere mi sembra veramente eccessivo.
  • Il sito è completamente inusabile senza JavaScript attivato. Non funzionano le caselle di scelta, la ricerca, non puoi passare alla seconda pagina. Non è così complicato avere un sito che non esplode senza JS.

Traffico di rete (parziale)


Appunti su Mercurial e OS X

23 Gennaio 2015

Questa settimana ho finalmente trovato il tempo per sistemare alcuni piccoli problemi nel mio flusso di lavoro – in inglese verrebbero definiti paper cuts, taglietti piccoli ma fastidiosi.

Tralasciando il consiglio di installare le versioni più aggiornate di software come Git e Mercurial (personalmente preferisco installer nativi a MacPort o Homebrew), approfitto di questo post per alcuni appunti su editor di testo e Mercurial in ambiente OS X.

Editor di testo

Il mio editor di testo principale è Sublime Text 2 (ST2). Ho installato anche TextMate 2 e Atom (provato solo superficialmente finora), ma il 90% del tempo utilizzo ST2. Non amo gli editor da terminale: non ho mai trovato il tempo e la voglia di imparare a usare vi, se proprio tocca (es. sessione remota su server) c’è nano.

Per avviare ST2 direttamente da terminale è sufficiente creare un link all’apposito comando sudo ln -s "/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl" /bin/subl

TextMate permette di automatizzare questo processo dalle Preferenze, l’eseguibile si chiama mate.

L’aspetto fondamentale è che, con entrambi i comandi, è possibile aprire direttamente una cartella nell’editor, es. subl ~.

Questo è il mio file di configurazione di ST2 (confesso di non essere un grande utilizzatore di plugin):

{
	"color_scheme": "Packages/Color Scheme - Default/iPlastic.tmTheme",
	"detect_indentation": false,
	"font_size": 12.0,
	"hot_exit": false,
	"ignored_packages":
	[
		"Vintage"
	],
	"remember_open_files": false,
	"rulers":
	[
		80
	],
        "spell_check": false,
        "dictionary": "Packages/Language - Italian/it_IT.dic",
	"tab_size": 4,
	"translate_tabs_to_spaces": true,
	"trim_trailing_white_space_on_save": true
}

A differenza di TextMate, che utilizza il dizionario disponibile nel sistema, in ST2 il dizionario italiano va aggiunto manualmente. Fortunatamente il file .dic di Firefox/LibreOffice è compatibile.

Mercurial

Il primo consiglio è crearsi un file ~/.hgignore per escludere quella piaga dei file .DS_Store (anche se ho iniziato ad usare Asepsis da un po’ di tempo).

# use glob syntax.
syntax: glob

*.DS_Store

Estensioni consigliate:

  • color: utile sia per hg diff che hg status. Per controllare le modifiche di solito utilizzo hg diff|mate, dal momento che la visualizzazione dei diff è molto più chiara in TextMate.
  • extdiff: permette di utilizzare programmi esterni per il confronto in caso di merge. Al momento è impostato per usare KDiff3.
  • purge: è un vero salva-tempo, visto che hg up -C non rimuove i file attualmente non sotto controllo di versione.
  • transplant: permette di ‘trapiantare’ un changeset da un repository all’altro.

Veniamo alla scoperta di questa settimana: ho sempre utilizzato nano per i messaggi di commit, e non era esattamente comodo. La scoperta è che impostare Sublime Text come editor predefinito per Mercurial è davvero banale. In ~/.hgrc:

editor = /Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl --wait

In teoria dovrebbe funzionare anche editor = subl -w. Nel mio caso non c’è stato verso e non ho investito ulteriore tempo per scoprirne la causa.

L’altra scoperta della settimana è quanto sia veloce (e ben documentato) impostare BitBucket+Mercurial+SSH. Peccato non averci mai guardato prima per pigrizia.

Sempre a proposito di BitBucket: se siete allergici alla riga di comando, SourceTree è una buona alternativa.


L’ultima versione disponibile del plugin Flash (16.0.0.257) è vulnerabile, e a quanto pare la vulnerabilità è già sfruttata in exploit kit.

Se usate Firefox, e non l’avete già fatto, è il caso di impostare il funzionamento del plugin “a richiesta”:

  • Aprire about:addons (oppure Strumenti -> Componenti aggiuntivi).
  • Selezionare la scheda Plugin.
  • Individuare Flash e impostarlo come “Chiedi prima di attivare”.
  • A questo punto attivare Flash solo su siti che considerate affidabili.

Disattivare Flash

Se non usate Firefox, mi dispiace per voi 😉

UPDATE ore 13: è disponibile per il download la versione 16.0.0.287, ma il consiglio rimane valido.


Firefox

Partiamo dalla parte più semplice, l’anno (quasi) finito:

  • Sono trascorsi 14 mesi da quando ho cambiato vita lavorativa abbandonando completamente il campo dell’assistenza hardware/software. Non è stata una scelta facile ma, ad oggi, non potrei essere più soddisfatto. Per lavoro ho trascorso una settimana a Portland e una a Parigi (e finalmente visto Versailles).
  • Ho fatto le mie prime ferie dopo anni, non ricordo nemmeno l’ultima volta in cui mi sono preso una settimana completamente libera dai clienti.
  • Continuo a odiare i telefoni cellulari. C’è di positivo che ormai suona talmente poco che quasi mi dimentico di odiarlo.
  • Strava dixit: percorsi 675 km di corsa (più altri ~250 km su tapis roulant nei primi sei mesi dell’anno), 1.120 km in mountain bike. Grazie anche a questo sono riuscito a mantenere il peso dell’anno scorso (segnava un +4 Kg ad agosto).
    Non vivo con l’ossessione della bilancia, ma sono consapevole che ritrovarsi con +20 Kg è un battito di ciglia per il sottoscritto (record personale stimato intorno ai 115 Kg).

E veniamo a una parte nuova con i propositi per il 2015, poche cose, semplici e facili da verificare tra 12 mesi:

  • Leggere almeno un paio di libri tecnici (argomento a piacere tra JavaScript, node.js, PHP, CSS, Python, Django) e soprattutto cercare di usare quanto imparato in qualche progetto.
  • Scrivere di più su questo blog (almeno 4/5 articoli al mese) e su quello in inglese (almeno uno al mese).
  • Fotografare di più e iniziare a usare Lightroom.
  • Decidermi a sistemare il mio primo tatuaggio (ormai maggiorenne).
  • Visitare Londra (e magari trovarci qualche espatriato).
  • Visitare San Francisco (hard but not impossible).
  • Correre almeno 100 km al mese, fare un giro in mountain bike “fuori zona” (senza partire da casa).
  • Perdere un po’ di peso, o quantomeno non accumularne.

 


Mozilla - Build Products for People

Panasonic DMC-LX100