UX Camp Italia 2009
Da oggi sono aperte le registrazioni ad UX Camp Italia 2009, il barcamp dedicato alla user experience che si terrà a Firenze il 17 ottobre 2009.
In più se siete nei paraggi di Firenze questo week end siete tutti invitati allo UX Campari. Ci saranno tutti i membri dello staff di UX Camp Italia 2009. Per maggiori info seguiteci su Twitter.
Vi aspetto!
Scritto da Elia Contini il 01 Luglio 2009 alle 16:35 | 0 commenti
Appunti di XHTML 1.0 Strict e basi di accessibilità versione 1.2
Ho pubblicato la versione 1.2 degli Appunti di XHTML 1.0 Strict e basi di accessibilità e relativi esempi aggiornati.
Scritto da Elia Contini il 29 Maggio 2009 alle 11:32 | 2 commenti
Piccolo tutorial su eXtensible Stylesheet Language Transformation (XSLT)
XSLT è una tecnologia sviluppata dal W3C che permette, a partire da dati in formato XML, di generare documenti nei più disparati formati. L'esempio che vedremo in questo breve tutorial genera a partire da un file XML una pagina XHTML 1.0 Strict.
Ammettiamo di avere un file XML che contiene i nostri appunti. Il contenuto del file XML è il seguente:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="transformation.xsl"?>
<notes>
<note>
<headingLevel1>Titolo livello 1 olé</headingLevel1>
<paragraph>
Questa è la <strong>prima</strong> nota
<emphatized>scritta</emphatized> con
<link url="http://www.w3.org/XML/" urllang="en-EN">XML</link>.
</paragraph>
<list type="ordered">
<list-item>
elemento 1 di una lista <strong>ordinata</strong>
</list-item>
<list-item>elemento 2 <emphatized>corsivo</emphatized></list-item>
<list-item>
sito del <link url="http://www.w3.org/" urllang="en-EN">W3C</link>
</list-item>
<list-item>
<headingLevel3>Titolo livello 3 olé</headingLevel3>
<list type="unordered">
<list-item>
elemento 1 di una lista <strong>non ordinata</strong>
</list-item>
<list-item>
elemento 2 <emphatized>corsivo</emphatized>
</list-item>
</list>
</list-item>
</list>
</note>
</notes>
Ora ciò che dobbiamo fare è creare una trasformazione XSLT che generi una pagina XHTML gestendo correttamente le lettere accentate e tutti gli elementi: titoli, paragrafi, liste e via dicendo. La trasformazione è la seguente:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes"/>
<xsl:template match="/">
<xsl:text disable-output-escaping="yes">
<![CDATA[
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
]]>
</xsl:text>
<xsl:text disable-output-escaping="yes">
<![CDATA[
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="it" lang="it">
]]>
</xsl:text>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Appunti</title>
</head>
<body>
<xsl:apply-templates/>
</body>
<xsl:text disable-output-escaping="yes">
<![CDATA[
</html>
]]>
</xsl:text>
</xsl:template>
<!-- Every text must be escaped-->
<xsl:template match="text()">
<xsl:value-of select="." disable-output-escaping="yes"/>
</xsl:template>
<!-- Heading levels -->
<xsl:template match="headingLevel1">
<h1><xsl:value-of select="." disable-output-escaping="yes"/></h1>
</xsl:template>
<xsl:template match="headingLevel2">
<h2><xsl:value-of select="." disable-output-escaping="yes"/></h2>
</xsl:template>
<xsl:template match="headingLevel3">
<h3><xsl:value-of select="." disable-output-escaping="yes"/></h3>
</xsl:template>
<xsl:template match="headingLevel4">
<h4><xsl:value-of select="." disable-output-escaping="yes"/></h4>
</xsl:template>
<xsl:template match="headingLevel5">
<h5><xsl:value-of select="." disable-output-escaping="yes"/></h5>
</xsl:template>
<xsl:template match="headingLevel6">
<h6><xsl:value-of select="." disable-output-escaping="yes"/></h6>
</xsl:template>
<!-- paragraphs -->
<xsl:template match="paragraph">
<p>
<xsl:apply-templates/>
</p>
</xsl:template>
<!-- Lists -->
<xsl:template match="//list[@type='ordered']">
<ol>
<xsl:apply-templates/>
</ol>
</xsl:template>
<xsl:template match="//list[@type='unordered']">
<ul>
<xsl:apply-templates/>
</ul>
</xsl:template>
<xsl:template match="list/list-item">
<li>
<xsl:apply-templates/>
</li>
</xsl:template>
<!-- Commons -->
<xsl:template match="//strong">
<strong><xsl:value-of select="." disable-output-escaping="yes"/></strong>
</xsl:template>
<xsl:template match="//emphatized">
<em><xsl:value-of select="." disable-output-escaping="yes"/></em>
</xsl:template>
<xsl:template match="//link">
<a>
<xsl:attribute name="href"><xsl:value-of select='@url'/></xsl:attribute>
<xsl:attribute name="hreflang"><xsl:value-of select='@urllang'/></xsl:attribute>
<xsl:value-of select="."/>
</a>
</xsl:template>
</xsl:stylesheet>
A questo punto basterà aprire il file XML con un browser che supporta lato client le trasformazioni XSLT (in questo caso, strano a dirsi, tutti i browser tranne Firefox) per vedere il risultato. Se invece volete generare un file XHTML sul vostro filesystem allora potete usare Xalan o strumenti simili.
Alcune note
Il template
<xsl:template match="text()">
<xsl:value-of select="." disable-output-escaping="yes"/>
</xsl:template>
serve a trasformare il testo correttamente. Se mancasse questo template le entità all'interno dei tag con figli non sarebbero trasformate correttamente.
Il template
<xsl:template match="//link">
<a>
<xsl:attribute name="href"><xsl:value-of select='@url'/></xsl:attribute>
<xsl:attribute name="hreflang"><xsl:value-of select='@urllang'/></xsl:attribute>
<xsl:value-of select="."/>
</a>
</xsl:template>
per la gestione dei link fa vedere come vanno gestiti gli attributi.
Potete anche scaricare l'esempio.
Scritto da Elia Contini il 23 Maggio 2009 alle 18:54 | 3 commenti
Better Software e PyCon 3 Italia
Dal 6 al 10 di Maggio ho avuto il piacere di partecipare a Better Software prima e a PyCon 3 Italia poi.
Le due conferenze trattavano principalmete argomenti legati allo svilupppo di software di qualità ed alla fine il filo conduttore di entrambe le conferenze può essere riassunto da una frase di Charles Darwin tra l'altro citata più volte nei vari talk:
Non sopravvive chi è più forte o intelligente, ma chi si adatta più velocemente
Altro aspetto molto piacevole delle due conferenze è stato il networking "dal vivo": ho avuto modo conoscere tante persone ed ho avuto un ulteriore conferma sul fatto che l'Italia è ricca di persone di talento.
Mi manca già questo ambiente ed aspetto il prossimo anno per ripetere l'esperienza.
Scritto da Elia Contini il 12 Maggio 2009 alle 15:26 | 0 commenti
Dal profondo del cuore ...
Java Shit!
E spero di non dover mai più sviluppare un'applicazione desktop in Java!
Scritto da Elia Contini il 04 Maggio 2009 alle 18:22 | 0 commenti
MS Internet Explorer 8 e il background del fieldset
Proseguo con la demolizione di ciò che la Microsoft ha avuto il coraggio di presentare come browser rivoluzionario e risolutore di tutti i problemi di visualizzazione a cui i web designer dovevano porre rimedio attraverso workaround.
Ma vediamo alcune immagini per chiarire il bug che speravo fosse stato corretto.
Come potete constatare impostando uno sfondo del fieldset differente da quello della pagina, MS Internet Eplorer 8 visualizza un rettangolo che comprende anche il tag legend e la parte esterna del fieldset. Questo "effetto" fa veramente schifo!
Ma vediamo come i veri browser renderizzano il form. 
Potete visualizzare l'esempio su questa pagina.
Se ne avete necessità, ecco un workaround.
Scritto da Elia Contini il 26 Aprile 2009 alle 17:05 | 9 commenti
Ecco a voi Ubuntu GNU/Linux 9.04
Mentre scrivo il post la sto scaricando (usate torrent se potete).
Per conoscere le novità introdotte in questa versione potete visitare il sito ufficiale.
Se non avete una connessione a banda larga potete richiedere gratuitamente un CD utilizzanto il sistema Shipit.
Buona installazione!
Scritto da Elia Contini il 23 Aprile 2009 alle 16:45 | 0 commenti

