Monthly Archives: March 2009

Il rarissimo aglio e il prezioso peperone

Sabato sono stato a fare spesa al Carrefour. Quello di Casalecchio, nei pressi di Bologna, è particolarmente grande. Il reparto frutta e verdura mi ha colpito stavolta per la presenza di un sacco di frutta esotica e rarissima: UVA, PEPERONI, PISELLI e (udite udite!) AGLIO! Ebbene, da dove pensate che questa merce preziosa e introvabile possa arrivare? Dall’Italia? Ovviamente no… vi agevolo la soluzione del rebus con un’immagine che ho voluto creare come collage di tante foto che ho fatto nel supermercato. Le conclusioni sono abbastanza ovvie e le lascio come esercizio per il lettore.

(Notare anche quanto sia ipocrita e stupido che alcuni di questi ortaggi che hanno percorso migliaia di chilometri in aereo e/o autotreno sia considerato biologico (scelgobio))

frutta_collage_small


Azionista di maggioranza

Voglio dedicare questo post a coloro che si auspicano che il loro partito raggiunga il 51% dei consensi. È un partito nuovo, appena formato, di cui oggi si chiude il primo congresso e il cui leader va declamando l’inutilità del ferraginoso parlamento e considera la Costituzione una roba antica da riformare. Le parole sono ancora una volta di Indro Montanelli.

Difetti, Mussolini ne ebbe moltissimi, ed errori ne commise a iosa: gli uni e gli altri sono scritti nei fatti, su cui non resta più nulla o quasi nulla da scoprire. L’unico interrogativo cui la Storia deve  ancora rispondere – e forse non vi risponderà mai in maniera convincente – è fino a che punto i difetti del fascismo furono di Mussolini, e fino a che punto furono degl’italiani.

Che al sopruso e alla dittatura Mussolini avesse una vocazione temperamentale e caratteriologica, è indubbio e dimostrato. Ma quanto vi sia stato anche trascinato dagli echi osannanti che gli rimandava la piazza quando si affacciava al balcone, è difficile da valutare. Una volta Churchill, parlando di lui con la buona intenzione di giustificarlo (e di giustificarsi per averlo un tempo ammirato), mi disse: “Come si fa a non diventare padroni di un popolo di servi?“. Era dura da inghiottire, ma difficilmente contestabile. Me lo ricordo benissimo: noi italiani (sì, c’ero anch’io) ridevamo del Duce, ma facemmo tutto il possibile perché lo diventasse sempre di più.

(29 luglio 1983) – La stecca nel coro


Lisearch: un plugin jquery per una diversa usabilità delle form di ricerca

Ammetto che trovare il titolo mi è costato quasi di più che scrivere il plugin; comunque: questo plugin per jQuery permette di trasformare una form di ricerca (o qualsiasi altra form simile) in modo da renderla di più immediato ed agile utilizzo secondo un paradigma che, lo ammetto, mi sono un po’ inventato io.

Il sistema parte dal presupposto che una form da modificare sia composta da:

  • un campo di testo
  • una lista di opzioni entro le quali cercare (devono essere radio button)
  • un tasto di invio.

L’utente, normalmente, scrive il testo da cercare, seleziona tramite radio button dove vuole effettuare la ricerca (lo scope della stessa) e preme il pulsante. Questo plugin trasforma i radio button in una lista che apparirà direttamente sotto il campo di ricerca non appena il campo di input prenderà il focus. Una volta scritto il testo da cercare, l’utente potrà cliccare direttamente lo scope dentro la lista per effettuare la ricerca. Il plugin crea la lista in modo da essere anche navigabile da tastiera, tramite tab, in quanto tutti gli item sono costituiti da elementi A; così, per una massima velocità di utilizzo, si scrive il testo da cercare, si preme tab e poi invio.

Un paio di immagini dovrebbero chiarire meglio il concetto.

Questa è la form di “partenza”, senza il plugin attivo:

lisearch0Una volta attivato il plugin, la form viene “collassata” in questa:

lisearch1Una volta che il cursore di sia portato nel campo di ricerca, ecco cosa succederà:

lisearch2

I radio button sono stati trasformati in una pseudo select box a discesa, navigabile tramite tab o mouse (non sono attivi i tasti cursore, perché l’impegno necessario è forse troppo rispetto all’effettiva utilità del plugin).

La form di esempio è questa; si può osservare come si usa il plugin:

