Archived posts in ' "opensource"

Back home

K&R[IP]

10/13/2011

Dennis Ritchie (a destra) con Ken Thompson

Se n’è andato pure lui. RIP.

No Comments

Tre progetti tre

01/19/2011

E’ maledettamente frustrante. Sei in qualche modo interessato a tre progetti, e su due di questi hai basato altrettanti tuoi lavori; poi in poco tempo scopri che:

* il team che sviluppa la ROM per il tuo vecchio smartphone Android ha smesso di supportarlo;
* l’estensione che usi per lo script che tanto ti ha reso famoso in FF ha un bug noto che nessuno sembra intenzionato a risolvere;
* il servizio al quale si appoggia il plugin WordPress che hai rimesso in sesto o funziona male o ha cambiato la modalità di funzionamento, e ti arrivano segnalazioni di bug che non puoi risolvere;

Valuto seriamente l’idea di mollare tutto, sistemare il giardino della padrona di casa e farci un orto.

5 Comments

Greasemonkey e localStorage

01/12/2011

Tentando di scrivere una nuova e più completa versione dello script FFHideByKeyword mi sono scontrato con un subdolo e fastidioso bug di Greasemokey, il famoso script engine per Firefox che permette di modificare il comportamento ed il layout di una pagina HTML. Il bug in questione è legato all’utilizzo del localStorage, una tecnologia introdotta con HTML5 alternativa ai vecchi cookie, tecnologia che uso per archiviare le parole chiave indesiderate scelte dall’utente. La tecnologia è supportata dai maggiori browser [è possibile fare un test a questo indirizzo: HTML5 test], fornisce delle API chiare e facili da usare, e mi è quindi sembrato un peccato non sfruttarla.
Ma veniamo al bug. La parte subdola sta nel fatto che non tutte le API sono disponibili, e quella che manca è la proprietà window.localStorage.length, che riporta il numero di coppie chiave/valore presenti nello storage. La proprietà è molto importante, perché in assenza di iteratori conoscere questo valore è l’unico modo pulito per accedere agli elementi, con un classico ciclo for:

1
2
3
4
for (var i = 0; i < window.localStorage.length; i++) {
   k = window.localStorage.key(i);
   myFunction(window.localStorage.getItem(k));
}

Ho usato il termine pulito perché in effetti è si possibile usare un metodo alternativo, ma sinceramente lo trovo brutto e per nulla ottimizzato. Il seguente ciclo potrebbe funzionare, ma non l’ho testato:

1
2
3
4
5
6
7
8
var i = 0;
if (window.localStorage.key(i) != null) {
   do {
      k = window.localStorage.key(i);
      myFunction(window.localStorage.getItem(k));
      i++;
   } while (window.localStorage.key(i) != null);
}

Il bug è facilmente verificabile.
Il seguente codice HTML è funzionante:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<html>
<head>
</head>
<body>
<div id="out"></div>
<script language="Javascript">
   var out = document.getElementById("out");
   window.localStorage.setItem("test", "test");
   out.innerHTML += "Getting data: " + window.localStorage.getItem("test") + "<br />";
   window.localStorage.setItem("test1", "test1");
   out.innerHTML += "Total count: " + window.localStorage.length;
</script>
</body>
</html>

mentre il seguente userscript no:

1
2
3
4
5
6
7
8
9
10
11
12
13
// ==UserScript==
// @name           Length Test
// @namespace      me
// @description    A test for localStorage.length
// @include        http://www.google.it/
// ==/UserScript==


var out = document.getElementById("ghead");
window.localStorage.setItem("test", "test");
out.innerHTML += "Getting data: " + window.localStorage.getItem("test") + "<br />";
window.localStorage.setItem("test1", "test1");
out.innerHTML += "Total count: " + window.localStorage.length;

Qui c’è la segnalazione, direi scarsamente considerata, e qui il thread nel Google Group relativo. In attesa di un bugfix, lo sviluppo dello script è interrotto.

Technorati Tags: ,

1 Comment

#BTCNew e i problemi lato Backtype

11/25/2010

In seguito alle ultime installazioni, qualche amico ha riportato segnali di mancato funzionamento del plugin nell’importare nel blog i commenti relativi ad un post fatti su Friendfeed. Dopo diversi controlli [ed una nuova versione in arrivo a breve, code cleanup e una opzione per facilitare il debug] sono quasi convinto che il problema in effetti ci sia, ma che si trovi lato Backtype. Verificando il mio blog su BT noto che le reactions da Friendfeed si interrompono verso il 15 novembre; la medesima cosa accade con i blog degli amici che hanno riportato i problemi di cui sopra. Ho anche aperto un ticket nell’help system di Backtype, vediamo cosa rispondono. Mi dispiace amici, ma più di così per ora non posso fare.

Technorati Tags: ,

1 Comment

BTCNew, un fork di Backtype Connect

10/18/2010

Sembra che il primo tentativo di forkare il plugin Backtype Connect non più funzionante sia andato a buon fine. Il vecchio plugin è stato scritto in modo abbastanza chiaro, quindi non è stato troppo complicato il riadattamento alle nuove API di Backtype; se dovessi fare una stima del tempo richiesto per mettere in piedi questa prima versione direi che ho impiegato una decina di ore. Il nuovo plugin, chiamato con molta fantasia BTCNew, fa quello che deve fare e lo ha fatto con successo nel mio blog, quindi oserei dire che funziona. Si tratta comunque di codice sporco, quindi se volete provarlo: 0] non siate troppo severi riportando eventuali bug 1] fate as.so.lu.ta.men.te un backup del database, ché non si sa mai 2] potrebbe essere utile impostare la moderazione dei commenti importati, almeno per la prima volta, in modo da verificare il corretto funzionamento. Ah, dimenticavo, il plugin si trova qui, e qui c’è la pagina dedicata.

Technorati Tags: ,

3 Comments