<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-2794566328585739125</atom:id><lastBuildDate>Sun, 28 Sep 2025 06:54:56 +0000</lastBuildDate><category>opencode</category><category>GNU/Linux</category><category>Gambas</category><category>Free Mind</category><category>News</category><category>Didattica</category><category>Risorse utili</category><category>Guide</category><category>Windows</category><category>Debian</category><category>Grafica Vettoriale</category><category>Meganalotto</category><category>C</category><category>Il resto del Pinguino</category><category>MeteoMachine linux</category><category>Python</category><category>CAD</category><category>Hacking</category><category>Algoritmi</category><category>C-Ohm</category><category>Classe</category><category>Modulo</category><category>Php</category><category>Sql Database</category><category>BloggersContest</category><category>Google Code</category><category>Terminale</category><category>Ubuntu</category><category>Apple</category><category>Curiosità</category><category>Grafica Raster</category><category>LinuxBird</category><category>OpenERP</category><category>PHPersonalBookmarks</category><category>html</category><category>Calcolatrice</category><category>Gestione</category><category>Gnome</category><category>Mobile</category><category>Ocvc</category><category>OpenOffice</category><category>Risoluzione problemi</category><category>Scribble</category><category>Social Network</category><category>Strutture dati</category><category>Bash</category><category>Celyon</category><category>Contest</category><category>Diaspora</category><category>Django</category><category>Editor di testo</category><category>Elettrocolor</category><category>Elettronica</category><category>Game</category><category>GetSimple</category><category>Git</category><category>Hybris</category><category>Hyde</category><category>Java</category><category>Mint</category><category>Modulo Softwar Developer</category><category>Operser</category><category>Parlas</category><category>ProBash-ide</category><category>Qrcode</category><category>The Greys</category><category>Tombyla</category><category>VirtualBoard</category><category>css3</category><category>vaillant</category><category>web design</category><title>SoluzioniSoftware ora su wordpress -&amp;gt; http://blog.e-ware.org</title><description>Ora disponibile &lt;a href=&quot;http://blog.e-ware.org&quot;&gt;QUI&lt;/a&gt;&lt;br&gt;</description><link>http://soluzionisoftware.blogspot.com/</link><managingEditor>noreply@blogger.com (OpenCode)</managingEditor><generator>Blogger</generator><openSearch:totalResults>239</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2794566328585739125.post-9012535529790592648</guid><pubDate>Wed, 23 Oct 2013 10:39:00 +0000</pubDate><atom:updated>2013-10-23T12:39:27.717+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">GNU/Linux</category><title>Linux Day. Innovazione. Di tutti. Per tutti.</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;
Anche quest&#39;anno si terrà in tutta Italia il &lt;b&gt;&lt;a href=&quot;http://www.linuxday.it/&quot; target=&quot;_blank&quot;&gt;Linux Day&lt;/a&gt;&lt;/b&gt;. Giunto ormai alla sua tredicesima edizione l&#39;evento vedrà la partecipazione di 104 LUG in tutto lo stivale che insieme hanno coordinato le forze per creare un grande evento a carattere nazionale in cui si parlerà di GNU/Linux, Open Source e Software Libero.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Da sempre spettatore di questo bellissimo evento, quest&#39;anno ho deciso di varcare la soglia e di ritrovarmi dall&#39;altra parte. Forte della convinzione che l&#39;innovazione, motto principale di questo Linux Day, giunga anche dagli strumenti di tutti i giorni, ho deciso di tenere un talk sui social network dal titolo:&lt;/div&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;b&gt;Social Network Decentralizzati e Open Source&lt;/b&gt;&lt;/div&gt;
&lt;i&gt;&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;i&gt;Gli ultimi eventi riguardanti Assange, Manning e Snowden ci hanno insegnato che i nostri dati sul web non sono al sicuro. Un utente medio bassa la maggior parte del suo tempo sui social network. È possibile far convivere privacy e social network?&lt;/i&gt;&lt;/div&gt;
&lt;/i&gt;&lt;/blockquote&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Chiunque voglia venirmi a trovare mi troverà al &lt;a href=&quot;http://salug.it/ld2013/&quot; target=&quot;_blank&quot;&gt;Linux Day di Lecce&lt;/a&gt; organizzato dal sempre attivo &lt;a href=&quot;http://salug.it/&quot; target=&quot;_blank&quot;&gt;SaLUG&lt;/a&gt;. Sarà una buona occasione per discutere di un argomento ormai al centro della cronaca visti gli ultimi avvenimenti incentrati su spionaggio internazionale e violazione della privacy.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;http://salug.it/wiki/upload/e/eb/LocandinaLD2013.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;640&quot; src=&quot;http://salug.it/wiki/upload/e/eb/LocandinaLD2013.png&quot; width=&quot;460&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Locandina Linux Day 2013 - Lecce&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
</description><link>http://soluzionisoftware.blogspot.com/2013/10/linux-day-innovazione-di-tutti-per-tutti.html</link><author>noreply@blogger.com (OpenCode)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2794566328585739125.post-1407901764138487578</guid><pubDate>Wed, 15 May 2013 10:28:00 +0000</pubDate><atom:updated>2013-05-15T12:34:12.083+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">GetSimple</category><category domain="http://www.blogger.com/atom/ns#">opencode</category><title>GetSimple CMS - Last Hashtag Tweet Plugin</title><description>&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Essendo alla ricerca di un semplicissimo &lt;b&gt;CMS&lt;/b&gt; da interporre tra gli utenti e i servizi web che sviluppo, ho avuto modo di vagliare diverse opportunità. Alcuni CMS erano davvero interessanti ma avevano il problema di essere (volutamente?) troppo complessi. Ero alla ricerca di quella &lt;i&gt;minimalità&lt;/i&gt; che ormai è tanto rara da trovare. Il mio viaggio, così, mi ha portato due giorni fa alla scoperta di &lt;b&gt;GetSimple&lt;/b&gt;.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikHxJQhgLXie44PhJbw3d0lrdXXadSZbvsKF8-Ya1jwVtrTATHouAVal06al6t0mWVDuQi57N_5F5W9C4SyA4IyXUOSWGbE_fRKwUuxNbPyGnPPqEuu7BI0E7OGy7wpe0WH8zZ_YMVDiDA/s1600/getsimple_logos.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikHxJQhgLXie44PhJbw3d0lrdXXadSZbvsKF8-Ya1jwVtrTATHouAVal06al6t0mWVDuQi57N_5F5W9C4SyA4IyXUOSWGbE_fRKwUuxNbPyGnPPqEuu7BI0E7OGy7wpe0WH8zZ_YMVDiDA/s320/getsimple_logos.png&quot; width=&quot;248&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://get-simple.info/&quot; target=&quot;_blank&quot;&gt;GetSimple&lt;/a&gt; è un CMS molto basilare che fonda la sua forza, oltre che sulla semplicità, sul fatto di non sfruttare alcun database. Dite addio a configurazioni complesse e lunghe perché GetSimple usa, e lo fa molto bene, dei semplicissimi file XML.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Caduto ormai in amore con questo prodotto ho voluto testarne le potenzialità e devo dire che il progetto promette bene. Interfaccia semplice, pulita e minimale. Altamente configurabile e potenzialmente molto valido. La comunità alle spalle del progetto è viva e il codice cresce di giorno in giorno. Ovviamente la fetta di mercato che il software può coprire è quella dei piccoli e medi siti e pertanto non è possibile effettuare un paragone con alternative che aggrediscono i settori dei grandi portali come ad esempio Wordpress.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Volendo entrare a far parte di questo mondo, e volendo testare quel poco di framework che c&#39;è alle spalle del programma, ho sviluppato un modulo molto semplice: &lt;b&gt;Last Hashtag&lt;/b&gt;.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://get-simple.info/extend/plugin/last-hashtag/656/&quot; target=&quot;_blank&quot;&gt;Last Hashtag&lt;/a&gt; permette, mediante una minima configurazione, di mostrare, nella sidebar del proprio sito web gli ultimi &lt;b&gt;tweet&lt;/b&gt; provenienti dal mondo &lt;b&gt;twitter&lt;/b&gt; mediante la scelta di un determinato &lt;b&gt;hashtag&lt;/b&gt;, le famose parole chiave precedute dal cancelletto. In questo modo sarà possibile far vedere ai visitatori sempre cosa si dice sul noto social network in base ad una argomento di nostro interesse. Vi lascio &lt;a href=&quot;http://get-simple.info/extend/plugin/last-hashtag/656/&quot; target=&quot;_blank&quot;&gt;il link alla pagina&lt;/a&gt; dei&amp;nbsp;&lt;a href=&quot;http://get-simple.info/extend/&quot; target=&quot;_blank&quot;&gt;moduli ufficiali di GetSimple&lt;/a&gt;, &lt;a href=&quot;http://get-simple.info/forums/showthread.php?tid=4748&quot; target=&quot;_blank&quot;&gt;il thread del forum&lt;/a&gt; e due screeshots per vedere il plugin all&#39;opera.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjUif3Lc7jgUMtu0R6gaNrYEGoyc7CqTnW0jWgKc2H1neYq2FBgENVcCkDOVtIyyBzlp8AoIusDyTOsqnzHKDUkYwAIhng10SzzcsU9LFNMxeGqLFvX7MqeXh19nWFripl89quK1zoejvA/s1600/admin.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;122&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjUif3Lc7jgUMtu0R6gaNrYEGoyc7CqTnW0jWgKc2H1neYq2FBgENVcCkDOVtIyyBzlp8AoIusDyTOsqnzHKDUkYwAIhng10SzzcsU9LFNMxeGqLFvX7MqeXh19nWFripl89quK1zoejvA/s320/admin.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Configurazione Plugin&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSOWWNd9arcAvz6pBdCnqs4-bFgoySBEPUoK-0LKAGW-dTm-Tpp7SF7AAKUA1eg4C7RZdPhK8rOnmxuNMJ2cj03hjwo3I2m2N5czhyphenhyphenNbawyWZvZ57krM7ZHZ5H9uxOgvPdXT9f_8DOsUqk/s1600/site.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;272&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSOWWNd9arcAvz6pBdCnqs4-bFgoySBEPUoK-0LKAGW-dTm-Tpp7SF7AAKUA1eg4C7RZdPhK8rOnmxuNMJ2cj03hjwo3I2m2N5czhyphenhyphenNbawyWZvZ57krM7ZHZ5H9uxOgvPdXT9f_8DOsUqk/s320/site.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Sidebar con plugin attivo e configurato&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://soluzionisoftware.blogspot.com/2013/05/getsimple-cms-last-hashtag-tweet.html</link><author>noreply@blogger.com (OpenCode)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikHxJQhgLXie44PhJbw3d0lrdXXadSZbvsKF8-Ya1jwVtrTATHouAVal06al6t0mWVDuQi57N_5F5W9C4SyA4IyXUOSWGbE_fRKwUuxNbPyGnPPqEuu7BI0E7OGy7wpe0WH8zZ_YMVDiDA/s72-c/getsimple_logos.png" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2794566328585739125.post-4886012434728784264</guid><pubDate>Tue, 23 Oct 2012 09:41:00 +0000</pubDate><atom:updated>2012-10-23T20:52:18.054+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">opencode</category><category domain="http://www.blogger.com/atom/ns#">Python</category><title>Python: filtrare le liste</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp;&amp;nbsp; &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Le liste, si sa, sono croce e delizia di ogni programmatore e saperle usare rende il lavoro di gestione dei dati nel codice molto più comodo e semplice. Tutto, in un certo senso, può essere logicamente ricondotto ad una lista e pertanto questo tipo di dato è molto utilizzato in tutti i listati.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
La nostra attenzione questa volta si sofferma su python e sulla possibilità che il linguaggio offre di filtrare rapidamente le liste.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Immaginiamo di avere una lista di anni così strutturata:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;anni = [1989, 1987, 1956, 1820, 1452, 1999, 2006, 1756]&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
e di voler filtrare solo gli anni che vengono dopo il 1900. Normalemente si opererebbe con una struttura sintattica simile alla seguente:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;nuova_lista = []&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;for anno in anni:&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if anno &amp;gt; 1900:&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nuova_lista.append(anno)&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;print &#39;Vecchia lista:&#39;, anni&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;print &#39;Nuova lista:&#39;, nuova_lista&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Come si può ben vedere il codice è semplice e pulito e svolge bene il suo lavoro ma è possibile minimizzare ed ottimizzare ancora un codice già così sintetico? La risposta ovviamente è si ed ora vedremo come trasformare il nostro snippet:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;nuova_lista = [anno for anno in anni if anno &amp;gt; 1900]&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;print &#39;Vecchia lista:&#39;, anni&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;print &#39;Nuova lista:&#39;, nuova_lista&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Si vede già da subito che il numero di righe è stato nettamente ridotto e tutta la struttura sintattica del precedente codice è stata ridotta grazie all&#39;uso delle mappature di python unitamente al nostro filtro. In pratica la nostra nuova riga di codice si occupa di ciclare gli elementi nella lista (mediante il ciclo for) e di confrontare l&#39;elemento ottenuto con il filtro desiderato (mediante if). Ovviamente se il confronto con il filtro risulta vero allora l&#39;elemento viene mappato nella nuova lista con il risultato di ottenere un array contenente i dati voluti. &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Scrivere del buon codice significa ottenere, alla fine del nostro lavoro, un listato più pulito e quindi più semplice da correggere in caso di errori. In questo caso abbiamo visto come sia semplice adoperare le liste in maniera molto più fluida e sicuramente più pulita.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;
</description><link>http://soluzionisoftware.blogspot.com/2012/10/pyhon-filtrare-le-liste.html</link><author>noreply@blogger.com (OpenCode)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2794566328585739125.post-4095538836618824053</guid><pubDate>Fri, 19 Oct 2012 08:30:00 +0000</pubDate><atom:updated>2012-10-22T18:51:22.585+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">GNU/Linux</category><category domain="http://www.blogger.com/atom/ns#">Guide</category><category domain="http://www.blogger.com/atom/ns#">vaillant</category><title>Visualizziamo l&#39;elenco delle pagine visitate su Chrome/Chromium</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;
Chi utilizza &lt;b&gt;Google Chrome&lt;/b&gt; o &lt;b&gt;Chromium&lt;/b&gt;, avrà sicuramente notato che rispetto agli altri browser c&#39;è un elemento in meno: il menu a tendina in cui sono elencate le ultime pagine visitate.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://2.bp.blogspot.com/-9np9Qmq9RH0/UH0RAzuKgfI/AAAAAAAABGM/x9qTL4CwTtE/s1600/normale.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;208&quot; src=&quot;http://2.bp.blogspot.com/-9np9Qmq9RH0/UH0RAzuKgfI/AAAAAAAABGM/x9qTL4CwTtE/s400/normale.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;text-align: justify;&quot;&gt;Chi è abituato a quel menu, come il sottoscritto che preferisce il mouse piuttosto che digitare gli URL con la tastiera, può ricorrere ad una comoda e utile estensione che sopperisce a questa mancanza: &lt;/span&gt;&lt;b style=&quot;text-align: justify;&quot;&gt;Dropdown List of Most Visited Links&lt;/b&gt;&lt;span style=&quot;text-align: justify;&quot;&gt; (il nome dice già tutto).&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Andiamo sul menu (pulsante con il simbolo della chiave inglese)&amp;nbsp;&lt;span style=&quot;background-color: #f5f6f7; color: #333333; font-family: Ubuntu, &#39;Ubuntu Beta&#39;, UbuntuBeta, &#39;Bitstream Vera Sans&#39;, &#39;DejaVu Sans&#39;, Tahoma, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;→&amp;nbsp;&lt;/span&gt;Impostazioni&amp;nbsp;&lt;span style=&quot;background-color: #f5f6f7; color: #333333; font-family: Ubuntu, &#39;Ubuntu Beta&#39;, UbuntuBeta, &#39;Bitstream Vera Sans&#39;, &#39;DejaVu Sans&#39;, Tahoma, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;→&amp;nbsp;&lt;/span&gt;Estensioni e cerchiamo l&#39;estensione indicata più sopra. Una volta installata, comparirà una freccetta nella parte destra della barra degli indirizzi&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://2.bp.blogspot.com/-UfHkCWyrQeQ/UH0Q-0gisjI/AAAAAAAABGA/pQGaSGBfjsA/s1600/estensione.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;208&quot; src=&quot;http://2.bp.blogspot.com/-UfHkCWyrQeQ/UH0Q-0gisjI/AAAAAAAABGA/pQGaSGBfjsA/s400/estensione.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;text-align: justify;&quot;&gt;Da questo momento, le ultime pagine visitate saranno comodamente consultabili da questo menu a tendina, proprio come eravamo abituati con gli altri browser.&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://1.bp.blogspot.com/-i1W-gRMidKQ/UH0Q95QeryI/AAAAAAAABF8/JKp95ozf2DE/s1600/elenco.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;208&quot; src=&quot;http://1.bp.blogspot.com/-i1W-gRMidKQ/UH0Q95QeryI/AAAAAAAABF8/JKp95ozf2DE/s400/elenco.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;text-align: justify;&quot;&gt;L&#39;unica differenza è che, mentre con i browser in cui questa funzione è nativa possiamo cancellare le pagine presenti nell&#39;elenco premendo il tasto CANC, per eliminare le pagine dobbiamo passarci sopra con il mouse e premere una piccola X posta sulla parte destra della pagina stessa.&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://2.bp.blogspot.com/-dpU6ay0o74E/UH0TlDA28ZI/AAAAAAAABGU/Z0Ir2CZI7tU/s1600/croce.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;208&quot; src=&quot;http://2.bp.blogspot.com/-dpU6ay0o74E/UH0TlDA28ZI/AAAAAAAABGU/Z0Ir2CZI7tU/s400/croce.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Ciao ^__^</description><link>http://soluzionisoftware.blogspot.com/2012/10/visualizziamo-lelenco-delle-pagine.html</link><author>noreply@blogger.com (Anonymous)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-9np9Qmq9RH0/UH0RAzuKgfI/AAAAAAAABGM/x9qTL4CwTtE/s72-c/normale.png" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2794566328585739125.post-8669084146730992476</guid><pubDate>Sat, 13 Oct 2012 10:32:00 +0000</pubDate><atom:updated>2012-10-22T18:48:07.997+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">css3</category><category domain="http://www.blogger.com/atom/ns#">html</category><category domain="http://www.blogger.com/atom/ns#">opencode</category><category domain="http://www.blogger.com/atom/ns#">web design</category><title>CSS3 - Effetto polaroid</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp;&amp;nbsp; &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
L&#39;idea di oggi era quella di trovare un metodo per presentare in modo carino ed affascinante le immagini all&#39;interno di una pagina web. Stanco dei soliti sistemi troppo &quot;potenti&quot;, volevo qualcosa che fosse tanto semplice quanto d&#39;impatto visto che un cliente aveva chiesto questo per il suo sito.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
La prima idea che mi è balzata in mente è stata quella di creare un &lt;b&gt;effetto polaroid&lt;/b&gt; sulle foto che mi erano state inviate ma questa volta non avrei usato GIMP come sono solito fare ma avrei creato il tutto con CSS3 in modo da applicare l&#39;effetto a qualsiasi immagine in mio possesso. Visto il grande ritorno del vintage e il successo di Instagram, l&#39;idea mi pareva molto bella per un sito moderno e giovane.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Partendo dal presupposto che una foto nel vecchio formato polaroid ha di per sè una base estetica molto semplice, vediamo come strutturare l&#39;idea e come svilupparla in poche righe di CSS.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;table cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;float: left; margin-right: 1em; text-align: left;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1p6Uqy_nWDBDejzpZ0iT8Cdr4rnaMb4rvbTBYZQU0xBIcdfnB-9Z3DAOar1X-MU-N4XrKvn8kdYbdl1w3rlqIO_qIv2gLoIztmPltlUwQBByHmIsopJc1pDTp1iizh-T6Emg8z6ojQNZ-/s1600/polaroid.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1p6Uqy_nWDBDejzpZ0iT8Cdr4rnaMb4rvbTBYZQU0xBIcdfnB-9Z3DAOar1X-MU-N4XrKvn8kdYbdl1w3rlqIO_qIv2gLoIztmPltlUwQBByHmIsopJc1pDTp1iizh-T6Emg8z6ojQNZ-/s200/polaroid.jpg&quot; width=&quot;174&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;font-size: xx-small;&quot;&gt;fonte: http://media.photobucket.com/image/recent/labelle_7/polaroid.jpg&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Si vede facilmente come la struttura della foto sia composta dall&#39;immagine principale (centrata in orizzontale), un contorno bianco che presenta, rispetto al bordo esterno, due distante diverse: una è data dalla distanza maggiore del lato inferiore rispetto al corpo centrale vero e proprio mentre gli altri tre lati hanno pari distanza.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Inoltre per rendere l&#39;immagine più &quot;dinamica&quot; si potrebbe pensare di aggiungere una lieve ombra che da sicuramente un tocco più realistico alla composizione.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Vediamo il codice CSS usato per dare l&#39;effetto voluto:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;script src=&quot;https://gist.github.com/3884042.js?file=cs33-polaroid-effect-css.css&quot;&gt;&lt;/script&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Il codice è molto semplice. Analizzando il tag della classe .polaroid, con le prime tre righe si crea il bordo bianco intorno all&#39;immagine, le quattro che seguono creano una lieve ombra intorno al contenitore (cercando di mantenere la compatibilità con tutti i browser) che nel nostro caso rappresenta l&#39;intera foto, mentre l&#39;ultimo rigo serve a mantenere l&#39;immagine vera e propria centrata nel bordo bianco. Per quanto riguarda il tag img, invece, si è semplicemente detto al css di fare in modo che l&#39;immagine si adatti al contenitore in cui viene inserita.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Ora vediamo il codice HTML per creare la foto nelle nostre pagine web:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;script src=&quot;https://gist.github.com/3884049.js?file=css3-polaroid-effect.html&quot;&gt;&lt;/script&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Sicuramente con poche righe di codice è possibile avere un effetto molto carino e di impatto senza dover ricorrere a programmi di fotoritocco o pesanti righe di codice javascript.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Per visualizzare un esempio potete visitare &lt;a href=&quot;http://e-ware.org/example/css3_polaroid/&quot; target=&quot;_blank&quot;&gt;questa pagina&lt;/a&gt;.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp; &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
</description><link>http://soluzionisoftware.blogspot.com/2012/10/css3-effetto-polaroid.html</link><author>noreply@blogger.com (OpenCode)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1p6Uqy_nWDBDejzpZ0iT8Cdr4rnaMb4rvbTBYZQU0xBIcdfnB-9Z3DAOar1X-MU-N4XrKvn8kdYbdl1w3rlqIO_qIv2gLoIztmPltlUwQBByHmIsopJc1pDTp1iizh-T6Emg8z6ojQNZ-/s72-c/polaroid.jpg" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2794566328585739125.post-557611548428980062</guid><pubDate>Wed, 10 Oct 2012 08:59:00 +0000</pubDate><atom:updated>2012-10-22T18:48:07.108+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">BloggersContest</category><category domain="http://www.blogger.com/atom/ns#">Free Mind</category><category domain="http://www.blogger.com/atom/ns#">LinuxBird</category><category domain="http://www.blogger.com/atom/ns#">opencode</category><title>È tutto un gioco</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;Scrivo questo post come contenuto per il bellissimo &lt;a href=&quot;https://joindiaspora.com/tags/BloggersContest&quot; target=&quot;_blank&quot;&gt;#BloggersContest&lt;/a&gt; lanciato da &lt;a href=&quot;https://joindiaspora.com/posts/1958955&quot; target=&quot;_blank&quot;&gt;LinuxBird&lt;/a&gt;.&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Le ultime voci sul rilascio di giochi Stream su distribuzioni GNU/Linux ha riaperto una vecchia ferita nel mondo di questi sistemi. Può essere Linux un&#39;ottima piattaforma per i videogame? Scopriamolo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Chi conosce GNU/Linux sa che, nonostante il sistema sia ottimo sotto quasi tutti i punti di vista, ha due enormi pecche che non si riesce a colmare: la qualità dei driver video e l&#39;offerta del comparto videogame. Se si analizza bene quello che i sistemi open hanno da offrire in questi due settori, balza subito all&#39;occhio come la curva di entusiasmo degli utenti muoia pesantemente sotto i colpi del mercato. Attenzione, sia ben inteso che la pecca non è dovuta dai sistemi ma è colpa di chi sviluppa driver e videogame che decide di relegare i suoi prodotti solo ad un determinata fascia di utenza.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Pare, tuttavia che le se stanno per cambiare e &lt;b&gt;GNU/Linux potrebbe diventare un&#39;ottima base per i videogame&lt;/b&gt;. Scopriamo perché.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Performance&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Che GNU/Linux abbia delle ottime performance è abbastanza palese per chi conosce affondo il sistema. Se si pensa che buona parte dell&#39;hardware destinato alla discarica può essere recuperato grazie alle prestazioni di sistemi Open Source, possiamo vedere come effettivamente il sistema gravi meno sulla macchina rispetto alle sue controparti commerciali. Questo ovviamente si traduce in una maggiore quantità di potenza di calcolo e memoria libera che eventuali videogiochi potrebbero sfruttare su un comparto macchina già esistente ed abbastanza performante.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
A parità di hardware, GNU/Linux potrebbe lascerebbe &quot;più spazio&quot; all&#39;applicativo videoludico e quindi i potenziali videogame giocabili su uno stesso computer aumenterebbe sensibilmente se la macchina fosse dotata di sistemi open.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Multipiattaforma&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
I software scritti per piattaforme Linux vengono poi portati su diversi altri sistemi. Basta citare esempi noti come Firefox, VLC o GIMP per capire come programmi nati sul sistema del pinguino siano poi diventati indispensabili anche per utenti Windows. Sviluppare un videogame con le librerie messe a disposizione da Linux significa avere tra le mani un sorgente che, leggermente ritoccato, ha il potenziale di essere compatibile con molti altri sistemi. Questo è un vantaggio anche dal punto di vista economico poiché con poche ore di lavoro in più è possibile estendere il proprio mercato verso utenti altrimenti irraggiungibili.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Libertà&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Quando si tratta di libertà purtroppo si sa che gli utenti GNU/Linux devono lottare contro i colpi bassi delle dirette concorrenti che usano tutti i sistemi per poter imporre sul mercato i propri prodotti a discapito di quelli open e free. La stessa cosa è stata fatta con lo sviluppo delle &lt;b&gt;OpenGL&lt;/b&gt; a favore delle &lt;b&gt;DirectX&lt;/b&gt; [&lt;a href=&quot;http://natonelbronx.wordpress.com/2007/03/10/storia-di-un-ingiustizia-che-paghiamo-tutti-opengl-vs-directx/&quot; target=&quot;_blank&quot;&gt;1&lt;/a&gt;].&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Se non si fosse giocato sporco oggi le prime sarebbero lo standard per lo sviluppo dei videogame ed avremmo con molta facilità anche i giochi sul pinguino.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Mercato&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Una delle scuse più diffuse per giustificare da parte dei produttori la mancanza di uno sviluppo di giochi su GNU/Linux è la piccola fetta di mercato verso cui potrebbero rivolgersi. Ovviamente questo punto si basa su un&#39;analisi sbagliata e quello degli utenti Linux potrebbe essere un&#39;ottimo pubblico a cui rivolgersi. Nonostante le grandi vendite dei videogame su Windows ho potuto, constatare anche personalmente, come molti dei giochi attivi (giocabili offline nda) sono in realtà copie pirata. Aprire a nuovi mercati potrebbe portare ad ingenti guadagni poichè si avrebbero più utenti verso i quali rivolgere le proprie attenzioni.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Software Center&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
A differenza degli altri sistemi, l&#39;utente GNU/Linux non deve girovagare per il web alla ricerca dei software utili alle proprie esigenze nella speranza che ciò che viene scaricato sia pulito e corretto. Ogni distribuzione mette a disposizione un &quot;mercato&quot; nel quale poter scaricare, ed ora anche acquistare, i software di cui necessita. Questo potrebbe essere un ottimo mezzo che i produttori di videogame potrebbero sfruttare per il rilascio dei propri prodotti e delle proprie demo. Non dovrebbero più essere loro a dover cercare gli utenti negli angoli del mondo del web ma sarebbero gli utenti a cercare i videogame in un unico grande flusso centralizzato di informazioni.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;E la questione etica?&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
A differenza di altri prodotti software sono del parere che i videogame non possano essere rilasciati come Free Software, se chi gli sviluppa non decide diversamente ovviamente, ma debbano, semmai, rispettare soltanto delle licenze di tipo Open Source. Un videogame non è un software fondamentale per il corretto funzionamento di un sistema ed è un &quot;lusso&quot; che un utente decide di concedersi per il proprio svago. Proprio come un film viene acquistato e muore al momento della sua visione, un videogioco ha un ciclo di vita molto molto basso che lo porta ad essere obsoleto già dopo poche settimane dal suo rilascio. Il modello di business dietro a questo mondo è completamente incompatibile con il modello a cui aspira gente del calibro di Richard Stallman e pertanto sono del parere che un videogioco closed sarebbe un ottimo compromesso a cui un utente del Free Software potrebbe scendere senza problemi etici o morali. La vita non è ne bianca ne nera e questo è un classico caso in cui un bel grigio sta bene su tutto.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Fonti: [&lt;a href=&quot;http://natonelbronx.wordpress.com/2007/03/10/storia-di-un-ingiustizia-che-paghiamo-tutti-opengl-vs-directx/&quot; target=&quot;_blank&quot;&gt;1&lt;/a&gt;] [&lt;a href=&quot;http://www.dday.it/redazione/4826/Basta-giochi-per-PC-colpa-dei-pirati.html&quot; target=&quot;_blank&quot;&gt;2&lt;/a&gt;] [&lt;a href=&quot;http://www.microsmeta.com/dblog/articolo.asp?articolo=812&quot; target=&quot;_blank&quot;&gt;3&lt;/a&gt;]&lt;/div&gt;
</description><link>http://soluzionisoftware.blogspot.com/2012/10/e-tutto-un-gioco.html</link><author>noreply@blogger.com (OpenCode)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2794566328585739125.post-8117885470593224242</guid><pubDate>Wed, 03 Oct 2012 22:34:00 +0000</pubDate><atom:updated>2012-10-22T18:48:07.744+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">BloggersContest</category><category domain="http://www.blogger.com/atom/ns#">Free Mind</category><category domain="http://www.blogger.com/atom/ns#">LinuxBird</category><category domain="http://www.blogger.com/atom/ns#">opencode</category><title>Android è più o meno Linux. Linux non è Android</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;Scrivo questo post come contenuto per il bellissimo &lt;a href=&quot;https://joindiaspora.com/tags/BloggersContest&quot; target=&quot;_blank&quot;&gt;#BloggersContest&lt;/a&gt; lanciato da &lt;a href=&quot;https://joindiaspora.com/posts/1958955&quot; target=&quot;_blank&quot;&gt;LinuxBird&lt;/a&gt;.&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Mai come negli ultimi tempi la guerra tra i sistemi operativi di varia natura è stata così accesa e combattuta. A suon di rilasci, novità e presentazioni lampo, le varie aziende che giocano questa partita si stanno dando battaglia al fine di porre il proprio prodotto sul trono del re incontrastato dei nuovi dispositivi tecnologici. Da quando il primo smartphone &lt;i&gt;&quot;intelligente&quot;&lt;/i&gt; fece la sua comparsa sul mercato mondiale, il comparto software ha conosciuto una crescita esponenziale direttamente proporzionale a quella del settore hardware. Tra tutti i sistemi sicuramente &lt;b&gt;Android&lt;/b&gt; è il più controverso e, nonostante per gli amanti dell&#39;open source sia visto come una manna dal cielo per la rivincita di Linux nel mondo, dagli adulatori del Free Software è visto come un diavolo che gioca a fare il prete tra i bambini del catechismo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
Ma perché Android è fulcro di così tante e contrastanti attenzioni?&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;La guerra dei progetti&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
Android Inc. nasce nel 2003, viene rilevata da Google nel 2005 e solo nel 2008 si potrà ammirare la versione 1.0 del sistema operativo che però, come progetto, era nato 5 anni prima. Analizzando la tempistica si nota come l&#39;idea, pur essendo relativamente vecchia ormai (5 anni nel settore tecnologico sono un&#39;eternità), conosce il pubblico solo un anno dopo la presentazione del suo rivale per eccellenza: iOS. La cosa potrebbe sembrare irrilevante ma in realtà è un ottimo punto di partenza per capire come Android sia stato figlio di scelte forse sbagliate che ne hanno dettato una nascita ritardata che è costata sicuramente una consistente fetta di utenza che era ormai presa dall&#39;Iphone da poco presentato.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
La domanda perciò sorge spontanea: come può un progetto &lt;b&gt;Open Source&lt;/b&gt; che può vantare dalla sua la forza lavoro di Google, nascere così tardi rispetto alla sua prima ideazione? La risposta è ancora più semplice: &lt;b&gt;Android non è Open Source come si crede che sia&lt;/b&gt;. Il punto cardine dei software a sorgente aperto è la sua rapida escalation circa l&#39;inserimento di nuove feature e la correzione di bug in tempi veramente molto brevi. Un codice aperto che gira per il mondo viene letto da migliaia di occhi e scritto e aggiornato da altrettanti mani e questo ne permette una rigenerazione ottimale pressoché sconfinata e dalle potenzialità illimitate. Google, invece, ha dalla sua la libertà di partorire versioni intermedie del sistema all&#39;interno delle mura della sua azienda e di pubblicare i sorgenti del progetto secondo un proprio sistema di rilasci. Questo blocca la forza su cui il progetto dovrebbe premere di più con la conseguenza che il suo sviluppo è veloce tanto quanto lo può essere potenzialmente una Ferrari sulla neve. Fin qui gli estimatori di Android potrebbero dire che è tutto normale, che il mercato detta la legge a cui il consumatore deve sottostare e che comunque Google fa lavorare dei suoi dipendenti per offrire un prodotto &lt;b&gt;gratuito e liberamente fruibile&lt;/b&gt;. Qui si cade nuovamente nell&#39;ovvietà più sbagliata ed ancora una volta il concetto di Open Source viene risicato nella sua grammatica più spicciola. Se è anche vero che l&#39;azienda di Palo Alto offre il proprio lavoro a titolo apparentemente gratuito, ci si deve rendere conto che quando la stessa azienda rivende le sue versioni aggiornate di Android ai partner che sviluppano la parte hardware (telefoni e tablet, nda), costringe loro ad integrare i servizi di Google stessa nativamente degli apparecchi. A questo punto l&#39;utente si ritrova a tutti gli effetti un google-fonino tra le mani prima ancora di aver avviato il sistema per la prima volta. Dov&#39;è la libertà di scelta di cui tanto si discute? Non era il software Open Source a non avere catene e vincoli con i padroni?&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Incoerenza&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Volendo ancora paragonare Android ad i suoi rivali, il sistema del robottino verde ha ancora una pecca dalla sua: l&#39;incoerenza. Più volte si è visto come Android non sia così libero come si decanta e ciò può ferire ancora di più gli utenti più sensibili che possono sentirsi offesi da tale comportamento. Sapere che Apple sviluppa software chiuso permette a chi non accetta tale pratica si boicattare i prodotti dell&#39;azienda. Semplice e lineare. Ma sapere che qualcuno sta sviluppando un sistema operativo aperto ti pone sicuramente su un piano ricettivo completamente diverso.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
&lt;b&gt;Linux nel telefono&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
È sempre più crescente, inoltre, la forte convinzione che avere Android tra le mani significhi &lt;i&gt;&quot;avere Linux nel cellulare&quot;&lt;/i&gt;. Questa idea è totalmente sbagliata è Android è direttamente paragonabile a Linux tanto quanto lo può essere Ubuntu piuttosto che Debian o Fedora. Linux è solo una base su cui un sistema viene costruito. Con gli stessi mattoni con cui una persona costruisce la cuccia del proprio cane, un&#39;altra sta realizzando un grattacielo. Vi sentireste mai pronti a dire che il grattacielo e una cuccia o una cuccia è un grattacielo?&lt;br /&gt;
&lt;br /&gt;
Questa ovviamente è solo un&#39;analisi blanda e superficiale di quanto sia chiaro che Android è più o meno Linux ma Linux non è Android. Sino a quando la disinformazione avrà la meglio sulla volontà di conoscere allora si dovrà combattere contro i mulini a vento essendo fortemente convinti che siano dei giganti.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Fortunatamente, come sempre, le alternative esistono e bisogna solo adottarle ed aiutarle a crescere. Parliamo di progetti veramente aperti e liberi come &lt;a href=&quot;https://www.mozilla.org/en-US/firefoxos/&quot; target=&quot;_blank&quot;&gt;Firefox OS&lt;/a&gt;, &lt;a href=&quot;https://meego.com/&quot; target=&quot;_blank&quot;&gt;Meego&lt;/a&gt;, &lt;a href=&quot;https://www.tizen.org/&quot; target=&quot;_blank&quot;&gt;Tizen&lt;/a&gt; o &lt;a href=&quot;http://replicant.us/&quot; target=&quot;_blank&quot;&gt;Replicant&lt;/a&gt; che, forti della comunità alle loro spalle, stanno sviluppando dei progetti realmente interessanti di cui sicuramente sentiremo ancora parlare.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Fonti: [&lt;a href=&quot;https://it.wikipedia.org/wiki/Android#Critiche&quot; target=&quot;_blank&quot;&gt;1&lt;/a&gt;] [&lt;a href=&quot;https://it.wikipedia.org/wiki/IOS_%28Apple%29#Storia&quot; target=&quot;_blank&quot;&gt;2&lt;/a&gt;] [&lt;a href=&quot;http://it.wikipedia.org/wiki/Open_source&quot; target=&quot;_blank&quot;&gt;3&lt;/a&gt;] [&lt;a href=&quot;http://www.adacom.it/2012/09/android-is-not-linux/&quot; target=&quot;_blank&quot;&gt;4&lt;/a&gt;]&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;
</description><link>http://soluzionisoftware.blogspot.com/2012/10/android-e-piu-o-meno-linux-linux-non-e.html</link><author>noreply@blogger.com (OpenCode)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2794566328585739125.post-8264699836433837060</guid><pubDate>Wed, 19 Sep 2012 08:53:00 +0000</pubDate><atom:updated>2012-10-22T18:48:07.829+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">BloggersContest</category><category domain="http://www.blogger.com/atom/ns#">Free Mind</category><category domain="http://www.blogger.com/atom/ns#">opencode</category><title>Io sono un numero</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;&amp;nbsp; &amp;nbsp; &lt;/i&gt;&lt;br /&gt;
&lt;i&gt;Scrivo questo post come contenuto per il bellissimo &lt;a href=&quot;https://joindiaspora.com/tags/BloggersContest&quot; target=&quot;_blank&quot;&gt;#BloggersContest&lt;/a&gt; lanciato da &lt;a href=&quot;https://joindiaspora.com/posts/1958955&quot; target=&quot;_blank&quot;&gt;LinuxBird&lt;/a&gt;. &lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;L&#39;era della targa digitale &lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Il codice fiscale, la targa di un&#39;automobile o la partita IVA sono solo alcuni esempi di codici utili all&#39;identificazione univoca di un soggetto (sia esso privato o azienda) all&#39;interno di un folto gruppo di dati simili. Se un vigile volesse fare una multa basterebbe, infatti, indirizzarla al proprietario dell&#39;auto di una determinata targa poiché è impossibile che ne esistano, all&#39;interno di un determinato contesto, due uguali. Immaginiamo ora che il vigile in questione venga sostituito da un stalker che avrà, quindi, un modo per sapere dove siamo semplicemente andando alla ricerca dell&#39;automobile che rechi quel preciso codice identificativo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Quello che è appena stato descritto è l&#39;enfatizzazione, neanche molto dissimile dalla realtà, di quello che quotidianamente ci accade sul web mentre navighiamo tranquilli per guardare le nostre foto o cercare le migliori offerte sui prodotti di nostro interesse.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Google, Facebook o Yahoo, tanto per citarne alcuni, operano alle nostre spalle come bravi stalker telematici 2.0 assegnandoci una targa con cui identificarci all&#39;interno dei miliardi di utenti del web e seguendo minuziosamente ogni nostro spostamento. Ad ogni utente, infatti viene assegnato un ID (Identification Number - Numero Identificativo) con il quale si marchia l&#39;utente all&#39;interno di un&#39;enorme banca dati ed al quale vengono associate, in maniera alle volte poco trasparente, le operazioni che lo stesso utente esercita quando naviga con il suo dispositivo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Da quando è nato il web 2.0 e da quando i social network hanno fatto il loro ingresso nel mondo della rete, il business sul web si è nettamente rinnovato, trasformando l&#39;utente da cliente di un servizio a merce da rivendere in piccole parti. Ogni nostra scelta viene salvata ed archiviata in modo da poterci propinare le cosiddette pubblicità mirate. Nulla di ciò che guardiamo all&#39;interno di una pagina web è causale e, indipendentemente dal contenuto che stiamo visualizzando o leggendo, vedremo sempre le stesse pubblicità dei soliti prodotti.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Come guadagnano i grandi del web&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Siamo talmente abituati a sapere che per ogni nostro dubbio c&#39;è Google che difficilmente ci siamo mai chiesti come faccia un&#39;azienda del genere (multimilionaria n.d.a.) a guadagnare semplicemente da due vocaboli scritti in una casella di testo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Sostanzialmente le aziende nel web guadagnano tutte allo stesso modo: vendendo i tuoi dati per generare introiti dovuti dalle pubblicità.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Ogni ricerca che fai su Google viene salvata associandola univocamente a te ed in questo modo viene unita alle altre cose che hai cercato nel corso degli anni. In questo modo la società traccia un profilo dei tuoi gusti, dei tuoi desideri e perfino del tuo stato di salute. Questo si tramuta in una serie di dati che Google (o altre aziende) rivende a società terze che così possono indirizzare pubblicità mirate al giusto target di utenti. A differenza della televisione, dove la pubblicità viene spedita in base al programma in onda nella speranza che raggiunga le persone giuste, le pubblicità del web colgono sempre nel segno e perciò se almeno una volta abbiamo effettuato una ricerca su cosa può causare il prurito intimo, prepariamoci ad essere inondati di foto promozionali di creme e cremine in ogni sito che ci apprestiamo a visitare.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
La stessa cosa, ovviamente, accade negli altri siti con sistemi diversi. Ogni volta che su Facebook cliccate su &quot;Mi piacciono i Pan di Stelle&quot; state regalando alla Mulino Bianco la possibilità di sapere che siete dei potenziali acquirenti dei loro prodotti. La cosa più sconvolgente è che vi state vendendo da soli e senza alcuna forzatura.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Quanto siamo disposti a venderci? &lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Da quando si è scoperto che le grandi major del web operano in questo modo, gli utenti si sono divisi tra chi ha iniziato a gridare allo scandalo e chi ha dichiarato di essere pronto a convivere con questo sistema pur di avere i prodotti sempre funzionanti e sempre gratuiti. L&#39;arte di vendere sé stessi è quasi antica quanto l&#39;uomo e la pigrizia a cui la società moderna ci ha abituato grava pesantemente sul resto. In un periodo storico in cui orwelliane entità ledono continuamente la nostra privacy, volersi tutelare, almeno dove è possibile, dovrebbe essere una priorità e non una sistema per barattare la propria vita con un servizio. Cosa accadrebbe se un giorno il vostro pizzaiolo di fiducia vi dicesse che potete mangiare gratis da lui purché egli possa guardarvi giorno e notte dalla finestra di casa? Vi sentireste davvero tranquilli se, in ogni momento della giornata, qualcuno potesse entrare in casa vostra e sfogliare gli album che avete nel salotto o guardare cosa avete nel frigorifero? Sareste felici se ogni volta che chiedeste a qualcuno le indicazioni stradali per raggiungere un luogo, questo si segnasse il vostro nome, cognome e tragitto su un foglio di carta?&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Costi e benefici&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Ma se allora queste società guadagnano con questo sistema, vuol dire che se esso non esistesse sarebbero costrette a chiudere?&lt;br /&gt;
In realtà la cosa non è vera. Come è stato precedentemente illustrato, la televisione sopravvive agevolmente con la pubblicità senza ledere la privacy di chi sta usufruendo del servizio. Internet potrebbe funzionare allo stesso modo senza arrecare gravi danni nè all&#39;utente e nè alle tasche delle società. Purtroppo però scavare nella vita della gente è molto più semplice che costruire delle vere e proprie analisi di mercato studiate nei particolari e quindi le aziende inserzioniste chiedono a gran voce che la nostra privacy sia lesa e che i loro prodotti siano venduti. Personalmente credo che nessun servizio valga la dignità della gente. Non permetterei a nessuno di entrare nella mia vita privata senza permesso e pertanto non permetterei a nessuno di scavare nei miei gusti e nelle mie abitudini sul web. Fortunatamente le alternative che ci tutelano esistono, basta solo voler cambiare per rispettare sè stessi e gli altri.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Alternative&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Lungi da me creare una lista esaustiva delle alternative possibile, voglio solo indicare alcuni servizi che reputo ottimi come sostenuti delle più blasonate controparti al fine di dimostrare comeun business del web che tuteli l&#39;utente esiste e funziona anche molto bene:&lt;br /&gt;
&lt;br /&gt;
Google (Motore di Ricerca): &lt;a href=&quot;https://duckduckgo.com/&quot; target=&quot;_blank&quot;&gt;DuckDuckGo&lt;/a&gt; &lt;a href=&quot;http://www.ixquick.com/&quot; target=&quot;_blank&quot;&gt;Ixquick&lt;/a&gt; &lt;br /&gt;
Google (Maps) : &lt;a href=&quot;http://www.openstreetmap.org/&quot; target=&quot;_blank&quot;&gt;OpenStreetMaps&lt;/a&gt;&lt;br /&gt;
Facebook: &lt;a href=&quot;http://friendica.com/&quot; target=&quot;_blank&quot;&gt;Friendica&lt;/a&gt; &lt;a href=&quot;http://diasp.org/&quot; target=&quot;_blank&quot;&gt;Diaspora&lt;/a&gt;&lt;br /&gt;
Twitter: &lt;a href=&quot;http://identi.ca/&quot;&gt;Identi.ca&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Inoltre vi invito a fare visita a &lt;a href=&quot;http://libreprojects.net/&quot; target=&quot;_blank&quot;&gt;questo sito&lt;/a&gt; dove è possibile travare valide alternative ai progetti più famosi, il tutto in salsa Open Source e quindi amico della nostra privacy.&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &lt;/div&gt;
</description><link>http://soluzionisoftware.blogspot.com/2012/09/io-sono-un-numero.html</link><author>noreply@blogger.com (OpenCode)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2794566328585739125.post-2786666579047527315</guid><pubDate>Thu, 13 Sep 2012 08:26:00 +0000</pubDate><atom:updated>2012-10-22T18:48:06.196+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">BloggersContest</category><category domain="http://www.blogger.com/atom/ns#">Free Mind</category><category domain="http://www.blogger.com/atom/ns#">LinuxBird</category><category domain="http://www.blogger.com/atom/ns#">opencode</category><title>Sistemi dei massimi brevetti</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;Scrivo questo post come contenuto per il bellissimo &lt;a href=&quot;https://joindiaspora.com/tags/BloggersContest&quot; target=&quot;_blank&quot;&gt;#BloggersContest&lt;/a&gt; lanciato da &lt;a href=&quot;https://joindiaspora.com/people/74a3cca05bac3a4b&quot; target=&quot;_blank&quot;&gt;LinuxBird&lt;/a&gt;.&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Nel 1452 nacque un uomo che in 67 anni di vita sarebbe riuscito, grazie alle sue innumerevoli intuizioni ed invenzioni, a creare uno spropositato numero di progetti che sarebbero stati poi ripresi nei secoli successi per dare vita a creazioni sempre più sofisticate ed interessanti. Stiamo parlando di Leonardo Da Vinci, forse il più grande inventore che la storia abbia mai conosciuto. Nessuno oserebbe mai immaginare che sui disegni ultracentenari di quest&#39;uomo ci fosse già impressa quella che noi oggi conosciamo come bicicletta o che il carrarmato è rimasto molto fedele al disegno originale ideato proprio dal geniale fiorentino.&lt;br /&gt;
&lt;br /&gt;
Nel 2012 due grosse potenze del panorama tecnologico mondiale si danno battaglia a suon di perizie e sedute legali per decidere, in sede giuridica, chi abbia avuto per prima l&#39;idea di smussare gli angoli del proprio device mobile e chi abbia deciso che toccare lo schermo per svolgere le più comuni azioni fosse la più geniale delle trovare dalla scoperta della corrente elettrica ad oggi.&lt;br /&gt;
&lt;br /&gt;
Ho voluto porre un lungo preambolo alla questione per poter parlare di quanto il brevetto sia un grosso limite per la società moderna, sempre alla ricerca di novità in cui imporre nuovi prodotti a mercati già saturi. Siamo talmente abituati all&#39;idea che un&#39;invenzione debba essere coperta da brevetto che forse non ci siamo mai soffermati ad immaginare un mondo senza. Il mio confronto storico vuole solo essere un modo simpatico per riuscire a capire quanto la limitazione dell&#39;ingegno sia solo un male che porta alla stagnazione del futuro panorama della ricerca e del progresso, non solo tecnologico, ma globale.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Il brevetto viene definito da Wikipedia come:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;i&gt;Il brevetto 
(o più propriamente brevetto per invenzione) è un titolo giuridico in 
forza al quale al titolare viene conferito un diritto esclusivo 
temporaneo di sfruttamento dell&#39;invenzione in un territorio e per un 
periodo ben determinato, e consente di impedire ad altri di produrre, 
vendere o utilizzare la propria invenzione senza autorizzazione.&lt;br /&gt;Anche
 se nella maggior parte dei casi, il titolare di un brevetto ottiene 
anche il monopolio del relativo mercato, questo non avviene sempre: il 
titolare di un brevetto potrebbe infatti trovarsi comunque 
nell&#39;impossibilità di vendere il prodotto che incorpora l&#39;invenzione 
brevettata, per esempio a causa di brevetti precedenti di proprietà di 
terzi.&lt;/i&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Come si può ben capire, quindi, grazie alla legge è possibile essere gli unici proprietari di un&#39;idea e si ha la possibilità che essa rimanga tale per un certo lasso di tempo. Molto spesso ho sentito dire dagli estimatori del brevetto che esso sarebbe dannoso se non avesse limiti di tempo mentre, con l&#39;attuale sistema, basta solo attendere per vedere decadere i limiti. Ciò potrebbe risultare vero se la durata fosse relativamente breve ma allo stato attuale si parla di circa 20 anni. Rimanendo nel campo dell&#39;informatica, basti pensare che &lt;a href=&quot;http://www.guru63.com/anniversari/internet-20-anni-fa-nasceva-il-primo-sito-web/&quot; target=&quot;_blank&quot;&gt;20 anni fa&lt;/a&gt; sui computer c&#39;era il DOS o Windows 95 e che i videogame erano quanto di più osceno si potesse immaginare graficamente mentre, ad esempio, nel campo della telefonia stavano vedendo la luce i primi cellulari così gli conosciamo oggi. Ciò dimostra come 20 anni (ma anche per 5 o 10 il discorso sarebbe uguale) siano un tempo troppo lungo per porre freni alla ricerca.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
Avere la possibilità di piazzare un pesante veto su una qualsiasi idea vuol dire non permettere ad altri di utilizzarla e pertanto di migliorarla così da poter disporre sempre dei sistemi più stabili, più sicuri e nettamente migliori. Cosa sarebbe accaduto se l&#39;invenzione della bicicletta avesse avuto dei limiti dovuti dai brevetti? Oggi ci muoveremmo con mezzi obsoleti che non conoscerebbero tutte quelle migliorie che hanno reso la vita dei ciclisti molto più semplice. Cosa sarebbe accaduto se &lt;a href=&quot;http://it.wikipedia.org/wiki/Martin_Cooper&quot; target=&quot;_blank&quot;&gt;Cooper&lt;/a&gt; avesse avuto la possibilità di porre grossi limiti sul primo cellulare? Oggi sicuramente non avremmo gli smartphone e per vederne uno dovremmo aspettare ancora moltissimi anni.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
L&#39;attuale &lt;a href=&quot;http://www.lastampa.it/_web/CMSTP/tmplrubriche/giornalisti/grubrica.asp?ID_blog=88&amp;amp;ID_articolo=280&amp;amp;ID_sezione=159&quot; target=&quot;_blank&quot;&gt;guerra tra Apple e Samsung&lt;/a&gt; ha risvegliato sicuramente un argomento dormiente che nel tempo a mietuto molte vittime a livello intellettuale. La vera protezione nei confronti dell&#39;ingegno non è sottoporlo a limitazione ma è aiutarne la diffusione nella maniera più capillare possibile e con gli strumenti migliori. Diverse persone che lavorano allo stesso progetto in diverse parti del mondo non possono che essere il modo migliore per sviluppare un&#39;idea ed i progetti open source sono la ventennale prova che questo sistema funziona e partorisce ottimi risultati.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Mi piacerebbe chiudere l&#39;argomento con una massima che è tra le mie preferite:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;&quot;Se io do una mela a te e tu dai una mela a me abbiamo entrambi una mela. Se io do un’idea a te e tu dai un’idea a me, abbiamo entrambi due idee”&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: right;&quot;&gt;
&lt;span style=&quot;color: #cccccc;&quot;&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #cccccc;&quot;&gt;&lt;i&gt;Licenza &lt;/i&gt;&lt;i&gt;Creative Commons Attribution-ShareAlike 3.0&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: #cccccc;&quot;&gt;&lt;i&gt;&amp;nbsp;&amp;nbsp; &lt;/i&gt;&lt;/span&gt;&lt;/div&gt;
</description><link>http://soluzionisoftware.blogspot.com/2012/09/scrivo-questo-post-come-contenuto-per.html</link><author>noreply@blogger.com (OpenCode)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2794566328585739125.post-3653094373112288223</guid><pubDate>Thu, 23 Aug 2012 10:23:00 +0000</pubDate><atom:updated>2012-10-22T18:48:06.577+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Free Mind</category><category domain="http://www.blogger.com/atom/ns#">opencode</category><title>Linux dappertutto...</title><description>&amp;nbsp;&amp;nbsp; &lt;br /&gt;
Sarà una deviazione professionale ma credo di aver sviluppato il super potere di riuscire a trovare riferimenti a GNU/Linux ovunque&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9SEZGrCD2zLL_lWgXdIqg0kKSZ5Yr6UC-vQ3ujz4nEkaJMu0Yu13b6X03Ww9uvSlWtm0k-VrilCAipY2p_2_tJXm47soLLCJ9CbO7M77WDgkMbJc2yC_HGRQLI9J-1T1W0bNob3LzQSKi/s1600/120822_155643.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9SEZGrCD2zLL_lWgXdIqg0kKSZ5Yr6UC-vQ3ujz4nEkaJMu0Yu13b6X03Ww9uvSlWtm0k-VrilCAipY2p_2_tJXm47soLLCJ9CbO7M77WDgkMbJc2yC_HGRQLI9J-1T1W0bNob3LzQSKi/s320/120822_155643.jpg&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Infondo si sa che GNU/Linux è un sistema più pulito...&lt;br /&gt;
&amp;nbsp; </description><link>http://soluzionisoftware.blogspot.com/2012/08/linux-da-per-tutto.html</link><author>noreply@blogger.com (OpenCode)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9SEZGrCD2zLL_lWgXdIqg0kKSZ5Yr6UC-vQ3ujz4nEkaJMu0Yu13b6X03Ww9uvSlWtm0k-VrilCAipY2p_2_tJXm47soLLCJ9CbO7M77WDgkMbJc2yC_HGRQLI9J-1T1W0bNob3LzQSKi/s72-c/120822_155643.jpg" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2794566328585739125.post-733454419082701406</guid><pubDate>Fri, 29 Jun 2012 15:57:00 +0000</pubDate><atom:updated>2012-10-22T18:48:07.404+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">opencode</category><category domain="http://www.blogger.com/atom/ns#">OpenERP</category><title>Geany OpenERP - I template dei file</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp; &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Continua la personalizzazione di un ambiente di sviluppo completo per la programmazione di moduli &lt;b&gt;OpenERP&lt;/b&gt; basato sul fantastico &lt;b&gt;Geany&lt;/b&gt;.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Dopo aver pubblicato il &lt;a href=&quot;http://soluzionisoftware.blogspot.it/2012/06/snippets-openerp-per-geany.html&quot; target=&quot;_blank&quot;&gt;precedente articolo&lt;/a&gt; in cui si parlava degli &lt;b&gt;snippets&lt;/b&gt; di codice (che nel frattempo sono diventati più numerosi), questa volta si è passati alla costruzione dei templates dei file. Grazie alle potenialità che Geany offre, &lt;br=&quot;&quot;&gt;infatti, è stato possibile creare dei file di base da cui partire con lo sviluppo del proprio modulo. Allo stato attuale sono stati introdotti i file di &lt;i&gt;codice python&lt;/i&gt;, la &lt;i&gt;vista xml&lt;/i&gt; ed &lt;i&gt;__openerp__.py&lt;/i&gt; ma se ne svilupperanno sicuramente altri in futuro.&lt;br /&gt;&lt;br /&gt;Come fare per avere questa nuova feature nel proprio sistema? Prima di tutto scarichiamo il branch ospitato su &lt;a href=&quot;https://github.com/OpenCode/geany-openerp&quot; target=&quot;_blank&quot;&gt;Github&lt;/a&gt; (se non lo abbiamo ancora fatto) o aggiorniamo quello ottenuto precedentemente mediante git.&amp;nbsp;&lt;/br=&quot;&quot;&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br=&quot;&quot;&gt;Ci rechiamo all&#39;interno della cartella &lt;i&gt;&#39;geany-openerp/templates/files&lt;/i&gt;&#39; e copiamo (o linkiamo dinamicamente) i file presenti, all&#39;interno della cartella nascosta nella nostra home &lt;i&gt;&#39;~/.config/geany/template/files&lt;/i&gt;&#39;&lt;br /&gt;&lt;br /&gt;Ora dobbiamo semplicemente avviare (o riavviare) Geany e nel menu &lt;i&gt;File - Nuovo da Modello&lt;/i&gt; possiamo trovare le nuove voci.&lt;/br=&quot;&quot;&gt;&lt;/div&gt;
&lt;br=&quot;&quot;&gt;&lt;/br=&quot;&quot;&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEaWkR-bfNqDyWC7MUT8glod2XsptbWsF69gyEWjvh7u1G5O1h2mnZOfE53mjLitksyJLSxLbQFvlzrEjbDUzAk-n9HgFe3wb7RFeLKLC4U3ZDwrcXErj4EPOCV4ufbvdZrQBGFxRDfH0G/s1600/geany-openerp.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;144&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEaWkR-bfNqDyWC7MUT8glod2XsptbWsF69gyEWjvh7u1G5O1h2mnZOfE53mjLitksyJLSxLbQFvlzrEjbDUzAk-n9HgFe3wb7RFeLKLC4U3ZDwrcXErj4EPOCV4ufbvdZrQBGFxRDfH0G/s320/geany-openerp.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br=&quot;&quot;&gt;&lt;br /&gt;&lt;/br=&quot;&quot;&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br=&quot;&quot;&gt;Si ricorda che per un&#39;uso ancora più completo di questa feature è consigliabile impostare i parametri che si trovano in &lt;i&gt;Modifica - Preferenze - Modelli &lt;/i&gt;così da ritrovarsi dei file completi con le nostre informazioni che in tal modo non dovranno essere inserite ogni volta.&lt;/br=&quot;&quot;&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br=&quot;&quot;&gt;&amp;nbsp; &lt;/br=&quot;&quot;&gt;&lt;/div&gt;</description><link>http://soluzionisoftware.blogspot.com/2012/06/geany-openerp-i-template-dei-file.html</link><author>noreply@blogger.com (OpenCode)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEaWkR-bfNqDyWC7MUT8glod2XsptbWsF69gyEWjvh7u1G5O1h2mnZOfE53mjLitksyJLSxLbQFvlzrEjbDUzAk-n9HgFe3wb7RFeLKLC4U3ZDwrcXErj4EPOCV4ufbvdZrQBGFxRDfH0G/s72-c/geany-openerp.png" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2794566328585739125.post-340722034163963135</guid><pubDate>Sat, 09 Jun 2012 10:20:00 +0000</pubDate><atom:updated>2012-10-22T18:48:06.450+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">opencode</category><category domain="http://www.blogger.com/atom/ns#">OpenERP</category><title>Snippets OpenERP per Geany</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp; &amp;nbsp; &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Programmare per OpenERP significa utilizzare un framework che, forte delle sue potenzialità, gode di una sintassi semplice e chiara da usare. Molto spesso, però, essendo la sintassi di un framework diversa da quella del linguaggio su cui è basata può risultare complesso ricordare tutto e si ricorre al classico copia e incolla di pezzi di codice già utilizzati in altre circostanze.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Da questa particolare situazione nasce lo sviluppo della personalizzazione degli snippets di Geany (l&#39;editor che prediligo in fase di programmazione) per adattarsi allo sviluppo di moduli e personalizzazioni di openERP.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Il suo uso è molto semplice e prevede semplicemente la conoscenza di una serie di tag (volutamente mnemonici) che una volta digitati e seguiti dalla pressione del tasto TAB autocompletano il sorgente con lo snippet ad essa collegato.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Se ad esempio stiamo creando la vista ed abbiamo bisogno di inserire un nuovo form, basterà scrivere&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;color: #999999; text-align: justify;&quot;&gt;
&lt;i&gt;form&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
e premere TAB per veder comparire nel nostro documento una struttura completa della classica form.&lt;/div&gt;
&lt;br /&gt;
&lt;form string=&quot;&quot;&gt;
&lt;div style=&quot;color: #666666; text-align: justify;&quot;&gt;
&lt;span style=&quot;color: black;&quot;&gt;Sicuramente tutto questo porterà un interessante vantaggio ed un notevole risparmio di tempo quando si programma.&lt;/span&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Attualmente il file può essere &lt;a href=&quot;https://github.com/OpenCode/geany-openerp&quot; target=&quot;_blank&quot;&gt;scaricato da github&lt;/a&gt; e prevede numerosissimi snippets sia per il codice python che per quello xml. Allo stesso link è spiegato come installare il tutto ed è definita la lista dei tags.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/div&gt;
&lt;/form&gt;</description><link>http://soluzionisoftware.blogspot.com/2012/06/snippets-openerp-per-geany.html</link><author>noreply@blogger.com (OpenCode)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2794566328585739125.post-525207408213748392</guid><pubDate>Sat, 26 May 2012 08:57:00 +0000</pubDate><atom:updated>2012-10-22T18:48:06.981+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">opencode</category><category domain="http://www.blogger.com/atom/ns#">Risoluzione problemi</category><category domain="http://www.blogger.com/atom/ns#">Ubuntu</category><title>Wireless su HP Compaq NX6110 con Ubuntu 12.04</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp;&amp;nbsp; &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Gli avanzamenti di versione delle distribuzioni GNU/Linux portano sempre importanti novità e molte migliorie ma può capitare che portino anche problemi.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
È il caso di un &lt;b&gt;HP Compaq NX6110&lt;/b&gt;, passatomi sotto mano, che dopo il passaggio dalla versione 11.10 alla 12.04 di Ubuntu ha visto il wireless smettere di funzionare immediatamente.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGv9qEu54BltxDdfPWpxB1vJkhFI5Xq25JCtUBi7OX1yolisSwvc6eTYVMGqKSLpdWJIkkhZ_VKPackds04j06c-QUH793mgquc_3iD-K6de2pvyrcCSVDDTOXDx0FdaTx_8h3yBEZpMzu/s1600/HP-Compaq-nx6110.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;287&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGv9qEu54BltxDdfPWpxB1vJkhFI5Xq25JCtUBi7OX1yolisSwvc6eTYVMGqKSLpdWJIkkhZ_VKPackds04j06c-QUH793mgquc_3iD-K6de2pvyrcCSVDDTOXDx0FdaTx_8h3yBEZpMzu/s320/HP-Compaq-nx6110.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
La cosa interessante era notare come il gestore di rete indicasse che il wireless risultava disabilitato mediante l&#39;apposito tasto e che lo stesso non sortisse alcun effetto se premuto. A questo punto è stato necessario risalire alla scheda di rete.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Entrando nel terminale e digitando&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;----------&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;lspci&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;----------&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
si è trovato un output simile al seguente:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;----------&lt;/i&gt;&lt;/div&gt;
&lt;i&gt;00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (rev 03)&lt;br /&gt;00:02.0 VGA compatible controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 03)&lt;br /&gt;00:02.1 Display controller: Intel Corporation Mobile 915GM/GMS/910GML Express Graphics Controller (rev 03)&lt;br /&gt;00:1d.0 USB controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 03)&lt;br /&gt;00:1d.1 USB controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 03)&lt;br /&gt;00:1d.2 USB controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 03)&lt;br /&gt;00:1d.3 USB controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 03)&lt;br /&gt;00:1d.7 USB controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 03)&lt;br /&gt;00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev d3)&lt;br /&gt;00:1e.2 Multimedia audio controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC&#39;97 Audio Controller (rev 03)&lt;br /&gt;00:1e.3 Modem: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC&#39;97 Modem Controller (rev 03)&lt;br /&gt;00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 03)&lt;br /&gt;00:1f.1 IDE interface: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (rev 03)&lt;br /&gt;&lt;b&gt;02:04.0 Network controller: Intel Corporation PRO/Wireless 2200BG [Calexico2] Network Connection (rev 05)&lt;/b&gt;&lt;br /&gt;02:06.0 CardBus bridge: Texas Instruments PCIxx21/x515 Cardbus Controller&lt;br /&gt;02:06.2 FireWire (IEEE 1394): Texas Instruments OHCI Compliant IEEE 1394 Host Controller&lt;br /&gt;02:0e.0 Ethernet controller: Broadcom Corporation BCM4401-B0 100Base-TX (rev 02)&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;----------&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Nella riga evidenziata si vede che il portatile in questione monta una scheda di rete wireless Intel modello 2200BG.&lt;br /&gt;
&lt;br /&gt;
Per riabilitare nuovamente questo modello di schede su Ubuntu 12.04, pertanto, basta entrare nel terminale e digitare in successione i seguenti comandi:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;----------&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;sudo rfkill unblock 0&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;sudo rfkill unblock1&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;sudo rfkill list all&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;---------- &lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Riavviate ed avrete nuovamente il wireless attivo.&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;</description><link>http://soluzionisoftware.blogspot.com/2012/05/wirlesse-su-hp-compaq-nx6110-con-ubuntu.html</link><author>noreply@blogger.com (OpenCode)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGv9qEu54BltxDdfPWpxB1vJkhFI5Xq25JCtUBi7OX1yolisSwvc6eTYVMGqKSLpdWJIkkhZ_VKPackds04j06c-QUH793mgquc_3iD-K6de2pvyrcCSVDDTOXDx0FdaTx_8h3yBEZpMzu/s72-c/HP-Compaq-nx6110.jpg" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2794566328585739125.post-4395997435522008699</guid><pubDate>Sat, 19 May 2012 08:07:00 +0000</pubDate><atom:updated>2012-10-22T18:48:06.853+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">opencode</category><title>Testython: Controllare ogni parametro del proprio codice Python</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp;&amp;nbsp; &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Sviluppare del &lt;i&gt;buon codice&lt;/i&gt; vuol dire sicuramente sottoporre ciò che si scrive ad un continuo controllo di integrità, stabilità ed affidabilità. I software migliori, infatti, oltre a proporre all&#39;utente un elevato numero di features e strumenti, sono veloci nell&#39;eseguire le operazioni e leggeri su ogni tipo di memoria che viene messa loro a disposizione. &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Avere degli &lt;i&gt;ottimi strumenti di debug&lt;/i&gt; sicuramente aiuta lo sviluppatore che così può vagliare diverse opzioni al fine di garantire ai suoi utenti lo snippet di codice migliore all&#39;interno dei suoi software.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Proprio da quest&#39;idea nasce &lt;a href=&quot;https://github.com/OpenCode/testython&quot; target=&quot;_blank&quot;&gt;&lt;b&gt;Testython&lt;/b&gt;&lt;/a&gt;.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;https://github.com/OpenCode/testython&quot; target=&quot;_blank&quot;&gt;Testython&lt;/a&gt; è un semplicissimo modulo per python (attualmente minimale ed in fase di sviluppo) che si pone l&#39;obiettivo di proporre degli strumenti agli sviluppatori che garantiscano il pieno controllo su molte sfaccettature del codice al fine di poter aiutare nella scelta delle migliori alternative vagliate così da poter scrivere ottimi software sia per quanto riguarda il peso (in termini di memoria utilizzata) che la velocità. Lo scopo di questo modulo è quello di essere un coltellino svizzero, semplice da usare e facile da imparare.&lt;br /&gt;
&lt;br /&gt;
Attualmente il modulo si compone di due classi: &lt;b&gt;test_time&lt;/b&gt; e &lt;b&gt;test_memory&lt;/b&gt;. Come è facilmente intuibile, la prima si occupa di analizzare le tempistiche di esecuzione del codice mentre la seconda l&#39;uso della memoria da parte delle variabili utilizzate.&lt;br /&gt;
&lt;br /&gt;
All&#39;interno della cartella dei sorgenti è possibile trovare un semplice memento che potrà essere utile per una rapida consultazione ed inoltre è presente uno script di esempio completo che permette di analizzare l&#39;uso dei diversi strumenti che il modulo, allo stato attuale, propone.&lt;br /&gt;
&lt;br /&gt;
Come sempre sono ben accette tutte le forme di sostegno ed aiuto. Ogni suggerimento che può aiutare il software a crescere sarà vagliato e sviluppato.&lt;br /&gt;
&lt;br /&gt;
Buon uso...&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &lt;/div&gt;</description><link>http://soluzionisoftware.blogspot.com/2012/05/testython-controllare-ogni-parametro.html</link><author>noreply@blogger.com (OpenCode)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2794566328585739125.post-8169773973723821728</guid><pubDate>Tue, 15 May 2012 11:23:00 +0000</pubDate><atom:updated>2012-10-22T18:48:07.786+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">opencode</category><category domain="http://www.blogger.com/atom/ns#">Sql Database</category><title>Sql: Aggiornamento o inserimento in una sola query</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp;&amp;nbsp; &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Quando si scrivono applicazioni che utilizzano un database per il salvataggio dei dati, è sempre importante tenere presente che la velocità è uno dei fattori più influenti per la buona riuscita del nostro lavoro. Bisogna infatti pensare che in ogni banca dati possono essere memorizzati milioni di record che, se analizzati e trattati, possono richiedere tempo e risorse che vengono sottratti ad altre attività che nello stesso momento girano sulla macchina in uso. Proprio per questo motivo quando si lavora su db sql è sempre preferibile demandare ogni tipo di attività al database stesso poiché la sua struttura ed i suoi strumenti sono programmati affinché le operazioni siano il meno dispendiose possibile.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Una delle attività più ricorrenti da effettuare su una serie di dati è il loro aggiornamento (se i dati sono presenti) o il loro inserimento (qualora essi non esistano ancora) all&#39;interno del database in base ad una serie di variabili campione (ad esempio l&#39;imput di un utente in una form). Questo lavoro richiede sicuramente un&#39;estrazione di dati per effettuare un confronto ed un&#39;analisi al fine di capire se eseguire un aggiornamento o un inserimento. Se volessimo analizzare le operazioni da eseguire con una serie di step, rappresentanti un algoritmo, essi si presenterebbero così:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;APRO LA CONNESSIONE AL DB&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;CERCO I DATI NEL DB&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;SE I DATI SONO PRESENTI:&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; AGGIORNA I DATI CON I NUOVI VALORI&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;ALTRIMENTI:&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INSERISCI I DATI NEL DB&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;CHIUDO LA CONNESSIONE AL DB&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Come si può vedere, nonostante il codice sia il più minimale possibile, esso richiede una serie di passaggi che portano via una notevole quantità di tempo. Basti pensare che se il database in questione contiene 1 milione di record esso verrà (nella migliore delle ipotesi) &quot;percorso&quot; 2 volte (non necessariamente nella sua interezza) e ciò significa analizzare una grande mole di dati. Se a ciò aggiungiamo la complessità dei vari moduli dei diversi linguaggi di programmazione che dovrebbero aiutarci in questo lavoro allora capiamo quanto risparmiare secondi preziosi diventi fondamentale.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
A giungerci in aiuto in questo contesto arriva uno strumento sql davvero molto potente: &lt;b&gt;ON DUPLICATE KEY&lt;/b&gt;. Esso ci permette di eseguire le operazioni appena viste sopra (aggiornamento o inserimento) in una sola query senza preoccuparci di estrazioni e confronti. Il suo funzionamento è molto semplice. Esso si prende in carico il compito di analizzare la presenza di una determinata chiave e nel caso essa sia presente aggiornarla altrimenti inserirla. La sintassi si presenta come segue (l&#39;esempio è riferito ad un db MySql):&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;&lt;b&gt;INSERT INTO&lt;/b&gt; tabella (chiave, campo1, campo2, ..., campoN) &lt;b&gt;VALUES&lt;/b&gt; (valchiave, val1, val2, ..., valN) &lt;b&gt;ON DUPLICATE KEY UPDATE&lt;/b&gt; campo1=val1, campo2=val2, ..., campoN = valN&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
In pratica la query si occupa di cercare all&#39;interno del db il record in base al valore della chiave primaria (nel nostro caso &lt;i&gt;chiave&lt;/i&gt;) qualora esso sia presente verrà aggiornato con i valori della tupla che segue VALUES altrimenti verrà creata una nuova voce con i valori definiti dopo UPDATE. Si noti che nell&#39;esempio che il valore di chiave nel caso di inserimento non è definito poiché il database conterrà una chiave con autoincremento ma qualora (per nostre scelte strutturali) la chiave deve essere definita manualmente la si potrà passare come un qualsiasi altro parametro. La query diventerebbe così:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;&lt;b&gt;INSERT INTO&lt;/b&gt; tabella (chiave, campo1, campo2, ...&lt;/i&gt;&lt;i&gt;, campoN&lt;/i&gt;&lt;i&gt;) &lt;b&gt;VALUES&lt;/b&gt; (valchiave, val1, val2, ...&lt;/i&gt;&lt;i&gt;, valN&lt;/i&gt;&lt;i&gt;) &lt;b&gt;ON DUPLICATE KEY UPDATE&lt;/b&gt; chiave=valchiave, campo1=val1, campo2=val2, ...&lt;/i&gt;&lt;i&gt;, campoN = valN&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Grazie all&#39;uso di ON DUPLICATE KEY i vecchi step dell&#39;algoritmo diventano:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;APRO LA CONNESSIONE AL DB&lt;/i&gt;&lt;/div&gt;
&lt;i&gt;ESEGUO QUERY&lt;/i&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;CHIUDO LA CONNESSIONE AL DB&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
La scelta di questo strumento si è dimostrata appropriata in un test eseguito di persona. Si è visto, infatti, che confrontando i tempi di esecuzione di uno script python non ottimizzato con db mysql in locale popolato da 96000 record di prova, i due diversi algoritmi (con e senza ON DUPLICATE KEY) hanno portato una differenza di tempo di circa il 15%.&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp; &lt;/i&gt;&lt;/div&gt;</description><link>http://soluzionisoftware.blogspot.com/2012/05/my.html</link><author>noreply@blogger.com (OpenCode)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2794566328585739125.post-5827940858391170106</guid><pubDate>Mon, 23 Apr 2012 09:28:00 +0000</pubDate><atom:updated>2012-10-22T18:48:07.192+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">opencode</category><category domain="http://www.blogger.com/atom/ns#">Python</category><title>ReportLab e Python: Creare codici a barre</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Come abbiamo avuto modo di vedere, mediante l&#39;uso della libreria offerta da ReportLab, è possibile creare in maniera molto flessibile dei PDF che soddisfino tutti le nostre necessità. Ora però, una volta capito come creare un documento, abbiamo la necessità che esso venga riempito con qualcosa di utile.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
In ogni contesto lavorativo, e quindi a maggior ragione in un contesto industriale come quello oggetto d&#39;esame nello&lt;a href=&quot;http://soluzionisoftware.blogspot.it/2012/04/reportlab-creare-pdf-con-python.html&quot; target=&quot;_blank&quot;&gt; scorso articolo&lt;/a&gt;, la praticità che l&#39;informatica può offrire, è lo strumento migliore che aiuta l&#39;utente a disfarsi di un grosso carico di lavoro ritenuto inutile. Dotare il proprio documento di un codice a barre può servire per effettuare numerose operazioni utili nel futuro come&amp;nbsp; ricerche, organizzazione di documenti, generazione di riferimenti rapidi da riportare su eventuali documenti cartacei, etc...&lt;/div&gt;
&lt;br /&gt;
Ora vediamo come sfruttare ReportLab per creare un codice a barre da inserire nel nostro documento.&lt;br /&gt;
Il codice da esaminare è il seguente:&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;

&lt;i&gt;----- Python -----&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;

&lt;i&gt;#!/usr/bin/env python&lt;br /&gt;&lt;br /&gt;from reportlab.pdfgen import canvas &lt;span style=&quot;color: #cccccc;&quot;&gt;(1)&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;from reportlab.lib.units import mm&lt;/span&gt; (2)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;from reportlab.graphics.barcode import code39&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt; &lt;span style=&quot;color: #cccccc;&quot;&gt;(3) &lt;/span&gt;&lt;/i&gt;&lt;i&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;mio_pdf = canvas.Canvas(&#39;mio.pdf&#39;) &lt;span style=&quot;color: #cccccc;&quot;&gt;(1)&lt;/span&gt;&lt;br /&gt;# ----- imposta le dimensioni&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;mio_pdf.setPageSize((204, 65)) &lt;span style=&quot;color: #cccccc;&quot;&gt;(1)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;

&lt;i&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;

&lt;i&gt;# ----- genera ed imposta il barcode&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;

&lt;span style=&quot;color: #cccccc;&quot;&gt;&lt;i style=&quot;color: black;&quot;&gt;barcode = code39.Extended39(&#39;1234&#39;, barWidth=0.5*mm,barHeight=8*mm&lt;/i&gt;&lt;span style=&quot;color: black;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt; (4)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;barcode.drawOn(&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;i&gt;mio_pdf&lt;/i&gt;&lt;i&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt;&lt;span style=&quot;color: black;&quot;&gt;, 10*mm, 10*mm)&lt;/span&gt; (5)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;

&lt;i&gt;&lt;span style=&quot;color: #cccccc;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;

&lt;i&gt;# ----- genera e salva il pdf&lt;br /&gt;mio_pdf.showPage() &lt;span style=&quot;color: #cccccc;&quot;&gt;(1)&lt;/span&gt;&lt;br /&gt;mio_pdf.save() &lt;span style=&quot;color: #cccccc;&quot;&gt;(1)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;

&lt;i&gt;----------&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Anche questa volta, il sorgente da analizzare è molto semplice e racchiude solo lo stretto necessario affinché venga compreso l&#39;uso dei codici a barre.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Il codice che è già stato esplicato nel precedente articolo (1) non verrà ritrattato e pertanto vi invito ad una rilettura del &lt;a href=&quot;http://soluzionisoftware.blogspot.it/2012/04/reportlab-creare-pdf-con-python.html&quot; target=&quot;_blank&quot;&gt;precedente post&lt;/a&gt; per comprenderne il significato ed il comportamento.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Innanzitutto partiamo dall&#39;inclusione di una nuova voce (2) che ci permette di convertire al volo tutte le unità di misura (che vengono richieste in pollici) in millimetri. In questo modo la generazione dei documenti ed il calcolo delle misure risulterà molto più semplice ed immediata. Successivamente (3) è presente la vera e propria importazione del modulo che si occupa di generare il nostro codice a barre. La funzione da utilizzare è &lt;b&gt;Extended39&lt;/b&gt;. Essa riceve un parametro e restituisce il riferimento all&#39;oggetto barcode. Il parametro da passare alla funzione è la stringa da trasformare in codice a barre. Nel nostro esempio si è scelto di convertire la stringa &#39;1234&#39;. Si tenga presente che la funzione accetta altri parametri opzionali e due di essi sono stati inseriti nell&#39;esempio. &lt;b&gt;barWidth&lt;/b&gt; e &lt;b&gt;barHeight&lt;/b&gt; servono, infatti, ad impostare, rispettivamente, larghezza ed altezza dell&#39;immagine che verrà generata. Si noti come per tale situazione si sia usata la variabile &lt;b&gt;mm&lt;/b&gt;, precedentemente (1) importata. Come già detto, essa converte automaticamente i millimetri indicati in punti. Subito dopo aver generato il nostro oggetto barcode possiamo &quot;disegnarlo&quot; all&#39;interno del pdf con il suo metodo &lt;b&gt;drawOn&lt;/b&gt;. Esso accetta tre parametri: un oggetto di tipo canvas (quello che stiamo usando per generare il nostro pdf), nel quale inserire l&#39;immagine, la posizione sull&#39;asse orizzontale e quella sull&#39;asse verticale nel nostro documento della stessa.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Come si può notare anche la generazione dei codici a barre è molto elastica e potente con questo strumento e nella documentazione ufficiale si possono trovare altri riferimenti ad altre funzioni certamente utili.&lt;/div&gt;</description><link>http://soluzionisoftware.blogspot.com/2012/04/reportlab-e-python-creare-codici-barre.html</link><author>noreply@blogger.com (OpenCode)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2794566328585739125.post-5906048643513171597</guid><pubDate>Wed, 18 Apr 2012 10:10:00 +0000</pubDate><atom:updated>2012-10-22T18:48:07.277+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">News</category><category domain="http://www.blogger.com/atom/ns#">opencode</category><title>Disponibili i sorgenti dell&#39;originale Prince of Persia</title><description>&lt;br /&gt;
Come era stato preannunciato in un &lt;a href=&quot;http://soluzionisoftware.blogspot.it/2012/04/ritrovato-prince-of-persia.html&quot; target=&quot;_blank&quot;&gt;precedente post&lt;/a&gt;, una fortuita coincidenza aveva permesso a &lt;b&gt;Jordan Mechner&lt;/b&gt; di riottenere i sorgenti dell&#39;orginale &lt;b&gt;Prince of Persia&lt;/b&gt; che risultavano perduti ormai da numerosi anni. Lo stesso sviluppatore, dopo il ritrovamento del proprio tesoro, aveva promesso che dopo un aggiornamento del codice avrebbe provveduto a caricarlo in modo da rendere il tutto idoneo ad un rilascio Open Source in grande stile. La notizia a fatto il giro del mondo e la gente era in attesa che quanto detto divenisse realtà.&lt;br /&gt;
Per tutti i nostalgici e per i curiosi finalmente la parola è stata promessa e grazie all&#39;hosting offerto da &lt;a href=&quot;https://github.com/jmechner/Prince-of-Persia-Apple-II&quot; target=&quot;_blank&quot;&gt;GitHub&lt;/a&gt; ora è possibile esplorare, scaricare e, perchè no, forkare il progetto per far nascere qualcosa di nuovo o ridar vita a qualcosa di vecchio.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://www.jailbreakscene.net/wp-content/uploads/2011/06/Prince-of-Persia-DOS.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;202&quot; src=&quot;http://www.jailbreakscene.net/wp-content/uploads/2011/06/Prince-of-Persia-DOS.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&amp;nbsp; &lt;br /&gt;
Sicuramente la notizia è tra le più interessanti dell&#39;ultimo periodo e c&#39;è la certezza che qualcuno e già all&#39;opera o lo sarà a breve per portare questo piccolo capolavoro della storia dell&#39;informatica sulle più recenti piattaforme in circolazione. Forse lo troveremo a breve su le nostre linux box o nei nostri mac oppure vedremo il principe eseguire i celebri salti in una finestra di Windows. Rimane comunque il fatto che la storia e storia e questo&amp;nbsp; codice ne è sicuramente un pezzo importante.&lt;br /&gt;</description><link>http://soluzionisoftware.blogspot.com/2012/04/disponibili-i-sorgenti-delloriginale.html</link><author>noreply@blogger.com (OpenCode)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2794566328585739125.post-3257095065242336793</guid><pubDate>Mon, 16 Apr 2012 07:33:00 +0000</pubDate><atom:updated>2012-10-22T18:48:06.407+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">opencode</category><category domain="http://www.blogger.com/atom/ns#">Python</category><title>ReportLab: Creare PDF con Python</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;
Ritorniamo un po&#39; a parlare di quello che più ci piace fare di più: sviluppare software!&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Tempo fa ero alla ricerca di un ottimo metodo che mi permettesse di stampare etichette per un processo industriale. La scelta ricadde su Python per una serie di motivi particolari legati al sistema in uso su le macchine presenti in loco. Ora il dilemma era scegliere la libreria migliore per generare dei PDF da inviare alle macchine di stampa. Scriverne una nuova sarebbe stata un&#39;enorme perdita di tempo e visto che, fortunatamente, viviamo in un mondo costellato di ottimi progetti Open Source, dove è possibile trovare sempre quello che fa al caso proprio, mi sono messo alla ricerca di qualcosa che mi aiutasse in questa problematica. Nelle ricerche effettuate mi sono imbattuto in numerosi progetti interessanti ma uno in particolare pare essere completo ed altamente funzionante: la libreria pdfgen di &lt;a href=&quot;http://www.reportlab.com/software/opensource/&quot; target=&quot;_blank&quot;&gt;reportlab&lt;/a&gt;. Esistono due versione della stessa libreria, quella base e quella plus. Per i nostri scopi quella più semplice va benissimo ed è anche quella che troveremo nei nostri repository.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Per iniziare ad utilizzare pdfgen dobbiamo prima installare il necessario. Basterà recarsi nel proprio gestore di pacchetti ed installare python-reportlab o digitare nel terminale (per sistemi debian.based):&lt;/div&gt;
&lt;br /&gt;
&lt;i&gt;# apt-get install python-reportlab&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
A questo punto possiamo includere la libreria nei nostri sorgenti python con:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;import reportlab.pdfgen&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Analizziamo ora un semplice script per vedere il funzionamento di questo strumento:&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;----- Python -----&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;#!/usr/bin/env python&lt;br /&gt;&lt;br /&gt;from reportlab.pdfgen import canvas &lt;span style=&quot;color: #cccccc;&quot;&gt;(1) &lt;/span&gt;&lt;br /&gt;from datetime import datetime&lt;br /&gt;&lt;br /&gt;mio_pdf = canvas.Canvas(&#39;mio.pdf&#39;) &lt;span style=&quot;color: #cccccc;&quot;&gt;(2)&lt;/span&gt;&lt;br /&gt;# ----- imposta le dimensioni a 7.2 x 2.3 cm&lt;br /&gt;mio_pdf.setPageSize((204.0944882400, 65.1968504100)) &lt;span style=&quot;color: #cccccc;&quot;&gt;(3)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;# ----- scrive la data di oggi nel pdf&lt;br /&gt;mio_pdf.drawString(0,54,str(datetime.today()))&lt;span style=&quot;color: #cccccc;&quot;&gt; (4)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;# ----- genera e salva il pdf&lt;br /&gt;mio_pdf.showPage() &lt;span style=&quot;color: #cccccc;&quot;&gt;(5)&lt;/span&gt;&lt;br /&gt;mio_pdfp.save() &lt;span style=&quot;color: #cccccc;&quot;&gt;(6)&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;----------&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Come si vede il codice è molto semplice ma molto potente. Analizziamolo passo per passo anche se i commenti dovrebbero essere di per sè molto chiari. Partendo dal primo rigo di codice utile, si importa semplicemente la funzione canvas dalla libreria (1). Tale funzione è quella che si occupa di &quot;disegnare&quot; il documento ed il suo contenuto. Sarà la funzione che più utilizzerete nel vostro codice e perciò vi conviene studiarla per bene. Successivamente (2) viene generato il contenitore per i nostri dati e si definiscono le dimensioni in punti (3). Al suo interno poi si definiscono le coordinate in stile cartesiano (a partire dal punto in basso a sinistra che rappresenta lo 0,0) in cui inserire il nostro contenuto. Qui (4) si è scelto di stampare la data di oggi in un punto indicativamente in alto a sinistra. Infine (5) si genera il PDF con tutto ciò che è stato creato e lo si salva (6) nella path in cui viene eseguito il nostro script.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
La libreria è molto potente e permette di definire numerosissimi valori per generare al meglio il nostro documento secondo le nostre esigenze. Per la &lt;a href=&quot;http://www.reportlab.com/apis/reportlab/dev/pdfgen.html&quot; target=&quot;_blank&quot;&gt;documentazione completa&lt;/a&gt; vi rimando al sito ufficiale che risulta essere completo ed esaustivo nella maggior parte dei casi.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Per ogni dubbio non esitate ad utilizzare i commenti. Cercherò di aiutarvi.&lt;/div&gt;
&lt;br /&gt;</description><link>http://soluzionisoftware.blogspot.com/2012/04/reportlab-creare-pdf-con-python.html</link><author>noreply@blogger.com (OpenCode)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2794566328585739125.post-5840902305091281776</guid><pubDate>Fri, 13 Apr 2012 07:59:00 +0000</pubDate><atom:updated>2012-10-22T18:48:07.235+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Contest</category><category domain="http://www.blogger.com/atom/ns#">Game</category><category domain="http://www.blogger.com/atom/ns#">News</category><category domain="http://www.blogger.com/atom/ns#">opencode</category><title>Liberated Pixel Art</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp;&amp;nbsp; &lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
L&#39;ormai diffuso interesse verso l&#39;open source è il sintomo predominante di una nuova serie di idee nate per infoltire di ottimi progetti questo già consolidato mondo. Sempre più iniziative, anche promosse dalle aziende più blasonate del settore informatico, nascono e permettono a ottimi prodotti di venire al mondo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Ultimo, ma solo in ordine cronologico, è il progetto partorito dalle menti di &lt;b&gt;Creative Commons&lt;/b&gt;, &lt;b&gt;Free Software Foundation&lt;/b&gt; ed &lt;b&gt;OpenGameArt&lt;/b&gt; che hanno promosso un contest, &lt;b&gt;Liberated Pixel Art&lt;/b&gt;, che prevede la creazione di un &lt;i&gt;videogame 100% open source&lt;/i&gt;. Il lavoro che sarà decretato il vincitore otterrà un premio di &lt;i&gt;10000$&lt;/i&gt; che attualmente è in &lt;a href=&quot;https://my.fsf.org/donate/working-together/liberated-pixel-cup&quot; target=&quot;_blank&quot;&gt;fase di raccolta&lt;/a&gt; mediante le donazioni che giungono dagli utenti. Si può partecipare da soli o presentarsi con un team.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtizuaeR8F1Cl9PosXuux8ZCZijyiieZaJbVKBjs1oTWoAZMny4A4mvJW4u7Kp_8IVy-a1OLp_80gvokoJ2jabxPg1JwT3JUfKp_C1qa9MekwpF2Kd4eSVSudjwmujWVtdL6ku_Mb6PRMn/s1600/lpc.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;87&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtizuaeR8F1Cl9PosXuux8ZCZijyiieZaJbVKBjs1oTWoAZMny4A4mvJW4u7Kp_8IVy-a1OLp_80gvokoJ2jabxPg1JwT3JUfKp_C1qa9MekwpF2Kd4eSVSudjwmujWVtdL6ku_Mb6PRMn/s320/lpc.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;
La sfida è stata suddivisa in due fasi di gara.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Fase 1&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;Dal 01/06/12 al 30/06/12&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Definita la parte &lt;i&gt;artistica&lt;/i&gt;, questa sezione del contest prevede la creazione di quelli che saranno i contenuti grafici del potenziale videogame. In una fase preliminare è stato definito che il gioco che dovrà essere sviluppato avrà un gameplay ed una grafica che rievochino i vecchi RPG del secolo scorso. Punti fondamentali per poter vedere i propri lavori accettati è quella di dover rilasciare tutto i lavoro sotto licenza CC-BY-SA 3.0 e GNU GPL 3.0. Per le 
immagini il consiglio è di utilizzare il formato PNG, per l&#39;audio e gli effetti sonori brevi il WAV mentre FLAC ed OGG sono preferibile per la musica di 
sottofondo o altre colonne sonore.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Fase 2&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;i&gt;Dal 01/07/12&amp;nbsp; al 31/07/12&lt;/i&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Definita la parte &lt;i&gt;di sviluppo&lt;/i&gt;, questa sezione si fa carico dello sviluppo vero e proprio del motore di gioco. I criteri per questa sezione prevedono che il codice deve essere libero e open source e deve essere disponibile sotto la licenza GNU GPL 3.0. Il codice deve essere compilabile su sistemi liberi &lt;span style=&quot;background-color: #e6ecf9;&quot;&gt;&lt;/span&gt;al 100% e non deve basarsi su librerie proprietarie. Può essere sviluppato su una qualsivoglia piattaforma solo se essa ha una controparte libera che gira su altri sistemi come ad esempio GNU/Linux. Il sorgente deve essere semplice da installare ed usare.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Vi lascio qualche link per approfondire. Partecipare numerosi.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://creativecommons.org/&quot; target=&quot;_blank&quot;&gt;Creative Commons&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://www.fsf.org/&quot; target=&quot;_blank&quot;&gt;Free Software Foundation&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://opengameart.org/&quot; target=&quot;_blank&quot;&gt;OpenGamesArt&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;http://lpc.opengameart.org/content/lpc-rules&quot; target=&quot;_blank&quot;&gt;Liberated Pixel Art&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&amp;nbsp; &lt;/div&gt;</description><link>http://soluzionisoftware.blogspot.com/2012/04/liberated-pixel-art.html</link><author>noreply@blogger.com (OpenCode)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtizuaeR8F1Cl9PosXuux8ZCZijyiieZaJbVKBjs1oTWoAZMny4A4mvJW4u7Kp_8IVy-a1OLp_80gvokoJ2jabxPg1JwT3JUfKp_C1qa9MekwpF2Kd4eSVSudjwmujWVtdL6ku_Mb6PRMn/s72-c/lpc.png" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2794566328585739125.post-8823201556261452345</guid><pubDate>Wed, 04 Apr 2012 11:06:00 +0000</pubDate><atom:updated>2012-10-22T18:48:08.039+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">opencode</category><category domain="http://www.blogger.com/atom/ns#">Php</category><category domain="http://www.blogger.com/atom/ns#">PHPersonalBookmarks</category><title>PHPersonalBookmarks: i filtri</title><description>Cresce, nonostante il tempo a disposizione, il codice che muove il cuore di &lt;b&gt;PHPersonalBookmarks&lt;/b&gt; ed ovviamente crescono le funzionalità che vengono proposte a chi ha scelto di utilizzare il &lt;a href=&quot;http://soluzionisoftware.blogspot.it/search/label/PHPersonalBookmarks&quot; target=&quot;_blank&quot;&gt;software&lt;/a&gt;. Ultima, ma solo in ordine cronologico, è la nuovissima funzionalità mediante la quale l&#39;&lt;i&gt;utente potrà filtrare&lt;/i&gt; i link mediante url, nome, descrizione e tags. Basterà inserire una qualsiasi stringa contenuta all&#39;interno della riga che si vuole ricerca ed avremo la nostra lista prontamente filtrata.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGadWR90ILVmdmzkQCCr3RGASjcdzXgKICkG2nP2z8yNbwqj6RHG5QDgnbPtBCBLNZZ2AYaBtvOhqIQa4-O-JPpJ-qBd7u41vFTpBLI8bT7ypr5L9ALUm68_p98WI-wVd97l7a_WiDcGPn/s1600/PHPersonalBookmarks.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;57&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGadWR90ILVmdmzkQCCr3RGASjcdzXgKICkG2nP2z8yNbwqj6RHG5QDgnbPtBCBLNZZ2AYaBtvOhqIQa4-O-JPpJ-qBd7u41vFTpBLI8bT7ypr5L9ALUm68_p98WI-wVd97l7a_WiDcGPn/s320/PHPersonalBookmarks.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;Buon uso a tutti!</description><link>http://soluzionisoftware.blogspot.com/2012/04/phpersonalbookmarks-i-filtri.html</link><author>noreply@blogger.com (OpenCode)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGadWR90ILVmdmzkQCCr3RGASjcdzXgKICkG2nP2z8yNbwqj6RHG5QDgnbPtBCBLNZZ2AYaBtvOhqIQa4-O-JPpJ-qBd7u41vFTpBLI8bT7ypr5L9ALUm68_p98WI-wVd97l7a_WiDcGPn/s72-c/PHPersonalBookmarks.png" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2794566328585739125.post-4263881553549038225</guid><pubDate>Tue, 03 Apr 2012 10:24:00 +0000</pubDate><atom:updated>2012-10-22T18:48:06.811+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">News</category><category domain="http://www.blogger.com/atom/ns#">opencode</category><title>&quot;Ritrovato&quot; Prince of Persia</title><description>&lt;br /&gt;
&amp;nbsp; &lt;br /&gt;
Sembrerebbe una storia di ordinarie pulizie di primavera ed invece il ritrovamento di un anonimo scatolone nelle soffitta di una famiglia come tante potrà risvegliare assopiti appetiti per molti videogiocatori cresciuti a pane e DOS.&lt;br /&gt;
&lt;br /&gt;
Pare infatti che un padre come tanti abbia ritrovato in soffitta delle vecchie scatole del figlio e le abbia spedite al legittimo proprietario. Peccato che a ricevere il pacco c&#39;era Jordan Mechner, noto creatore del celeberrimo gioco &lt;b&gt;Prince of Persia&lt;/b&gt; che in quelle scatole aveva conservato i sorgenti originali del gioco da lui stesso sviluppato! Alla scoperta del contenuto di quei dischetti, l&#39;uomo si è subito attrezzato per aggiornare i sorgenti originariamente scritti in ProDOS per poterli distribuire in rete.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://www.jailbreakscene.net/wp-content/uploads/2011/06/Prince-of-Persia-DOS.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;202&quot; src=&quot;http://www.jailbreakscene.net/wp-content/uploads/2011/06/Prince-of-Persia-DOS.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
Potrà mai l&#39;Open Source garantire la rinascita di un classico degli anni &#39;80 e &#39;90 che ha accompagnato diverse generazioni di appassionati?&lt;br /&gt;
&lt;br /&gt;
Credo che se ne sentirà presto parlare.&lt;br /&gt;
&lt;br /&gt;
Fonti [&lt;a href=&quot;http://www.ossblog.it/post/9739/jordan-mechner-ha-riesumato-il-codice-sorgente-di-prince-of-persia&quot; target=&quot;_blank&quot;&gt;1&lt;/a&gt;] - [&lt;a href=&quot;http://jordanmechner.com/blog/2012/03/prince-of-persia-source-code-found/&quot; target=&quot;_blank&quot;&gt;2&lt;/a&gt;]</description><link>http://soluzionisoftware.blogspot.com/2012/04/ritrovato-prince-of-persia.html</link><author>noreply@blogger.com (OpenCode)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2794566328585739125.post-760795830774222972</guid><pubDate>Mon, 26 Mar 2012 11:08:00 +0000</pubDate><atom:updated>2012-10-22T18:48:07.574+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">opencode</category><category domain="http://www.blogger.com/atom/ns#">Php</category><category domain="http://www.blogger.com/atom/ns#">PHPersonalBookmarks</category><title>PHPersonalBookmarks in 4 lingue</title><description>&lt;div class=&quot;post-content&quot;&gt;
&lt;div&gt;
&lt;div class=&quot;collapsible&quot;&gt;
&lt;br /&gt;
È con immenso piacere che dichiaro che grazie al potere dell&#39;Open Source, di un utente di Github e di un utente di Diaspora, &lt;a href=&quot;http://soluzionisoftware.blogspot.it/search/label/PHPersonalBookmarks&quot; target=&quot;_blank&quot;&gt;PHPersonalBookmarks&lt;/a&gt;
 è stato tradotto in 4 lingue diverse.&lt;br /&gt;
&lt;br /&gt;
Sembrerà poco ma se si riflette 
sul fatto che il progetto non ha neanche un mese di vita la cosa, per 
me, è magnifica.&lt;br /&gt;
&lt;br /&gt;
Per ora abbiamo &lt;b&gt;Italiano&lt;/b&gt;, &lt;b&gt;Inglese&lt;/b&gt;, &lt;b&gt;Spagnolo&lt;/b&gt; e &lt;b&gt;Francese&lt;/b&gt;.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</description><link>http://soluzionisoftware.blogspot.com/2012/03/e-con-immenso-piacere-che-dichiaro-che.html</link><author>noreply@blogger.com (OpenCode)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2794566328585739125.post-7961346626513539499</guid><pubDate>Mon, 19 Mar 2012 18:40:00 +0000</pubDate><atom:updated>2012-10-22T18:48:07.659+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">opencode</category><category domain="http://www.blogger.com/atom/ns#">Php</category><category domain="http://www.blogger.com/atom/ns#">PHPersonalBookmarks</category><title>PHPersonalBookmarks</title><description>&lt;div class=&quot;details&quot; style=&quot;display: block;&quot;&gt;
&lt;br /&gt;
Volevo presentarvi un piccolo progettino portato avanti nei ritagli di tempo libero. Si tratta di un software scritto in php
 (e stralci di jquery) che permette di gestire direttamente on-line i propri &lt;b&gt;segnalibri&lt;/b&gt;. 
Perciò se avete uno spazio web (o se volete provarlo in locale) 
potete liberamente scaricare i &lt;a href=&quot;https://github.com/OpenCode/PHPersonalBookmarks&quot; target=&quot;_blank&quot;&gt;sorgenti open source&lt;/a&gt; e caricarli nel vostro
 spazio web con un semplice trasferimento ftp o ssh.&lt;br /&gt;
&lt;br /&gt;
Potete iniziare immediatamente a catalogare i vostri 
segnalibri preferiti e consultarli immediatamente on line ovunque siete. Non necessita 
di nessun tipo di database perchè si basa tutto su un db flat text.&lt;br /&gt;
&lt;br /&gt;
Chiunque voglia 
provarlo può scaricarlo, caricarlo ed utilizzarlo immediatamente senza 
installazioni e configurazioni.&lt;br /&gt;
&lt;br /&gt;
Il codice, nonostante la sua semplicità e leggerezza, permette di svolgere le principali&amp;nbsp; attività legate alla catalogazione dei propri links. È possibile, ad esempio, creare i link mediante un comodo form ed inserire le informazioni più importanti, cancellare i link direttamente dalla lista mediante l&#39;apposita icona, Eliminare i link per nome, descrizione e tag semplicemente cliccando sulla testata della colonna, mostrare i link una comoda finestra modale per avere un&#39;anteprima del sito che si sta per visitare e condividere in maniera rapida gli url con i propri amici su centinaia si siti e social network.&lt;br /&gt;
&lt;br /&gt;
Se il progetto vi interessa seguite il tag &lt;a class=&quot;tag&quot; href=&quot;https://joindiaspora.com/tags/phpersonalbookmarks&quot;&gt;#phpersonalbookmarks&lt;/a&gt; su diaspora per essere sempre aggiornati sullo sviluppo.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://joindiaspora.s3.amazonaws.com/uploads/images/scaled_full_34577220a91fc1c3f3d6.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;151&quot; src=&quot;https://joindiaspora.s3.amazonaws.com/uploads/images/scaled_full_34577220a91fc1c3f3d6.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Vista della lista dei links&lt;/td&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://joindiaspora.s3.amazonaws.com/uploads/images/scaled_full_eb54e09b49f4913a2a8a.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;181&quot; src=&quot;https://joindiaspora.s3.amazonaws.com/uploads/images/scaled_full_eb54e09b49f4913a2a8a.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Form creazione link&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto; text-align: center;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://joindiaspora.s3.amazonaws.com/uploads/images/scaled_full_29536cf8d4c99c0886a7.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;151&quot; src=&quot;https://joindiaspora.s3.amazonaws.com/uploads/images/scaled_full_29536cf8d4c99c0886a7.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;Esempio di sito in finestra modale&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;</description><link>http://soluzionisoftware.blogspot.com/2012/03/phpersonalbookmarks.html</link><author>noreply@blogger.com (OpenCode)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2794566328585739125.post-7866614769331304646</guid><pubDate>Sun, 26 Feb 2012 10:34:00 +0000</pubDate><atom:updated>2012-10-22T18:48:07.617+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Free Mind</category><category domain="http://www.blogger.com/atom/ns#">opencode</category><title>L&#39;epoca delle fotografie</title><description>C&#39;è stato un tempo in cui la passione per la fotografia lasciava largo spazio all&#39;incontro tra la natura, i soggetti e l&#39;uomo. Tutto ciò che serviva per immortalare lo scatto era racchiuso nel momento stesso in cui lo scatto iniziava ad esistere. Un paesaggio, una reflex e l&#39;uso parsimonioso della messa a fuoco erano tutto quello che serviva per creare l&#39;arte da ciò che già era arte. A ciò si aggiungeva l&#39;attesa di avere tra le mani la propria fotografia sviluppata e questo rendeva ancora più piacevole fare foto. Il numero limitato di scatti a disposizione era il freno inibitore verso tutto ciò che si riteneva inutile.&lt;br /&gt;
&lt;br /&gt;
Poi giunse la rivoluzione. Photoshop permise alla gente di sbagliare e da ciò ne derivò una perdita di poesia dovuto dall&#39;attenzione meticolosa nella ricerca del soggetto perfetto, della sua inquadratura, del suo profilo migliore e della luce più idonea affinché tutto fosse al posto giusto. Il post-fotografia è diventato un vero e proprio laboratorio di finzione dove ciò che non c&#39;era poteva essere aggiunto, ciò che non doveva esserci eliminato. I colori potevano essere alterati, la bellezza poteva essere osannata o nascosta. Nulla era più ciò era stato.&lt;br /&gt;
&lt;br /&gt;
Poi fu ancora rivoluzione. Giunsero le camere intelligenti. Messa a fuoco automatica, scatto propositivo, funzioni preimpostare e scelta del soggetto migliore. Il fotografo a smesso di essere tale ed il suo compito ha iniziato ad essere sempre più simile a quello di un semplice treppiede. Non ti è permesso sbagliare per il gusto di farlo perché tutto deve essere perfetto. Non puoi definire l&#39;arte dello sfocato perché pur volendo non puoi farlo.&lt;br /&gt;
&lt;br /&gt;
Voi potete pure chiamarla libertà tecnologica ma io la chiamo prigionia del progresso.&lt;br /&gt;
&amp;nbsp;</description><link>http://soluzionisoftware.blogspot.com/2012/02/lepoca-delle-fotografie.html</link><author>noreply@blogger.com (OpenCode)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-2794566328585739125.post-4044056538519137572</guid><pubDate>Wed, 08 Feb 2012 01:00:00 +0000</pubDate><atom:updated>2012-10-22T18:48:06.705+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Free Mind</category><category domain="http://www.blogger.com/atom/ns#">Gambas</category><category domain="http://www.blogger.com/atom/ns#">opencode</category><title>Fa sempre piacere farsi citare...</title><description>Qualche giorno fa ho notato la presenza di un messaggio nel forum di Gambas e mi sono apprestato a leggerlo. Il messaggio proveniva da un utente che, insieme ad altre persone si è posto l&#39;intento a creare un software, &lt;b&gt;Azeotrope,&lt;/b&gt; che funga da calcolatore chimico che sia utile a risolvere facilmente esercizi ed eseguire calcoli techiometrici.&lt;br /&gt;
&lt;br /&gt;
All&#39;interno del software è stato usato del mio codice e l&#39;utente in questione&amp;nbsp; ci teneva a farmelo presente. La cosa è stata molto gradita ed è stato un gesto piacevole e molto educato che mi ha fatto capire quanto possa essere interessante scoprire cose nuove in modi così inaspettati.&lt;br /&gt;
&lt;br /&gt;
Il software è ben fatto e molto interessante. Lo consiglio a chiunque lavori in questo campo e ne sappi molto più me.&lt;br /&gt;
&lt;br /&gt;
Lascio qui il link al &lt;a href=&quot;http://www.azeotrope.tk/&quot; target=&quot;_blank&quot;&gt;sito ufficiale&lt;/a&gt; del software lo screenshot gentilmente inviatomi dal team di &lt;b&gt;Azeotrope&lt;/b&gt; in cui figura anche il mio nome...;)&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFlZ9jqhKAY0bcNp3cguzsry3L8ak91Ajx62qLPPj9ej_wSW29qqeQmcomIFSr5Vqu7QbtQug-HpcanlgQf4CPzVqj3KojatI0qzTONUdHkBxumGphX5r5BEtsICL03JsNXDSFTtuuEmAD/s1600/Schermata.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;223&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFlZ9jqhKAY0bcNp3cguzsry3L8ak91Ajx62qLPPj9ej_wSW29qqeQmcomIFSr5Vqu7QbtQug-HpcanlgQf4CPzVqj3KojatI0qzTONUdHkBxumGphX5r5BEtsICL03JsNXDSFTtuuEmAD/s400/Schermata.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;b&gt;&amp;nbsp; &lt;/b&gt;</description><link>http://soluzionisoftware.blogspot.com/2012/02/fa-sempre-piacere-farsi-citare.html</link><author>noreply@blogger.com (OpenCode)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFlZ9jqhKAY0bcNp3cguzsry3L8ak91Ajx62qLPPj9ej_wSW29qqeQmcomIFSr5Vqu7QbtQug-HpcanlgQf4CPzVqj3KojatI0qzTONUdHkBxumGphX5r5BEtsICL03JsNXDSFTtuuEmAD/s72-c/Schermata.png" height="72" width="72"/></item></channel></rss>