La fine di un era

Era nell’aria e si sapeva che prima o poi sarebbe successo, ed infatti è successo: Mozilla ha eliminato dal proprio sito tutte le versioni obolete delle estensioni che non sono state migrate alle nuove WebExtensions API!! 😯

Facciamo chiarezza e spieghiamo bene la storia.
Le estensioni per Firefox, fino alla versione 57 del browser, erano scritte con una tecnologia nota come XUL/XPCOM, e permettevano una grande personalizzazione. Le ultime versioni del browser, invece, utilizzano delle nuove API, sicuramente più moderne, più sicure e più standardizzate rispetto agli altri browser, ma meno potenti.

Le nuove versioni di Firefox non supportano più le vecchie estensioni, che sono dunque utilizzabili solo sulle vecchie versioni o su fork di Firefox basati su vecchie versioni (Basilisk, Pale Moon e Waterfox).

Quello che fa un po’ tristezza è proprio questo: le vecchie estensioni potevano essere marcate in sola lettura o inserite in un archivio “storico”, senza cancellare 14 anni di storia del web. Anche perché alcune estensioni (come ad esempio SessionManager, che permette di salvare su file la sessione corrente, compreso lo storico di ogni finestra) non hanno ancora eguali.

Chi volesse ancora usare le vecchie precedenti tencologie con i browser sopra-citati, può installare l’estensione Classic Add-Ons Archive, un archivio off-line di estensioni recuperate.

Cosa vedo su Facebbok

Ho fatto un piccolo esperimento: sono stato lontano da Facebook per un paio di giorni ed oggi ho deciso di controllare con occhio analitico cosa mi appare sulla bacheca.
Lo scopo era verificare in modo (quasi) scientifico cosa mi fa vedere Facebook.

Questo il brutale elenco dei primi 30 post visualizzati:

  • un ricordo di 5 anni fa (una foto di quando c’era tempo per uscire)
  • un post di Missione Scienza*
  • 2 post di Una pillola di storia antica al giorno*
  • 2 post di Le fotografie che hanno fatto la storia*
  • un post di Lab-Box Film Tank*
  • un post di BraviBimbi*
  • un post di Racconti Crestati*
  • un post in cui sono stato taggato
  • 6 post di un contatto che vaga tra il filosofico e i gruppi Travaglio forever in salsa xenofobi
  • una foto della NASA (bella)
  • 2 post sulla differenza della scuola ieri e oggi
  • un post contro Toninelli
  • un post di Alessandro Di Battista che dà una lezione di giornalismo a Giannini (o almeno così dice il titolo)
  • un post di W IL M5S
  • un ricordo di due tizi che non vedo spesso
  • un post di 50 sfumature di cavolate
  • un articolo della Repubblica sulle assenze della Brambilla
  • una recenzione di un libro che sembra interessante
  • il video del giovane del PD che attacca Burioni
  • una foto di Salvini definito il miglior ministro degli ultimi 70 anni, da condividere e cliccare “mi piace”
  • un articolo di Repubblica su un’emendamento prima bocciato e poi ripresentato dai grillini
  • un commento sulla recita di Natale “cancellata” per non turbare le altre culture religiose

Consideando che i post con l’asterisco sono di gruppi che seguo e che ho impostato ad essere visualizzati prima dei post dei contatti, devo dire che c’è una quantità di monnezza incredibile… soprattutto quando vedo tutti i post e mi appaiono in continuazione post anti-immigrati, anti-PD, anti-sistema da persone che hanno come livello mentale la terza media…

Non mi cancello da Facebook solo per i gruppi che seguo e qualche parente lontano!! 😈

Ripristino di un repository SVN

Causa corruzione del filesystem di una pennetta USB, ho avuto la possibilità di approfondire la conoscenza di SVN, in particolare sull’argomento recupero dati non proprio irrimediabilmente persi. 🙂

Premesso che il modo migliore è ripristinare un bel backup fresco fresco (dei 4 reporitory che utilizzo, 3 li ho recuparati così), ho trovato utili informazioni qui: in particolare il comando svnadmin verify,  svnadmin dump e svnadmin load, utili per verificare lo stato del repository commit per commit, per esportare i dati e per re-inserirli in un nuovo reporitory.

Di uno dei backup sono riuscito a recuperare solamente la prima parte, mentre gli ultimi 15 commit circa erano corrotti, per cui ho dovuto caricare il rimanente a mano, usando le copie di lavoro locali.
Per fortuna, spulciando i file del repository corrotto, ho trovato dove erano salvate i dati dei commit (percorso REPO_ROOT/db/revs/0, un file per commit con in fondo la lista dei file modificati) e dove i messaggi (percorso REPO_ROOT/db/revprops/0), potendo in questo modo effettuare un “merge” manuale commit per commit, file per file.

E visse (il programmatore) felice e contento… molto probabilmente in cerca di una nuova pennetta e di un sistema di backup un po’ meno manuale. 😀

Thunderbird e Lightning, come sincronizzare il calendario tra due profili Linux e Windows

