<?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>CreativeBits - Portfolio online di Raffaele Rasini &#187; Sviluppo</title>
	<atom:link href="http://www.creativebits.it/blog/category/sviluppo/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.creativebits.it</link>
	<description>CreativeBits &#232; il portfolio online di Raffaele Rasini, sono specializzato in Analisi, Design e Sviluppo di siti web usabili, accessibili, ottimizzati per i motori di ricerca e conformi agli ultimi standards web.</description>
	<lastBuildDate>Sat, 12 Nov 2011 15:24:26 +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>Imparare le basi di CodeIgniter</title>
		<link>http://www.creativebits.it/blog/sviluppo/imparare-le-basi-di-codeigniter/</link>
		<comments>http://www.creativebits.it/blog/sviluppo/imparare-le-basi-di-codeigniter/#comments</comments>
		<pubDate>Sat, 23 Apr 2011 16:00:16 +0000</pubDate>
		<dc:creator>Raffaele</dc:creator>
				<category><![CDATA[Sviluppo]]></category>

		<guid isPermaLink="false">http://www.creativebits.it/?p=268</guid>
		<description><![CDATA[In questi anni come ho scritto nell’articolo precedente ci ho provato un po’ di volte e fare il balzo e mi sono avvicinato a molti linguaggi e derivanti  framework di sviluppo ma tutti avevano una curva di apprendimento troppo ripida e di conseguenza finivo a sbattere la testa sul muro molto presto.
CodeIgniter lo conosco come [...]]]></description>
			<content:encoded><![CDATA[<p>In questi anni come ho scritto nell’articolo precedente ci ho provato un po’ di volte e fare il balzo e mi sono avvicinato a molti linguaggi e derivanti  framework di sviluppo ma tutti avevano una curva di apprendimento troppo ripida e di conseguenza finivo a sbattere la testa sul muro molto presto.</p>
<p><a href="http://www.codeigniter.com">CodeIgniter</a> lo conosco come nome da anni e avevo letto molti articoli entusiasti tanto che l’avevo consigliato al mio sviluppatore di fiducia e grazie ad esso abbiamo realizzato qualche progetto davvero interessante ma non mi sono mai applicato seriamente  ad impararne le basi.<span id="more-268"></span></p>
<p>Mi accorgo solo ora di quanto tempo ho preso nel frattempo perché, da totale principiante quale che sono, impararne i concetti e caratteristiche principali è davvero alla portata di tutti.</p>
<p>Tutte le risorse che andrò a segnalare sono in inglese e gratuite, purtroppo in italiano non ho trovato niente di valido.</p>
<p>Ho iniziato con la serie di video realizzati da <strong><a href="http://net.tutsplus.com/sessions/codeigniter-from-scratch/">Jeffrey Way per Nettuts</a></strong>, tratta l’argomento in mondo molto semplice e comprensibile,   nonostante le tecniche che vengono insegnate non siano le più pratiche quando si vorrà realizzare qualcosa, pone le basi per poter comprendere la seguente serie di video tutorials.</p>
<p>Una volta padroneggiate le tecniche base si potrà affrontare una serie realizzata da <a href="http://heybigname.com/category/screencasts/"><strong>Shawn McCool</strong></a> che davvero merità tutta la mia gratitudine perchè va a replicare parte di quello che avremo già imparato ma con un ottica professionale, quindi andando a creare del codice molto più mantenibile e riutilizzabile.</p>
<p>Studiata a memoria anche questa serie avrete tutte le conoscenze base necessarie per poter realizzare il classico blog con funzionalità ammnistrative come aggiungere/modificare/cancellare un articolo, aggiungere commenti per ogni singolo articolo, creare un sistema di accesso utenti, ecc.</p>
<p>I video tutorial di qualità si fermano qui, se vorrete proseguire potrete prima di tutto leggervi il <a href="http://codeigniter.com/user_guide/">manuale online</a> (fatto stupendamente bene e completo di tutto) che vi darà una idea di fin dove ci si può spingere, non preoccupatevi se non capirete tutto subito, faccio anch’io fatica a comprendere certi concetti ma con un po’ di pazienza e una mano dalle risorse che segnalerò dis eguito e niente risulterà impossibile.</p>
<p>Nel caso di qualche dubbio ci sono 2 risorse che mi hanno davvero aiutato tantissimo (sono entrambe molto attive e mi è bastato cercare per trovare tutte le risposte alle mie domande):</p>
<ul>
<li><a href="http://codeigniter.com/forums/">CodeIgniter Forum</a>: il forum ufficiale e pieno di tutto, più focalizzato sui  consigli su come impostare al meglio una determinata funzionalità o procedura</li>
<li><a href="http://stackoverflow.com/questions/tagged/codeigniter">StackOverflow</a>: anch’esso ricco di domande e risposte riguardanti questo framework, potrete trovare le risposte a molte domande specifiche e dato che non è solo dedicato a CodeIgniter potrete trovare risposte anche più generali riguardanti PHP su cui in pratica CodeIgniter si basa.</li>
</ul>
<p>Se siete interessati potrei potrei fare una piccolissima serie di articoli dedicati a <a href="http://www.codeigniter.com/">CodeIgniter</a> con spiegate le caratteristiche (cos’è un framework, cos’è un modello mvc e come si usa, quali sono i requisiti per iniziare a realizzare un sito).</p>
<p>Per ora è tutto, se avete qualsiasi tipo di domanda chiedete pure attraverso i commenti.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.creativebits.it/blog/sviluppo/imparare-le-basi-di-codeigniter/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Il mio primo approccio a CodeIgniter</title>
		<link>http://www.creativebits.it/blog/sviluppo/il-mio-primo-approccio-a-codeigniter/</link>
		<comments>http://www.creativebits.it/blog/sviluppo/il-mio-primo-approccio-a-codeigniter/#comments</comments>
		<pubDate>Mon, 18 Apr 2011 19:00:13 +0000</pubDate>
		<dc:creator>Raffaele</dc:creator>
				<category><![CDATA[Sviluppo]]></category>

		<guid isPermaLink="false">http://www.creativebits.it/?p=263</guid>
		<description><![CDATA[Vorrei subito fare una premessa: non sono e non mi considero uno sviluppatore, ne voglio diventarlo in ambito professionale.
Meglio metterlo in chiaro perché alcuni degli esempi che farò potranno sembrare di una banalità imbarazzante a chi nel codice ci sguazza.
Quanti hanno avuto una idea, magari buttato giù una grafica e poi si sono bloccati nella [...]]]></description>
			<content:encoded><![CDATA[<p>Vorrei subito fare una premessa: non sono e non mi considero uno sviluppatore, ne voglio diventarlo in ambito professionale.</p>
<p>Meglio metterlo in chiaro perché alcuni degli esempi che farò potranno sembrare di una banalità imbarazzante a chi nel codice ci sguazza.</p>
<p>Quanti hanno avuto una idea, magari buttato giù una grafica e poi si sono bloccati nella fase della realizzazione, cosa fare? Pagare uno sviluppatore sperando che sia competente e onesto, oppure cercare un collaboratore che creda nel tuo progetto e che sia disposto a metterci il proprio tempo per realizzarlo avendo però diritto di parola (giustamente), con il rischio che per una divergenza di opinioni su qualche particolare l’intero progetto affondi?<span id="more-263"></span></p>
<p>Mi sono trovato in questa situazione parecchie volte e ogni volta la voglia di imparare seriamente a sviluppare si intensificava ma ogni tentativo durante gli anni finiva inevitabilmente in un buco nell’acqua, stavo per mettermi il cuore in pace e in un certo senso rassegnandomi alla realtà che certe persone proprio non sono tagliate per certi mestieri, io non ero fatto per fare lo sviluppatore.</p>
<p>Il problema principale è che molti scrivono guide e manuali non prendono mai in considerazione chi proprio non ha neanche le basi per comprendere una logica alla base dei discorsi che fanno, figuriamoci il funzionamento del codice che stanno spiegando.</p>
<p>A volte un corso per principianti non parte affatto dal principio con l’unico risultato di essere fondamentalmente inaccessibile al target di riferimento: i poveri principiati.</p>
<blockquote><p>Programmazione ad oggetti, array multidimensionali, modelli mvc&#8230; che confusione!</p></blockquote>
<p>Sembra che partono dal presupposto che certe nozioni siano talmente banali da essere sciocco ri-spiegarle quando magari sono la chiave di tutti i dubbi che potrebbero sorgere, se proprio non vuoi spiegarlo almeno segnala una risorsa/libro/tutorial approvata dove poter guardare.</p>
<p>Poi una sera mi sono detto: forse è un problema di approccio&#8230; tutorial e libri non fanno per me, così ho iniziato a cercare qualche bel video tutorial dove si sente una persona che spiega e che inevitabilmente (speravo) sarà a portata a dire molto di più di quando avrebbe scritto se avesse realizzato un tutorial classico, passati un paio di video che rientravano perfettamente nel discorso del paragrafo precedente risultando addirittura ancora più confusi sono finito sulla serie di video tutorial di Nettuts.</p>
<p>Probabilmente gli anni di theming di <a href="http://www.wodpress.org">Wordpress</a> hanno aiutato ma in quel momento qualcosa ha fatto clic e quello che prima mi pareva russo ora almeno riuscivo a vederci una logica comprensibile. Succede a tutti prima o poi quando si è motivati ad imparare qualcosa, basta affrontare il problema dal lato giusto e sembra che tutto poi si metta a fuoco da solo e ci si domanda come facevamo prima a bloccarci su un determinato concetto.</p>
<p>Dopo essermi fatto una overdose con tutti i video messi a disposizione ho iniziato a fare qualche test e tutto funzionava! La mia prima query  vera e propria, vedere comparire una riga nel db, con i campi che io avevo deciso, informazioni che avevo inviato con un form che io avevo creato e che in qualsiasi momento avrei potuto modificare, adattare e correggere.</p>
<p>E’ stato come se si fosse aperta una nuova porta, finalmente la sensazione di libertà che stavo ricercando da tempo e che in qualche modo stavo raggiungendo.</p>
<p>Sono comunque ben lontano dal padroneggiare tutte le funzionalità che mi sono state messe a disposizione, quello che ho realizzato ora è poco più di un “compitino” con un’applicazione pratica, ma direi che ora è solo questione di tempo, una volta entrati è come in un circolo vizioso, più impari più aumenta la voglia di proseguire ed espandere la propria conoscenza.</p>
<p>Questo non vuole assolutamente essere un articolo di autocompiacimento ma un messaggio di speranza per tutte le persone, che come me, provengono da un altro background e che non vogliono essere più dipendenti da nessuno quando si tratta di realizzare un proprio progetto, non mollate e tenete duro, se proprio non riuscite, fermatevi e provate a cambiare approccio o linguaggio.</p>
<p>Nel prossimo articolo segnalerò come mai ho scelto <a href="http://www.codeigniter.com">CodeIgniter</a> e che risorse spulciare per imparare in fretta e bene le basi che servono per iniziare.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.creativebits.it/blog/sviluppo/il-mio-primo-approccio-a-codeigniter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Personalizzazione dei Custom fields in Wordpress</title>
		<link>http://www.creativebits.it/blog/sviluppo/personalizzazione-dei-custom-fields-in-wordpress/</link>
		<comments>http://www.creativebits.it/blog/sviluppo/personalizzazione-dei-custom-fields-in-wordpress/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 16:23:26 +0000</pubDate>
		<dc:creator>Raffaele</dc:creator>
				<category><![CDATA[Sviluppo]]></category>

		<guid isPermaLink="false">http://www.creativebits.it/?p=228</guid>
		<description><![CDATA[Recentemente ho lavorato su un sito wordpress che richiedeva una personalizzazione della pagina di aggiunta articolo per un custom post type, perciò è stato necessario aggiungere aggiungere del css e js all&#8217;head del pannello admin, applicare l&#8217;editor predefinito di wp (tinyMCE) ad alcune textarea aggiuntive ed eliminare alcuni pulsanti di formattazione per mantenerla semplice.

Partiamo dall&#8217;inclusione [...]]]></description>
			<content:encoded><![CDATA[<p>Recentemente ho lavorato su un sito wordpress che richiedeva una personalizzazione della pagina di aggiunta articolo per un custom post type, perciò è stato necessario aggiungere aggiungere del css e js all&#8217;head del pannello admin, applicare l&#8217;editor predefinito di wp (tinyMCE) ad alcune textarea aggiuntive ed eliminare alcuni pulsanti di formattazione per mantenerla semplice.</p>
<p><span id="more-228"></span></p>
<p>Partiamo dall&#8217;inclusione dei file necessari, in functions.php bisogna inserire:</p>
<div class="codecolorer-container php geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">function admin_register_head() { <br />
&nbsp; &nbsp; $siteurl = get_option('siteurl');<br />
&nbsp; &nbsp; $admin_css_url = $siteurl . '/wp-content/themes/' . basename(dirname(__FILE__)) . '/admin.css';<br />
&nbsp; &nbsp; ?&gt; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;<span style="color: #000000; font-weight: bold;">&lt;?</span> <span style="color: #b1b100;">echo</span> <span style="color: #000088;">$admin_css_url</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>&quot; /&gt; <br />
&nbsp; &nbsp; <span style="color: #000000; font-weight: bold;">&lt;?</span><br />
<span style="color: #009900;">&#125;</span></div></div>
<p>In pratica <code class="codecolorer php geshi"><span class="php"><span style="color: #000088;">$siteurl</span></span></code> va a prendere l&#8217;url del blog, poi nella variabile <code class="codecolorer php geshi"><span class="php"><span style="color: #000088;">$admin_css_url</span></span></code>  viene inserito il percorso al file admin.css contenuto nella cartella del template corrente.</p>
<p>Una volta fatto questo bisogna aggiungere il codice javascript per applicare tinyMCE alla textarea addizionale, sotto al link al css inserire:</p>
<div class="codecolorer-container javascript geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="javascript codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; jQuery<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span> <span style="color: #000066; font-weight: bold;">typeof</span><span style="color: #009900;">&#40;</span> tinyMCE <span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">&quot;object&quot;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000066; font-weight: bold;">typeof</span><span style="color: #009900;">&#40;</span> tinyMCE.<span style="color: #660066;">execCommand</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">&quot;function&quot;</span> <span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tinyMCE.<span style="color: #660066;">execCommand</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;mceAddControl&quot;</span><span style="color: #339933;">,</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">,</span> <span style="color: #3366CC;">&quot;ingredienti&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></div></div>
<p>Il codice non fa altro che inserire l&#8217;editor così come per il blocco content principale anche alla textarea, in questo caso con id &#8220;ingredienti&#8221;.</p>
<p>Ora però c&#8217;è bisogno, per evitare confusione o pasticci dal parte dell&#8217;utente, di limitare le scelte per la formattazione a quelle base (corsivo, grassetto, ecc.) perciò nel nostro file admin.css andremo ad aggiungere le classi dei suddenti pulsanti (ricavati usando tools come Firebug) e applicando un bel display:none, niente di più semplice.</p>
<div class="codecolorer-container css geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="css codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #6666ff;">.mce_justifyleft</span><span style="color: #00AA00;">,</span> <span style="color: #6666ff;">.mce_justifycenter</span><span style="color: #00AA00;">,</span> .mce_justifyright<span style="color: #00AA00;">,</span><br />
<span style="color: #6666ff;">.mce_wp_more</span><span style="color: #00AA00;">,</span> <span style="color: #6666ff;">.mce_fullscreen</span><span style="color: #00AA00;">,</span> &nbsp;.mce_wp_adv<span style="color: #00AA00;">,</span><br />
<span style="color: #6666ff;">.mce_bullist</span><span style="color: #00AA00;">,</span> <span style="color: #6666ff;">.mce_numlist</span><span style="color: #00AA00;">,</span> <span style="color: #6666ff;">.mce_blockquote</span> <span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">display</span><span style="color: #00AA00;">:</span> <span style="color: #993333;">none</span> !important<span style="color: #00AA00;">;</span><span style="color: #00AA00;">&#125;</span></div></div>
<p>Spero possa risultare di aiuto a chi come me vuole poter offrire non solo un buon lavoro per quando riguarda il front-end di un template ma anche una esperienza per i gestori del sito più naturale possibile.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.creativebits.it/blog/sviluppo/personalizzazione-dei-custom-fields-in-wordpress/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Targeting dispositivi mobile via css</title>
		<link>http://www.creativebits.it/blog/processi/targeting-dispositivi-mobile-via-css/</link>
		<comments>http://www.creativebits.it/blog/processi/targeting-dispositivi-mobile-via-css/#comments</comments>
		<pubDate>Sun, 20 Feb 2011 16:55:17 +0000</pubDate>
		<dc:creator>Raffaele</dc:creator>
				<category><![CDATA[Processi]]></category>
		<category><![CDATA[Sviluppo]]></category>

		<guid isPermaLink="false">http://www.creativebits.it/?p=240</guid>
		<description><![CDATA[Nei prossimi giorni pubblicherò una serie di mini articoli dedicati ad alcuni accorgimenti che si possono adottare fin da subito per rendere il proprio sito più mobile friendly ed anche alcuni tips per gli sviluppatori wordpress.
Partiamo dal targeting della dimensione schermo per i dispositivi mobile (smartphone e tablet): il modo migliore per utilizzare uno stile [...]]]></description>
			<content:encoded><![CDATA[<p>Nei prossimi giorni pubblicherò una serie di mini articoli dedicati ad alcuni accorgimenti che si possono adottare fin da subito per rendere il proprio sito più mobile friendly ed anche alcuni tips per gli sviluppatori wordpress.</p>
<p>Partiamo dal targeting della dimensione schermo per i dispositivi mobile (smartphone e tablet): il modo migliore per utilizzare uno stile specifico che vada a sovrascrivere parte di quello principale è di usare l&#8217;attributo @media nel css specificando le regole per poter essere applicabile (nel nostro caso la larghezza in pixel dello schermo).</p>
<p><span id="more-240"></span>Esempio tratto dal css di <a href="http://www.creativebits.it/blog/lab/helicon-template-per-wordpress/">Helicon</a>:</p>
<pre>@media screen and (max-width: 1050px) { ... } /* Small Screens: &lt; 1050px  */
@media screen and (max-width: 770px)  { ... } /* Tablet: &lt; 770px  */
@media screen and (max-width: 480px)  { ... } /* Smartphone H: &lt; 480px  */
@media screen and (max-width: 380px)  { ... } /* Smartphone V: &lt; 380px  */
</pre>
<p>In questo caso il css è impostato in modo che abbia una struttura principale e successivamente 4 variazioni in base al supporto di visualizzazione, ciò ci permette di avere un layout semi-flessibile e adattabile, pratica che, secondo me, permette di mantenere una alta leggibilità e usabilità con il minimo di sforzo, a patto che tutto ciò venga preso in considerazione in fase di progettazione per evitare di avere una base che per sua stessa natura sarebbe difficilmente &#8220;frammentabile&#8221; come vedremo ora.</p>
<p>Questo è lo schema che ho preparato in fase di progettazione, ovviamente il layout di per se è molto semplice ma è l&#8217;esempio perfetto per dimostrare fin dove ci si può spingere con il riordinamento delle varie sezioni in base al supporto di fruizione.</p>
<p><img class="aligncenter size-full wp-image-241" title="wireframe" src="http://www.creativebits.it/wp-content/uploads/2011/02/wireframe.gif" alt="" width="589" height="220" /></p>
<p>Come potete vedere in questo modo l&#8217;utente ha prima di tutto un vantaggio enorme, non avrà mai bisogno di ingrandire un particolare elemento della pagina per poterlo leggere, la dimensione del carattere sarà sempre la stessa dal pc allosmartphone, così come i pulsanti ed ogni altro elemento manterrà la dimensione originale (con qualche variazione per i grandi schermi in cui entra in gioco una semi-flessibilità delle colonne laterali).</p>
<p>In un prossimo/i post spiegherò esattamente come ho fatto per <a href="http://www.creativebits.it/blog/lab/helicon-template-per-wordpress/">Helicon</a> a raggiungere un risultato prefisso nel progetto.</p>
<p>Per ora concludo qui questa che potremmo definire solo una introduzione ad un argomento a cui mi sono da poco interessato in modo serio ed effettivamente riserva molte più sorprese di quante mi aspettassi.</p>
<p>Mi piacerebbe sapere cosa ne pensate, qualcuno di voi ha già provato ad applicare il media screen per aggiungere un po&#8217; di flessibilità ai propri lavori (anche senza spingersi fino alle versioni mobile)?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.creativebits.it/blog/processi/targeting-dispositivi-mobile-via-css/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Considerazioni sul mobile per smartphone</title>
		<link>http://www.creativebits.it/blog/sviluppo/considerazioni-sul-mobile-per-smartphone/</link>
		<comments>http://www.creativebits.it/blog/sviluppo/considerazioni-sul-mobile-per-smartphone/#comments</comments>
		<pubDate>Wed, 26 Jan 2011 01:39:24 +0000</pubDate>
		<dc:creator>Raffaele</dc:creator>
				<category><![CDATA[Sviluppo]]></category>

		<guid isPermaLink="false">http://www.creativebits.it/?p=189</guid>
		<description><![CDATA[Recentemente ho avuto la possibilità di fare delle ricerche più approfondite su un argomento di cui mi interesso ormai da anni ma senza mai aver avuto la possibilità di poter applicare ciò che apprendevo, sviluppo di siti per smartphone.
In vista di un progetto futuro di cui saranno il punto cardine ho iniziato a rinfrescarmi un [...]]]></description>
			<content:encoded><![CDATA[<p>Recentemente ho avuto la possibilità di fare delle ricerche più approfondite su un argomento di cui mi interesso ormai da anni ma senza mai aver avuto la possibilità di poter applicare ciò che apprendevo, sviluppo di siti per smartphone.</p>
<p>In vista di un progetto futuro di cui saranno il punto cardine ho iniziato a rinfrescarmi un po&#8217; la memoria e devo dire che è sempre una bella sensazione quando si impara qualcosa di nuovo perché lo si vuole e non perché si deve, e a tal proposito magari un giorno scriverò il mio punto di vista su quanto credo sia importante nell&#8217;ottica dell&#8217;esperienza utente incentivare il visitatore a (ri)scoprire un sito mosso da un interesse di tipo curioso più che da una necessità.</p>
<p>Sui siti mobile moderni si potrebbero scrivere svariati articoli su tutti i vari aspetti che li riguardano, dal punto di vista marketing/seo a quello sociale, ma per ora mi concentrerò forse sulla parte più generica legata allo sviluppo vero e proprio e ho buttato giù un paio di punti chiave che secondo me dovrebbero essere sempre tenuti bene a mente quando si cerca di sviluppare un sito del genere per poter sfruttare appieno le potenzialità extra che questo mezzo di comunicazione ha da offrire.<span id="more-189"></span></p>
<ul>
<li>
<h4>Flessibilità</h4>
<p>Un sito mobile si deve adattare non solo ai vari orientamenti dello smartphone, orizzontale e verticale, ma deve anche alle variazioni di risoluzione. Mobile non è solo iPhone, attualmente vengono venduti più smartphone Android che iPhone*, ognuno con delle caratteristiche peculiari che devono essere prese in considerazione al momento dello sviluppo di un sito ottimizzato, dalla compatibilità a javascript a i nuovi standard html5 e css3. Ritengo perciò che prima di tutto un sito mobile debba essere flessibile per offrire una pari esperienza a tutti i possibili visitatori.</li>
<li>
<h4>Usabilità</h4>
<p>La grande rivoluzione che hanno portato gli smartphone sta nel aver costretto a ripensare alla navigazione di un sito internet senza l&#8217;utilizzo del mouse, ovviamente l&#8217;alternativa più logica in questo caso è stato l&#8217;utilizzo della pressione di uno o più dita sullo schermo ma non ha risolto completamente i problemi di usabilità che ne sono derivati. Non esiste la possibilità di mostrare informazioni aggiuntive passando il dito su un determinato elemento, molte azioni richiedono movimenti del dito simili con il rischio di click involontari e bisogna tenere sempre a mente che gli elementi devono essere a portata di dito, ciò che potrebbe essere facilmente cliccato con un mouse è possibile che sia troppo piccolo per un dito.</p>
<p>Fortunatamente in questi ultimi anni gli smartphone sono diventati sempre più percettivi e &#8220;intelligenti&#8221; nel ricevere e tradurre i movimenti in azioni ma non sono ancora perfetti, gli schermi non aumenteranno di dimensioni perciò per un sito usabile bisogna prima di tutto crearlo avendo in mente che tutto deve essere a portata di dito sia come posizione che dimensione dei pulsanti o links, l&#8217;interfaccia grafica deve essere ben contrastata per sopperire alla qualità, a volte scarsa, di alcuni schermi di smartphone economici, utilizzare solo caratteri standard consigliati nelle linee guida ufficiali per evitare disparità con le altre sezioni dello smartphone oltre che per questioni di leggibilità.</li>
<li>
<h4>Microformati</h4>
<p>Il bello di uno smartphone è che hai tutto a portata di mano, telefono e internet, e ciò ci permette di adottare delle soluzioni per avvicinare i due mondi. In questo caso l&#8217;utilizzo dei microformati ci consente di inserire delle informazioni in una pagina che vengono comprese ed estrapolate dal software.</p>
<p>Ad esempio, se visitiamo una pagina con che contiene un indirizzo di un locale, se questo è stato messo senguendo le direttive dei microformati, lo smartphone stesso riconoscerà quella parte della pagina con un indirizzo e proporrà se aggiungerlo nella rubrica, evitandoci di doverlo poi fare a mano. Un&#8217;altra possibilità è quella di vedere un numero di telefono ad utilizzare, ad esempio, per le prenotazioni ed essendo stato riconosciuto come tale basterà cliccarlo per avviare una telefonata, anche in questo caso risparmiandoci la noia di doverlo riscrivere.</p>
<p>Ovviamente questi sono esempi semplici ma penso che bastino per dare una idea di quanto potenti possano essere i microformati, rendono gli smartphone che li supportano capaci di riconoscere determinate informazioni per poterle riutilizzare in modo molto più pratico.</li>
<li>
<h4>Geolocalizzazione</h4>
<p>Uno degli aspetti più interessanti e unici che possono aprire molto porte a siti innovativi ed estremamente pratici è la funzione di geolocalizzaizone che sempre più produttori stanno aggiungenti alla propria linea di smartphone. Tuttora è già possibile trovarla sulla maggior parte di apparecchi e ci consente di ipotizzare soluzioni in cui alla ricerca di un ristorante basterà accedere ad un sito internet e in base alla locazione rilevata consigliare i locali più vicini. Le applicazioni di una funzionalità di questo tipo sono molte e credo che in futuro tutto sara basato, a livelli di interazione, sulla geolocalizzazione.</li>
</ul>
<p>Grazie anche a queste ricerce mi si è rinnovato un interesse, che negli ultimi anni si era fin troppo assopito, nella creazione di template pubblici per wordpress, saranno assolutamente gratis e mi i daranno modo di sperimentare e portare all&#8217;estremo tutto ciò che sto imparando.</p>
<p>Il primo esperimento che pubblicherò su questo blog l&#8217;ho chiamato <strong>Helicon</strong> ed è un template semi-flessibile in HTML5 e CSS3 che si adatta organicamente a tutte le risoluzioni, da 1240 a 320 pixel modificando la sua struttura per permettere sempre una lettura ed una navigazione agevole.</p>
<p>Perciò per i pochi superstiti che si sono dimenticati di togliere il feed di questo blog dai propri feedreader rimanete sintonizzati, conto su di voi per un po&#8217; di feedback e magari qualche consiglio.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.creativebits.it/blog/sviluppo/considerazioni-sul-mobile-per-smartphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ma non è troppo presto per usare l&#8217;HTML5?</title>
		<link>http://www.creativebits.it/blog/sviluppo/ma-non-e-troppo-presto-per-usare-lhtml5/</link>
		<comments>http://www.creativebits.it/blog/sviluppo/ma-non-e-troppo-presto-per-usare-lhtml5/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 13:28:07 +0000</pubDate>
		<dc:creator>Raffaele</dc:creator>
				<category><![CDATA[Sviluppo]]></category>

		<guid isPermaLink="false">http://www.creativebits.it/?p=169</guid>
		<description><![CDATA[Tutti ne parlano, da circa 2 anni a questa parte si è vista una diffusione di massa di articoli dedicati, e tutto ciò lo trovo giusto per dal punto di vista educativo ma da quello pratico cosa è cambiato? Che vantaggi a portato a chi l&#8217;ha adottato in anticipo?
Nulla. Semplice, chiaro e conciso.
Perchè nessun browser [...]]]></description>
			<content:encoded><![CDATA[<p>Tutti ne parlano, da circa 2 anni a questa parte si è vista una diffusione di massa di articoli dedicati, e tutto ciò lo trovo giusto per dal punto di vista educativo ma da quello pratico cosa è cambiato? Che vantaggi a portato a chi l&#8217;ha adottato in anticipo?</p>
<p><span id="more-169"></span><strong>Nulla</strong>. Semplice, chiaro e conciso.</p>
<p>Perchè nessun browser ha pensato di dare un supporto che vada oltre all&#8217;accettare i tag nuovi come validi, senza tale supporto a cosa si riduce tutta la rivoluzione dell&#8217;<a href="http://it.wikipedia.org/wiki/HTML_5">HTML 5</a>: ad una manciata di tag nuovi. So bene che porta interessati  vantaggi per l&#8217;inclusione di files. gestione form o salvataggio di dati in locale ma mi sto soffermando sul 90% degli articoli dedicati esclusivamente al markup</p>
<p>Personalmente sono favorevole all&#8217;HTML 5 come a tutti i cambiamenti ma non riesco a comprendere come si continui a scrivere e suggerire di adottarlo senza che esista ancora un supporto decente. Le sperimentazioni vanno benissimo, anch&#8217;io la versione precedente di CreativeBits l&#8217;avevo realizzata con questo linguaggio e mi stupisce come certi siti l&#8217;abbiano anche segnalato unicamente per questo motivo.</p>
<p>Ma in pratica cosa si sta chiedendo di fare per il passaggio da 4 a 5? Solo sostituire alcuni tag &lt;div&gt; con i corrispettivi tag nuovi, ad esempio:</p>
<ul>
<li>
<div class="codecolorer-container text geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&amp;lt;div id=&quot;header&quot;&amp;gt;</div></div>
<p>diventa</p>
<div class="codecolorer-container text geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&amp;lt;header&amp;gt;</div></div>
</li>
<li>
<div class="codecolorer-container text geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&amp;lt;div id=&quot;navbar&quot;&amp;gt;</div></div>
<p>diventa</p>
<div class="codecolorer-container text geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&amp;lt;nav&amp;gt;</div></div>
</li>
<li>
<div class="codecolorer-container text geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&amp;lt;div class=&quot;article&quot;&amp;gt;</div></div>
<p>diventa</p>
<div class="codecolorer-container text geshi" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&amp;lt;article&amp;gt;</div></div>
</li>
<li>..e così via, per vedere la lista completa <a href="http://blog.merlinox.com/html5-intro/">potete guardare qui</a>.</li>
</ul>
<p>Trovo che tutto ciò sarà estremamente interessate una volta trovate delle soluzioni per meglio sfruttare questa divisione semantica del contenuto, mi piace vedere  l&#8217;Html 5 come una versione potenziata dei <a href="http://microformats.org/">Microformats</a> che però sono dedicati solo ad una parte di informazioni mentre adesso si potrebbe pensare più grande come, ad esempio, allo sviluppo di  sistemi di catalogazione e ricerca di nuova generazione grazie ai tag dedicati che permetterebbero di focalizzarsi solo sul contenuto principale della pagina.</p>
<p>Ma la realtà attuale delle cose è che il supporto browser è scadente e c&#8217;è bisogno di un js dedicato solo per far digerire i tag nuovi a IE (senza dimenticare che anche Firefox 2 non legge l&#8217;html5 per colpa di un bug nel motore di rendering), i motori di ricerca con considerano minimamente i tag nuovi e non dimentichiamo la cosa più importante<strong> l&#8217;HTML5 è ancora in fase di stesura</strong> quindi non ci si può aspettare niente di definito per ancora qualche anno visti i tempi medi che hanno al w3c.</p>
<p>Ripeto: ottimo spunto per una conversazione, dei buoni propositi e un grande potenziale ma è davvero così necessaria questa corsa per essere i primi o alla fine è solo l&#8217;ennesimo espediente per farsi pubblicità facile?</p>
<p>Magari mi sbaglio o non sto vedendo il quadro generale e ho tralasciato qualcosa, cosa ne pensate?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.creativebits.it/blog/sviluppo/ma-non-e-troppo-presto-per-usare-lhtml5/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Bookmarlet per griglie tipografiche</title>
		<link>http://www.creativebits.it/blog/sviluppo/bookmarlet-per-griglie-tipografiche/</link>
		<comments>http://www.creativebits.it/blog/sviluppo/bookmarlet-per-griglie-tipografiche/#comments</comments>
		<pubDate>Sun, 19 Apr 2009 01:03:16 +0000</pubDate>
		<dc:creator>Raffaele</dc:creator>
				<category><![CDATA[Sviluppo]]></category>

		<guid isPermaLink="false">http://192.168.0.8/cb2/?p=56</guid>
		<description><![CDATA[Ci sono sempre state da quando si è iniziato a parlare di tipografia nella stampa pressapoco da quando è nata la stampa stessa ed un concetto fondamentale e indispensabile se si vuole ordine e chiarezza in un design, le griglie.]]></description>
			<content:encoded><![CDATA[<p>Ci sono sempre state da quando si è iniziato a parlare di tipografia nella stampa pressappoco da quando è nata la stampa stessa ed un concetto fondamentale e indispensabile se si vuole ordine e chiarezza in un design, le griglie. E&#8217; una delle prime cose che si dovrebbero imparare quando si inizia a muovere i primi passi nella grafica, soprattutto nell&#8217;impaginazione di testi e immagini. <span id="more-56"></span></p>
<blockquote><p>Una griglia aiuta il designer a dare un ordine razionale agli elementi della pagina rendendola più comprensibile e leggibile.</p></blockquote>
<p>Da qualche anno l&#8217;uso delle griglie è entrato nei monitor di molti web designer e, grazie a grandi esperti in questo campo come <a href="http://www.markboulton.co.uk/">Mark Boulton</a> e <a href="http://www.subtraction.com/">Khoi Vinh</a> che hanno saputo diffondere questa pratica oltre i confini della carta stampata, finalmente si è iniziato a sviluppare interfacce per il web con una base tipografica.</p>
<h3>Il concetto di griglia</h3>
<p>Il concetto di griglia web per come viene di solito presentato si riferisce a delle colonne verticali (di solito 12 o 16, ma anche 6 o 4) a dimensione fissa con un margine tra loro di spaziatura. Ora come è evidente se la griglia è composta da sole colonne non si può definire tale in quanto richiederebbe anche una controparte orizzontale che sovrapponendosi creerebbe appunto la griglia vera e propria, questo però porrebbe forse troppe barriere alla creatività dei designer e si è deciso di trovare un accettabile compromesso iniziando ad adottare le sole colonne verticali.</p>
<h3>La nascita dei frameworks</h3>
<p>Come è logico pensare dato un input iniziale sono nate molte iniziative per semplificare la vita ai designer meno esperti per metterli comunque nella condizione di iniziare a fare pratica fornendo degli strumenti e delle risorse per saltare la fase di pianificazione, e quindi anche l&#8217;impostazione di una griglia, per passare direttamente alla parte grafica e, successivamente, in fase di realizzazione del markup HTML/CSS (il codice alla base delle pagine web) avendo già una base pronta con tutti i riferimenti e le dimensioni delle colonne senza dover perdere a crearle da soli e verificare che sia tutto compatibile con i vari browser.</p>
<h3>Il bookmarlet</h3>
<p>Se ne è discusso parecchio, soprattutto per quanto riguarda le basi già pronte e personalmente trovo che siano utili sono in pochissimi casi ma non voglio entrare entrare nel merito della discussione, oggi sono qui per presentarvi 2 semplici bookmarklet che ho preparato<strong>*</strong> e che sono sicuro vi aiuteranno quando vorrete testare il vostro sito per vedere se si è rispettata la griglia su cui era stata realizzata l&#8217;interfaccia.</p>
<p>Mi sono basato, come dimensioni, alla griglia oramai standard di <a href="http://960.gs/">960.gs</a> cioè per una pagina di 960px, a scelta suddivisa in 12 o 16 colonne con 20px di spazio tra l&#8217;una e l&#8217;altra. In pratica questi bookmarklet applicano in overlay alla pagina che si sta visualizzando con le colonne di colore rosso semi trasparente che sono fornite nel pacchetto. Ho aggiunto anche un leggero fondo bianco anch&#8217;esso semi-trasparente per far risaltare le colonne nel caso lo sfondo della pagina risultasse troppo scuro.</p>
<p>Trascinate nella barra dei preferiti i bookmarlet qui sotto e fate pure un test su CB per vedere subito come funziona.</p>
<p class="bookmarklets"><a href="javascript:void(myDiv=document.getElementById(%27_grid_div_mrb%27));void(myBody=document.getElementsByTagName(%27body%27)[0]);if(myDiv!=null){void(myBody.removeChild(myDiv));}else{void(myDiv=document.createElement%20(%27div%27));void(myDiv.id=%27_grid_div_mrb%27);void(myDiv.style.background=%27url(http://www.creativebits.it/grid/grid_12.png)%20repeat-y%20top%20center%27);/*@cc_onmyDiv.style.background=%27none%27;myDiv.style.filter=%27progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\%27http://www.creativebits.it/grid/grid_12.png\%27,%20sizingMethod=\%27image\%27)%27;@*/void(myDiv.style.position=%27absolute%27);void(myDiv.style.width=%27100%%27);void(myDiv.style.height=myBody.offsetHeight+%27px%27);void(myDiv.style.top=%270%27);void(myDiv.style.left=%270%27);void(myDiv.onclick=function(){void(myBody.removeChild(myDiv));});void(myBody.appendChild(myDiv));}">12 Colonne</a> <a href="javascript:void(myDiv=document.getElementById(%27_grid_div_mrb%27));void(myBody=document.getElementsByTagName(%27body%27)[0]);if(myDiv!=null){void(myBody.removeChild(myDiv));}else{void(myDiv=document.createElement%20(%27div%27));void(myDiv.id=%27_grid_div_mrb%27);void(myDiv.style.background=%27url(http://www.creativebits.it/grid/grid_16.png)%20repeat-y%20top%20center%27);/*@cc_onmyDiv.style.background=%27none%27;myDiv.style.filter=%27progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\%27http://www.creativebits.it/grid/grid_16.png\%27,%20sizingMethod=\%27image\%27)%27;@*/void(myDiv.style.position=%27absolute%27);void(myDiv.style.width=%27100%%27);void(myDiv.style.height=myBody.offsetHeight+%27px%27);void(myDiv.style.top=%270%27);void(myDiv.style.left=%270%27);void(myDiv.onclick=function(){void(myBody.removeChild(myDiv));});void(myBody.appendChild(myDiv));}">16 Colonne</a></p>
<p><strong>*</strong> In realtà  non li ho scritti di mano mia partendo da 0, purtroppo non sono molto pratico di Javascript, ma sono un adattamento di un bookmarklet creato da <a href="http://subtlegradient.com">Thomas Aylott</a> che a sua volta ha preso ispirazione da un bookmarklet creato da <a href="http://www.andybudd.com">Andy Budd</a> quindi va a loro il merito, io ho solo sostituito quella griglia in stile photoshop a mio parere non molto pratica con le colonne fornite da <a href="http://960.gs/">960.gs</a>.</p>
<p>Non dovrebbero dare nessun problema anche se ho notato e non so come mai che su alcuni siti la griglia si ferma all&#8217;altezza della finestra quindi scorrendo la pagina l&#8217;overlay rimane fisso in alto e in altri siti invece arriva fino a fondo pagina, sapete dirmi il perchè?</p>
<p>Fatemi sapere nei commenti se vi è servito e se avete qualche suggerimento per renderlo ancora migliore.</p>
<p><strong>Update (3/05)</strong>: Non so come sia riuscito a perdermelo, eppure ho cercato per giorni una soluzione simile e sul sito di <a href="http://960.gs/">960.gs</a> non ce n&#8217;era traccia ma a quanto pare esiste già da qualche mese un bookmarklet, questa volta realizzato come si deve, che fa praticamente la stessa cosa e con molte opzioni anche se ha ancora qualche problema nel visualizzare le colonne colorate e in questo caso tornano utili i bookmarklet che avevo preparato, <a href="http://gridder.andreehansson.se/">gridder.andreehansson.se</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.creativebits.it/blog/sviluppo/bookmarlet-per-griglie-tipografiche/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

