Per iniziare una rapidissima panoramica sull’attuale ciclo di sviluppo di Firefox, introdotto a partire dalla versione 5.0 e anche noto come rapid release cycle.

Il ciclo di sviluppo dura 6 settimane, con qualche eccezione causa festività o eventi particolari, ed esistono quattro canali di distribuzione.

Firefox versionsNightly: il più instabile, aggiornato ogni giorno. È consigliato solo a utenti più esperti che, ad esempio, sappiano come gestire più profili ed effettuare backup dei propri dati (Sync aiuta).

Developer Edition (ex Aurora): sufficientemente stabile per l’uso quotidiano, focus sugli sviluppatori web, aggiornamenti quasi quotidiani. Da quando è stata introdotta la versione Developer Edition (novembre 2014), l’opzione predefinita è quella di utilizzare un profilo specifico “dev-edition-default” per questa versione, separato dai profili esistenti.

Beta: stabile, aggiornato due volte a settimana, adatto soprattutto a chi voglia sperimentare in anteprima le novità. Nella prima metà del ciclo (indicativamente fino alla beta 4) è possibile provare caratteristiche che non verranno incluse in release.

Release: la versione consigliata per l’uso quotidiano, aggiornata ogni 6 settimane a meno che non venga distribuita una versione intermedia per problemi di stabilità o sicurezza (es. 36.0.4).

Questa è la situazione attuale (parlando di eccezioni, siamo in un ciclo di sole 5 settimane):

  • Nightly: Firefox 39
  • Developer Edition: Firefox 38
  • Beta: Firefox 37
  • Release: Firefox 36

Lunedì prossimo (30 marzo) è il merge day: Nightly diventa Firefox 40, Firefox 39 passa in Aurora, Firefox 38 in beta e viene ufficialmente distribuito Firefox 37. Il giorno di distribuzione è normalmente il martedì successivo al merge day. Da sempre, anche prima del nuovo ciclo di sviluppo, il martedì è il giorno dedicato all’uscita di nuove versioni o prodotti in Mozilla.

Nightly in italiano?

Sempre più spesso vedo utenti esperti utilizzare Nightly in inglese: mentre le versioni Developer Edition/Beta/Release localizzate in italiano sono facili da scaricare, questo non è purtroppo vero per Nightly.

È possibile scaricare Nightly in italiano direttamente dal server FTP Mozilla utilizzando questo link. Cercate ‘.it’ nell’elenco e selezionate la versione adatta al vostro sistema operativo. La versione localizzata è aggiornata ogni giorno, esattamente come quella inglese. Eventuali nuove stringhe vengono generalmente tradotte nel giro di 1/2 giorni, e potete utilizzare il forum di supporto per segnalare eventuali errori. Un modo semplice per dare il vostro contributo ;-)


Il mio profilo Eolo ha un limite di traffico di 40 GB mensili al massimo della velocità (20/2 Mbit/s). Superato questo limite la velocità viene ridotta a 5/0,5 Mbit.

Eolo fornisce un’applicazione per visualizzare il traffico rimanente, ma la trovo piuttosto scarsa di informazioni. Siccome il codice è su Github, pur non conoscendo nulla di Adobe Flex ho cercato di capire come funziona e scoperto che i dati vengono recuperati in formato JSON.

Geektool + Eolo

Questo è lo script che attualmente utilizzo per tenere d’occhio il traffico con GeekTool (i programmatori Python sono pregati di ignorare la bruttezza del codice).

#! /usr/bin/env python

import json
import urllib2
from datetime import datetime

eolo_url = "https://care.ngi.it/ws/ws.asp?a=get.quota"
try:
    response = urllib2.urlopen(eolo_url)
    json_data = json.load(response)
    if json_data['response']['status'] == 200:
        data = json_data['data']
        # Days before reset
        end_date = datetime.strptime(data['nextReset'], "%Y-%m-%d %H:%M:%S")
        remaining_days = abs((end_date - datetime.today()).days)
        # Data quota/usage
        quota_mb = data['quota'] / 1024
        used_mb = data['used'] / 1024
        remaining_mb = quota_mb - used_mb
        # Print values
        print "Rimamenti:        %5.0f MB" % remaining_mb
        print "Quota:            %5.0f MB" % quota_mb
        print "Giorni:              %2.0f g" % remaining_days
        print "Media consumo:    %5.0f MB/g" % \
              (used_mb / (30 - remaining_days))
        print "Media dispon.:    %5.0f MB/g" % \
              (remaining_mb / remaining_days)

except Exception as e:
    print "Error reading json file from " + eolo_url
    print e

Un altro script mi permette di verificare il gateway in uso (per scaricare file di grandi dimensioni e non urgenti posso usare l’ADSL standard).

#! /usr/bin/env bash

printf "IP Address: `ifconfig en0 | grep inet | grep -v inet6 | awk '{print $2}'`\n"
printf "Gateway:    `route -n get default | grep gateway | awk '{print $2}'`\n"

Il secondo script è stato aggiunto dopo essermi accorto di aver scaricato 5 GB di XCode e aggiornamenti pensando di essere collegato all’ADSL. Su Windows mi serve solo visualizzare il gateway, e Rainmaker fa il suo lavoro piuttosto bene.


Eolo wireless

13 marzo 2015

Ho una connessione ADSL Telecom da una vita, partita come Tin.it 512k non appena la mia zona è stata raggiunta dal segnale (a memoria oltre dieci anni fa).

Conoscendo le esperienze di amici e colleghi, sono consapevole di non potermi lamentare: credo di aver avuto 4 o 5 black-out seri in tutti questi anni, la connessione è stabile e decentemente veloce.

Speedtest Telecom

Nota: per avere queste velocità pago l’opzione Superinternet Plus (10,08 €/bimestre da aggiungere ai 43,80 € di Alice 7 Mega).

Considerato che lavoro da casa, e Internet è assolutamente fondamentale, da un po’ di tempo stavo pensando di mettere una connessione di backup (la ricezione dei cellulari è pessima nella zona in cui vivo). Per darmi la spinta finale Telecom ha deciso di lasciarmi a piedi per 48 ore, in cui ho dovuto arrangiarmi utilizzando un Flame con Firefox OS come hotspot, e rinviare almeno 2 o 3 riunioni (banda disponibile su cellulare e connessione video non vanno d’accordo).

La scelta è caduta su Eolo. Ho bisogno di utilizzare la connessione per un po’ di giorni prima del verdetto finale, ma per ora l’unico problema è quello di definire questa connessione il “backup”.

Speedtest Eolo

Il profilo è 20/2 Mbit, con limite mensile di 40GB. Se le prestazioni rimangono queste, Eolo è destinato a diventare la connessione primaria e Telecom il backup.

Per i curiosi: per l’ADSL Telecom utilizzo un Fritz!box 3390, mentre per Eolo ho preso un Asus RT-N56U. Sono rimasto piacevolmente sorpreso dall’Asus, peccato solo per la malsana idea di dover ripristinare la configurazione quando aggiorni il firmware.


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.