<?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>Thu, 17 May 2012 06:50:44 +0000</lastBuildDate> <language>it</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <item><title>jQuery: inviare in ajax i parametri di un form</title><link>http://www.fortunecat.it/2012/05/jquery-ajax-form/</link> <comments>http://www.fortunecat.it/2012/05/jquery-ajax-form/#comments</comments> <pubDate>Wed, 16 May 2012 06:52:24 +0000</pubDate> <dc:creator>Angelo Iasevoli aka Middleman90</dc:creator> <category><![CDATA[Tutorial e Risorse]]></category> <category><![CDATA[ajax]]></category> <category><![CDATA[form]]></category> <category><![CDATA[javascript]]></category> <category><![CDATA[jQuery]]></category> <category><![CDATA[json]]></category><guid isPermaLink="false">http://www.fortunecat.it/?p=13503</guid> <description><![CDATA[E&#8217; sempre più difficile trovare un servizio web (se escludiamo quelli della pubblica amministrazione) che non sfrutti le tecnologie AJAX per offrire agli utenti esperienze di navigazione più fluide e veloci. Grazie al framework jQuery possiamo creare facilmente dei form che inviano in ajax i valori raccolti. Oggi vediamo come creare uno script che trasforma [...]<p><p style="text-decoration: none; color: #000; font-weigth: bold; text-align: right; font-size: 10px"><a href="http://www.fortunecat.it/2012/05/jquery-ajax-form/">jQuery: inviare in ajax i parametri di un form</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;">E&#8217; sempre più difficile trovare un servizio web (se escludiamo quelli della pubblica amministrazione) che non sfrutti le tecnologie AJAX per offrire agli utenti esperienze di navigazione più fluide e veloci. Grazie al framework jQuery possiamo creare facilmente dei form che inviano in ajax i valori raccolti.</p><p style="text-align: center;"><img class="size-full wp-image-13539 aligncenter" title="jquery" src="http://www.fortunecat.it/wp-content/uploads/2012/05/jquery_logo.jpg" alt="jquery" width="264" height="274" /></p><p style="text-align: justify;">Oggi vediamo come creare uno script che trasforma un comune form in uno &#8220;ajax style&#8221;. Cominciamo con il mostrarlo tutto per intero:</p><pre style="text-align: justify;">$('form').submit(function()
 {
 $.ajax({
 cache: false,
 type: $(this).attr('method'),
 url: $(this).attr('action'),
 data: $(this).serialize(),
 dataType: "json",
 success: function(result) {
 //cosa fare se tutto va bene
 },
 error: function() {
 //cosa fare se qualcosa va storto
 }
 });
 return false;
 });</pre><p style="text-align: justify;">Come potete vedere lo script si avvia quando il form viene inviato. Per evitare che le cose vadano come di default (il browser ci manda verso dove è indicato dall&#8217;attributo action) si mette alla fine di quest&#8217;apertura la seguente stringa di codice:</p><pre>return false;</pre><p style="text-align: justify;">Fatto ciò, viene la vera e propria &#8220;parte ajax&#8221;. Recuperiamo tutti gli attributi che servono alla funzione ajax dal form con la semplice riga di codice:</p><pre>$(this).attr('ATTRIBUTO DA RECUPERARE')</pre><p style="text-align: justify;">La funzione &#8220;serialize&#8221; serve a serializzare tutti i campi di un form usando come nome di un dato, l&#8217;attributo name dell&#8217;elemento &#8220;input&#8221;.</p><p style="text-align: justify;">Ora che la richiesta ad una pagina è stata inviata, possono accadere due cose:</p><ul><li>La pagina risponde in modo appropriato restituendo un codice in formato JSON (come indicato nella funzione ajax).</li><li>La pagina non esiste o si genera qualsiasi altro tipo d&#8217;errore. Questa eccezione viene gestita in modo da non &#8220;rompere&#8221; lo script e permettere all&#8217;utente di ricevere un feedback (così almeno può provare a  rinviare il form e non rimanere ad aspettare invano).</li></ul><p style="text-align: justify;">Se tutto va bene possiamo usare la variabile result per recuperare tutte le informazioni che ci sono state mandate dalla pagina interrogata. Se questa restituisce un valore in JSON è possibile usare i dati in esso memorizzati in questo modo:</p><pre style="text-align: justify;">result.campo</pre><p style="text-align: justify;">dove campo è proprio il campo che contiene il dato che ci serve.</p><p style="text-align: justify;">PS: in PHP per trasformare un array in JSON si usa la funzione <a href="http://php.net/manual/en/function.json-encode.php" target="_blank">json_encode</a>.</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>. 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/2012/05/jquery-ajax-form/">jQuery: inviare in ajax i parametri di un form</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/05/jquery-ajax-form/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Imparare a programmare sfruttando i tempi morti</title><link>http://www.fortunecat.it/2012/04/imparare-a-programmare/</link> <comments>http://www.fortunecat.it/2012/04/imparare-a-programmare/#comments</comments> <pubDate>Wed, 11 Apr 2012 05:59:16 +0000</pubDate> <dc:creator>Angelo Iasevoli aka Middleman90</dc:creator> <category><![CDATA[Tutorial e Risorse]]></category> <category><![CDATA[informazioni]]></category> <category><![CDATA[news]]></category> <category><![CDATA[programmazione]]></category> <category><![CDATA[risorse]]></category> <category><![CDATA[sviluppatore]]></category><guid isPermaLink="false">http://www.fortunecat.it/?p=13177</guid> <description><![CDATA[Programmare, testare, debuggare. Ripetere fin quando sembra funzionare tutto. Queste sono le fasi principali che accompagnano il lavoro di uno sviluppatore. Capita però che vi siano dei tempi &#8220;morti&#8221; tra un impegno e l&#8217;altro: come sfruttarli per imparare qualcosa e non annoiarsi? Di seguito riporto alcuni siti che visito quando non ho nulla da fare (ma [...]<p><p style="text-decoration: none; color: #000; font-weigth: bold; text-align: right; font-size: 10px"><a href="http://www.fortunecat.it/2012/04/imparare-a-programmare/">Imparare a programmare sfruttando i tempi morti</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="alignright" title="Imparare a programmare" src="https://lh4.googleusercontent.com/-kVfLeEWC-ZU/T4UaWGnyKjI/AAAAAAAACK4/HTUehSVcwaI/s800/coding.png" alt="code" width="200" height="186" />Programmare, testare, debuggare. Ripetere fin quando sembra funzionare tutto.</p><p style="text-align: justify;">Queste sono le fasi principali che accompagnano il lavoro di uno sviluppatore. Capita però che vi siano dei tempi &#8220;morti&#8221; tra un impegno e l&#8217;altro: come sfruttarli per imparare qualcosa e non annoiarsi?</p><p style="text-align: justify;">Di seguito riporto alcuni siti che visito quando non ho nulla da fare (ma non spargete troppo la voce&#8230;). <img src='http://www.fortunecat.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p style="text-align: justify;"><strong><a href="http://www.quora.com/" target="_blank">Quora</a></strong></p><p style="text-align: justify;">Si tratta di una rete sociale che consente di fare domande e ricevere risposte. A chi non lo conosce verrebbe di accomunarlo a Yahoo! Answer, ma dovrebbe ricredersi subito dopo averlo provato.</p><p style="text-align: justify;">Quora infatti permette di rimanere aggiornati sulle domande appartenenti ad argomenti di nostro interesse. Sarà quindi possibile seguire solo i topic e le persone che affrontano temi che ci riguardano.</p><p style="text-align: justify;">Non solo scopriremo cose nuove sul mondo della programmazione, ma impareremo nuove curiosità sugli argomenti più disparati.</p><p style="text-align: justify;"><strong><a href="http://stackoverflow.com/" target="_blank">Stackoverflow</a></strong></p><p style="text-align: justify;">Il suo funzionamento è molto simile ad un comune sito si Domande &amp; Risposte, ma Stackoverflow è dedicato solamente agli sviluppatori. Infatti le domande senza codice incollato sono mosche bianche.</p><p style="text-align: justify;">Il tutto è regolato da un sistema di punteggi che indica l&#8217;attività di un utente all&#8217;interno del sito. Non è uno di quei servizi pieni di snob che ad una domanda semplice rispondono incollando una ricerca su google.</p><p style="text-align: justify;">Vi accorgerete che è un sito così attivo, che se avrete un dubbio non avrete neanche la necessità di postare la domanda, perché qualcuno l&#8217;ha già fatta. Non immaginate quante volte mi abbia salvato&#8230;</p><p style="text-align: justify;"><strong><a href="http://news.ycombinator.com/" target="_blank">YCombinator Hacker News</a></strong></p><p style="text-align: justify;">YCombinator è un importante incubatore e Venture capital che ha aiutato a decollare startup del calibro di Reddit, Wufoo, Scribd, Weebly, Disqus, Dropbox, Justin.tv, Heroku e Posterous.</p><p style="text-align: justify;">Sul sito, oltre ad avere la possibilità di presentare la propria idea di startup e sperare di essere selezionato per partecipare ai loro corsi ed alle loro riunioni (rimborsano massimo 600$ per il viaggio), è presente una sezione Hacker News che raccoglie news postate dagli utenti sul mondo della tecnologia in generale.</p><p style="text-align: justify;">Qui gli utenti loggati potranno votare le notizie più interessanti che saliranno così in cima alla lista. YCombinator però ha pensato bene di imporci un limite di tempo per la visualizzazione delle news, in modo da non farci distrarre troppo.</p><p style="text-align: justify;"><strong><a href="http://dzone.com/" target="_blank">DZone</a></strong></p><p style="text-align: justify;">E&#8217; un aggregatore di news simile a Hacker News di YCombinator. In questo caso però troveremo una veste grafica più curata, con un&#8217;anteprima del sito, e i pulsanti di condivisione totalmente assenti in YCombinator. Una nota dolente: diverse news presenti qui sono le stesse che potete vedere su Hacker News.</p><p style="text-align: justify;">Grazie a questi siti ho scoperto ed imparato cose che nessun libro e nessun corso universitario potrà mai insegnarmi. <img src='http://www.fortunecat.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p style="text-align: justify;">Come sempre vi ricordo che potete seguire gli aggiornamenti della sezione Hi-Tech abbonandovi al <a href="http://feeds.fortunecat.it/geektwice-com" target="_blank">feed</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/2012/04/imparare-a-programmare/">Imparare a programmare sfruttando i tempi morti</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/04/imparare-a-programmare/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Quanti utenti ha Google+? Ce lo rivela una sitemap</title><link>http://www.fortunecat.it/2012/03/numero-utenti-google-plus/</link> <comments>http://www.fortunecat.it/2012/03/numero-utenti-google-plus/#comments</comments> <pubDate>Wed, 21 Mar 2012 17:03:44 +0000</pubDate> <dc:creator>Michele Caivano aka Fortunecat</dc:creator> <category><![CDATA[Social World]]></category><guid isPermaLink="false">http://www.fortunecat.it/?p=13330</guid> <description><![CDATA[Ma quanti utenti ci sono davvero su Google+? Stando a quanto detto da Larry Page, sarebbero circa 90 milioni. Dalla sitemap dei profili Google possiamo però individuare con esattezza quanti utenti sono registrati su G+. Attenzione non parliamo di utenti attivi, ma semplicemente di utenti che hanno creato un profilo. Controlliamo la sitemap Date un&#8217;occhiata [...]<p><p style="text-decoration: none; color: #000; font-weigth: bold; text-align: right; font-size: 10px"><a href="http://www.fortunecat.it/2012/03/numero-utenti-google-plus/">Quanti utenti ha Google+? Ce lo rivela una sitemap</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>Ma quanti utenti ci sono davvero su Google+? Stando a quanto detto da <a href="https://plus.google.com/u/0/106189723444098348646/posts/jcyvVa5K4JW" target="_blank">Larry Page</a>, sarebbero circa <strong>90 milioni</strong>.</p><p>Dalla sitemap dei profili Google possiamo però individuare con esattezza quanti utenti sono <span style="text-decoration: underline;">registrati</span> su G+. Attenzione non parliamo di utenti attivi, ma semplicemente di utenti che hanno creato un profilo.</p><p><span style="color: #ff0000;"><strong>Controlliamo la sitemap</strong></span></p><p>Date un&#8217;occhiata a questo <a href="http://www.gstatic.com/s2/sitemaps/profiles-sitemap.xml" target="_blank">link</a>. La sitemap contiene 39&#8217;000 link a delle altre sitemap testuali, contenenti ciascuna 5000 link a profili pubblici su Google.</p><p><span style="color: #ff0000;"><strong>Basta fare un semplice calcolo</strong></span></p><p><strong>39&#8217;000 x 5&#8217;000 = 195&#8217;000&#8217;000</strong></p><p>Gli utenti registrati sarebbero circa <span style="text-decoration: underline;">195 milioni</span>. Se consideriamo come attendibili le informazioni fornite da Larry Page si ha che:</p><ul><li>Gli utenti attivi sono 90 milioni, il <strong>46%</strong> del totale.</li><li>Circa <strong>105</strong> milioni di utenti hanno creato un profilo, ma non utilizzano Google+.</li></ul><p><img class="aligncenter size-full wp-image-13332" title="Utenti Google Plus" src="http://www.fortunecat.it/wp-content/uploads/2012/03/grafico.png" alt="Utenti Google Plus" width="316" height="247" /></p><p>Se questi dati ti sembrano interessanti, abbonati al <a href="http://feeds.fortunecat.it/geektwice-com" target="_blank">feed</a> della sezione Hi-Tech e seguici su <a href="http://twitter.com/fortunecat_it" target="_blank">Twitter</a>, <a href="http://www.facebook.com/fortunecat.it" target="_blank">Facebook</a> e <a href="https://plus.google.com/117683982941571904387" target="_blank">Google+</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/2012/03/numero-utenti-google-plus/">Quanti utenti ha Google+? Ce lo rivela una sitemap</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/03/numero-utenti-google-plus/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Feedburner disattiva l&#8217;integrazione con Twitter!</title><link>http://www.fortunecat.it/2012/03/feedburner-twitter/</link> <comments>http://www.fortunecat.it/2012/03/feedburner-twitter/#comments</comments> <pubDate>Tue, 06 Mar 2012 08:30:05 +0000</pubDate> <dc:creator>Michele Caivano aka Fortunecat</dc:creator> <category><![CDATA[Web 2.0]]></category><guid isPermaLink="false">http://www.fortunecat.it/?p=13221</guid> <description><![CDATA[Come forse saprete Feedburner (il noto servizio per processare feed targato Google) disponeva dell&#8217;opzione &#8220;Socialize&#8221;, che consentiva la pubblicazione automatica degli elementi del proprio feed RSS su Twitter. Avete capito bene: &#8220;disponeva&#8221;. Ora quest&#8217;opzione è stata eliminata. (E&#8217; ancora accessibile con un trucchetto, ma forse è il caso di iniziare ad utilizzare altri servizi.) E&#8217; [...]<p><p style="text-decoration: none; color: #000; font-weigth: bold; text-align: right; font-size: 10px"><a href="http://www.fortunecat.it/2012/03/feedburner-twitter/">Feedburner disattiva l&#8217;integrazione con Twitter!</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>Come forse saprete Feedburner (il noto servizio per processare feed targato Google) disponeva dell&#8217;opzione &#8220;Socialize&#8221;, che consentiva la pubblicazione automatica degli elementi del proprio feed RSS su Twitter.</p><p>Avete capito bene: <em>&#8220;disponeva&#8221;</em>. Ora quest&#8217;opzione è stata eliminata. (E&#8217; ancora accessibile con un trucchetto, ma forse è il caso di iniziare ad utilizzare altri servizi.)</p><p><img class="aligncenter size-full wp-image-13226" title="rss twitter" src="http://www.fortunecat.it/wp-content/uploads/2012/03/rss-twitter.jpg" alt="rss twitter" width="422" height="173" /></p><p><span style="color: #e82c2b;"><strong>E&#8217; ora di cercare delle alternative</strong></span></p><p>La prima scelta è chiaramente <a href="http://twitterfeed.com/" target="_blank">Twitterfeed</a> che consente la pubblicazione automatica non solo su Twitter, ma anche su Facebook e Linkedin. Con Twitterfeed è anche possibile scegliere quale servizio di url shortening utilizzare.</p><p>Il secondo servizio consigliato è <a href="http://dlvr.it/" target="_blank">Dlvr.it</a> con funzioni molto molto simili a Twitterfeed.</p><p><span style="color: #e82c2b;"><strong>Oppure&#8230;</strong></span></p><p>C&#8217;è una terza opzione. Gestire il proprio account &#8220;manualmente&#8221;, rinunciando a qualsiasi forma di automazione. Sembra noioso vero?</p><p>Eppure i risultati si vedono. La pagina Facebook di Fortunecat.it (giusto per fare un esempio) l&#8217;ho sempre gestita &#8220;a mano&#8221; pubblicando solo i link più interessanti, editando titoli e descrizioni, scegliendo le immagini di anteprima, ecc&#8230;</p><p>Vi assicuro che la differenza rispetto ad una pagina completamente automatizzata si nota eccome (anche in termini di engagement). <img src='http://www.fortunecat.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p>Almeno per quel che mi riguarda è arrivato il momento di fare lo stesso anche con Twitter.</p><p>Voi invece quale opzione sceglierete? <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/03/feedburner-twitter/">Feedburner disattiva l&#8217;integrazione con Twitter!</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/03/feedburner-twitter/feed/</wfw:commentRss> <slash:comments>6</slash:comments> </item> <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> </channel> </rss>