Mi sono trovato ad aver necessità di utilizzare Mozilla Thunderbird sulla mia macchina in dual boot, Ubuntu e Windows. La necessità era quella di condividere la posta (un account IMAP) e il calendario tra le due installazioni. Non ho potuto usare lo stesso profilo (come già faccio con Firefox) per due motivi: il plugin Lightning è platform-dependent (è diverso tra Linux e Windows) e il profilo IMAP di Windows veniva corrotto da Thunderbird su Ubuntu.

Dopo varie prove e letture, mi sono “ispirato” a questo articolo e ho deciso di utilizzare due profili diversi, uno su Ubuntu e uno su Windows 7, creando dei link tra le sole cartelle dei due profili che mi interessavano.

Il problema è stato trovare informazioni aggiornate, dato che uso (attualmente) Mozilla Thunderbird 45.8.0 e Lightning 4.7.8. Sono riuscito a reperire le informazioni riguardanti dove le informazioni venivano salvate (i dati dei calendari sono nella cartella “calendar-data“, le rubriche in file “.mab“), per cui ho deciso di creare dei link in questo modo:

[profilo Ubuntu]             |       [profilo Windows]
 /                           |        /
 +-- calendar-data          ➜|➜       +-- calendar-data
 +-- Mail                    |        +-- Mail
      |                      |             |
      +-- Local Folders     ➜|➜            +-- Local Folders
 +-- abook.mab              ➜|➜       +-- abook.mab
 +-- history.mab            ➜|➜       +-- history.mab

Sincronizzare le rubriche è stato facile: tramite le funzionalità di esporta/importa ho salvato i dati delle rubriche di Ubuntu e dopo aver creato i collegamenti li ho travasati nella rubrica di Windows che era in uso… a parte qualche doppione da bonificare non ho avuto nessun problema.

Le rogne mi si sono presentate invece con il calendario: anche se avevo condiviso la cartella contenente i file, ogni profilo “vedeva” un suo proprio calendario e non l’altro. Ho effettuato varie prove, ma la condivisione della cartella “calendar-data” non sembrava sufficiente.
Cercando un po’ più approfonditamente e aprendo i file SQLite del calendario, ho trovato questa risposta e ho capito l’inghippo: ogni installazione di Lightning crea un suo “personale” calendario, identificato da un id univoco; il problema è che questo id non è mai visibile da interfaccia, ma è salvato nel file SQLite (associato ad ogni elemento) e nel file delle preferenze “prefs.js“.
In particolare, nel file delle preferenze la riga che contiene l’ordine di visualizzazione dei calendari indica quali vengono usati dal profilo (gli id in elenco sono separati da uno spazio):

user_pref("calendar.list.sortOrder", "id1 id2 ...");
user_pref("calendar.registry.id1.calendar-main-default", true);
user_pref("calendar.registry.id1.calendar-main-in-composite", true);
user_pref("calendar.registry.id1.name", "Predefinito");
user_pref("calendar.registry.id1.type", "storage");
user_pref("calendar.registry.id1.uri", "moz-storage-calendar://");

Le righe successive sono le impostazioni di ogni particolare calendario.

Avendo tutte le informazioni in mio possesso, la sequenza dei passi che ho eseguito per avere lo stesso calendario nei due profili è stata questa:

  1. usando Ubuntu, ho chiusto Thunderbird
  2. ho confrontato i due file “prefs.js” dei due profili e il file “calendar-data/local.sqlite“, e ho raccolto nel profilo Ubuntu tutti gli id presenti nei due file e nel database (oltre a modificare la riga di cui sopra ho anche copiato le successive per ogni calendario)
  3. ho avviato Thunderbird, e nel calendario ho spostato tutti gli appuntamenti e tutte le attività nel calendario principale (quello che volevo mantenere)
  4. ho cancellato tutti gli altri calendari e ho chiuso Thunderbird

E ora vivo felice e contento!!! 😀

Bello sottile… praticamente una bomba

Confermate le indiscrezioni: il responsabile dei problemi al Samsung Galaxy Note 7 è stata la sua sottigliezza, un obbiettivo che si è cercato di raggiungere al massimo e che ha portato ad errori di progettazione ed implementazione (qui un riassunto dei problemi, mentre qui c’è una descrizione più “tecnica”)…

infografica
infografica Samsung (fonte)

Al che mi chiedo: ma è proprio così necessario avere un telefono sottile sottile sottile, che se non va a fuoco, nemmeno arriva a fine giornata con la batteria???

Competenze informatiche cercasi (al minimo costo)

La storia è recente: qualche mese fa un neo-diciottenne si collega per la prima volta al sito 18app, applicazione web del governo che permette appunto ai diciottenni di disporre di buoni fino a € 500. Giovane piccolo nerd, analizzando il traffico HTTP riesce a trovare una falla nel sistema che permette di conoscere i dati altrui e di generare bonus gratuitamente utilizzando i fondi degli altri utenti.

Tutto è bene quel che finisce bene: il giovane decide di rendere noto ai gestori del sito la problematica, che viene sistemata. Per i dettagli tecnici, vi rimando al sito del giovane che spiega tutto.


