<?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>Fortunecat.it &#187; Hi-Tech Blog</title> <atom:link href="http://www.fortunecat.it/blog/hitech/feed/" rel="self" type="application/rss+xml" /><link>http://www.fortunecat.it</link> <description>SEO, web marketing e notizie dal mondo dei motori di ricerca</description> <lastBuildDate>Mon, 13 Feb 2012 08:07:34 +0000</lastBuildDate> <language>it</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <item><title>Trello, per collaborare online</title><link>http://www.fortunecat.it/2012/02/trello-progetti-collaboratori/</link> <comments>http://www.fortunecat.it/2012/02/trello-progetti-collaboratori/#comments</comments> <pubDate>Mon, 13 Feb 2012 08:07:34 +0000</pubDate> <dc:creator>Angelo Iasevoli aka Middleman90</dc:creator> <category><![CDATA[Recensioni]]></category> <category><![CDATA[distanza]]></category> <category><![CDATA[gestire]]></category> <category><![CDATA[lavoro]]></category> <category><![CDATA[organizzare]]></category> <category><![CDATA[web]]></category><guid isPermaLink="false">http://www.fortunecat.it/?p=13039</guid> <description><![CDATA[Lavorare da soli è ottimo perché lo scambio di informazioni avviene in uno spazio relativamente stretto: la nostra scatola cranica. Se da un lato si è più efficienti perché si evitano errori dovuti a comunicazioni ambigue, è anche vero che se il progetto è abbastanza corposo diventa conveniente suddividere il lavoro in sotto-problemi da affidare [...]<p><p style="text-decoration: none; color: #000; font-weigth: bold; text-align: right; font-size: 10px"><a href="http://www.fortunecat.it/2012/02/trello-progetti-collaboratori/">Trello, per collaborare online</a><br /> Fortunecat.it <a style="text-decoration: none; color: #000; font-size: 10px; font-weigth: bold; text-align: center;" href="http://www.fortunecat.it">Web Marketing</a></p></p> ]]></description> <content:encoded><![CDATA[<p style="text-align: justify;">Lavorare da soli è ottimo perché lo scambio di informazioni avviene in uno spazio relativamente stretto: la nostra scatola cranica.</p><p style="text-align: justify;">Se da un lato si è più efficienti perché si evitano errori dovuti a comunicazioni ambigue, è anche vero che se il progetto è abbastanza corposo diventa conveniente suddividere il lavoro in sotto-problemi da affidare a persone diverse.</p><p style="text-align: center;"><iframe frameborder="0" height="315" src="http://www.youtube.com/embed/aaDf1RqeLfo?showinfo=0" width="560"></iframe></p><p style="text-align: justify;">Bisogna stare molto attenti a suddividere per bene il lavoro ma, sopratutto, evitare come la peste i fraintendimenti: spesso è difficile comunicare chiaramente un concetto che a noi sembra tanto semplice.</p><p style="text-align: justify;">Come tentare di arginare questo problema e forse anche risolverlo? Servirebbe uno strumento in grado di tener traccia di tutte le task e che nel contempo metta a disposizione potenti strumenti comunicativi e decisionali.<strong> </strong></p><p style="text-align: justify;"><strong>Qualcuno c&#8217;ha pensato ed ha realizzato <a href="https://trello.com/" target="_blank">Trello</a>.</strong></p><p style="text-align: justify;">Trello, attraverso una veste grafica semplice ed abbastanza intuitiva, ci permette di gestire le azioni da compiere per il completamento di un lavoro/progetto. L&#8217;applicazione ordina i concetti appena espressi grazie all&#8217;utilizzo delle liste.</p><p style="text-align: justify;">Ogni lista può contenere le famigerate task che possono essere associate a uno o più partecipanti. Avremo, quindi, sempre <strong>sotto controllo</strong> i nomi di chi sta lavorando su cosa.</p><p style="text-align: justify;">Nelle task è possibile inserire dei commenti, domande a risposta multipla ed anche allegati. C&#8217;è anche la facoltà di inserire dei labels colorati, utili per marcare la loro urgenza o, eventualmente, il completamento.</p><p style="text-align: justify;">Come avrete potuto notare il servizio è ottimo per lo sviluppo di software, ma la sue possibili applicazioni spaziano anche in altri campi, come ad esempio l&#8217;editoria online. Trello si presta bene anche nel caso in cui i partecipanti lavorino a distanza.</p><p style="text-align: justify;">Per gruppi piccoli di persone non ne vale la pena, ma quando si perde il controllo della situazione è meglio chiedere aiuto a Trello. Conoscete altri sistemi per non impazzire durante un lavoro di gruppo? <img src='http://www.fortunecat.it/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p><p><p style="text-decoration: none; color: #000; font-weigth: bold; text-align: right; font-size: 10px"><a href="http://www.fortunecat.it/2012/02/trello-progetti-collaboratori/">Trello, per collaborare online</a><br /> Fortunecat.it <a style="text-decoration: none; color: #000; font-size: 10px; font-weigth: bold; text-align: center;" href="http://www.fortunecat.it">Web Marketing</a></p></p> ]]></content:encoded> <wfw:commentRss>http://www.fortunecat.it/2012/02/trello-progetti-collaboratori/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>History API: cambia l&#8217;url senza ricaricare la pagina</title><link>http://www.fortunecat.it/2012/02/html5-history-api/</link> <comments>http://www.fortunecat.it/2012/02/html5-history-api/#comments</comments> <pubDate>Wed, 01 Feb 2012 07:12:55 +0000</pubDate> <dc:creator>Angelo Iasevoli aka Middleman90</dc:creator> <category><![CDATA[Tutorial e Risorse]]></category> <category><![CDATA[api]]></category> <category><![CDATA[cambiare url]]></category> <category><![CDATA[html5]]></category> <category><![CDATA[jQuery]]></category> <category><![CDATA[url]]></category><guid isPermaLink="false">http://www.fortunecat.it/?p=12946</guid> <description><![CDATA[Essendo un web developer non riesco a godermi i siti così come fanno tutti gli altri mortali. Mi pongo sempre delle domande: &#8220;Come funziona questo?&#8221;; &#8220;Come posso fare per ottenere le stesse cose?&#8221;; &#8220;Come posso migliorare queste funzioni?&#8221;. Spesso ne passa di acqua sotto i ponti prima che trovi una risposta. Proprio in queste settimane [...]<p><p style="text-decoration: none; color: #000; font-weigth: bold; text-align: right; font-size: 10px"><a href="http://www.fortunecat.it/2012/02/html5-history-api/">History API: cambia l&#8217;url senza ricaricare la pagina</a><br /> Fortunecat.it <a style="text-decoration: none; color: #000; font-size: 10px; font-weigth: bold; text-align: center;" href="http://www.fortunecat.it">Web Marketing</a></p></p> ]]></description> <content:encoded><![CDATA[<p style="text-align: justify;">Essendo un web developer non riesco a godermi i siti così come fanno tutti gli altri mortali. Mi pongo sempre delle domande:</p><ul><li>&#8220;Come funziona questo?&#8221;;</li><li>&#8220;Come posso fare per ottenere le stesse cose?&#8221;;</li><li>&#8220;Come posso migliorare queste funzioni?&#8221;.</li></ul><p style="text-align: justify;">Spesso ne passa di acqua sotto i ponti prima che trovi una risposta. Proprio in queste settimane ho finalmente scovato una soluzione a questa domanda: &#8220;<strong>Come fa Facebook a cambiare l&#8217;URL senza ricaricare l&#8217;intera pagina?</strong>&#8220;.</p><p style="text-align: justify;">Se ci fate caso, quando scorrete le foto di un&#8217;album o cambiate pagina all&#8217;interno di un profilo, noterete che la pagina non viene ricaricata, eppure l&#8217;URL si modifica. Tutti sanno che ajax ci viene in contro per cambiare il contenuto di una pagina, ma quanti sanno come cambiare l&#8217;URL?</p><p style="text-align: center;"><img class="aligncenter size-full wp-image-12987" src="http://www.fortunecat.it/wp-content/uploads/2011/12/historyjs.jpg" alt="" width="620" height="370" /></p><p style="text-align: justify;">Ansiosi di conoscere la risposta? Vi accontento subito: si tratta di un&#8217;API di HTML5, per essere più precisi la &#8220;<strong>HTML5 History API</strong>&#8220;.</p><p style="text-align: justify;">Immaginate di inviare ad un vostro amico un link ad una foto appena vista in un album. Senza questa API vedrà la sua bacheca principale o cose simili. Comprenderete ora l&#8217;importanza di questa nuova funzione introdotta nell&#8217;HTML5.</p><p style="text-align: justify;">Tutto bello, anzi bellissimo, ma c&#8217;è un ma&#8230; Cosa fare per browser come le vecchie versioni di Internet Explorer (che dio le abbia in gloria) che non sanno minimamente cosa sia l&#8217;HTML5? In questo caso ci viene in soccorso un ottimo plugin disponibile per jQuery, Mootools, Right.js e Zepto. Si chiama <a href="https://github.com/balupton/History.js/" target="_blank">History.js</a>.</p><p style="text-align: justify;">Come prima cosa, importiamo il plugin inserendo nella pagina queste due stringhe:</p><pre>&lt;script src="http://balupton.github.com/history.js/vendor/jquery.js"&gt;&lt;/script&gt;
&lt;script src="http://balupton.github.com/history.js/scripts/bundled/html4+html5/jquery.history.js"&gt;&lt;/script&gt;</pre><p style="text-align: justify;">Per cambiare l&#8217;URL sarà necessario utilizzare la funzione:</p><pre>History.pushState(data,titolo,url);</pre><p style="text-align: justify;">Dove &#8220;titolo&#8221; ed &#8220;url&#8221; sono rispettivamente il titolo della pagina ed il nuovo URL mostrato dal browser, mentre &#8220;data&#8221; sono informazioni che vogliamo passare (fra poco sarà più chiaro).</p><p style="text-align: justify;">In questo modo si creeranno delle task nella cronologia. Cliccando il pulsante del browser per andare nella pagina precedente si ritorna all&#8217;URL precedente, ma il contenuto della pagina? Come accorgersi che lo stato (URL e titolo della pagina) è cambiato? Rispondo subito con questa funzione:</p><pre>    History.Adapter.bind(window,'statechange',function(){
        var State = History.getState();
        var Data = State.data;
        var Titolo = State.title;
        var URL = State.url;
    });</pre><p style="text-align: justify;">Questa funzione va in esecuzione quando lo stato del browser cambia e registra informazioni come &#8220;Data&#8221; passati in precedenza dalla funzione &#8220;History.pushState&#8221;, &#8220;Titolo&#8221; che è il nuovo titolo della pagina e &#8220;URL&#8221; che è l&#8217;URL appena cambiato.</p><p style="text-align: justify;">Starà a noi, poi, creare delle funzioni che cambino il contenuto della pagina. Ora si spiega come mai cliccando su una foto su Facebook, si apre una cornice nella pagina stessa, senza ricaricarla, ma se si prova ad andare all&#8217;indirizzo indicato dall&#8217;URL, si approda in una zona totalmente diversa (quella della foto senza effetto modal).</p><p style="text-align: justify;"><strong>Ci sono anche altri due siti che conosco e che usano questo sistema:</strong> <a href="https://plus.google.com" target="_blank">Google+</a> e <a href="https://github.com/" target="_blank">GitHub</a>. Ne conoscete altri?</p><p style="text-align: justify;">Abbonatevi al <a href="http://feeds.fortunecat.it/geektwice-com" target="_blank">feed della sezione Hi-Tech</a> per scoprire altri trucchi simili a questo. <img src='http://www.fortunecat.it/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p><p><p style="text-decoration: none; color: #000; font-weigth: bold; text-align: right; font-size: 10px"><a href="http://www.fortunecat.it/2012/02/html5-history-api/">History API: cambia l&#8217;url senza ricaricare la pagina</a><br /> Fortunecat.it <a style="text-decoration: none; color: #000; font-size: 10px; font-weigth: bold; text-align: center;" href="http://www.fortunecat.it">Web Marketing</a></p></p> ]]></content:encoded> <wfw:commentRss>http://www.fortunecat.it/2012/02/html5-history-api/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Codecademy, e impari a programmare</title><link>http://www.fortunecat.it/2012/01/imparare-programmare/</link> <comments>http://www.fortunecat.it/2012/01/imparare-programmare/#comments</comments> <pubDate>Thu, 12 Jan 2012 08:23:14 +0000</pubDate> <dc:creator>Angelo Iasevoli aka Middleman90</dc:creator> <category><![CDATA[Tutorial e Risorse]]></category> <category><![CDATA[guida]]></category> <category><![CDATA[javascript]]></category> <category><![CDATA[programmare]]></category> <category><![CDATA[servizio]]></category> <category><![CDATA[tutorial]]></category><guid isPermaLink="false">http://www.fortunecat.it/?p=12822</guid> <description><![CDATA[Credo che converrete con me nel pensare al &#8220;principio&#8221; come la parte più dura della nostra vita da programmatori. Iniziare a programmare è molto difficile, insomma&#8230; Non mi riferisco a quando si decide di imparare un nuovo linguaggio, ma proprio a quando ci si affaccia per la prima volta su questo affascinante mondo. La difficoltà [...]<p><p style="text-decoration: none; color: #000; font-weigth: bold; text-align: right; font-size: 10px"><a href="http://www.fortunecat.it/2012/01/imparare-programmare/">Codecademy, e impari a programmare</a><br /> Fortunecat.it <a style="text-decoration: none; color: #000; font-size: 10px; font-weigth: bold; text-align: center;" href="http://www.fortunecat.it">Web Marketing</a></p></p> ]]></description> <content:encoded><![CDATA[<p style="text-align: justify;"><img class="size-medium wp-image-12848 alignright" src="http://www.fortunecat.it/wp-content/uploads/2011/11/codecademy-300x204.jpg" alt="" width="300" height="204" /></p><p style="text-align: justify;">Credo che converrete con me nel pensare al &#8220;principio&#8221; come la parte più dura della nostra vita da programmatori.</p><p style="text-align: justify;">Iniziare a programmare è molto difficile, insomma&#8230;</p><p style="text-align: justify;"><strong>Non mi riferisco a quando si decide di imparare un nuovo linguaggio</strong>, ma proprio a quando ci si affaccia per la prima volta su questo affascinante mondo.</p><p style="text-align: justify;">La difficoltà principale sta nel comprendere i meccanismi che stanno alla base del &#8220;linguaggio macchina&#8221;.</p><p style="text-align: justify;">Da questa fase non ne escono solo i migliori, ma già si può notare una bella scrematura dei candidati programmatori.</p><p style="text-align: justify;">Molti abbandonano perché proprio non riescono a capire i concetti più semplici ma fondamentali. Le guide che si trovano in giro, solitamente, sono un po&#8217; troppo tecniche per i &#8220;nuovi arrivati&#8221;.</p><p style="text-align: justify;">Sono fermamente convinto che imparare da qualcuno che le cose te le spiega a voce e &#8220;dal vivo&#8221; sia la cosa migliore. Fare domande, ricevere immediatamente risposte, farsi ripetere in modo diverso i concetti. Queste sono cose che in una guida online non si possono ottenere.</p><p style="text-align: justify;">Oggi voglio presentarvi un servizio online che tenta di riparare a questa mancanza e ci riesce anche abbastanza bene. Si chiama <strong><a title="codecademy" href="http://www.codecademy.com" target="_blank">Codecademy</a></strong>.</p><p style="text-align: justify;">Cosa rende questo servizio diverso da una comune guida? Semplice: utilizzandolo si avrà l&#8217;impressione di chattare con qualcuno. Infatti, i corsi sono strutturati in forma di dialogo, il programma ci dirà cosa fare e mentre lo facciamo impariamo anche qualcosa di nuovo. <strong>Impariamo a programmare</strong>, appunto.</p><p style="text-align: justify;">La teoria è relativamente poca (in inglese), mentre molto spazio  viene riservato alle esercitazioni. Infatti, sarà possibile testare quello che si è appena imparato durante il corso.</p><p style="text-align: justify;">Il servizio è appena nato, quindi ci sono solamente 3 corsi: uno di introduzione e gli altri 2 sul javascript. Decisamente pochini per decidere se si tratti di un buon servizio. Restiamo ad aspettare, sicuramente compariranno altri corsi a breve.</p><p style="text-align: justify;">Ovviamente questo è un servizio utile solamente nella fase iniziale, non sognatevi di passare qualche giornata a studiare con Codecademy e di poter iniziare a sviluppare siti o altro.</p><p style="text-align: justify;">Dopo dovrete passare settimane se non mesi a studiare in maniera più approfondita quel che Codecademy vi ha solamente introdotto.</p><p style="text-align: justify;">Cosa ne pensate? E&#8217; un valido servizio?</p><p style="text-align: justify;">Come sempre vi invito ad abbonarvi al <a href="http://feeds.fortunecat.it/geektwice-com" target="_blank">feed della sezione Hi-Tech</a> e a ricondividere il post. Alla prossima. <img src='http://www.fortunecat.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p><p style="text-decoration: none; color: #000; font-weigth: bold; text-align: right; font-size: 10px"><a href="http://www.fortunecat.it/2012/01/imparare-programmare/">Codecademy, e impari a programmare</a><br /> Fortunecat.it <a style="text-decoration: none; color: #000; font-size: 10px; font-weigth: bold; text-align: center;" href="http://www.fortunecat.it">Web Marketing</a></p></p> ]]></content:encoded> <wfw:commentRss>http://www.fortunecat.it/2012/01/imparare-programmare/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Chosen, trasformare e migliorare i select</title><link>http://www.fortunecat.it/2011/12/migliorare-form-jquery/</link> <comments>http://www.fortunecat.it/2011/12/migliorare-form-jquery/#comments</comments> <pubDate>Wed, 14 Dec 2011 07:12:53 +0000</pubDate> <dc:creator>Angelo Iasevoli aka Middleman90</dc:creator> <category><![CDATA[WebMastering]]></category> <category><![CDATA[html]]></category> <category><![CDATA[jQuery]]></category> <category><![CDATA[plugin]]></category> <category><![CDATA[select]]></category> <category><![CDATA[selezione]]></category> <category><![CDATA[usabilità]]></category> <category><![CDATA[velocità]]></category><guid isPermaLink="false">http://www.fortunecat.it/?p=12911</guid> <description><![CDATA[L&#8217;usabilità di un sito o di una webapp è ciò che può far la differenza tra un successo e un totale fallimento. L&#8217;utente non deve rendersi minimamente conto della complessità di tutto ciò che c&#8217;è dietro le azioni che sta per innescare. Prendiamo ad esempio Facebook: è molto complesso, eppure anche gli utenti più &#8220;all&#8217;antica&#8221; [...]<p><p style="text-decoration: none; color: #000; font-weigth: bold; text-align: right; font-size: 10px"><a href="http://www.fortunecat.it/2011/12/migliorare-form-jquery/">Chosen, trasformare e migliorare i select</a><br /> Fortunecat.it <a style="text-decoration: none; color: #000; font-size: 10px; font-weigth: bold; text-align: center;" href="http://www.fortunecat.it">Web Marketing</a></p></p> ]]></description> <content:encoded><![CDATA[<p>L&#8217;usabilità di un sito o di una webapp è ciò che può far la differenza tra un successo e un totale fallimento. L&#8217;utente non deve rendersi minimamente conto della complessità di tutto ciò che c&#8217;è dietro le azioni che sta per innescare.</p><p>Prendiamo ad esempio Facebook: è molto complesso, eppure anche gli utenti più &#8220;all&#8217;antica&#8221; riescono ad utilizzarlo senza problemi. Forse è stata proprio questa una delle chiavi della sua incredibile diffusione.</p><p><span style="color: #e82c2b;"><strong>Il Fattore Tempo</strong></span></p><p>Uno dei fattori che caratterizza l&#8217;usabilità di un sito è il tempo impiegato dall&#8217;utente per compiere un&#8217;azione. Se ad esempio la registrazione è troppo lunga, aumenterà il tempo necessario al suo completamento e con esso le probabilità di un ripensamento dell&#8217;utente (ossia: perdiamo potenziali clienti).<br /> <img class="alignright size-full wp-image-12966" title="Rage Guy" src="http://www.fortunecat.it/wp-content/uploads/2011/12/fffuuuu.jpg" alt="" width="200" height="150" /><br /> Vi sarà sicuramente capitato, durante una registrazione, di dover scegliere la vostra nazionalità&#8230;</p><p>Personalmente clicco ripetutamente la &#8220;i&#8221; sulla tastiera per arrivare velocemente alla voce &#8220;Italia&#8221;, ma cosa succede il 70% delle volte?</p><p>Salto ciò che vorrei selezionare e ricomincio dalla prima &#8220;i&#8221;. Per farvi comprendere come mi sento quando succede, pensate al meme &#8221;Rage Guy&#8221;.</p><p><span style="color: #e82c2b;"><strong>Migliorare i campi select dei form con jQuery e Chosen</strong></span></p><p>E&#8217; proprio dei select che voglio parlare oggi. Se i valori tra cui scegliere sono al massimo una decina, allora non c&#8217;è problema, riusciamo ancora a selezionare ciò che ci serve evitando inutili perdite di tempo.</p><p>Cosa succede se invece le voci sono tante quanto gli stati del mondo? Qui qualche problemino lo incontriamo ma ci siamo &#8211; se non abituati &#8211; rassegnati.</p><p>Come possiamo risolvere questo problema che colpisce le nostre creazioni? Come donare ai nostri utenti un&#8217;esperienza innovativa e rilassante? Semplice, usando un plugin <strong>jQuery</strong> creato appositamente per risolvere questo tipo di problema: <strong>Chosen</strong>.</p><p><img class="aligncenter size-full wp-image-12961" title="chosen" src="http://www.fortunecat.it/wp-content/uploads/2011/12/chosen1.jpg" alt="" width="600" height="273" /></p><p>Chosen trasformerà gli odiosi select chilometrici in graziosi select contenenti un campo per il filtraggio che ci consentirà di trovare e selezionare ciò che vogliamo.</p><p>Anche i select multipli si trasformeranno dandoci l&#8217;impressione di &#8220;taggare&#8221; ciò che intendiamo selezionare.</p><p>Per avere questo gioiellino sui nostri siti basterà incorporare jQuery ed il file contenente lo script di Chosen. Tutto ciò che vi serve, compreso anche un esempio, lo trovate qui: <a href="https://github.com/harvesthq/chosen" target="_blank">https://github.com/harvesthq/chosen</a>.</p><p>Diverse demo, invece, sono disponibili qui: <a href="http://harvesthq.github.com/chosen/" target="_blank">http://harvesthq.github.com/chosen</a>.</p><p>Il select che avrà la fortuna di ricevere il miglioramento dovrà essere del tipo:</p><pre>&lt;select data-placeholder="TESTO MOSTRATO QUANDO E' VUOTO." style="width:350px;" class="chzn-select""&gt;</pre><p>Ovviamente le dimensioni sono arbitrarie.</p><p>Per invocare il plugin basterà scrivere:</p><pre>$(".chzn-select").chosen({no_results_text: "TESTO MOSTRATO QUANDO LA RICERCA NON PRODUCE RISULTATI"});</pre><p>Credo che d&#8217;ora in poi utilizzerò sempre questo plugin per evitare &#8220;disastri da select&#8221;. Conoscete qualche sistema alternativo?</p><p>Come sempre vi invito ad abbonarvi al <a href="http://feeds.fortunecat.it/geektwice-com" target="_blank">feed della sezione Hi-Tech</a> e a ricondividere il post sui social. <img src='http://www.fortunecat.it/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p><p><p style="text-decoration: none; color: #000; font-weigth: bold; text-align: right; font-size: 10px"><a href="http://www.fortunecat.it/2011/12/migliorare-form-jquery/">Chosen, trasformare e migliorare i select</a><br /> Fortunecat.it <a style="text-decoration: none; color: #000; font-size: 10px; font-weigth: bold; text-align: center;" href="http://www.fortunecat.it">Web Marketing</a></p></p> ]]></content:encoded> <wfw:commentRss>http://www.fortunecat.it/2011/12/migliorare-form-jquery/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>MotionCAPTCHA, l&#8217;antispam geometrico</title><link>http://www.fortunecat.it/2011/11/motion-captcha-anti-spam/</link> <comments>http://www.fortunecat.it/2011/11/motion-captcha-anti-spam/#comments</comments> <pubDate>Wed, 23 Nov 2011 07:02:56 +0000</pubDate> <dc:creator>Angelo Iasevoli aka Middleman90</dc:creator> <category><![CDATA[Tutorial e Risorse]]></category> <category><![CDATA[bot]]></category> <category><![CDATA[captcha]]></category> <category><![CDATA[disegnare]]></category> <category><![CDATA[jQuery]]></category> <category><![CDATA[MotionCAPTCHA]]></category> <category><![CDATA[spam]]></category><guid isPermaLink="false">http://www.fortunecat.it/?p=12881</guid> <description><![CDATA[Lo spam è forse la cosa più fastidiosa presente su internet. Bot che navigano 24 ore su 24 alla ricerca di possibili siti da riempire di spazzatura pubblicitaria. Blog, piattaforme, sistemi wiki: nessuno è al sicuro. Fortunatamente l&#8217;uomo ha trovato rimedio (o quasi) a questo problema inventando i CAPTCHA. I CAPTCHA più diffusi sono costituiti da [...]<p><p style="text-decoration: none; color: #000; font-weigth: bold; text-align: right; font-size: 10px"><a href="http://www.fortunecat.it/2011/11/motion-captcha-anti-spam/">MotionCAPTCHA, l&#8217;antispam geometrico</a><br /> Fortunecat.it <a style="text-decoration: none; color: #000; font-size: 10px; font-weigth: bold; text-align: center;" href="http://www.fortunecat.it">Web Marketing</a></p></p> ]]></description> <content:encoded><![CDATA[<p style="text-align: justify;">Lo spam è forse la cosa più fastidiosa presente su internet. Bot che navigano 24 ore su 24 alla ricerca di possibili siti da riempire di spazzatura pubblicitaria. Blog, piattaforme, sistemi wiki: nessuno è al sicuro.</p><p style="text-align: justify;">Fortunatamente l&#8217;uomo ha trovato rimedio (o quasi) a questo problema inventando i CAPTCHA.</p><p><img class="aligncenter size-full wp-image-12886" src="http://www.fortunecat.it/wp-content/uploads/2011/11/Cattura.jpg" alt="un captcha non convenzionale" width="363" height="249" /></p><p style="text-align: justify;">I CAPTCHA più diffusi sono costituiti da caratteri quasi illeggibili che dovrebbero in teoria non essere compresi dai bot. Questo è il funzionamento: semplice ma &#8211; a quanto pare &#8211; efficace.</p><p style="text-align: justify;">E se invece di usare i soliti CAPTCHA utilizzassimo qualcosa di molto meno convenzionale e sicuramente più divertente? Sto infatti per presentarvi uno plugin jQuery che vi consentirà di riconoscere gli esseri umani dai bot grazie a dei disegni tanto elementari quanto divertenti.</p><p><span style="color: #ff0000;"><strong>Chi ha detto che i CAPTCHA devono essere per forza noiosi?</strong></span></p><p style="text-align: justify;">Stiamo parlando di MotionCAPTCHA. Permetterà ai vostri utenti di dimostrare la loro &#8220;umanità&#8221; semplicemente disegnando con il mouse delle forme che il plugin stesso indicherà. <a href="http://www.josscrowcroft.com/demos/motioncaptcha/" target="_blank">Qui trovate una demo</a> realizzata dallo stesso creatore del plugin e <a href="https://github.com/josscrowcroft/MotionCAPTCHA" target="_blank">qui la repository su Github</a>.</p><p><span style="color: #ff0000;"><strong>Cominciamo</strong></span></p><p style="text-align: justify;">Per integrare nel nostro sito questo sistema sarà necessario, ovviamente, richiamare tutti i file necessari:</p><pre>&lt;script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js"&gt;&lt;/script&gt;
