<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>BlogFun &#187; Guide</title>
	<atom:link href="http://www.360fun.net/blogfun/category/guide/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.360fun.net/blogfun</link>
	<description>informatica e non =)</description>
	<lastBuildDate>Thu, 26 Aug 2010 10:00:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Flash CS 3/4/5: workaround per l&#8217;interpolazione classica senza simboli</title>
		<link>http://www.360fun.net/blogfun/2010/06/flash-cs-345-workaround-per-linterpolazione-classica-senza-simboli/</link>
		<comments>http://www.360fun.net/blogfun/2010/06/flash-cs-345-workaround-per-linterpolazione-classica-senza-simboli/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 23:57:47 +0000</pubDate>
		<dc:creator>cicciokun</dc:creator>
				<category><![CDATA[Guide]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Programmi]]></category>
		<category><![CDATA[Sistemi Operativi]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[adobe]]></category>
		<category><![CDATA[barbatrucco]]></category>
		<category><![CDATA[classic motion tweening]]></category>
		<category><![CDATA[cs3]]></category>
		<category><![CDATA[cs4]]></category>
		<category><![CDATA[cs5]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flash 8]]></category>
		<category><![CDATA[interpolazione classica]]></category>
		<category><![CDATA[macromedia]]></category>
		<category><![CDATA[workaround]]></category>

		<guid isPermaLink="false">http://www.360fun.net/blogfun/?p=625</guid>
		<description><![CDATA[Nel mentre che il mio blog si riempie di ragnatele sto lavorando ad un progetto universitario a base di Flash; prodotto da me sempre odiato a causa della sua chiusura e pesantezza (leggi &#8220;attendo speranzoso HTML5&#8220;). Tuttavia tra un&#8217;imprecazione e l&#8217;altra devo ammettere che qualche soddisfazione si può anche ottenere. Essendo i bug e le [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-634" title="Flash Workaround" src="http://www.360fun.net/blogfun/wp-content/uploads/2010/06/Flash-Workaround.jpg" alt="" width="394" height="188" /></p>
<p>Nel mentre che il mio blog si riempie di ragnatele sto lavorando ad un progetto universitario a base di <strong>Flash</strong>; prodotto da me sempre <strong>odiato</strong> a causa della sua <strong>chiusura</strong> e <strong>pesantezza</strong> (leggi &#8220;attendo speranzoso <a href="http://it.wikipedia.org/wiki/HTML_5" target="_blank">HTML5</a>&#8220;). Tuttavia tra un&#8217;imprecazione e l&#8217;altra devo ammettere che qualche soddisfazione si può anche ottenere. Essendo i bug e le limitazioni all&#8217;ordine del giorno questo articolo nasce per aiutare chi, come me, ha bisogno che le cose funzionino come dovrebbero.</p>
<h2><span id="more-625"></span>L&#8217;INTERPOLAZIONE CLASSICA:</h2>
<p>Lasciando stare le ultime trovate pubblicitarie dei vari <a href="http://it.wikipedia.org/wiki/Adobe_Creative_Suite" target="_blank"><strong>CS</strong></a> (interpolazione di movimento/3D, ossa&#8230;) continuo a trovare molto più pratica, semplice e leggera l&#8217;<a href="http://help.adobe.com/it_IT/Flash/10.0_UsingFlash/WSd60f23110762d6b883b18f10cb1fe1af6-7d86a.html" target="_blank">interpolazione classica</a>; quantomeno per fare cose banali come rotazioni e ridimensionamenti di forme. Purtroppo però, da quando <strong>Flash</strong> è passato all&#8217;<strong>Adobe</strong>, ha iniziato a costringere l&#8217;utente ad interpolare solamente simboli (filmato, pulsante, immagine) senza pensare che per elementi piccoli non sarebbe necessario ricorrere a una struttura del genere (ad esempio i denti di una bocca o la pupilla di un occhio).</p>
<h2>WORKAROUND PER IL VECCHIO METODO:</h2>
<p>Quando andiamo ad interpolare una qualsiasi forma otteniamo in <strong>automatico</strong> che essa venga convertita in <strong>due simboli</strong>, uno di inizio e uno di fine interpolazione, anche se la forma non cambia. È quindi uso comune evitare la creazione del secondo creandosi da se un <em>movieclip</em> prima di interpolare; tuttavia, come dicevo precedentemente, questo comportamento potrebbe creare all&#8217;utente solamente <strong>disordine</strong> e <strong>perdita di prestazioni</strong> <span style="text-decoration: underline;">ingigantendo inutilmente la libreri</span>a. Partendo dal principio che <strong>Flash CS</strong> (Adobe), supportando i progetti di <strong>Flash 8</strong> (Macromedia), deve supportare anche l&#8217;interpolazione su <strong>gruppi</strong> ho cercato, andando per tentativi, un modo per forzare il programma a sbarazzarsi dei simboli creati in automatico.</p>
<p>Ecco quindi che vi propongo un <strong>workaround</strong> che vi darà piena libertà per le vostre creazioni con il <strong>minor numero di passaggi</strong>:</p>
<ol>
<li>create una forma con attiva l&#8217;opzione &#8220;Disegno oggetto&#8221; in modo che sia già raggruppata, oppure raggruppatela voi<br />
<a href="http://www.360fun.net/blogfun/wp-content/uploads/2010/06/step1.png"><img class="aligncenter size-medium wp-image-629" title="step1" src="http://www.360fun.net/blogfun/wp-content/uploads/2010/06/step1-300x180.png" alt="" width="300" height="180" /></a></li>
<li>interpolate la forma senza creare altri keyframe (per evitarci doppio lavoro dopo)<br />
<a href="http://www.360fun.net/blogfun/wp-content/uploads/2010/06/step2.png"><img class="aligncenter size-medium wp-image-630" title="step2" src="http://www.360fun.net/blogfun/wp-content/uploads/2010/06/step2-300x180.png" alt="" width="300" height="180" /></a></li>
<li><strong>dividete</strong> l&#8217;oggetto (Elabora -&gt; Dividi) e successivamente <strong>eliminate</strong> pure l&#8217;interpolazione creata in automatico<br />
<a href="http://www.360fun.net/blogfun/wp-content/uploads/2010/06/step3.png"><img class="aligncenter size-medium wp-image-631" title="step3" src="http://www.360fun.net/blogfun/wp-content/uploads/2010/06/step3-300x180.png" alt="" width="300" height="180" /></a></li>
<li>aggiungete i keyframe che vi occorrono e create la vostra animazione <strong>senza simboli</strong> <img src='http://www.360fun.net/blogfun/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<a href="http://www.360fun.net/blogfun/wp-content/uploads/2010/06/step4.png"><img class="aligncenter size-medium wp-image-632" title="step4" src="http://www.360fun.net/blogfun/wp-content/uploads/2010/06/step4-300x180.png" alt="" width="300" height="180" /></a></li>
</ol>
<p>Ad essere bravi hacker si potrebbe modificare il programma in modo che eviti direttamente di creare le interpolazioni&#8230;tuttavia le mia competenze non arrivano a questi livelli (purtroppo). Spero vi possa comunque essere utile! <img src='http://www.360fun.net/blogfun/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.360fun.net/blogfun/2010/06/flash-cs-345-workaround-per-linterpolazione-classica-senza-simboli/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crontab e firmware Routertech: sfruttare il proprio router per eseguire script PHP</title>
		<link>http://www.360fun.net/blogfun/2009/03/crontab-e-firmware-routertech-sfruttare-il-proprio-router-per-eseguire-script-php/</link>
		<comments>http://www.360fun.net/blogfun/2009/03/crontab-e-firmware-routertech-sfruttare-il-proprio-router-per-eseguire-script-php/#comments</comments>
		<pubDate>Sat, 21 Mar 2009 15:40:54 +0000</pubDate>
		<dc:creator>cicciokun</dc:creator>
				<category><![CDATA[Guide]]></category>
		<category><![CDATA[PhP]]></category>
		<category><![CDATA[Reti]]></category>
		<category><![CDATA[d-link]]></category>
		<category><![CDATA[router]]></category>
		<category><![CDATA[routertech]]></category>

		<guid isPermaLink="false">http://www.360fun.net/blogfun/?p=10</guid>
		<description><![CDATA[Ed eccoci qua al mio primo articolo vero è proprio: conoscete il comando &#8220;crontab&#8221; di Unix? Per chi non ne avesse mai sentito parlare eccone una breve descrizione tratta da Wikipedia: Nei sistemi operativi Unix e Unix-like, il comando crontab consente lo scheduling di comandi, ovvero consente di registrarli presso il sistema affinché siano poi mandati in esecuzione periodicamente. Lo stesso [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-medium wp-image-34" title="d-linktech" src="http://www.360fun.net/blogfun/wp-content/uploads/2009/03/d-linktech-300x300.jpg" alt="d-linktech" width="300" height="300" /></p>
<p>Ed eccoci qua al mio primo articolo vero è proprio: conoscete il comando &#8220;<strong>crontab</strong>&#8221; di Unix? Per chi non ne avesse mai sentito parlare eccone una breve descrizione tratta da <em>Wikipedia</em>:</p>
<blockquote><p>Nei <a title="Sistema operativo" href="http://it.wikipedia.org/wiki/Sistema_operativo">sistemi operativi</a> <a title="Unix" href="http://it.wikipedia.org/wiki/Unix">Unix</a> e <a title="Unix-like" href="http://it.wikipedia.org/wiki/Unix-like">Unix-like</a>, il comando <strong><code>crontab</code></strong> consente lo <em>scheduling</em> di <a class="mw-redirect" title="Linea di comando" href="http://it.wikipedia.org/wiki/Linea_di_comando">comandi</a>, ovvero consente di registrarli presso il sistema affinché siano poi mandati in esecuzione <a title="Periodico" href="http://it.wikipedia.org/wiki/Periodico">periodicamente</a>. Lo stesso nome &#8220;crontab&#8221; si riferisce anche ai file utilizzati dal comando crontab come &#8220;registri&#8221; dei comandi &#8220;schedulati&#8221;.</p>
<p>Generalmente, <code>crontab</code> usa un <a title="Demone (informatica)" href="http://it.wikipedia.org/wiki/Demone_(informatica)">demone</a>, chiamato <strong><code>crond</code></strong>, che è costantemente in <a title="Esecuzione in background" href="http://it.wikipedia.org/wiki/Esecuzione_in_background">esecuzione in background</a> e, una volta al minuto, legge i contenuti del registro dei comandi schedulati ed esegue quelli per cui si è esaurito il periodo di attesa. Un comando mandato in esecuzione da <code>crontab</code> viene chiamato <strong>cronjob</strong>.</p></blockquote>
<p>Nello specifico in questo articolo andremo a trattare l&#8217;implementazione di tale comando sul firmware della <a title="RouterTech" href="http://www.routertech.org/" target="_blank">RouterTech</a>; questa community di appassionati si occupa in generale di networking e in particolare di realizzare firmware compatibili con varie tipologie di router.  Nel mio caso utilizzo un router <strong>D-link G604T</strong>, il firmware è installato da almeno un anno ormai e si comporta davvero molto bene, sopperendo alle enormi lacune delle release ufficiali, quindi ne consiglio l&#8217;installazione a tutti i possessori del mio stesso modello.<span id="more-10"></span></p>
<p>Vi chiederete: ma nella pratica a cosa ci può servire far eseguire dei job al nostro router? Presto detto: alcuni job sono già impostati di default e si occupano di controllare lo stato della connessione ADSL o di ottimizzare la RAM del router; invece noi andremo a vedere come far eseguire uno script PHP ad intervalli regolari. A cosa può esserci utile? Vi faccio un esempio concreto (il primo che mi viene in mente): <em>volete ricevere un&#8217;e-mail in &#8221;tempo reale&#8221; ogni volta che l&#8217;</em><strong><em>AppleStore</em></strong><em> va offline?</em> Basterà creare uno script PHP che, tramite la funzione <strong><a title="curl PHP" href="http://it2.php.net/curl" target="_blank">curl</a></strong>, scarichi la pagina principale per voi, faccia gli opportuni controlli e, dopo averlo caricato su di un host (ad esempio <a title="host gratuito con php e mysql" href="http://www.altervista.org/" target="_blank">altervista</a> che è gratis),  vi invii in automatico un&#8217;e-mail! A questo punto entra in gioco <strong>crontab</strong>, senza il quale dovremmo eseguire manualmente lo script, che richiederà per noi la pagina ogni minuto/ora/giorno&#8230; insomma a nostro piacimento <img src='http://www.360fun.net/blogfun/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  La stessa cosa la si potrebbe fare lasciando un PC sempre acceso con il browser aperto sulla nostra pagina e impostando un refresh&#8230;ma perché consumare corrente per tenere acceso un intero PC quando abbiamo un router con firmware basato su Linux a nostra disposizione? <img src='http://www.360fun.net/blogfun/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Dopo questa lunga premessa iniziamo a spiegare con ordine i passi da eseguire:</p>
<ol style="text-align: left;">
<li>accertarsi che il proprio router sia compatibile con il firmware <strong>RouterTech 2.8:</strong> <a title="Router Upgrade Checker (Class II routers only)" href="http://www.routertech.org/viewtopic.php?t=1062" target="_blank">RUC</a> è un&#8217;ottima utility (non funziona con tutti i modelli) creata ad hoc per fugare ogni dubbio; ovviamente potete usare anche una versione più vecchia del firmware se la 2.8 non è supportata dal vostro router, però nelle versioni più vecchie (tipo la <strong>2.3</strong>) schedulare i job in modo che non vengano persi allo spegnimento del router è molto più complicato e quindi non mi ci soffermerò
<div id="attachment_16" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.360fun.net/blogfun/wp-content/uploads/2009/03/routertech1.png"><img class="size-medium wp-image-16 " title="RouterTech 2.8 - Login" src="http://www.360fun.net/blogfun/wp-content/uploads/2009/03/routertech1-300x190.png" alt="schermata inizale RouterTech" width="300" height="190" /></a><p class="wp-caption-text">Login Screen</p></div></li>
<li>scaricare ed eseguire l&#8217;installazione del firmware compatibile con il proprio modello dal sito <a title="RouterTech" href="http://www.routertech.org/" target="_blank">RouterTech</a> (per i possessori di router <strong>D-Link</strong> con <strong>Adam2</strong> consiglio l&#8217;utilizzo di <a title="RouterTech 2.8+tiupgrade " href="http://darkwolf.altervista.org/forum/tpmod/?dl=item94" target="_blank"><span style="text-decoration: underline;">tiupgrade</span></a> e d&#8217;informarsi a dovere sull&#8217;ottimo sito di <a title="sito di supporto su modem/router D-link" href="http://darkwolf.altervista.org/" target="_blank">DarkWolf</a>)</li>
<li>creare lo script php che si vuole far eseguire e caricarlo sul proprio server</li>
<li>a questo punto è d&#8217;obbligo soffermarci su di un punto dolente: la lunghezza complessiva del comando. È <span style="text-decoration: underline;">fondamentale</span> che l&#8217;url risultante sia il più breve possibile, altrimenti (causa limitazioni tecniche) non potremo memorizzare l&#8217;intera stringa nella <em>env</em> (area di memoria non volatile), al fine di non perdere il job al riavvio del  router! Un ottimo modo per accorciare l&#8217;url è <a title="accorciare url con TinyURL" href="http://tinyurl.com/" target="_blank">TinyUrl</a>.  Al lato pratico la stringa che verrà salvata in memoria sarà la seguente (nel massimo della sua lunghezza):<br />
<span style="color: #ff0000;"><br />
</span></p>
<pre>echo "* * * * * wget http://????????????????????????" &gt;&gt; /root_cron
[ &lt;&lt;&lt;---------------------- 67 caratteri ---------------------&gt;&gt;&gt; ]</pre>
<p>Dovremo quindi fare gli opportuni calcoli per non superare i 67 bytes: evitando un <strong>url troppo lungo</strong> ed evitando <strong>troppi parametri temporali</strong> (gli asterischi).  Ricordo brevemente a cosa corrisponde ciascun asterisco (se lasciato l&#8217;asterisco equivale a &#8220;<span style="text-decoration: underline;">sempre</span>&#8220;) nella sintassi di <strong>Crontab</strong>:</p>
<pre>* * * * * comando da eseguire
- - - - -
| | | | |
| | | | ----- giorno della settimana (0 - 7) (domenica = 0 oppure 7)
| | | ------- mese (1 - 12)
| | --------- giorno del mese (1 - 31)
| ----------- ora (0 - 23)
------------- minuti (0 - 59)</pre>
</li>
<li>ora non resta altro che accedere al proprio router tramite l&#8217;apposita interfaccia via browser, andare nella sezione &#8220;System&#8221;, selezionare &#8220;Run Command&#8221; ed immettere il seguente comando (che in questo caso esegue ogni minuto il nostro script php) premendo &#8220;Run&#8221; alla fine:
<pre>cronjob-env.sh "wget http://tinyurl.com/example" "*" "*" "*" "*" "*" "RT_cmd_1"</pre>
<p><div id="attachment_19" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.360fun.net/blogfun/wp-content/uploads/2009/03/routertech2.png"><img class="size-medium wp-image-19 " title="RouterTech 2.8 - Run Command" src="http://www.360fun.net/blogfun/wp-content/uploads/2009/03/routertech2-300x232.png" alt="Run Command: cronjob-env.sh &quot;wget http://tinyurl.com/example&quot; &quot;*&quot; &quot;*&quot; &quot;*&quot; &quot;*&quot; &quot;*&quot; &quot;RT_cmd_1&quot;" width="300" height="232" /></a><p class="wp-caption-text">Run Command: cronjob-env.sh</p></div></li>
<li>riavviate il router e incrociate le dita sperando che tutto funzioni <img src='http://www.360fun.net/blogfun/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
<li>adesso controlliamo che il job sia stato effettivamente memorizzato tramite il comando:
<pre>crontab -l</pre>
<p><div id="attachment_20" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.360fun.net/blogfun/wp-content/uploads/2009/03/routertech3.png"><img class="size-medium wp-image-20 " title="RouterTech 2.8 - Run Command" src="http://www.360fun.net/blogfun/wp-content/uploads/2009/03/routertech3-300x231.png" alt="Run Command: crontab -l" width="300" height="231" /></a><p class="wp-caption-text">Run Command: crontab -l</p></div>
<p>se dovessero esserci problemi controlliamo il contenuto della <em>env</em> tramite il comando:</p>
<pre>printenv</pre>
<p><div id="attachment_21" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.360fun.net/blogfun/wp-content/uploads/2009/03/routertech4.png"><img class="size-medium wp-image-21 " title="routertech4" src="http://www.360fun.net/blogfun/wp-content/uploads/2009/03/routertech4-300x231.png" alt="routertech4" width="300" height="231" /></a><p class="wp-caption-text">Run Command: printenv</p></div></li>
</ol>
<p>Detto questo penso di aver finalmente terminato il mio primo articolo; nella speranza di esser stato d&#8217;aiuto a qualcuno vi sollecito ad indicarmi punti dove sono stato eventualmente poco chiaro, al fine di migliorarmi in futuro. ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.360fun.net/blogfun/2009/03/crontab-e-firmware-routertech-sfruttare-il-proprio-router-per-eseguire-script-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
