tag:blogger.com,1999:blog-10479527607519227542008-07-01T23:14:59.067+02:00Byte Strike BlogChristian Castellihttp://www.blogger.com/profile/16095115669977999358noreply@blogger.comBlogger350125tag:blogger.com,1999:blog-1047952760751922754.post-32889735389198882852008-06-26T10:38:00.003+02:002008-06-26T11:29:02.352+02:00E son 27!Ebbene oggi compio 27 anni ed è uno fra i compleanni più belli in quanto quest'anno <a href="http://bytestrike.blogspot.com/2008/04/laureato-si-volta-pagina.html">mi son laureato</a>, mi son trasferito a Pisa, convivo con la mia ragazza e ho trovato lavoro fortunatamente quasi subito <a href="http://www.trackset.it/">in una bella azienda</a> qui a Pisa.<br />Ieri la mia ragazza mi ha presentato un bel semifreddo e un buono da 50 euro da spendere nelle librerie Feltrinelli. Consigli per gli aquisti (libri d'informatica eh :-D)?Christian Castellihttp://www.blogger.com/profile/16095115669977999358noreply@blogger.comtag:blogger.com,1999:blog-1047952760751922754.post-23910473811678299592008-06-25T20:03:00.001+02:002008-06-25T20:03:20.666+02:00Poema Zen delle 20.00 (ma valido sempre)<blockquote> <p>To follow the path: <br />look to the master, <br />follow the master, <br />walk with the master, <br />see through the master, <br />become the master. </p> </blockquote> <p>Corto, semplice, chiaro, incisivo.</p> <p>Via: <a href="http://www.catb.org/~esr/faqs/hacker-howto.html">E. S. Raymond</a>.</p> Christian Castellihttp://www.blogger.com/profile/16095115669977999358noreply@blogger.comtag:blogger.com,1999:blog-1047952760751922754.post-29095493859797098912008-06-24T23:11:00.001+02:002008-06-24T23:11:18.558+02:00[PHP] Installare classi PEAR in fase beta<p>Puuò capitare di voler installare delle classi PEAR le cui ultime versioni sono in fase beta. <br />Ora, di default PEAR installa solo package in versione stable se non erro, ma è possibile forzare la cosa senza dover smanettare fra i file di configurazione.</p> <p>Ammettiamo si voglia installare la classe <a href="http://pear.php.net/package/Spreadsheet_Excel_Writer">Spreadsheet_Excel_Writer</a> per creare in PHP dei report in Excel. Tale classe ha <a href="http://pear.php.net/package/OLE/">delle dipendenze</a> e l'ultima release è in fase beta. </p> <p>Per installare sia la classe sia le dipendenze in automatico, basta digitare:</p> <p><em>orion@orion$: pear install --alldeps Spreadsheet_Excel_Writer-beta</em></p> <p>L'opzione <em>--alldeps</em> provvede a scaricare tutte le dipendenze necessarie mentre l'aggiunta del suffisso <em>-beta</em> permette di scaricare l'ultimissima versione della classe, senza dover riconfigurare il livello di accettabilità dei package per PEAR.</p> Christian Castellihttp://www.blogger.com/profile/16095115669977999358noreply@blogger.comtag:blogger.com,1999:blog-1047952760751922754.post-84739578356034309092008-06-23T23:54:00.001+02:002008-06-23T23:54:47.610+02:00[Music] Bobby Marley Compilation<p><a href="http://lh4.ggpht.com/voodoo81people/SGAbnGVzC1I/AAAAAAAAAb0/7ygpgVIr9kA/s1600-h/Immagine%5B3%5D.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="394" alt="Immagine" src="http://lh4.ggpht.com/voodoo81people/SGAbpZyK22I/AAAAAAAAAb4/ndsXl1WTckU/Immagine_thumb%5B1%5D.jpg?imgmax=800" width="403" border="0" /></a> </p> <p>C'è stato un tempo, alcuni anni fa, in cui ero molto preso dal reggae, dalla dance hall: mi piaceva ascoltare <a href="http://profile.myspace.com/index.cfm?fuseaction=user.viewprofile&friendID=30775493">Gentleman</a>, <a href="http://www.sizzlakalonjiinc.com/">Sizzla</a>, <a href="http://www.sean-paul.net/">Sean Paul</a>, i <a href="http://www.seeed.info/">Seeed</a> e via discorrendo, ripensando ai vari <a href="http://it.wikipedia.org/wiki/Riddim">riddim</a> sui quali più o meno tutti ci cantavano sopra.</p> <p>Ad ogni modo mi piacevano le composizioni piuttosto ritmate e movimentate, tendendo a snobbare il <a href="http://it.wikipedia.org/wiki/Roots_reggae">roots</a> e le forme più tranquillone.</p> <p>Ad ogni modo ho deciso di ascoltarmi l'intera discografia di Bob Marley, alla ricerca dei brani meno noti. Tuttavia nella mia ricerca non sono emersi molti brani diversi dai classici successi dell'artista che più o meno tutti conoscono e ho raccolto le canzoni che preferisco in due compliation: </p> <h3>Parte I</h3> <ul> <li>I'm Hurting Inside;</li> <li>Iron Lion Zion;</li> <li>Is This Love;</li> <li>Jammin';</li> <li>Kaya;</li> <li>Keep On Moving;</li> <li>Misty Morning;</li> <li>Natty Dread (live);</li> <li>Africa Unite;</li> <li>Buffalo Soldier;</li> <li>Chant Down Babylon;</li> <li>Could You Be Loved;</li> <li>Cry To Me (Acoustic);</li> <li>Dance Do The Reggae;</li> <li>Exodus;</li> <li>Forever Loving Jah;</li> <li>Get Up, Stand Up;</li> <li>Hallelujah Time;</li> <li>I Shot The Sheriff.</li> </ul> <h3>Parte II</h3> <ul> <li>One Drop;</li> <li>One Love;</li> <li>Pimper's Paradise;</li> <li>Punky Reggae Party;</li> <li>Rastaman Live Up;</li> <li>Rat Race;</li> <li>Redemption Song;</li> <li>Roots Rock Reggae;</li> <li>Satisfy My Soul;</li> <li>She's Gone;</li> <li>So Much Trouble In The World;</li> <li>Soul Captive;</li> <li>Stir It Up;</li> <li>Sugar, Sugar;</li> <li>Sun Is Shinning (Original);</li> <li>Talkin' Blues;</li> <li>Three Little Birds;</li> <li>Trench Town Rock;</li> <li>Waiting In Vain;</li> <li>Natural Mystic.</li> </ul> <p>Si noti l'assenza di <em>No woman No cry</em>, che sinceramente mi annoia, musicalmente parlando, per il resto ignoro i testi di quasi tutte le canzoni tranne che per <em>One love</em>, <em>Redemption song</em> e <em>Could you be loved</em>.</p> Christian Castellihttp://www.blogger.com/profile/16095115669977999358noreply@blogger.comtag:blogger.com,1999:blog-1047952760751922754.post-26828895584209005412008-06-21T12:18:00.001+02:002008-06-21T12:18:40.643+02:00[Firefox] Addio Google Browser sync, benvenuto Foxmarks<p>Dopo aver installato Ubuntu e i 180 aggiornamenti per la versione 8.04 fresca di installazione, mi è spuntata anche l'ultimissima versione di Firefox.</p> <p>Con sorpresa, <a href="http://www.google.com/tools/firefox/browsersync/">Google browser sync</a> non è ha voluto sapere di installarsi con la nuova versione del browser di casa Mozilla.</p> <p>Sebbene <a href="http://www.oneopensource.it/09/04/2008/rendere-compatibili-le-estensioni-con-firefox-3/">ci siano trucchetti per forzare le installazioni delle estensioni non compatibili</a>, l'aver letto su <a title="Vedi l'articolo" href="http://lifehacker.com/396112/google-browser-sync-discontinued-no-firefox-3-support">LifeHacker</a> che Google non ha più intenzione di mantenere questo progetto per mancanza di tempo, ha fatto spostare la mia attenzione su un'estensione analoga consigliata dallo stesso Google, ossia <a href="http://www.foxmarks.com/">Foxmarks</a>.</p> <p>Dopo aver creato un account (processo eseguibile sia online direttamente sul sito, sia durante il processo di installazione dell'estensione) e aver sincronizzato i propri bookmarks, ci si ritrova una schermata di questo tipo una volta loggati sul sito ufficiale:</p> <p><a href="http://lh5.ggpht.com/voodoo81people/SFzVeFkE6YI/AAAAAAAAAbk/61OrZxTq6-Y/s1600-h/screen1%5B6%5D.jpg"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="347" alt="screen1" src="http://lh3.ggpht.com/voodoo81people/SFzVe3OHLyI/AAAAAAAAAbo/ojE1GKWUdos/screen1_thumb%5B4%5D.jpg?imgmax=800" width="420" border="0" /></a> </p> <h3>Opinioni personali</h3> <p>Ecco una breve descrizione di quel che si può fare. Premetto che ho provato quest'estensione dopo aver sincronizzato più di 3000 boomakrs. </p> <p>L'interfaccia è piuttosto lenta quando vogliamo aprire una cartella e tende ad impallare Firefox, probabilmente (o quasi sicuramente)  ciò è dovuto alla gran quantità di bookmarks. <br />Cliccandu sulla voce <em>Details</em>, si aprirà una finestrella che funzionerà da preview dei siti web quando selezionerete un bookmark, una funzione molto comoda.</p> <p>La voce Search permette di condurre una ricerca all'interno dei propri bookamrks e di vedere i risultati in temp oreale senza il bisogno di cliccare alcun bottone, funzione anch'essa molto comoda sebbene leggermente lenta per i motivi precedentemente esposti.</p> <p>La voce <em>Tools</em> permette di importare i preferiti dal prorpio account Delicious (non l'ho provata perchè non uso Delicious) e di esportare in HTML i propri segnalibri. La dimensione originale del file bookamrks.html esportato da Firefox è 965 KB mentre tramite questa funzione, il file pesa 696 KB, semplicemente perchè l'esportazione da Foxmarks elimina tutti i dati relativi alle favicon.</p> <p>La funzione <em>Share</em> permette di condividere cartelle e sottocartelle ma non bookmarks singoli. Ogni cartella principale sarà raggiungibile via Web e sarà possibile abbonarsi anche al feed RSS per sapere se l'utente ha aggiunto qualche segnalibro.</p> <p>Vi segnalo i miei Foxmarks:</p> <ul> <li><a href="http://share.foxmarks.com/folder/bookmarks/wvB92dFDo3">Link su Firefox e Thunderbird</a>;</li> <li><a href="http://share.foxmarks.com/folder/bookmarks/Oav3Kptbuj">Ubuntu e free software links</a>;</li> <li><a href="http://share.foxmarks.com/folder/bookmarks/gI96x1sPTe">Da leggere ora</a> (praticamente un contenitore di letture dal nome ridicolo poichè in realtà non si sa bene quando verranno lette :-D)</li> <li><a href="http://share.foxmarks.com/folder/bookmarks/5OXb3Xgp1I">Informatica</a>;</li> <li><a href="http://share.foxmarks.com/folder/bookmarks/iHOdcVSRpW">Sicurezza</a>;</li> </ul> <p>E' possibile inglobare i propri bookmarks tramite un iframe ed eventualmente ricorrere anche a javascript e CSS (forniti da loro) per rendere il tutto maggiormente personalizzabile:</p> <p><iframe src="http://share.foxmarks.com/folder/iframe/wvB92dFDo3" frameborder="0" width="185" scrolling="no" height="280"></iframe> <br /></p> <h3>Note conlcusive</h3> <p>Mi sembra un ottimo prodotto e mi domando perchè non l'avessi usato prima (ah si, non lo conoscevo... :-) ). La sincronizzazione avviene alla chiusura del browser (di default), è possibile specificare quali elementi cifrare e credo sia possibile utilizzare un proprio server come repository vedendo la schermata qui sotto. Ottimo!</p> <p><a href="http://lh6.ggpht.com/voodoo81people/SFzVfSMEEyI/AAAAAAAAAbs/Rr1VpR3L9HE/s1600-h/screen2%5B3%5D.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="309" alt="screen2" src="http://lh5.ggpht.com/voodoo81people/SFzVf1sJkZI/AAAAAAAAAbw/Xcm5Ge_6kw8/screen2_thumb%5B1%5D.jpg?imgmax=800" width="394" border="0" /></a></p> Christian Castellihttp://www.blogger.com/profile/16095115669977999358noreply@blogger.comtag:blogger.com,1999:blog-1047952760751922754.post-15335358330950932302008-06-21T10:43:00.004+02:002008-06-21T10:46:29.621+02:00[Linux] ies4linux su Hardy Henron<p><a title="Sito ufficiale del progetto" href="http://www.tatanka.com.br/ies4linux/page/Main_Page"><img style="border-width: 0px;" alt="ies4linux" src="http://lh3.ggpht.com/voodoo81people/SFy_HQU5LsI/AAAAAAAAAbg/zGfwziWFm-k/ies4linux%5B4%5D.jpg?imgmax=800" border="0" height="109" width="384" /></a> </p> <p>Per ovvie necessità di webdesign, conviene installare Internet Explorer anche sui sistemi Linux, non si può ovviamente ignorare la larga fetta di affezionati a questo browser.</p> <p><a href="http://www.tatanka.com.br/ies4linux/page/Installation:Ubuntu">In questa pagina</a> ci sono le istruzioni di installazione per le versioni precedenti alla 8.04. Per l'ultima versione in sommi capi, si deve fare più o meno la stessa cosa:</p> <ul> <li>Installare <strong>cabextract</strong> e <strong>wine </strong>da Synaptic (o tramite apt-get se preferite). </li> </ul> <p>Da shell digitate le espressioni dopo il dollaro:</p> <pre class="php" name="code">orion@orion:~$ wget http://www.tatanka.com.br/ies4linux/downloads/ies4linux-latest.tar.gz<br />orion@orion:~$ tar zxvf ies4linux-latest.tar.gz<br />[CUT]<br />orion@orion:~$ cd ies4linux-*<br />orion@orion:~/ies4linux-2.99.0.1$ ls<br />ies4linux lang lib LICENSE mac README ui winereg<br />orion@orion:~/ies4linux-2.99.0.1$ ./ies4linux<br />[CUT]<br /></pre><p align="justify">Ho omesso i processi di elaborazione stampati in ouput e marcati da [CUT]. Durante il processo di installazione, quando compare la GUI, cliccare su <em>Advanced</em> e marcare IE7 per installare anche l'ultima versione di IE e spuntate il flag <em>menu</em> per avere l'icona sul desktop.</p>Christian Castellihttp://www.blogger.com/profile/16095115669977999358noreply@blogger.comtag:blogger.com,1999:blog-1047952760751922754.post-2839126317562190912008-06-18T19:28:00.001+02:002008-06-18T19:28:53.883+02:00Switch to Ubuntu<p><a title="Scarica Ubuntu Hardy Henron 8.04" href="http://www.ubuntu.com/"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="169" alt="ubuntu" src="http://lh6.ggpht.com/voodoo81people/SFlF1IxIEeI/AAAAAAAAAbc/5x_c-PrhhX0/ubuntu%5B9%5D.jpg?imgmax=800" width="419" border="0" /></a></p> <p>Per venire incontro alle scarse risorse del mio computer di lavoro (pentium 2.6 GHz per 512 MB di RAM) e avere gli stessi strumenti <a title="Sito dell'Oli" href="http://linuxfeed.org">del mio collega</a>, ho deciso di piallare XP e mettere Ubuntu.</p> <p>E' ora di rispolverare un po' di vecchie esperienze fatte negli anni passati, non mi ricordo gran che... (oltre al cammellone vorrà dire che l'Oli dovrà sorbirsi pure le mie richieste da niubbo :-D).</p> Christian Castellihttp://www.blogger.com/profile/16095115669977999358noreply@blogger.comtag:blogger.com,1999:blog-1047952760751922754.post-71266826575420515692008-06-18T13:01:00.002+02:002008-06-18T13:19:11.268+02:00Eventi iCalendar in ThunderbirdOggi ho ricevuto una partecipazione ad una riunione in formato <a href="http://en.wikipedia.org/wiki/ICalendar">iCalendar</a>. Non ho mai avuto a che fare con tali strumenti per cui quando ho aperto con Thunderbird una mail generata con Outlook 2007, mi son ritrovato una simpatica accozzaglia di dati del tipo:<br /><pre dragover="true">BEGIN:VCALENDAR<br />VERSION:2.0<br />PRODID:-//hacksw/handcal//NONSGML v1.0//EN<br />BEGIN:VEVENT<br />DTSTART:19970714T170000Z<br />DTEND:19970715T035959Z<br />SUMMARY:Bastille Day Party<br />END:VEVENT<br />END:VCALENDAR</pre>...ma molto più incasinato. Una rapida ricerca in rete mi ha fatto trovare un'ottima estensione per Thunderbird 2.* chiamata <a href="https://addons.mozilla.org/en-US/thunderbird/addon/2313">Lightning</a>. Questa estensione permette di leggere, accettare e declinare eventi condivisi e di visionare il proprio calendario in un pannello a destra (vedi foto sotto), richiamabile e nascondibile tramite un bottone nella barra degli strumenti.<br /><pre dragover="true"><a dragover="true" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_FGbQdJ9TWRI/SFju_Fldo8I/AAAAAAAAAbU/bR_kQ-PYArs/s1600-h/intranet.jpg"><img dragover="true" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp3.blogger.com/_FGbQdJ9TWRI/SFju_Fldo8I/AAAAAAAAAbU/bR_kQ-PYArs/s400/intranet.jpg" alt="" id="BLOGGER_PHOTO_ID_5213179336279827394" border="0" /></a></pre>Christian Castellihttp://www.blogger.com/profile/16095115669977999358noreply@blogger.comtag:blogger.com,1999:blog-1047952760751922754.post-34314305439976618422008-06-16T22:37:00.002+02:002008-06-16T22:38:22.335+02:00[Apache] Protezione .htaccess ed autenticazione<p>Ammettiamo di voler proteggere una parte del nostro sito tramite la classica autenticazione di base di <a href="http://httpd.apache.org/docs/2.2/howto/htaccess.html">.htaccess</a> e .htpasswd, ma di voler richiedere l'autenticazione solo per chi si connette con IP diversi da quelli che acconsetiamo:</p> <pre class="sql" name="code">Order Deny,Allow<br />Deny from all<br /># permettiamo gli indirizzi privati,localhost e<br /># alcuni IP, protezione htaccess per gli altri<br /><br />Allow from 172.16. # lan privata...<br />Allow from 127.0.0.1 # locale...<br />Allow from 87.65.65.65 # ip statico a caso...<br />AuthType Basic<br />AuthUserFile /percorso/al/file/.htpasswd<br />AuthName "AREA RISERVATA"<br />Require valid-user<br />Satisfy any</pre>Come da esempio, permettiamo di entrare senza autenticazione ai range <a href="http://it.wikipedia.org/wiki/CIDR">CIDR</a> 192.168.0.0/16 ,172.16.0.0/16 e 10.0.0.0/8. In aggiunta permettiamo all'IP statico 87.65.65.65 di entrare senza autenticarsi.<br /><p>Per tutti gli altri ci affidiamo al file .htpasswd che sarebbe bene posizionare al di fuori della directory pubblica (di solito www o htdocs a seconda che Apache sia su Linux o Windows).</p>Per costruire le coppie username:password presenti in .htpasswd potete usare l'eseguibile omonimo presente nell'installazione di Apache (<a href="http://httpd.apache.org/docs/2.2/programs/htpasswd.html">vedere la documentazion online</a>), potete usare uno dei tanti generatori online come <a href="http://home.flash.net/cgi-bin/pw.pl">.htpasswd Content Generator</a> oppure si può ricorrere ad uno script PHP come il seguente:<br /><br /><pre class="php" name="code">if(isset($_GET['pass'])){<br /> // prendiamo il parametro dalla query string...<br /> $clearTextPassword = $_GET['pass'];<br /> // criptazione<br /> $password = crypt($clearTextPassword, base64_encode($clearTextPassword));<br /> echo "Valore da immettere nell'.htpasswd: <b>";<br /> // se viene fornito l'utente...<br /> if(isset($_GET['user']))<br /> echo $_GET['user'].":".$password;<br /> else echo $password;<br /> echo "</b>";<br />} </pre>Nell'esempio qui sopra si assume di richiamare uno script PHP nel seguente modo: <a href="http://localhost/htpass.php?user=Chris&pass=p4ss">http://localhost/htpass.php?user=Chris&pass=p4ss</a>.Christian Castellihttp://www.blogger.com/profile/16095115669977999358noreply@blogger.comtag:blogger.com,1999:blog-1047952760751922754.post-37574220382050178362008-06-16T22:09:00.001+02:002008-06-16T22:09:58.952+02:00[PHP-MySQL] Connettersi a diversi DB su host diversi attarverso una sola funzione<p>Se avete a che fare con DBMS su host differenti e volete uno script che sia in grado di connettersi dinamicamente a ciascuno di essi, ci si può basare sull'indirizzo del server su cui risiede il DBMS. L'esempio seguente dovete immaginarlo come il costruttore della classe DBconnect che imposta i campi <code>dbhost</code> (host in cui gira MySQL), <code>dbuser</code> (utente con cui si si collega al DB), <code>dbpassword</code> (password utente) e <code>database</code>.<br/> In quest'esempio si fa uso di <a href="http://it2.php.net/preg_match">preg_match</a> e di espressioni regolari per riconoscere l'indirizzo del server. </p> <pre name="code" class="php"><br />function DBconnect() {<br /> <br /> // esecuzione su una LAN privata<br /> if(preg_match("/^10\./",$_SERVER['SERVER_ADDR'])) { <br /> <br /> $this->dbhost = "10.10.234.89"; <br /> $this->dbuser = "lan1";<br /> $this->dbpassword = "lan1";<br /> $this->database = "lan1"; <br /> <br /> // esecuzione su un'altra LAN privata<br /> } else if (preg_match("/^192\./",$_SERVER['SERVER_ADDR'])) { <br /> <br /> $this->dbhost = "192.168.9.134"; <br /> $this->dbuser = "lan2";<br /> $this->dbpassword = "lan2";<br /> $this->database = "lan2";<br /> <br /> } else { // esecuzione in locale<br /> <br /> $this->dbhost = "localhost"; <br /> $this->dbuser = "locale";<br /> $this->dbpassword = "locale";<br /> $this->database = "locale";<br /> <br /> }<br />}<br /></pre> Christian Castellihttp://www.blogger.com/profile/16095115669977999358noreply@blogger.comtag:blogger.com,1999:blog-1047952760751922754.post-67824520399578568522008-06-15T19:21:00.001+02:002008-06-15T19:21:29.858+02:00[PDF] Librerie e applicazioni utili<p>Nel ricercare un tool su SourceForge che mi permettesse di esportare le immagini da un PDF, ho trovato interessanti librerie che mi propongo di analizzare nel medio-lungo periodo (il tempo è tiranno e gli impegni molti):</p> <ul> <li> <div align="justify"><a href="http://www.pdfbox.org/">PDFBox</a> [Java]: PDFBox is an open source Java PDF library for working with PDF documents. This project allows creation of new PDF documents, manipulation of existing documents and the ability to extract content from documents. PDFBox also includes several command line utilities. </div> </li> <li> <div align="justify"><a href="http://sourceforge.net/project/showfiles.php?group_id=113778">PHP PDF Factory</a> [PHP]: PDFLib-free PDF creation using PHP. It has interface compatible with php pdf creator (pdf-php library). Implements most of Adobe recommended features like PageTrees, Outlines, and so on. </div> </li> <li> <div align="justify"><a href="http://sourceforge.net/project/showfiles.php?group_id=54378">XML-PDF Transformation GUI</a> [Java]: This is a Java Swing GUI for popular XML tools from the Apache Group. It uses Xerces for XML validation, Xalan for XSLT, FOP for XML to PDF and iText for adding security features to the PDF. Can produce FO, HTML and PDF. I personally use it for my DocBook. </div> </li> <li> <div align="justify"><a href="http://qpdf.sourceforge.net/">QPDF</a> [C++]: QPDF is a command-line program that [...] is capable of creating linearized [...] files and encrypted files. It is also capable of converting PDF files with object streams [...] to files with no compressed objects or to generate object streams from files that don't have them (or even those that already do). QPDF also supports a special mode designed to allow you to edit the content of PDF files in a text editor. For more details, please see the documentation links below. </div> </li> <li> <div align="justify"><a href="http://pdfedit.petricek.net/index_e.html">PDF Edit</a> [C++,XPDF, QT3,QSA]: Free (and open source) editor for manipulating PDF documents. GUI version + commandline interface. Scripting is used to a great extent in editor and almost anything can be scripted, it is possible to create own scripts or plugins. Target platform are operating systems of Unix type (Linux, BSD). </div> </li> <li> <div align="justify"> [PHP]: Want to create <b>dynamic pdf documents</b> with <b>PHP</b>, but don't want to (or can't) install any of those required modules? Wll we could have <b>the solution</b>.. for you, a PHP class which will allow the easy production of simple pdf documents.</div> </li> <li> <div align="justify"><a href="http://sourceforge.net/projects/innopdf/">Inno-PDF</a>, <a href="http://sourceforge.net/projects/itext/">iText</a>, <a href="http://sourceforge.net/projects/pdf4j/">PDF4J</a> [Java]: librerie Java per la generazione di PDF;</div> </li> <li> <div align="justify"><a href="http://www.tecnick.com/public/code/cp_dpage.php?aiocp_dp=tcpdf">TCPDF</a>, <a href="http://www.pc4p.net/">PC4P</a>, <a href="http://ros.co.nz/pdf/">PHP PDF Creation</a> [PHP]: classi per la generazione di documenti PDF;</div> </li> <li> <div align="justify"><a href="http://pdml.sourceforge.net/">PDML</a> [PHP]: PDML is an informal markup language written in 100% PHP, allowing to create complex PDF documents very easily for people already familiar with HTML. People familiar with PHP can also use it as a way to define templates for dynamic PDF documents. PDML is built on top of <a href="http://www.fpdf.org/">FPDF</a>, and is licensed under the GPL;</div> </li> <li> <div align="justify"><a href="http://sourceforge.net/projects/petersreport/">Peters PHP PDF Report</a>: A PHP5 class, which capable to generate PDF report (w optional sections like pageheader, reportheader, content etc..) based on fpdf class. The report is defined in xml, groups' definitions and variable replacement from any database are supported.</div> </li> <li> <div align="justify"><a href="http://wp2pdf.sourceforge.net/">WP2PDF</a>: it is a script that converts the content of one or more entries of the Blog-Software WordPress to PDF. It is based on FPDF, a free PDF library and written in PHP. It requires a working WordPress installation and PHP 4.x.</div> </li> </ul> Christian Castellihttp://www.blogger.com/profile/16095115669977999358noreply@blogger.comtag:blogger.com,1999:blog-1047952760751922754.post-51175533437388127292008-06-15T18:29:00.003+02:002008-06-15T18:34:15.675+02:00[Software] Esportare tutte le immagini di un PDF<p>I fun dei Nine Inch Nails avranno sicuramente notato <a href="http://ghosts.nin.com/main/pdf">la bellezza delle immagini presenti nel PDF allegato al loro utlimo album</a> e liberamente scaricabile dal sito ufficiale.</p> <p>Sebbene complessivamente il loro ultimo lavoro non mi sia piaciuto (sebbene mi piacciano molto e abbia ascoltato l'intera discografia producendo <a href="http://bytestrike.blogspot.com/2007/10/compila.html">una mia compilation personale</a>), le immagini presenti in quel PDF sono veramente belle.</p> <p>Da qui la necessità e la voglia di esportarle dal loro contenitore. <br /><a href="http://www.somepdf.com/some-pdf-image-extract.html">SomePDF</a> (per Windows) permette di importare un file PDF tramite un pulsante (niente drag & drop) e di esportare in una cartella (posizionata nella medesima directory del PDF che avete importato) tutte le immagini presenti nel PDF.</p> <p>Nel mio caso, ha elaborato un PDF di 50 pagine contenente una quarantina di immagini in pochi secondi.</p> <p>Una utility a linea di comando che compie la stessa cosa è <a href="http://sourceforge.net/projects/pdftojpg/">PDF2JPG</a>. quest'ultima non l'ho provata poichè ho raggiunto il mio obiettivo immediatamente, ma ho voluto citarla perchè potrebbe sempre tornar utile come integrazione in altre applicazioni.</p> <p>Se conoscete software analoghi per Linux lasciate un commento grazie.</p>Christian Castellihttp://www.blogger.com/profile/16095115669977999358noreply@blogger.comtag:blogger.com,1999:blog-1047952760751922754.post-25343007946519240492008-06-15T16:48:00.001+02:002008-06-15T16:48:07.742+02:00[Fun?] Cottura rapida del pop-corn aka cervello<embed src="http://www.youtube.com/v/kAd0aWxs7kQ&hl=it&color1=0x234900&color2=0x4e9e00" width="425" height="344" type="application/x-shockwave-flash" /> <p> </p> <p>Manco con la pentola riesco a farli così velocemente :-D </p> <p>Questo video mi ha riportato alla memoria <a href="http://www.beppegrillo.it/2006/07/cervello_a_la_c.html">la storia pubblicata da Grillo</a> in cui sembrava che due cellulari accesi e in comunicazione tra loro potessero cuocere un uovo in un'ora.  Questa storia è stata in seguito <a href="http://attivissimo.blogspot.com/2006/07/antibufala-cellulari-cuociuova.html">sbufalata da Attivissimo</a>, che a riguardo ne ha anche <a href="http://attivissimo.blogspot.com/2007/01/due-chiacchiere-con-beppe-grillo.html">discusso personalmente alla radio con Grillo</a>, il quale però continuava a sostenerne la validità.</p> <p>Questa e altre storie sono state usate per indicare che spesso Grillo ne spara qualcuna di troppo (del resto nessuno è perfetto). Quello che mi fa incazzare è che poi si esageri andando a <a href="http://www.beppegrillo.it/2005/09/la_paga_di_giud.html">colpire più l'uomo che le sue parole</a> e quello che cerca di fare in quest'Italia fatta dalla politica e dall'informazione ormai marce.</p> <p>Beh ragazzi, magari due cellulari non riescono a cuocere un uovo in un'ora, ma almeno 4 cellulari riescono a farci i pop-corn in pochi secondi :-D</p> Christian Castellihttp://www.blogger.com/profile/16095115669977999358noreply@blogger.comtag:blogger.com,1999:blog-1047952760751922754.post-36881876149010315252008-06-09T22:34:00.001+02:002008-06-09T22:34:35.242+02:00[VoIP] Account multipli su Windows<p><a title="Vai alla home page" href="http://www.skype.com/"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="72" alt="skype" src="http://lh4.ggpht.com/voodoo81people/SE2T1EyGiUI/AAAAAAAAAbQ/u43PBwxoUF8/skype%5B9%5D.jpg?imgmax=800" width="377" border="0" /></a> </p> <p>Oggi tornato a casa volevo aver la necessità di poter usare, oltre al mio account storico di Skype, anche quello di lavoro.</p> <p>Dopo una breve ricerca salta fuori che <a title="Post su Geekissimo" href="http://www.geekissimo.com/tag/multi-account/">in XP è sufficiente creare un altro account come amministratore ed eseguire il programma con quest'altro utente</a>.</p> <p>Ho provato con Vista, dopo aver creato un altro account amministrativo, ma la parolina magica "<em>Esegui come</em>..." non c'era.</p> <p>A un certo punto mi imbatto in un commentatore che siggerisce l'uso di <a title="Sito ufficiale di SandBoxie" href="http://www.sandboxie.com/">SandBoxie</a>. Per chi non lo sapesse SandBoxie costituisce una sandbox in cui i programmi che vengono eseguiti al suo interno non possono interagire con lo spazio di memoria esterno del disco alla sandbox (ottima per eseguire i browser o programmi poco sicuri).</p> <p>Siccome l'avevo già installato, ho provato ed effettivamente la cosa funziona. </p> <p>E' strano come alle volte la soluzione a certe stupidaggini sia sempre stata lì a portata di mano ma che si sia troppo ciechi per vederla. <br />Se avete altre soluzioni o conoscete patch simili a quelle per MSN fate un fischi qui sotto ;)</p> Christian Castellihttp://www.blogger.com/profile/16095115669977999358noreply@blogger.comtag:blogger.com,1999:blog-1047952760751922754.post-30831805222412581392008-06-08T18:39:00.002+02:002008-06-08T18:52:36.630+02:00[Music] La compilation della domenica<p>Senza alcuna volontà di svilirla, viene così battezzata perchè creata di domenica per l'appunto :-)</p> <p>Ho avuto modo di ascoltare gruppi e artisti a me sconosciuti e di scoprire certi brani di altri gruppi più o meno noti (per lo più solo di nome). <br />Durante quest'esplorazione ho dato vita all'ennesima compilation (prima o poi dovrei decidermi a farmi un account su LAST FM per farle anche ascoltare invece di fornire solo dei titoli, magari lo farò in una delle domeniche che verranno, per ora linko i video su Youtube).</p> <p>Listone:</p> <ol> <li><a title="Video su YouTube" href="http://it.youtube.com/watch?v=aRk8gnTt73Y">Stefanie Heinzmann - My man is a mean man</a>;</li> <li><a title="Video su YouTube" href="http://it.youtube.com/watch?v=_We6ubpUHZs">REM - Supernatural superserious</a>;</li> <li><a title="Video su YouTube" href="http://it.youtube.com/watch?v=gskuP-8dtSU">Maroon 5 - Wont go home without you</a>;</li> <li><a title="Video su YouTube" href="http://it.youtube.com/watch?v=tR7SdaXHPH4">Amy McDonald - Mr rock and roll</a>;</li> <li><a title="Video su YouTube" href="http://it.youtube.com/watch?v=YN4lAndjB1E">Newton Faulkner - Dream catch me</a>;</li> <li><a title="Video su YouTube" href="http://it.youtube.com/watch?v=-YUxbDEPFiM">Yael Naim - New Soul</a>;</li> <li><a href="http://it.youtube.com/watch?v=KII1ruAfvsg">Take that - Rule the world</a>;</li> <li><a href="http://it.youtube.com/watch?v=OtT7Og2LBbE">Paul Simon - Graceland</a>;</li> <li><a title="Video su Music PlayOn" href="http://it.musicplayon.com/play?v=129050">Gnarls Barkley - Run (I'm a Natural Disaster)</a>;</li> <li><a title="Video su Youtube" href="http://it.youtube.com/watch?v=ZIMzh7y_Gbc">Girls Aloud - Can't Speak French</a>;</li> <li><a title="Video su YouTube" href="http://it.youtube.com/watch?v=ouYlyDsWUXA">Gwen Stefani - Early winter</a>;</li> <li><a href="http://it.youtube.com/watch?v=rIa3QABoSe0">Seal - Amazing</a>;</li> <li><a title="Video su Youtube" href="http://it.youtube.com/watch?v=w-0KkTmxReU">King family - Perfect day</a>;</li> <li><a title="Video su youTube" href="http://it.youtube.com/watch?v=77ey1aWDnyY&feature=related">Sunrise avenue - -Fairytale gone bad</a>;</li> <li><a title="Video su YouTube" href="http://it.youtube.com/watch?v=Ty0u1PzXfTo">Lupe fiasco - Superstar</a>;</li> <li><a title="video su Youtube" href="http://it.youtube.com/watch?v=DmeUuoxyt_E">Nickelback - Rockstar</a>;</li> <li><a title="Video su Youtube" href="http://it.youtube.com/watch?v=wxJFKcqLIvs">Sheryl Crow - Love is free</a>;</li> <li><a title="Video su YouTube" href="http://it.youtube.com/watch?v=KE2orthS3TQ">Duffy - Mercy</a>;</li> <li><a title="Video su Youtube" href="http://it.youtube.com/watch?v=Q4vJ8ZdmIvA">Sugababes - Denial</a>;</li> <li><a title="Video su Youtube" href="http://it.youtube.com/watch?v=qz7vGW2_5c0">Adele - Chasing Pavements</a>;</li> <li><a title="Video su Youtube" href="http://it.youtube.com/watch?v=aygAu1x2uQo">Amy Winehouse - Back to black</a>;</li> </ol> <p>Chi ha tempo e si è visto i video lasci pure un commento riguardo a questa selezione. Io mi riservo di sentirla meglio in macchina, praticamente gli unici momenti (a parte il finesettimana) in cui ascolto un po' di musica.</p>Christian Castellihttp://www.blogger.com/profile/16095115669977999358noreply@blogger.comtag:blogger.com,1999:blog-1047952760751922754.post-37350581486998283782008-06-07T18:49:00.003+02:002008-06-07T18:52:58.664+02:00[Hi-Tech?] USB devices per tutti i gusti :-)<p>In giro per la rete ci capita di vederne di tutti i colori. All'ennesimo dispositivo USB un po' bizzarro ho deciso di elencarne alcuni tra quelli che mi hanno colpito:</p> <ul> <li> <div align="justify"><a href="http://www.poor.pl/pooreng/plugin.htm">Spinacz</a>: USB pen drive a forma di molletta di legno;</div> </li> <li> <div align="justify"><a href="http://www.thinkgeek.com/stuff/looflirpa/igrill.shtml">iGrill</a>: 100$ per avere un tostapane in grado di scaricare le ricette, digitare il tipo di cibo, il peso e il grado di cottura;</div> </li> <li> <div align="justify"><a href="http://www.engadget.com/2005/12/02/target-your-co-workers-with-usb-air-darts/">USB Air Darts</a>: lancia razzi USB, per accecare gli ospiti indesiderati che cercano di entrare nella vostra camera (<a href="http://video.fosfor.se/usb-air-darts/">disponibile un video</a> che rende l'idea della inutility);</div> </li> <li> <div align="justify"><a href="http://www.dynamism.com/usb-engine-hub/main.shtml">USB Engine Hub</a>: USB hub a 3 porte a forma di motore in grado di rombare (direi anche fastidiosamente) se tirate la leva d'accensione;</div> </li> <li> <div align="justify"><a href="http://www.thanko.jp/usbslippers_dual/index.html">USB slippers</a>: pantofole riscaldanti una volta connesse al vostro PC...non oso immaginare quali altri troiai si possano trovare in questo sito...fanno il paio con i <a href="http://www.usbgeek.com/prod_detail.php?prod_id=0356">guanti riscaldanti</a>;</div> </li> <li> <div align="justify"><a href="http://usb.brando.com.hk/prod_list.php?page=1&cat_id=&cat=&dept_id=015&dept=&pgSize=20">usb.brando.com.hk</a>: in questo sito c'è veramente una vagonata di dispositivi tra i più bizzarri: <a href="http://usb.brando.com.hk/prod_detail.php?prod_id=00519">USB Hub a forma di stella</a>, <a href="http://usb.brando.com.hk/prod_detail.php?prod_id=00505">radiolina a forma di pallone</a> in grado di connettersi a diversi dispositivi, <a href="http://usb.brando.com.hk/prod_detail.php?prod_id=00515">DJ Plasma tube</a> (barre al plasma che si muovono in corrispondenza del ritmo), <a href="http://usb.brando.com.hk/prod_detail.php?prod_id=00523">una fontana</a> 21 X 16 X 11 cm, <a href="http://usb.brando.com.hk/prod_detail.php?prod_id=00431&dept_id=015&cat_id=035">una radiosveglia</a> con 1 GB di memoria in grado di riprodurre anche gli mp3 (disponibile anche <a href="http://usb.brando.com.hk/prod_detail.php?prod_id=00448&dept_id=015&cat_id=035">in versione cubo</a>);</div> </li> </ul> <p>Fonte: <a href="http://gadgets.fosfor.se/the-top-10-weirdest-usb-devices-ever/">Gadget Fosfor</a>;</p>Christian Castellihttp://www.blogger.com/profile/16095115669977999358noreply@blogger.comtag:blogger.com,1999:blog-1047952760751922754.post-57455737137433002122008-06-07T14:47:00.002+02:002008-06-07T14:48:52.980+02:00[Social Network] Nasce DiggItSport<p><a title="Vai su DiggItSport" href="http://www.diggitsport.com/"><img style="border: 0px none ;" alt="logo" src="http://lh5.ggpht.com/voodoo81people/SEqDaIZyxTI/AAAAAAAAAbM/-pL5USHdbXw/logo%5B4%5D.jpg?imgmax=800" border="0" height="104" width="375" /></a> </p> <p>Era già in cantiere da un bel po' di tempo questo nuovo aggregatore sociale tutto incentrato sulle notizie sportive, ma nasce ufficialmente oggi DiggItSport, i cui autori sono il solito duo composto dagli amici <a href="http://www.delfinsblog.it/">Guido</a> e <a href="http://iblog.webprojectsolution.com/">Antonio</a> con la collaborazione di <a href="http://www.tomstardust.com/">Tommaso Baldovino</a> per la parte grafica.</p> <p>Riporto direttamente <a href="http://www.delfinsblog.it/2008/06/07/e-nato-diggitsportcom-l-aggregatore-di-news-sportive-italiano/">le parole di Guido</a> su DiggItSport:</p> <blockquote> <p>Ma di cosa si tratta? Si tratta di uno, o meglio, del <strong>primo ed unico aggregatore italiano di notizie unicamente sportive</strong>. E mai come in questi giorni lo sport è argomento di prim’ ordine, dal momento che i prossimi tempi vedranno iniziare gli <strong>Europei di Calcio 2008 </strong>e le <strong>Olimpiadi di Pechino 2008</strong>. [CUT] <br />Sì, perchè <a href="http://www.diggitsport.com/">DiggItSport</a> si propone [di] diventare il portale che raccoglierà il meglio delle notizie sportive della Rete. [CUT] oltre alle news, è possibile postare anche fotografie e video. [CUT] DiggItSport <strong>integra il Revenue Sharing</strong>, ovvero da la <strong>possibilità ai suoi utenti di guadagnare tramite DiggItSport!</strong> Basterà che l’ utente abbia un account AdSense ed inserisca tra le impostazioni del suo account sul portale il proprio codice publisher. Da quel momento sulle pagine delle news da lui segnalate <strong>appariranno i suoi banner AdSense</strong>! Ogni click altrui su di essi, quindi, andrà ad <strong>incrementare il proprio conto Google</strong>!</p></blockquote>Christian Castellihttp://www.blogger.com/profile/16095115669977999358noreply@blogger.comtag:blogger.com,1999:blog-1047952760751922754.post-36109594415686850682008-05-31T02:40:00.001+02:002008-05-31T02:40:47.360+02:00[eventi] Sagra del Software Libero 2008<p>La Sagra del Software Libero 2008 avrà luogo <b>sabato 31 maggio 2008</b>, nel <b>centro socioculturale della circoscrizione n.2</b>, situato in <b>via T. Rook 13 (Pisa) e sarà tenuto dai membri del <a href="http://www.gulp.linux.it/wiki/Sagra_del_Software_Libero_2008">GULP</a>.</b></p> <p>Programma della sagra: </p> <table cellspacing="0" cellpadding="2" width="400" border="1"><tbody> <tr> <td valign="top" width="133">Orario</td> <td valign="top" width="133">Titolo </td> <td valign="top" width="133">Relatore </td> </tr> <tr> <td valign="top" width="133">15:00-15:30</td> <td valign="top" width="133">Introduzione</td> <td valign="top" width="133">Il Presidente </td> </tr> <tr> <td valign="top" width="133">15:30-16:00 </td> <td valign="top" width="133">Talk Software Libero </td> <td valign="top" width="133">LightKnight </td> </tr> <tr> <td valign="top" width="133">16:00-16:30</td> <td valign="top" width="133">Risorse per Principianti</td> <td valign="top" width="133">Alessandra</td> </tr> <tr> <td valign="top" width="133">16:30-17:00</td> <td valign="top" width="133">Pausa Merenda</td> <td valign="top" width="133"> </td> </tr> <tr> <td valign="top" width="133">17:00-18:00</td> <td valign="top" width="133">Installazione Ubuntu</td> <td valign="top" width="133">Il Presidente</td> </tr> <tr> <td valign="top" width="133">18:00-18:30</td> <td valign="top" width="133">Videogiochi liberi su Linux</td> <td valign="top" width="133">DnaX</td> </tr> <tr></tr> </tbody></table> <p> <br />Dettagli maggiori sul loro sito e su <a href="http://punto-informatico.it/p.aspx?id=2305501">Punto Informatico</a>.</p> Christian Castellihttp://www.blogger.com/profile/16095115669977999358noreply@blogger.comtag:blogger.com,1999:blog-1047952760751922754.post-31631517329292148212008-05-30T00:59:00.001+02:002008-05-30T00:59:45.698+02:00[Eventi] Travaglio alla Stazione Leopolda<p><a href="http://lh6.ggpht.com/voodoo81people/SD81W0jT8yI/AAAAAAAAAa8/Mi7U9gYi4xY/s1600-h/travaglio%5B4%5D.jpg"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="313" alt="travaglio" src="http://lh6.ggpht.com/voodoo81people/SD81X0jT8zI/AAAAAAAAAbE/834zKNGoQV4/travaglio_thumb%5B2%5D.jpg?imgmax=800" width="414" border="0" /></a></p> <p>10 giorni fa sono stato a sentire <a href="http://beppegrillo.meetup.com/190/calendar/7935346/">Marco Travaglio alla Stazione Leopolda</a>, vicinissima a dove sto io. E' passato del tempo e poi mi son scordato di postare qualcosa a riguardo.</p> <p>Sono state 3 ore interessanti (letterlamente volate), in cui Marco ha tenuto sempre un buon ritmo con il suo solito stile elegante e pungente. </p> <p>Una ressa incredibile, non so quante persone riesca a contenere quel posto ma secondo me almeno 200 persone c'erano tutte. Fortunatamente sono riuscito ad agguantare due sedie prese a prestito dal bar della Stazione e a sedermi vicino al palchetto (come si può notare dalla foto), il tutto in una calura incredibile, avevo una sete allucinante.</p> <p>Tavaglio ha anche presentato il suo nuovo libro, scritto con Peter Gomez, "<a href="http://www.unilibro.it/find_buy/Scheda/libreria/autore-gomez_peter_travaglio_marco/sku-12842064/se_li_conosci_li_eviti_.htm">Se li conosci li eviti</a>", 14 €, per ora regalato ad una nostra nuova amica romena Daniela (una donna dalle mille risorse e sospetto anche una consulente finanziaria con le palle).</p> Christian Castellihttp://www.blogger.com/profile/16095115669977999358noreply@blogger.comtag:blogger.com,1999:blog-1047952760751922754.post-63462671570872930312008-05-30T00:02:00.003+02:002008-05-30T00:08:40.314+02:00[Music] Halleluja! - Lucca Gospel Festival<p><a href="http://www.joyfulangels.it/eventi.htm"><img style="border: 0px none ;" alt="Hallelujah" src="http://lh3.ggpht.com/voodoo81people/SD8oBEjT8xI/AAAAAAAAAa0/ZvCRQdANwrc/Hallelujah%5B5%5D.jpg?imgmax=800" border="0" height="246" width="415" /></a> </p> <p>E' con grande piacere che annuncio di poter partecipare in qualità di membro del coro <a href="http://www.voicesofheaven.it/">Voices Of Heaven</a> all'"Halleluja! Lucca Gospel Festival", manifestazione che si terrà dal 10 al 15 giugno ed organizzata da Vijay Pierallini e i <a href="http://www.joyfulangels.it/">Joyful Angels</a>, in collaborazione con la Provincia di Lucca e la Fondazione Cassa di risparmio di Lucca.</p> <blockquote><i><b>"Dieci cori italiani potranno partecipare al concorso, organizzato nell'ambito del Festival. Potranno partecipare quei cori che abbiano un repertorio di genere gospel, spiritual o ispirato alla musica nera e afro-americana, purchè si tratti di formazioni amatoriali e non esercitino l'attività corale come professionisti. </b>Altra clausola è di non presentare brani sotto contratto con case discografiche. Tre saranno i vincitori: il primo classificato riceverà 1500 euro, 1000 euro saranno assegnati al secondo, mentre il terzo riceverà 500 euro. A tutti e tre i cori vincitori verrà conferita anche una targa della Provincia di Lucca. Sono, infine, previsti due premi speciali: quello per la miglior voce maschile e quello per la miglior voce femminile.".</i> Fonte: <a href="http://lanazione.quotidiano.net/lucca/2008/05/22/90908-primo_italia_halleluja_lucca_gospel_festival.shtml">La Nazione</a>.</blockquote> <p>Durante il weekend finale, sono previste, infatti, due giornate di concerti con esibizione libera dei corsi ospiti e un concorso, la cui giuria è presieduta da <a href="http://profile.myspace.com/index.cfm?fuseaction=user.viewprofile&friendID=108805653">Cheryl Porter</a>.</p> <p>Più avanti seguiranno dettagli più precisi in merito a giorno, luogo ed ora della nostra esibizione. Chi passa da quelle parti faccia un salto!!</p>Christian Castellihttp://www.blogger.com/profile/16095115669977999358noreply@blogger.comtag:blogger.com,1999:blog-1047952760751922754.post-9472078000793918462008-05-29T23:24:00.002+02:002008-05-29T23:31:38.340+02:00[Google] I filtri di Gmail<p>Oggi volevo spedire da lavoro dei documenti preventivamente zippati al mio indirizzo gmail per potermeli consultare a casa.</p> <p>Ma Gmail si rifiutava di inoltrare la mia posta. Il motivo è che Gmail spacchetta gli archivi e analizza i files al suo interno: se li giudica pericolosi, rigetta la richiesta di inoltro della posta. <a href="http://mail.google.com/support/bin/answer.py?answer=6590">La sua policy è spiegata qui</a>.</p> <p>I documenti in questione erano un pdf e un libro <a href="http://en.wikipedia.org/wiki/Microsoft_Compiled_HTML_Help">in formato CHM</a> (il noto formato proprietario della Microsoft). <br />Ora non so quanto possa esser pericoloso un file CHM e quale insidie possa nascondere, ma sta di fatto che è sufficiente alterare l'estensione dei files considerati "pericolosi" per far si che google torni ad inoltrare la posta, confermando che Google si basa su un mero riconoscimento dei file in base all'estensione piuttosto che sulla lettura del loro codice testuale /binario.</p>Christian Castellihttp://www.blogger.com/profile/16095115669977999358noreply@blogger.comtag:blogger.com,1999:blog-1047952760751922754.post-29582180178550732632008-05-29T00:07:00.004+02:002008-05-29T00:32:04.844+02:00[SQL]La query del giorno<div style="text-align: justify;">Immaginiamo di avere a disposizione una tabella che contenga le vostre vendite annuali, dei campi che contengono per ciascuna vendita l'importo lordo e ivato e che tutte le date siano espresse nel formato unix timestamp (nel caso non sappiate cosa sia, <a href="http://www.unixtimestamp.com/">fate riferimento a questo sito</a> che ve lo spiega e vi fornisce un'applicazioncina web per fare la conversione di formato).<br /><br />Si vuole produrre una query che dia come risultato dei record i cui campi della tabella sono:<br /></div><ul><li>anno di riferimento per le spese;</li><li>Totale vendite per quell'anno;</li><li>Totale fatturato lordo;</li><li>Totale fatturato ivato.</li></ul><div style="text-align: justify;">Ovviamente si potrebbe fare una semplice query del sito select * from vendite where [conditions...] e gestire tutto via PHP, ma costringerebbe ad impiegare varie variabili per il conteggio dei vari dati per il calcolo del fatturato lordo e di quello ivato, dato derivato.<br /><br />Però volevo che facesse tutto MySQL di modo da semplificare al massimo la gestione del risultato con PHP. Quindi ecco la query finale:<br /></div><pre name="code" class="sql">select count(*) as totFatture,<br /> @totLordo := (select truncate(sum(fatturatoLordo),2) from table<br /> where [conditions...]<br /> and data between UNIX_TIMESTAMP('2007/01/01') and<br /> unix_timestamp('2007/12/31')) as totLordo,<br /> @totIva := @totLordo + (select truncate(sum(fatturatoIvato),2) as totIva from<br /> table where [conditions...]<br /> and data between UNIX_TIMESTAMP('2007/01/01')<br /> and unix_timestamp('2007/12/31')) as totIva,<br /> @first := 2007 as anno<br /> from table where [conditions...] and data<br /> between UNIX_TIMESTAMP('2007/01/01') and unix_timestamp('2007/12/31')<br /> group by anno<br />UNION<br />select count(*) as totFatture,<br /> @totLordo := (select truncate(sum(fatturatoLordo),2) from table<br /> where [conditions...] between<br /> UNIX_TIMESTAMP('2008/01/01') and unix_timestamp('2008/12/31')) <br /> as totLordo,<br /> @totIva := @totLordo + (select truncate(sum(fatturatoIvato),2) from fatture<br /> where [conditions...] and data<br /> between UNIX_TIMESTAMP('2008/01/01') and<br /> unix_timestamp('2008/12/31')) as totIva,<br /> @second := 2008 as anno<br /> from tablewhere [conditions...] and data between<br /> UNIX_TIMESTAMP('2008/01/01') and unix_timestamp('2008/12/31')<br /> group by anno<br /></pre><br /><div style="text-align: justify;">Se vi vengono in mente ottimizzazioni, non esitate a riferirle, per quei pochi dati di cui disponete :) A me è stato utile per imparare l'uso delle variabili in SQL ,della funzione unix_timestamp per il calcolo delle spese per anno e di truncate, che semplicemente tronca un numero alla i-esima cifra decimale specificata come secondo argomento, sebbene non arrotondi, ma semplicemente tronchi il numero (poco male alla fine).</div>Christian Castellihttp://www.blogger.com/profile/16095115669977999358noreply@blogger.comtag:blogger.com,1999:blog-1047952760751922754.post-27569158721589283912008-05-28T21:28:00.002+02:002008-05-28T21:32:27.297+02:00[MySQL Query Browser] The memory load of the system is extremly high<p>Per chi non lo conoscesse ancora, <a href="http://www.mysql.com/products/tools/query-browser/">MySQL Query Browser</a> è un tool visuale, disponibile per varie piattaforme, che permette con facilità di creare, eseguire ed ottimizzare queries SQL (<a href="http://www.mysql.com/products/tools/query-browser/qb-win-03-diff.png">qui uno screenshot</a>). </p> <p>Lo consiero un'ottima alternativa al promt dei comandi che, nonostante tutto, uso lo stesso congiuntamente a questo tool. <br />Purtroppo però stamattina mi è comparso un errore molto strano nell'esecuzione di una query banalissima che avrebbe dovuto ritornare senza tanti fronzoli (niente join o query innestate) meno di 50 records. L'errore è:</p> <blockquote> <pre>The memory load of the system is extremly high.<br />In order to keep the system responsive record set retrieval<br />has been stopped.</pre></blockquote><p>In pratica MySQL QB si rifiuta di eseguire la query come se non ci fosse memoria sufficiente per eseguirla (o qualcosa di simile immagino). </p><p>Facendo una breve ricerca viene fuori che è <a href="http://bugs.mysql.com/bug.php?id=30108">il bug 30108</a>, verificato da quasi 3 mesi e che interessa anche l'ultima versione stabile, la quale ha almeno <a href="http://bugs.mysql.com/search.php?search_for=&limit=All&order_by=&direction=ASC&cmd=display&status=Active&severity=&showstopper=&bug_type=MySQL+Query+Browser&php_os=&phpver=&assign=&bug_age=0">un centinaio di bug all'attivo non ancora risolti</a>.</p><p>Ad ogni mod questo bug non è facilmente ripetibile poichè dopo pochi istanti la query che prima vi dava tale errore potrebbe funzionare, complicando quindi il lavoro del team di debugging.</p><p>Resta sempre un tool molto valido comunque sia e lo consiglio vivamente.</p>Christian Castellihttp://www.blogger.com/profile/16095115669977999358noreply@blogger.comtag:blogger.com,1999:blog-1047952760751922754.post-54716215900098399232008-05-27T20:33:00.002+02:002008-06-24T22:07:04.610+02:00[Mozilla SW] Eliminare il ritardo nell'installazione delle estensioni<p>Sia per Firefox, sia per thunderbird è possibile eliminare il ritardo che si verifica quando si vuole installare un'estensione. Non che sia particolarmente fastidioso, alla fine si tratta semplicemente di 2/3 secondi, ma 0 secondi è sempre meglio di <em>n</em> secondi no? :-D</p> <ul> <li> <div align="justify">In <strong>Firefox</strong> basta digitare about:config nella barra del browser e impostare <strong>security.dialog_enable_delay</strong> a 0 semplicemente facendo doppio click sulla proprietà e immettendo il valore;</div> </li> <li> <div align="justify">in <strong>Thunderbird 1.5+</strong> andare in <em>Strumenti > Opzioni > Avanzate > Editor di configurazione</em> e impostare la stessa proprietà di prima a 0. Nel caso (improbabile e sconsigliato) abbiate una versione antecedente alla 1.5, installate l'estensione <a href="http://aboutconfig.mozdev.org/">AboutConfig</a>.</div> </li> </ul> <p align="justify">Fonti: <a href="http://www.sparkblog.org/come-eliminaremodificare-il-tempo-dattesa-prima-dellinstallazione-di-una-estensione-in-thunderbird-15/">Sniper</a> e <a href="http://kb.mozillazine.org/About:config">MozillaZine</a>.</p>Christian Castellihttp://www.blogger.com/profile/16095115669977999358noreply@blogger.comtag:blogger.com,1999:blog-1047952760751922754.post-66744462375332567172008-05-26T23:10:00.003+02:002008-05-27T20:43:23.090+02:00[SQL] MySQL tips<h3>Connessione e dumping</h3> <ol> <li>cambiare la password di un utente:<br /><pre name="code" class="sql"> <br />update user set password=PASSWORD("pippo") where user="root";<br />flush privileges; <br /></pre><br /></li><li>esportare solo le istruzioni DDL dal database:<br /><pre name="code" class="sql"> mysqldump db_name --no-data > script_file.sql<br /></pre> Aggiungere <code>--databases</code> se si vuole creare anche<br />il database al pari di altri oggetti.<br /></li><br /><li>avviare MySQL senza far scattare i beep per gli errori:<br /><pre name="code" class="sql"> mysql -uroot --no-beep -p<br /></pre></li></ol><h3>Query<br /></h3><ol><li>Selezionare l'ultimo elemento della tabella:<br /><pre name="code" class="sql"> select field1,field2, ...<br />from table [where=...]<br />order by field1 DESC limit 1;<br /><br />-- oppure...<br />select field from table<br />where id=last_insert_id(); -- dove id è di tipo auto_increment<br /></pre> </li></ol><h3>Date ed orari</h3><ol><li>Selezionare l'ora corrente:<br /><pre name="code" class="sql"> select now(); -- 2008-05-26 12:46:08<br />-- oppure...<br />select current_timestamp;<br /></pre> </li> <li>Selezionare solo la data corrente senza l'ora:<br /><pre name="code" class="sql"> select CAST(now() as date); -- 2008-05-26<br />-- oppure...<br />select current_date;<br /></pre> </li> <li>Selezionare solo l'ora corrente senza la data:<br /><pre name="code" class="sql"> select CAST(now() as time); -- 12:47:34<br />-- oppure...<br />select current_time;<br /></pre></li> <li>Selezionare lo unix timestamp a partire da una data:<br /><pre name="code" class="sql"> select unix_timestamp('2007/03/26 16:21:56')<br />-- è uguale a mktime(16,21,56,3,26,2007,-1) in PHP</pre></li></ol>Christian Castellihttp://www.blogger.com/profile/16095115669977999358noreply@blogger.com