&lt;script src="jquery.motionCaptcha.0.2.min.js"&gt;&lt;/script&gt;
&lt;link href="jquery.motionCaptcha.0.2.css"&gt;&lt;/script&gt;</pre><p style="text-align: justify;">Chiaramente bisognerà cambiare la directory in base alle proprie esigenze. Il file jquery.min.js è stato preso dai server di Google. I file richiesti nella seconda e terza riga li trovate andando nella repository su Github.</p><p><span style="color: #ff0000;"><strong>Il Form</strong></span></p><p style="text-align: justify;">Per creare il form ci serviremo del solito codice html:</p><pre>&lt;form action="#" id="MioForm" method="post"&gt;</pre><p style="text-align: justify;">A questo punto riempiamolo con tutti gli input che servono a noi (magari un email ed il commento per un post). Per aggiungere il CAPTCHA &#8220;speciale&#8221; bisogna inserire le seguenti righe di html:</p><pre>&lt;div id="mc"&gt;
    &lt;p&gt;Dimostra che sei umano, disegna la forma che vedi qui sotto:&lt;/p&gt;
    &lt;canvas id="mc-canvas"&gt;&lt;/canvas&gt;
&lt;/div&gt;</pre><p style="text-align: justify;">Ora aggiungiamo il pulsante disabilitato (che si attiverà al superamento della prova) e poi un input nascosto che contenga l&#8217;action del nostro form:</p><pre>&lt;input type="submit" disabled="disabled" value="Submit Form" /&gt;
&lt;input type="hidden" id="fairly-unique-id" value="submitform.php" /&gt;</pre><p><span style="color: #ff0000;"><strong>Il jQuery</strong></span></p><p style="text-align: justify;">Non ci rimane altro da fare che collegare il tutto e vedere il risultato. Per permettere al form di essere riconosciuto dal plugin usate le seguenti righe di codice javascript:</p><pre>$('#MioForm').motioncaptcha({
    action: '#fairly-unique-id'
});</pre><p style="text-align: justify;">Questa qui sopra è la versione più semplice, con tutti i parametri lasciati di default. Ci sono però altre impostazioni con cui poter giocare, ecco un esempio alternativo:</p><pre>$('#MioForm').motioncaptcha({
    // Basics:
    action: '#mc-action',        // L'ID dell'input contenente l'action
    divId: '#mc',                // L'ID del div contenente il CAPTCHA
    cssClass: '.mc-active',      // La classe CSS applicata quando #mc è attivo
    canvasId: '#mc-canvas',      // l'ID dell'elemento canvas MotionCAPTCHA

    // Un array contenente tutte le forme consentite:
    shapes: ['triangle', 'x', 'rectangle', 'circle', 'check', 'caret', 'zigzag', 'arrow', 'leftbracket', 'rightbracket', 'v', 'delete', 'star', 'pigtail'],

    // I messaggi mostrati:
    errorMsg: 'Prova ancora.',
    successMsg: 'Captcha superato!',

    // Messaggio mostrato se il browser non supporta il plugin:
    noCanvasMsg: "il tuo browser non supporta le canvas - prova Chrome, FF4, Safari o IE9."
});</pre><p style="text-align: justify;">Credo sia tutto, conoscete  altri metodi per provare che il vostro utente è costituito da materia organica?</p><p style="text-align: justify;">Come sempre vi invito ad abbonarvi al feed della <a href="http://feeds.fortunecat.it/geektwice-com" target="_blank">sezione Hi-Tech</a>. Alla prossima! <img src='http://www.fortunecat.it/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p><p><p style="text-decoration: none; color: #000; font-weigth: bold; text-align: right; font-size: 10px"><a href="http://www.fortunecat.it/2011/11/motion-captcha-anti-spam/">MotionCAPTCHA, l&#8217;antispam geometrico</a><br /> Fortunecat.it <a style="text-decoration: none; color: #000; font-size: 10px; font-weigth: bold; text-align: center;" href="http://www.fortunecat.it">Web Marketing</a></p></p> ]]></content:encoded> <wfw:commentRss>http://www.fortunecat.it/2011/11/motion-captcha-anti-spam/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Trasformare una data in tempo Unix in PHP</title><link>http://www.fortunecat.it/2011/11/convertire-data-timestamp-php/</link> <comments>http://www.fortunecat.it/2011/11/convertire-data-timestamp-php/#comments</comments> <pubDate>Wed, 16 Nov 2011 07:00:53 +0000</pubDate> <dc:creator>Angelo Iasevoli aka Middleman90</dc:creator> <category><![CDATA[Tutorial e Risorse]]></category> <category><![CDATA[data]]></category> <category><![CDATA[ora]]></category> <category><![CDATA[tempo]]></category> <category><![CDATA[time]]></category> <category><![CDATA[unix]]></category><guid isPermaLink="false">http://www.fortunecat.it/?p=12768</guid> <description><![CDATA[Avere a che fare con le date è una delle situazioni più comuni quando si realizza un&#8217;applicazione. C&#8217;è spesso la necessità di capire in che ordine due eventi sono avvenuti l&#8217;uno rispetto all&#8217;altro. Questo è un esempio elementare, ma si possono trovare situazioni molto più complesse come ad esempio quelle riscontrabili durante la realizzazione di un&#8217;agenda. [...]<p><p style="text-decoration: none; color: #000; font-weigth: bold; text-align: right; font-size: 10px"><a href="http://www.fortunecat.it/2011/11/convertire-data-timestamp-php/">Trasformare una data in tempo Unix in PHP</a><br /> Fortunecat.it <a style="text-decoration: none; color: #000; font-size: 10px; font-weigth: bold; text-align: center;" href="http://www.fortunecat.it">Web Marketing</a></p></p> ]]></description> <content:encoded><![CDATA[<p style="text-align: justify;">Avere a che fare con le date è una delle situazioni più comuni quando si realizza un&#8217;applicazione. C&#8217;è spesso la necessità di capire in che ordine due eventi sono avvenuti l&#8217;uno rispetto all&#8217;altro.</p><p style="text-align: justify;">Questo è un esempio elementare, ma si possono trovare situazioni molto più complesse come ad esempio quelle riscontrabili durante la realizzazione di un&#8217;agenda.</p><p style="text-align: center;"><img class="size-medium wp-image-12790 aligncenter" title="Tempo" src="http://www.fortunecat.it/wp-content/uploads/2011/10/on-time_clock_1-300x200.jpg" alt="orologi" width="300" height="200" /></p><p style="text-align: justify;">Salvare in un database una data in formato &#8220;umano&#8221; non è una buona mossa.</p><p style="text-align: justify;">Diventerà difficile ordinare le tabelle utilizzando una colonna costituita da date (es.: &#8217;22/07/1990&#8242;). Come possiamo cavarcela in maniera elegante ed efficiente? Semplice: utilizzando il tempo Unix (i secondi trascorsi dal 1° gennaio 1970).</p><p style="text-align: justify;">Vedremo di creare 2 funzioni capaci di trasformare una data in tempo Unix e di riconvertire quest&#8217;ultimo in tempo umano.</p><p><strong>La funzione DaiTempoUnix</strong></p><p style="text-align: justify;">Creiamo innanzitutto la funzione che a partire da data ed ora ci restituisce il tanto adorato tempo Unix.</p><p style="text-align: justify;">Si tratterà di una funzione che in entrata richiede solamente due campi: data ed ora.</p><pre>&lt;?
function DaiTempoUnix($data,$ora){

$data_arr = explode("/", $data); //ricaviamo un array dalla data

$ora_arr = explode(":", $ora);  //ricaviamo un array dall'ora

$secondi = $ora_arr[2];
if(!$ora_arr[2]) $secondi =0; //serve nel caso in cui non siano stati scritti i secondi (spesso non sono considerati)

$UnixTime = mktime($ora_arr[0], $ora_arr[1], $secondi, $data_arr[1], $data_arr[0], $data_arr[2]); //mktime ci consente di ottenere il time Unix corrispondente alla data

return $UnixTime;

}

