<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Gerry&#039;s blog</title>
	<atom:link href="http://www.gerry.it/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.gerry.it/blog</link>
	<description>Tech, Anime &#38; clouds</description>
	<lastBuildDate>Thu, 12 Aug 2010 13:40:08 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>IE, ti odio</title>
		<link>http://www.gerry.it/blog/?p=334</link>
		<comments>http://www.gerry.it/blog/?p=334#comments</comments>
		<pubDate>Thu, 12 Aug 2010 13:40:08 +0000</pubDate>
		<dc:creator>Gerry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Bestemmie]]></category>
		<category><![CDATA[informatica]]></category>
		<category><![CDATA[man@work]]></category>
		<category><![CDATA[Tech stories]]></category>

		<guid isPermaLink="false">http://www.gerry.it/blog/?p=334</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.gerry.it/blog/uploads/2010/08/ihateyou.png"><img class="alignnone size-full wp-image-335" title="Odio internet explorer" src="http://www.gerry.it/blog/uploads/2010/08/ihateyou.png" alt="" width="633" height="1181" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.gerry.it/blog/?feed=rss2&amp;p=334</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Come IE fa impazzire un webmaster (la variabile keywords)</title>
		<link>http://www.gerry.it/blog/?p=312</link>
		<comments>http://www.gerry.it/blog/?p=312#comments</comments>
		<pubDate>Tue, 13 Jul 2010 09:06:38 +0000</pubDate>
		<dc:creator>Gerry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Bestemmie]]></category>
		<category><![CDATA[informatica]]></category>
		<category><![CDATA[man@work]]></category>
		<category><![CDATA[Tech stories]]></category>

		<guid isPermaLink="false">http://www.gerry.it/blog/?p=312</guid>
		<description><![CDATA[Vi racconto la storia di un piccolo pezzo di codice javascript, che funzionava felice su tutti i browser del mondo creato.
Purtroppo arrivò il brutto IE, che invece lo gradiva su una pagina mentre su un&#8217;altra, identico, non gli andava  proprio giù.
Il codice potrebbe essere, più o meno, questo:
&#60;script type="text/javascript"&#62;
&#60;!--
function print_something(prefix){
	// assegno keywords
	keywords = "!";

	// scrivo [...]]]></description>
			<content:encoded><![CDATA[<p>Vi racconto la storia di un piccolo pezzo di <strong>codice javascript</strong>, che funzionava felice su <strong>tutti i browser</strong> del mondo creato.</p>
<p>Purtroppo arrivò il <strong>brutto IE</strong>, che invece lo gradiva su una pagina mentre su un&#8217;altra, identico, non gli andava  proprio giù.</p>
<p>Il codice potrebbe essere, più o meno, questo:</p>
<pre>&lt;script type="text/javascript"&gt;
&lt;!--
function print_something(prefix){
	// assegno keywords
	keywords = "!";

	// scrivo le keywords
	document.write( prefix + keywords );

}

// chiedo la stampa
print_something("world");

// --&gt;
&lt;/script&gt;</pre>
<p>Ora, perchè un codice del genere ad IE piace moltissimo <a href="http://www.gerry.it/blog/uploads/2010/07/nokeyword.htm" target="_blank">in questo file</a> e non funziona del tutto in <a href="http://www.gerry.it/blog/uploads/2010/07/keyword.htm" target="_blank">quest&#8217;altro</a>?</p>
<p>Non vi farò giocare <strong>alle 10 differenze</strong>, nel secondo file ci sono i <strong>meta tag nell&#8217;header</strong> ed IE decide di instanziare un oggetto <em>keywords</em> per accedervi. Quindi non si può riutilizzare la parola <em>keywords</em> come variabile nella funzione perchè IE l&#8217;ha <strong>già istanziata</strong> e ogni operazione porta ad un errore.</p>
<p>Da notare che questo simpatico comportamento  avviene solo all&#8217;interno di funzioni (all&#8217;esterno <em>keywords</em> risulta undefined) e solo se keywords non è dichiarata propriamente (cioè dichiarando <em><strong>var</strong> keywords = &#8220;!&#8221;;</em> il codice funziona perfettamente).<br />
Chiaramente IE non ritorna<strong> un messaggio di errore coerente</strong>, tipo questa variabile è <strong>già dichiarata</strong>,  ma si lamenta su operazioni non valide o proprietà inesistenti.</p>
<p>Cosa si impara da questa esperienza?</p>
<ol>
<li><strong>dichiarare propriamente</strong> le variabili con <em><strong>var</strong> nomevar = valore;</em> non è una perdita di tempo inutile</li>
<li>dare dei <strong>nomi troppo comuni</strong> alle variabili non è una buona idea</li>
<li>i bug più sono stupidi più sono <strong>difficili da trovare</strong></li>
<li>ie sucks.  Ma in fondo questa non è un novità</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.gerry.it/blog/?feed=rss2&amp;p=312</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Life&#8217;s complicated</title>
		<link>http://www.gerry.it/blog/?p=305</link>
		<comments>http://www.gerry.it/blog/?p=305#comments</comments>
		<pubDate>Thu, 01 Jul 2010 15:05:07 +0000</pubDate>
		<dc:creator>Gerry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Bestemmie]]></category>
		<category><![CDATA[man@work]]></category>
		<category><![CDATA[pubblica amministrazione]]></category>

		<guid isPermaLink="false">http://www.gerry.it/blog/?p=305</guid>
		<description><![CDATA[Delle volte potete chiedervi com&#8217;è lavorare in una pubblica amministrazione.
E&#8217; così:

Cos&#8217;è questo? E&#8217; lo schema delle pagine per le immatricolazioni in una pubblica  università italiana di medio-grandi dimensioni.
Pensavate mica vengo-saluto-mi-iscrivo?
Come fa ad essere così complicato? Beh, è facile:

i corsi a numero programmato viaggiano su un binario a parte perchè hanno un test di accesso, per [...]]]></description>
			<content:encoded><![CDATA[<p>Delle volte potete chiedervi com&#8217;è lavorare in una pubblica amministrazione.</p>
<p>E&#8217; così:</p>
<p><a href="http://www.gerry.it/blog/uploads/2010/07/lo-schemone.png" target="_blank"><img class="alignnone size-medium wp-image-306" title="lo schemone" src="http://www.gerry.it/blog/uploads/2010/07/lo-schemone-300x212.png" alt="Schema delle immatricolazioni dell'università" width="300" height="212" /></a></p>
<p>Cos&#8217;è questo? E&#8217; lo schema delle pagine per le immatricolazioni in una <strong>pubblica  università italiana</strong> di medio-grandi dimensioni.</p>
<p>Pensavate mica vengo-saluto-mi-iscrivo?</p>
<p>Come fa ad essere così complicato? Beh, è facile:</p>
<ul>
<li>i corsi a <strong>numero programmato</strong> viaggiano su un binario a parte perchè hanno un test di accesso, per cui hanno il <strong>sacro band</strong>o che dice tutto</li>
<li>i corsi di laurea sono stati <strong>riformati</strong> due volte da quando io sono qui (leggi 590 e 270), questo produce tutta una serie di eccezioni. C&#8217;è <strong>un</strong> corso di laurea che, non si sa come, è riuscito a non essere riformato nemmeno una volta, in pratica è rimasto a prima del 1998.<br />
Questa pletora di norme entra a gamba tesa e trasversalmente in tutti i corsi di laurea, soprattutto se si parla di trasferimenti</li>
<li>le università hanno la cosiddetta <strong>autonomia didattic</strong>a, il che da diritto ad introdurre modifiche a livello locale.<br />
Questo non sarebbe un gran problema, senonchè in realtà le modalità non vengono decise dall&#8217;università ma dalle <strong>singole facoltà</strong> che in pratica operano ognuna-per-se.<br />
Qui ci sono otto facoltà, immaginatevi cosa può uscire da questa combo.<br />
Per esempio adesso va di moda fare un test agli studenti per valutare <strong>se ne sanno abbastanza</strong> per fare l&#8217;università. solo che:<br />
- il test a volte lo puoi fare <strong>dopo</strong> esserti iscritto mentre a volte lo devi fare <strong>prima</strong><br />
- il test può essere <strong>obbligatorio</strong> o no<br />
- se fallisci il test puoi essere obbligato a seguire un <strong>corso di recupero</strong> oppure no<br />
- se fallisci il test ti possono essere <strong>bloccati gli esami</strong> oppure no<br />
Chiaramente ogni facoltà ha deciso per se adottando una combinazione casuale di questi elementi</li>
</ul>
<p>E&#8217; chiaro che a queste condizioni non esiste una <strong>procedura semplice ed intuitiva</strong> per spiegare a un povero niubbo come ci si iscrive all&#8217;università.</p>
<p>E&#8217; impossibile perchè non è possibile semplificare più di tanto quello che in realtà è<strong> estremamente complesso</strong>.</p>
<p>Quel che si può fare è cercare  di costruire una strada a prova di errore che guidi <strong>il massimo numero di persone sulla retta via</strong>, ma è dura&#8230;</p>
<ul></ul>
]]></content:encoded>
			<wfw:commentRss>http://www.gerry.it/blog/?feed=rss2&amp;p=305</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I permessi di phpBB3</title>
		<link>http://www.gerry.it/blog/?p=286</link>
		<comments>http://www.gerry.it/blog/?p=286#comments</comments>
		<pubDate>Mon, 14 Jun 2010 13:08:45 +0000</pubDate>
		<dc:creator>Gerry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Bestemmie]]></category>
		<category><![CDATA[phpbb]]></category>
		<category><![CDATA[Tech stories]]></category>

		<guid isPermaLink="false">http://www.gerry.it/blog/?p=286</guid>
		<description><![CDATA[Ovvero quello che mi capitò tentando di capire come funzionano i permessi, utenti, gruppi soprattutto ruoli di phpBB3, dovendo fare una migrazione da phpBB2.
E&#8217; stato un incubo durato un paio di giorni.
NB: Mi riferirò a board come l&#8217;intero sistema di messaggistica e a forum come una categoria o un singolo gruppo di argomenti.
La prima cosa [...]]]></description>
			<content:encoded><![CDATA[<p>Ovvero quello che mi capitò tentando di capire come funzionano i permessi, utenti, gruppi soprattutto ruoli di phpBB3, dovendo fare una migrazione da phpBB2.</p>
<p>E&#8217; stato un incubo durato un paio di giorni.<span id="more-286"></span></p>
<p>NB: Mi riferirò a <strong>board</strong> come l&#8217;intero sistema di messaggistica e a <strong>forum</strong> come una categoria o un singolo gruppo di argomenti.</p>
<p>La prima cosa che ho cercato di capire è con cosa ho a che fare. Bene, una board è composta da varie entità: gli <strong>utenti</strong>, i <strong>gruppi</strong> e i <strong>forum</strong> (compresi i sottoforum). Queste entità</p>
<p>phpBB3 di suo ci aggiunge anche i <strong>ruoli</strong>, e questo invece ha provocato un surriscaldamento dei miei due neuroni. Questo soprattutto perché il manuale di phpBB3 cerca di spiegarti <strong>come usare i ruoli</strong> senza spiegarti <strong>cosa sono i ruoli</strong>.</p>
<h3>I ruoli in phpBB3</h3>
<p>Dopo lunghi ponzamenti ho capito che i ruoli in phpBB3 permettono di creare insiemi permessi divisi per <strong>tipo di azione</strong> oggetto del permesso.</p>
<p>In phpBB3 ci sono <strong>quattro tipi</strong> di ruoli diversi: amministratore (azioni generali sulla board), moderatore (azioni di moderazione),  utente (azioni di pertinenza dell&#8217;utente) e forum (azioni sui forum). A quanto ne so non è possibile crearne di altri.</p>
<p>Per cui il <strong>tipo di ruolo</strong> raggruppa il <strong>tipo di permesso</strong>: per esempio i ruoli amministratore avranno solo definizioni per le <strong>operazioni tipiche dell&#8217;amministratore</strong> (es: se può creare/modificare/eliminare utente, gestire le impostazioni della board, ecc.. ecc&#8230; ), ma non avranno definizioni per i compiti di moderazione (es: editare post ) che sono esclusiva del tipo di ruolo moderatore.</p>
<p>All&#8217;interno di ogni tipi di ruolo puoi creare quante <strong>figure</strong> vuoi. Per esempio puoi creare  una figura di <strong>mega-amministratore</strong> che può utilizzare tutti i comandi amministrativi e una figura di <strong>amministratore-gruppi</strong> che può solo creare/modificare/gestire gruppi.</p>
<p>Allo stesso modo all&#8217;interno del <strong>tipo moderatore</strong> puoi  creare un <strong>mega-moderatore</strong> che banna, sposta, edita e un semplice<strong> mod-approvatore</strong> che può solo editare o cancellare i messaggi.</p>
<p>Il <strong>tipo utente</strong> racchiude i permessi per le operazioni dell&#8217;utente, in genere  riguardano quello che può fare al suo profilo e con i messaggi privati.</p>
<p>Il <strong>tipo forum</strong> contiene i permessi  per le azioni sul forum, in genere se il forum può essere visto, se ci si può scrivere dentro, quali contenuti (allegati/sondaggi/&#8230;) possono essere postati.</p>
<p>Questi tipi di permessi si <strong>dividono naturalmente </strong>in<strong> due categorie</strong>: i tipi<strong> globali </strong>e quelli<strong> locali.<br />
</strong>E&#8217; chiaro che se i permessi di tipo <strong>amministrativo</strong> o di tipo <strong>utente</strong> non hanno nulla a che fare con i sottoforum, valgono per tutta la board, mentre i per messi di tipo <strong>forum</strong> o <strong>moderatore</strong> possono essere applicati anche solo a certi sottoforum.</p>
<p>Una volta capito questo il pannello impostazione dei permessi <strong>comincia ad avere un senso</strong>.</p>
<h3>Il pannello di impostazione dei permessi &#8211; menù permessi globali</h3>
<p>Il primo menù è dedicato ai permessi globali, per cui in genere riguarda solo i permessi raccolti nei ruoli di tipo <strong>amministratore</strong> e <strong>utente</strong>.</p>
<p>La prima voce permette di assegnare ad un <strong>singolo utente</strong> una figura di tipo utente, la quale definisce cosa può fare l&#8217;utente selezionato a livello globale  (come già detto in genere si tratta delle azioni sul profilo, messaggi privati, &#8230; ).<br />
Si sceglie l&#8217;utente e gli si assegna una <strong>figura</strong> appartente al ruolo &#8220;utente&#8221;.</p>
<p>La seconda voce permette di definire gli stessi permessi ma <strong>a livello di gruppo</strong>, saranno applicati a tutti i membri del gruppo.</p>
<p>La terza voce riguarda i permessi di <strong>tipo amministratore</strong>, è possibile scegliere singoli utenti o gruppi ed assegnare una figura di <strong>tipo amministratore</strong>.<br />
Questi utenti o gruppi avranno i permessi di tipo amministrativo previsti dalle figure selezionate.</p>
<p>L&#8217;ultima voce riguarda i moderatori globali. I permessi di <strong>tipo moderatore</strong> sono permessi locali, logicamente dovrebbero trovare posto  nel secondo menù.<br />
Tuttavia questa opzione permette di assegnare permessi di tipo moderatore a utenti o gruppi  e farli valere per tutti i forum della board. Che è piuttosto comodo.</p>
<h3>Il pannello di impostazione dei permessi &#8211; menù permessi locali</h3>
<p>Il secondo menù riguarda i permessi locali, cioè la <strong>visibilità</strong> sui forum e i <strong>moderatori assegnati</strong>.</p>
<p>La prima voce permette permette  di stabilire chi può<strong> leggere e scrivere</strong> nei forum, e fino a che punto può<br />
Prima si sceglie il forum a cui applicare i permessi, una volta scelto il forum si aggiungono gruppi/utenti e poi si sceglie quale <strong>ruolo</strong> avranno i soggetti selezionati (da prelevare fra quelli di<strong> tipo forum</strong>). I soggetti selezionati avranno i permessi di lettura previsti dal ruolo.</p>
<p>E&#8217; possibile selezionare anche <strong>più di un forum</strong> alla volta, compresi <strong>tutti i forum</strong>.  Qui comincia un <strong>secondo incubo</strong>, visto che apparentemente ti chiede comunque di assegnare i ruoli <strong>uno per uno</strong> ai forum scelti.<br />
Dopo un&#8217;ora di <strong>bestemmie</strong> ho capito che è possibile, una volta aperta la finestra i cui si scelgono i ruoli, cliccare su <strong>permessi avanzati</strong> del primo forum per far apparire una serie di <strong>checkbox</strong> che ti permettono di assegnare il ruolo <strong>contemporaneamente</strong> a tutti i forum.</p>
<p>La seconda voce di menù consente di <strong>copiare</strong> in uno o più forum  i permessi già assegnati a un altro forum. Basta selezionare il forum di partenza e quello/quelli di arrivo.</p>
<p>La terza voce fa esattamente quello che fa la prima, solo relativamente ai permessi di <strong>moderazione</strong> (quindi si sceglie fra i ruoli di<strong> tipo moderatore</strong>).</p>
<p>Le ultime due voci permettono di  fare le stesse cose con un<strong>&#8216;approccio diverso</strong>, invece di scegliere prima i forume poi gli utenti a cui assegnare i ruoli si fa l&#8217;esatto <strong>inverso</strong>.<br />
Prima si scelgono gli utenti/gruppi, poi si scelgono i forum e infine si assegnano i ruoli</p>
<h3>Il pannello di impostazione dei permessi &#8211; menù permessi locali</h3>
<p>Sui <strong>ruoli</strong> ho già detto tutto,  qui è possibile modificare e/o creare nuove figure all&#8217;interno dei quattro tipi di ruoli predefinti.</p>
<p>E&#8217; utile guardare quest sezione per <strong>capire</strong> quali tipi di permessi sono relativi ad ogni ruolo (amministratore/utente/moderatore/forum). A mio modesto parere questo menù andava messo <strong>per primo</strong>, non per terzo.</p>
<h3>Il pannello di impostazione dei permessi &#8211; menù permessi assegnati</h3>
<p>L&#8217;ultima voce di menù permette di ispezionare i vari ruoli per vedere <strong>chi-ha-quali</strong> permessi.</p>
<p>La prima voce permette di selezionare gruppi/utenti e vedere quali hanno ruoli di <strong>tipo amministrativo</strong> e quali figure amministrative sono assegnate.</p>
<p>La seconda voce permette di fare lo stesso per ruoli <strong>di tipo utente</strong>.</p>
<p>La terza idem per i permessi di <strong>tipo moderatore</strong> a livello globale.</p>
<p>La quarta idem ma a livello <strong>locale</strong>, infatti è necessario anche scegliere i forum di cui si vogliono avere le informazioni.</p>
<p>La quinta è per i permessi di <strong>tipo forum</strong>, chiaramente  a livello <strong>locale</strong>. Anche qui è necessario scegliere i forum di cui si vogliono avere le informazioni.</p>
<p>In conclusione hanno implementato di certo  un sistema di permessi molto flessibile e potente, ma allo stesso tempo piuttosto complicato. Quello che complica ancora di più la vita è che hanno (IMHO) sbagliato l&#8217;impostazione nel backoffice e soprattutto il modo di presentare l&#8217;informazione nel manuale.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gerry.it/blog/?feed=rss2&amp;p=286</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Assistenza helpdesk</title>
		<link>http://www.gerry.it/blog/?p=294</link>
		<comments>http://www.gerry.it/blog/?p=294#comments</comments>
		<pubDate>Thu, 10 Jun 2010 19:49:39 +0000</pubDate>
		<dc:creator>Gerry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Bestemmie]]></category>
		<category><![CDATA[man@work]]></category>
		<category><![CDATA[Tech stories]]></category>

		<guid isPermaLink="false">http://www.gerry.it/blog/?p=294</guid>
		<description><![CDATA[Alla quinta richiesta in dieci giorni &#8220;mi puoi sistemare il PC&#8221; ho deciso che:

la mia tariffa come consulente è di 15 €/ora
non sono compresi costi derivanti da hardware difettoso o acquistato erroneamente
mi riservo di rifiutare qualsiasi richiesta, prima o dopo aver visto il PC in questione
non presto assistenza a domicilio. Mi si porta il PC [...]]]></description>
			<content:encoded><![CDATA[<p>Alla quinta richiesta in dieci giorni &#8220;mi puoi sistemare il PC&#8221; ho deciso che:</p>
<ul>
<li>la mia tariffa come consulente è di 15 €/ora</li>
<li>non sono compresi costi derivanti da hardware difettoso o acquistato erroneamente</li>
<li>mi riservo di rifiutare qualsiasi richiesta, prima o dopo aver visto il PC in questione</li>
<li>non presto assistenza a domicilio. Mi si porta il PC a casa</li>
<li>mi riservo di arrendermi a qualsiasi punto dell&#8217;intervento</li>
<li>non faccio diagnosi e non prescrivo cure su sintomi riferiti dal proprietario</li>
<li>non do garanzie sui tempi di esecuzione</li>
<li>non spiego cosa ho fatto una volta finito</li>
<li>non faccio backup</li>
</ul>
<p>Valuto sconti, permute o modifiche alle condizioni solo per individui di sesso femminile.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gerry.it/blog/?feed=rss2&amp;p=294</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PEC: Primati Elettrauti Certificati</title>
		<link>http://www.gerry.it/blog/?p=280</link>
		<comments>http://www.gerry.it/blog/?p=280#comments</comments>
		<pubDate>Tue, 27 Apr 2010 12:12:59 +0000</pubDate>
		<dc:creator>Gerry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Bestemmie]]></category>
		<category><![CDATA[pubblica amministrazione]]></category>
		<category><![CDATA[Tech stories]]></category>

		<guid isPermaLink="false">http://www.gerry.it/blog/?p=280</guid>
		<description><![CDATA[Cosa succede a uno che prova a chiedere la sua PEC.]]></description>
			<content:encoded><![CDATA[<p>Non so se stamattina a tutti telegiornali avete sentito il <a href="http://www.adnkronos.com/IGN/News/CyberNews/PA-al-via-la-posta-elettronica-certificata-per-50-milioni-di-italiani_304209453.html" target="_blank">roboante annuncio</a> che il governo offre una <a href="http://it.wikipedia.org/wiki/Posta_elettronica_certificata" target="_blank">casella PEC</a> a tutti gli Italiani.</p>
<p>PEC sta per Posta Elettronica Certificata, in pratica le mail mandate da questa casella a un&#8217;altra PEC hanno una sistema di verifiche che le rende<strong> legalmente valide</strong> al pari della raccomandata con ricevuta di ritorno.</p>
<p>Inoltre le Pubbliche amministrazioni  dovrebbero essere dotate per legge di una casella PEC, per cui puoi (in teoria) mandare mail a valore legale che le PA non possono far finta di non aver ricevuto.</p>
<p>Mi son chiesto se almeno questa volta avessero fatto le cose a modino, di cui dubitavo, e ho provato a farmi fare la mia PEC.</p>
<ol>
<li>Vai sul sito.</li>
<li>Metti  nome, cognome e <strong>codice fiscale</strong> nella prima pagina della form.<br />
Notare il codice fiscale perché è di importanza capitale: quando ti chiedono il codice fiscale nove volte su dieci è per impedirti di iscriverti <strong>più di una volta.</strong><br />
Io già mi insospettivo e cominciavo a capire che sarebbe finita male, anche perchè il sito era lento e dava segni di cedimento.</li>
<li>Passa alla seconda pagina, metti la mail secondaria, la password, le domande segrete per la password e altri dati vari<br />
Nessuno mi ha chiesto quale <strong>username</strong> (tipo <em>gerryino</em>@&#8230;.) volessi per la casella. Sempre più sospetto, sempre più paura.</li>
<li>A questo punto succede il patatrac, il sito già un po&#8217; comatoso <strong>muore</strong> fra il secondo e il terzo step della registrazione</li>
</ol>
<p>A questo punto paura. Hanno i miei dati ma io non so se la procedura è andata a buon fine e soprattutto non mi hanno consegnato lo username.</p>
<ol>
<li>Provo a ripetere la registrazione. Naturalmente <strong>non si può</strong>, hanno già registrato il mio codice fiscale e non posso reiscrivermi. Ne deduco che <em>probabilmente</em> la registrazione è andata a buon fine anche se il sito è collassato</li>
<li>Provo a recuperare la password&#8230; naturalmente <strong>SERVE LO USERNAME</strong> che non ho potuto avere causa collasso del sito. Fuck.</li>
<li>Scrivo. Non puoi. C&#8217;è solo un call center che mi costringerà a stare ore al telefono per spiegare che io non conosco il mio username a una scimmietta ammaestrata a <strong>chiedermi lo username</strong> come prima cosa.</li>
</ol>
<p>Brunetta caro, avrei degli appunti da farti</p>
<ol>
<li>Quando fai un sito, una web form o un programma in generale devo sempre pensare a cosa succede quando<strong> le cose vanno storte</strong>.  E devi verificare che non provochino un <strong>disastro insanabile</strong>.</li>
<li>Grazie per avermi detto che la <strong>password</strong> deve essere di almeno 8 caratteri, con un numero e una lettera maiuscola. Un po&#8217; meno grazie per <strong>non avermi detto</strong> che i caratteri devono essere <strong>esclusivamente alfanumerici</strong>, costringendomi a rimetterla per 5 volte prima di arrivarci da me.</li>
<li>Un&#8217;azienda che non ha altri mezzi per contattarla che un call center non è un&#8217;<strong>azienda seria</strong> o è talmente monopolista che se ne può fregare della soddisfazione dei suoi clienti.</li>
</ol>
<p>Elettrauti al lavoro.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gerry.it/blog/?feed=rss2&amp;p=280</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Come funzionano le API autenticate di Facebook</title>
		<link>http://www.gerry.it/blog/?p=247</link>
		<comments>http://www.gerry.it/blog/?p=247#comments</comments>
		<pubDate>Mon, 26 Apr 2010 13:45:10 +0000</pubDate>
		<dc:creator>Gerry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[Tech stories]]></category>

		<guid isPermaLink="false">http://www.gerry.it/blog/?p=247</guid>
		<description><![CDATA[Ho passato un buon pomeriggio a capire come funzionano le API di facebook.
Per i profani:  le  API di facebook sono quegli strumenti che permettono di compiere operazioni sui profili e le fan-page senza passare dalla pagina di facebook. In pratica è possibile  ottenere la lista degli amici, ottenere le informazione di un utente e persino [...]]]></description>
			<content:encoded><![CDATA[<p>Ho passato un buon pomeriggio a capire come funzionano le API di facebook.</p>
<p>Per i profani:  le  API di facebook sono quegli strumenti che permettono di<strong> compiere operazioni</strong> sui profili e le fan-page senza passare dalla pagina di facebook. In pratica è possibile  ottenere la lista degli amici, <strong>ottenere</strong> le informazione di un utente e persino <strong>pubblicare</strong> sul profilo senza <em>(quasi</em>) passare dalla pagina di facebook.</p>
<p>Le API hanno funzionalità  limitate, a meno che tu non riesca a farti dare dal titolare del profilo un&#8217;<strong>autorizzazione</strong> specifica ad operare più profondamente sul suo profilo.</p>
<p><span id="more-247"></span>Come funziona la fazenda? Dopo un pomeriggio di sbattimenti ho compreso che la chiave di volta è l&#8217;<em>applicazione</em>.<br />
<a href="http://www.gerry.it/blog/uploads/2010/04/sviluppatore-applicazione-utente1.png"><img class="size-full wp-image-253 alignright" style="float: rigth;" title="Relazione sviluppatore-applicazione-utente" src="http://www.gerry.it/blog/uploads/2010/04/sviluppatore-applicazione-utente1.png" alt="Relazione sviluppatore-applicazione-utente" width="150" height="244" /></a>Un&#8217;applicazione è una sorta di entità presente su facebook. Chiunque può <strong>registrare</strong> un&#8217;applicazione, otterrà un identificativo e una chiave segreta (due codici, in soldoni).<br />
Quanto un utente approva un applicazione, le da il <strong>permesso</strong> di interagire con il proprio profilo, dal quel momento il proprietario dell&#8217;applicazione ha accesso al profilo dell&#8217;utente.<br />
Il pratica l&#8217;applicazione non serve <em>quasi</em> a niente, è solo un oggetto utile per gestire le autorizzazioni all&#8217;accesso al profilo.</p>
<p>Una volta che hai convinto l&#8217;utente a dare il permesso alla tua applicazione, puoi indagare (e operare) sul suo profilo.</p>
<p>Per far questo devi ottenere prima una chiave di sessione che facebook chiama <strong>token. </strong>Per ottenere il token c&#8217;è una procedura alquanto complicata. Bisogna ottenere prima un <strong>codice intermedio</strong> per validare l&#8217;utente, il codice lo si può scambiare con il token.</p>
<p>Il primo  passo è far si che l&#8217;utente avvii una richiesta verso un server di facebook, passando l&#8217;id dell&#8217;applicazione e un <strong>url</strong> di una pagina che raccoglierà il codice intermedio.<br />
La richiesta deve essere inviata da una <strong>client loggato</strong>, in pratica va inviata da un browser su cui si è fatto login in facebook.<br />
Implicitamente significa che il codice intermedio e il token poi saranno validi solo per l&#8217;utente che ha iniziato la richiesta (ma va?).</p>
<p>A questo punto facebook verifica se il client è loggato (altrimenti viene richiesto il login) e se l&#8217;applicazione è stata autorizzata dall&#8217;utente (altrimenti viene richiesta l&#8217;autorizzazione).</p>
<p><a href="http://www.gerry.it/blog/uploads/2010/04/FacebookAPI1.png" target="_blank"><img class="alignright" title="Sequenza di connessione per ottenere un token Facebook" src="http://www.gerry.it/blog/uploads/2010/04/FacebookAPI1-242x300.png" alt="Sequenza di connessione per ottenere un token Facebook" width="242" height="300" /></a>Se tutto è ok,  viene generato il <strong>codice intermedio</strong>. Questo viene mandato all&#8217;url indicato in prima battuta. A questo url deve essere presente un servizio in grado di recuperare il codice, una volta recuperato non è più necessario coinvolgere l&#8217;utente per ottenere il token.</p>
<p>Il passo successivo è rimandare a facebook il codice intermedio, l&#8217;id dell&#8217;applicazione, il codice segreto dell&#8217;applicazione e una copia dell&#8217;url da cui si è recuperato il codice intermedio.</p>
<p>Se viene validato, facebook restituisce il token da cui si accede alle API e al profilo.</p>
<p>Da notare che sia il token che il codice intermedio hanno una <strong>validità temporanea</strong> (circa un paio di ore),  per cui lo sviluppatore può operare sul profilo per questo tempo dopo di che bisogna ripetere il procedimento dall&#8217;inizio.</p>
<p><strong>Prima considerazione</strong>: la procedura di autenticazione deve essere <strong>iniziata dall&#8217;utente,</strong> quindi non basta farsi autorizzare l&#8217;applicazione per operare sul profilo. Se si vuole continuare a operare dopo che il <strong>token è scaduto</strong> bisogna che  l&#8217;utente re-inizi la procedura dal suo browser.</p>
<p><strong>Seconda considerazione</strong>:  le operazioni dal primo al terzo passo fanno fatte <strong>dall&#8217;utente</strong> su un <strong>browser</strong> loggato in in facebook.  Non sono previsti metodi di login alternativi.<br />
Anche per gli eventuali client da desktop facebook suggerisce aggiramenti abbastanza  aberranti.</p>
<p><strong>Terza considerazione</strong>: lo sviluppatore è escluso dal processo di login fino  al terzo step, i due primi step vengono gestiti dall&#8217;utente e dal suo browser e sono per lo sviluppatore una black box.</p>
<p><strong>Quarta considerazione</strong>:  qualcosa che non mi rimane chiaro è come fa il server che raccoglie il codice al punto 3 a capire da quale utente arriva l&#8217;autorizzazione.<br />
Infatti questa informazione non viaggia da nessuna parte nella procedura, il dubbio che mi viene è che sia cura dello sviluppatore predisporre la url che riceverà il codice in modo da portare con se anche l&#8217;id dell&#8217;utente che l&#8217;ha generata.</p>
<p><strong>Quinta considerazione</strong>: ma tutte quelle applicazioni che postano in automatico sui profili (tipo Farmville), come divolo fanno a farsi autorizzare a <strong>intervalli regolari</strong>? Il mio dubbio è che sia possibile per l&#8217;applicazione mettere una specie di  <strong>gancio</strong> che fa aprire la pagina di autorizzazione ogni volta che l&#8217;utente apre il suo profilo.<br />
Suppongo (ma non ho indagato) che sia legato ai <strong>riquadri</strong> che le applicazioni possono installare nei profili utenti. Apri facebook, vai a vedere lo stato di farmville e questo scatena la procedura di login che permetterà agli sviluppatori di farmville di spammarti il profilo per due orette buone.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gerry.it/blog/?feed=rss2&amp;p=247</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Record</title>
		<link>http://www.gerry.it/blog/?p=244</link>
		<comments>http://www.gerry.it/blog/?p=244#comments</comments>
		<pubDate>Fri, 23 Apr 2010 10:17:05 +0000</pubDate>
		<dc:creator>Gerry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://www.gerry.it/blog/?p=244</guid>
		<description><![CDATA[Un blog ripreso dopo quasi due anni&#8230;
]]></description>
			<content:encoded><![CDATA[<p>Un blog ripreso dopo quasi due anni&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gerry.it/blog/?feed=rss2&amp;p=244</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Aggiorno</title>
		<link>http://www.gerry.it/blog/?p=217</link>
		<comments>http://www.gerry.it/blog/?p=217#comments</comments>
		<pubDate>Fri, 25 Jul 2008 13:48:51 +0000</pubDate>
		<dc:creator>Gerry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[Tech stories]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.gerry.it/blog/?p=217</guid>
		<description><![CDATA[Il blog no, ma wordpress si.
Strano, sembra che stavolta non abbiano subdolamente cambiato nessuna api nei template.
]]></description>
			<content:encoded><![CDATA[<p>Il blog no, ma wordpress si.</p>
<p>Strano, sembra che stavolta non abbiano subdolamente cambiato nessuna api nei template.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gerry.it/blog/?feed=rss2&amp;p=217</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RLM</title>
		<link>http://www.gerry.it/blog/?p=216</link>
		<comments>http://www.gerry.it/blog/?p=216#comments</comments>
		<pubDate>Tue, 22 Jan 2008 19:00:20 +0000</pubDate>
		<dc:creator>Gerry</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[man@work]]></category>

		<guid isPermaLink="false">http://www.gerry.it/blog/?p=216</guid>
		<description><![CDATA[E&#8217; arrivata con solo 10 minuti di ritardo, che è già strano.
Ha riempito la sala. Ed era la prima volta che la vedevo piena, con la gente in piedi.
Per lei è stato pronunciato un discorso già scritto. La dizione era molto più impappinata dei suoi dieci minuti pronunciati a braccio.
Ha fatto ridere la sala per [...]]]></description>
			<content:encoded><![CDATA[<p>E&#8217; arrivata con solo 10 minuti di ritardo, che è già strano.</p>
<p>Ha riempito la sala. Ed era la prima volta che la vedevo piena, con la gente in piedi.</p>
<p>Per lei è stato pronunciato un discorso già scritto. La dizione era molto più impappinata dei suoi dieci minuti pronunciati a braccio.</p>
<p>Ha fatto ridere la sala per almeno due volte (una battuta sul suo necrologio e una sui fascisti).</p>
<p>Sospetto che abbia anche fatto piangere qualcuno.</p>
<p>Alla fine è stata circondata da una folta schiera  di fans che volevano toccarla e fare una foto con lei, come una vera <strong>rockstar</strong>. Perlopiù erano ragazzine.</p>
<p>Ora, magari non è sempre stata simpaticissima.</p>
<p>Magari poteva evitare di fare quello spot per la telecom.</p>
<p>Magari a qualcuno ha anche rotto i cojoni.</p>
<p>.</p>
<p>.</p>
<p>.</p>
<p>Ma come ca$$o fa <a href="http://www.adnkronos.com/IGN/Salute/?id=1.0.1798869352" target="_blank">una di 99 anni ad essere ancora così</a>?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.gerry.it/blog/?feed=rss2&amp;p=216</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