fonte: il sito del diciottenne

Ho però, una riflessione, partendo da un presupposto: il ragazzo non ha fatto nulla di “eccezionale” in senso assoluto (il controllo del traffico HTTP e cose simili sono cose frequenti quando si lavora in informatica), anche se sicuramente per la sua età ha capacità e conoscenze fuori dal comune. Insomma, la stampa generalista, come al solito, ha bisogno di scalpore.

Quello che mi chiedo però è: ma i creatori e gestori del servizio, che leggo è SOGEI, ma come cazzo hanno progettato questo sito??? La vulnerabilità si può descrivere per vie brevi in questo modo:

il sito, nel creare un buono, ri-chiedeva all’utente il suo identificativo (senza password); era perciò possibile inviare l’identificativo di un altro utente (gli identificativi erano numeri progressivi, per cui facili da indovinare)

Per capire la portata di questo bug: è come se nell’interfaccia di gmail/outlook ci fosse un campo con il nostro indirizzo email, popolato al nostro accesso; se in questo campo scrivo un altro indirizzo email e premo invio, posso vedere la posta di un altro.
Ma chi c’hanno messo a scrivere il codice? Topo Gigio sicuramente no, non avrebbe fatto una bestialità del genere…

Forse qualcuno (ai piani alti) deve iniziare a capire che per avere software di qualità servono programmatori competenti, e che questi vanno pagati bene… dare lavoro al primo universitario o neo-laureato in stage, non è garanzia di una buona riuscita nel lavoro.

Firefox e il servizio Pocket

Nelle ultime versioni di Firefox, per la precisione dalla versione 38.0.5, è stato integrato il servizio Pocket (già Read It Later), con cui è possibile salvare nel cloud una lista di articoli da leggere successivamente; la comodità sta ovviamente nel fatto che sia possibile raggiungere questa lista da dispositivi diversi.

Pocket logo

A me personalmente questa situazione fa molto comodo, avendo io da anni un account su questo servizio e avendo ora un lettore di ebook “da-viaggi-in-treno” in cui questo servizio è integrato (quando è connesso sincronizza la lista e scarica gli articoli per una comoda lettura off-line).

Ad altre persone, però, questa inclusione forzata non è piaciuta affatto (tanto che esiste un’estensione che comodamente disattiva questo e altre componenti non “richieste”), facendo notare che:

  • Firefox dovrebbe essere un browser open e che promuove una Internet open, mentre questo è un servizio chiuso (e di alternative più “libere” ne esistono, come Instapaper o Wallabag)
  • quello che viene fatta con questa integrazione si poteva fare (e si faceva) con una estensione…

A questo, aggiungo io, che l’integrazione non mi soddisfa per niente! Con il plug-in era possibile avere il tasto di salvataggio nella barra degli indirizzi (che mostra lo stato di salvataggio della pagina nella propria lista) e aprire un pannello laterale per visualizzare l’elenco degli articoli salvati… insomma, una sciccherìa!!!

Purtroppo il vecchio plug-in non è più disponibile… ma per fortuna sono riuscito ad estrarne una copia dal mio profilo sul PC di casa, e ora lo posso mettere a disposizione di tutti qui. 😀
Non è perfetto, ad esempio su Windows c’è una finestra di Firefox in cui funziona male e una in cui funziona bene, ma tutto sommato si può fare. 🙂

Compattare un hard disk virtuale Virtualbox

In questi giorni sto testando varie funzionalità di Virtualbox, soprattutto la clonazione delle macchine virtuali per avere una macchina “pulita” di partenza e clonarla alla bisogna.

In questo mi è capitato, con la mia macchina Windows Xp, di aver avuto la “necessità” di ridurre lo spazio dell’hard disk virtuale (in formato vdi), dato che occupava 11 GB ma in uso ce ne erano solamente 7.

Ho così trovato una guida, e a parte qualche dettaglio, sono riuscito a risparmiare i miei buoni 4 GB. 😀
I passi sono questi:

  1. deframmentare il disco dalla macchina virtuale (nel mio caso, con Windows Xp)
  2. effettuate una cancellazione “vera” delle parti di hd non utilizzate:
    • se la macchina virtuale è Windows, scaricare questo tool Microsoft, SDelete, ed eseguitelo nella macchina virtuale come
      sdelete.exe -z

      (attenzione, nell’articolo originale è citato il flag -c, ma nelle ultime versioni del tool è stato sostituito dal flag -z)

    • se la macchina è Linux, utilizzate il comando
      cat /dev/zero > zero.fill;sync;sleep 1;sync;rm -f zero.fill
  3. spegnete la macchina virtuale (senza salvare lo stato, va proprio spenta!!)
  4. date il comando nel sistema host
    VBoxManage modifyhd file.vdi --compact

Attenti che i passi 2 e 4 ci mettono un bel po’ di tempo…

Nell’articolo è citata la possibilità non di compattare il file, ma di clonare l’hard disk virtuale con il comando

VBoxManage clonehd file.vdi nuovo_file.vdi

Questo causerà la creazione di un nuovo file vdi con un diverso UUID.