$TempoUnix = DaiTempoUnix("22/07/1990", "13:12:24"); // esempio di richiamo della funzione
?&gt;</pre><p style="text-align: justify;">Nella funzione si è ipotizzato che le componenti della data siano separate da &#8220;/&#8221; e le componenti dell&#8217;ora da &#8220;:&#8221;. Per impostare altri simboli basterà applicare una piccola modifica all&#8217;explode.</p><p>Passiamo ora alla seconda funzione.</p><p><strong>La funzione DaiData</strong></p><p style="text-align: justify;">Questa funzione è anche più semplice della prima. In ingresso avrà il tempo Unix mentre in uscita conterrà un array con due valori: data ed ora.</p><pre>&lt;?
function DaiData($UnixTime){

$data = date("d/m/Y", $UnixTime); //da time unix a data
$ora = date("H:i:s", $UnixTime);//da time unix a ora
$row_data = array('data' =&gt; $data, 'ora' =&gt; $ora); // Creo l'array
return $row_data;

}

$row_data = DaiData("1033902472"); //esempio di utilizzo della funzione

$data = $row_data[data];
$ora = $row_data[ora];

?&gt;</pre><p style="text-align: justify;">Come potete vedere sono bastate pochissime righe di codice.</p><p style="text-align: justify;">Utilizzando queste due funzioni sarà più semplice organizzare e gestire le date nelle nostre applicazioni. Forse l&#8217;unica nota dolente che vale la pena citare è che questo script potrebbe dare problemi dal 19 gennaio 2038 alle ore 03:14:08 (GMT).</p><p style="text-align: justify;">In quel giorno, infatti, il tempo unix raggiungerà i 2<sup>31</sup> caratteri (troppi per i sistemi operativi a 32bit). Questo evento è noto come <strong>Bug dell&#8217;anno 2038</strong>.</p><p style="text-align: justify;">Conoscete altre soluzioni? <img src='http://www.fortunecat.it/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /></p><p style="text-align: justify;">PS: Perdonate la scarsa fantasia dimostrata nel dare un nome alle due funzioni&#8230; <img src='http://www.fortunecat.it/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p><p><p style="text-decoration: none; color: #000; font-weigth: bold; text-align: right; font-size: 10px"><a href="http://www.fortunecat.it/2011/11/convertire-data-timestamp-php/">Trasformare una data in tempo Unix in PHP</a><br /> Fortunecat.it <a style="text-decoration: none; color: #000; font-size: 10px; font-weigth: bold; text-align: center;" href="http://www.fortunecat.it">Web Marketing</a></p></p> ]]></content:encoded> <wfw:commentRss>http://www.fortunecat.it/2011/11/convertire-data-timestamp-php/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Fortunecat e Pixmac: 100 immagini free in regalo!</title><link>http://www.fortunecat.it/2011/11/fortunecat-pixmac-immagini-free/</link> <comments>http://www.fortunecat.it/2011/11/fortunecat-pixmac-immagini-free/#comments</comments> <pubDate>Tue, 08 Nov 2011 08:45:31 +0000</pubDate> <dc:creator>Michele Caivano aka Fortunecat</dc:creator> <category><![CDATA[WebMastering]]></category><guid isPermaLink="false">http://www.fortunecat.it/?p=12827</guid> <description><![CDATA[Essere un lettore di Fortunecat.it ha i suoi vantaggi. Grazie ad una partnership con Pixmac.it, ti regaliamo ben 100 crediti corrispondenti a 100 immagini royalty free da utilizzare nel tuo sito o blog. Pixmac è un noto servizio di microstock, dotato di un archivio di ben 11 milioni di foto da scaricare. Vuoi ricevere i 100 crediti [...]<p><p style="text-decoration: none; color: #000; font-weigth: bold; text-align: right; font-size: 10px"><a href="http://www.fortunecat.it/2011/11/fortunecat-pixmac-immagini-free/">Fortunecat e Pixmac: 100 immagini free in regalo!</a><br /> Fortunecat.it <a style="text-decoration: none; color: #000; font-size: 10px; font-weigth: bold; text-align: center;" href="http://www.fortunecat.it">Web Marketing</a></p></p> ]]></description> <content:encoded><![CDATA[<p>Essere un lettore di Fortunecat.it ha i suoi vantaggi. Grazie ad una partnership con <a href="http://www.pixmac.it/" target="_blank">Pixmac.it</a>, ti regaliamo ben <strong>100 crediti</strong> corrispondenti a <span style="text-decoration: underline;">100 immagini royalty free</span> da utilizzare nel tuo sito o blog.</p><p><img class="aligncenter size-full wp-image-12853" title="pixmac logo" src="http://www.fortunecat.it/wp-content/uploads/2011/11/pixmac.com-logo.jpg" alt="" width="389" height="107" /></p><p><strong>Pixmac</strong> è un noto servizio di microstock, dotato di un archivio di ben 11 milioni di foto da scaricare. Vuoi ricevere i 100 crediti gratuiti? Nulla di più semplice, ti basta partecipare al nostro <span style="text-decoration: underline;">contest</span>.</p><p>Per iscriverti è necessario seguire questa semplicissima procedura:</p><ol><li>Segui <a href="http://twitter.com/fortunecat_it" target="_blank">@fortunecat_it</a> e <a href="http://twitter.com/PixmacIT" target="_blank">@PixmacIT</a> su Twitter.</li><li>Ritwitta questo articolo.</li></ol><p>Il vincitore verrà estratto il  <strong>22 Novembre</strong>, quindi stay tuned. <img src='http://www.fortunecat.it/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p><p><p style="text-decoration: none; color: #000; font-weigth: bold; text-align: right; font-size: 10px"><a href="http://www.fortunecat.it/2011/11/fortunecat-pixmac-immagini-free/">Fortunecat e Pixmac: 100 immagini free in regalo!</a><br /> Fortunecat.it <a style="text-decoration: none; color: #000; font-size: 10px; font-weigth: bold; text-align: center;" href="http://www.fortunecat.it">Web Marketing</a></p></p> ]]></content:encoded> <wfw:commentRss>http://www.fortunecat.it/2011/11/fortunecat-pixmac-immagini-free/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Come creare linee diagonali con il CSS</title><link>http://www.fortunecat.it/2011/10/linee-diagonali-css/</link> <comments>http://www.fortunecat.it/2011/10/linee-diagonali-css/#comments</comments> <pubDate>Mon, 31 Oct 2011 06:24:39 +0000</pubDate> <dc:creator>Angelo Iasevoli aka Middleman90</dc:creator> <category><![CDATA[Tutorial e Risorse]]></category> <category><![CDATA[CSS]]></category> <category><![CDATA[diagonali]]></category> <category><![CDATA[elementi]]></category><guid isPermaLink="false">http://www.fortunecat.it/?p=12711</guid> <description><![CDATA[A causa di una connessione non sempre velocissima, i webdesigner sono costretti spesso a trovare dei metodi alternativi per ridurre il tempo di download del sito. La fetta più grande dei tempi di caricamento, solitamente, è occupata dalle immagini. Ci sono immagini ad alta risoluzione come le foto (e in quei casi più che comprimere [...]<p><p style="text-decoration: none; color: #000; font-weigth: bold; text-align: right; font-size: 10px"><a href="http://www.fortunecat.it/2011/10/linee-diagonali-css/">Come creare linee diagonali con il CSS</a><br /> Fortunecat.it <a style="text-decoration: none; color: #000; font-size: 10px; font-weigth: bold; text-align: center;" href="http://www.fortunecat.it">Web Marketing</a></p></p> ]]></description> <content:encoded><![CDATA[<p style="text-align: justify;">A causa di una connessione <strong>non sempre velocissima</strong>, i webdesigner sono costretti spesso a trovare dei metodi alternativi per ridurre il tempo di download del sito. La fetta più grande dei tempi di caricamento, solitamente, è occupata dalle immagini.</p><p style="text-align: justify;">Ci sono immagini ad alta risoluzione come le foto (e in quei casi più che comprimere non si può fare niente) ed immagini che appartengono alla categoria delle componenti grafiche del sito come ad esempio: pulsanti, icone, ecc&#8230;</p><p style="text-align: justify;">In questo post vedremo come creare degli elementi diagonali in <strong>puro codice CSS</strong>, senza l&#8217;uso di alcuna immagine. Il risultato finale sarà il seguente:</p><p><img class="aligncenter size-medium wp-image-12724" src="http://www.fortunecat.it/wp-content/uploads/2011/10/risultato-300x213.jpg" alt="risultato" width="300" height="213" /></p><p style="text-align: justify;">Per crearlo useremo un &#8220;accrocco&#8221; con i bordi. Se ci riflettete tra un bordo inferiore ed un bordo laterale si crea una linea di separazione che guarda caso è diagonale! Ecco un esempio di due bordi colorati in modo diverso per rendere visibile quanto appena descritto.</p><p><img class="aligncenter size-full wp-image-12718" src="http://www.fortunecat.it/wp-content/uploads/2011/10/bordi.jpg" alt="bordi e diagonale" width="229" height="131" /></p><p style="text-align: justify;">Probabilmente avrete già intuito che basterà rendere invisibile il bordo rosso ed il gioco è fatto. Vediamo ora passo passo cosa bisogna fare per ottenere questo effetto.</p><p><span style="color: #e82c2b;"><strong>HTML</strong></span></p><p style="text-align: justify;">Come prima cosa scriviamo l&#8217;HTML necessario a tenere in piedi la struttura:</p><pre>&lt;html&gt;
 &lt;head&gt;
 &lt;meta charset="utf-8"&gt;
 &lt;/head&gt;
 &lt;body&gt;
 &lt;a href="#"&gt;Titolo Paletta&lt;/a&gt;
 &lt;div&gt;
 &lt;p&gt;
 Lorem Ipsum è un testo segnaposto utilizzato nel settore della tipografia e della stampa. Lorem Ipsum è considerato il testo segnaposto standard sin dal sedicesimo secolo, quando un anonimo tipografo prese una cassetta di caratteri e li assemblò per preparare un testo campione. È sopravvissuto non solo a più di cinque secoli, ma anche al passaggio alla videoimpaginazione, pervenendoci sostanzialmente inalterato. Fu reso popolare, negli anni ’60, con la diffusione dei fogli di caratteri trasferibili “Letraset”, che contenevano passaggi del Lorem Ipsum, e più recentemente da software di impaginazione come Aldus PageMaker, che includeva versioni del Lorem Ipsum.
 &lt;/p&gt;
 &lt;/div&gt;
 &lt;/body&gt;