<html>
<head>
<title></title>
<link rel="stylesheet" href="lisearch.css">
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="lisearch.js"></script>
<script type="text/javascript">
$(function() {
  $('.scopes').lisearch();
});
</script>
</head>
<body>
<form>
  <ul>
    <li>
      <label>Frase da cercare</label>
      <input type="text" id="q" name="q">
    </li>
    <li id="scopes" class="scopes">
      <input type="radio" name="scope" value="italia"><label>In italia</label>
      <input type="radio" name="scope" value="europa"><label>In europa</label>
      <input type="radio" name="scope" value="mondo"><label>Nel mondo</label>
    </li>
    <li><input type="submit" value="Cerca"></li>
  </ul>
</form>
</body>
</html>

Insieme al plugin viene fornito un file CSS minimale che può servire per capire meglio gli elementi che vengono creati e dunque per poterli stilare. Ovviamente niente può sostituire Firebug, in questo contesto.

I test di funzionamento sono stati effettuati con jQuery 1.3.2 (l’ultimissima versione al momento in cui scrivo), ma credo che possa funzionare anche con versioni più vecchie.

Scarica il plugin oppure prova una demo


Chi usa IE6? (ed altre facezie)

Oggi ho scoperto il sito di un tizio che garantisce di fornire la geolocalizzazione esatta di qualsiasi IP. Il database è gratuito e questa persona sostiene che lo terrà aggiornato su base mensile. Sarebbe fantastico :)

Cosa potevo fare per provarlo? Ovviamente cercare di capire da dove provengono le visite delle persone (o altro) che usano Internet Explorer 6. Il test è stato utile solo per provare che non è vero, purtroppo, che la maggior parte degli IE6 sono dei bot travestiti.

Gli impazienti possono vedere i risultati aggregati su questo documento gdocs.

Per i curiosi, ecco come ho proceduto. I dati sono quelli di un mio sito, frequentato per la maggior parte da utenti italiani, raccolti in un periodo di tre mesi.

Ho scaricato il database (è un dump MySQL di circa 68MB) e me lo sono importato in locale.

Con queste due righe di bash (spezzate per motivi di questo spazio) mi sono procurato tutti gli IP degli utilizzatori di IE6 (circa 6500, al momento).

grep "MSIE 6.0" access.log > ie6
awk '{print $1'} ie6 | sort | uniq > ip_ie6

Infine qualche riga di PHP:

$ips = file('ip_ie6');
$countries=$cities=array();
foreach($ips as $ip) {
  list($a,$b,$c,$d) = split('\.',$ip);
  $val = ($a*256+$b)*256+$c;
  $sql = "SELECT * FROM `ip_group_city` where `ip_start` <= {$val} order by ip_start desc limit 1";
  $row = mysql_fetch_object(mysql_query($sql));
  $countries[$row->country_code]++;
  if (!empty($row->city))
    $cities[$row->city . ", " . $row->country_code]++;
}

asort($countries);
foreach(array_reverse($countries) as $country => $count) {
  print "$country\t$count\n";
}

asort($cities);
foreach(array_reverse($cities) as $city => $count) {
  print "$city\t$count\n";
}

Nota che usando un tab (\t) e un ritorno a capo (\n) si può fare copia & incolla direttamente dentro uno spreadsheet di di GDocs e lui “sentirà” la suddivisione in colonne.


Senza vergogna: idee per un CMS

Ho in mente di scrivere un CMS; ecco, l’ho detto, e non mi vergogno neanche (troppo) :)
Questo nuovo, ipotetico CMS, non sarà troppo general purpose, né tantomeno l’ennesima piattaforma di blogging, ma avrà più come obiettivo coloro che hanno bisogno di compilare dei documenti a più mani (traduzioni, manuali, documenti articolati) e avrà le seguenti caratteristiche:

  • Editing secondo i dettami del What You See Is What You Mean
  • Documenti modificabili a livello di singolo paragrafo
  • Documenti multilingua, con traduzioni a livello di singolo paragrafo (corollario del punto precedente)
  • Documenti a pagine multiple
  • Versioning dei documenti
  • Sistema “avanzato” per l’inserimento e la gestione di contenuti multimediali
  • Allegati ai documenti con preview embedded
  • Semplice ma efficace workflow integrato
  • Blocchi di contenuto
  • API per esportare i documenti o in singoli paragrafi. Il sistema deve essere pensato anche come una sorta di web service per la pubblicazione dei documenti

So già che quasi tutte queste funzionalità sono possibili tramite l’accorta ed esperta configurazione di qualcosa di già esistente (Drupal, per esempio), ma probabilmente non ai livelli ai quali stavo pensando io.

Altro?


I contenuti di questo sito sono distribuiti con una licenza Creative Commons 2.5 eccetto dove diversamente specificato.

Tema WordPress Punto5 sviluppato da Claudio Cicali; icone del set famfamfam silk e komodomedia.

© 2005-2010
Claudio Cicali