<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>Blogrammazione</title>
	
	<link>http://www.marcolecce.com/blog</link>
	<description>Programmazione, PHP, Java, Mobile, Android, iPhone, ASP, Linux, Windows, Ajax, Web 2.0, Web 3.0</description>
	<lastBuildDate>Wed, 25 Jan 2012 08:51:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Blogrammazione" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="blogrammazione" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">Blogrammazione</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>Utenti Linux (ma anche Android), aggiorniamo!!</title>
		<link>http://www.marcolecce.com/blog/2012/01/25/utenti-linux-ma-anche-android-aggiorniamo/</link>
		<comments>http://www.marcolecce.com/blog/2012/01/25/utenti-linux-ma-anche-android-aggiorniamo/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 08:51:12 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Sicurezza]]></category>
		<category><![CDATA[Sistemi Operativi]]></category>
		<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=1384</guid>
		<description><![CDATA[La notizia è di qualche giorno fa: è stato scoperto un bug nel kernel Linux che permette ad un utente ordinario di diventare amministratore passando per la gestione della memoria utilizzata per avviare i processi. La falla, confermata dallo stesso Torvalds, il papà di Linux, è in realtà considerata di livello medio perchè pare che l&#8217;exploit sia eseguibile &#8230; <a href="http://www.marcolecce.com/blog/2012/01/25/utenti-linux-ma-anche-android-aggiorniamo/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_791" class="wp-caption alignleft" style="width: 150px"><a href="http://www.marcolecce.com/blog/wp-content/linux-logo_140.jpg"><img class="size-full wp-image-791" title="Linux" src="http://www.marcolecce.com/blog/wp-content/linux-logo_140.jpg" alt="Linux" width="140" height="165" /></a><p class="wp-caption-text">fonte: web</p></div>
<p style="text-align: justify;">La <a title="exploit linux" href="http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=e268337dfe26dfc7efd422a804dbb27977a3cccc" target="_blank">notizia</a> è di qualche giorno fa: <strong>è stato scoperto un bug nel kernel Linux</strong> che permette ad un utente ordinario di diventare amministratore passando per la gestione della memoria utilizzata per avviare i processi. La falla, <strong>confermata dallo stesso Torvalds</strong>, il papà di Linux, è in realtà considerata di livello medio perchè pare che l&#8217;exploit sia eseguibile solo in locale e non da remoto.</p>
<p style="text-align: justify;">La cosa interessante è che, da quanto <a title="androdi exploit" href="https://github.com/saurik/mempodroid" target="_blank">dimostrato</a>, questa vulnerabilità riguarda anche i <strong>device Android</strong>:  anche sui dispositivi Android infatti sembra sia possibile con il medesimo exploit ottenere i privilegi di root (essendo Android un OS basato su Linux).</p>
<p style="text-align: justify;">Finora non abbiamo trovato notizie in merito per fixare il bug sulla piattaforma <em>mobile</em>, mentre per quanto riguarda le versioni desktop di Linux è già stata rilasciata una patch di sicurezza per la distro Ubuntu 11.10 (può essere applicata con un normale aggiornamento del software e successivo riavvio della macchina) e Red Hat ha confermato che a breve verrà rilasciato un fix per risolvere il problema.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2012/01/25/utenti-linux-ma-anche-android-aggiorniamo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android MyBrithdays – Devi essere il primo a dire “Happy Birthday!”</title>
		<link>http://www.marcolecce.com/blog/2012/01/02/android-mybrithdays-devi-essere-il-primo-a-dire-happy-birthdays/</link>
		<comments>http://www.marcolecce.com/blog/2012/01/02/android-mybrithdays-devi-essere-il-primo-a-dire-happy-birthdays/#comments</comments>
		<pubDate>Mon, 02 Jan 2012 08:12:41 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=1368</guid>
		<description><![CDATA[MyBirthdays è una simpatica app per piattaforma Android che permette di gestire i compleanni dei nostri contatti. Il punto di forza della versione attuale, la 1.3, è sicuramente l&#8217;invio automatico degli SMS d&#8217;auguri: per ogni contatto infatti è possibile creare un compleanno al quale si può associare un testo. Ogni giorno l&#8217;app controlla i compleanni &#8230; <a href="http://www.marcolecce.com/blog/2012/01/02/android-mybrithdays-devi-essere-il-primo-a-dire-happy-birthdays/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_1369" class="wp-caption alignleft" style="width: 134px"><a href="http://www.marcolecce.com/blog/wp-content/logo_mybirthdays.png"><img class="size-full wp-image-1369" title="logo_mybirthdays" src="http://www.marcolecce.com/blog/wp-content/logo_mybirthdays.png" alt="MyBirthdays" width="124" height="124" /></a><p class="wp-caption-text">MyBirthdays</p></div>
<p style="text-align: justify;"><a title="MyBirthdays" href="https://market.android.com/details?id=com.eb.app&amp;feature=apps_topselling_free#?t=W251bGwsMSwxLG51bGwsImNvbS5lYi5hcHAiXQ.." target="_blank">MyBirthdays</a> è una simpatica app per piattaforma Android che permette di gestire i compleanni dei nostri contatti. Il punto di forza della versione attuale, la 1.3, è sicuramente l&#8217;<strong>invio automatico degli SMS d&#8217;auguri</strong>: per ogni contatto infatti è possibile creare un compleanno al quale si può associare un testo. Ogni giorno l&#8217;app controlla i compleanni che si verificano nella giornata, e per ognuno invia un SMS con il testo associato al compleanno del rispettivo contatto: in questo modo non ci dobbiamo più preoccupare di fare gli auguri ai nostri amici&#8230;ci pensa MyBirthdays per noi!<br />
<span id="more-1368"></span><br />
Oltre all&#8217;invio degli SMS in automatico, MyBirthdays permette di <strong>esportare tutti i dati nella scheda SD</strong> come backup: attivando la funzione di esportazione in un attimo avremo messo al sicuro i nostri compleanni. In un secondo momento, qualora fosse necessario, possiamo poi sfruttare la <strong>funzione di importazione</strong> per recuperare tutti i compleanni dei nostri contatti: in questo modo non rischiamo di perdere alcun dato (compleanno ma anche la configurazione associata).</p>
<p style="text-align: justify;">Per ogni compleanno, oltre ovviamente al contatto, alla data del compleanno e al testo dell&#8217;SMS, possiamo attivare le <strong>notifiche</strong>: la notifica visualizza un alert nella status bar del nostro smartphone, avvisandoci dei compleanni che accadono in giornata. Inoltre l&#8217;app, disponibile attualmente in lingua inglese ed in italiano, è fornita di un comodo calendario che semplifica la gestione e la visualizzazione dei compleanni dei nostri contatti.</p>
<p style="text-align: justify;">Nel calendario sono &#8220;segnati&#8221;, attraverso una simpatica icona a &#8220;pacchetto regalo&#8221;, i giorni in cui si verifica un compleanno: selezionando il giorno potremo vedere l&#8217;elenco dei compleanni previsti per la giornata, e a seconda della configurazione di ognuno l&#8217;app gestirà le comunicazioni con i nostri contatti.<br />
Ogni compleanno infatti può assumere diversi comportamenti in base alla sua configurazione: ad esempio, attivando solo l&#8217;alert di notifica e non quello di invio dell&#8217;SMS, saremo noi a decidere quando e se inviare l&#8217;SMS d&#8217;auguri, mentre selezionando solo l&#8217;alert di invio SMS e non di notifica sarà tutto gestito dall&#8217;app senza ulteriori preoccupazioni. Chiaramente selezionando entrambe le opzioni (alert di notifica + invio SMS) saremo avvisati del compleanno ma anche dell&#8217;invio dell&#8217;SMS d&#8217;auguri, tenendo così sotto controllo la gestione dei nostri contatti.</p>
<p style="text-align: justify;"><a title="MyBirthdays" href="https://market.android.com/details?id=com.eb.app&amp;feature=apps_topselling_free#?t=W251bGwsMSwxLG51bGwsImNvbS5lYi5hcHAiXQ.." target="_blank">MyBirthdays</a> è disponibile da dicembre 2011 sul market ufficiale Android alla seguente <a title="mybirthdays market android" href="https://market.android.com/details?id=com.eb.app&amp;feature=apps_topselling_free#?t=W251bGwsMSwxLG51bGwsImNvbS5lYi5hcHAiXQ.." target="_blank">pagina</a>.</p>
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2012/01/02/android-mybrithdays-devi-essere-il-primo-a-dire-happy-birthdays/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android – Le 10 migliori applicazioni che devi avere</title>
		<link>http://www.marcolecce.com/blog/2011/12/29/android-le-10-migliori-applicazioni-che-devi-avere/</link>
		<comments>http://www.marcolecce.com/blog/2011/12/29/android-le-10-migliori-applicazioni-che-devi-avere/#comments</comments>
		<pubDate>Thu, 29 Dec 2011 07:55:06 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=1331</guid>
		<description><![CDATA[Prendiamo spunto da questo post per analizzare la situazione delle applicazioni Android: seppure il campione sia molto ridotto, è interessante ragione su quali siano le app più usate, ma soprattutto le più utili e quelle alle quali non saremmo più disposti a rinunciare. Non è semplice rispondere a queste domande, soprattutto perchè attualmente i numeri &#8230; <a href="http://www.marcolecce.com/blog/2011/12/29/android-le-10-migliori-applicazioni-che-devi-avere/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_498" class="wp-caption alignleft" style="width: 235px"><a href="http://www.marcolecce.com/blog/wp-content/android.png"><img class="size-full wp-image-498 " title="Android 2.2" src="http://www.marcolecce.com/blog/wp-content/android.png" alt="Android 2.2 Froyo" width="225" height="225" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: justify;">Prendiamo spunto da questo <a title="android le migliori 10 app" href="http://www.gadgetcage.com/top-best-android-apps-must-have/24455/?utm_source=twitterfeed&amp;utm_medium=twitter&amp;utm_campaign=Feed%3A+Gadgetz+%28Gadget+Cage%29" target="_blank">post</a> per analizzare la situazione delle applicazioni Android: seppure il campione sia molto ridotto, è interessante ragione su quali siano le app più usate, ma soprattutto le più utili e quelle alle quali non saremmo più disposti a rinunciare.</p>
<p style="text-align: justify;">Non è semplice rispondere a queste domande, soprattutto perchè attualmente i numeri del market ufficiale Android sono davvero impressionanti (sono stati raggiunti questo dicembre i <a title="10 bilioni di download applicazioni android" href="http://android-developers.blogspot.com/2011/12/10-billion-android-market-downloads-and.html" target="_blank">10 billioni di download</a> ) e perchè moltissimo dipende dall&#8217;utilizzo che facciamo del nostro smartphone.</p>
<p style="text-align: justify;">
<p style="text-align: justify;">L&#8217;autore del post citato ha proposto tale argomento su LinkedIn, e ne è nata una <a title="linkedin le migliori app android" href="http://www.linkedin.com/groups/10-Top-Best-Android-Apps-76373.S.78485033?view=&amp;srchtype=discussedNews&amp;gid=76373&amp;item=78485033&amp;type=member&amp;trk=eml-anet_dig-b_pd-ttl-cn&amp;ut=2VW7eA8jVZxB01" target="_blank">discussione</a> davvero interessante. Ogni utente ha proposto la sua <em>dream list</em>, e il risultato è un elenco stimolante dal quale si possono dedurre diversi elementi importanti.</p>
<p><span id="more-1331"></span></p>
<p style="text-align: justify;">In primo luogo si nota che le app più utilizzate dagli utenti sono quelle <em>social</em>: Twitter, Facebook, LinkedIn in primis. Sembra un dato banale e ovvio visti i numeri raggiunti dai social network su Internet, ma è comunque doveroso sottolineare che praticamente tutti gli utenti che hanno partecipato alla discussione utilizzano<strong> almeno un&#8217;app dedicata al social networking</strong>.</p>
<p style="text-align: justify;">In secondo luogo si nota che non molti hanno inserito nella loro lista applicativi dedicati al backup dei dati e della applicazioni del nostro smartphone: personalmente trovo indispensabili applicazioni come <a title="titanium backup" href="https://market.android.com/details?id=com.keramidas.TitaniumBackup" target="_blank">Titanium Backup</a>, che permettono in un attimo di ripristinare completamente lo stato del device, ed essendo anche free è davvero un piacere disporre di questo potentissimo tool.</p>
<p style="text-align: justify;">La categoria di applicazioni più diffusa è senz&#8217;altro quella dell&#8217;<strong>intrattenimento</strong>, presente praticamente in tutte le liste: questo denota un uso massiccio degli smartphone come strumenti per passare il tempo o per il divertimento (in questo caso spicca tra i più scaricati l&#8217;ormai onnipresente <a title="Angry Birds" href="https://market.android.com/details?id=com.rovio.angrybirds&amp;feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5yb3Zpby5hbmdyeWJpcmRzIl0." target="_blank">Angry Birds</a>).</p>
<p style="text-align: justify;">Le applicazioni che riscuotono maggiore successo e che sono sicuramente tra le più utilizzate sono quelle dedicate alla <strong>produttività</strong>, elemento che sottolinea quanto lo smarphone stia in effetti diventando un vero e proprio strumento di lavoro e di vita al quale non possiamo più rinunciare. Applicazioni come <a title="Dropbox" href="https://market.android.com/search?q=dropbox&amp;c=apps" target="_blank">Dropbox</a> (condivisione di risorse tra diversi device), <a title="Evernote" href="https://market.android.com/details?id=com.evernote&amp;feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5ldmVybm90ZSJd" target="_blank">Evernote</a> (una sorta di promemoria universale),  <a title="dolphin" href="https://market.android.com/details?id=mobi.mgeek.TunnyBrowser&amp;feature=search_result#?t=W251bGwsMSwxLDEsIm1vYmkubWdlZWsuVHVubnlCcm93c2VyIl0." target="_blank">Dolphin</a> (browser avanzato), ne sono un esempio: apprezzate da milioni di utenti (basta vedere i numeri dei download, impressionanti!) ci permettono di avere sottomano tutte le informazioni che riteniamo più importanti e necessarie per il nostro lavoro ma anche e soprattutto per la nostra vita quotidiana.</p>
<p style="text-align: justify;">Un ultimo commento va senz&#8217;altro dedicato alle applicazioni che rientrano nella categoria <strong>comunicazioni</strong>, una delle più gettonate:  chi non ha installato sul proprio smartphone <a title="Skype" href="https://market.android.com/details?id=com.skype.raider&amp;feature=search_result#?t=W251bGwsMSwxLDEsImNvbS5za3lwZS5yYWlkZXIiXQ.." target="_blank">Skype</a> o similari? La comunicazione è un elemento alla base del periodo che stiamo vivendo, e lo dimostrano i numeri impressionanti che riguardano le applicazioni di questa categoria. Chat, VoIP, videochiamate, SMS inviati attraverso Internet, tutte con un occhio di riguardo per il risparmio: sì, perchè se già paghiamo la connessione Internet, perchè pagare per abbondamenti che comprendono anche traffico voce e SMS?</p>
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/12/29/android-le-10-migliori-applicazioni-che-devi-avere/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Issuu.com e la nuova era della pubblicazione digitale</title>
		<link>http://www.marcolecce.com/blog/2011/12/07/issuu-com-e-la-nuova-era-della-pubblicazione-digitale/</link>
		<comments>http://www.marcolecce.com/blog/2011/12/07/issuu-com-e-la-nuova-era-della-pubblicazione-digitale/#comments</comments>
		<pubDate>Wed, 07 Dec 2011 07:30:50 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Servizi Web]]></category>
		<category><![CDATA[Varie]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=1318</guid>
		<description><![CDATA[Issuu.com è una piattaforma web che mette a disposizione degli utenti un numero davvero impressionante di materiale editoriale, diviso tra magazine, giornali, libri, articoli e molto altro ancora. Il materiale è pubblicato dagli utenti che, previa registrazione, possono sfruttare appieno le funzionalità della piattaforma: il modulo per l&#8217;inserimento dei documenti permette di caricare comodamente uno &#8230; <a href="http://www.marcolecce.com/blog/2011/12/07/issuu-com-e-la-nuova-era-della-pubblicazione-digitale/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_1328" class="wp-caption alignleft" style="width: 210px"><a href="http://www.marcolecce.com/blog/wp-content/issuu-logo.jpg"><img class="size-full wp-image-1328" title="issuu-logo" src="http://www.marcolecce.com/blog/wp-content/issuu-logo.jpg" alt="issuu" width="200" height="200" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: justify;"><strong>Issuu.com</strong> è una piattaforma web che mette a disposizione degli utenti un numero davvero impressionante di materiale editoriale, diviso tra magazine, giornali, libri, articoli e molto altro ancora.</p>
<p style="text-align: justify;">Il materiale è pubblicato dagli utenti che, previa registrazione, possono sfruttare appieno le funzionalità della piattaforma: il modulo per l&#8217;inserimento dei documenti permette di caricare comodamente uno o più file contemporaneamente, inserendo tutte le informazioni necessarie affinché possano essere catalogati per una ricerca più veloce e puntuale, come ad esempio il titolo, la descrizione, il tipo di documento, la categoria, la lingua, il target di riferimento, e così via. Attualmente è possibile caricare documenti che non superino le 500 pagine e con peso inferiore ai 100MB.</p>
<p style="text-align: justify;"><span id="more-1318"></span></p>
<p style="text-align: justify;"><a title="pagina delle pubblicazione di issuu.com" href="http://issuu.com/publications">La pagina delle pubblicazioni</a> è chiara, pulita e completa di tutti gli strumenti necessari per facilitare la ricerca del materiale di nostro interesse: dal menu delle categorie disponibili posto sul lato sinistro della pagina al selettore della lingua, al menu temporale che fornisce i filtri sul tempo di pubblicazione (oggi, questo fine settimana, questo mese, ecc.) fino al menu che fornisce gli accessi alle pagine delle <a title="pubblicazioni pololari issuu.com" href="http://issuu.com/publications#br=viewCount&amp;start=0">pubblicazioni più popolari</a>, delle <a title="nuove pubblicazioni issuu.com" href="http://issuu.com/publications#br=uploadDate&amp;ud=today&amp;start=0">nuove pubblicazioni</a> o ancora alle <a title="issuu.com" href="http://issuu.com/publications#br=commentCount&amp;start=0">più discusse</a>.</p>
<p style="text-align: justify;">La sezione <a title="issuu tecnology e internet" href="http://issuu.com/publications#cat=013000&amp;start=0">&#8220;Technology &amp; Internet&#8221;</a> è tra le più interessanti e ricche di materiale: oltre ad articoli e magazine di ogni tipo è possibile trovare libri e manuali delle tecnologie più diffuse, liberamente consultabili e, nella maggior parte dei casi, anche stampabili.</p>
<p style="text-align: justify;">La registrazione alla piattaforma è disponibile al seguente <a title="registrazione issuu.com" href="http://issuu.com/signup">indirizzo</a>, mentre la pagina degli upload per gli utenti non ancora registrati è disponibile <a title="upload utenti non registrati issuu.com" href="http://issuu.com/upload">qui</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/12/07/issuu-com-e-la-nuova-era-della-pubblicazione-digitale/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TeamViewer 7, il controllo remoto professionale si aggiorna</title>
		<link>http://www.marcolecce.com/blog/2011/11/30/teamviewer-7-il-controllo-remoto-professionale-si-aggiorna/</link>
		<comments>http://www.marcolecce.com/blog/2011/11/30/teamviewer-7-il-controllo-remoto-professionale-si-aggiorna/#comments</comments>
		<pubDate>Wed, 30 Nov 2011 13:14:55 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Servizi Web]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=1320</guid>
		<description><![CDATA[E&#8217; stata rilasciata da qualche giorno la nuova versione di TeamViewer, uno dei più diffusi e professionali applicativi per il controllo remoto: sebbene rilasciata ancora in beta, la versione sette di TeamViewer introduce diverse funzionalità che migliorano ed estendono gli strumenti per gestire i computer da remoto. Disponibile su piattaforma Windows, Linux e Mac, TeamViewer &#8230; <a href="http://www.marcolecce.com/blog/2011/11/30/teamviewer-7-il-controllo-remoto-professionale-si-aggiorna/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">E&#8217; stata rilasciata da qualche giorno la nuova versione di TeamViewer, uno dei più diffusi e professionali applicativi per il controllo remoto: sebbene rilasciata ancora in beta, la versione sette di TeamViewer introduce diverse funzionalità che migliorano ed estendono gli strumenti per gestire i computer da remoto.</p>
<p style="text-align: justify;"><strong>Disponibile su piattaforma Windows, Linux e Mac</strong>, TeamViewer è uno strumento molto diffuso tra i sistemisti o tra chi si occupa di assistenza remota, perchè è facile e veloce da installare, semplice ed intuitivo da utilizzare e soprattutto molto comodo perchè fornisce praticamente ogni sorta di strumento per il controllo remoto.<br />
<span id="more-1320"></span><br />
Una delle novità più interessanti introdotte con la versione 7 è il <strong>supporto al multi-monitor</strong>, che permette di aumentare la produttività, la precisione e la rapidità degli interventi di assistenza tecnica.</p>
<p style="text-align: justify;">Una delle caratteristiche più interessanti di TeamViewer è la possibilità di trasferire file attraverso il semplice drag&#8217;n'drop dalla/alla macchina in remoto verso/dalla destinazione di nostro interesse. Rispetto alle versioni precedenti, in cui questa comoda ed importante funzionalità era già disponibile, è stata migliorata l&#8217;efficienza e la velocità dei trasferimenti: ovviamente molto dipende dalla connessione Internet di cui disponiamo, ma in effetti i miglioramenti sono evidenti.</p>
<p style="text-align: justify;">Per chi invece effettuata frequenti connessioni remote alle medesime macchine può sfruttare la funzionalità di <strong>salvataggio delle connessione remote</strong>, in modo da velocizzare ed ottimizzare il tempo di intervento.</p>
<p style="text-align: justify;"><strong>TeamViewer è open source per usi non commerciali</strong>, e dispone di un&#8217;interfaccia web che permette di effettuare connessioni remote senza installare l&#8217;applicativo sulla propria macchina, anche se in questa versione alcune funzionalità sono ridotte o non presenti e le prestazioni risultano sicuramente inferiori rispetto alla versione standalone.</p>
<p style="text-align: justify;">E&#8217; possibile scaricare TeamViewer dal sito ufficiale alla seguente <a title="TeamViewer 7" href="http://www.teamviewer.com/en/download/currentversion.aspx?pid=news.en_tv7_beta">pagina</a>, mentre l&#8217;accesso alla versione web, previa registrazione, è disponibile <a title="Accesso web TeamViewer" href="https://login.teamviewer.com/">qui</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/11/30/teamviewer-7-il-controllo-remoto-professionale-si-aggiorna/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sencha ExtJs – Centrare nello schermo tutti gli oggetti Window</title>
		<link>http://www.marcolecce.com/blog/2011/11/22/sencha-extjs-centrare-nello-schermo-tutti-gli-oggetti-window/</link>
		<comments>http://www.marcolecce.com/blog/2011/11/22/sencha-extjs-centrare-nello-schermo-tutti-gli-oggetti-window/#comments</comments>
		<pubDate>Tue, 22 Nov 2011 11:39:06 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Ext Js]]></category>
		<category><![CDATA[Sviluppo Web]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=1172</guid>
		<description><![CDATA[Rieccoci a parlare di Sencha ExtJs, uno tra i più interessanti e potenti framework Javascript oggi in circolazione. Quello che vediamo in questo breve tutorial è un comodo override da applicare ad tutti i widget &#8220;Window&#8221; per centrare nello schermo la renderizzazione delle finestre. Questo approccio è molto comodo quando stiamo implementando ad esempio l&#8217;interfaccia &#8230; <a href="http://www.marcolecce.com/blog/2011/11/22/sencha-extjs-centrare-nello-schermo-tutti-gli-oggetti-window/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_828" class="wp-caption alignleft" style="width: 160px"><a href="http://www.marcolecce.com/blog/wp-content/sencha.jpg"><img class="size-full wp-image-828" title="sencha extjs" src="http://www.marcolecce.com/blog/wp-content/sencha.jpg" alt="sencha extjs" width="150" height="150" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: justify;">Rieccoci a parlare di <a title="Sencha ExtJs" href="http://www.sencha.com/products/extjs/" target="_blank">Sencha ExtJs</a>, uno tra i più interessanti e potenti framework <a title="Javascript" href="http://it.wikipedia.org/wiki/JavaScript" target="_blank">Javascript</a> oggi in circolazione. Quello che vediamo in questo breve tutorial è un comodo override da applicare ad tutti i widget &#8220;Window&#8221; per centrare nello schermo la renderizzazione delle finestre.</p>
<p style="text-align: justify;">Questo approccio è molto comodo quando stiamo implementando ad esempio l&#8217;interfaccia di un applicativo che richiedere l&#8217;utilizzo di molte finestre, come ad esempio un gestionale o un CMS. La potenza di Sencha ExtJs rispetto ai molti framework Javascript considerati suoi &#8220;avversari&#8221; (Dojo in primis) è data proprio dal fatto che questo prodotto mette a disposizione degli sviluppatori tutta una seria di widget semplici, completi e decisamente funzionali, tutti praticamente pronti all&#8217;uso.</p>
<p><span id="more-1172"></span></p>
<p style="text-align: justify;">I widget &#8220;Window&#8221; sono chiaramente tra i più utilizzati, perchè permettono in realtivamente poco tempo-lavoro di avere complesse interfacce complete e funzionali. In questi casi è molto comodo centralizzare il comportamente delle finestre, visto che nella maggior parte dei casi queste verranno visualizzate centrate rispetto allo schermo e quindi all&#8217;area di lavoro disponibile.</p>
<p style="text-align: justify;">Per impletare questo tipo di lavoro possiamo utilizzare questo override:</p>
<pre class="brush: php">

Ext.override(Ext.Window, {

beforeShow : function(){

delete this.el.lastXY;

delete this.el.lastLT;

if(this.x === undefined || this.y === undefined){

var xy = this.el.getAlignToXY(this.container, &#039;c-c&#039;),

pos = this.el.translatePoints(xy[0], xy[1]);

if(this.position === &#039;cascade&#039;){

this.x = Ext.winPosx = (Ext.winPosx)? Ext.winPosx+20 : pos.left;

this.y = Ext.winPosy = (Ext.winPosy)? Ext.winPosy+20 : pos.top;

}else{

this.x = this.x === undefined? pos.left : this.x;

this.y = this.y === undefined? pos.top : this.y;

}

}

this.el.setLeftTop(this.x, this.y);

//gestione dell&#039;espansione

if(this.expandOnShow){

this.expand(false);

}

//gestione finestra modale

if(this.modal){

Ext.getBody().addClass(&#039;x-body-masked&#039;);

this.mask.setSize(Ext.lib.Dom.getViewWidth(true), Ext.lib.Dom.getViewHeight(true));

this.mask.show();

}

}

});
</pre>
<p style="text-align: justify;">Il codice di cui sopra è più semplice di quel che potrebbe sembrare: viene applicato un override all&#8217;oggetto &#8220;Ext.Window&#8221; (riga 1), per cui ogni volta che utilizzeremo questo widget, prima di essere visualizzato (stiamo utilizzando il listener &#8220;beforeShow&#8221; &#8211; riga 2) verranno sovrascritti i valori delle sue posizioni (X e Y &#8211; righe 9,10 o 12, 13 in base ai casi).</p>
<p style="text-align: justify;">Viene anche gestito il caso in cui la finestra sia dichiarata &#8220;modale&#8221; (le finestre modali sono quelle che una volta aperte e attivate permettono di lavorare esclusicamente nel loro contesto, disabilitando l&#8217;accesso al background &#8211; righe 25-27) e la funzionalità di espansione nativa in tutti i widget di tipo &#8220;Window&#8221; (riga 20).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/11/22/sencha-extjs-centrare-nello-schermo-tutti-gli-oggetti-window/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ubuntu 11.10 – Come installare i driver NVIDIA</title>
		<link>http://www.marcolecce.com/blog/2011/10/28/ubuntu-11-10-come-installare-i-driver-nvidia/</link>
		<comments>http://www.marcolecce.com/blog/2011/10/28/ubuntu-11-10-come-installare-i-driver-nvidia/#comments</comments>
		<pubDate>Fri, 28 Oct 2011 08:16:53 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sistemi Operativi]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=1291</guid>
		<description><![CDATA[Dieci giorni fa abbiamo pubblicato un post che fornisce una delle soluzioni più interessanti ed utili per ripristinare la propria installazione di Ubuntu in caso di problemi dovuti all&#8217;upgrade alla versione 11.10 rilasciata circa a metà ottobre. Per chi avesse da sistemare anche i driver di una scheda video NVIDIA allora questo è l&#8217;articolo che &#8230; <a href="http://www.marcolecce.com/blog/2011/10/28/ubuntu-11-10-come-installare-i-driver-nvidia/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_352" class="wp-caption alignleft" style="width: 227px"><a href="http://www.marcolecce.com/blog/wp-content/ubuntu-logo.gif"><img class="size-full wp-image-352" title="ubuntu-logo" src="http://www.marcolecce.com/blog/wp-content/ubuntu-logo.gif" alt="Ubuntu" width="217" height="250" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: justify;">Dieci giorni fa abbiamo pubblicato un <a title="problemi upgrade ubuntu 11.10" href="http://www.marcolecce.com/blog/2011/10/16/ubuntu-11-10-problemi-durante-lupgrade-di-ubuntu-da-11-04-a-11-10/" target="_blank">post</a> che fornisce una delle soluzioni più interessanti ed utili per ripristinare la propria installazione di Ubuntu in caso di problemi dovuti all&#8217;upgrade alla versione 11.10 rilasciata circa a metà ottobre.</p>
<p style="text-align: justify;">Per chi avesse da sistemare anche i driver di una scheda video <a title="NVIDIA" href="http://www.nvidia.it/page/home.html" target="_blank">NVIDIA</a> allora questo è l&#8217;articolo che sta cercando.<span id="more-1291"></span></p>
<p style="text-align: justify;">Dopo l&#8217;upgrade ad <a title="Ubuntu 11.10 upgrade" href="http://www.ubuntu.com/download" target="_blank">Ubuntu 11.10</a> infatti si potrebbero manifestare delle incompatibilità con le precedenti versioni del driver, che tuttavia possiamo risolvere agevolmente lanciando da terminale i seguenti comandi:</p>
<pre class="brush: php">
sudo add-apt-repository ppa:ubuntu-x-swat/x-updates
sudo apt-get update
sudo apt-get install nvidia-current
</pre>
<p style="text-align: justify;">La prima riga visualizza il comando che permette di aggiungere il repository su cui è possibile trovare le ultime versioni dei driver NVIDIA per Ubuntu 11.10; la seconda riga lancia il comando che esegue l&#8217;aggiornamento e con la terza e ultima riga lanciamo l&#8217;installazione dell&#8217;ultima versione dei driver NVIDIA disponibili per Ubuntu.</p>
<p style="text-align: justify;">A questo punto è necessario un riavvio del sistema per utilizzare la nuova versione dei driver.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/10/28/ubuntu-11-10-come-installare-i-driver-nvidia/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Ubuntu 11.10 – problemi durante l’upgrade di Ubuntu da 11.04 a 11.10</title>
		<link>http://www.marcolecce.com/blog/2011/10/16/ubuntu-11-10-problemi-durante-lupgrade-di-ubuntu-da-11-04-a-11-10/</link>
		<comments>http://www.marcolecce.com/blog/2011/10/16/ubuntu-11-10-problemi-durante-lupgrade-di-ubuntu-da-11-04-a-11-10/#comments</comments>
		<pubDate>Sun, 16 Oct 2011 16:26:49 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sistemi Operativi]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=1283</guid>
		<description><![CDATA[Il 13 ottobre scorso è stata rilasciata la nuova versione di Ubuntu (la 11.10 &#8211; nome in codice Oneiric Ocelot). La procedura di upgrade del sistema operativo è quella ormai consolidata che possiamo avviare comodamente attraverso l&#8217;Update Manager. Come al solito dunque è sufficiente avviare l&#8217;Update Manager e seguire le istruzioni mostrate dal wizard che &#8230; <a href="http://www.marcolecce.com/blog/2011/10/16/ubuntu-11-10-problemi-durante-lupgrade-di-ubuntu-da-11-04-a-11-10/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_628" class="wp-caption alignleft" style="width: 210px"><a href="http://www.marcolecce.com/blog/wp-content/ubuntu.jpg"><img class="size-full wp-image-628 " title="ubuntu 11.10" src="http://www.marcolecce.com/blog/wp-content/ubuntu.jpg" alt="Ubuntu 11.10" width="200" height="203" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: justify;">Il 13 ottobre scorso è stata rilasciata la nuova versione di <a title="Ubuntu " href="http://www.ubuntu.com/">Ubuntu</a> (la 11.10 &#8211; nome in codice <a title="Ubuntu oneiric ocelot" href="http://www.ubuntu.com/download/ubuntu/download">Oneiric Ocelot</a>). La procedura di upgrade del sistema operativo è quella ormai consolidata che possiamo avviare comodamente attraverso l&#8217;Update Manager. Come al solito dunque è sufficiente avviare l&#8217;Update Manager e seguire le istruzioni mostrate dal wizard che si occupa dell&#8217;upgrade. Fin qui niente di nuovo.</p>
<p style="text-align: justify;">Quello che c&#8217;è di nuovo è che stranamente questa procedura non è perfetta: dico &#8220;stranamente&#8221; perchè finora non era mai capitato che il team di Ubuntu rilasciasse una procedura imperfetta. Sì, perchè<strong> dopo l&#8217;upgrade la maggior parte degli utenti si è ritrovata con un sistema instabile e in alcuni casi non più in grado di completare un normale avvio</strong>. I problemi riscontrati in genere si manifestano con un sistema che si riavvia continuamente o che blocca l&#8217;avvio durante la procedura di start-up per problemi di configurazione di rete o del dbus.</p>
<p><span id="more-1283"></span></p>
<p style="text-align: justify;">Dopo vai tentativi e ricerche ho trovato la soluzione del problema, che sembra proprio derivare da un bug della procedura di upgrade. Attraverso questa semplice procedura si dovrebbero risolvere tutti i problemi di cui sopra. Ecco cosa dobbiamo fare:</p>
<ol>
<li>Accediamo al sistema da terminale: per chi non riuscisse ad avvia correttamente il sistema è possibile comunque utilizzare uno dei TTY a disposizione;</li>
<li>Effettuiamo il login con un&#8217;utenza valida e lanciamo questi comandi:</li>
</ol>
<pre class="brush: php">
sudo mv /var/run/* /run/
sudo mv /var/lock/* /run/lock/
sudo rm -r /var/run
sudo rm -r /var/lock
sudo ln -s /run /var/run
sudo ln -s /run/lock /var/lock
sudo rm /run/dbus/*
</pre>
<p style="text-align: justify;">A questo punto non rimane che riavviare il sistema operativo e il gioco è fatto. Ancora una cosa: se durante l&#8217;esecuzione di uno dei comandi di sui sopra, ad esempio se non riuscite a rimuovere correttamente le cartelle &#8220;run&#8221; e &#8220;lock&#8221; (riga 3 e 4) potrebbe essere necessario effettuare un <em>umount</em>. Per far questo è sufficiente lanciare il seguente comando:</p>
<p style="text-align: justify;">umount -fl &lt;directory&gt;</p>
<p style="text-align: justify;">e poi subito dopo procedere con la rimozione. Verificate di aver rimosso correttamente le directory, altrimenti al prossimo riavvio tutti i problemi vi si ripresenteranno.</p>
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/10/16/ubuntu-11-10-problemi-durante-lupgrade-di-ubuntu-da-11-04-a-11-10/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Android – Come inserire codice HTML in un widget TextView</title>
		<link>http://www.marcolecce.com/blog/2011/10/02/android-come-inserire-codice-html-in-un-widget-textview/</link>
		<comments>http://www.marcolecce.com/blog/2011/10/02/android-come-inserire-codice-html-in-un-widget-textview/#comments</comments>
		<pubDate>Sun, 02 Oct 2011 09:41:07 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[android]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=1274</guid>
		<description><![CDATA[Un widget TextView è un oggetto Android che permette di visualizzare (e non solo!) un testo all&#8217;interno dei layout che implementiamo. Come tutti i widget nativi a disposizione dello sviluppatore, è un oggetto molto potente, completo di tutte le funzionalità necessarie per essere utilizzato efficacemente all&#8217;interno delle nostre interfacce Android. In questo tutorial vediamo un &#8230; <a href="http://www.marcolecce.com/blog/2011/10/02/android-come-inserire-codice-html-in-un-widget-textview/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_762" class="wp-caption alignleft" style="width: 160px"><a href="http://www.marcolecce.com/blog/wp-content/android_logo.jpg"><img class="size-full wp-image-762" title="android_logo" src="http://www.marcolecce.com/blog/wp-content/android_logo.jpg" alt="Android" width="150" height="113" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: justify;">Un widget <a title="android textview" href="http://developer.android.com/reference/android/widget/TextView.html" target="_blank">TextView</a> è un oggetto <a title="Android" href="http://www.android.com/" target="_blank">Android</a> che permette di visualizzare (e non solo!) un testo all&#8217;interno dei layout che implementiamo. Come tutti i widget nativi a disposizione dello sviluppatore, è un oggetto molto potente, completo di tutte le funzionalità necessarie per essere utilizzato efficacemente all&#8217;interno delle nostre interfacce Android.</p>
<p style="text-align: justify;">In questo tutorial vediamo un piccolo accorgimento che ci permette di inserire codice <a title="HTML" href="http://it.wikipedia.org/wiki/HTML" target="_blank">HTML</a> all&#8217;interno di un widget TextView, in modo da rendere più efficace e gradevole la visualizzazione del testo nei layout.</p>
<p><span id="more-1274"></span></p>
<p style="text-align: justify;">Vediamo il codice completo dell&#8217;esempio:</p>
<pre class="brush: php">
TextView txtview = (TextView) findViewById(R.id.your_txt_view);
String html      = &amp;quot;&amp;lt;b&amp;gt;Testo in grassetto!&amp;lt;/b&amp;gt;&amp;lt;br /&amp;gt;Testo normale&amp;quot;;
txtview.setText(Html.fromHtml(html));
</pre>
<p style="text-align: justify;">La prima cosa da fare è recuperare la risorsa TextView su cui vogliamo visualizzare il testo in HTML. Utilizziamo pertanto la funzione &#8220;<a title="findViewById android" href="http://developer.android.com/reference/android/app/Activity.html#findViewById%28int%29" target="_blank">findViewById</a>&#8221; passandogli come parametro l&#8217;identificatore della risorsa TextView (nel nostro esempio &#8220;your_txt_view&#8221; definita nel file descrittore main.xml) per recuperare il riferimento al widget su cui vogliamo visualizzare il testo HTML (riga 1).</p>
<p style="text-align: justify;">Nella riga 2 creiamo una variabile di tipo stringa in cui salviamo il codice HTML da visualizzare nel TextView recuperato alla riga 1. A questo punto utilizziamo il metodo statico &#8220;<a title="HTML class android" href="http://developer.android.com/reference/android/text/Html.html#fromHtml%28java.lang.String%29" target="_blank">fromHtml()</a>&#8221; della classe <a title="android HTML" href="http://developer.android.com/reference/android/text/Html.html" target="_blank">Html</a> che genera e restituisce una stringa con lo stile associato per la corretta visualizzazione nel layout del testo in formato HTML.</p>
<p style="text-align: justify;">Il risultato che otterremo sarà simile a quanto rappresentato nella seguente figura:</p>
<p style="text-align: justify;"><a href="http://www.marcolecce.com/blog/wp-content/android_textwidget_html.png"><img class="aligncenter size-full wp-image-1278" title="android_textwidget_html" src="http://www.marcolecce.com/blog/wp-content/android_textwidget_html.png" alt="" width="300" height="412" /></a></p>
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/10/02/android-come-inserire-codice-html-in-un-widget-textview/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sencha ExtJS – Recuperare un parametro dall’URL</title>
		<link>http://www.marcolecce.com/blog/2011/09/08/sencha-extjs-recuperare-un-parametro-dallurl/</link>
		<comments>http://www.marcolecce.com/blog/2011/09/08/sencha-extjs-recuperare-un-parametro-dallurl/#comments</comments>
		<pubDate>Thu, 08 Sep 2011 07:58:50 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Ext Js]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Sviluppo Web]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=1256</guid>
		<description><![CDATA[Sencha ExtJs sta guadagnando sempre più terreno nel panorama dei framework Javascript per lo sviluppo di applicazione web ma anche mobile, grazie alla sua flessibilità, efficiente, potenza e facilità d&#8217;uso. In questo tutorial vedremo una piccola funzione per leggere uno specifico parametro passato nell&#8217;URL. Vediamo innazittutto il codice: Ext.getUrlParam = function(param) { var params = &#8230; <a href="http://www.marcolecce.com/blog/2011/09/08/sencha-extjs-recuperare-un-parametro-dallurl/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_828" class="wp-caption alignleft" style="width: 160px"><a href="http://www.marcolecce.com/blog/wp-content/sencha.jpg"><img class="size-full wp-image-828" title="sencha extjs" src="http://www.marcolecce.com/blog/wp-content/sencha.jpg" alt="sencha extjs" width="150" height="150" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: justify;"><a title="Sencha ExtJS" href="http://www.sencha.com/products/extjs/" target="_blank">Sencha ExtJs</a> sta guadagnando sempre più terreno nel panorama dei framework Javascript per lo sviluppo di applicazione web ma anche mobile, grazie alla sua flessibilità, efficiente, potenza e facilità d&#8217;uso.</p>
<p style="text-align: justify;">In questo tutorial vedremo una piccola funzione per leggere uno specifico parametro passato nell&#8217;<a title="Uniform Resource Locator" href="http://it.wikipedia.org/wiki/Uniform_Resource_Locator" target="_blank">URL</a>.</p>
<p><span id="more-1256"></span></p>
<p style="text-align: justify;">Vediamo innazittutto il codice:</p>
<pre class="brush: php">
Ext.getUrlParam = function(param) {
var params = Ext.urlDecode(location.search.substring(1));
return param ? params[param] : null;
};
</pre>
<p style="text-align: justify;">Il tutto è reso molto semplice dalla funzione &#8220;urlDecode&#8221; di <a title="Sencha ExtJs" href="http://www.sencha.com/" target="_blank">ExtJs</a>. Questa funzione infatti esegue il parsing di un URL nella forma:</p>
<p style="text-align: center;">www.marcolecce.com/?param1=1&amp;param2=2</p>
<p style="text-align: justify;">restituendo un array in cui sarà presente un elemento per ogni parametro dell&#8217;URL in cui la chiave sarà il nome del parametro e il valore chiaramente quello del parametro corrispondente. Nella riga due creiamo una variabile che abbiamo chiamato &#8220;params&#8221; in cui saranno contenuti tutti i parametri, nel nostro esempio avremo una situazione di questo tipo:</p>
<pre class="brush: php">
params[param1] = 1
params[param2] = 2
</pre>
<p style="text-align: justify;">A questo punto dovrebbe essere chiaro il funzionamento della funzione anonima scritta poc&#8217;anzi: a questa funzione passiamo il nome di un paramentro (&#8220;param&#8221; nella riga 1), leggiamo l&#8217;URL e lo decodifichiamo (riga 2) e restituiamo il valore del parametro se si trova una corrispondenza, NULL altrimenti (riga 3).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/09/08/sencha-extjs-recuperare-un-parametro-dallurl/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Steve Jobs lascia la Apple</title>
		<link>http://www.marcolecce.com/blog/2011/08/25/steve-jobs-lascia-la-apple/</link>
		<comments>http://www.marcolecce.com/blog/2011/08/25/steve-jobs-lascia-la-apple/#comments</comments>
		<pubDate>Thu, 25 Aug 2011 06:43:22 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[iPhone/iPad]]></category>
		<category><![CDATA[Varie]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=1246</guid>
		<description><![CDATA[A comunicarlo è lo stesso Steve Jobs, con una lettera scritta ieri a tutti i dipendenti Apple: &#8220;Non riesco più ad assolvere alle mie funzioni&#8221;.  Jobs si è dimesso ieri da CEO di Apple, lasciando il posto al &#8220;delfino&#8221; Tom Cook, l&#8217;attuale direttore generale che ha già sostituito Jobs quando questi era costretto a periodici &#8230; <a href="http://www.marcolecce.com/blog/2011/08/25/steve-jobs-lascia-la-apple/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_951" class="wp-caption alignleft" style="width: 290px"><a href="http://www.marcolecce.com/blog/wp-content/jobs.jpg"><img class="size-full wp-image-951" title="Steve Jobs" src="http://www.marcolecce.com/blog/wp-content/jobs.jpg" alt="Steve Jobs" width="280" height="188" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: justify;">A comunicarlo è lo stesso <a title="Steve Jobs" href="http://it.wikipedia.org/wiki/Steve_Jobs" target="_blank">Steve Jobs</a>, con una lettera scritta ieri a tutti i dipendenti Apple: &#8220;Non riesco più ad assolvere alle mie funzioni&#8221;.  Jobs si è dimesso ieri da CEO di Apple, lasciando il posto al &#8220;delfino&#8221; <a title="Tom Cook" href="http://it.wikipedia.org/wiki/Timothy_D._Cook" target="_blank">Tom Cook</a>, l&#8217;attuale direttore generale che ha già sostituito Jobs quando questi era costretto a periodici ritiri dall&#8217;attività quotidiana a causa della malattia che lo afflige ormai dal 2004.</p>
<p><span id="more-1246"></span></p>
<p style="text-align: justify;">Il fondatore di Apple infatti è afflitto da una rara forma di tumore al pancreas, che dal 2004, anno della scoperta della malattia, gli ha procurato continui fastidi: dopo il trapianto di fegato del 2009 Jobs non sembrava essersi rimesso completamente, sempre affaticato e parecchio dimagrito. Ora l&#8217;annuncio del ritiro dalle attività dell&#8217;azienda per assumere la carica di presidente.</p>
<p style="text-align: justify;">La <a title="Apple" href="http://www.apple.com/" target="_blank">Apple</a> è una delle più importanti aziende del settore, che grazie proprio alle idee geniali del suo fondatore, è riuscita a rivoluzionare diversi settori del mondo tecnologico, da quello dei computer portatili a quello del mobile.</p>
<p style="text-align: justify;">Il grande interrogativo di queste ore è se la Apple sarà in grado di camminare con le sue gambe senza la carismatica e geniale guida del suo fondatore, se sarà in grado di reagire a questa situazione.</p>
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/08/25/steve-jobs-lascia-la-apple/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LinkedIn aggiorna la sua applicazione Android</title>
		<link>http://www.marcolecce.com/blog/2011/08/19/linkedin-aggiorna-la-sua-applicazione-android/</link>
		<comments>http://www.marcolecce.com/blog/2011/08/19/linkedin-aggiorna-la-sua-applicazione-android/#comments</comments>
		<pubDate>Fri, 19 Aug 2011 12:48:41 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Varie]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=1235</guid>
		<description><![CDATA[Da qualche giorno è stato rilasciato l&#8217;aggiornamento dell&#8217;applicazione per piattaforma Android del famoso servizio sociale per gestire la propria rete di contatti in ambito lavorativo, LinkedIn. Il primo rilascio dell&#8217;applicazione aveva suscitato molte polemiche da parte degi utenti, visto che non si poteva far altro che consultare i profili, senza poter aggiornare nessuna informazione e &#8230; <a href="http://www.marcolecce.com/blog/2011/08/19/linkedin-aggiorna-la-sua-applicazione-android/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_1236" class="wp-caption aligncenter" style="width: 550px"><a href="http://www.marcolecce.com/blog/wp-content/linkedin.jpg"><img class="size-full wp-image-1236  " title="linkedin" src="http://www.marcolecce.com/blog/wp-content/linkedin.jpg" alt="linkedin" width="540" height="152" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: justify;">
<p style="text-align: justify;">Da qualche giorno è stato rilasciato l&#8217;aggiornamento dell&#8217;applicazione per piattaforma Android del famoso servizio sociale per gestire la propria rete di contatti in ambito lavorativo, <a title="LinkedIn" href="http://www.linkedin.com/" target="_blank">LinkedIn</a>.</p>
<p style="text-align: justify;">Il primo rilascio dell&#8217;applicazione aveva suscitato molte polemiche da parte degi utenti, visto che non si poteva far altro che consultare i profili, senza poter aggiornare nessuna informazione e con grandi difficoltà nella navigazione e nella gestione delle schermate.</p>
<p><span id="more-1235"></span></p>
<p style="text-align: justify;">Con questo aggiornamento tutto cambia: la <a title="LinkedId Android" href="https://market.android.com/details?id=com.linkedin.android" target="_blank">versione 2.0.0</a>, disponibile dal 16 agosto scorso per le piattaforme Android 2.1 o superiori, ha radicalmente modificato la precedente. L&#8217;interfaccia grafica è decisamente migliorata, rendendo la navigazione tra le schermate semplice, intuitiva e molto più fluida: ora possiamo gestire completamente il nostro profilo, proprio come facciamo sulla piattaforma web. Praticamente sono state implementate tutte le funzionalità, compresa la visualizzazione dei gruppi di appartenenza, delle news e la sincronizzazione delle connessioni LinkedIn con i propri contatti.</p>
<p style="text-align: justify;">Maggiori dettagli sull&#8217;app sono disponibili sulla pagina del market ufficiale di Android al seguente <a title="LinkedIn Market Android" href="https://market.android.com/details?id=com.linkedin.android" target="_blank">indirizzo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/08/19/linkedin-aggiorna-la-sua-applicazione-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MIUI: una ROM tutta da scoprire per HTC, Samsung, Motorola, Acer Liquid</title>
		<link>http://www.marcolecce.com/blog/2011/07/19/acer-liquid-miui-una-rom-tutta-da-scoprire/</link>
		<comments>http://www.marcolecce.com/blog/2011/07/19/acer-liquid-miui-una-rom-tutta-da-scoprire/#comments</comments>
		<pubDate>Tue, 19 Jul 2011 10:26:19 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=1196</guid>
		<description><![CDATA[MIUI è una delle migliori ROM al mondo per smartphone Android. Cos&#8217;è una ROM? Come si installano? Perchè scaricare ed installare MIUI sul proprio device Android? Se avete 2 minuti di pazienza risponderemo a tutte queste domande. &#160; Cos&#8217;è una ROM? Nel contesto mobile, una ROM è sostanzialmente una versione di firmware che possiamo installare &#8230; <a href="http://www.marcolecce.com/blog/2011/07/19/acer-liquid-miui-una-rom-tutta-da-scoprire/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_1206" class="wp-caption alignleft" style="width: 183px"><a href="http://www.marcolecce.com/blog/wp-content/miui_logo.gif"><img class="size-full wp-image-1206" title="miui logo" src="http://www.marcolecce.com/blog/wp-content/miui_logo.gif" alt="miui logo" width="173" height="134" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p><a title="MIUI" href="http://www.miui.com/" target="_blank">MIUI</a> è una delle migliori ROM al mondo per smartphone Android. Cos&#8217;è una ROM? Come si installano? Perchè scaricare ed installare MIUI sul proprio device Android? Se avete 2 minuti di pazienza risponderemo a tutte queste domande.</p>
<p><span id="more-1196"></span></p>
<p style="text-align: justify;">&nbsp;</p>
<p style="text-align: justify;"><strong>Cos&#8217;è una ROM?</strong></p>
<p style="text-align: justify;">Nel contesto mobile, una ROM è sostanzialmente una versione di firmware che possiamo installare sul nostro smartphone. Le ROM possono essere ufficiali e non ufficiali: nel primo caso le possiamo scaricare dal sito di riferimento del produttore del nostro smartphone, nel secondo caso invece sono rilasciate da team di sviluppatori diversi che implementano versioni più o meno performanti, più o meno stabili a seconda della loro bravura. MIUI fa parte del secondo gruppo, quello delle ROM non ufficiali. Attenzione: con il termine &#8220;non ufficiali&#8221; non intendiamo che tali versioni siano &#8220;pirata&#8221; o non legali, anzi: Android è una piattaforma open source che permette anzi incoraggia questo genere di modifiche. Con il termine &#8220;non ufficiali&#8221; intendiamo solamente il fatto che non sono rilasciate sui siti ufficiali dei produttori di un determinato tipo di smartphone, ma invece sono mantenute da gruppi di lavoro i cui membri spesso sono sparsi nel mondo.</p>
<p style="text-align: justify;"><strong>Perchè MIUI?</strong></p>
<p style="text-align: justify;"><a title="Miui" href="http://en.miui.com/" target="_blank">MIUI</a> è un progetto davvero notevole: una ROM veloce, performante, graficamente curata e caratterizzata da una interfaccia semplice ed intuitiva, colma di effetti grafici gradevoli e fluidi. Quasi completamente personalizzabile, questa fantastica ROM basata su Android 2.3.4 dispone di centinaia di temi che possiamo comodamente scaricare ed installare attraverso i tool forniti con la ROM stessa. Il progetto è in continua crescita: nato in <a title="Miui Cina" href="http://www.miui.com/" target="_blank">Cina</a>, da poche settimane è disponibile la <a title="MIUI English" href="http://en.miui.com/" target="_blank">versione inglese</a>, e sono davvero tante le <em>fork</em> attualmente disponibili e curate da team di molte nazionalità diverse. La <a title="MIUI Italia" href="http://miui.nexus-lab.com/site/" target="_blank">versione italiana</a> è curata dal <a title="Nexus Lab" href="http://www.nexus-lab.com/" target="_blank">Nexus Lab</a>, risorsa davvero utile per chi vuole conoscere e approfondire il mondo Android.</p>
<p style="text-align: justify;"><strong>Installare MIUI</strong></p>
<p style="text-align: justify;">Ufficialmente la ROM MIUI supporta i seguenti device:</p>
<p style="text-align: justify;">Google Nexus One<br />
HTC Desire<br />
HTC Desire HD<br />
HTC Desire Z<br />
HTC HD2<br />
Motorola Defy<br />
Motorola Milestone<br />
Samsung Galaxy S<br />
Samsung Nexus Ssi</p>
<p style="text-align: justify;">e solo da qualche settimana anche (e finalmente) l&#8217;<strong>Acer Liquid</strong>. Per installare questa ROM su un dispositivo Acer Liquid (ma in realtà questo procedimento può andare benissimo anche per device differenti) abbiamo bisogno dell&#8217;<a title="Acer Liquid Malez Recovery" href="http://code.google.com/p/acer-liquid-malez-recovery/" target="_blank">Acer Liquid Malez Recovery</a>, un piccolo programmino che dobbiamo scaricare ed installare nel nostro smartphone per poter avviare il device in modalità <em>recovery</em>, modalità che ci permette di installare con semplici passaggi le ROM che preferiamo. Il processo di installazione per tutti i tipi di smartphone supportati è disponibile al seguente <a title="Installazione MIUI" href="http://miui.nexus-lab.com/site/installazione/" target="_blank">indirizzo</a>.</p>
<p style="text-align: justify;">Installare il Malez Recovery è un procedimento abbastanza semplice, il cui dettaglio è disponibile sul sito ufficiale al seguente <a title="malez recovery installazione" href="http://code.google.com/p/acer-liquid-malez-recovery/wiki/howToInstall" target="_blank">indirizzo</a>: sostanzialmente attraverso i driver Acer installiamo il programmino sul nostro smartphone, chiaramente dopo averlo collegato al PC attraverso il cavo USB.</p>
<p style="text-align: justify;">A questo punto scarichiamo la versione attuale della ROM MIUI dalla seguente <a title="Rom italiana MIUI" href="http://www.nexus-lab.com/miui-rom-italian-packs/" target="_blank">pagina</a>: dobbiamo scaricare sia il pacchetto della ROM sia il pacchetto per la traduzione in italiano. Attenzione: attualmente questa ROM è in continuo sviluppo, dunque non è detto che scaricare proprio l&#8217;ultima versione sia la scelta ideale. Potete fare comunque dei test, e nel caso comunicarli al team in modo che il loro lavoro sia agevolato dal vostro feedback. La versione che abbiamo testato noi, perfettamente funzionante, su un Acer Liquid A1 è la <a title="acer liquid 1.7.1" href="http://www.nexus-lab.com/miui-rom-italian-packs/?rom_id=83&amp;version=1.7.1" target="_blank">1.7.1</a> .</p>
<p style="text-align: justify;">Una volta scaricati i pacchetti li mettiamo nella root della scheda SD e riavviamo lo smartphone in modalità <em>recovery</em>. Per fare questo dobbiamo spegnere il telefono, e accenderlo tenendo premuti <strong>contemporaneamente</strong> per qualche secondo i seguenti pulsanti:</p>
<p style="text-align: center;"><em>Accensione + Pulsante diminuisci volume + Pulsante scatta fotografia</em></p>
<p style="text-align: justify;">Quando il telefono vibra per qualche secondo possiamo rilasciare i pulsanti: è il segnale di avvio in modalità <em>recovery</em>. A questo punto dobbiamo eseguire un <em>full wipe</em> (dati + cache + dalvik) se attualmente nel nostro device è installata una ROM diversa, altrimenti è sufficiente eseguire il wipe della cache e di dalvik*.</p>
<p style="text-align: justify;">Possiamo finalmente installare la ROM selezionando la voce di menu &#8220;<em>Flash menu</em>&#8221; del programma di recovery: installiamo prima la ROM e poi allo stesso modo installiamo il pacchetto per la lingua italiana. A processo eseguito, selezioniamo la voce per il riavvio di sistema: a sistema riavviato potremo goderci il nostro smartphone con la nuova ROM installata!!</p>
<p style="text-align: justify;"><strong>Attenzione: prima di fare qualsiasi cosa è estremamente importante che facciate un backup di tutto il sistema. Potete usare ad esempio &#8220;Titanium Backup&#8221; per eseguire il backup/ripristino del vostro smartphone, è una app scaricabile gratuitamente dall&#8217;Android Market ed è semplicissima da utilizzare.</strong></p>
<p style="text-align: justify;"><strong>Ognuno è libero di decidere se testare o meno queste installazioni sul proprio smartphone: lo staff di Blogrammazione declina ogni reponsabilità in caso di malfunzionamenti. </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/07/19/acer-liquid-miui-una-rom-tutta-da-scoprire/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Geany: una IDE snella e veloce</title>
		<link>http://www.marcolecce.com/blog/2011/07/08/geany-una-ide-snella-e-veloce/</link>
		<comments>http://www.marcolecce.com/blog/2011/07/08/geany-una-ide-snella-e-veloce/#comments</comments>
		<pubDate>Fri, 08 Jul 2011 06:13:24 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[Sviluppo Web]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=1186</guid>
		<description><![CDATA[Geany è una IDE (Integrated Development Environment)  davvero interessante disponibile per l&#8217;ambiente Windows e tutti i sistemi Linux-based, dunque anche per sistemi MAC OSX. Leggera, veloce e semplice da utilizzare: il team di sviluppo di Geany ha lavorato con l&#8217;obiettivo di fornire un prodotto completo ma che si differenziasse dalle IDE potenti ma pesanti a &#8230; <a href="http://www.marcolecce.com/blog/2011/07/08/geany-una-ide-snella-e-veloce/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_1188" class="wp-caption alignleft" style="width: 106px"><a href="http://www.marcolecce.com/blog/wp-content/geany.png"><img class="size-full wp-image-1188" title="geany" src="http://www.marcolecce.com/blog/wp-content/geany.png" alt="geany" width="96" height="96" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: justify;"><a title="Geany" href="http://www.geany.org/" target="_blank">Geany</a> è una <a title="Integrated development environment" href="http://it.wikipedia.org/wiki/Integrated_development_environment" target="_blank">IDE</a> (Integrated Development Environment)  davvero interessante disponibile per l&#8217;ambiente Windows e tutti i sistemi Linux-based, dunque anche per sistemi MAC OSX. Leggera, veloce e semplice da utilizzare: il team di sviluppo di Geany ha lavorato con l&#8217;obiettivo di fornire un prodotto completo ma che si differenziasse dalle IDE potenti ma <em>pesanti</em> a cui siamo normalmente abituati, <a title="Eclipse" href="http://www.eclipse.org/" target="_blank">Eclipse</a> <em>in primis</em>.</p>
<p><span id="more-1186"></span></p>
<p style="text-align: justify;">Geany si basa sulle librerie <a title="GTK" href="http://www.gtk.org/" target="_blank">GTK2</a> e tra le caratteristiche principali segnaliamo le seguenti:</p>
<ol>
<li>Navigazione del codice</li>
<li>Supporto per file Java, C, PHP, Python, HTML, Pascal</li>
<li>Auto-completion del codice</li>
<li>Syntax highlighting</li>
<li>Interfaccia a plugin</li>
<li>Gestione del progetto</li>
</ol>
<p style="text-align: justify;">Geany è un prodotto multipiattaforma: teoricamente (alcune piattaforme sono ancora da verificare) potrebbe girare su qualsiasi piattaforma in grado di fornire supporto alle librerie GTK (sul sito ufficiale segnalano che attualmente solo in ambiente Windows si sono riscontrate alcune problematiche per specifiche <em>feature</em>).</p>
<p style="text-align: justify;">Il prodotto è distribuito sotto licenza GNU General Public Licence ed scaricabile dalla seguente <a title="Geany Downloads" href="http://www.geany.org/Download/Releases" target="_blank">pagina</a>.</p>
<p style="text-align: justify;">&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/07/08/geany-una-ide-snella-e-veloce/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google cambia faccia</title>
		<link>http://www.marcolecce.com/blog/2011/06/30/google-cambia-faccia/</link>
		<comments>http://www.marcolecce.com/blog/2011/06/30/google-cambia-faccia/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 07:07:43 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Servizi Web]]></category>
		<category><![CDATA[Varie]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=1176</guid>
		<description><![CDATA[Ebbene sì, tempo di restyling per Google, che propone un nuovo layout per l&#8217;homepage (e non solo!) del motore di ricerca: logo lievemente rimpicciolito e fascia nera superiore per evidenziare gli strumenti e le opzioni a disposizione. Ma le modifiche non riguardano solo la pagina principale: sono state apportate piccole modifiche ed accorgimenti anche alle &#8230; <a href="http://www.marcolecce.com/blog/2011/06/30/google-cambia-faccia/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.marcolecce.com/blog/wp-content/google2011.png"><img class="aligncenter size-full wp-image-1177" title="google2011" src="http://www.marcolecce.com/blog/wp-content/google2011.png" alt="google nuova homepage" width="800" height="364" /></a></p>
<p style="text-align: justify;">Ebbene sì, tempo di restyling per <a title="Google" href="http://www.google.com" target="_blank">Google</a>, che propone un nuovo layout per l&#8217;homepage (e non solo!) del motore di ricerca: logo lievemente rimpicciolito e fascia nera superiore per evidenziare gli strumenti e le opzioni a disposizione.<br />
<span id="more-1176"></span><br />
Ma le modifiche non riguardano solo la pagina principale: sono state apportate piccole modifiche ed accorgimenti anche alle interfacce dei singoli servizi, per ammodernare e semplificare ulteriormente il già minimalista stile proposto da Mountain View.</p>
<p style="text-align: justify;">Il nuovo layout porta con sè anche il rilascio del social network sui cui Google ha deciso di puntare: <a title="google +" href="http://www.google.com/support/+/" target="_blank">+</a>. Ancora in fase di prova, <a title="google +" href="http://www.google.com/support/+/" target="_blank">+</a> è accessibile per ora solo tramite invito, e punta ad essere un nuovo strumento sociale utile alla condivisione di informazioni, unendo un pò quelli che erano i concetti di precendenti progetti Google come Google Wave, Places, Buzz.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/06/30/google-cambia-faccia/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Inserire stringhe e costanti da CSS</title>
		<link>http://www.marcolecce.com/blog/2011/06/21/inserire-stringhe-e-costanti-da-css/</link>
		<comments>http://www.marcolecce.com/blog/2011/06/21/inserire-stringhe-e-costanti-da-css/#comments</comments>
		<pubDate>Tue, 21 Jun 2011 07:04:18 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[Css]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=851</guid>
		<description><![CDATA[Alcune proprietà dei CSS (Cascading Style Sheets o Fogli di stile) spesso rimangono nascoste e sepolte nel dimenticatoio, soprattutto per chi non li utilizza quotidiamente. La verità è che attualmente i CSS sono davvero molto potenti, e possono essere considerati quasi alla stregua di un metalinguaggio di programmazione. Una delle proprietà più curiose è ad &#8230; <a href="http://www.marcolecce.com/blog/2011/06/21/inserire-stringhe-e-costanti-da-css/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Alcune proprietà dei <a title="CSS" href="http://it.wikipedia.org/wiki/CSS" target="_blank">CSS</a> (<em>Cascading Style Sheets</em> o <em>Fogli di stile</em>) spesso rimangono nascoste e sepolte nel dimenticatoio, soprattutto per chi non li utilizza quotidiamente. La verità è che attualmente i CSS sono davvero molto potenti, e possono essere considerati quasi alla stregua di un <em>metalinguaggio</em> di programmazione.</p>
<p><span id="more-851"></span></p>
<p style="text-align: justify;">Una delle proprietà più curiose è ad esempio la proprietà &#8220;content&#8221;: questa direttiva permette di inserire del contenuto stringa prima o dopo un determinato elemento HTML. Come mostra la <a title="W3C CSS content property" href="http://www.w3.org/wiki/CSS/Properties/content" target="_blank">pagina di riferimento</a> del <a title="W3C" href="http://www.w3.org" target="_blank">W3C</a>, questa proprietà può essere molto utile per assegnare del testo a degli elementi specifici della pagina HTML. Con la proprietà <em>content</em> possiamo ad esempio far sì che tutti i link vengano scritti in automatico tra parentesi:</p>
<pre class="brush: php">
&amp;lt;style type=&amp;quot;text/css&amp;quot;&amp;gt;
a:after {content: &amp;quot; (&amp;quot; attr(href) &amp;quot;)&amp;quot;;}
&amp;lt;/style&amp;gt;
</pre>
<p style="text-align: justify;">Il risultato sarà che tutti i link in cui verrà applicato questo stile avranno automaticamente la seguente rappresentazione:</p>
<pre><a href="http://www.w3schools.com">W3Schools (http://www.w3schools.com)</a></pre>
<p style="text-align: justify;">La proprietà <em>content</em> è supportata dalla maggior parte dei browser, anche se in Internet Explorer 8 viene supportata solo se è specificato un <a title="Valid !DOCTYPE" href="http://www.w3.org/QA/2002/04/valid-dtd-list.html" target="_blank">!DOCTYPE</a>.</p>
<p style="text-align: justify;">&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/06/21/inserire-stringhe-e-costanti-da-css/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Facebook – Come disattivare il riconoscimento facciale</title>
		<link>http://www.marcolecce.com/blog/2011/06/09/facebook-come-disattivare-il-riconoscimento-facciale/</link>
		<comments>http://www.marcolecce.com/blog/2011/06/09/facebook-come-disattivare-il-riconoscimento-facciale/#comments</comments>
		<pubDate>Thu, 09 Jun 2011 08:02:10 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Servizi Web]]></category>
		<category><![CDATA[Varie]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[servizi]]></category>
		<category><![CDATA[Sicurezza]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=1146</guid>
		<description><![CDATA[Chi decide di crearsi un account su Facebook sicuramente deve partire dal presupposto che di privacy ne avrà ben poca. Questo però non significa che Facebook possa fare dei nostri dati tutto ciò che vuole: ecco il perchè degli scontri continui tra la piattaforma di  Zuckerberg e gli utenti-consumatori. L&#8217;ultima caso di protesta è proprio &#8230; <a href="http://www.marcolecce.com/blog/2011/06/09/facebook-come-disattivare-il-riconoscimento-facciale/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_1149" class="wp-caption alignleft" style="width: 210px"><a href="http://www.marcolecce.com/blog/wp-content/facebook_logo.png"><img class="size-full wp-image-1149" title="facebook_logo" src="http://www.marcolecce.com/blog/wp-content/facebook_logo.png" alt="facebook logo" width="200" height="200" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: justify;">Chi decide di crearsi un account su <a title="Facebook" href="www.facebook.com" target="_blank">Facebook</a> sicuramente deve partire dal presupposto che di privacy ne avrà ben poca. Questo però non significa che Facebook possa fare dei nostri dati tutto ciò che vuole: ecco il perchè degli scontri continui tra la piattaforma di  <a title="Mark Zuckerberg" href="http://it.wikipedia.org/wiki/Mark_Zuckerberg" target="_blank">Zuckerberg</a> e gli utenti-consumatori.</p>
<p style="text-align: justify;">L&#8217;ultima caso di protesta è proprio quello di questi giorni, nato dalla discutibile nuova funzionalità rilasciata da poco per gli utenti europei per cui Facebook sarà in grado di riconoscere i volti delle persone nelle foto e <em>autotaggarli</em>.</p>
<p style="text-align: justify;"><span id="more-1146"></span></p>
<p style="text-align: justify;">La funzionalità potrebbe anche essere interessante, ma come al solito Facebook non segue la buona e semplice regola di vita (e di privacy!) di chiedere il permesso agli utenti prima di attivare una funzionalità.</p>
<p style="text-align: justify;">Il ricoscimento facciale infatti viene automaticamente attivato per tutti gli utenti, senza chiedere e sopratutto comunicare nulla. Ad ogni modo in rete è già disponibile da qualche giorno una chiara e dettagliata procedura per la disabilitazione del servizio, procedura che riportiamo di seguito:</p>
<ol>
<li> Cliccare <strong>Account</strong>, la voce che trovate in alto a destra sulla pagina Facebook</li>
<li> Cliccare sulla voce  <strong>Impostazioni sulla privacy </strong>(  <strong>Privacy settings</strong> per la versione inglese)</li>
<li> Cliccare su  <strong> Personalizza le impostazioni </strong>(  <strong>Customize settings </strong>per la versione inglese)  <strong>, </strong>scritto in basso in posizione centrale della pagina</li>
<li> Cercare l’opzione  <strong>Suggerisci le foto in cui sono presente agli amici</strong> (  <strong>Suggest photos of me to friends </strong>per la versione inglese)</li>
<li> Selezionare la barra  <strong>Modifica le impostazioni</strong> (  <strong>Edit</strong> per la versione inglese) e disabilitare il servizio (  <strong>Disabled</strong> per la versione inglese)</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/06/09/facebook-come-disattivare-il-riconoscimento-facciale/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone – Una app per il calcolo ICI (Imposta Comunale sugli Immobili)</title>
		<link>http://www.marcolecce.com/blog/2011/06/08/iphone-una-app-per-il-calcolo-ici-imposta-comunale-sugli-immobili/</link>
		<comments>http://www.marcolecce.com/blog/2011/06/08/iphone-una-app-per-il-calcolo-ici-imposta-comunale-sugli-immobili/#comments</comments>
		<pubDate>Wed, 08 Jun 2011 07:04:00 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[iPhone/iPad]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=1107</guid>
		<description><![CDATA[&#160; Si sa che ormai abbiamo a disposizione una app praticamente per qualsiasi cosa, dunque perchè non una che ci venga in aiuto per il calcolo dell&#8217;ICI (Imposta Comunale sugli Immobili) ? Con Calcolo ICI possiamo determinare l&#8217;ammontare dell&#8217;imposta per le aree edificabili e per i fabbricati per i quali l&#8217;imposta è dovuta: tutto quello &#8230; <a href="http://www.marcolecce.com/blog/2011/06/08/iphone-una-app-per-il-calcolo-ici-imposta-comunale-sugli-immobili/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">&nbsp;</p>
<div id="attachment_1138" class="wp-caption alignleft" style="width: 185px"><a href="http://www.marcolecce.com/blog/wp-content/iphone-ici.jpg"><img class="size-full wp-image-1138" title="iphone-ici" src="http://www.marcolecce.com/blog/wp-content/iphone-ici.jpg" alt="iphone-ici" width="175" height="175" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: justify;">Si sa che ormai abbiamo a disposizione una app praticamente per qualsiasi cosa, dunque perchè non una che ci venga in aiuto per il calcolo dell&#8217;ICI (<a title="Imposta comunale sugli immobili" href="http://it.wikipedia.org/wiki/Imposta_comunale_sugli_immobili" target="_blank">Imposta Comunale sugli Immobili</a>) ?</p>
<p style="text-align: justify;">Con <a title="itunes calcoloICI" href="http://itunes.apple.com/it/app/calcolo-ici/id438894124?mt=8#" target="_blank">Calcolo ICI</a> possiamo determinare l&#8217;ammontare dell&#8217;imposta per le aree edificabili e per i fabbricati per i quali l&#8217;imposta è dovuta: tutto quello che dobbiamo fare è compilare i relativi campi (v. Rendita catastale, Aliquota applicata dal comune, Percentuale di proprietà, ecc.) e lanciare il calcolo dell&#8217;ICI. Semplice no?</p>
<p style="text-align: justify;">Maggiori informazioni sulla app, compatibile con <a title="iphone" href="http://www.apple.com/iphone/" target="_blank">iPhone</a>, <a title="ipod touch" href="http://www.apple.com/ipodtouch/" target="_blank">iPod Touch</a> e <a title="ipad" href="http://www.apple.com/ipad/" target="_blank">iPad</a>, le potete trovare sulla pagina<a title="itunes calcolo ici" href="http://itunes.apple.com/it/app/calcolo-ici/id438894124?mt=8#" target="_blank"> iTunes</a> dedica oppure sul <a title="sito CalcoloICI" href="http://www.melaxcoder.com/" target="_blank">sito di supporto</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/06/08/iphone-una-app-per-il-calcolo-ici-imposta-comunale-sugli-immobili/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google, Facebook, Yahoo! – Si iniziano i test per IPv6</title>
		<link>http://www.marcolecce.com/blog/2011/06/04/google-facebook-yahoo-si-iniziano-i-test-per-ipv6/</link>
		<comments>http://www.marcolecce.com/blog/2011/06/04/google-facebook-yahoo-si-iniziano-i-test-per-ipv6/#comments</comments>
		<pubDate>Sat, 04 Jun 2011 13:29:16 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Varie]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[rete]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=1126</guid>
		<description><![CDATA[Figura 1 Google, Facebook, Yahoo! e altre grandi del web hanno ufficialmente iniziato sul campo i test di utilizzo del protocollo IPv6, la nuova versione del protocollo IPv4. Come mostra la figura 1, Mountain View ha presentato nella home page del famoso motore di ricerca la giornata dell&#8217;8 giugno 2011 dedicata al nuovo protocollo IPv6. &#8230; <a href="http://www.marcolecce.com/blog/2011/06/04/google-facebook-yahoo-si-iniziano-i-test-per-ipv6/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_1128" class="wp-caption aligncenter" style="width: 760px"><a href="http://www.marcolecce.com/blog/wp-content/google-ipv6-home.png"><img class="size-full wp-image-1128" title="google-ipv6-home" src="http://www.marcolecce.com/blog/wp-content/google-ipv6-home.png" alt="google ipv6" width="750" height="288" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: center;">Figura 1</p>
<p style="text-align: justify;">Google, Facebook, Yahoo! e altre grandi del web hanno ufficialmente iniziato sul campo i test di utilizzo del protocollo IPv6, la nuova versione del protocollo IPv4. Come mostra la figura 1, Mountain View ha presentato nella home page del famoso motore di ricerca <strong>la giornata dell&#8217;8 giugno 2011 dedicata al nuovo protocollo IPv6</strong>.</p>
<p><span id="more-1126"></span></p>
<p style="text-align: justify;">Nel comunicato mostrato in homepage è anche possibile cliccare sul link &#8220;Try it now&#8221; per verificare se la nostra connessione è pronta per supportare il nuovo formato di indirizzamento. Seguendo il link si accede ad una pagina simile alla seguente:</p>
<p style="text-align: justify;">&nbsp;</p>
<div id="attachment_1129" class="wp-caption aligncenter" style="width: 660px"><a href="http://www.marcolecce.com/blog/wp-content/google-ipv61.png"><img class="size-full wp-image-1129" title="google-ipv6" src="http://www.marcolecce.com/blog/wp-content/google-ipv61.png" alt="google ipv6" width="650" height="244" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: center;">Figura 2</p>
<p style="text-align: justify;">Come mostrato in figura 2, il test verifica se la nostra connessione sarà in grado di supportare pienamente il protocollo IPv6. L&#8217;evento dell&#8217;8 giugno a cui prendono parte anche <strong>Facebook, Yahoo!, Akamai</strong> e altre tra le maggiori presenze del web prende il nome di &#8220;<a title="World IPv6 Day" href="http://worldipv6day.org/" target="_blank">World&#8221; IPv6 Day</a>&#8221; : in questa giornata gli aderenti all&#8217;evento distribuiranno i loro contenuti sul protocollo IPv6 per verificare se la rete è in grado di supportare il nuovo formato di indirizzamento.</p>
<p style="text-align: justify;">Per saperne di più su IPv6 potete seguire questo <a title="Google IPv6" href="http://www.google.com/support/websearch/bin/answer.py?hl=en&amp;topic=8995&amp;answer=1299266" target="_blank">link</a>, invece maggiori dettagli sull&#8217;iniziativa &#8220;World&#8221; IPv6 Day&#8221; dell&#8217;8 giungno li trovate <a title="World IPv6 Day" href="http://worldipv6day.org/" target="_blank">qui</a>. Se invece volete testare la vosta connessione IPv6 con il tool messo a disposizione su sito del &#8220;Word IPv6 Day&#8221; potete accedere alla seguente <a title="test page word ipv6 day" href="http://test-ipv6.com/" target="_blank">pagina</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/06/04/google-facebook-yahoo-si-iniziano-i-test-per-ipv6/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sencha ExtJs – Navigare il DOM con DomQuery e i Selettori</title>
		<link>http://www.marcolecce.com/blog/2011/05/30/sencha-extjs-navigare-il-dom-con-domquery-e-i-selettori/</link>
		<comments>http://www.marcolecce.com/blog/2011/05/30/sencha-extjs-navigare-il-dom-con-domquery-e-i-selettori/#comments</comments>
		<pubDate>Mon, 30 May 2011 06:39:00 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Ext Js]]></category>
		<category><![CDATA[Sviluppo Web]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=1109</guid>
		<description><![CDATA[La navigazione del DOM (Document Object Model) e l&#8217;utilizzo dei selectors (selettori) sono due caratteristiche fondamentali sulle quali possiamo confrontare i diversi framework javascript a disposizione per lo sviuppo delle moderne interfacce web complesse. Sencha ExtJs mette a disposizione gli strumenti per lavorare e manipolare le pagine web: in questo tutorial vedremo come selezionare elementi &#8230; <a href="http://www.marcolecce.com/blog/2011/05/30/sencha-extjs-navigare-il-dom-con-domquery-e-i-selettori/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div class="mceTemp" style="text-align: justify;">
<div id="attachment_828" class="wp-caption alignleft" style="width: 160px"><a href="http://www.marcolecce.com/blog/wp-content/sencha.jpg"><img class="size-full wp-image-828" title="sencha extjs" src="http://www.marcolecce.com/blog/wp-content/sencha.jpg" alt="sencha extjs" width="150" height="150" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p>La navigazione del <a title="Document Object Model" href="http://it.wikipedia.org/wiki/Document_Object_Model" target="_blank">DOM</a> (Document Object Model) e l&#8217;utilizzo dei <em>selectors</em> (selettori) sono due caratteristiche fondamentali sulle quali possiamo confrontare i diversi framework javascript a disposizione per lo sviuppo delle moderne interfacce web complesse.</p>
</div>
<div class="mceTemp" style="text-align: justify;"><a title="sencha extjs 4.0" href="http://www.sencha.com/products/extjs/" target="_blank">Sencha ExtJs</a> mette a disposizione gli strumenti per lavorare e manipolare le pagine web: in questo tutorial vedremo come selezionare elementi specifici della pagina, come manipolarli e come recuperare le informazioni contenute negli elementi stessi.</div>
<p><span id="more-1109"></span></p>
<p>L&#8217;oggetto <strong>Ext.Element</strong> è uno strumento potente e semplice, e soprattutto cross-browser, per accedere agli elementi del DOM e svolgere operazioni su di essi. Vediamo subito un esempio:</p>
<pre class="brush: php">
Ext.onReady(function() {
    var mio_div = Ext.get(&#039;mio-div&#039;);
});
</pre>
<p style="text-align: justify;">Supponendo di aver creato nella nostra pagina <a title="HTML" href="http://it.wikipedia.org/wiki/HTML" target="_blank">HTML</a> un div con attributo &#8220;id&#8221; impostato a &#8220;mio-div&#8221;, possiamo recuperare questo elemento utilizzando il metodo &#8220;get&#8221; come mostra l&#8217;esempio alla riga 2, salvando un riferimento nella variabile javascript &#8220;mio_div&#8221;.</p>
<p style="text-align: justify;">A questo punto possiamo manipolare l&#8217;elemento e svolgere azioni su e con esso. Ad esempio possiamo applicare effetti grafici con pochissime righe di codice, come mostra il codice seguente:</p>
<pre class="brush: php">
Ext.onReady(function() {
    var mio_div = Ext.get(&#039;mio-div&#039;);
    mio_div.highlight();
});
</pre>
<p style="text-align: justify;">Per vedere come applicare altri effetti grafici agli elementi DOM potete leggere un tutorial scritto qualche tempo fa e disponibile alla seguente <a title="Blogrammazione effetti grafici sencha extjs" href="http://www.marcolecce.com/blog/2011/02/15/sencha-slide-fade-highlight-effetti-grafici-con-extjs/" target="_blank">pagina</a>.</p>
<p style="text-align: justify;">Se volessimo selezionare un elemento del DOM attraverso altre informazioni rispetto all&#8217;attributo &#8220;id&#8221; allora possiamo utilizzare un oggetto specifico, <strong>DomQuery</strong>, un potente selettore DOM che ci permette di selezionare elementi attraverso un attributo generico o una classe CSS. Supponiamo di avere questo codice HTML nella nostra pagina web:</p>
<p>&lt; p &gt;paragrafo 1 &lt; / p &gt;<br />
&lt; p class=&#8221;secondo&#8221;&gt;paragrafo 2&lt; / p &gt;<br />
&lt; p &gt;paragrafo 3 &lt; / p &gt;</p>
<p style="text-align: justify;">Possiamo utilizzare il selettore per recuperare ad esempio tutti gli elementi della pagina HTML di tipo &#8220;&lt;p&gt;&#8221; :</p>
<pre class="brush: php">
Ext.onReady(function() {
   var items = Ext.select(&#039;p&#039;);
   console.log(items);
});
</pre>
<p style="text-align: justify;">Nella variabile &#8220;items&#8221; avremo un oggetto di tipo &#8220;CompositeElement&#8221; che fornisce l&#8217;accesso agli elementi selezionati. Questo ci permette di agire direttamente su tutti gli elementi selezionati evitando di implementare cicli o di doverne selezionare uno per volta.<br />
Ad esempio potremo applicare a tutti i paragrafi della nostra pagina HTML un effetto grafico con una sola istruzione, come nell&#8217;esempio seguente:</p>
<pre class="brush: php">
Ext.onReady(function() {
   Ext.select(&#039;p&#039;).frame(&#039;ff0000&#039;,3);
 });
</pre>
<p style="text-align: justify;">Con una sola riga di codice applichiamo a tutti i paragrafi della pagina l&#8217;effetto &#8220;frame&#8221; (verrà creata una cornice di colore &#8220;ff0000&#8243; per 3 secondi intorno ad ogni paragrafo).</p>
<p style="text-align: justify;">Se invece volessimo applicare un effetto grafico ad uno solo elemento specifico, ad esempio al solo paragrafo con classe &#8220;secondo&#8221;, potremmo procedere nel seguente modo:</p>
<pre class="brush: php">
Ext.onReady(function() {
   Ext.select(&#039;p.secondo&#039;).highlight();
});
</pre>
<p style="text-align: justify;">dove &#8220;p.secondo&#8221; è la stringa che passiamo all&#8217;oggetto DomQuery per la ricerca, in cui &#8220;p&#8221; è il tipo di elemento che stiamo cercando e &#8220;secondo&#8221; il nome della classe dell&#8217;elemento da selezionare.<br />
Il passo successivo è legare eventi ad un elemento specifico, come nell&#8217;esempio seguente:</p>
<pre class="brush: php">
Ext.onReady(function() {
  Ext.get(&#039;mio-div&#039;).on(&#039;click&#039;, function() {alert(&#039;Hai cliccato sul div&#039;);});
});
</pre>
<p style="text-align: justify;">Nell&#8217;esempio precedente recuperiamo l&#8217;elemento che ci interessa controllare (l&#8217;elemento div con attributo id uguale a &#8220;mio-div&#8221;) e su questo richiamiamo il metodo &#8220;on&#8221;, passandogli come parametro l&#8217;evento che vogliamo controllare (&#8216;click&#8217; del mouse) e una funzione anonima da eseguire allo scatenarsi dell&#8217;evento dichiarato. Nel nostro caso, quando cliccheremo sul div verrà lanciato un messaggio di alert con il messaggio &#8220;Hai cliccato sul div&#8221;: tutto questo implementato con una solo riga di codice.</p>
<p style="text-align: justify;">Maggiori  dettagli sul funzionamento di DomQuery / DomHelper le trovate <a title="domquery domhelper sencha extjs" href="http://www.sencha.com/learn/Tutorials#DomQuery_.2F_DomHelper">qui</a>. Se volete approfondire lo studio dei selettori in Sencha ExtJs potete consultare la documentazione ufficiale al seguente <a title="documentazione extjs 4.0 domquery" href="http://docs.sencha.com/ext-js/4-0/#/api/Ext.DomQuery">indirizzo </a>.</p>
<p style="text-align: justify;">&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/05/30/sencha-extjs-navigare-il-dom-con-domquery-e-i-selettori/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sencha ExtJS – ‘createContextualFragment’ non supportato in IE 9</title>
		<link>http://www.marcolecce.com/blog/2011/05/19/sencha-extjs-createcontextualfragment-non-supportato-in-ie-9/</link>
		<comments>http://www.marcolecce.com/blog/2011/05/19/sencha-extjs-createcontextualfragment-non-supportato-in-ie-9/#comments</comments>
		<pubDate>Thu, 19 May 2011 08:20:34 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Ext Js]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Sviluppo Web]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=1093</guid>
		<description><![CDATA[&#160; Con l&#8217;aggiornamento a Internet Explorer 9 (IE 9) non sarà possibile utilizzare le web application che abbiamo equipaggiato con ExtJs versione 3.*: IE9 infatti non supporta il metodo createContextualFragment generando errori che nella pratica non permettono la navigazione del sito. Il metodo javascript createContextualFragment è utile quando vogliamo creare un oggetto DocumentFragment con del &#8230; <a href="http://www.marcolecce.com/blog/2011/05/19/sencha-extjs-createcontextualfragment-non-supportato-in-ie-9/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">&nbsp;</p>
<div id="attachment_828" class="wp-caption alignleft" style="width: 160px"><a href="http://www.marcolecce.com/blog/wp-content/sencha.jpg"><img class="size-full wp-image-828" title="sencha extjs" src="http://www.marcolecce.com/blog/wp-content/sencha.jpg" alt="sencha extjs" width="150" height="150" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: justify;">Con l&#8217;aggiornamento a <a title="Internet Explorer 9" href="http://windows.microsoft.com/en-US/internet-explorer/products/ie/home" target="_blank">Internet Explorer 9</a> (IE 9) non sarà possibile utilizzare le web application che abbiamo equipaggiato con <a title="Sencha ExtJs" href="http://www.sencha.com/products/extjs3/" target="_blank">ExtJs versione 3.*</a>: <strong>IE9 infatti non supporta il metodo <em>createContextualFragment</em></strong> generando errori che nella pratica non permettono la navigazione del sito. Il metodo javascript <em>createContextualFragment</em> è utile quando vogliamo creare un oggetto <em>DocumentFragment</em> con del contenuto iniziale: <em>createContextualFragment </em>era stato inizialmente pensato come alternativa all&#8217;ormai più diffuso e conosciuto metodo <em>innerHTML</em>.</p>
<p style="text-align: justify;">Se per diversi motivi non possiamo aggiornare il framework Sencha ExtJs alla <a title="Sencha ExtJS 4" href="http://www.sencha.com/products/extjs/" target="_blank">versione 4</a> (in cui la fix dovrebbe essere già impostata), possiamo utilizzare una piccola fix per risolvere il problema.<br />
<span id="more-1093"></span></p>
<p>Il codice da utilizzare è il seguente:</p>
<pre class="brush: php">
if ((typeof Range !== &amp;quot;undefined&amp;quot;) &amp;amp;&amp;amp; !Range.prototype.createContextualFragment)
{
	Range.prototype.createContextualFragment = function(html)
	{
		var frag = document.createDocumentFragment(),
		div = document.createElement(&amp;quot;div&amp;quot;);
		frag.appendChild(div);
		div.outerHTML = html;
		return frag;
	};
}
</pre>
<p style="text-align: justify;">Dove inserire questo codice? Potete inserire questa fix lì dove richiamate il framework: se avete predisposto un file di configurazione per ExtJs allora quello è il punto ideale in cui inserire la fix, in questo modo siete sicuri di sistemare il problema per tutta la web application.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/05/19/sencha-extjs-createcontextualfragment-non-supportato-in-ie-9/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Linux – Sincronizzazione del server remoto con rsync e ssh</title>
		<link>http://www.marcolecce.com/blog/2011/05/13/linux-sincronizzazione-del-server-in-remoto-con-rsync-e-ssh/</link>
		<comments>http://www.marcolecce.com/blog/2011/05/13/linux-sincronizzazione-del-server-in-remoto-con-rsync-e-ssh/#comments</comments>
		<pubDate>Fri, 13 May 2011 07:26:00 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sistemi Operativi]]></category>
		<category><![CDATA[Backup]]></category>
		<category><![CDATA[Server]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=1083</guid>
		<description><![CDATA[Chi utilizza Linux come sistema desktop dispone di uno strumento potente, veloce, sicuro e semplice da usare per sincronizzare file/cartelle locali con file/cartelle memorizzate in un server remoto: il nome di questo strumento è rsync. rsync è una utility che una volta imparata ad usare non ne potrete più fare a meno. Potendo essere utilizzata &#8230; <a href="http://www.marcolecce.com/blog/2011/05/13/linux-sincronizzazione-del-server-in-remoto-con-rsync-e-ssh/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_791" class="wp-caption alignleft" style="width: 150px"><a href="http://www.marcolecce.com/blog/wp-content/linux-logo_140.jpg"><img class="size-full wp-image-791" title="Linux" src="http://www.marcolecce.com/blog/wp-content/linux-logo_140.jpg" alt="Linux" width="140" height="165" /></a><p class="wp-caption-text">fonte: web</p></div>
<p style="text-align: justify;">Chi utilizza Linux come sistema desktop dispone di uno strumento potente, veloce, sicuro e semplice da usare per sincronizzare file/cartelle locali con file/cartelle memorizzate in un server remoto: il nome di questo strumento è <strong>rsync</strong>.</p>
<p style="text-align: justify;"><a title="rsync" href="http://it.wikipedia.org/wiki/Rsync" target="_blank">rsync</a> è una utility che una volta imparata ad usare non ne potrete più fare a meno. Potendo essere utilizzata in contemporanea con il protocollo <a title="SSH" href="http://it.wikipedia.org/wiki/Secure_shell" target="_blank">SSH</a> è uno degli strumenti più sicuri e performanti per l&#8217;aggiornamento delle risorse in remoto.</p>
<p style="text-align: justify;">Oltre alla sincronizzazione dei file e delle cartelle in remoto, rsync è un ottimo strumento per eseguire il backup dei file e delle cartelle del nostro server, perchè anche in questo caso risulta decisamente veloce e chiaramente sicuro.</p>
<p style="text-align: justify;">Vediamo come si utilizza.</p>
<p><span id="more-1083"></span></p>
<p style="text-align: justify;">Se volessimo sincronizzare/caricare tutti i file di una cartella in locale con quelli di una cartella sul server in remoto dovremmo utilizzare rsync in questo modo:</p>
<pre class="brush: php">rsync -rvC --rsh=&amp;quot;ssh -l SSH_USERNAME&amp;quot;  * HOST:REMOTE_DIRECTORY/</pre>
<p style="text-align: justify;">dove &#8220;*&#8221; rappresenta tutte le risorse contenute nella directory locale corrente (quella cioè in cui ci troviamo quando lanciamo il comando), &#8220;SSH_USERNAME&#8221; è il nome utente per il protocollo SSH, &#8220;HOST&#8221; è il nome di dominio o l&#8217;indirizzo IP del server e &#8220;REMOTE_DIRECTORY&#8221; e la cartella remota del server in cui vogliamo aggiornare/sincronizzare i file o le cartelle.</p>
<p style="text-align: justify;">L&#8217;opzione &#8220;-r&#8221; attiva la modalità ricorsiva, quella &#8220;-v&#8221; incrementa la verbosità e la &#8220;-C&#8221; attiva l&#8217;esclusione CVS.  Chiaramente al posto di &#8220;*&#8221; possiamo specificare una particolare directory, un particolare file, un insieme di directory, ecc. per l&#8217;aggiornamento/caricamento in remoto, mentre invertendo l&#8217;origine con la destinazione in questo modo:</p>
<pre class="brush: php">rsync -rvC --rsh=&amp;quot;ssh -l SSH_USERNAME&amp;quot;  HOST:REMOTE_DIRECTORY/ /home/utente/Desktop/ </pre>
<p>potremmo eseguire il backup della directory remota &#8220;REMOTE_DIRECTORY&#8221; del server in locale (nella directory &#8220;/home/utente/Desktop/&#8221;). Facile no?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/05/13/linux-sincronizzazione-del-server-in-remoto-con-rsync-e-ssh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP – Metodi alternativi per il debug in PHP</title>
		<link>http://www.marcolecce.com/blog/2011/05/06/php-metodi-alternativi-per-il-debug-in-php/</link>
		<comments>http://www.marcolecce.com/blog/2011/05/06/php-metodi-alternativi-per-il-debug-in-php/#comments</comments>
		<pubDate>Fri, 06 May 2011 06:49:27 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[sviluppo]]></category>
		<category><![CDATA[Sviluppo Web]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=1066</guid>
		<description><![CDATA[Piccoli trucchi per chi non ha a disposizione un vero debugger come XDebug o Zend Debugger. In mancanza di un debugger degno di questo nome può essere difficoltoso, soprattutto in contesto PHP, trovare un bug o analizzare i dati contenuti nel flusso di elaborazione  per capire quale sia il problema o il motivo per cui &#8230; <a href="http://www.marcolecce.com/blog/2011/05/06/php-metodi-alternativi-per-il-debug-in-php/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_757" class="wp-caption alignleft" style="width: 160px"><a href="http://www.marcolecce.com/blog/wp-content/php-logo.jpg"><img class="size-full wp-image-757" title="php-logo" src="http://www.marcolecce.com/blog/wp-content/php-logo.jpg" alt="PHP" width="150" height="105" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: justify;">Piccoli trucchi per chi non ha a disposizione un vero debugger come <a title="xdebug" href="http://www.xdebug.org/" target="_blank">XDebug</a> o <a title="Zend Debugger" href="http://www.zend.com/en/community/pdt" target="_blank">Zend Debugger</a>. In mancanza di un debugger degno di questo nome può essere difficoltoso, soprattutto in contesto <a title="PHP" href="http://www.php.net/" target="_blank">PHP</a>, trovare un bug o analizzare i dati contenuti nel flusso di elaborazione  per capire quale sia il problema o il motivo per cui si presenta un risultato che non ci aspettiamo.</p>
<p style="text-align: justify;">In alcuni casi utilizzare la stampa a video dell&#8217;errore può non essere possibile o assolutamente da evitare, ad esempio nel caso in un contesto di produzione. In queste situazioni possiamo sfruttare un semplice sistema di logging, ovvero riportare in un file di testo gli errori generati dall&#8217;applicazione o altre informazioni importanti che chiaramente non vogliamo rendere pubbliche. Oltre alla stampa semplice dell&#8217;errore però, nella maggior parte dei casi, abbiamo anche bisogno di utilizzare le funzioni di ispezione come &#8220;<a title="php var_dump" href="http://php.net/manual/en/function.var-dump.php" target="_blank">var_dump</a>&#8221; o &#8220;<a title="print_r" href="http://php.net/manual/en/function.print-r.php" target="_blank">print_r</a>&#8221; , che ci facilitano l&#8217;analisi. Il problema è che le informazioni restituite da queste funzioni sono strutturare in modo complesso, e dunque non è così immediata la stampa su file.</p>
<p style="text-align: justify;">Per risolvere il problema possiamo utilizzare l&#8217;output buffering di PHP:</p>
<p><span id="more-1066"></span></p>
<pre class="brush: php">
ob_start();
$articoli = array( &amp;quot;id&amp;quot; =&amp;gt; 123456, &amp;quot;title&amp;quot; =&amp;gt; &amp;quot;This is a test&amp;quot; )
var_dump($articoli);
$result = ob_get_clean();
</pre>
<p style="text-align: justify;">Attivando l&#8217;output buffering si devia l&#8217;output dello script, che invece di essere inviato al client viene memorizzato in un buffer interno. A questo punto possiamo utilizzare la funzione &#8220;<a title="php ob_get_clean()" href="http://www.php.net/manual/en/function.ob-get-clean.php" target="_blank">ob_get_clean()</a>&#8221; per recuperare il contenuto del buffer interno e cancellare quest&#8217;ultimo.</p>
<p style="text-align: justify;">Il risultato finale è che nella variabile &#8220;$result&#8221; abbiamo esattamente l&#8217;output complesso di &#8220;<a title="php var_dump" href="http://php.net/manual/en/function.var-dump.php" target="_blank">var_dump</a>&#8221; ma in formato stampabile, ovvero in formato stringa. A questo punto scrivere &#8220;$result&#8221; su un file di logging ed ottenere così un debug più semplice e veloce è un gioco da ragazzi!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/05/06/php-metodi-alternativi-per-il-debug-in-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Firefox 4 – Attivazione del salvataggio dei tab</title>
		<link>http://www.marcolecce.com/blog/2011/05/02/firefox-4-attivazione-del-salvataggio-dei-tab/</link>
		<comments>http://www.marcolecce.com/blog/2011/05/02/firefox-4-attivazione-del-salvataggio-dei-tab/#comments</comments>
		<pubDate>Mon, 02 May 2011 12:41:01 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Sistemi Operativi]]></category>
		<category><![CDATA[Varie]]></category>
		<category><![CDATA[servizi]]></category>
		<category><![CDATA[Servizi Web]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=1068</guid>
		<description><![CDATA[Una delle novità del momento nel mondo di Internet è sicuramente il rilascio di Firefox 4 , la nuova versione del browser di Mozilla. Le caratteristiche della nuova versione e la sua velocità sono davvero notevoli: una cosa che però mi ha infastidito non poco è stato che il team ha deciso molto simpaticamente di &#8230; <a href="http://www.marcolecce.com/blog/2011/05/02/firefox-4-attivazione-del-salvataggio-dei-tab/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_1070" class="wp-caption alignleft" style="width: 210px"><a href="http://www.marcolecce.com/blog/wp-content/firefox_logo.jpg"><img class="size-full wp-image-1070" title="firefox_logo" src="http://www.marcolecce.com/blog/wp-content/firefox_logo.jpg" alt="firefox" width="200" height="189" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: justify;">Una delle novità del momento nel mondo di Internet è sicuramente il rilascio di <a title="firefox 4" href="http://www.mozilla.com/en-US/firefox/fx/" target="_blank">Firefox 4</a> , la nuova versione del browser di Mozilla. Le <a title="caratteristiche firefox 4" href="http://www.mozilla.com/en-US/firefox/features/" target="_blank">caratteristiche</a> della nuova versione e la sua velocità sono davvero notevoli: una cosa che però mi ha infastidito non poco è stato che il team ha deciso molto simpaticamente di disabilitare di default il salvataggio dei tab alla chiusura del browser.</p>
<p><span id="more-1068"></span></p>
<p style="text-align: justify;">Ora, se rientrate in quella categoria di utenti che chiudono firefox con almeno 10 tab e si aspettano al suo riavvio di riaverli belli belli lì davanti&#8230;bè, in tal caso dopo l&#8217;aggiornamento alla versione 4 proverete il mio stesso fastidio.</p>
<p style="text-align: justify;">La notizia positiva è che possiamo ripristinare il salvataggio dei tab in 2 minuti, è sufficiente completare la seguente procedura:</p>
<ol>
<li>Nella barra degli indirizzo di Firefox digitiamo &#8220;<strong>about:config</strong>&#8221; e clicchiamo su Invio;</li>
<li>Clicchiamo sul pulsante &#8220;<strong>I’ll be careful, I promise!</strong>&#8220;</li>
<li>Nella finestra di dialog che si apre vediamo il campo &#8220;Filtro&#8221;: digitiamo &#8220;<strong>browser.showQuitWarning</strong>&#8221; e clicchiamo su Invio;</li>
<li>Clicchiamo due volte sul record che compare per cambiare il valore da FALSE a TRUE, oppure clicchiamo con il tasto destro del mouse e selezioniamo la voce &#8220;<strong>Toggle</strong>&#8220;.</li>
</ol>
<p>A questo punto il gioco è fatto: la modifiche saranno attive immediatamente, non è dunque necessario riavviare il browser.</p>
<p style="text-align: justify;">&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/05/02/firefox-4-attivazione-del-salvataggio-dei-tab/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Linux – Convertire i nomi dei file in minuscolo</title>
		<link>http://www.marcolecce.com/blog/2011/04/27/linux-convertire-i-nomi-dei-file-in-minuscolo/</link>
		<comments>http://www.marcolecce.com/blog/2011/04/27/linux-convertire-i-nomi-dei-file-in-minuscolo/#comments</comments>
		<pubDate>Wed, 27 Apr 2011 06:50:35 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sistemi Operativi]]></category>
		<category><![CDATA[Varie]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=1057</guid>
		<description><![CDATA[In situazioni in cui dobbiamo manipolare migliaia di file, ad esempio quando lavoriamo con archivi fotografici, è utile disporre di utility e script che ci semplificano non poco il lavoro. Tra tutti quelli che ho utilizzato negli ultimi mesi in ambiente Linux, uno dei più carini è senz&#8217;altro quello che vi presento con questo post. &#8230; <a href="http://www.marcolecce.com/blog/2011/04/27/linux-convertire-i-nomi-dei-file-in-minuscolo/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">In situazioni in cui dobbiamo manipolare migliaia di file, ad esempio quando lavoriamo con archivi fotografici, è utile disporre di utility e script che ci semplificano non poco il lavoro. Tra tutti quelli che ho utilizzato negli ultimi mesi in ambiente <a title="Linux" href="http://it.wikipedia.org/wiki/Linux" target="_blank">Linux</a>, uno dei più carini è senz&#8217;altro quello che vi presento con questo post.</p>
<p><span id="more-1057"></span></p>
<p style="text-align: justify;">Lo script una volta lanciato converte in minuscolo tutti i nomi dei file della directory in cui si trova lo script stesso. Vediamo le poche linee di codice che ci permettono di ottenere questo risultato:</p>
<pre class="brush: php">#!/bin/sh
for x in `ls`
do
if [ ! -f $x ]; then
continue
fi
lc=`echo $x  | tr &#039;[A-Z]&#039; &#039;[a-z]&#039;`
if [ $lc != $x ]; then
mv -i $x $lc
fi
done</pre>
<p style="text-align: justify;">Come vedete lo script è molto semplice e di facile lettura: alla linea 2 eseguiamo un ciclo &#8220;for&#8221; sulla base del risultato restituito dal comando &#8220;ls&#8221; (il comando che lista il contenuto di una cartella). Per ogni file contenuto nella directory in cui abbiamo eseguito lo script stesso viene salvato temporaneamente il nome nella variabile &#8220;x&#8221;: se il nome della risorsa corrisponde effetivamente ad un file, il ciclo prosegue con le altre operazione, altrimenti si passa al file successivo (questo controllo viene fatto nelle righe 4-6).</p>
<p style="text-align: justify;">Alla riga 7 utilizziamo il comando &#8220;tr&#8221; per convertire il nome del file in minuscolo, assegnando il nuovo nome alla variabile shell &#8220;lc&#8221;. La riga 8 verifica se il nuovo nome differisce dall&#8217;originale, e in caso affermativo quello originale viene sostituito con quello in minuscolo attraverso il comando &#8220;mv&#8221;. L&#8217;opzione &#8220;-i&#8221;   del comando &#8220;mv&#8221; permette di chiedere conferma per l&#8217;eventuale sovrascrittura di file esistenti.</p>
<p style="text-align: justify;">Lo script l&#8217;ho trovato in questo <a title="Linux Journal" href="http://www.linuxjournal.com/content/convert-filenames-lowercase﻿" target="_blank">sito</a>, un vero e proprio punto di riferimento per gli amici del pinguino.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/04/27/linux-convertire-i-nomi-dei-file-in-minuscolo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Framework: le configurazioni per i principali Database Adapter</title>
		<link>http://www.marcolecce.com/blog/2011/04/19/zend-framework-le-configurazioni-per-i-principali-database-adapter/</link>
		<comments>http://www.marcolecce.com/blog/2011/04/19/zend-framework-le-configurazioni-per-i-principali-database-adapter/#comments</comments>
		<pubDate>Tue, 19 Apr 2011 09:50:23 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Sviluppo Web]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=1046</guid>
		<description><![CDATA[Piccolo appunto da tenere sempre pronto per chi sviluppa con Zend Framework, il potente framework rilasciato dalla Zend Technologies. Zend Framework implementa i database Adapter per fornire un ulteriore livello di astrazione e facilitare così la connessione delle nostre applicazioni in PHP con diversi RDMBS. L&#8217;implementazione vera e propria è data dalla classe Zend_Db_Adapter : &#8230; <a href="http://www.marcolecce.com/blog/2011/04/19/zend-framework-le-configurazioni-per-i-principali-database-adapter/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_685" class="wp-caption alignleft" style="width: 195px"><a href="http://www.marcolecce.com/blog/wp-content/zend-framework.png"><img class="size-full wp-image-685" title="Zend Framework" src="http://www.marcolecce.com/blog/wp-content/zend-framework.png" alt="Zend Framework" width="185" height="187" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: justify;">Piccolo appunto da tenere sempre pronto per chi sviluppa con <a title="Zend Framework" href="http://zendframework.com/" target="_blank">Zend Framework</a>, il potente framework rilasciato dalla <a title="Zend Technologies" href="http://www.zend.com/it/" target="_blank">Zend Technologies</a>. Zend Framework implementa i database Adapter per fornire un ulteriore livello di astrazione e facilitare così la connessione delle nostre applicazioni in PHP con diversi <a title="Relational database management system" href="http://en.wikipedia.org/wiki/Relational_database_management_system" target="_blank">RDMBS</a>.</p>
<p style="text-align: justify;">L&#8217;implementazione vera e propria è data dalla classe Zend_Db_Adapter : esiste un Adapter per ogni RDMBS disponibile, e comunque il framework è predisposto per poter scrivere nuove implementazioni senza particolari problematiche. Nella <a title="Zend_Db_Adapter" href="http://framework.zend.com/manual/en/zend.db.adapter.html" target="_blank">pagina</a> della documentazione relativa alla classe <a title="Zend_Db_Adapter" href="http://framework.zend.com/manual/en/zend.db.adapter.html" target="_blank">Zend_Db_Adapter</a> è disponibile l&#8217;elenco degli Adapter che Zend_Db fornisce al driver PDO per accedere ai diversi RDMBS.</p>
<p><span id="more-1046"></span></p>
<p style="text-align: justify;">Quello che segue è un elenco delle principali configurazioni per i RDBMS più diffusi:</p>
<pre class="brush: php">
; DATABASE ADAPTER MYSQL
resources.db.adapter               = &amp;quot;PDO_MYSQL&amp;quot;
resources.db.params.dbname         = &amp;quot;database&amp;quot;
resources.db.params.username       = &amp;quot;username&amp;quot;
resources.db.params.password       = &amp;quot;password&amp;quot;
resources.db.isDefaultTableAdapter = true
;su alcune macchine potrebbe essere necessario anche questa direttiva
resources.db.params.unix_socket    = &amp;quot;/var/lib/mysql/mysql.sock&amp;quot;

; DATABASE ADAPTER POSTGRESQL
resources.db.adapter                = &amp;quot;PDO_PGSQL&amp;quot;
resources.db.params.host            = &amp;quot;localhost&amp;quot;
resources.db.params.username        = &amp;quot;username&amp;quot;
resources.db.params.password        = &amp;quot;password&amp;quot;
resources.db.params.dbname          = &amp;quot;database&amp;quot;
resources.db.isDefaultTableAdapter  = true

; DB ADAPTER ORACLE
resources.db.adapter                = &amp;quot;oracle&amp;quot;
resources.db.params.dbname          = &amp;quot;(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)))(CONNECT_DATA = (SID = database)))&amp;quot;
resources.db.params.username        = &amp;quot;username&amp;quot;
resources.db.params.password        = &amp;quot;password&amp;quot;
resources.db.isDefaultTableAdapter  = true

; DB ADAPTER SQL SERVER
resources.db.adapter               = &amp;quot;sqlsrv&amp;quot;
resources.db.params.host           = &amp;quot;pc301-VM1&amp;quot;
resources.db.params.username       = &amp;quot;username&amp;quot;
resources.db.params.password       = &amp;quot;password&amp;quot;
resources.db.params.dbname         = &amp;quot;database&amp;quot;
resources.db.isDefaultTableAdapter = true
</pre>
<p style="text-align: justify;">Chiaramente queste impostazione vanno inserite nel file &#8220;application.ini&#8221; del progetto Zend Framework. Per ulteriori approfondimento vi consiglio questo <a title="Zend Framework Documentation" href="http://doczf.mikaelkael.fr/1.11/en/zend.db.html#zend.db.adapter" target="_blank">link</a>, un&#8217;altra risorsa estremamente utile durante lo sviluppo.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/04/19/zend-framework-le-configurazioni-per-i-principali-database-adapter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google rilascia Honeycomb: al via lo sviluppo Android su tablet</title>
		<link>http://www.marcolecce.com/blog/2011/04/12/google-rilascia-honeycomb-al-via-lo-sviluppo-android-su-tablet/</link>
		<comments>http://www.marcolecce.com/blog/2011/04/12/google-rilascia-honeycomb-al-via-lo-sviluppo-android-su-tablet/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 06:56:20 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Sistemi Operativi]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=1032</guid>
		<description><![CDATA[&#160; La versione completa dell&#8217;SDK  3.0 di Android, anche conosciuta con il nome di Honeycomb, è finalmente disponibile per il download. Il nuovo SDK è un performante sistema operativo destinato principalmente al mondo dei tablet: da oggi quindi si apre anche questa strada per gli sviluppatori Android, che potranno dare libero sfogo alla loro immaginazione &#8230; <a href="http://www.marcolecce.com/blog/2011/04/12/google-rilascia-honeycomb-al-via-lo-sviluppo-android-su-tablet/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_1033" class="wp-caption aligncenter" style="width: 410px"><a href="http://www.marcolecce.com/blog/wp-content/android_honeycomb.png"><img class="size-full wp-image-1033 " title="android_honeycomb" src="http://www.marcolecce.com/blog/wp-content/android_honeycomb.png" alt="Android Honeycomb 3.0" width="400" height="250" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: justify;">&nbsp;</p>
<p style="text-align: justify;">La versione completa dell&#8217;<a title="Android 3.0 Honeycomb" href="http://developer.android.com/sdk/android-3.0-highlights.html" target="_blank">SDK  3.0 di Android</a>, anche conosciuta con il nome di Honeycomb, è finalmente disponibile per il <a title="Adroiid 3.0 download" href="http://developer.android.com/sdk/android-3.0.html" target="_blank">download</a>.</p>
<p style="text-align: justify;">Il nuovo SDK è un performante sistema operativo destinato principalmente al mondo dei tablet: da oggi quindi si apre anche questa strada per gli sviluppatori Android, che potranno dare libero sfogo alla loro immaginazione sfruttando le nuove pontenzialità di questo OS ottimizzato per schermi di dimensioni più grandi rispetto a quelli degli smartphone.</p>
<p><span id="more-1032"></span></p>
<p style="text-align: justify;">Tra le <a title="Caratteristiche Android 3.0" href="http://developer.android.com/sdk/android-3.0-highlights.html" target="_blank">features principali</a> della nuova versione dell&#8217;SDK vale la pena sottolineare le nuove opzioni di connessione, come ad esempio la possibilità di <strong>connettere una tastiera completa via USB o Bluetooth</strong>, il nuovo supporto al tethering Bluetooth (per cui più device di diversa tipologia potranno condividere connessioni di rete) e il miglioramento della gestione delle connessioni wi-fi.</p>
<p style="text-align: justify;">Sfruttando la dimensione più ambia degli schermi a disposizione, è stata <strong>migliorata la gestione delle gallery e del browser</strong>, ed è inoltre possibile sfruttare l&#8217;integrazione con nuovi framework per disegnare interfacce grafice più potenti in grado di <strong>sfruttare appieno le potenzialità del 2D e del 3D</strong>.</p>
<p style="text-align: justify;">Con il rilascio di questa versione di Android, Google diventa il principale rivale dell&#8217;<a title="iPad" href="http://www.apple.com/ipad/" target="_blank">iPad</a> della Apple&#8230;vedremo chi vincerà la guerra!</p>
<p style="text-align: justify;">&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/04/12/google-rilascia-honeycomb-al-via-lo-sviluppo-android-su-tablet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android – Personalizzare le suonerie del nostro smartphone</title>
		<link>http://www.marcolecce.com/blog/2011/03/29/android-personalizzare-le-suonerie-del-nostro-smartphone/</link>
		<comments>http://www.marcolecce.com/blog/2011/03/29/android-personalizzare-le-suonerie-del-nostro-smartphone/#comments</comments>
		<pubDate>Tue, 29 Mar 2011 05:46:54 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Sistemi Operativi]]></category>
		<category><![CDATA[Varie]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=1020</guid>
		<description><![CDATA[Ecco qui un piccolo trucco per personalizzare le suonerie del nostro smartphone Android: con questa mini guida potremo impostare in maniera comoda, semplice e diretta qualsiasi file audio come suoneria del nostro cellulare. La prima cosa da fare è creare una carrella &#8220;media&#8221; nella scheda microSD dello smartphone. All&#8217;interno di questa directory ne creeremo un&#8217;altra, &#8230; <a href="http://www.marcolecce.com/blog/2011/03/29/android-personalizzare-le-suonerie-del-nostro-smartphone/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_762" class="wp-caption alignleft" style="width: 160px"><a href="http://www.marcolecce.com/blog/wp-content/android_logo.jpg"><img class="size-full wp-image-762" title="android_logo" src="http://www.marcolecce.com/blog/wp-content/android_logo.jpg" alt="Android" width="150" height="113" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: justify;">Ecco qui un piccolo trucco per personalizzare le suonerie del nostro smartphone <a title="Android" href="http://www.android.com/" target="_blank">Android</a>: con questa mini guida potremo impostare in maniera comoda, semplice e diretta qualsiasi file audio come suoneria del nostro cellulare.</p>
<p style="text-align: justify;">La prima cosa da fare è creare una carrella &#8220;media&#8221; nella scheda microSD dello smartphone. All&#8217;interno di questa directory ne creeremo un&#8217;altra, che chiameremo &#8220;audio&#8221;.</p>
<p style="text-align: justify;">All&#8217;interno della directory &#8220;audio&#8221; ne creeremo altre 3: &#8220;notifications&#8221;, &#8220;ringtones&#8221;, &#8220;alarms&#8221;, rispettivamente per le notifiche, per le suonerie e per gli allarmi.</p>
<p><span id="more-1020"></span></p>
<p style="text-align: justify;">A questo punto tutto quello che dobbiamo fare è inserire nelle directory corrispondenti i file audio che vogliamo poter scegliere dal menu &#8220;Impostazioni&#8221; di Android. Android infatti è predisposto per leggere direttamente questa struttura gerarchica dalla scheda microSD e caricare i file corrispondenti nei rispettivi elenchi. A questo punto se mettiamo nella directory &#8220;ringtones&#8221; un brano dal titolo &#8220;Little Wing&#8221; ( ovviamente di Jimi Hendrix <img src='http://www.marcolecce.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ) questo lo ritroveremo nell&#8217;elenco delle suonerie di sistema&#8230;.sarà sufficiente selezionarla come qualsiasi suoneria del sistema per impostarla. Facile no? <img src='http://www.marcolecce.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p style="text-align: justify;">Ecco la struttura da creare nella microSD:</p>
<pre class="brush: php">
&amp;gt;media
&amp;gt;&amp;gt;audio
&amp;gt;&amp;gt;&amp;gt;notifications
&amp;gt;&amp;gt;&amp;gt;ringtones
&amp;gt;&amp;gt;&amp;gt;alarms
</pre>
<p style="text-align: justify;">Occhio ai nomi delle cartelle, è importante che siano esattamente come abbiamo indicato, altrimenti i file contenuti non verranno letti.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/03/29/android-personalizzare-le-suonerie-del-nostro-smartphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sencha ExtJs – Renderizzare codice HTML in container ExtJs</title>
		<link>http://www.marcolecce.com/blog/2011/03/25/sencha-extjs-renderizzare-codice-html-in-container-extjs/</link>
		<comments>http://www.marcolecce.com/blog/2011/03/25/sencha-extjs-renderizzare-codice-html-in-container-extjs/#comments</comments>
		<pubDate>Fri, 25 Mar 2011 09:41:17 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Ext Js]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Sviluppo Web]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=854</guid>
		<description><![CDATA[&#160; In questo tutorial vedremo come inserire codice HTML in un Container Sencha ExtJS. La soluzione di questo problema ci aiuta in tutti quei in cui abbiamo la necessita di visualizzare informazioni all&#8217;utente senza tuttavia perdere gli strumenti che ci mette a disposizione un framework potente come Sencha ExtJS. Ci sono diversi modi per renderizzare &#8230; <a href="http://www.marcolecce.com/blog/2011/03/25/sencha-extjs-renderizzare-codice-html-in-container-extjs/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">&nbsp;</p>
<div id="attachment_828" class="wp-caption alignleft" style="width: 160px"><a href="http://www.marcolecce.com/blog/wp-content/sencha.jpg"><img class="size-full wp-image-828" title="sencha extjs" src="http://www.marcolecce.com/blog/wp-content/sencha.jpg" alt="sencha extjs" width="150" height="150" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: justify;">In questo tutorial vedremo come inserire codice <a title="HTML" href="http://en.wikipedia.org/wiki/HTML" target="_blank">HTML</a> in un Container <a title="Sencha ExtJs" href="http://www.sencha.com/products/extjs/" target="_blank">Sencha ExtJS</a>. La soluzione di questo problema ci aiuta in tutti quei in cui abbiamo la necessita di visualizzare informazioni all&#8217;utente senza tuttavia perdere gli strumenti che ci mette a disposizione un framework potente come Sencha ExtJS.</p>
<p style="text-align: justify;"><span id="more-854"></span>Ci sono diversi modi per renderizzare codice HTML in un Container Sencha ExtJS, vediamo quelli più diretti:</p>
<p style="text-align: justify;">&nbsp;</p>
<pre class="brush: php">
Ext.onReady( function() {
      	new Ext.Panel({
    	    renderTo: Ext.getBody(),
            title: &#039;Esempio Blogrammazione: Html in ExtJs Container&#039;,
            items: [
                {
                      xtype: &amp;quot;panel&amp;quot;,
                      html: new Ext.XTemplate(&amp;quot;&amp;lt;a href=&#039;#&#039;&amp;gt;{value}&amp;quot;).apply({
                           value: &#039;Prima possibilit&amp;amp;agrave; possibilit&amp;amp;agrave; : XTemplate&#039;
                       })
                 },
                {
                    html: &amp;quot;&amp;lt;a href=&#039;#&#039;&amp;gt;Seconda opzione; attributo HTML del Panel&amp;lt;/a&amp;gt;&amp;quot;,
                    xtype: &amp;quot;panel&amp;quot;
                },
                {
                    xtype: &#039;box&#039;,
                    autoEl: {
                    tag: &#039;a&#039;,
                    html: &#039;Terza opzione: elemento creato con DomHelper&#039;,
                    href: &#039;#&#039;
                }
        }]
    });
});
</pre>
<p style="text-align: justify;">Nel codice dell&#8217;esempio la prima cosa che facciamo è creare un Panel (riga 2) che verrrà reinderizzato nel tag HTML &#8220;body&#8221; (riga 3) che ci servirà per contenere le tre soluzioni che vediamo ora in dettaglio.</p>
<p style="text-align: justify;">Le righe 6-11 definiscono un componente Panel del quale utilizziamo la proprietà &#8220;html&#8221;: qui creiamo un componente &#8220;XTemplate&#8221; nel quale scriviamo il codice HTML che vogliamo visualizzare nel Panel.</p>
<p style="text-align: justify;">Anche nelle righe 12-15 definiamo un componente Panel del quale utilizziamo la proprietà &#8220;html&#8221;, ma questa volta senza &#8220;XTemplate&#8221;, quindi in maniera più semplice e diretta il codice HTML che scriviamo nella proprietà &#8220;html&#8221; verrà visualizzato nel corpo nel Panel in questione.</p>
<p style="text-align: justify;">L&#8217;esempio più curioso ed interessante è sicuramente il terzo (righe 16-22): utilizzando la proprietà &#8220;autoEl&#8221; ExtJs richiama il DomHelper, un componente in grado di creare un elemento DOM a runtime. Nella sostanza quello che succede all&#8217;interno del componente &#8220;box&#8221; è che a runtime viene creato un link HTML (il tag da creare lo definiamo grazie alla proprietà &#8220;tag&#8221; &#8211; riga 19) che punta alla pagina stessa (impostazione della proprietà &#8220;href&#8221; con valore &#8220;#&#8221; &#8211; riga 21).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/03/25/sencha-extjs-renderizzare-codice-html-in-container-extjs/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>iPad2: schermo difettoso per il nuovo gioiello della Apple</title>
		<link>http://www.marcolecce.com/blog/2011/03/15/ipad2-schermo-difettoso-per-il-nuovo-gioiello-della-apple/</link>
		<comments>http://www.marcolecce.com/blog/2011/03/15/ipad2-schermo-difettoso-per-il-nuovo-gioiello-della-apple/#comments</comments>
		<pubDate>Tue, 15 Mar 2011 10:45:32 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[iPhone/iPad]]></category>
		<category><![CDATA[Varie]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=999</guid>
		<description><![CDATA[Da quanto si può vedere su YouTube e dal numero sempre più crescente di segnalazioni sembra che ormai sia certezza: iPad 2 avrebbe uno schermo difettoso. Il problema si presenta quando si visionano filmati con scene o sfondi scuri: durante la riproduzione si vedono dei fastidiosi fasci di luce che chiaramente rovinano la visualizzazione sullo &#8230; <a href="http://www.marcolecce.com/blog/2011/03/15/ipad2-schermo-difettoso-per-il-nuovo-gioiello-della-apple/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_616" class="wp-caption alignleft" style="width: 110px"><a href="http://www.marcolecce.com/blog/wp-content/apple.jpeg"><img class="size-full wp-image-616" title="Apple" src="http://www.marcolecce.com/blog/wp-content/apple.jpeg" alt="Apple" width="100" height="121" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: justify;">Da quanto si può vedere su <a title="youTube ipad2 problem " href="http://www.youtube.com/results?search_query=ipad2+bleeding&amp;aq=f" target="_blank">YouTube</a> e dal numero sempre più crescente di segnalazioni sembra che ormai sia certezza: <a title="ipad2" href="http://www.apple.com/ipad/">iPad 2</a> avrebbe uno schermo difettoso.</p>
<p style="text-align: justify;">Il problema si presenta quando si visionano filmati con scene o sfondi scuri: durante la riproduzione si vedono dei fastidiosi fasci di luce che chiaramente rovinano la visualizzazione sullo schermo LCD.</p>
<p><span id="more-999"></span></p>
<p style="text-align: justify;">I casi sembrano aumentare giorno dopo giorno, soprattutto dopo la segnalazione fatta dal sito <a title="Engadget ipad2 problem" href="http://www.engadget.com/2011/03/12/poll-is-your-ipad-2-backlight-bleeding-video/" target="_blank">Engadget</a>: anche dai principali forum del mondo Apple (<a title="MacRumors" href="http://www.macrumors.com/" target="_blank">MacRumors</a> in primis) sembrano giungere diverse conferme da parte di utenti delusi dal nuovo &#8220;gioiello&#8221; di casa <a title="Apple" href="http://www.apple.com/" target="_blank">Apple</a>.</p>
<p style="text-align: justify;">I fanatici della Apple hanno già proposto una soluzione: non tenere la luminosità della tavoletta al 100%&#8230;&#8230;.ah però! <img src='http://www.marcolecce.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Ufficialmente non è ancora stata rilasciata alcuna dichiarazione, ma se quanto finora riportato dovesse essere ufficializzato sarebbe sicuramente un brutto colpo per l&#8217;immagine della Mela e di Steve Jobs, che sulla robustezza e sulla integrità dei suoi gioielli ha fondato gran parte del marketing (e delle vendite).</p>
<p style="text-align: justify;">&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/03/15/ipad2-schermo-difettoso-per-il-nuovo-gioiello-della-apple/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Googles: la ricerca passa per le immagini</title>
		<link>http://www.marcolecce.com/blog/2011/03/11/google-googles-la-ricerca-passa-per-le-immagini/</link>
		<comments>http://www.marcolecce.com/blog/2011/03/11/google-googles-la-ricerca-passa-per-le-immagini/#comments</comments>
		<pubDate>Fri, 11 Mar 2011 07:03:48 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[iPhone/iPad]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Varie]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=985</guid>
		<description><![CDATA[E&#8217; assolutamente da provare: uno degli applicativi più strabilianti rilasciati da Google per piattaforma Android e iPhone&#8230;davvero notevole! Parliamo di Google Googles, un applicativo free che possiamo scaricare dal sito ufficiale o dal market di Android, che ci permette di gustare le potenzialità e la comodità degli attuali smartphone. Google Googles permette di eseguire ricerche &#8230; <a href="http://www.marcolecce.com/blog/2011/03/11/google-googles-la-ricerca-passa-per-le-immagini/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_987" class="wp-caption alignleft" style="width: 210px"><a href="http://www.marcolecce.com/blog/wp-content/GoogleGoggles.jpg"><img class="size-full wp-image-987 " title="google goggles" src="http://www.marcolecce.com/blog/wp-content/GoogleGoggles.jpg" alt="google googles" width="200" height="200" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: justify;">E&#8217; assolutamente da provare: uno degli applicativi più strabilianti rilasciati da Google per piattaforma Android e iPhone&#8230;davvero notevole! Parliamo di <a title="google googles" href="http://www.google.com/mobile/goggles/#text" target="_blank">Google Googles</a>, un applicativo free che possiamo scaricare dal <a title="google googles" href="http://www.google.com/mobile/goggles/#text" target="_blank">sito ufficiale</a> o dal market di Android, che ci permette di gustare le potenzialità e la comodità degli attuali smartphone.</p>
<p style="text-align: justify;"><strong><a title="google googles" href="http://www.google.com/mobile/goggles/#text" target="_blank">Google Googles</a> permette di eseguire ricerche per immagini</strong>: il funzionamento è molto semplice.<br />
<span id="more-985"></span>Tutto quello che dobbiamo fare è inquadrare il nostro obiettivo, scattare una fotografia, e far partire la ricerca&#8230;.i risultati sono sorprendenti. Le immagini inquadrate vengono analizzate alla ricerca di testo o loghi conosciuti, e i risultati proposti sono un insieme di informazioni rilevanti in base a quanto è stato scoperto dall&#8217;analisi.</p>
<p style="text-align: justify;">E&#8217; un applicativo incredibile se pensate che possiamo far analizzare non solo<strong> immagini generiche</strong>, ma anche <strong>paesaggi, libri, opere d&#8217;arte, biglietti da visita, bottiglie di vino, loghi</strong>&#8230;davvero uno strumento comodo da portare sempre con noi.</p>
<p style="text-align: justify;">Pensatevi in gita in una città d&#8217;arte come Firenze o Roma: girate per la città,  ed è sufficiente scattare qualche fotografia per avere tutte le informazioni sul soggetto che avete inquadrato&#8230;.ancora una volta grazie Google! <img src='http://www.marcolecce.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p style="text-align: justify;">&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/03/11/google-googles-la-ricerca-passa-per-le-immagini/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zend Framework – Impostare la document root da .htaccess</title>
		<link>http://www.marcolecce.com/blog/2011/03/04/zend-framework-impostare-la-document-root-da-htaccess/</link>
		<comments>http://www.marcolecce.com/blog/2011/03/04/zend-framework-impostare-la-document-root-da-htaccess/#comments</comments>
		<pubDate>Fri, 04 Mar 2011 11:17:28 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[Sviluppo Web]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=977</guid>
		<description><![CDATA[Questo è uno dei trucchetti che può davvero far comodo conoscere quando sviluppiamo web application con Zend Framework (ZF). Quando creiamo un progetto con ZF ci troviamo di fronte una struttura tipicamente simile alla seguente: nome_preogetto/ application/ controllers/ models/ views/ scripts/ library/ public/ tests/ Nella cartella &#8220;public&#8221; mettiamo tutti i file che devono risultare accessibili &#8230; <a href="http://www.marcolecce.com/blog/2011/03/04/zend-framework-impostare-la-document-root-da-htaccess/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_685" class="wp-caption alignleft" style="width: 195px"><a href="http://www.marcolecce.com/blog/wp-content/zend-framework.png"><img class="size-full wp-image-685" title="Zend Framework" src="http://www.marcolecce.com/blog/wp-content/zend-framework.png" alt="Zend Framework" width="185" height="187" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: justify;">Questo è uno dei trucchetti che può davvero far comodo conoscere quando sviluppiamo web application con Zend Framework (ZF). Quando creiamo un progetto con ZF ci troviamo di fronte una struttura tipicamente simile alla seguente:</p>
<pre class="brush: php">
nome_preogetto/
   application/
      controllers/
      models/
      views/
         scripts/
   library/
   public/
   tests/
</pre>
<p><span id="more-977"></span></p>
<p style="text-align: justify;">Nella cartella &#8220;public&#8221; mettiamo tutti i file che devono risultare accessibili direttamente (immagini, file index.php, ecc.), mentre nelle altre cartelle strutturiamo le altri parti della web application. Sarebbe dunque molto comodo far puntare la document root del web server su questa directory. Spesso però non abbiamo la possibilità di modificare la configurazione del web server, e dobbiamo arraggiarci in altro modo. </p>
<p>Per risolvere il problema possiamo sfruttare l&#8217;.htaccess in questo modo: per prima cosa spostiamo l&#8217;.htaccess che normamente troviamo nella directory &#8220;public&#8221; nella directory &#8220;nome_progetto&#8221;, ovvero nella root directory; nel file .htaccess inseriamo il seguente codice:</p>
<p style="text-align: justify;">&nbsp;</p>
<pre class="brush: php">
SetEnv APPLICATION_ENV production

RewriteEngine On
RewriteRule ^\.htaccess$ - [F]
RewriteCond %{REQUEST_URI} =&amp;amp;amp;quot;&amp;amp;amp;quot;
RewriteRule ^.*$ /public/index.php [NC,L]
RewriteCond %{REQUEST_URI} !^/public/.*$
RewriteRule ^(.*)$ /public/$1

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [NC,L]

RewriteRule ^public/.*$ /public/index.php [NC,L]
</pre>
<p style="text-align: justify;">Questa configurazione ci risolve il problema senza apportare modifiche alla struttura standard della web application. Alla riga 1. abbiamo impostato il valore della variabile d&#8217;ambiente in cui gira l&#8217;applicazione: chiaramente il suo valore dipende da quelli impostati e dall&#8217;ambiente in cui sta girando la web application, ma se avessimo configurato il valore &#8220;development&#8221; e fossimo in ambiente di sviluppo, al posto di &#8220;production&#8221; dovremmo mettere &#8220;development&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/03/04/zend-framework-impostare-la-document-root-da-htaccess/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Art Project: visitiamo i musei del mondo dal nostro PC</title>
		<link>http://www.marcolecce.com/blog/2011/03/01/google-art-project-visitiamo-i-musei-del-mondo-dal-nostro-pc/</link>
		<comments>http://www.marcolecce.com/blog/2011/03/01/google-art-project-visitiamo-i-musei-del-mondo-dal-nostro-pc/#comments</comments>
		<pubDate>Tue, 01 Mar 2011 10:00:51 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Servizi Web]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=969</guid>
		<description><![CDATA[Mettiamo insieme Google, i più importanti musei del mondo e le tecnologie StreeView: ecco come nasce il progetto Google Art Project. Grazie ad accordi presi con alcuni tra i più importanti musei del mondo, Big G è riuscito a portare nelle case di tutti noi le opere e gli artisti più importanti della storia: sarà &#8230; <a href="http://www.marcolecce.com/blog/2011/03/01/google-art-project-visitiamo-i-musei-del-mondo-dal-nostro-pc/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_971" class="wp-caption alignleft" style="width: 310px"><a href="http://www.marcolecce.com/blog/wp-content/Google-Art-Project.jpg"><img class="size-full wp-image-971" title="Google-Art-Project" src="http://www.marcolecce.com/blog/wp-content/Google-Art-Project-e1298973368868.jpg" alt="google art project" width="300" height="161" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: justify;">Mettiamo insieme Google, i più importanti musei del mondo e le tecnologie <a title="StreetView" href="http://www.google.com/intl/en_us/help/maps/streetview/">StreeView</a>: ecco come nasce il progetto <a title="google art project" href="http://www.googleartproject.com/">Google Art Project</a>.</p>
<p style="text-align: justify;">Grazie ad accordi presi con alcuni tra i più importanti musei del mondo, Big G è riuscito a portare nelle case di tutti noi le opere e gli artisti più importanti della storia: sarà infatti possibile esplorare e visitare musei come ad esempio la Nation Gallery di Londra, il Van Gogh Museum di Amsterdam, il Metropolitan Museum of Art di New York, solo per citarne alcuni, stando comodamente seduti davanti al nostro PC.</p>
<p><span id="more-969"></span></p>
<p style="text-align: justify;">Attraverso la tecnologia StreetView è possibile muoversi all&#8217;interno delle stanze dei musei e delle gallerie d&#8217;arte, visitando le opere in esposizione proprio come se fossimo all&#8217;interno degli edifici. Per ogni opera è inoltre disponibile il dettaglio: in questa sezione sono raccolte tutte le informazioni principali dell&#8217;opera, come ad esempio i dettagli tecnici, alcune informazioni sull&#8217;autore e l&#8217;elenco delle altre opere dell&#8217;artista disponibili attualmente nel progetto. È anche possibile utilizzare lo zoom per osservare ogni particolare dell&#8217;opera stessa, con un livello di dettaglio impressionante.</p>
<p style="text-align: justify;">Per farsi un&#8217;idea sulle funzionalità fornite dal servizio sono disponibili due video su YouTube: il <a title="Art Project Google" href="http://www.youtube.com/watch?v=GThNZH5Q1yY&amp;feature=player_embedded#">primo</a> presenta il progetto mentre il <a title="Art Project Behind the scenes" href="http://www.youtube.com/watch?v=aYXdEUB0VgQ&amp;feature=player_embedded">secondo</a> ne spiega il &#8220;dietro le quinte&#8221;.</p>
<p style="text-align: justify;">Attualmente sono disponibile 17 musei di 11 città diverse, per un totale di 385 sale da visitare e circa mille opere di 486 artisti diversi da gustarsi. Davvero un bellissimo regalo da parte di Google.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/03/01/google-art-project-visitiamo-i-musei-del-mondo-dal-nostro-pc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apple – iPad 2 sarà presto tra noi!</title>
		<link>http://www.marcolecce.com/blog/2011/02/24/apple-ipad-2-sara-presto-tra-noi/</link>
		<comments>http://www.marcolecce.com/blog/2011/02/24/apple-ipad-2-sara-presto-tra-noi/#comments</comments>
		<pubDate>Thu, 24 Feb 2011 07:01:39 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Varie]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=961</guid>
		<description><![CDATA[Secondo alcuni siti d&#8217;oltreoceano sembra che il 2 marzo la Apple organizzerà un evento a San Francisco per presentare il nuovo gioiello di Steve Jobs: la nuova versione dell&#8217;iPad. Sebbene sull&#8217;evento non vi sia alcuna certezza, crescono naturalmente le aspettative per il lancio del nuovo prodotto Apple, che questa volta però, a differenza dell&#8217;iPad 1, &#8230; <a href="http://www.marcolecce.com/blog/2011/02/24/apple-ipad-2-sara-presto-tra-noi/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_616" class="wp-caption alignleft" style="width: 110px"><a href="http://www.marcolecce.com/blog/wp-content/apple.jpeg"><img class="size-full wp-image-616" title="Apple" src="http://www.marcolecce.com/blog/wp-content/apple.jpeg" alt="Apple" width="100" height="121" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: justify;">Secondo alcuni siti d&#8217;oltreoceano sembra che il 2 marzo la <a title="Apple" href="http://www.apple.com/" target="_blank">Apple</a> organizzerà un evento a San Francisco per presentare il nuovo gioiello di Steve Jobs: la nuova versione dell&#8217;iPad. Sebbene sull&#8217;evento non vi sia alcuna certezza, crescono naturalmente le aspettative per il lancio del nuovo prodotto <a title="Apple" href="http://www.apple.com/" target="_blank">Apple</a>, che questa volta però, a differenza dell&#8217;iPad 1, dovrà scontrarsi con diversi concorrenti, come ad esempio <a title="Xoom Motorola" href="http://www.motorola.com/Consumers/US-EN/Consumer-Product-and-Services/Tablets/ci.MOTOROLA-XOOM-US-EN.overview" target="_blank">Xoom</a> di Motorola, <a title="Galaxy Samsung" href="http://galaxytab.samsungmobile.com/" target="_blank">Galaxy</a> della Samsung, G-Slate di Lg e così via.</p>
<p><span id="more-961"></span></p>
<p style="text-align: justify;">Sebbene le caratteristiche dell&#8217;iPad 2 siano ancora segrete, in perfetto stile Jobs, voci di corridoio parlano di un modello più leggero dotato di più RAM e di un processore decisamente più potente, di una videocamera frontale e grafica avanzata per giochi in 3D.</p>
<p style="text-align: justify;">Mentre aspettiamo notizie più certe possiamo vedere in questo <a title="iPad 2" href="http://www.youtube.com/watch?v=ct1_r_61sk8" target="_blank">video</a> la proposta di un ragazzo per la nuova versione dell&#8217;iPad 2&#8230;da non perdere! <img src='http://www.marcolecce.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p style="text-align: justify;">
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/02/24/apple-ipad-2-sara-presto-tra-noi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apple – Steve Jobs sta peggio del previsto</title>
		<link>http://www.marcolecce.com/blog/2011/02/17/apple-steve-jobs-sta-peggio-del-previsto/</link>
		<comments>http://www.marcolecce.com/blog/2011/02/17/apple-steve-jobs-sta-peggio-del-previsto/#comments</comments>
		<pubDate>Thu, 17 Feb 2011 07:00:40 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Varie]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=950</guid>
		<description><![CDATA[La notizia è di qualche ora fa: secondo la stampa statunitense le condizione di salute di Steve Jobs sarebbero peggiori del previsto. Le notizie rivelate da alcuni quotidiani (National Inquirer) sembrano confermare che il fondatore di Apple stia nuovamente affrontando un ritorno del cancro al pancreas diagnosticatogli per la prima volta nel 2004. Secondo uno &#8230; <a href="http://www.marcolecce.com/blog/2011/02/17/apple-steve-jobs-sta-peggio-del-previsto/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">
<div id="attachment_951" class="wp-caption alignleft" style="width: 290px"><a href="http://www.marcolecce.com/blog/wp-content/jobs.jpg"><img class="size-full wp-image-951" title="Steve Jobs" src="http://www.marcolecce.com/blog/wp-content/jobs.jpg" alt="Steve Jobs" width="280" height="188" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: justify;">La notizia è di qualche ora fa: secondo la <a title="Daily News" href="http://www.nydailynews.com/news/national/2011/02/16/2011-02-16_apple_ceo_steve_jobs_currently_receiving_treatment_at_same_cancer_clinic_as_patr.html" target="_blank">stampa statunitense</a> le condizione di salute di Steve Jobs sarebbero peggiori del previsto. Le notizie rivelate da alcuni quotidiani (<em>National Inquirer</em>) sembrano confermare che il fondatore di Apple stia nuovamente affrontando un ritorno del cancro al pancreas diagnosticatogli per la prima volta nel 2004.</p>
<p style="text-align: justify;">Secondo uno specialista interrogato dal <em>National Inquirer, </em>il<em> </em>Dr. Samuel Jacobson,<em> </em>le condizioni di Jobs sembrano talmente gravi da lasciargli 6 settimane di vita.</p>
<p style="text-align: justify;">Anche se le ultime foto divulgate dalla stampa statunitense e le notizie della blogosfera non sono per nulla incoraggianti, speriamo  tanto che le previsioni del Dr. Jacobson si rivelino infondate.</p>
<p style="text-align: justify;">
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/02/17/apple-steve-jobs-sta-peggio-del-previsto/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sencha – Slide, Fade, Highlight: effetti grafici con ExtJs</title>
		<link>http://www.marcolecce.com/blog/2011/02/15/sencha-slide-fade-highlight-effetti-grafici-con-extjs/</link>
		<comments>http://www.marcolecce.com/blog/2011/02/15/sencha-slide-fade-highlight-effetti-grafici-con-extjs/#comments</comments>
		<pubDate>Tue, 15 Feb 2011 07:01:41 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Ext Js]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Sviluppo Web]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=927</guid>
		<description><![CDATA[Fornire effetti visuali interessanti e piacevoli ad una applicazione è un elemento importante nella progettazione ed implementanzione delle interfacce grafiche: grazie ad essi infatti possiamo non solo fornire informazioni e feedback all&#8217;utente finale in maniera semplice ed estremamente intuitiva e gradevole, ma anche e soprattutto rendere la navigazione del sito piacevole e decisamente più accattivante. &#8230; <a href="http://www.marcolecce.com/blog/2011/02/15/sencha-slide-fade-highlight-effetti-grafici-con-extjs/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_828" class="wp-caption alignleft" style="width: 160px"><a href="http://www.marcolecce.com/blog/wp-content/sencha.jpg"><img class="size-full wp-image-828" title="sencha extjs" src="http://www.marcolecce.com/blog/wp-content/sencha.jpg" alt="sencha extjs" width="150" height="150" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: justify;">Fornire effetti visuali interessanti e piacevoli ad una applicazione è un elemento importante nella progettazione ed implementanzione delle interfacce grafiche: grazie ad essi infatti possiamo non solo fornire informazioni e feedback all&#8217;utente finale in maniera semplice ed estremamente intuitiva e gradevole, ma anche e soprattutto rendere la navigazione del sito piacevole e decisamente più accattivante.</p>
<p style="text-align: justify;">In questo tutorial vedremo alcuni dei più importanti effetti grafici che <a title="Sencha ExtJs" href="http://www.sencha.com/products/extjs/" target="_blank">Sencha ExtJs</a> ci permette di applicare agli elementi della nostra interfaccia. Vedremo come, con pochissime righe di codice e con qualche accortezza, possiamo dare alle nostre interfacce tutto un altro aspetto.</p>
<p><span id="more-927"></span></p>
<h3>Highlight</h3>
<p>L&#8217;Highlight è un interessante effetto visuale che ci permette di evidenziare determinati messaggi, focalizzando l&#8217;attenzione dell&#8217;utente su ciò che gli vogliamo comunicare (ad esempio un cambiamento nell&#8217;interfaccia, fornire un feedback, ecc.).</p>
<pre class="brush: php">
 Ext.get(&#039;elemento_html&#039;).highlight( &#039;00ff77&#039;, {
	attr: &#039;background-color&#039;,
        easing: &#039;easeOut&#039;,
	duration: 3
 });
</pre>
<p style="text-align: justify;">Applichiamo questo effetto ad esempio ad un DIV <a title="HTML" href="http://www.w3schools.com/html/html_intro.asp" target="_blank">HTML</a> con attributo id uguale a &#8220;elemento_html&#8221;: cambiano il colore di default (giallo) con un a nostra scelta (00ff77), applichiamo l&#8217;effetto all&#8217;attributo &#8216;background-color&#8217; con un effetto a scomparsa (&#8216;easeOut&#8217;), il tutto per una durata di 3 secondi circa.</p>
<h3 style="text-align: justify;"><strong>Slide</strong></h3>
<p style="text-align: justify;">Ci sono due tipi di slide, &#8220;slideIn&#8221; e &#8220;slideOut&#8221;: entrambi permettono rispettivamente di visualizzare/nascondere degli elementi nello schermo con un effetto davvero gradevole ed interessante. Ecco il codice:</p>
<pre class="brush: php">
var el = Ext.get(&#039;element&#039;);
Ext.get(&#039;slideIn&#039;).on(&#039;click&#039;,function(){
	el.slideIn(); //visualizza l&#039;elemento
});
Ext.get(&#039;slideOut&#039;).on(&#039;click&#039;,function(){
	el.slideOut(); //nascondi l&#039;elemento
});
</pre>
<p style="text-align: justify;">Anche in questo caso applichiamo l&#8217;effetto ad un elemento <a title="HTML" href="http://www.w3schools.com/html/html_intro.asp" target="_blank">HTML</a>, che può essere un DIV con attributo id uguale a &#8216;element&#8217;.  In <a title="HTML" href="http://www.w3schools.com/html/html_intro.asp" target="_blank">HTML</a> dobbiamo anche creare altri due elementi che devono avere l&#8217;id uguale a &#8216;slideIn&#8217; e &#8216;slideOut&#8217;  su cui cliccare per attivare l&#8217;effetto: attraverso la funzione &#8220;on&#8221; infatti stiamo catturando l&#8217;evento &#8216;click&#8217; sugli elementi <a title="HTML" href="http://www.w3schools.com/html/html_intro.asp" target="_blank">HTML</a> &#8216;slideIn&#8217; e &#8216;slideOut&#8217;, che una volta cliccati eseguiranno il codice corrispondente.</p>
<h3><strong><strong>Frame</strong></strong></h3>
<p style="text-align: justify;">L&#8217;effetto Frame è un particolare effetto grafico che crea una sorta di cornice intorno all&#8217;elemento a cui è applicato, cornice che scompare in automatico dopo un tempo che possiamo impostare da codice. E&#8217; molto utile per fornire feedback efficaci all&#8217;utente, ad esempio quando attraverso chiamate <a title="Ajax" href="http://it.wikipedia.org/wiki/AJAX" target="_blank">Ajax</a> sono stati modificati dati di una porzione della pagina web. Per ottenere l&#8217;effetto sono sufficienti queste poche righe di codice:</p>
<pre class="brush: php">
var el = Ext.get(&#039;frame_this&#039;);
Ext.get(&#039;element&#039;).on(&#039;click&#039;,function(){
 el.frame(&#039;ff0000&#039;,3);
});
</pre>
<p style="text-align: justify;">dove impostiamo la durata dell&#8217;effetto a 3 secondi e il colore della cornice visualizzata a &#8216;ff0000&#8242;. Anche in questo caso &#8216;element&#8217; è l&#8217;elemento <a title="HTML" href="http://www.w3schools.com/html/html_intro.asp" target="_blank">HTML</a> sul quale clicchiamo per scatenare l&#8217;effetto frame, mentre &#8216;frame_this&#8217; è l&#8217;elemento <a title="HTML" href="http://www.w3schools.com/html/html_intro.asp" target="_blank">HTML</a> su cui viene applicato l&#8217;effetto.</p>
<p style="text-align: justify;">Vi sono molti altri effetti disponibili, come ad esempio lo <strong>Shift</strong>, che permette di cambiare posizione, dimensione e opacità nello stesso momento, l&#8217;<strong>Easing</strong> che permette di accellerare/decellerare un determinato effetto, lo <strong>Scale</strong> che invece permette di ridimesionare un elemento, e molto altro ancora.</p>
<p style="text-align: justify;">Tutti possono essere impostati sostanzialmente nello stesso modo degli esempi che abbiamo visto: molti altri esempi si trovano sul sito ufficiale di <a title="Sencha ExtJs" href="http://www.sencha.com/products/extjs/" target="_blank">Sencha ExtJs</a>, o nell&#8217;area dedicata ai <a title="Sencha Extjs Tutorial" href="http://ww.extjs.com/learn/Tutorial:Easy_ExtJs_Part_-1" target="_blank">tutorial</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/02/15/sencha-slide-fade-highlight-effetti-grafici-con-extjs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Google – Big G omaggia Verne con un nuovo logo</title>
		<link>http://www.marcolecce.com/blog/2011/02/08/google-big-g-omaggia-verne-con-un-nuovo-logo/</link>
		<comments>http://www.marcolecce.com/blog/2011/02/08/google-big-g-omaggia-verne-con-un-nuovo-logo/#comments</comments>
		<pubDate>Tue, 08 Feb 2011 07:14:15 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Varie]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Servizi Web]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=940</guid>
		<description><![CDATA[La nuova pagina di Google si presenta con un divertissimo logo dedicato al grande scrittore francese Jules Verne, autore di alcuni tra i più interessanti, originali e coinvolgenti racconti di avventura comead esempio &#8220;Viaggio al centro della Terra&#8221; e &#8220;Ventimila leghe sotto i mari&#8220;, racconto a cui si ispira evidentemente il nuovo logo di Big &#8230; <a href="http://www.marcolecce.com/blog/2011/02/08/google-big-g-omaggia-verne-con-un-nuovo-logo/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">La nuova pagina di Google si presenta con un divertissimo logo dedicato al grande scrittore francese <a title="Jules Verne" href="http://it.wikipedia.org/wiki/Jules_Verne" target="_blank">Jules Verne</a>, autore di alcuni tra i più interessanti, originali e coinvolgenti racconti di avventura comead esempio &#8220;<a title="Viaggio al centro della terra" href="http://it.wikipedia.org/wiki/Viaggio_al_centro_della_Terra_%28romanzo%29" target="_blank">Viaggio al centro della Terra</a>&#8221; e &#8220;<a title="Ventimila leghe sotto i mari" href="http://it.wikipedia.org/wiki/Ventimila_leghe_sotto_i_mari_%28romanzo%29" target="_blank">Ventimila leghe sotto i mari</a>&#8220;, racconto a cui si ispira evidentemente il nuovo logo di Big G:</p>
<p style="text-align: justify;">
<div id="attachment_941" class="wp-caption aligncenter" style="width: 510px"><a href="http://www.marcolecce.com/blog/wp-content/google_verne.jpg"><img class="size-full wp-image-941" title="google_verne" src="http://www.marcolecce.com/blog/wp-content/google_verne.jpg" alt="Google logo" width="500" height="141" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: justify;">
<p>Oltre al divertente ed originale aspetto grafico,  possiamo giocare con il logo attraverso la freccia direzionale che possiamo trovare sulla destra. L&#8217;azienda di Mountain View ha molto in comune con Verne: è costantemente fonte di ispirazione, innovatrice, originale e decisamente coivolgente.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/02/08/google-big-g-omaggia-verne-con-un-nuovo-logo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android – Sempre più vicina la conquista del mondo</title>
		<link>http://www.marcolecce.com/blog/2011/02/02/android-sempre-piu-vicina-la-conquista-del-mondo/</link>
		<comments>http://www.marcolecce.com/blog/2011/02/02/android-sempre-piu-vicina-la-conquista-del-mondo/#comments</comments>
		<pubDate>Wed, 02 Feb 2011 08:11:11 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[iPhone/iPad]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Varie]]></category>
		<category><![CDATA[Windows Mobile]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=932</guid>
		<description><![CDATA[Un articolo pubblicato sul Guardian aggiorna le stime sulla vendita di smartphone: Android risulta essere la piattaforma smartphone più diffusa al mondo (dati relativi all&#8217;ultimo quarto del 2010). La piattaforma di Google gira su circa 32.9 milioni di cellulari, superando addirittura Symbian che si piazza al secondo posto con 31 milioni. Davvero niente male!! A &#8230; <a href="http://www.marcolecce.com/blog/2011/02/02/android-sempre-piu-vicina-la-conquista-del-mondo/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div id="attachment_762" class="wp-caption alignleft" style="width: 160px"><a href="http://www.marcolecce.com/blog/wp-content/android_logo.jpg"><img class="size-full wp-image-762" title="android_logo" src="http://www.marcolecce.com/blog/wp-content/android_logo.jpg" alt="Android" width="150" height="113" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: justify;">Un articolo pubblicato sul <a title="The Guardian" href="http://www.guardian.co.uk/technology/2011/jan/31/android-symbian-smartphone-sales" target="_blank">Guardian</a> aggiorna le stime sulla vendita di smartphone: <strong><a title="Android" href="http://www.android.com/" target="_blank">Android</a> risulta essere la piattaforma smartphone più diffusa al mondo</strong> (dati relativi all&#8217;ultimo quarto del 2010).</p>
<p style="text-align: justify;">La piattaforma di <a title="google" href="http://www.google.com/" target="_blank">Google</a> gira su circa 32.9 milioni di cellulari, superando addirittura <a title="Symbian" href="http://blog.symbian.org/" target="_blank">Symbian</a> che si piazza al secondo posto con 31 milioni. Davvero niente male!! A quanto pare, come sottolineato nell&#8217;articolo, sembra che l&#8217;utenza cominci ad apprezzare di poter utilizzare un sistema completamente open source sul proprio smartphone, senza bisogno di alcuna licenza.<br />
<span id="more-932"></span></p>
<p style="text-align: justify;">A perdere maggiore terreno sembra essere <a title="Microsoft" href="http://www.microsoft.com/en/us/default.aspx" target="_blank">Microsoft</a>, che nonostante il lancio della nuova piattaforma <a title="Windows Phone 7" href="http://mobile.microsoft.com/windowsphone/en-gb/default.aspx" target="_blank">Windows Phone 7</a> sembra non riuscire a reggere il passo della concorrenza. Di seguito trovate la tabella con le stime sulle vendite di smartphone nell&#8217;ultimo quarto del 2010:</p>
<p style="text-align: center;">
<div id="attachment_933" class="wp-caption aligncenter" style="width: 480px"><a href="http://www.marcolecce.com/blog/wp-content/stime_vendita_smartphone_2010.jpg"><img class="size-full wp-image-933 " title="stime_vendita_smartphone_2010" src="http://www.marcolecce.com/blog/wp-content/stime_vendita_smartphone_2010.jpg" alt="stime vendite smartphone 2010" width="470" height="273" /></a><p class="wp-caption-text">fonte: The Guardian</p></div>
<p style="text-align: justify;">I dati riportati nella tabella sono impressionanti, soprattutto se confrontati con quelli del 2009: l&#8217;ascesa di <strong><a title="Android" href="http://www.android.com/" target="_blank">Android</a></strong> sembra inarrestabile!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/02/02/android-sempre-piu-vicina-la-conquista-del-mondo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPhone – L’ app più scaricata è stata sviluppata da un 14enne</title>
		<link>http://www.marcolecce.com/blog/2011/01/20/iphone-l-app-piu-scaricata-e-stata-sviluppata-da-un-14enne/</link>
		<comments>http://www.marcolecce.com/blog/2011/01/20/iphone-l-app-piu-scaricata-e-stata-sviluppata-da-un-14enne/#comments</comments>
		<pubDate>Thu, 20 Jan 2011 09:23:32 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[iPhone/iPad]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Varie]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=913</guid>
		<description><![CDATA[Più di 1,5 milioni di download: basterebbe questa come notizia per rendere Bubble Ball il fenomeno del momento. Ma c&#8217;è di più: sì, perchè l&#8217;autore di questa app è Robert Nay, un ragazzino di 14 anni nato a Spanish Fork, nello Utah. Il gioco, basato sui principi della fisica, consiste nel far compiere un percorso &#8230; <a href="http://www.marcolecce.com/blog/2011/01/20/iphone-l-app-piu-scaricata-e-stata-sviluppata-da-un-14enne/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">
<div id="attachment_616" class="wp-caption alignleft" style="width: 110px"><a href="http://www.marcolecce.com/blog/wp-content/apple.jpeg"><img class="size-full wp-image-616" title="Apple" src="http://www.marcolecce.com/blog/wp-content/apple.jpeg" alt="Apple" width="100" height="121" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: justify;">Più di 1,5 milioni di download: basterebbe questa come notizia per rendere <a title="Bubble Ball" href="http://itunes.apple.com/us/app/bubble-ball/id412089940?mt=8" target="_blank">Bubble Ball</a> il fenomeno del momento. Ma c&#8217;è di più: sì, perchè l&#8217;autore di questa app è Robert Nay, <strong>un ragazzino di 14 anni</strong> nato a Spanish Fork, nello Utah.</p>
<p style="text-align: justify;">Il gioco, basato sui principi della fisica, consiste nel far compiere un percorso ad una pallina fino al raggiungimento del traguardo. Il gioco è davvero divertente e coinvolgente: funziona davvero molto bene, considerando diverse casistiche e problematiche (posizionamento degli oggetti, simulazione della gravità, e molto altro ancora).</p>
<p style="text-align: justify;">Robert ha distribuito la app gratuitamente, sia per <a title="iPhone" href="http://www.apple.com/iphone/" target="_blank">iPhone</a> che per <a title="Android" href="http://www.android.com/" target="_blank">Android</a>, ed ha già fondato un&#8217;azienda, la Nav Games, con la quale intende sviluppare molti altri giochi e apps.</p>
<p style="text-align: justify;">Potrebbe sembrare la solita caccia al fenomeno, ma vi consiglio di provare l&#8217;app: dopo vi verrà solo da dire&#8230;..&#8221;Complimenti&#8221;!</p>
<p style="text-align: justify;">
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/01/20/iphone-l-app-piu-scaricata-e-stata-sviluppata-da-un-14enne/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ExtJs – Gestione di un albero in un layout complesso con PHP</title>
		<link>http://www.marcolecce.com/blog/2011/01/19/extjs-gestione-di-un-albero-in-un-layout-complesso-con-php/</link>
		<comments>http://www.marcolecce.com/blog/2011/01/19/extjs-gestione-di-un-albero-in-un-layout-complesso-con-php/#comments</comments>
		<pubDate>Wed, 19 Jan 2011 06:30:39 +0000</pubDate>
		<dc:creator>marco</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Ext Js]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[MySql]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Sviluppo Web]]></category>

		<guid isPermaLink="false">http://www.marcolecce.com/blog/?p=864</guid>
		<description><![CDATA[In questo articolo vedremo come gestire in un layout complesso un tree panel ExtJs con PHP. Il tree panel è un componente ExtJs che ci permette di gestire una categorizzazione di elementi attraverso l&#8217;utilizzo di un albero: l&#8217;albero è molto comodo per gestire grandi quatità di dati, perchè essendo una struttura gerarchica risulta chiara e &#8230; <a href="http://www.marcolecce.com/blog/2011/01/19/extjs-gestione-di-un-albero-in-un-layout-complesso-con-php/">Read more <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">
<div id="attachment_828" class="wp-caption alignleft" style="width: 160px"><a href="http://www.marcolecce.com/blog/wp-content/sencha.jpg"><img class="size-full wp-image-828" title="sencha extjs" src="http://www.marcolecce.com/blog/wp-content/sencha.jpg" alt="sencha extjs" width="150" height="150" /></a><p class="wp-caption-text">fonte: dal web</p></div>
<p style="text-align: justify;">In questo articolo vedremo come gestire in un layout complesso un tree panel <a title="Sencha ExtJs" href="http://www.sencha.com/products/js/" target="_blank">ExtJs</a> con <a title="PHP" href="http://www.php.net/" target="_blank">PHP</a>. Il tree panel è un componente <a title="Sencha ExtJs" href="http://www.sencha.com/products/js/" target="_blank">ExtJs</a> che ci permette di gestire una categorizzazione di elementi attraverso l&#8217;utilizzo di un albero: l&#8217;albero è molto comodo per gestire grandi quatità di dati, perchè essendo una struttura gerarchica risulta chiara e semplice da utilizzare per l&#8217;utente finale.</p>
<p style="text-align: justify;">Un &#8220;layout complesso&#8221; è un layout che combina insieme diverse strutture, in modo da creare delle interfacce più ricche di informazioni e che, interagendo tra loro, permettono di usufruire delle informazioni in maniera più chiara e diretta. Prima di iniziare ad analizzare il codice, cerchiamo di focalizzare quanto vogliamo ottenere. Il risultato finale di questo tutorial è disponibile al seguente <a title="Sencha Tree ExtJs" href="http://www.marcolecce.com/blog/Esempi/esempio10/" target="_blank">indirizzo</a>.</p>
<p style="text-align: justify;"><span id="more-864"></span></p>
<p style="text-align: justify;">La figura di seguito (fig. 1) mostra la struttra dell&#8217;esempio. Il layout è composto da un componente Window che contiene altri due componenti: un TreePanel e un Panel. Ovviamente ci sono diverse configurazioni possibilli per comporre layout di questo tipo, soprattutto quando si può disporre di un framework potente come <a title="Sencha ExtJs" href="http://www.sencha.com/products/js/" target="_blank">Sencha ExtJs</a>.</p>
<p style="text-align: justify;">
<div class="mceTemp" style="text-align: justify;">
<dl id="attachment_875" class="wp-caption alignleft" style="width: 313px;">
<dt class="wp-caption-dt"><a href="http://www.marcolecce.com/blog/wp-content/struttura_esempio10.jpeg"><img class="size-full wp-image-875 " title="struttura_esempio10" src="http://www.marcolecce.com/blog/wp-content/struttura_esempio10.jpeg" alt="Sencha Layout Complesso" width="303" height="228" /></a></dt>
<dd class="wp-caption-dd">fig. 1</dd>
</dl>
</div>
<p style="text-align: justify;">
<p style="text-align: justify;">Quello che vogliamo ottenere è di far interagire il TreePanel con il Panel: a particolari eventi scatenati nel TreePanel deve corrispondere un feedback nel Panel: nel nostro esempio vogliamo che all&#8217;evento &#8220;click sul nodo dell&#8217;albero&#8221; corrisponda la visualizzazione nel Panel del percorso del nodo cliccato (in breve visualizzeremo nel Panel il path del nodo cliccato).</p>
<p style="text-align: justify;">Il primo passo che dobbiamo fare è chiaramente preparare il nostro ambiente. Per lavorare con <a title="Sencha ExtJs" href="http://www.sencha.com/products/js/" target="_blank">Sencha ExtJs</a> tutto quello che dobbiamo fare è <a title="Download Sencha ExtJs" href="http://www.sencha.com/products/js/download.php" target="_blank">scaricare il framework</a> e inserirlo nella nostra pagina:</p>
<pre class="brush: php">
&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;ext-all.css&amp;quot; /&amp;gt;

 	&amp;lt;link rel=&amp;quot;stylesheet&amp;quot; type=&amp;quot;text/css&amp;quot; href=&amp;quot;resources/css/ext-all.css&amp;quot; /&amp;gt;

 	&amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;ext-base.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;

    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;ext-all.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
</pre>
<p style="text-align: justify;">Nella pratica non abbiamo fatto altro che caricare i fogli di stile e il codice del framework necessario al funzionamento di <a title="Sencha ExtJs" href="http://www.sencha.com/products/js/" target="_blank">Sencha ExtJs</a>. A questo punto siamo pronti ad iniziare il lavoro vero e proprio; partiamo dal TreePanel, che è il cuore di questa struttura:</p>
<pre class="brush: php">
var Tree = Ext.tree;
		    var tree = new Tree.TreePanel({
		    	id: &#039;tree&#039;,
		        useArrows: true,
		        autoScroll: true,
		        animate: true,
		        enableDD: true,
		        containerScroll: true,
		        border: false,
		        width: 190,
		        height: 380,
		        dataUrl: &#039;http://www.marcolecce.com/blog/Esempi/esempio10/get-nodes.php&#039;,
		        root: {
		            nodeType: &#039;async&#039;,
		            text: &#039;Ext JS Tree&#039;,
		            draggable: false,
		            id: &#039;items&#039;
		        },
		        listeners : {
		        	&#039;click&#039; : function (node, e ) {

		        		var data  = new Object();
		        		data.path = node.getPath();
		        		Ext.getCmp(&#039;dati&#039;).tpl.overwrite(Ext.getCmp(&#039;data_panel&#039;).body, data);

		        	}
		        }
		    });

		    tree.getRootNode().expand();
</pre>
<p style="text-align: justify;">Alla riga 2 creiamo una variabile &#8220;tree&#8221; dove salveremo l&#8217;istanza di un oggetto TreePanel: dalla riga 3 alla riga 18 invece impostiamo alcune configurazione che determinano il comportamento del TreePanel. Alla riga 3 ad esempio impostiamo l&#8217;identificatore del TreePanel: questo è chiaramente un elemento fondamentale, perchè ci permette di richiamare ovunque nella pagina questo oggetto, semplificando notevolmente le interazioni con esso.</p>
<p style="text-align: justify;"><strong>Un punto davvero importante è la riga 12, dove impostiamo i dati che verranno visualizzati nell&#8217;albero.</strong> Abbiamo diverse strade che possiamo seguire per impostare i dati da visualizzare nel tree, ad esempio  possiamo sceglierne il formato (<a title="XML" href="http://www.w3schools.com/xml/default.asp" target="_blank">XML</a>, <a title="JSON" href="http://www.json.org/" target="_blank">JSON</a>, ecc.): a seconda di cosa dobbiamo implementare e della tecnologia server side utilizzata può essere comodo utilizzare un formato piuttosto che un altro, nel nostro caso il protocollo <a title="JSON" href="http://www.json.org/" target="_blank">JSON</a> è perfetto (e lo sarà nella maggior parte dei casi lavorando con <a title="Sencha ExtJs" href="http://www.sencha.com/products/js/" target="_blank">Sencha ExtJs</a>, perchè di semplice lettura, leggero e molto performante).</p>
<p style="text-align: justify;">Ma come dobbiamo organizzare ed inviare i dati al TreePanel affinchè questo li possa visualizzare correttamente? Vediamo il cuore della comunicazione tra <a title="Sencha ExtJs" href="http://www.sencha.com/products/js/" target="_blank">Sencha ExtJs</a> e <a title="PHP" href="http://www.php.net/" target="_blank">PHP</a>. Nella riga 12 comunichiamo al TreePanel che dovrà caricarsi i dati al seguente indirizzo:</p>
<p style="text-align: justify;">http://www.marcolecce.com/blog/Esempi/esempio10/get-nodes.php</p>
<p style="text-align: justify;">Sarà compito di &#8220;get-nodes.php&#8221; comunicare i dati al TreePanel in modo che questo possa &#8220;capirli&#8221; e rappresentarli correttamente. Il punto fondamentale è che &#8220;get-nodes.php&#8221; deve restituire una stringa <a title="JSON" href="http://www.json.org/" target="_blank">JSON</a> al tree, ma come questa stringa viene generata non influisce sulla visualizzazione o sul funzionamento del meccanismo. Questo vuol dire che i dati possono essere prelevati da una base di dati, da un fogli di testo, o da qualsiasi altra sorgente, tutto ciò che è davvero necessario è che rispettino il protocollo <a title="JSON" href="http://www.json.org/" target="_blank">JSON</a>.</p>
<p style="text-align: justify;">Vediamo il codice del file <a title="PHP" href="http://www.php.net/" target="_blank">PHP</a> &#8220;get-node.php&#8221; :</p>
<p style="text-align: justify;">
<pre class="brush: php">
$result = array();

array_push( $result, array(
			&#039;text&#039; 		=&amp;gt; &amp;quot;nodo 1&amp;quot;, &#039;id&#039; =&amp;gt; &amp;quot;nodo1&amp;quot;, &#039;cls&#039; =&amp;gt; &amp;quot;folder&amp;quot;,
			&#039;children&#039;  =&amp;gt; array( array(&#039;text&#039;=&amp;gt; &amp;quot;nodo 2&amp;quot;, &#039;id&#039; =&amp;gt; &amp;quot;nodo2&amp;quot;, &#039;leaf&#039; =&amp;gt; true) )
));

array_push( $result, array(
			&#039;text&#039; 	   =&amp;gt; &amp;quot;nodo 3&amp;quot;, &#039;id&#039; =&amp;gt; &amp;quot;nodo3&amp;quot;, &#039;cls&#039; =&amp;gt; &amp;quot;folder&amp;quot;,
			&#039;children&#039;  =&amp;gt; array( array(&#039;text&#039;=&amp;gt; &amp;quot;nodo 5&amp;quot;, &#039;id&#039; =&amp;gt; &amp;quot;nodo5&amp;quot;, &#039;leaf&#039; =&amp;gt; true) )
));

array_push( $result, array(
			&#039;text&#039; 	   =&amp;gt; &amp;quot;nodo 4&amp;quot;, &#039;id&#039; =&amp;gt; &amp;quot;nodo4&amp;quot;, &#039;leaf&#039; =&amp;gt; true
));

echo json_encode($result);
</pre>
<p style="text-align: justify;">
<p style="text-align: justify;">Per semplificare l&#8217;esempio ho organizzato i dati in una struttura statica, composta da array di array, e ho utilizzato la funzione &#8220;<a title="json_encode() PHP" href="http://php.net/manual/en/function.json-encode.php" target="_blank">json_encode()</a>&#8221; di <a title="PHP" href="http://www.php.net/" target="_blank">PHP</a> per trasformare la struttura statica in stringa <a title="JSON" href="http://www.json.org/" target="_blank">JSON</a>, in modo che l&#8217;albero possa &#8220;capire&#8221; e leggere la struttura che abbiamo configurato. Ora che abbiamo la nostra struttura di dati da rappresentare, ci rimane l&#8217;ultimo passaggio, quello per creare l&#8217;interazione tra il TreePanel e il Panel.</p>
<p style="text-align: justify;">Il codice del Panel dove visualizzeremo il percorso del nodo dell&#8217;albero è il seguente:</p>
<p style="text-align: justify;">
<pre class="brush: php">
var tpl = new Ext.XTemplate(
		    	    &#039;&amp;lt;tpl for=&amp;quot;.&amp;quot;&amp;gt;&#039;,
		    	        &#039;&amp;lt;div&amp;gt;&#039;,
		    	        &#039;&amp;lt;div&amp;gt;{path}&amp;lt;/div&amp;gt;&#039;,
		    	        &#039;&amp;lt;/div&amp;gt;&#039;,
		    	    &#039;&amp;lt;/tpl&amp;gt;&#039;,
		    	    &#039;&amp;lt;div class=&amp;quot;x-clear&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&#039;
		    );

		    //PANEL
		    var data_panel = new Ext.Panel({
		    	id: &#039;data_panel&#039;,
		        width: 295,
		        height: 380,
		        border: false,
		        html : &amp;quot;&amp;lt;h2&amp;gt;Path del nodo&amp;lt;/h2&amp;gt;&amp;quot;,
		        items: [
					{
					    xtype: &#039;dataview&#039;,
					    id: &#039;dati&#039;,
					    tpl: tpl
					}
		        ]

		    });
</pre>
<p style="text-align: justify;">La variabile &#8220;tpl&#8221; (righe 1-8) contiene il template <a title="HTML" href="http://en.wikipedia.org/wiki/HTML" target="_blank">HTML</a> per la visualizzazione delle informazioni, template che assegniamo all&#8217;oggetto dataview &#8220;dati&#8221; (righe 18-22), a sua volta contenuto nel panel.</p>
<p style="text-align: justify;">Il codice che gestisce l&#8217;evento del click del nodo dell&#8217;albero e quindi l&#8217;interazione tra il TreePanel e il Panel si trova nel sorgente del Tree nelle righe 19 -27 che per comodità riporto di seguito:</p>
<p style="text-align: justify;">
<pre class="brush: php">
listeners : {
                    &#039;click&#039; : function (node, e ) {

                        var data  = new Object();
                        data.path = node.getPath();
                        Ext.getCmp(&#039;dati&#039;).tpl.overwrite(Ext.getCmp(&#039;data_panel&#039;).body, data);

                    }
                }
</pre>
<p style="text-align: justify;">In questo codice vediamo come impostare e gestire gli eventi con <a title="Sencha ExtJs" href="http://www.sencha.com/products/js/" target="_blank">Sencha ExtJs</a>, attraverso la configurazione dei &#8220;listeners&#8221;. In questo caso impostiamo la gestione dell&#8217;evento &#8216;click&#8217; sul node dell&#8217;albero. Quando un nodo viene cliccato viene eseguito il blocco di codice compreso tra le righe 4-6, ovvero:</p>
<ol>
<li>viene creato un oggetto (data)</li>
<li>attraverso il metodo &#8220;getPath()&#8221; richiamato sull&#8217;oggetto &#8220;node&#8221; otteniamo il path del nodo e lo salviamo nell&#8217;attributo &#8220;path&#8221; dell&#8217;oggetto &#8220;data&#8221; creato al punto 1</li>
<li>sovrascriviamo il template dell&#8217;oggetto dataview visto poc&#8217;anzi con il path del nodo cliccato.</li>
</ol>
<p><strong>Importante: l&#8217;attributo &#8220;path&#8221; dell&#8217;oggetto &#8220;data&#8221; si chiama proprio come il placeholder &#8220;{path}&#8221; impostato nel template (riga 4).</strong></p>
<p>Per vedere l&#8217;esempio completo potete andare al seguente <a title="Sencha Blogrammazione Demo" href="http://www.marcolecce.com/blog/Esempi/esempio10/" target="_blank">indirizzo</a>: questo è solo un esempio delle potenzialità di <a title="Sencha ExtJs" href="http://www.sencha.com/products/js/" target="_blank">Sencha ExtJs</a>, che permette con poche righe di codice di costruire layout complessi ed interfacce davvero interessanti.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marcolecce.com/blog/2011/01/19/extjs-gestione-di-un-albero-in-un-layout-complesso-con-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