&lt;/html&gt;</pre><p style="text-align: justify;">Come potete vedere nulla di complicato. C&#8217;è un div che contiene il testo ed un link che rappresenta il nostro elemento diagonale.</p><p><span style="color: #e82c2b;"><strong>CSS</strong></span></p><p style="text-align: justify;">Nel foglio di stile inseriremo le regole relative al div ed al link.</p><pre>a {
 padding: 10px;
 text-decoration: none;
 color: white;
 font-weight: bold;
 text-shadow: 0 1px 0 #005E91;
 border-right: 25px solid transparent;
 border-bottom: 25px solid #47BDFC;
 margin-bottom: -4px;
 height: 0;
 }
div {
 border: 1px solid #47BDFC;
 border-top: 2px solid #47BDFC;
 padding: 20px;
 width:400px;
 }</pre><p style="text-align: justify;">E&#8217; stata creata la paletta ed un sottile bordo che contiene il testo d&#8217;esempio. Il risultato però è ancora troppo lontano dalle nostre aspettative:</p><p><img class="aligncenter size-medium wp-image-12722" src="http://www.fortunecat.it/wp-content/uploads/2011/10/errore-bordi-300x98.jpg" alt="errore bordi" width="300" height="98" /></p><p style="text-align: justify;">Mancano un paio di regole che costringano il titolo (elemento &#8220;<span style="text-decoration: underline;">a</span>&#8221; nel css) a rimanere all&#8217;interno del suo spazio:</p><pre>line-height:50px;
display: inline-block;</pre><p style="text-align: justify;">A questo punto il risultato sarà ottimale come visto ad inizio post. Qui potrete trovare una versione interattiva di quanto appena presentato: <a href="http://jsfiddle.net/middleman90/gBrGE/1/" target="_blank">http://jsfiddle.net/middleman90/gBrGE/1/</a></p><p>Conoscete un metodo alternativo? <img src='http://www.fortunecat.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p>Ricordatevi di condividere il post e di abbonarvi al feed della <a href="http://feeds.fortunecat.it/geektwice-com" target="_blank">sezione Hi-Tech</a> per scoprire nuovi trucchi per migliorare i vostri siti web. <img src='http://www.fortunecat.it/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p><p><p style="text-decoration: none; color: #000; font-weigth: bold; text-align: right; font-size: 10px"><a href="http://www.fortunecat.it/2011/10/linee-diagonali-css/">Come creare linee diagonali con il CSS</a><br /> Fortunecat.it <a style="text-decoration: none; color: #000; font-size: 10px; font-weigth: bold; text-align: center;" href="http://www.fortunecat.it">Web Marketing</a></p></p> ]]></content:encoded> <wfw:commentRss>http://www.fortunecat.it/2011/10/linee-diagonali-css/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Come creare pulsanti in 3D utilizzando il CSS3</title><link>http://www.fortunecat.it/2011/10/pulsanti-css3-3d/</link> <comments>http://www.fortunecat.it/2011/10/pulsanti-css3-3d/#comments</comments> <pubDate>Wed, 12 Oct 2011 07:24:47 +0000</pubDate> <dc:creator>Angelo Iasevoli aka Middleman90</dc:creator> <category><![CDATA[WebMastering]]></category> <category><![CDATA[3D]]></category> <category><![CDATA[CSS]]></category> <category><![CDATA[CSS3]]></category> <category><![CDATA[grafica]]></category> <category><![CDATA[pulsante]]></category> <category><![CDATA[rilievo]]></category><guid isPermaLink="false">http://www.fortunecat.it/?p=12679</guid> <description><![CDATA[I web designers stanno cominciando a tenere in minor conto la compatibilità del loro codice con i browser più antichi. Molti iniziano ad introdurre piccoli stralci di CSS3. Magari non lo utilizzano per la grafica dell&#8217;intero sito ma &#8211; almeno per il momento &#8211; solo per le parti più piccole, in modo da non creare [...]<p><p style="text-decoration: none; color: #000; font-weigth: bold; text-align: right; font-size: 10px"><a href="http://www.fortunecat.it/2011/10/pulsanti-css3-3d/">Come creare pulsanti in 3D utilizzando il CSS3</a><br /> Fortunecat.it <a style="text-decoration: none; color: #000; font-size: 10px; font-weigth: bold; text-align: center;" href="http://www.fortunecat.it">Web Marketing</a></p></p> ]]></description> <content:encoded><![CDATA[<p>I web designers stanno cominciando a tenere in minor conto la compatibilità del loro codice con i browser più antichi. Molti iniziano ad introdurre piccoli stralci di <strong>CSS3</strong>.</p><p>Magari non lo utilizzano per la grafica dell&#8217;intero sito ma &#8211; almeno per il momento &#8211; solo per le parti più piccole, in modo da non creare un sito completamente illeggibile su Internet Explorer e simili.</p><p>In questo post vedremo come creare un <strong>pulsante in 3D</strong> utilizzando le regole CSS3.</p><p><span style="color: #e82c2b;"><strong>La base: definiamo un div</strong></span></p><p>Per creare il nostro pulsante 3D partiremo da un semplice div contenente un link.</p><pre>&lt;div class="button"&gt;&lt;a href="#"&gt;FortuneCat&lt;/a&gt;&lt;/div&gt;</pre><p>Cominciamo a scrivere le prime regole che renderanno visibile il pulsante.</p><pre>.button a {
 padding: 4px 15px 7px 15px;
 width: auto;
 height: auto;
 background: #0099FF;
 color: #fff;
 font-family: Arial, Helvetica, sans-serif;
 font-size: 16px;
 font-weight: bold;
 font-style: normal;
 text-decoration: none;
 cursor: pointer;
 }</pre><p>Per il momento il risultato è questo (decisamente inguardabile):</p><p><img class="aligncenter size-full wp-image-12684" src="http://www.fortunecat.it/wp-content/uploads/2011/09/button_3d_1.jpg" alt="" width="248" height="167" /><span style="color: #e82c2b;"><strong>Il Rilievo</strong></span></p><p>Ora proviamo a dare un po&#8217; di forme e a donare la terza dimensione a questo povero div inanimato. Per farlo bisogna inserire altre regole al link nel div. Prima di tutto leviamo quei fastidiosi spigoli e sostituiamoli con una bella rotondità a 2 pixel.</p><pre> border-radius: 2px;
 -webkit-border-radius: 2px;
 -moz-border-radius: 2px;
 -o-border-radius: 2px;
 -ms-border-radius: 2px;
 border: 1px solid rgba(0,0,0,0.50);
 border-top: 1px solid rgba(0,0,0,0.001);</pre><p>La parte più delicata è la creazione delle ombre. Qui si gioca la riuscita dell&#8217;effetto rilievo: usare l&#8217;ombra inferiore per dare l&#8217;impressione che il pulsante esca fuori dal monitor (poi ci sono anche altre ombre &#8220;ambientali&#8221; per completare l&#8217;effetto volume).</p><pre> box-shadow: 0 0 10px rgba(0,0,0,0.35), 0px 1px 3px rgba(0,0,0,0.18), inset 0px -3px 0pxrgba(0,0,0,0.35), inset 0px 14px 14px rgba(255,255,255,0.10);
 -webkit-box-shadow: 0 0 10px rgba(0,0,0,0.35), 0px 1px 3px rgba(0,0,0,0.18), inset 0px -3px 0pxrgba(0,0,0,0.35), inset 0px 14px 14px rgba(255,255,255,0.10);
 -moz-box-shadow: 0 0 10px rgba(0,0,0,0.35), 0px 1px 3px rgba(0,0,0,0.18), inset 0px -3px 0pxrgba(0,0,0,0.35), inset 0px 14px 14px rgba(255,255,255,0.10);
 -o-box-shadow: 0 0 10px rgba(0,0,0,0.35), 0px 1px 3px rgba(0,0,0,0.18), inset 0px -3px 0pxrgba(0,0,0,0.35), inset 0px 14px 14px rgba(255,255,255,0.10);
 -ms-box-shadow: 0 0 10px rgba(0,0,0,0.35), 0px 1px 3px rgba(0,0,0,0.18), inset 0px -3px 0pxrgba(0,0,0,0.35), inset 0px 14px 14px rgba(255,255,255,0.10);
 cursor: pointer;
 }</pre><p>Infine aggiungiamo anche il rilievo al testo come ciliegina sulla torta.</p><pre> text-shadow: 0 -1px 1px rgba(0,0,0,0.50);</pre><p>A questo punto già si può vedere un bel risultato.</p><p style="text-align: center;"><img class="aligncenter size-full wp-image-12688" src="http://www.fortunecat.it/wp-content/uploads/2011/09/button_3d_2.jpg" alt="" width="234" height="139" /></p><p><span style="color: #e82c2b;"><strong>Il Passaggio del Mouse ed il Click</strong></span></p><p>Ora che il pulsante è pronto bisogna aggiungere gli effetti al passaggio del mouse ed al click. Ovviamente il tasto potrebbe già funzionare così, ma questi effetti renderanno l&#8217;elemento più usabile e divertente.</p><p>Vediamo prima l&#8217;effetto al passaggio del mouse.</p><pre>.button a:hover {
 box-shadow: 0 0 10px rgba(0,0,0,0.35), 0px 1px 3px rgba(0,0,0,0.18), inset 0px -3px 0pxrgba(0,0,0,0.35), inset 0px 14px 14px rgba(255,255,255,0.25);
 -webkit-box-shadow: 0 0 10px rgba(0,0,0,0.35), 0px 1px 3px rgba(0,0,0,0.18), inset 0px -3px 0pxrgba(0,0,0,0.35), inset 0px 14px 14px rgba(255,255,255,0.25);
 -moz-box-shadow: 0 0 10px rgba(0,0,0,0.35), 0px 1px 3px rgba(0,0,0,0.18), inset 0px -3px 0pxrgba(0,0,0,0.35), inset 0px 14px 14px rgba(255,255,255,0.25);
 -o-box-shadow: 0 0 10px rgba(0,0,0,0.35), 0px 1px 3px rgba(0,0,0,0.18), inset 0px -3px 0pxrgba(0,0,0,0.35), inset 0px 14px 14px rgba(255,255,255,0.25);
 -ms-box-shadow: 0 0 10px rgba(0,0,0,0.35), 0px 1px 3px rgba(0,0,0,0.18), inset 0px -3px 0pxrgba(0,0,0,0.35), inset 0px 14px 14px rgba(255,255,255,0.25);
 -webkit-animation: glow 1s infinite ease-in-out;
 cursor: pointer;
 }</pre><p>Qui invece l&#8217;effetto al click.</p><pre>.button a:active {
 padding: 6px 15px 5px 15px;
 border-top: 1px solid rgba(0,0,0,0.55);
 box-shadow: 0 0 10px rgba(0,0,0,0.35), 0px 2px 1px rgba(255,255,255,0.50), inset 0px 1px 4pxrgba(0,0,0,0.35), inset 0px -14px 14px rgba(255,255,255,0.10);
 -webkit-box-shadow: 0 0 10px rgba(0,0,0,0.35), 0px 2px 1px rgba(255,255,255,0.50), inset 0px 1px4px rgba(0,0,0,0.35), inset 0px -14px 14px rgba(255,255,255,0.10);
 -moz-box-shadow: 0 0 10px rgba(0,0,0,0.35), 0px 2px 1px rgba(255,255,255,0.50), inset 0px 1px 4pxrgba(0,0,0,0.35), inset 0px -14px 14px rgba(255,255,255,0.10);
 -o-box-shadow: 0 0 10px rgba(0,0,0,0.35), 0px 2px 1px rgba(255,255,255,0.50), inset 0px 1px 4pxrgba(0,0,0,0.35), inset 0px -14px 14px rgba(255,255,255,0.10);
 -ms-box-shadow: 0 0 10px rgba(0,0,0,0.35), 0px 2px 1px rgba(255,255,255,0.50), inset 0px 1px 4pxrgba(0,0,0,0.35), inset 0px -14px 14px rgba(255,255,255,0.10);
 -webkit-animation: none;
 cursor: pointer !important;
 position:relative;
 top:2px;
 }</pre><p>Il risultato finale è visibile ed editabile a questo indirizzo: <a href="http://jsfiddle.net/middleman90/qL23s/8/" target="_blank">link</a>.</p><p>Conoscete qualche altro metodo per creare un pulsante 3D?</p><p>Nei prossimi post continueremo ad esplorare le possibilità offerte dal CSS, quindi vi consiglio di abbonarvi al <a href="http://feeds.fortunecat.it/geektwice-com" target="_blank">feed della sezione Hi-Tech</a>. <img src='http://www.fortunecat.it/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p><p><p style="text-decoration: none; color: #000; font-weigth: bold; text-align: right; font-size: 10px"><a href="http://www.fortunecat.it/2011/10/pulsanti-css3-3d/">Come creare pulsanti in 3D utilizzando il CSS3</a><br /> Fortunecat.it <a style="text-decoration: none; color: #000; font-size: 10px; font-weigth: bold; text-align: center;" href="http://www.fortunecat.it">Web Marketing</a></p></p> ]]></content:encoded> <wfw:commentRss>http://www.fortunecat.it/2011/10/pulsanti-css3-3d/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>jQuery e gli elementi creati dinamicanente</title><link>http://www.fortunecat.it/2011/09/form-dinamico-jquery/</link> <comments>http://www.fortunecat.it/2011/09/form-dinamico-jquery/#comments</comments> <pubDate>Wed, 21 Sep 2011 07:40:59 +0000</pubDate> <dc:creator>Angelo Iasevoli aka Middleman90</dc:creator> <category><![CDATA[Tutorial e Risorse]]></category> <category><![CDATA[dinamico]]></category> <category><![CDATA[elementi]]></category> <category><![CDATA[form]]></category> <category><![CDATA[jQuery]]></category> <category><![CDATA[live()]]></category><guid isPermaLink="false">http://www.fortunecat.it/?p=12660</guid> <description><![CDATA[Immaginate di creare un&#8217;applicazione che memorizza dei numeri di telefono. Non sappiamo quanti numeri l&#8217;utente abbia intenzione di salvare, ma deve essere accontentato in ogni sua necessità. Sia che abbia bisogno di registrare un solo numero sia che necessiti di memorizzarne un migliaio. L&#8217;applicazione, se è fatta come si deve, permetterà all&#8217;utente di eseguire questa [...]<p><p style="text-decoration: none; color: #000; font-weigth: bold; text-align: right; font-size: 10px"><a href="http://www.fortunecat.it/2011/09/form-dinamico-jquery/">jQuery e gli elementi creati dinamicanente</a><br /> Fortunecat.it <a style="text-decoration: none; color: #000; font-size: 10px; font-weigth: bold; text-align: center;" href="http://www.fortunecat.it">Web Marketing</a></p></p> ]]></description> <content:encoded><![CDATA[<p style="text-align: justify;">Immaginate di creare un&#8217;applicazione che memorizza dei numeri di telefono. Non sappiamo quanti numeri l&#8217;utente abbia intenzione di salvare, ma deve essere accontentato in ogni sua necessità. Sia che abbia bisogno di registrare un solo numero sia che necessiti di memorizzarne un migliaio.</p><p style="text-align: justify;">L&#8217;applicazione, se è fatta come si deve, permetterà all&#8217;utente di eseguire questa funzione restando nella stessa pagina, senza che mai questa venga ricaricata. Il modo migliore per creare un&#8217;applicazione simile è utilizzare <strong>jQuery</strong>. Grazie a questa libreria possiamo creare un <strong>form dinamico senza limiti</strong>.</p><p style="text-align: justify;"><a href="http://www.fortunecat.it/wp-content/uploads/2011/09/jquery_logo.png"><img class="aligncenter size-medium wp-image-12677" src="http://www.fortunecat.it/wp-content/uploads/2011/09/jquery_logo-300x73.png" alt="Logi jQuery" width="300" height="73" /></a></p><p style="text-align: justify;">Quando l&#8217;utente vuole inserire un nuovo numero gli basterà cliccare un tasto ed ecco fatto, il campo input è servito. Ma prevediamo anche un&#8217;altra possibilità: l&#8217;utente deve poter eliminare un campo appena creato. Sembra semplice, in fondo basta giocare con le parentele dei div e di un tastino elimina, ma non è tutto oro quel che luccica.</p><p style="text-align: justify;"><a href="http://jsfiddle.net/middleman90/ty5aV/2/" target="_blank">Qui un esempio di cosa succede</a>. I blocchi rossi sono quelli preesistenti, mentre i blu sono quelli appena creati. Cliccando su un blocco è possibile eliminarlo, ma con i blu non funziona.</p><p style="text-align: justify;">jQuery, infatti, non riesce a imporre dei comportamenti agli elementi creati dinamicamente (proprio quelli aggiunti dall&#8217;utente). Pare che il problema nasca dal fatto che gli &#8220;oggetti&#8221; nuovi non sono presenti fin all&#8217;inizio.</p><p style="text-align: justify;">Infatti, se invece di creare nuovi elementi, semplicemente li rendessimo visibili con un semplicissimo show() (devono essere sempre presenti nella pagina ed avere display:none) seguiranno tutte le regole. Questa soluzione, però, ha due importanti svantaggi:</p><ol><li>Non sarà possibile creare infiniti elementi;</li><li>I tempi di caricamento della pagina si allungano in modo direttamente proporzionale al numero degli elementi invisibili inseriti &#8220;staticamente&#8221;.</li></ol><p style="text-align: justify;">Poi diciamocelo&#8230; è un metodo decisamente barbaro. Studiando bene la documentazione, salta fuori una funzione che fa proprio al caso nostro:<strong> live()</strong>. Il nome ci aiuta a capire a cosa serve, in pratica darà vita agli elementi morti (quelli appena creati). Vediamo come funziona:</p><blockquote><p>$(&#8220;.block&#8221;).live(&#8220;mouseover&#8221;, function(){<br /> $(&#8220;.block&#8221;).click(function(){<br /> $(this).remove();<br /> });<br /> });</p></blockquote><p>Dove &#8220;block&#8221; è la classe dei div aggiunti dinamicamente. All&#8217;interno, potete vedere che c&#8217;è la funzione che dovrà eliminare il blocco al click. Il primo parametro della funzione live() ci permette di scegliere in che modo far resuscitare l&#8217;elemento. Nell&#8217;esempio è &#8220;mouseover&#8221;, ma possiamo anche scegliere &#8220;click&#8221; e &#8220;mouseout&#8221;. Il risultato è che l&#8217;utente non si accorgerà di niente, per lui tutto sarà normale, quasi non apprezzerà i nostri sforzi. <a href="http://jsfiddle.net/middleman90/QaPsB/3/" target="_blank">Qui il risultato finale</a>.</p><p>A me sembra la soluzione migliore. Ne avete altre?</p><p>Come sempre vi invito a condividere il post e ad abbonarvi al <a href="http://feeds.fortunecat.it/geektwice-com" target="_blank">feed della sezione Hi-Tech</a>. <img src='http://www.fortunecat.it/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p><p><p style="text-decoration: none; color: #000; font-weigth: bold; text-align: right; font-size: 10px"><a href="http://www.fortunecat.it/2011/09/form-dinamico-jquery/">jQuery e gli elementi creati dinamicanente</a><br /> Fortunecat.it <a style="text-decoration: none; color: #000; font-size: 10px; font-weigth: bold; text-align: center;" href="http://www.fortunecat.it">Web Marketing</a></p></p> ]]></content:encoded> <wfw:commentRss>http://www.fortunecat.it/2011/09/form-dinamico-jquery/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> </channel> </rss>
