<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3234545684503477006</id><updated>2012-01-14T23:21:47.593+01:00</updated><category term='Python'/><category term='PIL'/><category term='Xhtml'/><category term='Applicazioni'/><category term='Grafica'/><category term='Pygtk'/><category term='Zero_day'/><category term='Gimp'/><category term='C'/><category term='Gnu/Linux'/><category term='Apple'/><category term='Fedora12'/><category term='Computer'/><category term='Scripting'/><category term='Shell'/><category term='GCC'/><category term='Web Design'/><category term='Glade'/><category term='Chrome'/><category term='Windows-7'/><category term='GTK+'/><category term='symbian'/><category term='Trolltech'/><category term='Smartphone'/><category term='Safari'/><category term='Privacy'/><category term='Libri'/><category term='Windows-OS'/><category term='Apache'/><category term='SicurezzaWeb'/><category term='IronPython'/><category term='Facebook'/><category term='Html5'/><category term='Howto'/><category term='Lenny'/><category term='QT'/><category term='Css'/><category term='MySQL'/><category term='Multimedia'/><category term='Debian'/><category term='Nokia'/><category term='Windows-XP'/><category term='Matplotlib'/><category term='Sistema'/><category term='Web Services'/><category term='Kde'/><category term='Personale'/><category term='Programmazione'/><category term='Ipod'/><category term='Exploit'/><category term='PyS60'/><category term='Gnome'/><category term='Google'/><category term='SicurezzaPC'/><category term='Editor'/><category term='Open Source'/><category term='PHP'/><category term='Browser'/><category term='Vim'/><category term='Assembly'/><category term='Firefox'/><category term='Multi-Touch'/><category term='Ruby'/><category term='Django'/><category term='html'/><category term='Sidejacking'/><category term='Ubuntu'/><category term='Hacking'/><category term='Bash'/><category term='JavaScript'/><category term='PyLab'/><title type='text'>Other to Think</title><subtitle type='html'>I think geek, i live geek!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default?start-index=101&amp;max-results=100'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>134</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-1967675438251937174</id><published>2011-10-13T17:29:00.000+02:00</published><updated>2011-10-13T17:29:32.667+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personale'/><title type='text'>Morto Dennis Ritchie A Lui Dobbiamo Il  Linguaggio C E UNIX</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-TMbNhVSLGpw/Tpb5nSe_b_I/AAAAAAAAA2o/yt3gQ_Vgo_Q/s1600/dennis.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="308" src="http://1.bp.blogspot.com/-TMbNhVSLGpw/Tpb5nSe_b_I/AAAAAAAAA2o/yt3gQ_Vgo_Q/s320/dennis.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;&lt;i&gt;E morto Dennis Ritchie&lt;/i&gt;&lt;/b&gt;.&lt;br /&gt;&lt;a href="http://it.wikipedia.org/wiki/Dennis_Ritchie"&gt;&lt;i&gt;Ritchie &lt;/i&gt;&lt;/a&gt;e stato uno di quegli uomini che certamente avrebbe meritato&lt;i&gt; l' appellativo di genio&lt;/i&gt;,&amp;nbsp; uno di quegli uomini che i &lt;i&gt;media&lt;/i&gt;, &lt;i&gt;tutti&lt;/i&gt;, avrebbero dovuto ricordare come tale se non altro per il contributo &lt;b&gt;&lt;i&gt;vero&lt;/i&gt;&lt;/b&gt; che ha dato &lt;i&gt;all 'informatica&lt;/i&gt;,&amp;nbsp; d' altronte &lt;a href="http://it.wikipedia.org/wiki/Dennis_Ritchie"&gt;&lt;i&gt;Ritchie&lt;/i&gt;&lt;/a&gt; &lt;b&gt;&lt;i&gt;non vendeva aggeggi alla moda&lt;/i&gt;&lt;/b&gt;, &lt;b&gt;&lt;i&gt;non e stato un buon markettaro di oggetti cool&lt;/i&gt;&lt;/b&gt; quindi non vale la pena di riservargli qualche riga come avrebbe meritato.&lt;br /&gt;&lt;br /&gt;Tantomeno&amp;nbsp; non avrebbe voluto&lt;a href="http://tv.repubblica.it/dossier/morte-steve-jobs/jobs-le-finte-lacrime-dei-politici-italiani/77657/76048?pagefrom=1"&gt;&lt;i&gt; lacrime ipocrite&lt;/i&gt;&lt;/a&gt; di &lt;a href="http://www.repubblica.it/tecnologia/2011/10/06/news/reazioni_jobs-22772492/"&gt;&lt;i&gt;gente falsa&lt;/i&gt;&lt;/a&gt; e opportunista ma un ricordo sincero si.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Addio Dennis Ritchie&lt;/i&gt;&lt;/b&gt;, il Mondo dei computers ti deve molto, &lt;b&gt;&lt;i&gt;addio genio vero&lt;/i&gt;&lt;/b&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-1967675438251937174?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/1967675438251937174/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=1967675438251937174&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/1967675438251937174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/1967675438251937174'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2011/10/morto-dennis-ritchie-lui-dobbiamo-il.html' title='Morto Dennis Ritchie A Lui Dobbiamo Il  Linguaggio C E UNIX'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-TMbNhVSLGpw/Tpb5nSe_b_I/AAAAAAAAA2o/yt3gQ_Vgo_Q/s72-c/dennis.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-1339909088411495180</id><published>2011-09-21T13:35:00.000+02:00</published><updated>2011-09-21T13:35:30.001+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shell'/><category scheme='http://www.blogger.com/atom/ns#' term='Bash'/><title type='text'>Personalizzare il prompt della bash</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-X7kQXrrkRgI/Tnm8lrf-VZI/AAAAAAAAA2g/F3Nne1pztmg/s1600/bash.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-X7kQXrrkRgI/Tnm8lrf-VZI/AAAAAAAAA2g/F3Nne1pztmg/s1600/bash.png" /&gt;&lt;/a&gt;&lt;/div&gt;Ecco alcuni casi di personalizzazione del vostro &lt;i&gt;prompt&lt;/i&gt; senza incasinarlo troppo. &amp;nbsp;Per vedere come è formato il vostro&lt;i&gt; prompt&lt;/i&gt; della &lt;i&gt;shell&lt;/i&gt;, basta eseguire echo &lt;b&gt;$PS1&lt;/b&gt;(esistono anche una &lt;b&gt;PS2&lt;/b&gt;, &lt;b&gt;PS3&lt;/b&gt;, e una &lt;b&gt;PS4&lt;/b&gt;, ma non le prenderemo in considerazione). Il quale stampa la variabile d' ambiente settata &amp;nbsp;in un&amp;nbsp; file&amp;nbsp; nascosto quale &lt;b&gt;&lt;i&gt;.bash_profile&lt;/i&gt;&lt;/b&gt; o &lt;b&gt;&lt;i&gt;.bashrc&lt;/i&gt;&lt;/b&gt;, a secondo di quello che viene trovato&amp;nbsp; nella vostra &lt;b&gt;&lt;i&gt;/home/user&lt;/i&gt;&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;Prendiamo come esempio la &lt;b&gt;&lt;i&gt;bash&lt;/i&gt;&lt;/b&gt; nella mia&lt;b&gt;&lt;i&gt; linux box&lt;/i&gt;&lt;/b&gt;, &lt;br /&gt;&lt;b&gt;&lt;i&gt;archie@fobia:~$ echo $PS1&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;ritorna come output &lt;b&gt;&lt;i&gt;PS1="\u@\h:\w\$ "&lt;/i&gt;&lt;/b&gt; che corrisponde ai&amp;nbsp; valori impostati nel seguente modo:&lt;br /&gt;&lt;b&gt;&lt;i&gt;\u@ =&lt;/i&gt;&lt;/b&gt; archie ovvero l' utente del sistema.&lt;br /&gt;&lt;b&gt;&lt;i&gt;\h: &lt;/i&gt;&lt;/b&gt;= l' host ovvero il nome della nostra macchina preceduta dai due punti.&lt;br /&gt;&lt;b&gt;&lt;i&gt;\w &lt;/i&gt;&lt;/b&gt;= la directory corrente ovvero la tilde.&lt;br /&gt;&lt;b&gt;&lt;i&gt;\$&lt;/i&gt;&lt;/b&gt; = il segno del dollaro ci segnala il tipo di user al lavoro. Mentre il cancelletto &lt;b&gt;&lt;i&gt;#&lt;/i&gt;&lt;/b&gt;, equivale all' utente root.&lt;br /&gt;&lt;br /&gt;Ecco altri semplici esempi di prompt:&lt;br /&gt;&lt;b&gt;&lt;i&gt;PS1="[\u]$ "&lt;/i&gt;&lt;/b&gt;&amp;nbsp; corrisponde al seguente esempio &lt;b&gt;&lt;i&gt;[archie]$&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;PS1="\w:$ "&lt;/i&gt;&lt;/b&gt;&amp;nbsp; corrisponde al seguente esempio &lt;b&gt;&lt;i&gt;~:$&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;PS1="\t "&lt;/i&gt;&lt;/b&gt; corrisponde all' orario del sistema &lt;b&gt;&lt;i&gt;12:21:05&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;PS1="\h\w\t "&lt;/i&gt;&lt;/b&gt; corrisponde al seguente esempio&lt;b&gt;&lt;i&gt; fobia~12:21:05&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;questi sono i caratteri speciali usati con più frequenza :&lt;br /&gt;&lt;b&gt;\d&amp;nbsp;&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIGNIFICATO&amp;nbsp;&amp;nbsp; data&lt;br /&gt;&lt;b&gt;\h&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIGNIFICATO&amp;nbsp;&amp;nbsp; nome host&lt;br /&gt;&lt;b&gt;\s&amp;nbsp;&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIGNIFICATO&amp;nbsp;&amp;nbsp; nome della shell&lt;br /&gt;&lt;b&gt;\t&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIGNIFICATO&amp;nbsp;&amp;nbsp; ora corrente&lt;br /&gt;&lt;b&gt;\u&amp;nbsp;&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIGNIFICATO&amp;nbsp;&amp;nbsp; nome utente&lt;br /&gt;&lt;b&gt;\w&lt;/b&gt;&amp;nbsp; &amp;nbsp; SIGNIFICATO&amp;nbsp;&amp;nbsp; directory corrente&lt;br /&gt;&lt;b&gt;\[&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIGNIFICATO&amp;nbsp;&amp;nbsp; inizio caratteri non stampabili&lt;br /&gt;&lt;b&gt;\]&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SIGNIFICATO&amp;nbsp;&amp;nbsp; fine&amp;nbsp; caratteri non stampabili&lt;br /&gt;&lt;br /&gt;per la lista completa dei caratteri speciali, vi rimando alla&amp;nbsp; &lt;a href="http://tldp.org/HOWTO/Bash-Prompt-HOWTO/bash-prompt-escape-sequences.html"&gt;Bash Prompt HOWTO&lt;/a&gt; dove potrai approfondire, tra l' altro&amp;nbsp; come rendere &lt;a href="http://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html"&gt;colorato&lt;/a&gt;, e in alcuni casi di &lt;a href="http://www.gilesorr.com/bashprompt/prompts/mountain.html"&gt;cattivo gusto&lt;/a&gt; il tuo &lt;i&gt;prompt&lt;/i&gt; della &lt;i&gt;shell&lt;/i&gt;. Il mio consiglio e di avere un &lt;i&gt;prompt&lt;/i&gt; quanto più pulito e il meno appariscente possibile, ne trarranno beneficio&amp;nbsp; i vostri occhi.&lt;br /&gt;&lt;br /&gt;Ecco alcuni esempi di come colorare il tuo &lt;i&gt;prompt &lt;/i&gt;della &lt;i&gt;bash&lt;/i&gt;:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;PS1=”\033[1;31m\u@\h\w\$\033[0m “&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;la prima parte &lt;b&gt;&lt;i&gt;"\033[1;31m\u@\\h\w\$\033&lt;/i&gt;&lt;/b&gt; indica che è di &lt;i&gt;colore rosso&lt;/i&gt;, poi tutto quello che viene dopo &lt;b&gt;&lt;i&gt;[0m "&lt;/i&gt;&lt;/b&gt; diventa di &lt;i&gt;colore grigio&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;I colori per personalizzare il testo sono:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;0&amp;nbsp;&amp;nbsp; dark&lt;br /&gt;1&amp;nbsp;&amp;nbsp; brillante&lt;br /&gt;4&amp;nbsp;&amp;nbsp; sottolineato&lt;br /&gt;5&amp;nbsp;&amp;nbsp; lampeggiante&lt;br /&gt;7&amp;nbsp;&amp;nbsp; inverso&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;mentre la &lt;b&gt;m&lt;/b&gt; serve per la chiusura delle sequenze dei caratteri non stampabili.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;PS1=”\033[0;37m\033[1;41m\u@\h:\w$ “&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;in quest' altro esempio il testo è di &lt;i&gt;colore grigio&lt;/i&gt; &lt;b&gt;&lt;i&gt;”\033[0;37m&lt;/i&gt;&lt;/b&gt;, su &lt;i&gt;sfondo rosso&lt;/i&gt; &lt;b&gt;&lt;i&gt;\033[1;41m&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;Questi sono i codici dei colori:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;&lt;i&gt;Nero&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; 0;30&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Rosso&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0;31&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Verde&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0;32&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Marrone&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0;33&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Blu&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0;34&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Viola&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0;35&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Ciano&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0;36&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Grigio Chiaro&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; 0;37&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Grigio Scuro&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1;30&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Rosso&amp;nbsp; Chiaro&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1;31&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Verde&amp;nbsp; Chiaro&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1;32&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Giallo&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1;33 &amp;nbsp;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Blu&amp;nbsp;&amp;nbsp;&amp;nbsp; Chiaro&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1;34&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Verde&amp;nbsp; Chiaro&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1;35&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Ciano&amp;nbsp; Chiaro&amp;nbsp;&amp;nbsp;&amp;nbsp; 1;36&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Bianco&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1;37&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;E mia premura, PRIMO ricordarti di lasciare uno spazio tra l' ultimo carattere di escape&lt;b&gt;&lt;i&gt;(es: \t ")&lt;/i&gt;&lt;/b&gt; e le virgolette di chiusura in modo da evitare che il testo da digitare sia attaccato al &lt;i&gt;prompt&lt;/i&gt;&lt;b&gt;&lt;i&gt;(es: archie@fobia:~$echo).&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;E SECONDO che per rendere permanenti le modifiche che apportate al &lt;i&gt;prompt&lt;/i&gt;, ce bisogno che le scriviate all' interno di uno dei file sopra citati &lt;b&gt;&lt;i&gt;(.bash_profile o .bashrc)&lt;/i&gt;&lt;/b&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-1339909088411495180?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/1339909088411495180/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=1339909088411495180&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/1339909088411495180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/1339909088411495180'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2011/09/personalizzare-il-prompt-della-bash.html' title='Personalizzare il prompt della bash'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-X7kQXrrkRgI/Tnm8lrf-VZI/AAAAAAAAA2g/F3Nne1pztmg/s72-c/bash.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-2655097007178164625</id><published>2011-05-10T16:25:00.003+02:00</published><updated>2011-05-10T16:56:17.710+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Zero_day'/><category scheme='http://www.blogger.com/atom/ns#' term='Hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='Chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='Exploit'/><category scheme='http://www.blogger.com/atom/ns#' term='SicurezzaPC'/><category scheme='http://www.blogger.com/atom/ns#' term='Browser'/><title type='text'>Google Chrome Hackerato!</title><content type='html'>&lt;span style="font-style: italic; font-weight: bold;"&gt;Sotto il video&lt;/span&gt; messo a disposizione dai ricercatori di &lt;a href="http://www.vupen.com/english/"&gt;Vupen&lt;/a&gt; che hanno implementato lo &lt;span style="font-weight: bold;"&gt;zero-day&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://www.youtube.com/embed/c8cQ0yU89sk" allowfullscreen="" frameborder="0" height="349" width="560"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-2655097007178164625?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/2655097007178164625/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=2655097007178164625&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/2655097007178164625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/2655097007178164625'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2011/05/google-chrome-hackerato.html' title='Google Chrome Hackerato!'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://img.youtube.com/vi/c8cQ0yU89sk/default.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-4529257924271240648</id><published>2011-01-04T15:00:00.005+01:00</published><updated>2011-01-04T15:44:37.363+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='Programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='GCC'/><category scheme='http://www.blogger.com/atom/ns#' term='Assembly'/><category scheme='http://www.blogger.com/atom/ns#' term='Gnu/Linux'/><title type='text'>Compilazione Base di un Sorgente C</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kLl8btDOtr0/TSMrwg-nR0I/AAAAAAAAA1o/MI5Pm-RRy58/s1600/source_c.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 128px; height: 128px;" src="http://3.bp.blogspot.com/_kLl8btDOtr0/TSMrwg-nR0I/AAAAAAAAA1o/MI5Pm-RRy58/s320/source_c.png" alt="" id="BLOGGER_PHOTO_ID_5558334477591594818" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Compilare un Sorgente C&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Usando &lt;a href="http://it.wikipedia.org/wiki/GNU/LINUX"&gt;&lt;span style="font-style: italic;"&gt;Gnu/Linux&lt;/span&gt;&lt;/a&gt; prima o poi ci si ritrova inevitabilmente(&lt;span style="font-style: italic;"&gt;almeno per chi smanetta&lt;/span&gt;) ad avere a che fare con il &lt;a href="http://it.wikipedia.org/wiki/Linguaggio_C"&gt;&lt;span style="font-style: italic;"&gt;linguaggio C&lt;/span&gt;&lt;/a&gt;. Tra l'altro era mia intenzione con l' arrivo del nuovo anno di imparare il &lt;a href="http://it.wikipedia.org/wiki/Linguaggio_C"&gt;&lt;span style="font-style: italic;"&gt;linguaggio C&lt;/span&gt;&lt;/a&gt; quindi eccomi qua a scriverne.&lt;br /&gt;&lt;br /&gt;Vediamo come compilare un sorgente minimale in &lt;span style="font-weight: bold;"&gt;C&lt;/span&gt; che ci fornisce in output il famosissimo &lt;span style="font-style: italic; font-weight: bold;"&gt;Hello World&lt;/span&gt;, con cui hanno avuto a che fare(&lt;span style="font-style: italic;"&gt;almeno agli inizi&lt;/span&gt;) anche i &lt;span style="font-style: italic;"&gt;guru&lt;/span&gt; del &lt;span style="font-weight: bold;"&gt;C&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Apriamo il nostro&lt;span style="font-style: italic;"&gt; editor&lt;/span&gt; preferito e scriviamo il nostro sorgente che salveremo nel file dal nome &lt;span style="font-style: italic; font-weight: bold;"&gt;hello.c&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;#include &lt;/span&gt;&lt;stdio.h&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;main&lt;/span&gt; ()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; printf(&lt;span style="color: rgb(51, 102, 102);"&gt;"Hello World\n"&lt;/span&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/stdio.h&gt;&lt;/pre&gt;&lt;br /&gt;poi proseguiamo con la semplice compilazione con &lt;span style="font-style: italic; font-weight: bold;"&gt;gcc hello.c&lt;/span&gt;, che crea il file di nome &lt;span style="font-style: italic; font-weight: bold;"&gt;a.out&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[archie@fobia ~]$ gcc hello.c&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[archie@fobia ~]$ ls&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;a.out      hello.c   Modelli  Pubblici   Scrivania&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;Documenti  Immagini  Musica   Scaricati  Video&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;che possiamo eseguire con il comando di esecuzione &lt;span style="font-style: italic; font-weight: bold;"&gt;./a.out&lt;/span&gt;, che produce il nostro &lt;span style="font-style: italic; font-weight: bold;"&gt;Hello World&lt;/span&gt; a video&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;[archie@fobia ~]$ ./a.out&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;Hello World!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;mentre usiamo &lt;span style="font-style: italic; font-weight: bold;"&gt;l'opzione -c&lt;/span&gt; di &lt;span style="font-style: italic; font-weight: bold;"&gt;gcc&lt;/span&gt; per una &lt;span style="font-style: italic;"&gt;compilazione intermedia&lt;/span&gt; che crea il file oggetto &lt;span style="font-style: italic; font-weight: bold;"&gt;hello.o&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[archie@fobia ~]$ gcc -c hello.c&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[archie@fobia ~]$ ls&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;a.out      hello.c  Immagini  Musica    Scaricati  Video&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;Documenti  hello.o  Modelli   Pubblici  Scrivania&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;e ne visualizziamo il suo contenuto tramite il comando file&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[archie@fobia ~]$ file hello.o&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;hello.o: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;invece se vogliamo creare del codice &lt;span style="font-style: italic;"&gt;assembler&lt;/span&gt; dal nostro &lt;span style="font-style: italic;"&gt;sorgente c&lt;/span&gt;, &lt;span style="font-style: italic; font-weight: bold;"&gt;l'opzione -S&lt;/span&gt; crea il nostro &lt;span style="font-style: italic; font-weight: bold;"&gt;hello.s&lt;/span&gt; che e per l' appunto un file &lt;span style="font-style: italic; font-weight: bold;"&gt;assembler&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[archie@fobia ~]$ gcc -S hello.c&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[archie@fobia ~]$ ls&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;a.out      hello.c  hello.s   Modelli  Pubblici   Scrivania&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;Documenti  hello.o  Immagini  Musica   Scaricati  Video&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[archie@fobia ~]$ cat hello.s&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;.file    "hello.c"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;  .section    .rodata&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;.LC0:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;  .string    "Hello World!"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;  .text&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;.globl main&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;  .type    main, @function&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;main:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;  pushl    %ebp&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;  movl    %esp, %ebp&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;  andl    $-16, %esp&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;  subl    $16, %esp&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;  movl    $.LC0, (%esp)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;  call    puts&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;  leave&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;  ret&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;  .size    main, .-main&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;  .ident    "GCC: (GNU) 4.4.4 20100630 (Red Hat 4.4.4-10)"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;  .section    .note.GNU-stack,"",@progbits&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;per visualizzare i tempi della compilazione usiamo il comando &lt;span style="font-style: italic; font-weight: bold;"&gt;-time&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[archie@fobia ~]$ gcc -time  hello.c -o hello.c&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;# cc1 0.02 0.01&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;# as 0.00 0.01&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(102, 102, 102);"&gt;# collect2 0.04 0.01&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[archie@fobia ~]$&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;per un resocondo completo di &lt;a href="http://gcc.gnu.org/"&gt;&lt;span style="font-style: italic;"&gt;gcc&lt;/span&gt;&lt;/a&gt; supporto al &lt;span style="font-style: italic; font-weight: bold;"&gt;debug -g&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;linking&lt;/span&gt;&lt;a href="http://linux.die.net/man/1/ldd"&gt; ldd&lt;/a&gt;&lt;/span&gt;, &lt;span style="font-style: italic; font-weight: bold;"&gt;ottimizzazione&lt;/span&gt; del &lt;span style="font-style: italic;"&gt;codice&lt;/span&gt; &lt;span style="font-style: italic; font-weight: bold;"&gt;ON&lt;/span&gt;, e molto altro, consiglio di&lt;span style="font-style: italic;"&gt; &lt;span style="font-weight: bold;"&gt;scaricarvi&lt;/span&gt;&lt;/span&gt; la relativa &lt;span style="font-style: italic; font-weight: bold;"&gt;manualistica&lt;/span&gt; in &lt;a href="http://gcc.gnu.org/onlinedocs/"&gt;&lt;span style="font-style: italic;"&gt;uno dei suoi molteplici formati&lt;/span&gt;&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-4529257924271240648?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/4529257924271240648/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=4529257924271240648&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/4529257924271240648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/4529257924271240648'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2011/01/compilazione-base-di-un-sorgente-c.html' title='Compilazione Base di un Sorgente C'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kLl8btDOtr0/TSMrwg-nR0I/AAAAAAAAA1o/MI5Pm-RRy58/s72-c/source_c.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-734857920626679588</id><published>2011-01-03T20:29:00.003+01:00</published><updated>2011-01-04T14:30:41.747+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='Programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Verifica dell' OS con sys.platform</title><content type='html'>Identificare il &lt;span style="font-style: italic;"&gt;Sistema Operativo&lt;/span&gt; su cui gira &lt;span style="font-style: italic;"&gt;l' interprete python&lt;/span&gt;, tramite il metodo &lt;span style="font-style: italic; font-weight: bold;"&gt;platform&lt;/span&gt;  del modulo &lt;span style="font-style: italic; font-weight: bold;"&gt;sys&lt;/span&gt; &lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Ci sono  diversi modi di identificare su quale versione di &lt;span style="font-style: italic;"&gt;OS&lt;/span&gt; gira &lt;span style="font-style: italic;"&gt;l'interprete python&lt;/span&gt;:&lt;br /&gt;la versione "&lt;span style="font-style: italic;"&gt;classica&lt;/span&gt;" &lt;span style="font-style: italic; font-weight: bold;"&gt;sys.platform == "win32" or sys.platform == "dos"&lt;/span&gt;, oppure &lt;span style="font-style: italic; font-weight: bold;"&gt;sys.platform[:3] == "win"&lt;/span&gt;, o anche &lt;span style="font-style: italic; font-weight: bold;"&gt;sys.platform.startswith('win')&lt;/span&gt;&lt;br /&gt;oppure il nuovo metodo  aggiunto nella versione &lt;span style="font-style: italic;"&gt;python2.6&lt;/span&gt;, dove vediamo un esempio reale.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; import &lt;span style="color: rgb(51, 51, 255);"&gt;sys&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;sys&lt;/span&gt;.getwindowsversion()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;(&lt;span style="color: rgb(255, 0, 0);"&gt;5&lt;/span&gt;, &lt;span style="color: rgb(255, 0, 0);"&gt;1&lt;/span&gt;, &lt;span style="color: rgb(255, 0, 0);"&gt;2600&lt;/span&gt;, &lt;span style="color: rgb(255, 0, 0);"&gt;2&lt;/span&gt;, &lt;span style="color: rgb(153, 0, 0);"&gt;'Service Pack 3'&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;dove stampa una &lt;span style="font-style: italic; font-weight: bold;"&gt;tupla&lt;/span&gt; di &lt;span style="font-style: italic; font-weight: bold;"&gt;major&lt;/span&gt; e&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;minor built&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;la piattaforma&lt;span style="font-weight: bold;"&gt; 2&lt;/span&gt;&lt;/span&gt; (&lt;span style="font-style: italic;"&gt;nel mio pc xp&lt;/span&gt;) con &lt;span style="font-style: italic; font-weight: bold;"&gt;service pack 3&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;I codici completi di equivalenza sono:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;0&lt;/span&gt; &lt;span style="font-style: italic;"&gt;win32 o windows3.1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1&lt;/span&gt; &lt;span style="font-style: italic;"&gt;Windows95-Windows98-WindowsME&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2&lt;/span&gt; &lt;span style="font-style: italic;"&gt;WindowsNT-Windows2000-WindowsXP-x64&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3&lt;/span&gt; &lt;span style="font-style: italic;"&gt;Windows CE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;E il metodo "&lt;span style="font-style: italic;"&gt;classico&lt;/span&gt;" o il più usato dai programmatori &lt;span style="font-style: italic;"&gt;python&lt;/span&gt; ovvero &lt;span style="font-style: italic; font-weight: bold;"&gt;sys.platform&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;import &lt;span style="color: rgb(51, 51, 255);"&gt;sys&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(51, 102, 102);"&gt;if&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;sys&lt;/span&gt;.platform == &lt;span style="color: rgb(153, 0, 0);"&gt;"win32"&lt;/span&gt; &lt;span style="color: rgb(51, 102, 102);"&gt;or&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;sys&lt;/span&gt;.platform == &lt;span style="color: rgb(153, 0, 0);"&gt;"dos"&lt;/span&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;   print &lt;span style="color: rgb(153, 0, 0);"&gt;"sistema di casa Microsoft"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;   print &lt;span style="color: rgb(51, 51, 255);"&gt;sys&lt;/span&gt;.api_version&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(51, 102, 102);"&gt;elif&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;sys&lt;/span&gt;.platform == &lt;span style="color: rgb(153, 0, 0);"&gt;"linux1386"&lt;/span&gt; &lt;span style="color: rgb(51, 102, 102);"&gt;or&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;sys&lt;/span&gt;.platform == &lt;span style="color: rgb(153, 0, 0);"&gt;"linux2"&lt;/span&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;   print &lt;span style="color: rgb(153, 0, 0);"&gt;"sistema di tipo Gnu/Linux"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;   print &lt;span style="color: rgb(51, 51, 255);"&gt;sys&lt;/span&gt;.api_version&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(51, 102, 102);"&gt;elif&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;sys&lt;/span&gt;.platform == &lt;span style="color: rgb(153, 0, 0);"&gt;"bsd"&lt;/span&gt; &lt;span style="color: rgb(51, 102, 102);"&gt;or&lt;/span&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;sys&lt;/span&gt;.platform == &lt;span style="color: rgb(153, 0, 0);"&gt;"darwin"&lt;/span&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;   print &lt;span style="color: rgb(153, 0, 0);"&gt;"sistema di tipo bsd"&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;   print &lt;span style="color: rgb(51, 51, 255);"&gt;sys&lt;/span&gt;.api_version&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(51, 102, 102);"&gt;else&lt;/span&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;   print &lt;span style="color: rgb(153, 0, 0);"&gt;" |sistema non riconosciuto!| "&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;[output]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;sistema di casa Microsoft&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;1013&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;il metodo platform contiene  altri identificatori di piattaforma quali:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;cygwin, sunos5, palmOS3, os2, riscos, atheos&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Per  approfondire l'argomento non resta che spulciare la meravigliosa  &lt;a href="http://docs.python.org/library/"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Library Reference&lt;/span&gt;&lt;/a&gt; e il relativo  modulo &lt;a href="http://docs.python.org/library/sys.html"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;sys&lt;/span&gt;&lt;/a&gt; con &lt;a href="http://docs.python.org/library/sys.html#sys.platform"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;platform&lt;/span&gt;&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-734857920626679588?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/734857920626679588/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=734857920626679588&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/734857920626679588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/734857920626679588'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2011/01/verifica-dell-os-con-sysplatform.html' title='Verifica dell&apos; OS con sys.platform'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-935190691975014323</id><published>2010-11-02T11:37:00.007+01:00</published><updated>2010-12-26T16:31:44.874+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows-XP'/><category scheme='http://www.blogger.com/atom/ns#' term='GTK+'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows-OS'/><category scheme='http://www.blogger.com/atom/ns#' term='Pygtk'/><category scheme='http://www.blogger.com/atom/ns#' term='Glade'/><title type='text'>Installare le GTK+ su Windows</title><content type='html'>Perché dovremmo installare le &lt;a href="http://www.gtk.org/"&gt;&lt;span style="font-style: italic;"&gt;gtk+&lt;/span&gt;&lt;/a&gt; come librerie grafiche per le nostre applicazioni&lt;span style="font-style: italic;"&gt; Windows&lt;/span&gt;?&lt;br /&gt;Provo a spiegare in due risposte quelle che sono le mie motivazioni! Particolare a parte che amo &lt;a href="http://www.gnome.org/"&gt;&lt;span style="font-style: italic;"&gt;Gnome&lt;/span&gt;&lt;/a&gt;(&lt;a href="http://it.wikipedia.org/wiki/Desktop_Environment"&gt;&lt;span style="font-style: italic;"&gt;DE&lt;/span&gt;&lt;/a&gt;)che e completamente scritto con il toolkit &lt;a href="http://www.gtk.org/index.php"&gt;GTK+&lt;/a&gt; ed è &lt;span style="font-style: italic;"&gt;multi piattaforma&lt;/span&gt;. Una grande spinta(&lt;span style="font-style: italic;"&gt;a mio parere&lt;/span&gt;) la dà la licenza &lt;a href="http://it.wikipedia.org/wiki/LGPL"&gt;&lt;span style="font-style: italic;"&gt;LGPL&lt;/span&gt;&lt;/a&gt; che permette allo sviluppatore di poter rilasciare le sue applicazioni, oltre che con&lt;span style="font-style: italic;"&gt; &lt;a href="http://www.gnu.org/copyleft/lesser.html"&gt;&lt;/a&gt;&lt;a href="http://www.gnu.org/licenses/licenses.html"&gt;licenza free&lt;/a&gt;&lt;/span&gt;, anche con&lt;a href="http://www.gnu.org/licenses/lgpl.html"&gt; &lt;span style="font-style: italic;"&gt; licenza commerciale&lt;/span&gt;&lt;/a&gt; il che non e poco.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.gtk.org/screenshots.html"&gt;&lt;span style="font-style: italic;"&gt;Il toolkit GTK+&lt;/span&gt;&lt;/a&gt; oltre al linguaggio &lt;a href="http://it.wikipedia.org/wiki/Linguaggio_C"&gt;&lt;span style="font-style: italic;"&gt;C&lt;/span&gt;&lt;/a&gt; con cui e completamente scritto &lt;a href="http://www.gtk.org/language-bindings.html"&gt;&lt;span style="font-style: italic;"&gt;ha binding&lt;/span&gt;&lt;/a&gt; per molti linguaggi quali il &lt;a href="http://it.wikipedia.org/wiki/C%2B%2B"&gt;&lt;span style="font-style: italic;"&gt;C++&lt;/span&gt;&lt;/a&gt; con&lt;a href="http://www.gtkmm.org/en/"&gt; &lt;span style="font-style: italic;"&gt;GTKmm&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://www.python.org/"&gt;&lt;span style="font-style: italic;"&gt;Python&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://live.gnome.org/Vala"&gt;&lt;span style="font-style: italic;"&gt;Vala&lt;/span&gt;&lt;/a&gt;,&lt;a href="http://www.perl.org/"&gt; &lt;span style="font-style: italic;"&gt;Perl&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://www.ruby-lang.org/en/"&gt;&lt;span style="font-style: italic;"&gt;Ruby&lt;/span&gt;&lt;/a&gt; e molti altri.&lt;br /&gt;Io vi consiglio quello per &lt;span style="font-style: italic; font-weight: bold;"&gt;Python&lt;/span&gt;, dovrete scaricare tre&lt;span style="font-style: italic; font-weight: bold;"&gt; .exe&lt;/span&gt; &lt;a href="http://www.pygtk.org/"&gt;&lt;span style="font-style: italic;"&gt; Pygtk&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://ftp.gnome.org/pub/GNOME/binaries/win32/pygobject/"&gt;&lt;span style="font-style: italic;"&gt;PyGobject&lt;/span&gt;&lt;/a&gt;, e &lt;a href="http://ftp.gnome.org/pub/GNOME/binaries/win32/pycairo/"&gt;&lt;span style="font-style: italic;"&gt;Pycairo&lt;/span&gt;&lt;/a&gt;, se volete anche un costruttore d' interfacce grafico scaricate anche &lt;a href="http://ftp.gnome.org/pub/GNOME/binaries/win32/glade3/"&gt;&lt;span style="font-style: italic;"&gt;Glade3&lt;/span&gt;&lt;/a&gt; vi semplifica il lavoro di parecchio.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Installare le&lt;span style="font-style: italic; font-weight: bold;"&gt; GTK+&lt;/span&gt; su &lt;span style="font-style: italic;"&gt;Windows&lt;/span&gt;  e di una facilità disarmante, ma dovrete fare il &lt;span style="font-style: italic;"&gt;login da  amministratore.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Ecco come fare:&lt;/span&gt; puntiamo il nostro browser su &lt;a href="http://www.gtk.org/"&gt;&lt;span style="font-style: italic;"&gt;http://www.gtk.org/&lt;/span&gt;&lt;/a&gt; e consigliato scaricare il pacchetto &lt;span style="font-style: italic; font-weight: bold;"&gt;tar.gz&lt;/span&gt;(&lt;span style="font-style: italic;"&gt;in assenza di un comodo pacchetto .exe&lt;/span&gt;) ufficiale che reca la dicitura &lt;span style="font-style: italic; font-weight: bold;"&gt;All-in-one bundles&lt;/span&gt; versione &lt;a href="http://www.gtk.org/download-windows.html"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;2.22&lt;/span&gt;&lt;/a&gt; salviamolo sul nostro &lt;span style="font-style: italic;"&gt;desktop&lt;/span&gt;. Poi tramite &lt;span style="font-style: italic;"&gt;risorse del compiuter&lt;/span&gt; andiamo in&lt;span style="font-style: italic; font-weight: bold;"&gt; C:\&lt;/span&gt; dove  creeremo le cartelle &lt;span style="font-style: italic; font-weight: bold;"&gt;opt\gtk&lt;/span&gt; per contenere tutto il   pacchetto che andremo a scompattare con un programma come &lt;a href="http://www.7-zip.org/"&gt;&lt;span style="font-style: italic;"&gt;7zip&lt;/span&gt;&lt;/a&gt; in &lt;span style="font-style: italic; font-weight: bold;"&gt;\gtk.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Poi settiamo la &lt;span style="font-style: italic;"&gt;variabile d'ambiente&lt;/span&gt; da &lt;span style="font-style: italic;"&gt;Pannello di controllo&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;-&gt;&lt;/span&gt; &lt;span style="font-style: italic;"&gt;Prestazioni e manutenzione&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;-&gt;&lt;/span&gt; &lt;span style="font-style: italic;"&gt;Sistema&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;-&gt;&lt;/span&gt; premiamo la &lt;span style="font-style: italic;"&gt;tab Avanzate&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;-&gt;&lt;/span&gt; &lt;span style="font-style: italic;"&gt;Variabili d'ambiente&lt;/span&gt; e dalla maschera che appare premiamo &lt;span style="font-style: italic;"&gt;modifica&lt;/span&gt; e aggiungiamo il percorso alle &lt;span style="font-style: italic; font-weight: bold;"&gt;gtk ;C:\opt\gtk\bin&lt;/span&gt; come da&lt;span style="font-style: italic;"&gt; immagine&lt;/span&gt; e salvate come richiesto &lt;span style="font-style: italic;"&gt;dalle varie maschere&lt;/span&gt;. Tutto qui!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kLl8btDOtr0/TM_ufkJ5hzI/AAAAAAAAA1E/zRY0RfNIAi0/s1600/img-post2.bmp"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 273px; height: 320px;" src="http://1.bp.blogspot.com/_kLl8btDOtr0/TM_ufkJ5hzI/AAAAAAAAA1E/zRY0RfNIAi0/s320/img-post2.bmp" alt="" id="BLOGGER_PHOTO_ID_5534904693110179634" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Credo che come me, la maggior parte di voi &lt;span style="font-style: italic;"&gt;voglia il tema nativo di windows&lt;/span&gt;, quindi create un nuovo file vuoto con nome &lt;span style="font-style: italic; font-weight: bold;"&gt;gtkrc&lt;/span&gt; e salvatelo nella cartella &lt;span style="font-style: italic; font-weight: bold;"&gt;\etc\gtk-2.0&lt;/span&gt; dove al suo interno aggiungiamo il seguente testo:&lt;span style="font-style: italic; font-weight: bold;"&gt;gtk-theme-name = "MS-Windows"&lt;/span&gt; e &lt;span style="font-style: italic;"&gt;salviamo&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Per la prova del&lt;span style="font-weight: bold;"&gt; 9&lt;/span&gt; ovvero se tutto e andato a posto&lt;/span&gt; aprite il &lt;span style="font-style: italic;"&gt;Prompt dei comandi&lt;/span&gt; e scrivete &lt;span style="font-style: italic; font-weight: bold;"&gt;gtk-demo.exe&lt;/span&gt; vi dovrebbe apparire &lt;span style="font-style: italic;"&gt;la demo dimostrativa come da immagine&lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;/span&gt; altrimenti&lt;br /&gt;verificate bene i passaggi e riprovate.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kLl8btDOtr0/TM_vISs0CDI/AAAAAAAAA1M/G2O5HSlkrmQ/s1600/demo-gtk.bmp"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 200px;" src="http://3.bp.blogspot.com/_kLl8btDOtr0/TM_vISs0CDI/AAAAAAAAA1M/G2O5HSlkrmQ/s320/demo-gtk.bmp" alt="" id="BLOGGER_PHOTO_ID_5534905392799418418" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 153, 0);"&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;nb&lt;/span&gt;.&lt;/span&gt;&lt;span style="font-family:courier new;"&gt; se avete problemi potete contattarmi, nel mio piccolo cerchero di aiutarvi.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-935190691975014323?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/935190691975014323/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=935190691975014323&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/935190691975014323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/935190691975014323'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2010/11/installare-le-gtk-su-windows.html' title='Installare le GTK+ su Windows'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_kLl8btDOtr0/TM_ufkJ5hzI/AAAAAAAAA1E/zRY0RfNIAi0/s72-c/img-post2.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-2317580107931951533</id><published>2010-10-29T12:29:00.007+02:00</published><updated>2010-12-26T16:33:22.467+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='Sidejacking'/><category scheme='http://www.blogger.com/atom/ns#' term='SicurezzaWeb'/><title type='text'>La Privacy su Facebook? Al Momento Non Esiste!</title><content type='html'>&lt;a style="" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kLl8btDOtr0/TMqxDaBYe1I/AAAAAAAAA08/5J2aFPS9Ulc/s1600/three.png.scaled.500.jpg"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 194px;" src="http://2.bp.blogspot.com/_kLl8btDOtr0/TMqxDaBYe1I/AAAAAAAAA08/5J2aFPS9Ulc/s320/three.png.scaled.500.jpg" alt="" id="BLOGGER_PHOTO_ID_5533429764260920146" border="0" /&gt;&lt;/a&gt;Dopo l' ennesimo cambio di&lt;a href="http://it.wikipedia.org/wiki/Policy_%28informatica%29"&gt; &lt;span style="font-style: italic;"&gt;Policy&lt;/span&gt;&lt;/a&gt; sulla&lt;a href="http://it.wikipedia.org/wiki/Privacy"&gt; &lt;span style="font-style: italic;"&gt;privacy&lt;/span&gt;&lt;/a&gt;, gli utenti di &lt;a href="http://www.facebook.com/"&gt;Facebook&lt;/a&gt; che in teoria dovrebbero  "&lt;span style="font-weight: bold; font-style: italic;"&gt;sentirsi&lt;/span&gt;" almeno un pochino  più tranquilli&lt;span style="font-style: italic; font-weight: bold;"&gt; hanno invece un bel pò di  preoccupazioni in più.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;L' ultimo "&lt;a href="http://codebutler.com/firesheep"&gt;&lt;span style="font-style: italic;"&gt;giochino&lt;/span&gt;&lt;/a&gt;" per &lt;span style="font-style: italic;"&gt;spioni&lt;/span&gt;, e quanti hanno interessi nel rovistare nella vostra vita virtuale(&lt;span style="font-style: italic;"&gt;che poi tanto virtuale non è&lt;/span&gt;) su &lt;span style="font-style: italic;"&gt;facebook&lt;/span&gt; si chiama &lt;a style="font-style: italic;" href="http://codebutler.com/firesheep"&gt;Firesheep&lt;/a&gt;. &lt;a href="http://codebutler.com/firesheep"&gt;&lt;span style="font-style: italic;"&gt;Firesheep&lt;/span&gt;&lt;/a&gt; e una delle &lt;a href="https://addons.mozilla.org/it/firefox/"&gt;&lt;span style="font-style: italic;"&gt;tante estensioni&lt;/span&gt;&lt;/a&gt; che rendono grande il browser &lt;a href="http://www.mozilla.com/it/"&gt;&lt;span style="font-style: italic;"&gt;Firefox&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Un ficcanaso con l' uso di  firesheep, dopo avere installato &lt;a href="http://www.winpcap.org/"&gt;&lt;span style="font-style: italic;"&gt;Winpcap&lt;/span&gt;&lt;/a&gt; per dirottare la connessione http(&lt;span style="font-style: italic; font-weight: bold;"&gt;via rete WI-FI&lt;/span&gt;) riesce a impadronirsi   del vostro account &lt;span style="font-style: italic;"&gt;facebook&lt;/span&gt; con pochi semplici clic.&lt;br /&gt;&lt;br /&gt;Voglio ricordare a quanti credono di essere in una botte di ferro usando applicazioni web che &lt;span style="font-style: italic; font-weight: bold;"&gt;il web stesso è intrisecamente insicuro. &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-2317580107931951533?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/2317580107931951533/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=2317580107931951533&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/2317580107931951533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/2317580107931951533'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2010/10/la-privacy-su-facebook-al-momento-non.html' title='La Privacy su Facebook? Al Momento Non Esiste!'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kLl8btDOtr0/TMqxDaBYe1I/AAAAAAAAA08/5J2aFPS9Ulc/s72-c/three.png.scaled.500.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-1558261163432164491</id><published>2010-09-15T00:40:00.007+02:00</published><updated>2011-01-04T14:48:49.666+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PIL'/><category scheme='http://www.blogger.com/atom/ns#' term='Programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>PIL e il Modulo Image</title><content type='html'>Se intendete svolgere elaborazione grafica con il linguaggio&lt;a href="http://www.python.org/"&gt; Python&lt;/a&gt;, il modo  professionale di&lt;br /&gt;farlo e con la libreria grafica &lt;a href="http://www.pythonware.com/products/pil/"&gt;PIL&lt;/a&gt; di &lt;span style="font-style: italic; font-weight: bold;"&gt;Fredrik Lundh&lt;/span&gt;(&lt;a href="http://www.pythonware.com/"&gt;&lt;span style="font-style: italic;"&gt;www.pythonware.com&lt;/span&gt;&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;La libreria &lt;span style="font-style: italic; font-weight: bold;"&gt;pil&lt;/span&gt; e in grado di lavorare con file &lt;span style="font-weight: bold;"&gt;RGB, RGBA, TIFF, PDF, BMP, JPEG, JPG, GIF&lt;/span&gt;, creazione di immagini animate &lt;span style="font-weight: bold;"&gt;FLI-FLC&lt;/span&gt;,  gestire file di tipo &lt;span style="font-style: italic; font-weight: bold;"&gt;PostScript&lt;/span&gt;, e tanto altro. Per una lettura esaustiva, non vi resta che puntare alla &lt;a href="http://www.pythonware.com/library/pil/handbook/index.htm"&gt;corposa documentazione&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Ecco degli esempi con il modulo Image della libreria PIL&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1)&lt;/span&gt;Creare una bitmap ex novo con del testo.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2)&lt;/span&gt;Scrivere o disegnare su di una immagine già esistente.&lt;br /&gt;Nello specifico delle semplici linee.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3)&lt;/span&gt;Creare una Thumbnail da una immagine esistente.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; import &lt;span style="color: rgb(51, 51, 255);"&gt;Image&lt;/span&gt;                        # importo i moduli necessari&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; import &lt;span style="color: rgb(51, 51, 255);"&gt;ImageDraw&lt;/span&gt;                   &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; output = &lt;span style="color: rgb(153, 0, 0);"&gt;'Python is Magic World'&lt;/span&gt;    # il testo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; size = (&lt;span style="color: rgb(255, 0, 0);"&gt;200&lt;/span&gt;, &lt;span style="color: rgb(255, 0, 0);"&gt;70&lt;/span&gt;)                    # setto la grandezza della bitmap&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; color = (&lt;span style="color: rgb(255, 0, 0);"&gt;0&lt;/span&gt;, &lt;span style="color: rgb(255, 0, 0);"&gt;128&lt;/span&gt;, &lt;span style="color: rgb(255, 0, 0);"&gt;0&lt;/span&gt;)                 # setto il colore verde in valore RGB&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; img = &lt;span style="color: rgb(51, 51, 255);"&gt;Image&lt;/span&gt;.new(&lt;span style="color: rgb(153, 0, 0);"&gt;'RGB'&lt;/span&gt;, size, color) # setto la grandezza e il colore alla bitmap&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; imgDrawer = &lt;span style="color: rgb(51, 51, 255);"&gt;ImageDraw&lt;/span&gt;.Draw(img)     # creo la bitmap&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; imgDrawer.text((&lt;span style="color: rgb(255, 0, 0);"&gt;8&lt;/span&gt;, &lt;span style="color: rgb(255, 0, 0);"&gt;22&lt;/span&gt;), output)     # creo la grandezza del testo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; img.show()                          # stampa la bitmap&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;la prima bitmap&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kLl8btDOtr0/TJAAA59P4FI/AAAAAAAAAz8/yfOAkP0ofCU/s1600/tmpae2kcp.BMP"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 200px; height: 70px;" src="http://1.bp.blogspot.com/_kLl8btDOtr0/TJAAA59P4FI/AAAAAAAAAz8/yfOAkP0ofCU/s320/tmpae2kcp.BMP" alt="" id="BLOGGER_PHOTO_ID_5516909559086571602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; import &lt;span style="color: rgb(51, 51, 255);"&gt;Image&lt;/span&gt;                     # qui come sopra inutile replicarmi &lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;;-)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; import &lt;span style="color: rgb(51, 51, 255);"&gt;ImageDraw&lt;/span&gt;                 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; output = &lt;span style="color: rgb(153, 0, 0);"&gt;'Python is Magic World'&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; size = (&lt;span style="color: rgb(255, 0, 0);"&gt;300&lt;/span&gt;, &lt;span style="color: rgb(255, 0, 0);"&gt;100&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; color = (&lt;span style="color: rgb(255, 0, 0);"&gt;0&lt;/span&gt;, &lt;span style="color: rgb(255, 0, 0);"&gt;128&lt;/span&gt;, &lt;span style="color: rgb(255, 0, 0);"&gt;0&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; img = &lt;span style="color: rgb(51, 51, 255);"&gt;Image&lt;/span&gt;.new(&lt;span style="color: rgb(153, 0, 0);"&gt;'RGB'&lt;/span&gt;, size, color)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; imgDrawer = &lt;span style="color: rgb(51, 51, 255);"&gt;ImageDraw&lt;/span&gt;.Draw(img)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; imgDrawer.text((&lt;span style="color: rgb(255, 0, 0);"&gt;12&lt;/span&gt;, &lt;span style="color: rgb(255, 0, 0);"&gt;28&lt;/span&gt;), output)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; import &lt;span style="color: rgb(51, 51, 255);"&gt;random&lt;/span&gt;                    # importo il modulo random per poter disegnare le linee in modo casuale&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; lines = []                       # qui crea una serie di punti in modo casuale per le linee&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;for&lt;/span&gt; i &lt;span style="color: rgb(51, 51, 255);"&gt;in&lt;/span&gt; xrange(&lt;span style="color: rgb(255, 0, 0);"&gt;5&lt;/span&gt;):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...     lines.append((&lt;span style="color: rgb(51, 51, 255);"&gt;random&lt;/span&gt;.randrange(img.size[&lt;span style="color: rgb(255, 0, 0);"&gt;0&lt;/span&gt;]), # il metodo randrange  del modulo random assegna in modo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...             &lt;span style="color: rgb(51, 51, 255);"&gt;random&lt;/span&gt;.randrange(img.size[&lt;span style="color: rgb(255, 0, 0);"&gt;1&lt;/span&gt;])))      # casuale i punti delle coordinate x, y&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...            &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; imgDrawer.line(lines)            # disegna le linee              &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; img.show()                       # stampa la bitmap &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;la seconda bitmap&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kLl8btDOtr0/TJAAVLevuwI/AAAAAAAAA0E/wd7ooYdY6Og/s1600/tmpahgp6a.BMP"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 300px; height: 100px;" src="http://2.bp.blogspot.com/_kLl8btDOtr0/TJAAVLevuwI/AAAAAAAAA0E/wd7ooYdY6Og/s320/tmpahgp6a.BMP" alt="" id="BLOGGER_PHOTO_ID_5516909907387857666" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Questo esempio e un pochino diverso dagli esempi precedenti.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Mentre nei due esempi precedenti creavamo &lt;span style="font-style: italic; font-weight: bold;"&gt;ex novo&lt;/span&gt; la &lt;span style="font-style: italic; font-weight: bold;"&gt;bitmap&lt;/span&gt;, in questo esempio invece usiamo una immagine già esistente, nello specifico una immagine &lt;span style="font-style: italic; font-weight: bold;"&gt;.png&lt;/span&gt; che ridimensioneremo con il &lt;span style="font-style: italic; font-weight: bold;"&gt;metodo Thumbnail&lt;/span&gt;, sempre del &lt;span style="font-style: italic; font-weight: bold;"&gt;modulo Image&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; import &lt;span style="color: rgb(51, 51, 255);"&gt;Image&lt;/span&gt;                      # importo il modulo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; image_path = r&lt;span style="color: rgb(153, 0, 0);"&gt;"C:\test\snake.png"&lt;/span&gt; # assegno l' immagine alla variabile tramite raw string (r"path\files")&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; image = &lt;span style="color: rgb(51, 51, 255);"&gt;Image&lt;/span&gt;.open(image_path)    # apro l'immagine&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; width, height = (&lt;span style="color: rgb(255, 0, 0);"&gt;150&lt;/span&gt;, &lt;span style="color: rgb(255, 0, 0);"&gt;110&lt;/span&gt;)        # ridimensiono l'immagine l' originale era 300x350px&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; size = (width, height)            # assegno grandezza e altezza&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; new_image_thumbnail = r&lt;span style="color: rgb(153, 0, 0);"&gt;"C:\test\snake_small.png"&lt;/span&gt; # che sia pitone grande o  pitone piccolo l' importante che pitone è&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; image.thumbnail(size, &lt;span style="color: rgb(51, 51, 255);"&gt;Image&lt;/span&gt;.ANTIALIAS) # creo la thumbnail vera e propria con antialias ma potevamo anche bicubic bilinear ecc&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; image.save(new_image_thumbnail)        # salvo la nuova immagine "thumbnail"&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;l'immagine originale&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kLl8btDOtr0/TJAAoyRwkaI/AAAAAAAAA0M/5eCcbyCkMTI/s1600/snake.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 270px; height: 320px;" src="http://2.bp.blogspot.com/_kLl8btDOtr0/TJAAoyRwkaI/AAAAAAAAA0M/5eCcbyCkMTI/s320/snake.png" alt="" id="BLOGGER_PHOTO_ID_5516910244219883938" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;e l'immagine thumbnail ridimensionata&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kLl8btDOtr0/TJAA5LyclDI/AAAAAAAAA0U/CCNOkQCgLEg/s1600/snake_small.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 93px; height: 110px;" src="http://3.bp.blogspot.com/_kLl8btDOtr0/TJAA5LyclDI/AAAAAAAAA0U/CCNOkQCgLEg/s320/snake_small.png" alt="" id="BLOGGER_PHOTO_ID_5516910525945779250" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(255, 102, 0);"&gt;&lt;br /&gt;&lt;br /&gt;ps.&lt;/span&gt; credo che con del codice &lt;span style="font-style: italic;"&gt;commentato&lt;/span&gt; in questa maniera(&lt;span style="font-style: italic;"&gt;oserei dire quasi in modo elementare&lt;/span&gt;) sia facile per molti capire come funziona questo&lt;span style="font-style: italic;"&gt; meraviglioso linguaggio&lt;/span&gt; che è &lt;a href="http://www.python.org/"&gt;python&lt;/a&gt;, e il modo di usare questa potente libreria per le immagini&lt;br /&gt;che e &lt;span style="font-weight: bold;"&gt;PIL&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-1558261163432164491?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/1558261163432164491/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=1558261163432164491&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/1558261163432164491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/1558261163432164491'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2010/09/pil-e-il-modulo-image.html' title='PIL e il Modulo Image'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_kLl8btDOtr0/TJAAA59P4FI/AAAAAAAAAz8/yfOAkP0ofCU/s72-c/tmpae2kcp.BMP' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-7056323517014248002</id><published>2010-07-26T16:16:00.005+02:00</published><updated>2010-07-26T18:07:42.184+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sistema'/><category scheme='http://www.blogger.com/atom/ns#' term='Programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='Gnu/Linux'/><title type='text'>Python Piccoli Tips  di Sistema Gnu/Linux</title><content type='html'>Colpa del &lt;span style="font-style: italic; font-weight: bold;"&gt;grande caldo&lt;/span&gt; che non si sopporta dalle mie parti, e il rischio concreto di friggere qualche componente &lt;span style="font-style: italic;"&gt;&lt;/span&gt;hardware(&lt;span style="font-style: italic;"&gt;oltre al bagno di sudore che si fà inevitabilmente stando faccia a faccia con un monitor&lt;/span&gt;), ho deciso di mettere in ferie &lt;span style="font-style: italic; font-weight: bold;"&gt;Other to Think&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Anche se ad essere sincero fino in fondo, ne approfitto, nel modo più sereno e rilassato possibile, per fare delle scelte(&lt;span style="font-style: italic;"&gt;anche importanti&lt;/span&gt;) riguardanti il  futuro  della mia &lt;span style="font-style: italic;"&gt;vita terrestre&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Ci rivedremo prima di &lt;span style="font-style: italic; font-weight: bold;"&gt;settembre&lt;/span&gt; con qualche interessante novità  &lt;span style="font-style: italic; font-weight: bold;"&gt;Buone Vacanze a Tutti&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Ritornando ai nostri Tips, sono piccole chiamate di moduli per l' utente locale&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;mediante il modulo &lt;a href="http://docs.python.org/release/2.6.5/library/pwd.html"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;pwd&lt;/span&gt;&lt;/a&gt; possiamo  tramite il parametro &lt;span style="font-style: italic; font-weight: bold;"&gt;name&lt;/span&gt; in &lt;span style="font-style: italic; font-weight: bold;"&gt;getpwnam&lt;/span&gt; recuperare delle voci dal database delle password  dell' &lt;span style="font-style: italic;"&gt;utente&lt;/span&gt; che sono : &lt;span style="font-style: italic; font-weight: bold;"&gt;nome, password, ID utente-gruppo, nome completo, home-directory e la shell&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;In [5]: &lt;span style="color: rgb(51, 51, 255);"&gt;import&lt;/span&gt; pwd&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;In [6]: pwd.getpwnam('archie')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Out[6]&lt;/span&gt;: pwd.struct_passwd(pw_name='archie', pw_passwd='x', pw_uid=500, pw_gid=500, pw_gecos='archie dog', pw_dir='/home/archie', pw_shell='/bin/bash')&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre style="font-style: italic; font-weight: bold;"&gt;&lt;br /&gt;In [8]: pwd.getpwuid(500)&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Out[8]&lt;/span&gt;: pwd.struct_passwd(pw_name='archie', pw_passwd='x', pw_uid=500, pw_gid=500, pw_gecos='archie dog', pw_dir='/home/archie', pw_shell='/bin/bash')&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;il modulo &lt;a href="http://docs.python.org/release/2.6.5/library/resource.html"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;resource&lt;/span&gt;&lt;/a&gt; invece e utile per leggere &lt;span style="font-style: italic;"&gt;l'utilizzo&lt;/span&gt; delle risorse dei processi riguardo l' &lt;span style="font-style: italic;"&gt;utente&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;qui vediamo &lt;span style="font-style: italic; font-weight: bold;"&gt;resource&lt;/span&gt; con il parametro &lt;span style="font-style: italic; font-weight: bold;"&gt;RUSAGE_SELF&lt;/span&gt;, che richiede per l' &lt;span style="font-style: italic;"&gt;utente&lt;/span&gt; informazioni relative al solo &lt;span style="font-style: italic;"&gt;processo corrente&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;In [9]: &lt;span style="color: rgb(51, 51, 255);"&gt;import&lt;/span&gt; resource&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;In [11]: resource.getrusage(resource.RUSAGE_SELF)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Out[11]&lt;/span&gt;: resource.struct_rusage(ru_utime=0.45393, ru_stime=0.13397899999999999, ru_maxrss=12604, ru_ixrss=0, ru_idrss=0, ru_isrss=0, ru_minflt=3564, ru_majflt=31, ru_nswap=0, ru_inblock=13576, ru_oublock=184, ru_msgsnd=0, ru_msgrcv=0, ru_nsignals=0, ru_nvcsw=710, ru_nivcsw=50)&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;mentre quest' altro parametro &lt;span style="font-style: italic; font-weight: bold;"&gt; RUSAGE_CHILDREN&lt;/span&gt; richiede informazioni sui processi figli dell' &lt;span style="font-style: italic;"&gt;utente&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;In [13]: resource.getrusage(resource.RUSAGE_CHILDREN)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Out[13]&lt;/span&gt;: resource.struct_rusage(ru_utime=0.0, ru_stime=0.0, ru_maxrss=0, ru_ixrss=0, ru_idrss=0, ru_isrss=0, ru_minflt=0, ru_majflt=0, ru_nswap=0, ru_inblock=0, ru_oublock=0, ru_msgsnd=0, ru_msgrcv=0, ru_nsignals=0, ru_nvcsw=0, ru_nivcsw=0)&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;il modulo &lt;a href="http://docs.python.org/release/2.6.5/library/grp.html"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;grp&lt;/span&gt;&lt;/a&gt; è simile al modulo &lt;span style="font-style: italic; font-weight: bold;"&gt;pwd&lt;/span&gt;, la differenza e quella di restituire le voci del &lt;span style="font-style: italic;"&gt;database dei gruppi&lt;/span&gt;. Si possono usare come parametri &lt;span style="font-style: italic; font-weight: bold;"&gt;name&lt;/span&gt; e &lt;span style="font-style: italic; font-weight: bold;"&gt;gid&lt;/span&gt;, che restituiscono dati sui &lt;span style="font-style: italic; font-weight: bold;"&gt;gruppi &lt;/span&gt;di appartenenza e dati riguardanti l' &lt;span style="font-style: italic; font-weight: bold;"&gt;ID&lt;/span&gt; dei gruppi.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;In [22]: &lt;span style="color: rgb(51, 51, 255);"&gt;import&lt;/span&gt; grp&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;In [24]: grp.getgrall()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Out[24]&lt;/span&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;[grp.struct_group(gr_name='root', gr_passwd='x', gr_gid=0, gr_mem=['root']),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='bin', gr_passwd='x', gr_gid=1, gr_mem=['root', 'bin', 'daemon']),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='daemon', gr_passwd='x', gr_gid=2, gr_mem=['root', 'bin', 'daemon']),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='sys', gr_passwd='x', gr_gid=3, gr_mem=['root', 'bin', 'adm']),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='adm', gr_passwd='x', gr_gid=4, gr_mem=['root', 'adm', 'daemon']),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='tty', gr_passwd='x', gr_gid=5, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='disk', gr_passwd='x', gr_gid=6, gr_mem=['root']),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='lp', gr_passwd='x', gr_gid=7, gr_mem=['daemon', 'lp']),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='mem', gr_passwd='x', gr_gid=8, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='kmem', gr_passwd='x', gr_gid=9, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='wheel', gr_passwd='x', gr_gid=10, gr_mem=['root']),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='mail', gr_passwd='x', gr_gid=12, gr_mem=['mail']),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='uucp', gr_passwd='x', gr_gid=14, gr_mem=['uucp']),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='man', gr_passwd='x', gr_gid=15, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='games', gr_passwd='x', gr_gid=20, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='gopher', gr_passwd='x', gr_gid=30, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='video', gr_passwd='x', gr_gid=39, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='dip', gr_passwd='x', gr_gid=40, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='ftp', gr_passwd='x', gr_gid=50, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='lock', gr_passwd='x', gr_gid=54, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='audio', gr_passwd='x', gr_gid=63, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='nobody', gr_passwd='x', gr_gid=99, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='users', gr_passwd='x', gr_gid=100, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='floppy', gr_passwd='x', gr_gid=19, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='vcsa', gr_passwd='x', gr_gid=499, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='avahi-autoipd', gr_passwd='x', gr_gid=498, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='oprofile', gr_passwd='x', gr_gid=16, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='ntp', gr_passwd='x', gr_gid=38, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='utmp', gr_passwd='x', gr_gid=22, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='utempter', gr_passwd='x', gr_gid=35, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='slocate', gr_passwd='x', gr_gid=21, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='desktop_admin_r', gr_passwd='x', gr_gid=497, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='desktop_user_r', gr_passwd='x', gr_gid=496, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='dbus', gr_passwd='x', gr_gid=81, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='rpc', gr_passwd='x', gr_gid=32, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='jackuser', gr_passwd='x', gr_gid=495, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='nscd', gr_passwd='x', gr_gid=494, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='rpcuser', gr_passwd='x', gr_gid=493, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='nfsnobody', gr_passwd='x', gr_gid=65534, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='tcpdump', gr_passwd='x', gr_gid=72, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='ccache', gr_passwd='x', gr_gid=492, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='cdrom', gr_passwd='x', gr_gid=11, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='tape', gr_passwd='x', gr_gid=33, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='dialout', gr_passwd='x', gr_gid=18, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='avahi', gr_passwd='x', gr_gid=491, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='mailnull', gr_passwd='x', gr_gid=489, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='smmsp', gr_passwd='x', gr_gid=488, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='openvpn', gr_passwd='x', gr_gid=487, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='rtkit', gr_passwd='x', gr_gid=486, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='apache', gr_passwd='x', gr_gid=485, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='smolt', gr_passwd='x', gr_gid=484, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='sshd', gr_passwd='x', gr_gid=483, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='torrent', gr_passwd='x', gr_gid=482, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='haldaemon', gr_passwd='x', gr_gid=481, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='pulse', gr_passwd='x', gr_gid=480, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='pulse-access', gr_passwd='x', gr_gid=479, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='stapdev', gr_passwd='x', gr_gid=478, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='stapusr', gr_passwd='x', gr_gid=477, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='gdm', gr_passwd='x', gr_gid=476, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='archie', gr_passwd='x', gr_gid=500, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='abrt', gr_passwd='x', gr_gid=475, gr_mem=[]),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; grp.struct_group(gr_name='stap-server', gr_passwd='x', gr_gid=155, gr_mem=[])]&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;Arrivederci e Buone Vacanze a Tutti!&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;;-)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-7056323517014248002?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/7056323517014248002/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=7056323517014248002&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/7056323517014248002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/7056323517014248002'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2010/07/python-piccoli-tips-di-sistema-gnulinux.html' title='Python Piccoli Tips  di Sistema Gnu/Linux'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-76190139055399923</id><published>2010-07-26T14:34:00.005+02:00</published><updated>2010-07-26T15:59:16.463+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='Programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Python Redirigere lo stream di Output</title><content type='html'>L' istruzione &lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;print&lt;/span&gt; non e altro che l' output del metodo &lt;span style="font-style: italic; font-weight: bold;"&gt;sys.stdout.write&lt;/span&gt;. Infatti invocare  una &lt;span style="font-style: italic;"&gt;print&lt;/span&gt; equivale ad  utilizzare &lt;span style="font-style: italic; font-weight: bold;"&gt;sys.stdout.write(str(X) + '\n')&lt;/span&gt; in modo chiaro e comodo per l'utente. E cosa molto frequente usare questo "&lt;span style="font-style: italic;"&gt;trucco&lt;/span&gt;" di redigere la visualizzazione dell' istruzione &lt;span style="font-style: italic;"&gt;print&lt;/span&gt; riassegnandola a &lt;a href="http://docs.python.org/release/2.6.5/library/sys.html#sys.stdout"&gt;&lt;span style="font-style: italic;"&gt;sys.stdout&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ecco un semplice esempio:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;[archie@geek ~]$ python&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Python 2.6.2 (r262:71600, Jun  4 2010, 18:28:04)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;[GCC 4.4.3 20100127 (Red Hat 4.4.3-4)] on linux2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Type "help", "copyright", "credits" or "license" for more information.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;import&lt;/span&gt; sys&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; freeze = sys.stdout               #variabile per riassegnare in seguito lo stdout&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; sys.stdout = open('&lt;span style="color: rgb(102, 0, 0);"&gt;reg.txt&lt;/span&gt;', '&lt;span style="color: rgb(102, 0, 0);"&gt;a&lt;/span&gt;') #redirezione dell' output al file : modo accodamento&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;print&lt;/span&gt; '&lt;span style="color: rgb(102, 0, 0);"&gt;bytes scritti su file&lt;/span&gt;'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;                                      #scrive il file su disco e lo chiude&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; sys.stdout.close()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; sys.stdout = freeze               #riassegna lo stdout originario&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;print&lt;/span&gt; '&lt;span style="color: rgb(102, 0, 0);"&gt;sono nel terminale&lt;/span&gt;'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(0, 102, 0);"&gt;sono nel terminale&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;print&lt;/span&gt; open('&lt;span style="color: rgb(102, 0, 0);"&gt;reg.txt&lt;/span&gt;').read()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;bytes scritti su file&lt;/span&gt;                 #print dal file su disco&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;redirigere l' output ad un' oggetto di tipo file tramite  &lt;/span&gt;" &lt;span style="font-weight: bold;"&gt;&gt;&gt;&lt;/span&gt; ":&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; file = open('&lt;span style="color: rgb(102, 0, 0);"&gt;reg.txt&lt;/span&gt;', '&lt;span style="color: rgb(102, 0, 0);"&gt;w&lt;/span&gt;')          #l' oggetto file&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;print&lt;/span&gt; &lt;span style="color: rgb(153, 51, 153);"&gt;&gt;&gt;&lt;/span&gt; file, '&lt;span style="color: rgb(102, 0, 0);"&gt;rediretto su file&lt;/span&gt;'   #stampa su file&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; file.close()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;print&lt;/span&gt; '&lt;span style="color: rgb(102, 0, 0);"&gt;sono nel terminale&lt;/span&gt;'           #ritorna al terminale&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(0, 102, 0);"&gt;sono nel terminale&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;print&lt;/span&gt; open('&lt;span style="color: rgb(102, 0, 0);"&gt;reg.txt&lt;/span&gt;').read()         #print dal file su disco&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(0, 102, 0);"&gt;rediretto su file&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;questo metodo di utilizzare lo &lt;span style="font-style: italic;"&gt;stream&lt;/span&gt; dell' &lt;span style="font-style: italic;"&gt;output,&lt;/span&gt; può rivelarsi particolarmente utile con &lt;a href="http://docs.python.org/release/2.6.5/library/sys.html#sys.__stderr__"&gt;&lt;span style="font-style: italic;"&gt;sys.stderr&lt;/span&gt;&lt;/a&gt;  nel redirigere l'output in un file tramite " &lt;span style="font-weight: bold;"&gt;&gt;&gt;&lt;/span&gt; "  e visualizzare eventuali messaggi di errore.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-76190139055399923?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/76190139055399923/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=76190139055399923&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/76190139055399923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/76190139055399923'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2010/07/python-redirigere-lo-stream-di-output.html' title='Python Redirigere lo stream di Output'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-5023085513936364062</id><published>2010-07-26T00:51:00.016+02:00</published><updated>2010-07-26T02:15:33.797+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Matplotlib'/><category scheme='http://www.blogger.com/atom/ns#' term='Programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='PyLab'/><title type='text'>Prove di Pyplot con Matplotlib</title><content type='html'>Cercando qualcosa di simile a &lt;a href="http://en.wikipedia.org/wiki/MATLAB"&gt;MATLAB&lt;/a&gt;, stasera ho voluto installare sulla mia &lt;span style="font-style: italic; font-weight: bold;"&gt;Linux/box&lt;/span&gt; la libreria &lt;a href="http://matplotlib.sourceforge.net/index.html"&gt;&lt;span style="font-style: italic;"&gt; Matplotlib&lt;/span&gt;&lt;/a&gt;. &lt;span style="font-style: italic; font-weight: bold;"&gt;Niente di che&lt;/span&gt;, ho fatto alcune prove per vedere cosa ne usciva fuori.&lt;br /&gt;&lt;br /&gt;Qui posto dal &lt;a href="http://matplotlib.sourceforge.net/users/pyplot_tutorial.html"&gt;&lt;span style="font-style: italic;"&gt;tutorial&lt;/span&gt;&lt;/a&gt;, un paio si &lt;span style="font-style: italic;"&gt;screenshots&lt;/span&gt;(&lt;span style="font-style: italic;"&gt;correlato dal codice&lt;/span&gt;) &lt;span style="font-style: italic;"&gt;semplici&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;semplici&lt;/span&gt;,  di cosa si riesca a fare tramite una funzione &lt;a href="http://matplotlib.sourceforge.net/api/pyplot_api.html#module-matplotlib.pyplot"&gt;&lt;span style="font-style: italic;"&gt;pyplot()&lt;/span&gt;&lt;/a&gt; del modulo &lt;span style="font-style: italic; font-weight: bold;"&gt;matplotlib&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;import matplotlib.pyplot as plt&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;plt.plot([1,2,3,4])&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;plt.ylabel('some numbers')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;plt.show()&lt;/span&gt;&lt;br /&gt;1°&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;import numpy as np&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;import matplotlib.pyplot as plt&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;ax = plt.subplot(111)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;t = np.arange(0.0, 5.0, 0.01)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;s = np.cos(2*np.pi*t)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;line, = plt.plot(t, s, lw=2)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;plt.annotate('local max', xy=(2, 1), xytext=(3, 1.5),arrowprops=dict(facecolor='black', shrink=0.05),)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;plt.ylim(-2,2)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;plt.show()&lt;/span&gt;&lt;br /&gt;2°&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kLl8btDOtr0/TEzSz1gL3rI/AAAAAAAAAy0/GJMDioi-ne4/s1600/Schermata-5.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 200px;" src="http://1.bp.blogspot.com/_kLl8btDOtr0/TEzSz1gL3rI/AAAAAAAAAy0/GJMDioi-ne4/s320/Schermata-5.png" alt="" id="BLOGGER_PHOTO_ID_5498001033089769138" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1°&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kLl8btDOtr0/TEzTNdx3mtI/AAAAAAAAAy8/L6h61ZCFg3Y/s1600/Schermata-6.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 200px;" src="http://3.bp.blogspot.com/_kLl8btDOtr0/TEzTNdx3mtI/AAAAAAAAAy8/L6h61ZCFg3Y/s320/Schermata-6.png" alt="" id="BLOGGER_PHOTO_ID_5498001473398086354" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2°&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;non resta che dire, &lt;span style="font-weight: bold;"&gt; più semplice&lt;/span&gt; di così &lt;span style="font-weight: bold;"&gt;si muore&lt;/span&gt;&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-5023085513936364062?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/5023085513936364062/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=5023085513936364062&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/5023085513936364062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/5023085513936364062'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2010/07/prove-di-pyplot-con-matplotlib.html' title='Prove di Pyplot con Matplotlib'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_kLl8btDOtr0/TEzSz1gL3rI/AAAAAAAAAy0/GJMDioi-ne4/s72-c/Schermata-5.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-5165950295026019478</id><published>2010-07-20T10:42:00.005+02:00</published><updated>2010-07-20T11:20:03.510+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fedora12'/><category scheme='http://www.blogger.com/atom/ns#' term='Gnome'/><category scheme='http://www.blogger.com/atom/ns#' term='Howto'/><category scheme='http://www.blogger.com/atom/ns#' term='Gnu/Linux'/><title type='text'>Entrare in Internet  con Fedora</title><content type='html'>Surfando nella &lt;span style="font-style: italic;"&gt;rete&lt;/span&gt;, tra &lt;span style="font-style: italic;"&gt;link&lt;/span&gt; di &lt;span style="font-style: italic;"&gt;blog&lt;/span&gt;, e approdando nelle &lt;span style="font-style: italic;"&gt;baie&lt;/span&gt; di &lt;span style="font-style: italic;"&gt;post&lt;/span&gt;, in &lt;span style="font-style: italic;"&gt;post&lt;/span&gt; mi è capitato di leggere di un utente, che dopo essere approdato nel &lt;span style="font-style: italic;"&gt;golfo &lt;/span&gt;di &lt;a href="http://www.canonical.com/"&gt;&lt;span style="font-style: italic;"&gt;Canonical&lt;/span&gt;&lt;/a&gt;(&lt;span style="font-style: italic;"&gt;Lucid Lynx&lt;/span&gt;), da quel di  &lt;a href="http://fedoraproject.org/"&gt;&lt;span style="font-style: italic;"&gt;Fedora&lt;/span&gt;&lt;/a&gt;, riscontrando a suo dire, con &lt;a href="http://www.ubuntu.com/"&gt;&lt;span style="font-style: italic;"&gt;ubuntu&lt;/span&gt;&lt;/a&gt; una facilità disarmante nel collegarsi alla &lt;span style="font-style: italic;"&gt;rete&lt;/span&gt; tramite il &lt;span style="font-style: italic;"&gt;demone &lt;a href="http://en.wikipedia.org/wiki/Point-to-Point_Protocol_over_Ethernet"&gt;pppoe&lt;/a&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Non toccando una &lt;span style="font-style: italic;"&gt;distro&lt;/span&gt; "&lt;span style="font-style: italic; font-weight: bold;"&gt;red hat based&lt;/span&gt;", dai tempi della versione &lt;a href="http://www.redhat.com/docs/manuals/linux/RHL-8.0-Manual/"&gt;&lt;span style="font-style: italic;"&gt;red hat8.0&lt;/span&gt;&lt;/a&gt;, e &lt;span style="font-style: italic;"&gt;volendo testare quanto detto nel post sopra citato&lt;/span&gt;, mi sono armato di una  &lt;a href="https://fedoraproject.org/wiki/Releases/12/Schedule"&gt;&lt;span style="font-style: italic;"&gt;fedora 12&lt;/span&gt;&lt;/a&gt; nome in codice &lt;span style="font-style: italic; font-weight: bold;"&gt;Costantine&lt;/span&gt;(&lt;span style="font-style: italic;"&gt;per la precisione cè già la versione &lt;a href="https://fedoraproject.org/wiki/Fedora_13_tour"&gt;13&lt;/a&gt;  più moderna&lt;/span&gt;)per farmene una &lt;span style="font-style: italic;"&gt;idea personale&lt;/span&gt;. Quindi una volta installata  &lt;a style="font-style: italic;" href="http://fedoraproject.org/"&gt;Fedora&lt;/a&gt; trovo che per  potersi collegare in &lt;span style="font-style: italic;"&gt;rete&lt;/span&gt; tutto si riduce ad un &lt;span style="font-style: italic;"&gt;paio di passaggi&lt;/span&gt;, nulla di più.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Se devo essere sincero&lt;/span&gt;, essendo &lt;span style="font-style: italic;"&gt;deluso&lt;/span&gt;, molto &lt;span style="font-style: italic;"&gt;deluso&lt;/span&gt;, dalla versione &lt;a href="http://releases.ubuntu.com/lucid/"&gt;&lt;span style="font-style: italic;"&gt;10.04&lt;/span&gt;&lt;/a&gt; di &lt;a href="http://www.ubuntu.com/"&gt;&lt;span style="font-style: italic;"&gt;Ubuntu&lt;/span&gt;&lt;/a&gt;(&lt;span style="font-style: italic;"&gt;e nel futuro vedo molte più stronzate di quelle attuali&lt;/span&gt;), sono alla ricerca di una &lt;a href="http://distrowatch.com/"&gt;&lt;span style="font-style: italic;"&gt;distro&lt;/span&gt;&lt;/a&gt; per il &lt;span style="font-style: italic;"&gt;desktop&lt;/span&gt;, che sia  degna di essere chiamata distribuzione &lt;span style="font-style: italic; font-weight: bold;"&gt;Gnu/Linux&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Ecco un esempio reale&lt;/span&gt;. Appena finita l' installazione dalla vostra &lt;a href="http://fedoraproject.org/"&gt;&lt;span style="font-style: italic;"&gt;Fedora&lt;/span&gt;&lt;/a&gt; aprite una &lt;span style="font-style: italic;"&gt;shell&lt;/span&gt;(&lt;span style="font-style: italic;"&gt;presumibilmente la &lt;a href="http://www.gnu.org/software/bash/"&gt;bash&lt;/a&gt;&lt;/span&gt;), e dirigetevi verso il file &lt;span style="font-style: italic; font-weight: bold;"&gt;ifcfg-etho&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;[archie@geek ~]$ su&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Password:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;[root@geek archie]# cd /etc/sysconfig/network-scripts/&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;[root@geek archie]# gedit ifcfg-etho&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kLl8btDOtr0/TEViZ1y3RBI/AAAAAAAAAyM/HTRCYdf4Tgc/s1600/Schermata-2.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 200px;" src="http://2.bp.blogspot.com/_kLl8btDOtr0/TEViZ1y3RBI/AAAAAAAAAyM/HTRCYdf4Tgc/s320/Schermata-2.png" alt="" id="BLOGGER_PHOTO_ID_5495907116352226322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;poi una volta aperto il file cambiate l' ultima voce:  &lt;span style="font-style: italic; font-weight: bold;"&gt;ONBOOT=no&lt;/span&gt; in &lt;span style="font-style: italic; font-weight: bold;"&gt;ONBOOT=yes&lt;/span&gt;. &lt;span style="font-style: italic;"&gt;Niente di complicato vero?&lt;/span&gt; per chi non è &lt;span style="font-style: italic;"&gt;avezzo&lt;/span&gt; con i &lt;span style="font-style: italic;"&gt;files di configurazione&lt;/span&gt; per  evitare errori quardate l' immagine qua sotto.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kLl8btDOtr0/TEViwM9JLjI/AAAAAAAAAyU/j_BjRP-IXz8/s1600/Schermata-1.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 200px;" src="http://1.bp.blogspot.com/_kLl8btDOtr0/TEViwM9JLjI/AAAAAAAAAyU/j_BjRP-IXz8/s320/Schermata-1.png" alt="" id="BLOGGER_PHOTO_ID_5495907500526480946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;adesso basta andare alla barra superiore di &lt;a href="http://www.gnome.org/"&gt;&lt;span style="font-style: italic;"&gt;Gnome&lt;/span&gt;&lt;/a&gt; e cliccate &lt;span style="font-style: italic;"&gt;tasto destro&lt;/span&gt; sull'icona  &lt;span style="font-style: italic; font-weight: bold;"&gt;Applet NetworkManager&lt;/span&gt;. Scegliete dal &lt;span style="font-style: italic;"&gt;piccolo menu a discesa&lt;/span&gt;,  &lt;span style="font-style: italic; font-weight: bold;"&gt;modifica&lt;/span&gt;, &lt;span style="font-style: italic; font-weight: bold;"&gt;connessioni&lt;/span&gt;, &lt;span style="font-style: italic; font-weight: bold;"&gt;seleziona sistema etho&lt;/span&gt; e poi &lt;span style="font-style: italic; font-weight: bold;"&gt;modifica&lt;/span&gt;, scegli &lt;span style="font-style: italic; font-weight: bold;"&gt;dsl&lt;/span&gt;, vi richiederà la password di &lt;span style="font-style: italic; font-weight: bold;"&gt;root&lt;/span&gt;, seleziona &lt;span style="font-style: italic; font-weight: bold;"&gt;connetti automaticamente&lt;/span&gt; e &lt;span style="font-style: italic;"&gt;salva le modifiche&lt;/span&gt;.&lt;br /&gt;Penso che non ci sia niente &lt;span style="font-style: italic;"&gt;di tanto più complicato&lt;/span&gt;, dello stesso  comando &lt;a href="http://ubuntuforums.org/showthread.php?s=a6f58f3d0c0db9cccb9256581ffb0a96&amp;amp;t=1153758"&gt;&lt;span style="font-style: italic;"&gt;pppoeconf&lt;/span&gt;&lt;/a&gt; con le varie schermate da seguire che &lt;a href="http://www.ubuntu.com"&gt;&lt;span style="font-style: italic;"&gt;ubuntu&lt;/span&gt;&lt;/a&gt; propone.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-5165950295026019478?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/5165950295026019478/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=5165950295026019478&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/5165950295026019478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/5165950295026019478'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2010/07/entrare-in-internet-con-fedora.html' title='Entrare in Internet  con Fedora'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kLl8btDOtr0/TEViZ1y3RBI/AAAAAAAAAyM/HTRCYdf4Tgc/s72-c/Schermata-2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-5836707341106450201</id><published>2010-07-19T16:12:00.006+02:00</published><updated>2010-07-26T16:01:32.564+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SicurezzaPC'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows-OS'/><category scheme='http://www.blogger.com/atom/ns#' term='Browser'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows-7'/><title type='text'>Internet Explorer Amico del Porno</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kLl8btDOtr0/TERenW363RI/AAAAAAAAAx8/4wBNR1__FEM/s1600/screenshot1.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 228px;" src="http://2.bp.blogspot.com/_kLl8btDOtr0/TERenW363RI/AAAAAAAAAx8/4wBNR1__FEM/s320/screenshot1.PNG" alt="" id="BLOGGER_PHOTO_ID_5495621475546881298" border="0" /&gt;&lt;/a&gt;Ieri un mio conoscente, mi porta il suo &lt;span style="font-style: italic;"&gt;laptop&lt;/span&gt; con un  &lt;a href="http://en.wikipedia.org/wiki/Malware"&gt;&lt;span style="font-style: italic;"&gt;problema&lt;/span&gt;&lt;/a&gt; che affligge la quasi totalità degli utilizzatori(&lt;span style="font-style: italic;"&gt;maschi&lt;/span&gt;) di sistemi &lt;a href="http://www.microsoft.com/"&gt;&lt;span style="font-style: italic;"&gt;Windows&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Aveva il suo &lt;span style="font-style: italic;"&gt;laptop&lt;/span&gt; incasinato da finestre &lt;a href="http://en.wikipedia.org/wiki/Pop-up_ad"&gt;&lt;span style="font-style: italic;"&gt;popup&lt;/span&gt;&lt;/a&gt;, che proponevano piacevoli signorine dalle &lt;span style="font-style: italic;"&gt;doti orali&lt;/span&gt;, che non avevano niente a che vedere con il canto.&lt;br /&gt;&lt;br /&gt;Il suo &lt;a href="http://en.wikipedia.org/wiki/Web_browser"&gt;&lt;span style="font-style: italic;"&gt;browser&lt;/span&gt;&lt;/a&gt;, ad ogni collegamento alla rete,  veniva &lt;a href="http://it.wikipedia.org/wiki/Hijacking"&gt;&lt;span style="font-style: italic;"&gt;dirottato&lt;/span&gt;&lt;/a&gt; su altrettanti siti dove  ragazze di ogni parte del globo avrebbero stuzzicato la fantasia di qualsiasi uomo, che per  sua "&lt;span style="font-style: italic;"&gt;sfortuna&lt;/span&gt;", le pupille fossero  capitate per caso su quelle pagine. &lt;span style="font-weight: bold;"&gt;Il tutto ovviamente provocato da un suo cugino che ogni tanto usa il suo &lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;laptop&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(153, 51, 153);"&gt;In breve&lt;/span&gt;.&lt;br /&gt;La parte più buffa di tutto stò &lt;span style="font-style: italic;"&gt;ambaradam&lt;/span&gt;(&lt;span style="font-style: italic;"&gt;dopo averci dato dentro di &lt;a href="http://en.wikipedia.org/wiki/Anti-spyware#Remedies_and_prevention"&gt;anti spyware&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Antivirus_software"&gt;antivirus&lt;/a&gt;, e di &lt;a href="http://en.wikipedia.org/wiki/Windows_Registry"&gt;editor del registro&lt;/a&gt; "&lt;span style="font-weight: bold;"&gt;REGEDIT&lt;/span&gt;" per un bel quattro ore piene&lt;/span&gt;), è stato quello di scoprire, che il principale artefice di tutto stò &lt;span style="font-style: italic; font-weight: bold;"&gt;pornazzo&lt;/span&gt; era &lt;a href="http://en.wikipedia.org/wiki/Internet_Explorer_7"&gt;&lt;span style="font-style: italic;"&gt;IE7&lt;/span&gt;&lt;/a&gt;. Che oltre a fornire gratuitamente la &lt;span style="font-style: italic; font-weight: bold;"&gt;TolBarPorno&lt;/span&gt;, non permette nemmeno la sua disistallazione(&lt;span style="font-style: italic;"&gt;almeno all' utente medio&lt;/span&gt;), ma  solo  di &lt;span style="font-style: italic;"&gt;disattivarla&lt;/span&gt;, tramite &lt;span style="font-style: italic; font-weight: bold;"&gt;attiva&lt;/span&gt; o &lt;span style="font-style: italic; font-weight: bold;"&gt;disattiva&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kLl8btDOtr0/TERr7nAUlEI/AAAAAAAAAyE/jjXOn4-VSjQ/s1600/screenshot.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 174px;" src="http://1.bp.blogspot.com/_kLl8btDOtr0/TERr7nAUlEI/AAAAAAAAAyE/jjXOn4-VSjQ/s320/screenshot.PNG" alt="" id="BLOGGER_PHOTO_ID_5495636117125633090" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Da quanto  visto, continuo a pensare che se vogliamo navigare in modo non dico sicuro al &lt;span style="font-style: italic;"&gt;100%&lt;/span&gt;, ma almeno navigare  in un modo  consapevole, dovremmo dimenticarci di &lt;a href="http://en.wikipedia.org/wiki/Internet_Explorer"&gt;&lt;span style="font-style: italic;"&gt;Internet Explorer&lt;/span&gt;&lt;/a&gt;, e quanto meno usare uno dei &lt;a href="http://arstechnica.com/microsoft/news/2010/02/microsofts-eu-browser-ballot-approved-arrives-march-1.ars"&gt;&lt;span style="font-style: italic;"&gt;browser alternativi&lt;/span&gt;&lt;/a&gt;.  Meglio se &lt;a href="http://www.mozilla-europe.org/it/firefox/"&gt;&lt;span style="font-style: italic;"&gt;Firefox&lt;/span&gt;&lt;/a&gt;, l'assenza degli &lt;a href="http://en.wikipedia.org/wiki/ActiveX"&gt;&lt;span style="font-style: italic;"&gt;ActiveX&lt;/span&gt;&lt;/a&gt; all' interno di &lt;a href="http://www.mozilla-europe.org/it/firefox/"&gt;Firefox&lt;/a&gt; e già cosa buona per affacciarci su internet tramite un sistema &lt;a href="http://www.microsoft.com/"&gt;&lt;span style="font-style: italic;"&gt;Windows&lt;/span&gt;&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-5836707341106450201?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/5836707341106450201/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=5836707341106450201&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/5836707341106450201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/5836707341106450201'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2010/07/internet-explorer-amico-del-porno.html' title='Internet Explorer Amico del Porno'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kLl8btDOtr0/TERenW363RI/AAAAAAAAAx8/4wBNR1__FEM/s72-c/screenshot1.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-3354202653791155963</id><published>2010-06-15T20:43:00.004+02:00</published><updated>2010-06-15T21:25:55.379+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Django'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Services'/><category scheme='http://www.blogger.com/atom/ns#' term='Programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Django a Portata di Mouse</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kLl8btDOtr0/TBfPEtLVpdI/AAAAAAAAAx0/jGeB-lSiTSQ/s1600/djangoinstaller_thumb.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 180px; height: 152px;" src="http://1.bp.blogspot.com/_kLl8btDOtr0/TBfPEtLVpdI/AAAAAAAAAx0/jGeB-lSiTSQ/s320/djangoinstaller_thumb.png" alt="" id="BLOGGER_PHOTO_ID_5483078751100446162" border="0" /&gt;&lt;/a&gt;In giro per il web, ci si legge ancora di post(&lt;span style="font-style: italic;"&gt;forse faziosi?&lt;/span&gt;)che installare,  e configurare &lt;a href="http://www.djangoproject.org/"&gt;&lt;span style="font-style: italic;"&gt;Django&lt;/span&gt;&lt;/a&gt; non sia alla portata di tutti.  Bene ecco due link che risolveranno i problemi di quanti vogliono usare  sia su &lt;span style="font-style: italic; font-weight: bold;"&gt;DjangoWindows&lt;/span&gt; che su &lt;span style="font-style: italic; font-weight: bold;"&gt;Gnu/Linux&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Istant Django&lt;/span&gt;, un &lt;span style="font-style: italic; font-weight: bold;"&gt;.exe&lt;/span&gt; per sistemi &lt;span style="font-style: italic; font-weight: bold;"&gt;windows&lt;/span&gt; che vi permette di avere sulla vostra macchina  &lt;span style="font-style: italic; font-weight: bold;"&gt;Django 1.1.1&lt;/span&gt;,  &lt;span style="font-style: italic; font-weight: bold;"&gt;Python 2.6.4&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Python Imaging Library 1.1.7&lt;/span&gt; con &lt;span style="font-style: italic; font-weight: bold;"&gt;Python Imaging Library Fonts&lt;/span&gt;, &lt;span style="font-style: italic; font-weight: bold;"&gt;Notepad++ 5.6.7&lt;/span&gt;, &lt;span style="font-style: italic; font-weight: bold;"&gt;WinMerge 2.12.4&lt;/span&gt;,  &lt;span style="font-style: italic; font-weight: bold;"&gt;Mercurial 1.4.3&lt;/span&gt;, e &lt;span style="font-style: italic; font-weight: bold;"&gt;Sqlite 3.6.22&lt;/span&gt; in una sola botta.&lt;br /&gt;&lt;br /&gt;Mentre &lt;span style="font-style: italic; font-weight: bold;"&gt;DjangoStack&lt;/span&gt; ha un installer per &lt;span style="font-style: italic; font-weight: bold;"&gt;Windows&lt;/span&gt;, &lt;span style="font-style: italic; font-weight: bold;"&gt;MacOsx&lt;/span&gt; e &lt;span style="font-style: italic; font-weight: bold;"&gt;Gnu/Linux&lt;/span&gt;, oltre ad tre versioni di installazioni che sono &lt;span style="font-style: italic; font-weight: bold;"&gt;Native&lt;/span&gt;, &lt;span style="font-style: italic; font-weight: bold;"&gt;Virtual Machine&lt;/span&gt;(&lt;span style="font-style: italic;"&gt;virtualizzazione&lt;/span&gt;) e &lt;span style="font-style: italic; font-weight: bold;"&gt;Cloud&lt;/span&gt;.  &lt;span style="font-style: italic; font-weight: bold;"&gt;DjangoStack&lt;/span&gt;  oltre a &lt;span style="font-style: italic; font-weight: bold;"&gt;Django&lt;/span&gt;, e &lt;span style="font-style: italic; font-weight: bold;"&gt;Apache&lt;/span&gt;,  vi permette di scegliere un database  tra&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;MySql&lt;/span&gt;, &lt;span style="font-style: italic; font-weight: bold;"&gt;PostgreSQL&lt;/span&gt;, e &lt;span style="font-style: italic; font-weight: bold;"&gt;SQLite&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Se siete interessati rivolgete i vostri browser su &lt;a href="http://www.instantdjango.com/index.html"&gt;&lt;span style="font-style: italic;"&gt;Istant Django&lt;/span&gt;&lt;/a&gt; e &lt;a href="http://bitnami.org/stack/djangostack"&gt;&lt;span style="font-style: italic;"&gt;DjangoStack&lt;/span&gt;&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-3354202653791155963?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/3354202653791155963/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=3354202653791155963&amp;isPopup=true' title='2 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/3354202653791155963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/3354202653791155963'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2010/06/django-portata-di-mouse.html' title='Django a Portata di Mouse'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_kLl8btDOtr0/TBfPEtLVpdI/AAAAAAAAAx0/jGeB-lSiTSQ/s72-c/djangoinstaller_thumb.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-3027308632085908954</id><published>2010-05-18T13:28:00.004+02:00</published><updated>2010-05-18T16:30:55.592+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Browser'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Firefox su Lucid Lynx, Semplicemente inusabile</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kLl8btDOtr0/S_J60ltpqsI/AAAAAAAAAxs/26fdj9gi148/s1600/Schermata-2.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 196px; height: 320px;" src="http://4.bp.blogspot.com/_kLl8btDOtr0/S_J60ltpqsI/AAAAAAAAAxs/26fdj9gi148/s320/Schermata-2.png" alt="" id="BLOGGER_PHOTO_ID_5472571541103946434" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;Ci risiamo&lt;/span&gt;. Anche su&lt;a href="http://www.ubuntu.com"&gt; Lucid Lynx&lt;/a&gt; riscopro un vecchio alquanto antipatico &lt;span style="font-style: italic; font-weight: bold;"&gt;bug&lt;/span&gt;, già incontrato nei primi tempi  di &lt;span style="font-style: italic; font-weight: bold;"&gt;Karmic Koala&lt;/span&gt;, che rende la navigazione un vero sconforto.&lt;br /&gt;&lt;br /&gt;Come la chiamereste voi la &lt;span style="font-style: italic; font-weight: bold;"&gt;user experience&lt;/span&gt;(&lt;span style="font-style: italic;"&gt;crash&lt;/span&gt;) che &lt;span style="font-style: italic; font-weight: bold;"&gt;Firefox&lt;/span&gt;  per &lt;span style="font-style: italic; font-weight: bold;"&gt;Linux &lt;/span&gt;nella versione&lt;span style="font-style: italic; font-weight: bold;"&gt; 3.6.3&lt;/span&gt; mi riserva ogni tot di link cliccati ?&lt;br /&gt;&lt;br /&gt;Per fortuna almeno sino a quando il &lt;span style="font-style: italic;"&gt;bug &lt;/span&gt;non sarà sistemato &lt;a href="http://www.google.com/chrome?platform=linux&amp;amp;hl=it"&gt;Crome&lt;/a&gt;  rende la  mia navigazione(&lt;span style="font-style: italic;"&gt;almeno per ora&lt;/span&gt;) nel &lt;span style="font-style: italic;"&gt;web&lt;/span&gt; con &lt;span style="font-style: italic; font-weight: bold;"&gt;Lucid Lynx&lt;/span&gt;, molto più veloce e reattiva. Tra le altre cose ho scoperto che fare sviluppo &lt;span style="font-style: italic;"&gt;web&lt;/span&gt; con &lt;span style="font-style: italic;"&gt;Crome&lt;/span&gt; è molto più veloce  e piacevole per via della sua apertura delle  finestre in &lt;span style="font-style: italic;"&gt;processi separati&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Mi auguro che per il futuro, alla &lt;a href="http://www.mozilla.org/"&gt;Mozilla&lt;/a&gt; prendano la versione per &lt;span style="font-style: italic;"&gt;Gnu/Linux&lt;/span&gt; un po più in seria considerazione, o perlomeno alla pari della versione &lt;span style="font-style: italic;"&gt;Windows&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-3027308632085908954?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/3027308632085908954/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=3027308632085908954&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/3027308632085908954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/3027308632085908954'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2010/05/firefox-su-lucid-lynx-semplicemente.html' title='Firefox su Lucid Lynx, Semplicemente inusabile'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_kLl8btDOtr0/S_J60ltpqsI/AAAAAAAAAxs/26fdj9gi148/s72-c/Schermata-2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-3399123850735395709</id><published>2010-05-15T19:04:00.002+02:00</published><updated>2010-05-15T19:59:07.656+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='Programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>PYTHON   generators and iterators</title><content type='html'>Fondamentalmente gli &lt;a href="http://docs.python.org/library/stdtypes.html#iterator-types"&gt;&lt;/a&gt;&lt;a href="http://docs.python.org/library/stdtypes.html#iterator-types"&gt;iteratori&lt;/a&gt; sono degli oggetti della funzione &lt;span style="font-style: italic; font-weight: bold;"&gt;iter(X)&lt;/span&gt;, che definiscono il metodo &lt;span style="font-style: italic; font-weight: bold;"&gt;__next__()&lt;/span&gt;, restituendo un elemento successivo fino a che non ci sono più elementi da iterare, e termina con l' eccezzione &lt;span style="font-style: italic; font-weight: bold;"&gt;StopIteration&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;def&lt;/span&gt; soldato(spara=&lt;span style="color: rgb(255, 0, 0);"&gt;1&lt;/span&gt;): &lt;span style="color: rgb(102, 102, 102);"&gt;#crea una funzione con un argomento&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;...     &lt;span style="color: rgb(51, 51, 255);"&gt;while&lt;/span&gt; True: &lt;span style="color: rgb(102, 102, 102);"&gt;#finchè il ciclo e vero&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;...         &lt;span style="color: rgb(51, 51, 255);"&gt;yield&lt;/span&gt; spara&lt;span style="color: rgb(255, 102, 0);"&gt;*&lt;/span&gt;spara &lt;span style="color: rgb(102, 102, 102);"&gt;#yield restituisce un valore expression da usarsi su una sola riga&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;...         spara &lt;span style="color: rgb(255, 102, 0);"&gt;+=&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;1&lt;/span&gt; &lt;span style="color: rgb(102, 102, 102);"&gt;#spara = spara + 1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;...       &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; pallottole = soldato(&lt;span style="color: rgb(255, 0, 0);"&gt;5&lt;/span&gt;) &lt;span style="color: rgb(102, 102, 102);"&gt;#assegna le pallottole al soldato&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; pallottole &lt;span style="color: rgb(102, 102, 102);"&gt;#in assenza delle parentesi mostra che pallottole è un oggetto generators&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;generator&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; pallottole.&lt;span style="color: rgb(0, 102, 0);"&gt;next()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(255, 0, 0);"&gt;25&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; pallottole.&lt;span style="color: rgb(0, 102, 0);"&gt;next()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(255, 0, 0);"&gt;36&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; pallottole.&lt;span style="color: rgb(0, 102, 0);"&gt;next()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(255, 0, 0);"&gt;49&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; pallottole.&lt;span style="color: rgb(0, 102, 0);"&gt;next()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(255, 0, 0);"&gt;64&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; pallottole.&lt;span style="color: rgb(0, 102, 0);"&gt;next()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(255, 0, 0);"&gt;81&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; pallottole.&lt;span style="color: rgb(0, 102, 0);"&gt;next()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(255, 0, 0);"&gt;100&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; nuove_pallottole = soldato(&lt;span style="color: rgb(255, 0, 0);"&gt;10&lt;/span&gt;) &lt;span style="color: rgb(102, 102, 102);"&gt;#assegnamento nuove pallottole&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; nuove_pallottole.&lt;span style="color: rgb(0, 102, 0);"&gt;next()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(255, 0, 0);"&gt;100&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; nuove_pallottole.&lt;span style="color: rgb(0, 102, 0);"&gt;next()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(255, 0, 0);"&gt;121&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; nuove_pallottole&lt;span style="color: rgb(0, 102, 0);"&gt;.next()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(255, 0, 0);"&gt;196&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; spara_tutte_le_pallottole = [pallottole.&lt;span style="color: rgb(0, 102, 0);"&gt;next()&lt;/span&gt;, nuove_pallottole.&lt;span style="color: rgb(0, 102, 0);"&gt;next()&lt;/span&gt;] &lt;span style="color: rgb(102, 102, 102);"&gt;#lista di pallottole&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; spara_tutte_le_pallottole &lt;span style="color: rgb(102, 102, 102);"&gt;#esplode tutte le pallottole&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;[&lt;span style="color: rgb(255, 0, 0);"&gt;144&lt;/span&gt;, &lt;span style="color: rgb(255, 0, 0);"&gt;225&lt;/span&gt;]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/generator&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family: verdana;"&gt;un esempio  che rende molto più chiaro il modo di lavorare gli iteratori&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;import&lt;/span&gt; os &lt;span style="color: rgb(102, 102, 102);"&gt;#importo il modulo os per aprire il file dal suo path&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; file = open(&lt;span style="color: rgb(255, 102, 0);"&gt;r&lt;/span&gt;'&lt;span style="color: rgb(153, 0, 0);"&gt;C:\test\spari_a_vuoto.txt&lt;/span&gt;') &lt;span style="color: rgb(102, 102, 102);"&gt;#apro il file&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; file.&lt;span style="color: rgb(0, 102, 0);"&gt;next()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;'&lt;span style="color: rgb(153, 0, 0);"&gt;primo sparo\n&lt;/span&gt;'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; file.&lt;span style="color: rgb(0, 102, 0);"&gt;next()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;'&lt;span style="color: rgb(153, 0, 0);"&gt;secondo sparo\n&lt;/span&gt;'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; file.&lt;span style="color: rgb(0, 102, 0);"&gt;next()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;'&lt;span style="color: rgb(153, 0, 0);"&gt;terzo sparo\n&lt;/span&gt;'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; file.&lt;span style="color: rgb(0, 102, 0);"&gt;next()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;'&lt;span style="color: rgb(153, 0, 0);"&gt;quarto sparo\n&lt;/span&gt;'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; file.&lt;span style="color: rgb(0, 102, 0);"&gt;next()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;'&lt;span style="color: rgb(153, 0, 0);"&gt;quinto sparo\n&lt;/span&gt;'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; file.&lt;span style="color: rgb(0, 102, 0);"&gt;next()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;'&lt;span style="color: rgb(153, 0, 0);"&gt;sesto sparo\n&lt;/span&gt;'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; file.&lt;span style="color: rgb(0, 102, 0);"&gt;next()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;'&lt;span style="color: rgb(153, 0, 0);"&gt;settimo sparo\n&lt;/span&gt;'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; file.&lt;span style="color: rgb(0, 102, 0);"&gt;next()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;'&lt;span style="color: rgb(153, 0, 0);"&gt;ottavo sparo\n&lt;/span&gt;'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; file.&lt;span style="color: rgb(0, 102, 0);"&gt;next()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;'&lt;span style="color: rgb(153, 0, 0);"&gt;nono sparo\n&lt;/span&gt;'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; file.&lt;span style="color: rgb(0, 102, 0);"&gt;next()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;'&lt;span style="color: rgb(153, 0, 0);"&gt;decimo sparo\n&lt;/span&gt;'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; file.&lt;span style="color: rgb(0, 102, 0);"&gt;next()&lt;/span&gt; &lt;span style="color: rgb(102, 102, 102);"&gt;#tanto per ricordarvi che quando non ci sono più elementi..&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;'&lt;span style="color: rgb(153, 0, 0);"&gt;inceppatura..&lt;/span&gt;'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&gt;&gt;&gt; file.&lt;span style="color: rgb(0, 102, 0);"&gt;next()&lt;/span&gt; &lt;span style="color: rgb(102, 102, 102);"&gt;#arriva l'eccezzione StopIteration!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(255, 0, 0);"&gt;Traceback (most recent call last):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold; color: rgb(255, 0, 0);"&gt; File "&lt;/span&gt;&lt;interactive style="font-style: italic; font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;", line 1, in &lt;/span&gt;&lt;module&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;StopIteration&lt;/span&gt;&lt;br /&gt;&gt;&gt;&gt;&lt;br /&gt;&lt;/module&gt;&lt;/interactive&gt;&lt;/pre&gt;&lt;br /&gt;per approfondire non resta che leggere la ralativa &lt;a href="http://docs.python.org/library/stdtypes.html#built-in-types"&gt;documentazione&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-3399123850735395709?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/3399123850735395709/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=3399123850735395709&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/3399123850735395709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/3399123850735395709'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2010/05/python-generators-and-iterators.html' title='PYTHON   generators and iterators'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-4414929963705152809</id><published>2010-05-14T00:01:00.003+02:00</published><updated>2010-05-14T00:24:34.716+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='Programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Il Modulo os, la Funzione walk(), e L'albero Delle Directory</title><content type='html'>Attraversare l' albero delle directory con la funzione &lt;span style="font-style: italic; font-weight: bold;"&gt;walk()&lt;/span&gt; del modulo&lt;span style="font-style: italic; font-weight: bold;"&gt; os&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;import&lt;/span&gt; os&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; global_path = (&lt;span style="color: rgb(204, 102, 0);"&gt;r&lt;/span&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;'C:\test'&lt;/span&gt;) &lt;span style="color: rgb(102, 102, 102);"&gt;#creo una variabile globale per la directory da percorrere&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;def&lt;/span&gt; explode_dir(&lt;span style="color: rgb(0, 102, 0);"&gt;show_dir&lt;/span&gt;):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...     return show_dir[&lt;span style="color: rgb(255, 0, 0);"&gt;0&lt;/span&gt;] &lt;span style="color: rgb(255, 102, 0);"&gt;+&lt;/span&gt; "&lt;span style="color: rgb(102, 0, 0);"&gt;[OK]&lt;/span&gt;" &lt;span style="color: rgb(102, 102, 102);"&gt;#[0] si riferisce sempre alla prima directory del path&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; path_dir = os.&lt;span style="color: rgb(51, 51, 255);"&gt;walk&lt;/span&gt;(&lt;span style="color: rgb(0, 102, 0);"&gt;global_path&lt;/span&gt;) &lt;span style="color: rgb(102, 102, 102);"&gt;#crea una tupla di tre argomenti&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;for&lt;/span&gt; extract &lt;span style="color: rgb(51, 51, 255);"&gt;in&lt;/span&gt; path_dir:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...     explode_dir(&lt;span style="color: rgb(0, 102, 0);"&gt;extract&lt;/span&gt;) &lt;span style="color: rgb(102, 102, 102);"&gt;# percorre tutto l' albero della directory, stampandone la struttura&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\Beginning_Python[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\Beginning_Python\\Chapter10[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\Beginning_Python\\Chapter11[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\Beginning_Python\\Chapter12[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\Beginning_Python\\Chapter13[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\Beginning_Python\\Chapter13\\exercises[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\Beginning_Python\\Chapter13\\tryitout[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\Beginning_Python\\Chapter14[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\Beginning_Python\\Chapter15[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\Beginning_Python\\Chapter16[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\Beginning_Python\\Chapter16\\exercises[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\Beginning_Python\\Chapter16\\listings[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\Beginning_Python\\Chapter16\\tryitout[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\Beginning_Python\\Chapter17[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\Beginning_Python\\Chapter17\\pylame[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\Beginning_Python\\Chapter19[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\Beginning_Python\\Chapter21[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\Beginning_Python\\Chapter21\\exercises[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\Beginning_Python\\Chapter21\\listings[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\Beginning_Python\\Chapter21\\listings\\cgi-bin[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\Beginning_Python\\Chapter21\\tryitout[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\Beginning_Python\\Chapter5[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\Beginning_Python\\Chapter6[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\Beginning_Python\\Chapter7[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\Beginning_Python\\Chapter7\\Kitchen[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\Beginning_Python\\Chapter8[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\Beginning_Python\\Chapter9[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Ai[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Ai\\ExpertSystem[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Ai\\ExpertSystem\\holmes[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Ai\\ExpertSystem\\holmes\\examples[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Ai\\ExpertSystem\\holmes\\holmes[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Ai\\ExpertSystem\\holmes\\holmes2[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Ai\\ExpertSystem\\holmes\\holmes3[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Ai\\ExpertSystem\\holmes\\kbases[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Ai\\TicTacToe[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Database[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Database\\SQLscripts[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Database\\ZODBscripts[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Dbase[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Dbase\\TableBrowser[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Dstruct[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Dstruct\\Basic[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Dstruct\\Classics[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Dstruct\\Classics\\MoreGraphs[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Dstruct\\OldIntro[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Dstruct\\TreeView[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Dstruct\\TreeView\\alts[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\Assorted[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\BnrNov06[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\BnrNov06\\Bigfile[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\BnrNov06\\PersonDB[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\BnrNov06\\Sumit[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\BnrNov06\\Tester[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\BnrNov06\\Tester\\Outputs[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\BnrNov06\\Tester\\Scripts[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\EPNov06[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\FermAdvancedClass[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\FermAdvancedClass\\tester[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\FermAdvancedClass\\tester\\args[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\FermAdvancedClass\\tester\\inputs[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\FermAdvancedClass\\tester\\outputs[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\FermAdvancedClass\\tester\\tests[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\GetcoEmployeeProject[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\GetcoEmployeeProject\\cgi-bin[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\LosAlamosAdvancedClass[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\LosAlamosAdvancedClass\\day1-system[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\LosAlamosAdvancedClass\\day2-gui-dbase[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\LosAlamosAdvancedClass\\day2-gui-dbase\\sql[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\LosAlamosAdvancedClass\\day2-gui-dbase\\zodb[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\LosAlamosAdvancedClass\\day3-internet-text[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\LosAlamosAdvancedClass\\day3-internet-text\\website[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\LosAlamosAdvancedClass\\day3-internet-text\\website\\cgi-bin[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\LosAlamosAdvancedClass\\day4-integrate-project[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\LosAlamosAdvancedClass\\day4-integrate-project\\Integrate-PP3E[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\LosAlamosAdvancedClass\\day4-integrate-project\\Project-dbase-gui[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\QualcommAdvClass[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\QualcommAdvClass\\BigPy[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\QualcommAdvClass\\Dbase[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\QualcommAdvClass\\Forms[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\QualcommAdvClass\\Gui1[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\QualcommAdvClass\\Integrate[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\QualcommAdvClass\\Internet[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\QualcommAdvClass\\Internet\\website[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\QualcommAdvClass\\Internet\\website\\cgi-bin[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\QualcommAdvClass\\Tester[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\QualcommAdvClass\\Tester\\outputs[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\QualcommAdvClass\\Tester\\scripts[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\QualcommAdvClass\\Text[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\QualcommAdvClass\\Timer[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\extras\\SeagateOct06[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Gui[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Gui\\Clock[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Gui\\gifs[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Gui\\Intro[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Gui\\MovingPics[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Gui\\PIL[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Gui\\PIL\\images[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Gui\\PIL\\images\\thumbs[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Gui\\ShellGui[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Gui\\ShellGui\\test[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Gui\\SlideShow[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Gui\\TextEditor[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Gui\\Tools[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Gui\\Tools\\BigGui[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Gui\\Tools\\Reload[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Gui\\Tour[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Embed[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Embed\\ApiClients[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Embed\\Basics[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Embed\\Basics\\Old[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Embed\\Basics\\pp2e[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Embed\\HighLevelApi[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Embed\\Inventory[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Embed\\Inventory\\Output[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Embed\\Inventory\\WithDbase[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Embed\\Inventory\\WithDbase\\Data[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Embed\\Inventory\\WithDbase\\Dbase[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Embed\\Inventory\\WithDbase\\Output[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Embed\\TestApi[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Embed\\TestApi\\WithPackages[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Embed\\TestApi\\WithPackages\\pkgdir[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Extend[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Extend\\Cenviron[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Extend\\Cenviron\\Old[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Extend\\Cenviron\\pp2e[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Extend\\Hello[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Extend\\HelloLib[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Extend\\HelloLib\\pp2e[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Extend\\Modulator[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Extend\\Stacks[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Extend\\Stacks\\pp2e[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Extend\\Swig[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Extend\\Swig\\Environ[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Extend\\Swig\\Environ\\pp2e[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Extend\\Swig\\pp2e[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Extend\\Swig\\Shadow[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Extend\\Swig\\Shadow\\pp2e[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Extend\\Swig\\swig.org.docs[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Extend\\Swig\\swig.org.docs\\SWIG and Python_files[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Mixed[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Mixed\\Exports[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Mixed\\Exports\\ClassAndMod[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Integrate\\Mixed\\Regist[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Email[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Email\\mailtools[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Email\\PyMailGui[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Email\\PyMailGui\\etc[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Email\\PyMailGui\\SavedMail[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Email\\PyMailGui\\SavedParts[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Email\\PyMailGui\\TempParts[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Ftp[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Ftp\\defunct[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Ftp\\mirror[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Other[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Other\\Grail[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Other\\HTMLgen[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Other\\Jython[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Other\\PSP[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Other\\Win[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Other\\XML[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Other\\Zope[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Sockets[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Web[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Web\\cgi-bin[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Web\\dev[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Web\\dev\\PyMailCGI_2.1[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Web\\dev\\PyMailCGI_2.1\\cgi-bin[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Web\\PyErrata[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Web\\PyErrata\\AdminTools[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Web\\PyErrata\\AdminTools\\DbaseFilesIndexed[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Web\\PyErrata\\AdminTools\\DbaseFilesIndexed\\commentDB[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Web\\PyErrata\\AdminTools\\DbaseFilesIndexed\\errataDB[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Web\\PyErrata\\AdminTools\\temp[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Web\\PyErrata\\Chapter[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Web\\PyErrata\\DbaseFiles[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Web\\PyErrata\\DbaseFiles\\commentDB[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Web\\PyErrata\\DbaseFiles\\errataDB[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Web\\PyErrata\\DbaseShelve[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Web\\PyErrata\\Mutex[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Web\\PyMailCgi[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Web\\PyMailCgi\\cgi-bin[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Web\\PyMailCgi\\partsdownload[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Web\\PyMailCgi\\partsupload[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Internet\\Web\\uploads[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Lang[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Lang\\Calculator[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Lang\\Parser[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Preview[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\Preview\\cgi-bin[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\PyTools[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\System[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\System\\App[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\System\\App\\Bases[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\System\\App\\Clients[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\System\\App\\Clients\\test[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\System\\App\\Clients\\test\\unpack[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\System\\App\\Clients\\test\\unpackapp[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\System\\App\\Kinds[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\System\\App\\Tests[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\System\\Environment[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\System\\Exits[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\System\\Filetools[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\System\\Media[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\System\\Processes[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\System\\Streams[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\System\\Threads[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\PP3E\\TempParts[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\tooltip[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\tooltip\\images[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\vari[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;'C:\\test\\vari\\PP3E-Examples-1.2[OK]'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;un altro semplice esempio:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;mettiamo il caso che volessimo trovare una particolare estensione di&lt;span style="font-style: italic;"&gt; file&lt;/span&gt;, in una &lt;span style="font-style: italic;"&gt;alberatura&lt;/span&gt;  di &lt;span style="font-style: italic;"&gt;directory&lt;/span&gt; a noi giа nota, sempre tramite il nostro fidato &lt;span style="font-style: italic;"&gt;modulo &lt;span style="font-weight: bold;"&gt;os&lt;/span&gt;&lt;/span&gt;, e la  funzione &lt;span style="font-style: italic; font-weight: bold;"&gt;find()&lt;/span&gt; e &lt;span style="font-style: italic; font-weight: bold;"&gt;walk()&lt;/span&gt;. Non resta che importare il &lt;span style="font-style: italic;"&gt;modulo &lt;span style="font-weight: bold;"&gt;os&lt;/span&gt;&lt;/span&gt;, e creare una &lt;span style="font-style: italic;"&gt;funzione&lt;/span&gt; con &lt;span style="font-style: italic;"&gt;tre argomenti&lt;/span&gt;, i quali saranno:   il tipo di estensione &lt;span style="font-style: italic; font-weight: bold;"&gt;.pyw&lt;/span&gt; che nel caso specifico&lt;span style="font-style: italic; font-weight: bold;"&gt;(win32)&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;serve&lt;/span&gt; a non &lt;span style="font-style: italic;"&gt;eseguire&lt;/span&gt; il &lt;span style="font-style: italic;"&gt;prompt dei comandi&lt;/span&gt; in contemporanea con il programma &lt;span style="font-style: italic;"&gt;python&lt;/span&gt;. Le &lt;span style="font-style: italic;"&gt;directory&lt;/span&gt;, e i nomi dei &lt;span style="font-style: italic;"&gt;files&lt;span style="font-weight: bold;"&gt;.pyw&lt;/span&gt;&lt;/span&gt; che ricercheremo.&lt;br /&gt;&lt;br /&gt;Assegnare una &lt;span style="font-style: italic;"&gt;variabile&lt;/span&gt;, da poter iterare tramite un &lt;span style="font-style: italic;"&gt;ciclo if&lt;/span&gt;, dove con la funzione &lt;span style="font-style: italic; font-weight: bold;"&gt;find()&lt;/span&gt; viene ricercato il file. La "&lt;span style="font-style: italic; font-weight: bold;"&gt;magia&lt;/span&gt;",se cosi possiamo definirla, sta tutta nella chiamata alla&lt;span style="font-style: italic;"&gt; funzione&lt;/span&gt;, &lt;span style="font-style: italic; font-weight: bold;"&gt;os.path.walk()&lt;/span&gt; che esegue una &lt;span style="font-style: italic;"&gt;tupla&lt;/span&gt; di&lt;span style="font-style: italic;"&gt; tre elementi&lt;/span&gt; che richiamano il &lt;span style="font-style: italic;"&gt;percorso&lt;/span&gt; delle &lt;span style="font-style: italic;"&gt;directory&lt;span style="font-weight: bold;"&gt;(path)&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;,&lt;/span&gt; la funzione stessa&lt;span style="font-style: italic; font-weight: bold;"&gt;(search_function)&lt;/span&gt;, e la lista dei nomi di&lt;span style="font-style: italic;"&gt; files&lt;/span&gt; con l' estensione da noi ricercata&lt;span style="font-style: italic; font-weight: bold;"&gt;(pyw)&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;import&lt;/span&gt; os&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;def&lt;/span&gt; search_function(pyw, dir, files):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...     file_extension = '&lt;span style="color: rgb(102, 0, 0);"&gt;pyw&lt;/span&gt;'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...     &lt;span style="color: rgb(51, 51, 255);"&gt;if&lt;/span&gt; file_extension == &lt;span style="color: rgb(255, 0, 0);"&gt;1&lt;/span&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...         os.&lt;span style="color: rgb(51, 51, 255);"&gt;find&lt;/span&gt;(&lt;span style="color: rgb(0, 102, 0);"&gt;file_extension&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...     &lt;span style="color: rgb(51, 51, 255);"&gt;print&lt;/span&gt; dir, file_extension   &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; os.&lt;span style="color: rgb(51, 51, 255);"&gt;path.walk&lt;/span&gt;(&lt;span style="color: rgb(204, 102, 0);"&gt;r&lt;/span&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;'C:\test\PP3E'&lt;/span&gt;, search_function, '&lt;span style="color: rgb(102, 0, 0);"&gt;.pyw&lt;/span&gt;')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Ai pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Ai\ExpertSystem pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Ai\ExpertSystem\holmes pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Ai\ExpertSystem\holmes\examples pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Ai\ExpertSystem\holmes\holmes pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Ai\ExpertSystem\holmes\holmes2 pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Ai\ExpertSystem\holmes\holmes3 pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Ai\ExpertSystem\holmes\kbases pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Ai\TicTacToe pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Database pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Database\SQLscripts pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Database\ZODBscripts pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Dbase pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Dbase\TableBrowser pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Dstruct pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Dstruct\Basic pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Dstruct\Classics pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Dstruct\Classics\MoreGraphs pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Dstruct\OldIntro pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Dstruct\TreeView pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Dstruct\TreeView\alts pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\Assorted pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\BnrNov06 pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\BnrNov06\Bigfile pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\BnrNov06\PersonDB pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\BnrNov06\Sumit pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\BnrNov06\Tester pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\BnrNov06\Tester\Outputs pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\BnrNov06\Tester\Scripts pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\EPNov06 pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\FermAdvancedClass pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\FermAdvancedClass\tester pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\FermAdvancedClass\tester\args pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\FermAdvancedClass\tester\inputs pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\FermAdvancedClass\tester\outputs pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\FermAdvancedClass\tester\tests pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\GetcoEmployeeProject pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\GetcoEmployeeProject\cgi-bin pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\LosAlamosAdvancedClass pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\LosAlamosAdvancedClass\day1-system pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\LosAlamosAdvancedClass\day2-gui-dbase pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\LosAlamosAdvancedClass\day2-gui-dbase\sql pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\LosAlamosAdvancedClass\day2-gui-dbase\zodb pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\LosAlamosAdvancedClass\day3-internet-text pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\LosAlamosAdvancedClass\day3-internet-text\website pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\LosAlamosAdvancedClass\day3-internet-text\website\cgi-bin pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\LosAlamosAdvancedClass\day4-integrate-project pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\LosAlamosAdvancedClass\day4-integrate-project\Integrate-PP3E pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\LosAlamosAdvancedClass\day4-integrate-project\Project-dbase-gui pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\QualcommAdvClass pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\QualcommAdvClass\BigPy pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\QualcommAdvClass\Dbase pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\QualcommAdvClass\Forms pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\QualcommAdvClass\Gui1 pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\QualcommAdvClass\Integrate pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\QualcommAdvClass\Internet pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\QualcommAdvClass\Internet\website pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\QualcommAdvClass\Internet\website\cgi-bin pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\QualcommAdvClass\Tester pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\QualcommAdvClass\Tester\outputs pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\QualcommAdvClass\Tester\scripts pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\QualcommAdvClass\Text pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\QualcommAdvClass\Timer pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\extras\SeagateOct06 pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Gui pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Gui\Clock pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Gui\gifs pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Gui\Intro pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Gui\MovingPics pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Gui\PIL pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Gui\PIL\images pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Gui\PIL\images\thumbs pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Gui\ShellGui pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Gui\ShellGui\test pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Gui\SlideShow pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Gui\TextEditor pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Gui\Tools pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Gui\Tools\BigGui pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Gui\Tools\Reload pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Gui\Tour pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Embed pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Embed\ApiClients pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Embed\Basics pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Embed\Basics\Old pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Embed\Basics\pp2e pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Embed\HighLevelApi pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Embed\Inventory pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Embed\Inventory\Output pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Embed\Inventory\WithDbase pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Embed\Inventory\WithDbase\Data pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Embed\Inventory\WithDbase\Dbase pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Embed\Inventory\WithDbase\Output pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Embed\TestApi pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Embed\TestApi\WithPackages pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Embed\TestApi\WithPackages\pkgdir pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Extend pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Extend\Cenviron pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Extend\Cenviron\Old pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Extend\Cenviron\pp2e pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Extend\Hello pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Extend\HelloLib pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Extend\HelloLib\pp2e pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Extend\Modulator pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Extend\Stacks pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Extend\Stacks\pp2e pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Extend\Swig pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Extend\Swig\Environ pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Extend\Swig\Environ\pp2e pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Extend\Swig\pp2e pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Extend\Swig\Shadow pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Extend\Swig\Shadow\pp2e pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Extend\Swig\swig.org.docs pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Extend\Swig\swig.org.docs\SWIG and Python_files pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Mixed pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Mixed\Exports pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Mixed\Exports\ClassAndMod pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Integrate\Mixed\Regist pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Email pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Email\mailtools pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Email\PyMailGui pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Email\PyMailGui\etc pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Email\PyMailGui\SavedMail pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Email\PyMailGui\SavedParts pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Email\PyMailGui\TempParts pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Ftp pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Ftp\defunct pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Ftp\mirror pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Other pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Other\Grail pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Other\HTMLgen pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Other\Jython pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Other\PSP pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Other\Win pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Other\XML pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Other\Zope pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Sockets pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Web pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Web\cgi-bin pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Web\dev pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Web\dev\PyMailCGI_2.1 pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Web\dev\PyMailCGI_2.1\cgi-bin pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Web\PyErrata pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Web\PyErrata\AdminTools pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Web\PyErrata\AdminTools\DbaseFilesIndexed pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Web\PyErrata\AdminTools\DbaseFilesIndexed\commentDB pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Web\PyErrata\AdminTools\DbaseFilesIndexed\errataDB pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Web\PyErrata\AdminTools\temp pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Web\PyErrata\Chapter pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Web\PyErrata\DbaseFiles pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Web\PyErrata\DbaseFiles\commentDB pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Web\PyErrata\DbaseFiles\errataDB pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Web\PyErrata\DbaseShelve pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Web\PyErrata\Mutex pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Web\PyMailCgi pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Web\PyMailCgi\cgi-bin pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Web\PyMailCgi\partsdownload pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Web\PyMailCgi\partsupload pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Internet\Web\uploads pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Lang pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Lang\Calculator pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Lang\Parser pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Preview pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\Preview\cgi-bin pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\PyTools pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\System pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\System\App pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\System\App\Bases pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\System\App\Clients pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\System\App\Clients\test pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\System\App\Clients\test\unpack pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\System\App\Clients\test\unpackapp pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\System\App\Kinds pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\System\App\Tests pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\System\Environment pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\System\Exits pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\System\Filetools pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\System\Media pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\System\Processes pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\test\PP3E\System\Streams pyw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-4414929963705152809?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/4414929963705152809/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=4414929963705152809&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/4414929963705152809'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/4414929963705152809'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2010/05/il-modulo-os-la-funzione-walk-e-lalbero.html' title='Il Modulo os, la Funzione walk(), e L&apos;albero Delle Directory'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-2537548189197799058</id><published>2010-05-13T23:19:00.003+02:00</published><updated>2010-05-13T23:58:35.503+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='Programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>La ricorsione in Python</title><content type='html'>&lt;span style="font-style: italic; font-weight: bold;"&gt;La ricorsione dicasi quando una funzione richiama se stessa in modo ricorsivo.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ecco un esempio la funzione &lt;span style="font-style: italic; font-weight: bold;"&gt;main()&lt;/span&gt; assegna un intero &lt;span style="font-style: italic; font-weight: bold;"&gt;assegna(10)&lt;/span&gt;, che tramite iterazione di &lt;span style="font-style: italic; font-weight: bold;"&gt; if int &gt; 0:&lt;/span&gt; stampa se stessa con dieci volte la stringa assegnata nella &lt;span style="font-style: italic; font-weight: bold;"&gt;print&lt;/span&gt;. Per chi non a idea del come avviene provate a commentare  &lt;span style="font-style: italic; font-weight: bold;"&gt;#assegna(int -1)&lt;/span&gt; e eseguite nuovamente lo script per vedere cosa succede.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;def&lt;/span&gt; main():&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...     assegna(&lt;span style="color: rgb(255, 0, 0);"&gt;10&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;def&lt;/span&gt; assegna(&lt;span style="color: rgb(255, 204, 51);"&gt;int&lt;/span&gt;):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...     &lt;span style="color: rgb(51, 51, 255);"&gt;if&lt;/span&gt; &lt;span style="color: rgb(255, 204, 102);"&gt;int&lt;/span&gt; &gt; &lt;span style="color: rgb(255, 0, 0);"&gt;0&lt;/span&gt;:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...         &lt;span style="color: rgb(51, 51, 255);"&gt;print&lt;/span&gt; '&lt;span style="color: rgb(102, 0, 0);"&gt;|&gt;&gt;&gt; recursive function &lt;&lt;&lt;|&lt;/span&gt;'&lt;br /&gt;...         assegna(&lt;span style="color: rgb(255, 204, 102);"&gt;int&lt;/span&gt; -&lt;span style="color: rgb(255, 0, 0);"&gt;1&lt;/span&gt;)&lt;br /&gt;...      &lt;br /&gt;&gt;&gt;&gt; main()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;|&gt;&gt;&gt; recursive function &lt;&lt;&lt;|&lt;br /&gt;|&gt;&gt;&gt; recursive function &lt;&lt;&lt;|&lt;br /&gt;|&gt;&gt;&gt; recursive function &lt;&lt;&lt;|&lt;br /&gt;|&gt;&gt;&gt; recursive function &lt;&lt;&lt;|&lt;br /&gt;|&gt;&gt;&gt; recursive function &lt;&lt;&lt;|&lt;br /&gt;|&gt;&gt;&gt; recursive function &lt;&lt;&lt;|&lt;br /&gt;|&gt;&gt;&gt; recursive function &lt;&lt;&lt;|&lt;br /&gt;|&gt;&gt;&gt; recursive function &lt;&lt;&lt;|&lt;br /&gt;|&gt;&gt;&gt; recursive function &lt;&lt;&lt;|&lt;br /&gt;|&gt;&gt;&gt; recursive function &lt;&lt;&lt;|&lt;br /&gt;&gt;&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;questa  crea una ricorsione infinita che vi costringe ad un  &lt;span style="font-weight: bold;"&gt;CTRL-z&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt;&lt;span style="color: rgb(51, 51, 255);"&gt; def&lt;/span&gt; main():&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...     instrada()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;def&lt;/span&gt; instrada():&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...     &lt;span style="color: rgb(51, 51, 255);"&gt;print&lt;/span&gt; '&lt;span style="color: rgb(153, 0, 0);"&gt;|&gt;&gt;&gt; recursive function &lt;&lt;&lt;|&lt;/span&gt;'&lt;br /&gt;...     instrada()&lt;br /&gt;...&lt;br /&gt;&gt;&gt;&gt; main()&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-2537548189197799058?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/2537548189197799058/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=2537548189197799058&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/2537548189197799058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/2537548189197799058'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2010/05/la-ricorsione-in-python.html' title='La ricorsione in Python'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-3569929112652466506</id><published>2010-04-29T20:59:00.004+02:00</published><updated>2010-04-29T23:42:02.409+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='Gnu/Linux'/><title type='text'>La Lince è Tra Noi!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kLl8btDOtr0/S9nZ9anyu4I/AAAAAAAAAxQ/fOJnghIeSFg/s1600/themes.jpg"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 186px;" src="http://3.bp.blogspot.com/_kLl8btDOtr0/S9nZ9anyu4I/AAAAAAAAAxQ/fOJnghIeSFg/s320/themes.jpg" alt="" id="BLOGGER_PHOTO_ID_5465639271932279682" border="0" /&gt;&lt;/a&gt;Oggi come promesso dalla tabella di marcia(&lt;a href="https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/570765"&gt;&lt;span style="font-style: italic;"&gt;un bug, avrebbe potuto ritardarne l'uscita&lt;/span&gt;&lt;/a&gt;) e stata rilasciata &lt;span style="font-style: italic; font-weight: bold;"&gt;Lucid Lynx&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Molte sono le parti messe a nuovo che accompagnano l' uscita di &lt;span style="font-style: italic; font-weight: bold;"&gt;Ubuntu 10.04LTS&lt;/span&gt;,  dal chiacchieratissimo &lt;a href="https://wiki.ubuntu.com/Brand"&gt;&lt;span style="font-style: italic;"&gt;tema&lt;/span&gt;&lt;/a&gt; grafico(&lt;a href="http://www.oneopensource.it/11/03/2010/ubuntu-1004-spostare-a-destra-i-bottoni-di-controllo-delle-finestre/"&gt;&lt;span style="font-style: italic;"&gt;vedi bottoni finestra a sinistra&lt;/span&gt;&lt;/a&gt;), all' accessibilità alle features per la rete, al rinnovato &lt;span style="font-style: italic;"&gt;Ubuntu Software Center&lt;/span&gt;&lt;strong&gt;&lt;/strong&gt;, ai driver video liberi &lt;span style="font-style: italic; font-weight: bold;"&gt;Novueau&lt;/span&gt;,  per poi passare al &lt;span style="font-style: italic; font-weight: bold;"&gt;One Music Store&lt;/span&gt; anche tramite &lt;span style="font-style: italic; font-weight: bold;"&gt;banshee&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Lucid Lynx&lt;/span&gt; essendo una versione &lt;span style="font-weight: bold;"&gt;LTS&lt;/span&gt; (&lt;span style="font-style: italic;"&gt; Long Term Support&lt;/span&gt;) si è cercato di renderla appetibile su ogni fronte tanto che la stessa &lt;a href="http://www.canonical.com/"&gt;Canonical&lt;/a&gt; promette che gli utenti &lt;span style="font-style: italic; font-weight: bold;"&gt;Ubuntu &lt;/span&gt;resteranno molto sorpresi dalle novità introdotte con &lt;span style="font-style: italic; font-weight: bold;"&gt;Lucid Lynx 10.04&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Non vi resta che dirigere il vostro browser verso &lt;a href="http://www.ubuntu.com/"&gt;&lt;span style="font-style: italic;"&gt;www.ubuntu.com&lt;/span&gt;&lt;/a&gt; e scaricare la &lt;a href="http://www.ubuntu.com/getubuntu/download"&gt;iso&lt;/a&gt; di &lt;span style="font-style: italic; font-weight: bold;"&gt;Lucid Lynx&lt;/span&gt; che preferite.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-3569929112652466506?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/3569929112652466506/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=3569929112652466506&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/3569929112652466506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/3569929112652466506'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2010/04/la-lince-e-tra-noi.html' title='La Lince è Tra Noi!'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kLl8btDOtr0/S9nZ9anyu4I/AAAAAAAAAxQ/fOJnghIeSFg/s72-c/themes.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-1176184435371924277</id><published>2010-04-01T19:13:00.005+02:00</published><updated>2010-04-01T19:55:09.972+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personale'/><category scheme='http://www.blogger.com/atom/ns#' term='Google'/><title type='text'>Cercare la Vendita di Riviste con Titoli Sensazionali</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kLl8btDOtr0/S7TWktzVdtI/AAAAAAAAAxI/GNgPplpONc4/s1600/pcworld-hacking.jpg"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 245px;" src="http://2.bp.blogspot.com/_kLl8btDOtr0/S7TWktzVdtI/AAAAAAAAAxI/GNgPplpONc4/s320/pcworld-hacking.jpg" alt="" id="BLOGGER_PHOTO_ID_5455220974911059666" border="0" /&gt;&lt;/a&gt;Che ogni rivista(&lt;span style="font-style: italic;"&gt;di qualsiasi settore essa sia&lt;/span&gt;)in copertina spari titoli dal taglio&lt;span style="font-style: italic;"&gt; sensazionale&lt;/span&gt;, nella speranza di poter vendere qualche copia in più ci può stare. Ma che scriva una &lt;span style="font-style: italic; font-weight: bold;"&gt;cazzata&lt;/span&gt; COLOSSALE, mi pare alquanto esagerato.&lt;br /&gt;&lt;br /&gt;Se poi decidete di spendere &lt;span style="font-style: italic; font-weight: bold;"&gt;Euro 5,50&lt;/span&gt; (&lt;span style="font-style: italic;"&gt;per la rivista in questione, che non cito per non fare della pubblicità&lt;/span&gt;),&lt;span style="font-style: italic; font-weight: bold;"&gt; in modo specifico&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;;-)&lt;/span&gt; per conoscere questi "ESPLOSIVO" comandi &lt;span style="font-style: italic; font-weight: bold;"&gt;svelati solo ora per la prima &lt;/span&gt;volta in assoluto dalla citata rivista, &lt;span style="font-style: italic;"&gt;beh&lt;/span&gt;, scoprendo &lt;span style="font-style: italic;"&gt;hack&lt;/span&gt; oramai vecchi come il mondo, ti vien da dire &lt;span style="font-style: italic; font-weight: bold;"&gt;e che cazzo!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A questo punto mi viene da pensare che chi abbia scritto l' articolo non conosca &lt;a href="http://en.wikipedia.org/wiki/Johnny_Long"&gt;&lt;span style="font-style: italic;"&gt;questo signore&lt;/span&gt;&lt;/a&gt;, che oltre alle query qui presenti:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-weight: bold;"&gt;filetype:doc&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;filetype:xls&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;filetype:ppt&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;filetype:pdf&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;più altre query (&lt;span style="font-style: italic;"&gt;presenti nell' articolo&lt;/span&gt;), che conoscono anche i miei nipotini, mette un &lt;a href="http://www.hackersforcharity.org/ghdb/"&gt;&lt;span style="font-style: italic;"&gt;intero database&lt;/span&gt;&lt;/a&gt; di &lt;a href="http://www.hackersforcharity.org/johnny/books/"&gt;&lt;span style="font-style: italic;"&gt;hack&lt;/span&gt;&lt;/a&gt; per &lt;a href="http://en.wikipedia.org/wiki/Google_hacking"&gt;&lt;span style="font-style: italic;"&gt;google&lt;/span&gt;&lt;/a&gt;, che la stessa rete ne è ormai &lt;a href="http://www.google.it/#q=johnny+long&amp;amp;hl=it&amp;amp;sa=X&amp;amp;tbs=vid:1&amp;amp;tbo=u&amp;amp;ei=4Ne0S6i_Hsr9sQaGjYjLDg&amp;amp;oi=video_result_group&amp;amp;ct=title&amp;amp;resnum=9&amp;amp;ved=0CDYQqwQwCA&amp;amp;fp=4afd901106a9773f"&gt;&lt;span style="font-style: italic;"&gt;strapiena&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;Per finire, &lt;span style="font-style: italic; font-weight: bold;"&gt;un consiglio per quanti leggeranno il suddetto articolo&lt;/span&gt;, riguardo la parte &lt;span style="font-weight: bold;"&gt;MEGLIO ESSERE PREPARATI:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;  Eventualmente  resterete  turbati(&lt;span style="font-style: italic;"&gt;come dice l'autore&lt;/span&gt;), non mettete in pratica quanto scritto da lui(&lt;span style="font-style: italic;"&gt;cancellando gli archivi dati dai server per essere sicuri&lt;/span&gt;) basta molto meno. Semplicemente basta mettere un semplice file &lt;a href="http://it.wikipedia.org/wiki/Robots.txt"&gt;&lt;span style="font-style: italic;"&gt;robots.txt&lt;/span&gt;&lt;/a&gt;, nella &lt;a href="http://en.wikipedia.org/wiki/Root_directory"&gt;&lt;span style="font-style: italic;"&gt;root&lt;/span&gt;&lt;/a&gt; del vostro &lt;a href="http://it.wikipedia.org/wiki/Server_web"&gt;&lt;span style="font-style: italic;"&gt;server&lt;/span&gt;&lt;/a&gt;, se volete che &lt;span style="font-style: italic;"&gt;google&lt;/span&gt; non vi &lt;a href="http://www.motoricerca.info/robots.phtml"&gt;visiti&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-1176184435371924277?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/1176184435371924277/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=1176184435371924277&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/1176184435371924277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/1176184435371924277'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2010/04/cercare-la-vendita-di-riviste-con.html' title='Cercare la Vendita di Riviste con Titoli Sensazionali'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kLl8btDOtr0/S7TWktzVdtI/AAAAAAAAAxI/GNgPplpONc4/s72-c/pcworld-hacking.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-7429273134891890442</id><published>2010-02-15T00:08:00.003+01:00</published><updated>2010-02-15T01:28:11.198+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='Programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Digest Integrità Dati Con Python</title><content type='html'>Il linguaggio &lt;span style="font-style: italic;"&gt;Python&lt;/span&gt;, all' interno della sua libreria di base, ha diversi moduli(&lt;span style="font-style: italic;"&gt;a seconda del sistema in uso&lt;/span&gt;) di natura crittografica, che sono:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;hashlib&lt;/span&gt;  algoritmo che implementa interfacce sicure per molti altri algoritmi di digest, tra i quali &lt;span style="font-style: italic;"&gt;SHA1&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;SHA224&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;SHA256&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;SHA384&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;SHA512&lt;/span&gt; e &lt;span style="font-style: italic;"&gt;md5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;md5&lt;/span&gt;  algoritmo di messaggi digest &lt;span style="font-style: italic;"&gt;RSA&lt;/span&gt; e &lt;span style="font-style: italic;"&gt;MD5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;sha&lt;/span&gt;  algoritmo di hash &lt;span style="font-style: italic;"&gt;SHA&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;hmac&lt;/span&gt;  algoritmo di autenticazione dei messaggi &lt;span style="font-style: italic;"&gt;HMAC&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A cosa serve una &lt;span style="font-style: italic;"&gt;impronta di messaggio&lt;/span&gt;, o &lt;span style="font-style: italic;"&gt;digest&lt;/span&gt;? Semplicemente serve a confrontare se un file, corrisponde in modo matematico(&lt;span style="font-style: italic;"&gt;checksum&lt;/span&gt;), a quello creato in un dato momento dal creatore originario di quel file. Un esempio che ci e ricorrente, e quello che quando scarichiamo un file &lt;span style="font-style: italic; font-weight: bold;"&gt;zip&lt;/span&gt;, o una libreria &lt;span style="font-style: italic; font-weight: bold;"&gt;ajax&lt;/span&gt;, riportano impronte(&lt;span style="font-style: italic;"&gt;checksum appunto&lt;/span&gt;)&lt;span style="font-style: italic; font-weight: bold;"&gt;alfanumeriche&lt;/span&gt; accanto ad ogni file.&lt;br /&gt;&lt;br /&gt;E giunto il momento di vedere come lavorano alcuni di questi moduli, sia nel confrontare dei file già residenti nel mio &lt;span style="font-style: italic;"&gt;hard disk&lt;/span&gt;, che nel creare stringhe di testo processate dal linguaggio &lt;span style="font-style: italic;"&gt;python&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;import&lt;/span&gt; sha&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; oggetto_sha = sha.&lt;span style="color: rgb(0, 102, 0);"&gt;new()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; file_cp = &lt;span style="color: rgb(51, 51, 255);"&gt;open&lt;/span&gt;(&lt;span style="color: rgb(153, 0, 0);"&gt;"C:\\Documents and Settings\\@rchieCreative\\Desktop\\klass.txt"&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; oggetto_sha.&lt;span style="color: rgb(0, 102, 0);"&gt;digest()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 0, 204);"&gt;'\x1f\x93\xb3ht\xde\xf6\xef\xb2Q\rE\x01`\x84\xbeX\x0fI\xcf'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; oggetto_sha.&lt;span style="color: rgb(0, 102, 0);"&gt;hexdigest()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;'1f93b36874def6efb2510d45016084be580f49cf'&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;una volta che importiamo il &lt;span style="font-style: italic;"&gt;modulo&lt;/span&gt; con  &lt;span style="font-style: italic; font-weight: bold;"&gt;import sha&lt;/span&gt;, creiamo un oggetto &lt;span style="font-style: italic; font-weight: bold;"&gt;sha&lt;/span&gt;, richiamando la funzione &lt;span style="font-style: italic; font-weight: bold;"&gt;new()&lt;/span&gt;, che andrebbe passata con un argomento, nel modo seguente &lt;span style="font-style: italic; font-weight: bold;"&gt;new([messaggio])&lt;/span&gt;. Io negli esempi uso la funzione &lt;span style="font-style: italic; font-weight: bold;"&gt;new()&lt;/span&gt;, senza alcun argomento ma passo il &lt;span style="font-style: italic;"&gt;[messaggio]&lt;/span&gt; tramite &lt;span style="font-style: italic; font-weight: bold;"&gt;.update()&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Come vedete da esempio il &lt;span style="font-style: italic;"&gt;digest&lt;/span&gt;, viene stampato in &lt;span style="font-style: italic;"&gt;forma binaria&lt;/span&gt;, che possiamo passare tramite il metodo &lt;span style="font-style: italic; font-weight: bold;"&gt;hexdigest()&lt;/span&gt;, per una più comoda lettura in &lt;span style="font-style: italic;"&gt;esadecimale&lt;/span&gt;. Fondamentalmente i valori dei moduli &lt;span style="font-style: italic; font-weight: bold;"&gt;sha&lt;/span&gt; e &lt;span style="font-style: italic; font-weight: bold;"&gt;md5&lt;/span&gt;, che sono forniti come attributi degli oggetti restituiti dalla funzione &lt;span style="font-style: italic; font-weight: bold;"&gt;new()&lt;/span&gt;, sono gli stessi  per entrambi che sono:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;span style="font-family:times new roman;"&gt;per il modulo md5&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;digest_size&lt;/span&gt;    &lt;span style="font-style: italic;"&gt;      la dimensione in bytes del digest risultante&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;new([arg])&lt;/span&gt;     &lt;span style="font-style: italic;"&gt;      restituisce un nuovo oggetto md5&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;md5([arg])&lt;/span&gt;           &lt;span style="font-style: italic;"&gt;come la funzione new() per compatibilità all' indietro&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;update(arg)&lt;/span&gt;  &lt;span style="font-style: italic;"&gt;        aggiorna oggetto md5 con la stringa arg&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;digest()&lt;/span&gt;             &lt;span style="font-style: italic;"&gt;restituisce il digest delle stringhe passate a update()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;hexdigest()&lt;/span&gt;         &lt;span style="font-style: italic;"&gt; equivale a digest() ma stampa in esadecimale&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;copy()&lt;/span&gt;               &lt;span style="font-style: italic;"&gt;restituisce una copia clone dell'oggetto md5&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;span style="font-family:times new roman;"&gt;per il modulo sha&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;new([string])&lt;/span&gt;   &lt;span style="font-style: italic;"&gt;     restituisce un nuovo oggetto sha&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;blocksize&lt;/span&gt;            &lt;span style="font-style: italic;"&gt;dimensione dei blocchi di passati alla funzione hash&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;digest_size&lt;/span&gt;     &lt;span style="font-style: italic;"&gt;     grandezza in bytes del digest risultante&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;update(arg)&lt;/span&gt;          &lt;span style="font-style: italic;"&gt;aggiorna l' oggetto sha con la stringa arg&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;digest()&lt;/span&gt;             &lt;span style="font-style: italic;"&gt;restituisce il digest delle stringhe passate a update()      &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;hexdigest()&lt;/span&gt;     &lt;span style="font-style: italic;"&gt;     equivale a digest() ma stampa in esadecimale&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;copy()&lt;/span&gt;               &lt;span style="font-style: italic;"&gt;restituisce una copia clone dell'oggetto sha&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;una delle differenze tra il modulo &lt;span style="font-style: italic; font-weight: bold;"&gt;sha&lt;/span&gt;, e il modulo &lt;span style="font-style: italic; font-weight: bold;"&gt;md5&lt;/span&gt;, e quello che il modulo &lt;span style="font-style: italic; font-weight: bold;"&gt;sha&lt;/span&gt;, produce &lt;span style="font-style: italic;"&gt;digest&lt;/span&gt; a &lt;span style="font-style: italic; font-weight: bold;"&gt;160 bit&lt;/span&gt;, e quindi più sicuro(&lt;span style="font-style: italic;"&gt;ma più lento&lt;/span&gt;), mentre il modulo &lt;span style="font-style: italic; font-weight: bold;"&gt;md5&lt;/span&gt; produce un &lt;span style="font-style: italic;"&gt;digest&lt;/span&gt; di &lt;span style="font-style: italic; font-weight: bold;"&gt;128 bit&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Adesso e la volta del &lt;span style="font-style: italic;"&gt;modulo&lt;/span&gt; &lt;span style="font-style: italic; font-weight: bold;"&gt;md5&lt;/span&gt;. Le differenze con l' esempio di sopra sono sostanzialmente(&lt;span style="font-style: italic;"&gt;a parte un nuovo file Python-mode.el&lt;/span&gt;) tra il primo &lt;span style="font-style: italic; font-weight: bold;"&gt;oggetto_md5.digest()&lt;/span&gt;, e &lt;span style="font-style: italic; font-weight: bold;"&gt; l' oggetto_md5.hexdigest()&lt;/span&gt;, che stampano il primo un &lt;span style="font-style: italic;"&gt; digest di ritorno binario&lt;/span&gt;, e il secondo in &lt;span style="font-style: italic;"&gt;esadecimale&lt;/span&gt;, e &lt;span style="font-style: italic; font-weight: bold;"&gt;l' oggetto_md5.update('file_cp') &lt;/span&gt;che dimostra come ad ogni nuova  chiamata dei metodi, sia &lt;span style="font-style: italic; font-weight: bold;"&gt;digest()&lt;/span&gt; che &lt;span style="font-style: italic; font-weight: bold;"&gt;hexdigest()&lt;/span&gt;, cambiano al volo il relativo &lt;span style="font-style: italic;"&gt;digest&lt;/span&gt; di output del file.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;import&lt;/span&gt; md5&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; oggetto_md5 = md5.&lt;span style="color: rgb(0, 102, 0);"&gt;new()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; file_cp = &lt;span style="color: rgb(51, 51, 255);"&gt;open&lt;/span&gt;(&lt;span style="color: rgb(153, 0, 0);"&gt;"C:\\Documents and Settings\\@rchieCreative\\Desktop\\Python-mode.el")&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; oggetto_md5.&lt;span style="color: rgb(0, 102, 0);"&gt;digest()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 0, 204);"&gt;'\xf9p \xab\xda\x97\x8f$\xe7X\x12\x8c4!4\xe8'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; oggetto_md5.&lt;span style="color: rgb(0, 102, 0);"&gt;hexdigest()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;'f97020abda978f24e758128c342134e8'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; oggetto_md5.&lt;span style="color: rgb(0, 102, 0);"&gt;update(&lt;/span&gt;'file_cp'&lt;span style="color: rgb(0, 102, 0);"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; oggetto_md5.&lt;span style="color: rgb(0, 102, 0);"&gt;digest()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 0, 204);"&gt;'\xe3\x16\x94\x10\x93\xde\x88p\xf7\xc5\xba\x95\xf2\xc3\r\x80'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; oggetto_md5.&lt;span style="color: rgb(0, 102, 0);"&gt;hexdigest()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;'e316941093de8870f7c5ba95f2c30d80'&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;eccoci al modulo&lt;span style="font-style: italic; font-weight: bold;"&gt; hashlib&lt;/span&gt;, che ingloba al suo interno interfacce comuni di algoritmi di digest, sia di &lt;span style="font-style: italic; font-weight: bold;"&gt;sha&lt;/span&gt; che&lt;span style="font-style: italic; font-weight: bold;"&gt; md5&lt;/span&gt;, che di &lt;span style="font-style: italic; font-weight: bold;"&gt;altri&lt;/span&gt;.  Come accennato precedentemente, il modulo &lt;span style="font-style: italic; font-weight: bold;"&gt;hashlib&lt;/span&gt;, al suo interno ha i seguenti &lt;span style="font-style: italic;"&gt;costruttori di algoritmi&lt;/span&gt; di &lt;span style="font-style: italic; font-weight: bold;"&gt;hash&lt;/span&gt; che sono &lt;span style="font-style: italic; font-weight: bold;"&gt;md5()&lt;/span&gt;,&lt;span style="font-style: italic; font-weight: bold;"&gt; sha1()&lt;/span&gt;, &lt;span style="font-style: italic; font-weight: bold;"&gt;sha224()&lt;/span&gt;, &lt;span style="font-style: italic; font-weight: bold;"&gt;sha256()&lt;/span&gt;, &lt;span style="font-style: italic; font-weight: bold;"&gt;SHA384()&lt;/span&gt;, e &lt;span style="font-style: italic; font-weight: bold;"&gt;SHA512()&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-family:times new roman;"&gt;Gli &lt;span style="font-weight: bold;"&gt;attributi costanti&lt;/span&gt; e metodi di &lt;span style="font-weight: bold;"&gt;hash&lt;/span&gt; per &lt;span style="font-weight: bold;"&gt;hashlib&lt;/span&gt; sono:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;digest_size()&lt;/span&gt;      &lt;span style="font-style: italic;"&gt;grandezza in bytes del digest risultante&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;block_size()       &lt;/span&gt;&lt;span style="font-style: italic;"&gt;dimensione dei blocchi di passati alla funzione hash&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;update(arg)&lt;/span&gt;    &lt;span style="font-style: italic;"&gt;    aggiorna l' oggetto sha con la stringa arg&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;digest()&lt;/span&gt;           &lt;span style="font-style: italic;"&gt;restituisce il digest delle stringhe passate a update()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;hexdigest()&lt;/span&gt;        &lt;span style="font-style: italic;"&gt;equivale a digest() ma stampa in esadecimale&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;copy()&lt;/span&gt;             &lt;span style="font-style: italic;"&gt;restituisce una copia clone dell'oggetto hash&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;in questo esempio, le differenze di rilievo, con gli esempi precedenti, sono  il &lt;span style="font-style: italic;"&gt;digest&lt;/span&gt; della stringa tramite il metodo &lt;span style="font-style: italic; font-weight: bold;"&gt;update()&lt;/span&gt;,che restituisce il message(&lt;span style="font-style: italic;"&gt;delle due stringhe&lt;/span&gt;)in un unico &lt;span style="font-style: italic;"&gt;digest&lt;/span&gt; (&lt;span style="font-style: italic;"&gt;aggiornato immediatamente&lt;/span&gt;), oltre alla dimensione in &lt;span style="font-style: italic; font-weight: bold;"&gt;byte dell'hash  create_hashing.digest_size &lt;/span&gt;di &lt;span style="font-style: italic; font-weight: bold;"&gt;20 byte&lt;/span&gt;, e le dimensioni interne del blocco di &lt;span style="font-style: italic; font-weight: bold;"&gt;hash&lt;/span&gt; &lt;span style="font-style: italic;"&gt;(sempre in byte&lt;/span&gt;) di &lt;span style="font-style: italic; font-weight: bold;"&gt;64 byte&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;import&lt;/span&gt; hashlib&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; create_hashing = hashlib.&lt;span style="color: rgb(0, 102, 0);"&gt;sha1()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; create_hashing.&lt;span style="color: rgb(0, 102, 0);"&gt;update(&lt;/span&gt;"Prima Stringa"&lt;span style="color: rgb(0, 102, 0);"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; create_hashing.&lt;span style="color: rgb(0, 102, 0);"&gt;update(&lt;/span&gt;"Altra Stringa Lungaaaaaaaaa Lungaaaaaaaaaaa"&lt;span style="color: rgb(0, 102, 0);"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; create_hashing.&lt;span style="color: rgb(0, 102, 0);"&gt;digest()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 0, 204);"&gt;'\xca\x0bc\xb8\xf5z\x14l\x9fAG\xe4\xad_\x9d\\K\xc5\xc8\xa8'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; create_hashing.&lt;span style="color: rgb(0, 102, 0);"&gt;digest_size&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;20&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; create_hashing.&lt;span style="color: rgb(0, 102, 0);"&gt;block_size&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;64&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; create_hashing.&lt;span style="color: rgb(0, 102, 0);"&gt;hexdigest()&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;'ca0b63b8f57a146c9f4147e4ad5f9d5c4bc5c8a8'&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;ed e tutto.  Spero data &lt;span style="font-style: italic; font-weight: bold;"&gt;l' ora&lt;/span&gt;  e la &lt;span style="font-style: italic; font-weight: bold;"&gt;cena di s.valentino&lt;/span&gt; che i miei occhi non mi abbiano giocato &lt;span style="font-style: italic; font-weight: bold;"&gt;brutti scherzi! &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-7429273134891890442?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/7429273134891890442/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=7429273134891890442&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/7429273134891890442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/7429273134891890442'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2010/02/digest-integrita-dati-con-python.html' title='Digest Integrità Dati Con Python'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-8503564070584197753</id><published>2010-02-10T15:12:00.003+01:00</published><updated>2010-02-10T16:08:21.665+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='Programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='Multi-Touch'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>PyMT Multi-Touch con Python</title><content type='html'>Per quanti amano il &lt;span style="font-style: italic; font-weight: bold;"&gt;Moulti-Touch&lt;/span&gt;, e sono anche entusiasti utilizzatori del linguaggio &lt;a href="http://www.python.org"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Python&lt;/span&gt;&lt;/a&gt;, ecco qualcosa che vi renderà doppiamente felici. &lt;a href="http://pymt.txzone.net/"&gt;PyMT&lt;/a&gt;, una libreria in&lt;span style="font-style: italic; font-weight: bold;"&gt; python&lt;/span&gt; per scrivere  software &lt;span style="font-style: italic; font-weight: bold;"&gt;moulti-touch&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://pymt.txzone.net/"&gt;PyMT&lt;/a&gt;, oltre  a &lt;a href="http://it.wikipedia.org/wiki/OpenGL"&gt;OpenGL&lt;/a&gt;, richiede che la vostra scheda video supporti l' accellerazione grafica. &lt;a href="http://pymt.txzone.net/"&gt;PyMT&lt;/a&gt; e &lt;span style="font-style: italic;"&gt;multipiattaforma&lt;/span&gt; e &lt;span style="font-style: italic;"&gt;open-source&lt;/span&gt;, ci sono binari per &lt;span style="font-style: italic;"&gt;Windows&lt;/span&gt;,  &lt;span style="font-style: italic;"&gt;OSX&lt;/span&gt;, e &lt;span style="font-style: italic;"&gt;Gnu/Linux&lt;/span&gt;, l' ultima versione stabile e la &lt;span style="font-style: italic; font-weight: bold;"&gt;0.4&lt;/span&gt; rilasciata&lt;span style="font-style: italic; font-weight: bold;"&gt; 8-febbraio-2010&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Visto che anche l'occhio vuole la sua parte, ecco un video delle potenzialità di&lt;/span&gt; &lt;span style="font-style: italic; font-weight: bold;"&gt;PyMT&lt;/span&gt;.&lt;br /&gt;&lt;object width="320" height="265"&gt;&lt;param name="movie" value="http://www.youtube.com/v/9zGDNFpOMcA&amp;amp;hl=it_IT&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/9zGDNFpOMcA&amp;amp;hl=it_IT&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="320" height="265"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-8503564070584197753?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/8503564070584197753/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=8503564070584197753&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/8503564070584197753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/8503564070584197753'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2010/02/pymt-multi-touch-con-python.html' title='PyMT Multi-Touch con Python'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-6361901463003761793</id><published>2010-02-05T00:05:00.004+01:00</published><updated>2010-02-08T00:38:22.517+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Nokia'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='symbian'/><title type='text'>Symbian Diventa Open Source</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kLl8btDOtr0/S2tUoyOJSgI/AAAAAAAAAwg/n3Vj7Dse6lE/s1600-h/3284562620_100abef41f_b.jpg"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 302px; height: 320px;" src="http://2.bp.blogspot.com/_kLl8btDOtr0/S2tUoyOJSgI/AAAAAAAAAwg/n3Vj7Dse6lE/s320/3284562620_100abef41f_b.jpg" alt="" id="BLOGGER_PHOTO_ID_5434530435005237762" border="0" /&gt;&lt;/a&gt;Nokia, dopo avere acquisito nel&lt;span style="font-style: italic; font-weight: bold;"&gt; 2008&lt;/span&gt; il &lt;span style="font-style: italic; font-weight: bold;"&gt;100%&lt;/span&gt; delle quote azionarie del sistema per dispositivi mobili  &lt;a href="ttp://it.wikipedia.org/wiki/Symbian_OS"&gt;Symbian&lt;/a&gt;, creò la &lt;a href="http://www.symbian.org/"&gt;Symbian Foundation&lt;/a&gt;, con l'intento di farlo divenire un sistema aperto.&lt;br /&gt;&lt;br /&gt;Bene, tutto questo è avvenuto ieri(&lt;span style="font-style: italic;"&gt;essendo passata la mezzanotte da pochi minuti&lt;/span&gt;) &lt;span style="font-style: italic;"&gt;Giovedi 4 Febbraio&lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;/span&gt;.&lt;br /&gt;Potete scaricare tutto l'occorente da&lt;a href="http://developer.symbian.org/"&gt; questo indirizzo&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Happy coding!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-6361901463003761793?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/6361901463003761793/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=6361901463003761793&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/6361901463003761793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/6361901463003761793'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2010/02/symbian-diventa-open-source.html' title='Symbian Diventa Open Source'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kLl8btDOtr0/S2tUoyOJSgI/AAAAAAAAAwg/n3Vj7Dse6lE/s72-c/3284562620_100abef41f_b.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-990237196437635693</id><published>2010-01-31T11:22:00.003+01:00</published><updated>2010-01-31T11:44:58.686+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Applicazioni'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>RAI in Streaming con VLC e Ubuntu</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kLl8btDOtr0/S2VfH2iDOlI/AAAAAAAAAwY/6KJLdk6TuCw/s1600-h/TV-radio07.jpg"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 320px; height: 293px;" src="http://2.bp.blogspot.com/_kLl8btDOtr0/S2VfH2iDOlI/AAAAAAAAAwY/6KJLdk6TuCw/s320/TV-radio07.jpg" alt="" id="BLOGGER_PHOTO_ID_5432853113994426962" border="0" /&gt;&lt;/a&gt;&lt;a href="http://ubuntuwin.altervista.org/index.php?id=10&amp;amp;tx_ttnews[tt_news]=125&amp;amp;tx_ttnews[backPid]=2&amp;amp;cHash=5aa481091d"&gt;UBUNTUWIN TV&lt;/a&gt;, e un programma "&lt;span style="font-style: italic;"&gt;delizioso&lt;/span&gt;" scritto in &lt;a href="http://www.python.org/"&gt;python&lt;/a&gt; e &lt;a href="http://www.gtk.org/"&gt;GTK+&lt;/a&gt; che ci permette di guardare tutta una serie di canali &lt;span style="font-style: italic; font-weight: bold;"&gt;TV&lt;/span&gt;,  &lt;span style="font-style: italic; font-weight: bold;"&gt;Radio&lt;/span&gt; , compreso di emittenti internazionali.&lt;br /&gt;&lt;br /&gt;Per potervi fare un' idea passate da &lt;a href="ttp://www.istitutomajorana.it/index.php?option=com_content&amp;amp;task=view&amp;amp;id=1092&amp;amp;Itemid=33"&gt;istitutomajorana.it&lt;/a&gt;. Il sito contiene tutti i dettagli, su come installare ed usare il programma.  Tra le altre cose, contiene  anche dei completi &lt;a href="http://www.istitutomajorana.it/files/soft/ubuntuwin-TV/scaricare_ubuntuwin-tv-07.htm"&gt;video&lt;/a&gt;-tutorials.&lt;br /&gt;&lt;br /&gt;Ah. Non dimenticate di "&lt;span style="font-style: italic;"&gt;ringraziare&lt;/span&gt;" Mamma &lt;a href="http://www.rai.it/"&gt;RAI&lt;/a&gt;, che avendo scelta&lt;a href="http://silverlight.net/"&gt; una piattaforma proprietaria per lo streaming&lt;/a&gt;, non permette di fruire di questi servizi a tutti.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-990237196437635693?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/990237196437635693/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=990237196437635693&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/990237196437635693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/990237196437635693'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2010/01/rai-in-streaming-con-vlc-e-ubuntu.html' title='RAI in Streaming con VLC e Ubuntu'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kLl8btDOtr0/S2VfH2iDOlI/AAAAAAAAAwY/6KJLdk6TuCw/s72-c/TV-radio07.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-6601090873846876082</id><published>2010-01-15T19:51:00.009+01:00</published><updated>2010-01-15T21:14:32.329+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Libri'/><category scheme='http://www.blogger.com/atom/ns#' term='Programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Libri in Python per(veri)Principianti Della Programmazione</title><content type='html'>Che &lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt;, sia un ottimo &lt;a href="http://it.wikipedia.org/wiki/Linguaggio_di_programmazione#Linguaggi_di_scripting"&gt;linguaggio&lt;/a&gt;, per chi si affaccia nel(&lt;span style="font-style: italic;"&gt;meraviglioso quanto complesso&lt;/span&gt;) mondo della &lt;a href="http://it.wikipedia.org/wiki/Paradigma_di_programmazione"&gt;programmazione&lt;/a&gt; per la prima volta, è ormai ben noto e consigliato da molte parti.&lt;br /&gt;Per quanti sono indecisi da quale testi iniziare, il mio consiglio è di dare un'occhiata ai seguenti testi(&lt;span style="font-style: italic; color: rgb(153, 0, 0);"&gt;in carta stampata&lt;/span&gt;):&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.manning.com/sande/"&gt;Hello World!&lt;/a&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Computer Programming for Kids and Other Beginners&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Warren D. Sande and Carter Sande&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kLl8btDOtr0/S1C7tRPiixI/AAAAAAAAAvg/T8yEVtuyGA4/s1600-h/sande_cover150.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 150px; height: 188px;" src="http://2.bp.blogspot.com/_kLl8btDOtr0/S1C7tRPiixI/AAAAAAAAAvg/T8yEVtuyGA4/s320/sande_cover150.jpg" alt="" id="BLOGGER_PHOTO_ID_5427043937378536210" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.pearsonhighered.com/educator/product/Starting-Out-with-Python/9780321537119.page"&gt;Starting Out With Python&lt;/a&gt;&lt;br /&gt;&lt;span class="bookauthor"&gt;&lt;strong&gt;Tony Gaddis&lt;/strong&gt;, &lt;i style="font-weight: bold;"&gt;Haywood Community College&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kLl8btDOtr0/S1C8_t1iW9I/AAAAAAAAAvo/yYh1C_fkCWY/s1600-h/0321537114.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 118px; height: 152px;" src="http://3.bp.blogspot.com/_kLl8btDOtr0/S1C8_t1iW9I/AAAAAAAAAvo/yYh1C_fkCWY/s320/0321537114.jpg" alt="" id="BLOGGER_PHOTO_ID_5427045353803373522" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.tecnichenuove.com/libri/imparare_python.html"&gt;Imparare Python&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mark Lutz  3° edizione&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kLl8btDOtr0/S1C-5wTqy8I/AAAAAAAAAvw/J6Ni7K7S-j0/s1600-h/978-88-481-2090-6.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 156px; height: 214px;" src="http://4.bp.blogspot.com/_kLl8btDOtr0/S1C-5wTqy8I/AAAAAAAAAvw/J6Ni7K7S-j0/s320/978-88-481-2090-6.jpg" alt="" id="BLOGGER_PHOTO_ID_5427047450410666946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Per chi invece non ha voglia di spendere(&lt;span style="font-style: italic;"&gt;ho non può spendere&lt;/span&gt;)sul web ci sono ottimi libri scaricabili(&lt;span style="font-style: italic; color: rgb(153, 0, 0);"&gt;gratuitamente&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;;-)&lt;/span&gt;)dai rispettivi siti web:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://inventwithpython.com/index.html"&gt;Invent Your Own Computer Games With Python&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;di Albert Sweigart&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kLl8btDOtr0/S1DIQU31TCI/AAAAAAAAAv4/cNaikMCVvhU/s1600-h/cover_thumb.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 185px; height: 219px;" src="http://1.bp.blogspot.com/_kLl8btDOtr0/S1DIQU31TCI/AAAAAAAAAv4/cNaikMCVvhU/s320/cover_thumb.png" alt="" id="BLOGGER_PHOTO_ID_5427057733787798562" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.greenteapress.com/thinkpython/thinkCSpy/"&gt;How to Think Like a Computer Scientist  Learning with Python&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;di  Allen Downey, Jeff Elkner and Chris Meyers&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kLl8btDOtr0/S1DJnkJcBII/AAAAAAAAAwQ/qJMfTh6C7gY/s1600-h/smallcover.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 174px; height: 234px;" src="http://1.bp.blogspot.com/_kLl8btDOtr0/S1DJnkJcBII/AAAAAAAAAwQ/qJMfTh6C7gY/s320/smallcover.jpg" alt="" id="BLOGGER_PHOTO_ID_5427059232536790146" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;di cui cè anche una versione in lingua italiana &lt;a href="http://www.python.it/doc/Howtothink/Howtothink-html-it/index.htm"&gt;&lt;span style="font-weight: bold;"&gt;QUI&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;a href="http://www.briggs.net.nz/log/writing/snake-wrangling-for-kids/"&gt;Snake Wrangling for Kids&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;di  Jason R. Briggs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kLl8btDOtr0/S1DIuVjHRsI/AAAAAAAAAwA/doJ_U7L7W0M/s1600-h/cover-tn.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 239px;" src="http://3.bp.blogspot.com/_kLl8btDOtr0/S1DIuVjHRsI/AAAAAAAAAwA/doJ_U7L7W0M/s320/cover-tn.png" alt="" id="BLOGGER_PHOTO_ID_5427058249365407426" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;questi a &lt;span style="font-weight: bold;"&gt;mio modesto&lt;/span&gt; parere, sono libri veramente  utili per chi inizia i &lt;span style="font-weight: bold;"&gt;primi rudimenti&lt;/span&gt; con il linguaggio &lt;span style="font-weight: bold;"&gt;python&lt;/span&gt;, e la &lt;span style="font-weight: bold;"&gt;programmazione in generale&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(153, 0, 0);"&gt;Spero vi siano di una qualche utilità&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-6601090873846876082?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/6601090873846876082/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=6601090873846876082&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/6601090873846876082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/6601090873846876082'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2010/01/libri-in-python-perveriprincipianti.html' title='Libri in Python per(veri)Principianti Della Programmazione'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kLl8btDOtr0/S1C7tRPiixI/AAAAAAAAAvg/T8yEVtuyGA4/s72-c/sande_cover150.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-4909849690334392229</id><published>2010-01-15T19:39:00.002+01:00</published><updated>2010-01-15T19:50:37.758+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows-XP'/><category scheme='http://www.blogger.com/atom/ns#' term='Howto'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows-OS'/><title type='text'>Eliminare la Voce D' avvio di un OS da Boot.ini Dopo Averlo Rimosso(xp)</title><content type='html'>Capita, che dopo aver rimosso un sistema operativo,(&lt;span style="font-style: italic;"&gt;l'esempio pratico è una configurazione in &lt;a href="http://it.wikipedia.org/wiki/Dual_boot"&gt;dual boot &lt;/a&gt;su XP&lt;/span&gt;)nell' &lt;a href="http://it.wikipedia.org/wiki/Master_boot_record"&gt;MBR&lt;/a&gt; di Windows, rimanga ancora pendente la relativa voce che non porta ad avviare nessun Sistema. Da invece come risultato, un desolante errore del tipo: &lt;span style="font-style: italic; font-weight: bold;"&gt;Sistema non trovato o mancante.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Per porre rimedio, è riportare tutto allo stato precedente della configurazione in dual boot, e semplicissimo, basta rimuovere la relativa voce d'avvio nel file &lt;span style="font-style: italic; font-weight: bold;"&gt;Boot.ini&lt;/span&gt; nel seguente modo: Logghiamoci con diritti da Administrator, e andiamo dal &lt;span style="font-style: italic; font-weight: bold;"&gt;Pannello di Controllo&lt;/span&gt;, dove clicchiamo sull'&lt;span style="font-style: italic; font-weight: bold;"&gt; icona Sistema&lt;/span&gt;. Nella finestra appena aperta, andiamo su &lt;span style="font-style: italic; font-weight: bold;"&gt;Avanzate&lt;/span&gt;, e clicchiamo su &lt;span style="font-style: italic; font-weight: bold;"&gt;Impostazioni&lt;/span&gt; alla voce &lt;span style="font-style: italic; font-weight: bold;"&gt;Avvio e Ripristino&lt;/span&gt;, e clicchiamo sul pulsante &lt;span style="font-style: italic; font-weight: bold;"&gt;Modifica&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Adesso si aprirà il  file &lt;span style="font-style: italic; font-weight: bold;"&gt;Boot.ini &lt;/span&gt;nel blocco note, basterà cancellare la relativa voce del sistema che avete  rimosso, e salvare la modifica appena apportata, poi per chiudere le finestre precedentemente aperte, &lt;span style="font-style: italic; font-weight: bold;"&gt;Ok&lt;/span&gt; poi &lt;span style="font-style: italic; font-weight: bold;"&gt;Applica&lt;/span&gt; e &lt;span style="font-style: italic; font-weight: bold;"&gt;Ok&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-4909849690334392229?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/4909849690334392229/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=4909849690334392229&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/4909849690334392229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/4909849690334392229'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2010/01/eliminare-la-voce-d-avvio-di-un-os-da.html' title='Eliminare la Voce D&apos; avvio di un OS da Boot.ini Dopo Averlo Rimosso(xp)'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-5794622641955873948</id><published>2010-01-13T11:37:00.004+01:00</published><updated>2010-01-13T12:01:46.482+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='Hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='SicurezzaPC'/><title type='text'>Per la Gioia Di Smanettoni, e Hackers Vari, ecco a voi BACKTRACK 4!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kLl8btDOtr0/S02jY5CrnUI/AAAAAAAAAvU/RLyDn__Xj_o/s1600-h/bt4-fireworks-1.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 224px;" src="http://2.bp.blogspot.com/_kLl8btDOtr0/S02jY5CrnUI/AAAAAAAAAvU/RLyDn__Xj_o/s320/bt4-fireworks-1.png" alt="" id="BLOGGER_PHOTO_ID_5426172774075571522" border="0" /&gt;&lt;/a&gt;L' uscita di &lt;a href="http://www.backtrack-linux.org/"&gt;BACKTRACK 4&lt;/a&gt;, porta delle novità di non poco conto se messa a confronto con BACKTRACK 3. Tra le più evidenti ce il pregio di poterla installare su hard disk, infatti la nuova&lt;span style="font-weight: bold;"&gt; &lt;span style="font-style: italic;"&gt;BT4&lt;/span&gt;&lt;/span&gt;, è basata su &lt;a href="http://www.ubuntu.com/"&gt;Ubuntu&lt;/a&gt;, che sfrutta una installazione semplificata, precedentemente &lt;span style="font-weight: bold; font-style: italic;"&gt;BT3&lt;/span&gt; ,era basata su &lt;a href="http://www.slax.org/"&gt;SLAX&lt;/a&gt;, che e basata su dei &lt;a href="http://www.slax.org/modules.php"&gt;moduli&lt;/a&gt; di installazione.&lt;br /&gt;&lt;br /&gt;Il passaggio a &lt;a href="http://www.ubuntu.com/"&gt;Ubuntu&lt;/a&gt;, rende semplicissimo tramite &lt;a href="http://unetbootin.sourceforge.net/"&gt;Unetbootin&lt;/a&gt;, anche l'installazione su di una pendrive(&lt;span style="font-style: italic; color: rgb(102, 0, 0);"&gt;minimo 2gb&lt;/span&gt;), e macchine in dual boot con le recenti versioni di &lt;span style="font-style: italic; font-weight: bold;"&gt;Windows Vista&lt;/span&gt;, e &lt;span style="font-style: italic; font-weight: bold;"&gt;Windows 7&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Tra le altre novità, il team di &lt;span style="font-style: italic; font-weight: bold;"&gt;BACKTRACK&lt;/span&gt;, con l'uscita della nuova release, ha pensato bene(da &lt;a href="http://www.remote-exploit.org/"&gt;remote-exploit.org&lt;/a&gt;) di creare un dominio nuovo di zecca, &lt;a href="http://www.backtrack-linux.org/"&gt;www.backtrack-linux.org&lt;/a&gt;. Che aspettate? &lt;a href="http://www.backtrack-linux.org/"&gt;Andate&lt;/a&gt;, &lt;a href="http://www.backtrack-linux.org/downloads/"&gt;scaricate&lt;/a&gt; e &lt;span style="font-style: italic; font-weight: bold;"&gt;buon hacking!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-5794622641955873948?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/5794622641955873948/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=5794622641955873948&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/5794622641955873948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/5794622641955873948'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2010/01/per-la-gioia-di-smanettoni-e-hackers.html' title='Per la Gioia Di Smanettoni, e Hackers Vari, ecco a voi BACKTRACK 4!'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kLl8btDOtr0/S02jY5CrnUI/AAAAAAAAAvU/RLyDn__Xj_o/s72-c/bt4-fireworks-1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-2233035669337947508</id><published>2010-01-06T23:44:00.001+01:00</published><updated>2010-01-07T00:45:50.704+01:00</updated><title type='text'>Dati Temporali e Calendari con Python</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Quando sentite parlare di Python che è già compreso di Batterie&lt;/span&gt;, non e certamente un modo di dire, al suo &lt;a href="http://docs.python.org/library/"&gt;interno&lt;/a&gt;, il linguaggio dispone di una quantità notevole di &lt;span style="font-style: italic;"&gt;librerie&lt;/span&gt; già pronte all'uso. Queste &lt;span style="font-style: italic;"&gt;librerie&lt;/span&gt;, permettono al programmatore, di risolvere un' infinità di problemi senza cercare altrove la &lt;a href="http://docs.python.org/library/"&gt;libreria&lt;/a&gt; giusta per affrontare e portare a termine il suo lavoro, ma trova (&lt;span style="font-style: italic;"&gt;più o meno&lt;/span&gt;) tutto quello di cui ha bisogno nel nucleo del linguaggio stesso.  Ecco il significato di &lt;span style="font-weight: bold;"&gt;Python e già compreso di Batterie&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Vediamone alcuni esempi.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1°&lt;/span&gt;  &lt;span style="font-style: italic;"&gt;importo i moduli calendar e time&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2°&lt;/span&gt; &lt;span style="font-style: italic;"&gt;assegno la prima  variabile data per mandare in output la data odierna tramite la funzione     &lt;span style="font-weight: bold;"&gt; ctime&lt;/span&gt;   che formatta l'ora in un modo preordinato&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3°&lt;/span&gt; &lt;span style="font-style: italic;"&gt;assegno la seconda variabile &lt;span style="font-weight: bold;"&gt;my_cal&lt;/span&gt; per l'output  del calendario del mese &lt;span style="font-weight: bold;"&gt;Aprile 2010&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;import&lt;/span&gt; time&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;import&lt;/span&gt; calendar&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; data = time.ctime(time.time())&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; my_cal = calendar.month(&lt;span style="color: rgb(255, 0, 0);"&gt;2010&lt;/span&gt;, &lt;span style="color: rgb(255, 0, 0);"&gt;4&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; print '&lt;span style="color: rgb(255, 102, 0);"&gt;%&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;s&lt;/span&gt;' &lt;span style="color: rgb(255, 102, 0);"&gt;%&lt;/span&gt; (&lt;span style="color: rgb(0, 0, 0);"&gt;data&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;Wed Jan 06 14:46:50 2010&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;print&lt;/span&gt; my_cal&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  &lt;span style="color: rgb(0, 153, 0);"&gt; April 2010&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;Mo Tu We Th Fr Sa Su&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;        1  2  3  4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;5  6  7  8  9 10 11&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;12 13 14 15 16 17 18&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;19 20 21 22 23 24 25&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;26 27 28 29 30&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;se vogliamo stampare il timestamp (&lt;span style="font-style: italic;"&gt;default&lt;/span&gt;) allo stesso modo della funzione &lt;a href="http://docs.python.org/library/datetime.html#datetime.date.ctime"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;ctime&lt;/span&gt;&lt;/a&gt; dovremo passare come parametri alla funzione le stringhe di formattazione temporali in questo modo &lt;span style="font-weight: bold;"&gt;'%a %b %d %I: %M: %S %Y,'&lt;/span&gt; alla funzione &lt;a href="http://docs.python.org/library/datetime.html#strftime-behavior"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;strftime&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; time.strftime('&lt;span style="color: rgb(255, 102, 0);"&gt;%&lt;/span&gt;a &lt;span style="color: rgb(255, 102, 0);"&gt;%&lt;/span&gt;b &lt;span style="color: rgb(255, 102, 0);"&gt;%&lt;/span&gt;d &lt;span style="color: rgb(255, 102, 0);"&gt;%&lt;/span&gt;I: &lt;span style="color: rgb(255, 102, 0);"&gt;%&lt;/span&gt;M: &lt;span style="color: rgb(255, 102, 0);"&gt;%&lt;/span&gt;S &lt;span style="color: rgb(255, 102, 0);"&gt;%&lt;/span&gt;Y,')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;'Wed Jan 06 08: 07: 51 2010,'&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ecco il significato dei simboli di formattazione inseriti nella funzione&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;%a nome del giorno&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;%b nome  del mese&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;%d data giorno del mese&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;%I orologio formato dodici ore&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;%M minuti&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;%S secondi&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;%Y anno&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;per un elenco esaustivo dei codici di formattazione temporali, andate al modulo &lt;a href="http://docs.python.org/library/time.html#module-time"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;time&lt;/span&gt;&lt;/a&gt; della &lt;a href="http://docs.python.org/library/index.html"&gt;libreria&lt;/a&gt; &lt;a href="http://www.python.org/"&gt;python&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;vediamo all'opera il modulo &lt;a href="http://docs.python.org/library/datetime.html"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;datetime&lt;/span&gt;&lt;/a&gt; con la data. Il modulo &lt;a href="http://docs.python.org/library/datetime.html"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;datetime&lt;/span&gt;&lt;/a&gt; e stato inserito con la &lt;span style="font-style: italic; font-weight: bold;"&gt;versione 2.3&lt;/span&gt; di &lt;a href="http://www.python.org/"&gt;python&lt;/a&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;import&lt;/span&gt; datetime&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;print&lt;/span&gt; 'oggi corre la data&lt;span style="color: rgb(102, 51, 102);"&gt;\n&lt;/span&gt;', datetime.date.today()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;oggi corre la data&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;2010-01-06&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; nuova_data = datetime.datetime.now()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; nuova_data.date()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;datetime.date(2010, 1, 6)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; nuova_data.time()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;datetime.time(21, 14, 17, 750000)&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;e con le ore e minuti&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; nuova_data.hour, nuova_data.minute, nuova_data.second&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;(21, 14, 17)&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;ritornando al modulo &lt;a href="http://docs.python.org/library/calendar.html#module-calendar"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;calendar&lt;/span&gt;&lt;/a&gt;, e quindi alla funzione stampata &lt;span style="font-weight: bold;"&gt;nell'esempio sopra&lt;/span&gt; non abbiamo fatto altro che assegnare alla variabile &lt;span style="font-weight: bold; font-style: italic;"&gt;my_cal &lt;/span&gt;la funzione &lt;span style="font-style: italic; font-weight: bold;"&gt;calendar.month(2010, 4)&lt;/span&gt;che non fa altro che stampare la sequenza&lt;span style="font-style: italic;"&gt; anno mese&lt;/span&gt;. Se prendiamo la funzione &lt;a href="http://docs.python.org/library/calendar.html#calendar.month"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;month&lt;/span&gt;&lt;/a&gt;, che può restituire una stringa composta da più righe nel modo seguente &lt;span style="font-style: italic; font-weight: bold;"&gt;month(numero_anno, numero_mese, larghezza, righe_settimana).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ecco in regalo con la funzione &lt;a href="http://docs.python.org/library/calendar.html#calendar.prcal"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;prcal&lt;/span&gt;&lt;/a&gt;, la stampa di tutto l'anno &lt;span style="font-style: italic; font-weight: bold;"&gt;2010&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; my_cal = calendar.prcal(2010)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; my_cal&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;                               &lt;span style="color: rgb(0, 153, 0);"&gt; 2010&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;    January                   February                   March&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;           1  2  3       1  2  3  4  5  6  7       1  2  3  4  5  6  7&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;4  5  6  7  8  9 10       8  9 10 11 12 13 14       8  9 10 11 12 13 14&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;11 12 13 14 15 16 17      15 16 17 18 19 20 21      15 16 17 18 19 20 21&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;18 19 20 21 22 23 24      22 23 24 25 26 27 28      22 23 24 25 26 27 28&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;25 26 27 28 29 30 31                                29 30 31&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;     April                      May                       June&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;        1  2  3  4                      1  2          1  2  3  4  5  6&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;5  6  7  8  9 10 11       3  4  5  6  7  8  9       7  8  9 10 11 12 13&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;12 13 14 15 16 17 18      10 11 12 13 14 15 16      14 15 16 17 18 19 20&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;19 20 21 22 23 24 25      17 18 19 20 21 22 23      21 22 23 24 25 26 27&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;26 27 28 29 30            24 25 26 27 28 29 30      28 29 30&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;                        31&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;      July                     August                  September&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;        1  2  3  4                         1             1  2  3  4  5&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;5  6  7  8  9 10 11       2  3  4  5  6  7  8       6  7  8  9 10 11 12&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;12 13 14 15 16 17 18       9 10 11 12 13 14 15      13 14 15 16 17 18 19&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;19 20 21 22 23 24 25      16 17 18 19 20 21 22      20 21 22 23 24 25 26&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;26 27 28 29 30 31         23 24 25 26 27 28 29      27 28 29 30&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;                        30 31&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;    October                   November                  December&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su      Mo Tu We Th Fr Sa Su&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;           1  2  3       1  2  3  4  5  6  7             1  2  3  4  5&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;4  5  6  7  8  9 10       8  9 10 11 12 13 14       6  7  8  9 10 11 12&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;11 12 13 14 15 16 17      15 16 17 18 19 20 21      13 14 15 16 17 18 19&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;18 19 20 21 22 23 24      22 23 24 25 26 27 28      20 21 22 23 24 25 26&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;25 26 27 28 29 30 31      29 30                     27 28 29 30 31&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;con il modulo &lt;a href="http://docs.python.org/library/calendar.html"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;calendar&lt;/span&gt;&lt;/a&gt; si può fare molto ma molto di più. Ad esempio si possono calcolare se alcuni anni sono di tipo&lt;span style="font-style: italic;"&gt; bisestile&lt;/span&gt;, semplicemente usando la funzione &lt;a href="http://docs.python.org/library/calendar.html#calendar.isleap"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;isleap&lt;/span&gt;&lt;/a&gt; nel seguente modo &lt;span style="font-style: italic; font-weight: bold;"&gt;isleap(numero_anno_da_sottoporre)&lt;/span&gt; rispondendo TRUE se è &lt;span style="font-style: italic;"&gt;bisestile&lt;/span&gt; altrimenti FALSE.&lt;br /&gt;&lt;br /&gt;Come al solito per approfondire, la&lt;a href="http://docs.python.org/"&gt; doc&lt;/a&gt; della&lt;a href="http://docs.python.org/library/index.html"&gt; libreria&lt;/a&gt; &lt;a href="http://www.python.org/"&gt;python&lt;/a&gt; ti è amica.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-2233035669337947508?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/2233035669337947508/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=2233035669337947508&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/2233035669337947508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/2233035669337947508'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2010/01/dati-temporali-e-calendari-con-python.html' title='Dati Temporali e Calendari con Python'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-7189058373490522954</id><published>2009-12-25T10:55:00.001+01:00</published><updated>2009-12-25T11:00:59.066+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personale'/><title type='text'>Auguri</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kLl8btDOtr0/SzSNE3U1WXI/AAAAAAAAAu8/NKr0ruABjuw/s1600-h/buonNatale.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 208px;" src="http://3.bp.blogspot.com/_kLl8btDOtr0/SzSNE3U1WXI/AAAAAAAAAu8/NKr0ruABjuw/s320/buonNatale.gif" alt="" id="BLOGGER_PHOTO_ID_5419111366343874930" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-7189058373490522954?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/7189058373490522954/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=7189058373490522954&amp;isPopup=true' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/7189058373490522954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/7189058373490522954'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/12/auguri.html' title='Auguri'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kLl8btDOtr0/SzSNE3U1WXI/AAAAAAAAAu8/NKr0ruABjuw/s72-c/buonNatale.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-2502076462247094422</id><published>2009-12-16T15:07:00.004+01:00</published><updated>2009-12-16T16:05:20.594+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='IronPython'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows-OS'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>IronPython 2.6, Ovvero Python for .NET</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kLl8btDOtr0/SyjxaoYH1CI/AAAAAAAAAu0/DI55doJiiBI/s1600-h/shots-ironpython.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 94px;" src="http://4.bp.blogspot.com/_kLl8btDOtr0/SyjxaoYH1CI/AAAAAAAAAu0/DI55doJiiBI/s320/shots-ironpython.PNG" alt="" id="BLOGGER_PHOTO_ID_5415843991730508834" border="0" /&gt;&lt;/a&gt;Per quanti volessero "&lt;span style="font-style: italic;"&gt;giocherellare&lt;/span&gt;" con&lt;a href="http://www.python.org/"&gt; Python&lt;/a&gt; su piattaforma &lt;a href="http://www.microsoft.com/NET/"&gt;.NET&lt;/a&gt;, ma non solo. Con&lt;a href="http://ironpython.net/"&gt; IronPython&lt;/a&gt; e possibile anche gestire applicazioni &lt;a href="http://silverlight.net/"&gt;  Silverlight&lt;/a&gt; tramite &lt;a href="http://ironpython.net/try/"&gt;browser&lt;/a&gt; e server &lt;a href="http://www.asp.net/"&gt;ASP.NET&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Il giorno&lt;span style="font-weight: bold;"&gt; 11/12/2009&lt;/span&gt; è stata rilasciata la release&lt;span style="font-weight: bold;"&gt; 2.6&lt;/span&gt;(&lt;span style="font-style: italic;"&gt;stable&lt;/span&gt;)di &lt;a href="http://ironpython.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=12482"&gt;IronPython&lt;/a&gt;, che sfrutta  le migliorie apportate dalla  versione(&lt;a href="http://en.wikipedia.org/wiki/CPython"&gt;CPython&lt;/a&gt;)&lt;span style="font-weight: bold;"&gt; 2.6&lt;/span&gt; del linguaggio standard .&lt;br /&gt;&lt;br /&gt;Voglio ricordarvi, che&lt;a href="http://ironpython.net/"&gt; IronPython&lt;/a&gt;(&lt;span style="font-style: italic;"&gt;creato da &lt;a href="http://www.microsoft.com/opensource/heroes/jim.mspx"&gt;Jim Hugunin&lt;/a&gt;&lt;/span&gt;), è pienamente compatibile anche su piattaforma&lt;a href="http://it.wikipedia.org/wiki/Linux"&gt; Gnu/Linux&lt;/a&gt;, e browser&lt;a href="http://www.mozilla-europe.org/it/firefox/"&gt; Firefox&lt;/a&gt; tramite il lavoro svolto da &lt;a href="ttp://it.wikipedia.org/wiki/Miguel_de_Icaza"&gt;Miguel Icaza&lt;/a&gt;, denominato  &lt;a href="http://www.mono-project.com/Main_Page"&gt;Mono&lt;/a&gt;, e&lt;a href="http://www.go-mono.com/moonlight/"&gt; Moonlight&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Non mi resta che augurarvi(&lt;span style="font-style: italic;"&gt;agli interessati&lt;/span&gt;) buon divertimento.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-2502076462247094422?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/2502076462247094422/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=2502076462247094422&amp;isPopup=true' title='2 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/2502076462247094422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/2502076462247094422'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/12/ironpython-26-ovvero-python-for-net.html' title='IronPython 2.6, Ovvero Python for .NET'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_kLl8btDOtr0/SyjxaoYH1CI/AAAAAAAAAu0/DI55doJiiBI/s72-c/shots-ironpython.PNG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-1543625794617324803</id><published>2009-12-15T17:54:00.004+01:00</published><updated>2009-12-16T13:19:45.122+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Libri'/><category scheme='http://www.blogger.com/atom/ns#' term='Personale'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows-OS'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows-7'/><title type='text'>Il Mio Regalo di Natale per "Domare" Windows7</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kLl8btDOtr0/SyfKvcVtHII/AAAAAAAAAus/C0inq13yDtQ/s1600-h/new-book.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 240px;" src="http://4.bp.blogspot.com/_kLl8btDOtr0/SyfKvcVtHII/AAAAAAAAAus/C0inq13yDtQ/s320/new-book.jpg" alt="" id="BLOGGER_PHOTO_ID_5415519993346202754" border="0" /&gt;&lt;/a&gt;Nolente o dolente, negli ultimi tempi, tra parentela, amici, e conoscenti vari, sto "&lt;span style="font-style: italic;"&gt;sbattendo&lt;/span&gt;" il muso sempre di più su sistemi che  al loro interno montano una versione di &lt;a href="http://windows.microsoft.com/it-IT/windows/home"&gt;Windows&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Quindi è cosi che ho deciso di &lt;span style="font-style: italic; font-weight: bold;"&gt;auto-regalarmi&lt;/span&gt; due testi, che possano tornarmi utili anche per il mio  &lt;span style="font-style: italic;"&gt;mostriciattolo&lt;/span&gt; preso  di recente, e equipaggiato con &lt;a href="http://windows.microsoft.com/it-IT/windows7/products/compare?T1=tab20"&gt;Windows 7 professional&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb963901.aspx"&gt;Windows Internals&lt;/a&gt; e&lt;a href="http://www.microsoft.com/learning/en/us/Books.aspx?Id=13811&amp;amp;locale=en-us"&gt; Windows 7 Resource Kit&lt;/a&gt;, tanto per passare un po di tempo in queste notti di Natale(&lt;span style="font-style: italic;"&gt;dove altri preferiscono giocare a carte&lt;/span&gt;) che inevitabilmente per forza di cose diventano lunghe e ti forzano a dover restare sveglio.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-1543625794617324803?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/1543625794617324803/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=1543625794617324803&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/1543625794617324803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/1543625794617324803'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/12/il-mio-regalo-di-natale-per-domare.html' title='Il Mio Regalo di Natale per &quot;Domare&quot; Windows7'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_kLl8btDOtr0/SyfKvcVtHII/AAAAAAAAAus/C0inq13yDtQ/s72-c/new-book.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-8377034236913225346</id><published>2009-12-06T17:02:00.009+01:00</published><updated>2009-12-06T18:02:57.559+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows-XP'/><category scheme='http://www.blogger.com/atom/ns#' term='Sistema'/><category scheme='http://www.blogger.com/atom/ns#' term='Privacy'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows-OS'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows-7'/><title type='text'>Il Computer Alle Dipendenze di Redmont</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kLl8btDOtr0/SxvZLUXo8wI/AAAAAAAAAuk/Eh4UtGzdyF0/s1600-h/windows-7.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 250px; height: 250px;" src="http://3.bp.blogspot.com/_kLl8btDOtr0/SxvZLUXo8wI/AAAAAAAAAuk/Eh4UtGzdyF0/s320/windows-7.jpg" alt="" id="BLOGGER_PHOTO_ID_5412158165685433090" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;Ecco&lt;/span&gt;, dopo una assenza di un paio di mesi(&lt;span style="font-style: italic;"&gt;tra cui, mancanza di tempo, problemi personali di vario genere, e la meditata chiusura del blog stesso&lt;/span&gt;)mi ritrovo a scrivere un "&lt;span style="font-style: italic;"&gt;piccolo&lt;/span&gt;" post su di un argomento, che qualche tempo addietro, &lt;span style="font-weight: bold;"&gt;fu la causa della mia "curiosità"&lt;/span&gt; verso i Computer, e tecnologie  interconnesse agli stessi.&lt;br /&gt;&lt;br /&gt;Come in passato &lt;span style="font-style: italic;"&gt;Win XP&lt;/span&gt;, &lt;span style="font-style: italic; font-weight: bold;"&gt;si prese alcune libertà&lt;/span&gt;, per altro da me non concesse, tra le quali quelle di installare "&lt;span style="font-style: italic;"&gt;alcuni aggiornamenti&lt;/span&gt;" da me &lt;span style="font-style: italic; font-weight: bold;"&gt;espressamente rifiutati &lt;/span&gt;nelle settimane precedenti. Oggi mi ritrovo a dover "&lt;span style="font-style: italic;"&gt;subire&lt;/span&gt;", ancora una volta da un mio &lt;span style="font-style: italic;"&gt;Computer&lt;/span&gt; equipaggiato con un sistema &lt;a href="http://www.microsoft.com/"&gt;&lt;span style="font-style: italic;"&gt;windows&lt;/span&gt;&lt;/a&gt;, nella versione specifica di &lt;a href="http://microsoftstore.it/shop/Microsoft/Windows/Windows-7?WT.mc_id=pointitsem_win7_generic&amp;amp;WT.srch=1"&gt;&lt;span style="font-style: italic;"&gt;Windows 7&lt;/span&gt;&lt;/a&gt; &lt;span style="font-style: italic;"&gt;professional&lt;/span&gt;, una attivazione dello stesso, &lt;span style="font-weight: bold;"&gt;fuori dalla mia volontà&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Vorrei specificare(&lt;span style="font-style: italic;"&gt;per gli scettici&lt;/span&gt;) che stando a quanto mi diceva la videata del pannello di controllo, mi restavano ancora &lt;span style="font-weight: bold;"&gt;23&lt;/span&gt;(&lt;span style="font-style: italic;"&gt;VENTI TRE&lt;/span&gt;)giorni, per poter decidere, e &lt;span style="font-style: italic; font-weight: bold;"&gt;evidenzio &lt;/span&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;DECIDERE&lt;/span&gt;(&lt;span style="font-style: italic;"&gt;che a quanto mi risulta ha il significato che a prendere questa decisione sia IO&lt;/span&gt;)di poter attivare il prodotto.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(102, 51, 0);"&gt;ps.&lt;/span&gt; Preciso che questo è avvenuto dopo aver visitato il sito &lt;a href="http://www.microsoft.com/genuine/Default.aspx?displaylang=it"&gt;www.microsoft.com/genuine&lt;/a&gt;.&lt;br /&gt;E per i più curiosi, il &lt;a href="http://it.wikipedia.org/wiki/Sistema_operativo"&gt;&lt;span style="font-weight: bold;"&gt;SO&lt;/span&gt;&lt;/a&gt; e detenuto da me, con regolare &lt;span style="font-style: italic;"&gt;licenza d'uso&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Credo che questo ci debba fare riflettere attentamente, su quali sistemi dovremmo usare quando in rete vorremmo veramente avere un computer che sia alle nostre dipendenze, e non alle dipendenze di chi produce il software.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-8377034236913225346?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/8377034236913225346/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=8377034236913225346&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/8377034236913225346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/8377034236913225346'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/12/il-computer-alle-dipendenze-di-redmont.html' title='Il Computer Alle Dipendenze di Redmont'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kLl8btDOtr0/SxvZLUXo8wI/AAAAAAAAAuk/Eh4UtGzdyF0/s72-c/windows-7.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-7659746174615392848</id><published>2009-09-14T23:42:00.007+02:00</published><updated>2009-09-15T00:10:03.875+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Libri'/><category scheme='http://www.blogger.com/atom/ns#' term='Django'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>11 Capitoli in PDF dal Libro Sviluppare Applicazioni WEB con Django,  Fornite da Apogeo Gratuitamente su Stacktrace.it</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kLl8btDOtr0/Sq6-8SJYnzI/AAAAAAAAAt0/JrrBweYmeHM/s1600-h/Apogeonline+-+Sviluppare+applicazioni+web+con+Django_1252966105812.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 150px; height: 210px;" src="http://2.bp.blogspot.com/_kLl8btDOtr0/Sq6-8SJYnzI/AAAAAAAAAt0/JrrBweYmeHM/s320/Apogeonline+-+Sviluppare+applicazioni+web+con+Django_1252966105812.png" alt="" id="BLOGGER_PHOTO_ID_5381448547626950450" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Con il Permesso di &lt;a href="http://www.apogeonline.com/libri/9788850328178/scheda"&gt;Apogeo&lt;/a&gt; ben &lt;span style="font-style: italic; font-weight: bold;"&gt;11 capitoli&lt;/span&gt; in &lt;span style="font-style: italic; font-weight: bold;"&gt;Pdf&lt;/span&gt; del  libro di &lt;span style="font-style: italic;"&gt;Marco Beri&lt;/span&gt;, &lt;span style="font-style: italic; font-weight: bold;"&gt;Sviluppare Applicazioni Web con Django&lt;/span&gt;. Il tutto  scaricabile dal sito &lt;a href="http://stacktrace.it/2009/09/tutorial-gratuito-di-django/"&gt;Stacktrace.it&lt;/a&gt; e udite udite GRATUITAMENTE.&lt;br /&gt;&lt;br /&gt;Gli &lt;span style="font-style: italic; font-weight: bold;"&gt;11 capitoli &lt;/span&gt;messi a disposizione vanno a formare un &lt;span style="font-style: italic; font-weight: bold;"&gt;tutorials completo&lt;/span&gt; non resta che scaricarvelo e sperimentare.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-7659746174615392848?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/7659746174615392848/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=7659746174615392848&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/7659746174615392848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/7659746174615392848'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/09/11-capitoli-in-pdf-dal-libro-sviluppare.html' title='11 Capitoli in PDF dal Libro Sviluppare Applicazioni WEB con Django,  Fornite da Apogeo Gratuitamente su Stacktrace.it'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kLl8btDOtr0/Sq6-8SJYnzI/AAAAAAAAAt0/JrrBweYmeHM/s72-c/Apogeonline+-+Sviluppare+applicazioni+web+con+Django_1252966105812.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-2449597522704849895</id><published>2009-09-13T17:52:00.006+02:00</published><updated>2009-09-13T18:15:44.104+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Design'/><category scheme='http://www.blogger.com/atom/ns#' term='Howto'/><category scheme='http://www.blogger.com/atom/ns#' term='Css'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><title type='text'>Evidenziare Delle Righe di Testo Tramite la pseudo-classe :target</title><content type='html'>L'attributo &lt;span style="font-style: italic; font-weight: bold;"&gt;:target&lt;/span&gt; lo si usa specificatamente come attributo per l'apertura di un &lt;span style="font-style: italic;"&gt;link&lt;/span&gt;, ad esempio in una nuova finestra. Noi oggi lo useremo per evidenziare delle semplici righe di testo.&lt;br /&gt;&lt;br /&gt;Creiamo il codice &lt;span style="font-style: italic;"&gt;html&lt;/span&gt; con un &lt;span style="font-style: italic;"&gt;menu orizzontale&lt;/span&gt; e poi creiamo una serie di paragrafi &lt;code style="font-weight: bold;"&gt;&amp;lt;p&amp;gt; &amp;lt;/p&amp;gt;&lt;/code&gt;che identificheremo ognuno singolarmente con il proprio id di appartenenza in questo modo:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;body&amp;gt;&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&amp;lt;p&amp;gt;&amp;lt;a href="#cavallo"&amp;gt;Orazio&amp;lt;/a&amp;gt; | &amp;lt;a href="#cane"&amp;gt;Pluto&amp;lt;/a&amp;gt; |&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&amp;lt;a href="#gatto"&amp;gt;Silvestro&amp;lt;/a&amp;gt;| &amp;lt;a href="#topo"&amp;gt;Topolino&amp;lt;/a&amp;gt;| &amp;lt;a&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;href="#papero"&amp;gt;Paperino&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;/span&gt;   &lt;span style="font-weight: bold;"&gt;&amp;lt;p id="cavallo"&amp;gt;Io sono un Cavallo&amp;lt;/p&amp;gt;&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&amp;lt;p id="cane"&amp;gt;Io sono un Cane&amp;lt;/p&amp;gt;&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&amp;lt;p id="gatto"&amp;gt;Io sono un Gatto &amp;lt;/p&amp;gt;&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&amp;lt;p id="topo"&amp;gt;Io sono un Topo &amp;lt;/p&amp;gt;&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&amp;lt;p id="papero"&amp;gt;Io sono un Papero &amp;lt;/p&amp;gt;&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt; &lt;/pre&gt;&lt;br /&gt;poi andiamo a creare la regola &lt;span style="font-style: italic;"&gt;CSS&lt;/span&gt; che ci permetterà di riconoscere l'animale tramite il &lt;span style="font-style: italic;"&gt;click&lt;/span&gt; dato dal puntatore sul  nome del &lt;span style="font-style: italic;"&gt;menu orizzontale&lt;/span&gt;, naturalmente il &lt;span style="font-style: italic;"&gt;CSS&lt;/span&gt; va inserito tra i tag &lt;code style="font-weight: bold;"&gt;&amp;lt;head&amp;gt;&lt;/code&gt; e &lt;code style="font-weight: bold;"&gt;&amp;lt;/head&amp;gt;&lt;/code&gt; del documento &lt;span style="font-style: italic;"&gt;html&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;style type="text/css"&amp;gt;&lt;br /&gt;:target {&lt;br /&gt;background: &lt;span style="color: rgb(0, 153, 0);"&gt;lime&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&amp;lt;/style&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;facendo click sul nome Silvestro il risultato e quello che vedete nell'immagine qui sotto.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kLl8btDOtr0/Sq0Y8GhKdOI/AAAAAAAAAts/XYR_i5wBnoE/s1600-h/pseudo-class.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 185px;" src="http://2.bp.blogspot.com/_kLl8btDOtr0/Sq0Y8GhKdOI/AAAAAAAAAts/XYR_i5wBnoE/s320/pseudo-class.png" alt="" id="BLOGGER_PHOTO_ID_5380984550598538466" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-2449597522704849895?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/2449597522704849895/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=2449597522704849895&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/2449597522704849895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/2449597522704849895'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/09/evidenziare-delle-righe-di-testo.html' title='Evidenziare Delle Righe di Testo Tramite la pseudo-classe :target'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kLl8btDOtr0/Sq0Y8GhKdOI/AAAAAAAAAts/XYR_i5wBnoE/s72-c/pseudo-class.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-5727030262280095441</id><published>2009-09-11T13:29:00.005+02:00</published><updated>2009-09-11T17:56:19.782+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Design'/><category scheme='http://www.blogger.com/atom/ns#' term='Howto'/><category scheme='http://www.blogger.com/atom/ns#' term='Css'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><title type='text'>Un Layout con il Body Centrato</title><content type='html'>Come creare un &lt;span style="font-style: italic;"&gt;layout&lt;/span&gt; a una colonna centrata con dei semplici &lt;span style="font-style: italic;"&gt;paragrafi&lt;/span&gt; e alcune regole &lt;span style="font-style: italic;"&gt;CSS&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Ecco come procedere, inseriamo una serie di paragrafi  &lt;span style="font-weight: bold;"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;  e  &lt;span style="font-weight: bold;"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt; tanti quanti ne abbiamo bisogno per contenere i brani di testo che andranno a formare il nostro documento web.    Io ho inserito anche un titolo di primo livello  &lt;span style="font-weight: bold;"&gt;&amp;lt;h1&amp;gt;  &amp;lt;/h1&amp;gt;&lt;/span&gt;,  ma nulla  ci vieta di avere altre opzioni del tipo titoli di secondo livello  &lt;span style="font-weight: bold;"&gt;&amp;lt;h2&amp;gt;  &amp;lt;/h2&amp;gt;&lt;/span&gt;  inserimento di classi o altro.   Un esempio specifico potrebbe essere quello di inserire una classe che ci permette di abbellire per ogni inizio di paragrafo una &lt;span style="font-style: italic; font-weight: bold;"&gt;first-letter&lt;/span&gt; con una immagine o un font particolare.    Ma questo lo lascio decidere alla vostra inventiva.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Questo e l' esempio abbreviato dei nostri paragrafi&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Colonna Centrata&lt;span style="font-weight: bold;"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;p&amp;gt;&lt;/span&gt; Hypertext Transfer Protocol -- HTTP/1.1Status of this Memo...&lt;span style="font-weight: bold;"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Transferred as the payload of a request orresponse...&lt;span style="font-weight: bold;"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Scannot be used by a server that is acting as a tunnel...&lt;span style="font-weight: bold;"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;p&amp;gt;&lt;/span&gt; A server that is acting as a tunnel...&lt;span style="font-weight: bold;"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;HTTP cachable response is  allowed ...&lt;span style="font-weight: bold;"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Qui le nostre regole CSS:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Inserite per lo sfondo della pagina il colore  nero&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;html {&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;background: &lt;span style="color: rgb(153, 0, 0);"&gt;#000000&lt;/span&gt;;&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Mentre per il corpo del documento, io ho inserito uno sfondo bianco, evidenziato da un bordo di &lt;span style="font-style: italic; font-weight: bold;"&gt;4pixel&lt;/span&gt; tratteggiato(&lt;span style="font-style: italic;"&gt;dashed&lt;/span&gt;) grigio che da un effetto trasparenza del tipo &lt;span style="font-style: italic;"&gt;PNG&lt;/span&gt;(&lt;span style="font-style: italic;"&gt;a scacchiera&lt;/span&gt;)che fa tanto moda nei tutorials con &lt;span style="font-style: italic;"&gt;photoshop&lt;/span&gt;, il padding di&lt;span style="font-style: italic; font-weight: bold;"&gt; 40 pixel&lt;/span&gt; e i margini sinistro e destro impostati ad &lt;span style="font-style: italic; font-weight: bold;"&gt;auto&lt;/span&gt; in modo che si adattino alla finestra del browser.  Mentre la larghezza a&lt;span style="font-style: italic; font-weight: bold;"&gt; 40 em&lt;/span&gt; se questo serve a non fare collassare il vostro &lt;span style="font-style: italic;"&gt;layout&lt;/span&gt;, potete "&lt;span style="font-style: italic;"&gt;mischiare&lt;/span&gt;" sia &lt;span style="font-style: italic; font-weight: bold;"&gt;pixel&lt;/span&gt; che &lt;span style="font-style: italic; font-weight: bold;"&gt;em&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Ecco il CSS restante per il body&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;body {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; background: &lt;span style="color: rgb(153, 0, 0);"&gt;#ffffff&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; border: &lt;span style="color: rgb(255, 0, 0);"&gt;4px&lt;/span&gt; dashed &lt;span style="color: rgb(0, 153, 0);"&gt;silver&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; padding: &lt;span style="color: rgb(255, 0, 0);"&gt;40px&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; margin-left: &lt;span style="color: rgb(0, 153, 0);"&gt;auto&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; margin-right: &lt;span style="color: rgb(0, 153, 0);"&gt;auto&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; width: &lt;span style="color: rgb(255, 0, 0);"&gt;40em&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;E questa e la&lt;span style="font-style: italic;"&gt; cattura&lt;/span&gt; della&lt;span style="font-style: italic;"&gt; schermata&lt;/span&gt; per mostrarvi il lavoro finale&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kLl8btDOtr0/SqpvyOUvDWI/AAAAAAAAAtk/J3nZ5jytdH8/s1600-h/Centered+body.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 280px; height: 320px;" src="http://4.bp.blogspot.com/_kLl8btDOtr0/SqpvyOUvDWI/AAAAAAAAAtk/J3nZ5jytdH8/s320/Centered+body.png" alt="" id="BLOGGER_PHOTO_ID_5380235613476687202" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-5727030262280095441?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/5727030262280095441/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=5727030262280095441&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/5727030262280095441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/5727030262280095441'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/09/un-layout-con-il-body-centrato.html' title='Un Layout con il Body Centrato'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_kLl8btDOtr0/SqpvyOUvDWI/AAAAAAAAAtk/J3nZ5jytdH8/s72-c/Centered+body.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-876290161352945745</id><published>2009-09-11T00:58:00.004+02:00</published><updated>2009-09-11T02:01:41.565+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><category scheme='http://www.blogger.com/atom/ns#' term='Personale'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Riflessione su Linguaggio per il Web</title><content type='html'>Dopo le meritate ferie rieccomi a scrivere su &lt;span style="font-style: italic; font-weight: bold;"&gt;Other to Think&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Nel diverso tempo libero avuto in quest' ultimo periodo, ho cercato di capire quale linguaggio di tipo &lt;span style="font-weight: bold;"&gt;Open Source&lt;/span&gt;(&lt;span style="font-style: italic;"&gt;quale altri se no&lt;/span&gt;)sia il più indicato per lavori sul web.&lt;br /&gt;&lt;br /&gt;Vi anticipo che per forza di cose, non necessariamente il linguaggio ritenuto "&lt;span style="font-style: italic;"&gt;migliore di altri&lt;/span&gt;" sia la scelta migliore(&lt;span style="font-style: italic;"&gt;conclusione personale&lt;/span&gt;) per un determinato ambito, nel caso specifico il web.&lt;br /&gt;&lt;br /&gt;Nonostante &lt;a href="http://www.python.org/"&gt;PYTHON&lt;/a&gt; e &lt;a href="http://www.ruby-lang.org/en/"&gt;RUBY&lt;/a&gt;, sono linguaggi nettamente migliori del &lt;a href="http://www.php.net/"&gt;PHP&lt;/a&gt; e altrettanto innegabile che per lavori web, &lt;span style="font-weight: bold;"&gt;PHP&lt;/span&gt;, ad oggi rimane la scelta migliore per vari motivi che adesso andiamo ad approfondire.  Con&lt;span style="font-weight: bold;"&gt; PHP&lt;/span&gt; diventa molto facile trovare &lt;span style="font-style: italic;"&gt;hosting&lt;/span&gt;  e cosa  di non poco conto l' economicità dei prezzi di &lt;span style="font-style: italic;"&gt;hosting&lt;/span&gt;, se non quando addirittura del tutto gratuiti.&lt;br /&gt;&lt;br /&gt;Stessa cosa non si può dire della controparte, che sia &lt;span style="font-weight: bold;"&gt;PYTHON&lt;/span&gt;, o &lt;span style="font-weight: bold;"&gt;RUBY&lt;/span&gt;  che oltre tutto sono sia più cari i prezzi di &lt;span style="font-style: italic;"&gt;hosting&lt;/span&gt; che molto più rari da trovare(almeno nel mercato informatico  italiano ).    A peggiorare la situazione c'è anche il fatto che applicazioni web &lt;span style="font-weight: bold;"&gt;PYTHON/RUBY&lt;/span&gt; necessitino anche di accesso tramite &lt;span style="font-weight: bold;"&gt;shell&lt;/span&gt;,  se non quando addirittura di una macchina dedicata per poter gestire l' applicazione web.&lt;br /&gt;&lt;br /&gt;Ritornando sul versante &lt;span style="font-weight: bold;"&gt;PHP&lt;/span&gt; e tralasciando quella &lt;span style="font-style: italic; font-weight: bold;"&gt;brutta carogna&lt;/span&gt; di ripetizioni a raffica di &lt;span style="font-weight: bold;"&gt;$ &lt;/span&gt;e  &lt;span style="font-weight: bold;"&gt;&amp;lt;?  ?&amp;gt;  &lt;/span&gt; mischiato nell'&lt;span style="font-style: italic;"&gt; html&lt;/span&gt;,  quello che ne rimane è quanto di meglio uno sviluppatore web possa aspettarsi di trovare.    A maggiore ragione se abbiamo avuto la sfortuna di nascere nel &lt;span style="font-style: italic;"&gt;Paese&lt;/span&gt; di &lt;span style="font-style: italic;"&gt;Dante&lt;/span&gt;,  e non capire&lt;span style="font-style: italic;"&gt; l'inglese&lt;/span&gt;, vedi  &lt;span style="font-style: italic; font-weight: bold;"&gt;tutorials&lt;/span&gt;, &lt;span style="font-style: italic; font-weight: bold;"&gt;guide varie&lt;/span&gt;, e &lt;span style="font-style: italic; font-weight: bold;"&gt;siti&lt;/span&gt; che parlano di &lt;span style="font-weight: bold;"&gt;PHP&lt;/span&gt; in &lt;span style="font-style: italic;"&gt;lingua italiana&lt;/span&gt;, confrontateli con guide &lt;span style="font-style: italic; font-weight: bold;"&gt;pythoniche&lt;/span&gt;  e  &lt;span style="font-style: italic; font-weight: bold;"&gt;rubyste&lt;/span&gt;, e capirete.&lt;br /&gt;&lt;br /&gt;E come non tenere conto dei vari  &lt;span style="font-style: italic; font-weight: bold;"&gt;CMS&lt;/span&gt; alla  &lt;span style="font-style: italic; font-weight: bold;"&gt;Wordpress&lt;/span&gt;, che permettono di gestire il proprio sito web anche a chi del  web non sia necessariamente un &lt;span style="font-style: italic;"&gt;guru&lt;/span&gt; della programmazione,&lt;span style="font-style: italic; font-weight: bold;"&gt; il tutto si riduce a copiare la directory nel posto giusto&lt;/span&gt;,  e al più a qualche &lt;span style="font-style: italic;"&gt;piccolo ritocco&lt;/span&gt;, e se volessimo osare un pochino di più come potremmo non menzionare i famosi &lt;a href="http://www.wampserver.com/en/"&gt;WAMP&lt;/a&gt;, &lt;a href="http://www.mamp.info/en/index.html"&gt;MAMP&lt;/a&gt; o &lt;a href="http://www.apachefriends.org/en/xampp.html"&gt;XAMP&lt;/a&gt; che con &lt;span style="font-style: italic;"&gt;pochi click&lt;/span&gt; ci offrono chiavi in mano tutto l' occorente, con comodissime interfacce grafiche del tipo &lt;a href="http://www.phpmyadmin.net/home_page/index.php"&gt;PhpAdmin&lt;/a&gt; dove possiamo amministrare &lt;a href="http://it.wikipedia.org/wiki/Apache_HTTP_Server"&gt;web server&lt;/a&gt; comprensivo di &lt;a href="http://it.wikipedia.org/wiki/DBMS"&gt;database&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Ad essere onesto anche le controparti &lt;span style="font-weight: bold;"&gt;PYTHON/RUBY&lt;/span&gt; hanno iniziano con &lt;a href="http://www.djangoproject.com/"&gt;Django&lt;/a&gt; e &lt;a href="http://rubyonrails.org/"&gt;Rails&lt;/a&gt;, a fornire qualcosa del tipo "&lt;span style="font-style: italic;"&gt;tutto compreso chiavi in mano&lt;/span&gt;" che trovate &lt;a href="http://bitnami.org/stack/djangostack"&gt;&lt;span style="font-weight: bold;"&gt;qui&lt;/span&gt;&lt;/a&gt;, ma con differenze sostanziali che fanno pendere l'ago della bilancia dalla parte dell'ambiente &lt;span style="font-weight: bold;"&gt;PHP&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;E questo e tutto, opinabile tra l' altro in  quanto frutto di una mia personalissima riflessione.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-876290161352945745?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/876290161352945745/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=876290161352945745&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/876290161352945745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/876290161352945745'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/09/riflessione-su-linguaggio-per-il-web.html' title='Riflessione su Linguaggio per il Web'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-5459170744858420880</id><published>2009-08-09T01:59:00.002+02:00</published><updated>2009-08-09T02:08:36.374+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personale'/><title type='text'>document.writeln(" Buone Vacanze ");</title><content type='html'>&lt;span style="font-family: courier new;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Other to Think&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;vi augura Vacanze geek.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A presto &lt;span style="font-weight: bold;"&gt;;-])&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-5459170744858420880?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/5459170744858420880/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=5459170744858420880&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/5459170744858420880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/5459170744858420880'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/08/documentwriteln-buone-vacanze.html' title='document.writeln(&quot; Buone Vacanze &quot;);'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-7824597077251120830</id><published>2009-08-09T01:17:00.004+02:00</published><updated>2009-08-09T01:57:44.990+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Xhtml'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Html5'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><title type='text'>Come Servire Il Mime-Type Xhtml</title><content type='html'>Ultimamente, molte discussioni accese stanno avendo luogo sui &lt;a href="http://www.markbernstein.org/Jul09/Flames.html"&gt; blog&lt;/a&gt;,   la questione: &lt;span style="font-weight: bold;"&gt;Xhtml&lt;/span&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt; vs&lt;/span&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;html5&lt;/span&gt;.  E ad essere sincero, niente mi fa pensare che nei mesi a venire la diatriba si raffreddi, è con essa gli animi dei sostenitori e dei detrattori dell'uno o dell'altro tipo di linguaggio di markup.&lt;br /&gt;&lt;br /&gt;Una delle maggiori critiche che viene mossa a&lt;span style="font-style: italic; font-weight: bold;"&gt; xhtml&lt;/span&gt;, e quella del &lt;span style="font-weight: bold;"&gt;MIME-TYPE&lt;/span&gt; non riconosciuto da parte dei browser. Vale a dire &lt;span style="font-style: italic; font-weight: bold;"&gt;text/html&lt;/span&gt; invece di &lt;span style="font-style: italic; font-weight: bold;"&gt;xhtml+xml&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Quindi proporrei&lt;/span&gt;(&lt;span style="font-style: italic;"&gt;html5 è ancora allo stato embrionale&lt;/span&gt;)per quanti vorrebbero usare un &lt;span style="font-weight: bold;"&gt;MIME-TYPE&lt;/span&gt; in puro &lt;span style="font-style: italic; font-weight: bold;"&gt;xhtml/xml&lt;/span&gt;,  e mi riferisco a &lt;span style="font-style: italic; font-weight: bold;"&gt;xhtml1.0&lt;/span&gt; di adottare le seguenti modalità.&lt;br /&gt;&lt;br /&gt;Inserire per quanti sono soliti usare il web server Apache, le direttive appena sotto nel file &lt;span style="font-weight: bold;"&gt;.htaccess&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;AddType application/xhtml+xml xhtml&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;RewriteEngine On&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;RewriteBase /&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;RewriteCond %{HTTP_ACCEPT} !application/xhtml\+xml&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;RewriteCond %{HTTP_ACCEPT} (text/html|\*/\*)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;RewriteCond %{REQUEST_FILENAME} .*\.xhtml&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;RewriteRule ^.*$ - "[T=text/html,L]"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Se malauguratamente non aveste la possibilità(&lt;span style="font-style: italic;"&gt;compresi i permessi necessari&lt;/span&gt;) di mettere le mani direttamente sul server, si può sempre risolvere il problema del mancato riconoscimento del &lt;span style="font-weight: bold;"&gt;MIME-TYPE&lt;/span&gt; con uno dei tanti linguaggi di scripting, nel nostro caso &lt;span style="font-style: italic; font-weight: bold;"&gt;PHP&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;?php&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;if&lt;/span&gt; (strpos(&lt;span style="color: rgb(153, 0, 0);"&gt;$_SERVER['HTTP_ACCEPT']&lt;/span&gt;,'application/xhtml+xml'))&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  header('Content-type: application/xhtml+xml; charset=UTF-8');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;} &lt;/span&gt;&lt;span style="color: rgb(0, 153, 0); font-weight: bold;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;else&lt;/span&gt; {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  header('Content-type: text/html; charset=UTF-8');&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;?&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;In attesa che con le meritate ferie si plachino gli animi vi auguro &lt;span style="font-weight: bold;font-size:130%;" &gt;BUONE VACANZE&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-7824597077251120830?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/7824597077251120830/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=7824597077251120830&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/7824597077251120830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/7824597077251120830'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/08/come-servire-il-mime-type-xhtml.html' title='Come Servire Il Mime-Type Xhtml'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-4197708013493659097</id><published>2009-07-16T15:24:00.005+02:00</published><updated>2009-07-16T16:19:08.689+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Editor'/><category scheme='http://www.blogger.com/atom/ns#' term='Vim'/><category scheme='http://www.blogger.com/atom/ns#' term='Howto'/><title type='text'>Aprire un File Binario con Vim</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kLl8btDOtr0/Sl8s8mFFzXI/AAAAAAAAAss/-IDT6TmkWlg/s1600-h/vim-hex.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 235px;" src="http://1.bp.blogspot.com/_kLl8btDOtr0/Sl8s8mFFzXI/AAAAAAAAAss/-IDT6TmkWlg/s320/vim-hex.PNG" alt="" id="BLOGGER_PHOTO_ID_5359051501119851890" border="0" /&gt;&lt;/a&gt;Tante di quelle volte si perde un sacco di tempo nella ricerca di una&lt;span style="font-style: italic; font-weight: bold;"&gt; utility&lt;/span&gt; o &lt;span style="font-style: italic; font-weight: bold;"&gt;programma&lt;/span&gt; che sia per poi scoprire che quello che cerchiamo risiede già sui nostri &lt;span style="font-style: italic; font-weight: bold;"&gt;hard disk&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Ecco un esempio di come usare &lt;a href="http://www.vim.org/"&gt;Vim&lt;/a&gt; o &lt;a href="ftp://ftp.vim.org/pub/vim/pc/"&gt;Gvim&lt;/a&gt; a &lt;span style="font-style: italic; font-weight: bold;"&gt;editor esadecimale&lt;/span&gt;.  Questo vale sia per sistemi&lt;span style="font-style: italic;"&gt; windows&lt;/span&gt; che di tipo &lt;span style="font-style: italic;"&gt;unix&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Da &lt;span style="font-style: italic; font-weight: bold;"&gt;Linux&lt;/span&gt; apriamo la &lt;span style="font-style: italic; font-weight: bold;"&gt;shell&lt;/span&gt; e lanciamo &lt;span style="font-style: italic; font-weight: bold;"&gt;vim&lt;/span&gt; con  il nome del  &lt;span style="font-style: italic; font-weight: bold;"&gt;file-binario&lt;/span&gt; da leggere come da esempio:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;vim -b  nome_file_binario&lt;/span&gt;   ( &lt;span style="font-weight: bold;"&gt;Esc : e %!xxd&lt;/span&gt; ) che apre il file in modo esadecimale.&lt;br /&gt;&lt;br /&gt;Per riportare &lt;span style="font-style: italic;"&gt;vim&lt;/span&gt; al modo &lt;span style="font-style: italic;"&gt;editor&lt;/span&gt; di &lt;span style="font-style: italic;"&gt;testo&lt;/span&gt; ( &lt;span style="font-weight: bold;"&gt;Esc : %!xxd  -r&lt;/span&gt; ).&lt;br /&gt;Il tutto va digitato &lt;span style="font-style: italic; font-weight: bold;"&gt;senza parentesi&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Mentre su &lt;span style="font-style: italic;"&gt;Windows&lt;/span&gt; tutto questo è ancora più facile.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Apriamo &lt;span style="font-style: italic; font-weight: bold;"&gt;Gvim&lt;/span&gt;  &lt;span style="font-style: italic; font-weight: bold;"&gt;Strumenti&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; -&gt;&lt;/span&gt; &lt;span style="font-style: italic; font-weight: bold;"&gt;converti in esadecimale&lt;/span&gt;, e per ritornare al default  &lt;span style="font-style: italic; font-weight: bold;"&gt;Strumenti -&gt; converti da esadecimale&lt;/span&gt;.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kLl8btDOtr0/Sl8zYuZdrKI/AAAAAAAAAs0/vsdOnLNcAok/s1600-h/vim-menu.PNG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 210px; height: 80px;" src="http://1.bp.blogspot.com/_kLl8btDOtr0/Sl8zYuZdrKI/AAAAAAAAAs0/vsdOnLNcAok/s320/vim-menu.PNG" alt="" id="BLOGGER_PHOTO_ID_5359058581458889890" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-4197708013493659097?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/4197708013493659097/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=4197708013493659097&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/4197708013493659097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/4197708013493659097'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/07/aprire-un-file-binario-con-vim.html' title='Aprire un File Binario con Vim'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_kLl8btDOtr0/Sl8s8mFFzXI/AAAAAAAAAss/-IDT6TmkWlg/s72-c/vim-hex.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-227066979954145157</id><published>2009-07-16T10:46:00.002+02:00</published><updated>2009-07-16T11:43:42.344+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Browser'/><title type='text'>Firefox 3.5 una Release Nata Zoppa</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kLl8btDOtr0/Sl7pWiefEjI/AAAAAAAAAsk/AvaT7QCDmP8/s1600-h/firefox-logo-small.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 200px;" src="http://2.bp.blogspot.com/_kLl8btDOtr0/Sl7pWiefEjI/AAAAAAAAAsk/AvaT7QCDmP8/s320/firefox-logo-small.jpg" alt="" id="BLOGGER_PHOTO_ID_5358977180038533682" border="0" /&gt;&lt;/a&gt;Appena passato da &lt;span style="font-weight: bold;"&gt;Firefox 3.0.11&lt;/span&gt; a  &lt;span style="font-weight: bold;"&gt;Firefox 3.5&lt;/span&gt; su &lt;span style="font-weight: bold;"&gt;win&lt;/span&gt;,   t'aspetti delle migliorie e invece cosa ti ritrovi?&lt;br /&gt;&lt;br /&gt;Un bel &lt;a href="http://blog.mozilla.com/security/2009/07/14/critical-javascript-vulnerability-in-firefox-35/"&gt;alert&lt;/a&gt; su &lt;a href="http://blog.mozilla.com/security/"&gt;Mozilla Security&lt;/a&gt; di un bug a pericolosità elevata, e sfruttabile remotamente.  Una dimostrazione di come si possa sfruttare tale bug  su &lt;a href="http://www.milw0rm.com/"&gt;Milworm&lt;/a&gt; con annesso &lt;a href="http://www.milw0rm.com/exploits/9137"&gt;codice&lt;/a&gt; d'esempio. &lt;br /&gt;&lt;br /&gt;Tra le possibili soluzioni(&lt;span style="font-style: italic;"&gt;un passo avanti, e uno indietro&lt;/span&gt;)disabilitare  &lt;a href="https://wiki.mozilla.org/JavaScript:TraceMonkey"&gt;Tracemonkey&lt;/a&gt; è ritornare al vecchio interprete javascript di &lt;span style="font-weight: bold;"&gt;Firefox  3.0.11&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt; &lt;span style="font-weight: bold;"&gt;Se intendete&lt;/span&gt; intraprendere il passo appena citato aprite firefox nella barra degli indirizzi digitate &lt;span style="font-weight: bold; color: rgb(0, 102, 0);"&gt;about:config&lt;/span&gt; scorrete le  voci  sino alla stringa    &lt;span style="font-weight: bold; color: rgb(0, 102, 0);"&gt;javascript.options.jit.content&lt;/span&gt;&lt;strong style="font-weight: bold; color: rgb(0, 102, 0);"&gt;&lt;/strong&gt;,  fate un bel &lt;span style="font-weight: bold;"&gt;doppio click&lt;/span&gt; è impostate il valore a&lt;span style="font-weight: bold;"&gt; false&lt;/span&gt;.  Ricordatevi che questa  è  una "&lt;span style="font-style: italic;"&gt;pezza&lt;/span&gt;" temporanea in attesa dell'uscita di Firefox 3.5.0.1, dove  si stà già lavorando.&lt;br /&gt;&lt;br /&gt;Tra l' altro, ho notato in fase di avvio, un raddoppio(&lt;span style="font-style: italic;"&gt;molto seccante&lt;/span&gt;) del tempo di esecuzione se messo a confronto con la precedente release  &lt;span style="font-style: italic;"&gt;3.0.11&lt;/span&gt;, spero sia solo una pecca di gioventù prossima a essere risolta.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-227066979954145157?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/227066979954145157/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=227066979954145157&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/227066979954145157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/227066979954145157'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/07/firefox-35-una-release-nata-zoppa.html' title='Firefox 3.5 una Release Nata Zoppa'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kLl8btDOtr0/Sl7pWiefEjI/AAAAAAAAAsk/AvaT7QCDmP8/s72-c/firefox-logo-small.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-5543797439798185636</id><published>2009-07-03T21:39:00.003+02:00</published><updated>2009-07-03T21:50:00.071+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Xhtml'/><category scheme='http://www.blogger.com/atom/ns#' term='Html5'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Design'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><title type='text'>XHTML e Morto! Viva le Zuppe di Codice</title><content type='html'>&lt;span style="font-weight: bold;"&gt;&lt;a href="http://www.w3.org/2009/06/xhtml-faq"&gt;XHTML2&lt;/a&gt;  non ha nessun futuro!&lt;/span&gt;&lt;br /&gt;Con buona pace di chi negli ultimi anni, ha cercato di rendere il web un posto migliore per tutti.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Amen!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-5543797439798185636?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/5543797439798185636/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=5543797439798185636&amp;isPopup=true' title='2 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/5543797439798185636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/5543797439798185636'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/07/xhtml-e-morto-viva-le-zuppe-di-codice.html' title='XHTML e Morto! Viva le Zuppe di Codice'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-480476339824182306</id><published>2009-07-03T16:55:00.008+02:00</published><updated>2009-07-03T20:43:43.700+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='Debian'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='Gnu/Linux'/><title type='text'>Le Applicazioni MONO sono Davvero Indispensabili?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kLl8btDOtr0/Sk4lbiHKfpI/AAAAAAAAAr0/dyUAeHl-Tu8/s1600-h/goMono.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 233px; height: 78px;" src="http://1.bp.blogspot.com/_kLl8btDOtr0/Sk4lbiHKfpI/AAAAAAAAAr0/dyUAeHl-Tu8/s320/goMono.png" alt="" id="BLOGGER_PHOTO_ID_5354258161933647506" border="0" /&gt;&lt;/a&gt;Ormai e cosa indubbia che le applicazioni scritte in&lt;a href="http://it.wikipedia.org/wiki/C_sharp"&gt;&lt;span style="font-style: italic;"&gt; C#&lt;/span&gt;&lt;/a&gt; anche se mediante la sua implementazione libera &lt;a href="http://www.mono-project.com/Main_Page"&gt;MONO&lt;/a&gt;, con il tempo possa diventare una spina nel fianco della comunità &lt;a href="http://it.wikipedia.org/wiki/FLOSS"&gt;FLOSS&lt;/a&gt;, non tanto per il linguaggio stesso che e stato Standardizato da enti come l' &lt;a href="http://www.ecma-international.org/"&gt;ECMA&lt;/a&gt;, ma da software di terze parti o da componenti non standardizzati di proprietà della  &lt;a href="http://www.microsoft.com/italy/dynamics/default.mspx"&gt;Microsoft&lt;/a&gt;. La stessa Microsoft &lt;span style="font-style: italic; font-weight: bold;"&gt;garantisce di non denunciare&lt;/span&gt; solo &lt;a href="http://www.novell.com/it-it/home/"&gt;Novell&lt;/a&gt; e i suoi utenti con un &lt;a href="http://www.corriere.it/Primo_Piano/Economia/2006/11_Novembre/03/linux.shtml"&gt;accordo&lt;/a&gt; stipulato(&lt;span style="font-style: italic;"&gt;e criticato da molte parti&lt;/span&gt;) con &lt;a href="http://www.novell.com/it-it/linux/"&gt;Novell&lt;/a&gt; che e la principale sponsorizzatrice del progetto &lt;a href="http://www.mono-project.com/Main_Page"&gt;MONO&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Sul tema recentemente si e espresso(&lt;span style="font-style: italic;"&gt;negativamente&lt;/span&gt;) il fondatore della &lt;a href="http://www.fsf.org/"&gt;FREE SOFTWARE FUNDATION&lt;/a&gt;, &lt;a href="http://it.wikipedia.org/wiki/Richard_Stallman"&gt;Richard Stallman&lt;/a&gt; con un &lt;a href="http://www.fsf.org/news/dont-depend-on-mono"&gt;post &lt;/a&gt;sul &lt;a href="http://www.fsf.org/blogs/"&gt;blog&lt;/a&gt; della stessa &lt;span style="font-weight: bold;"&gt;FSF&lt;/span&gt;, mettendo in guardia da &lt;span style="font-weight: bold;"&gt;MONO&lt;/span&gt; tutti i principali attori del software libero riguardo a problemi che applicazioni in &lt;a href="http://www.mono-project.com/Screenshots"&gt;&lt;span style="font-style: italic;"&gt;C#&lt;/span&gt;&lt;/a&gt; potrebbero portare per via dei brevetti di proprietà della Microsoft, che ogni tanto non manca di rivendicare(&lt;span style="font-style: italic;"&gt;senza fornire prove evidenti&lt;/span&gt;)di &lt;a href="http://it.wikipedia.org/wiki/Fear,_uncertainty_and_doubt"&gt;presunte&lt;/a&gt; violazioni dei suoi brevetti da parte del &lt;a href="http://www.kernel.org/"&gt;&lt;/a&gt;&lt;a href="http://www.kernel.org/"&gt;kernel&lt;/a&gt; Linux.&lt;br /&gt;&lt;br /&gt;Chi segue anche del tutto sporadicamente il &lt;a href="http://planet.gnome.org/"&gt;planet&lt;/a&gt; &lt;a href="http://www.gnome.org/"&gt;GNOME &lt;/a&gt;non può non aver notato l'inasprmento delle discussioni sul tema &lt;span style="font-weight: bold;"&gt;MONO&lt;/span&gt; e in modo specifico su due applicazioni &lt;a href="http://banshee-project.org/"&gt;Banshee&lt;/a&gt;, e &lt;a href="http://projects.gnome.org/tomboy/"&gt;Tomboy&lt;/a&gt;, il primo un player musicale e il secondo una applicazione per tenere traccia di note personali.&lt;br /&gt;&lt;br /&gt;Mi chiedo come sia possibile che una "&lt;span style="font-style: italic;"&gt;manciata&lt;/span&gt;" di programmi che in fin dei conti non sono altro che"&lt;span style="font-style: italic;"&gt;copie&lt;/span&gt;" di applicazioni che nel mondo &lt;a href="http://www.flossproject.org/"&gt;FLOSS&lt;/a&gt; abbondano e senza stare a fare il &lt;span style="font-weight: bold;"&gt;PRI- PRO- QUO &lt;/span&gt;del se sono &lt;span style="font-weight: bold;"&gt;migliori&lt;/span&gt; o&lt;span style="font-weight: bold;"&gt; peggiori&lt;/span&gt;, possano dividere la comunità e gli sviluppatori del &lt;span style="font-weight: bold;"&gt;FREE SOFTWARE.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Essendo un utente &lt;a href="http://www.gnome.org/"&gt;Gnome&lt;/a&gt;,non ho mai avuto l'esigenza di usare i sopra citati programmi e a ragion veduta  me né terrò a debita distanza. &lt;span style="font-weight: bold;"&gt;Ma quello che veramente non riesco a capire&lt;/span&gt;, è il motivo che spinge gli sviluppatori &lt;span style="font-weight: bold;"&gt;Gnome&lt;/span&gt; a dover obbligatoriamente inserire &lt;span style="font-style: italic; font-weight: bold;"&gt;Banshee&lt;/span&gt;, &lt;span style="font-style: italic; font-weight: bold;"&gt;Tomboy&lt;/span&gt; e magari anche &lt;a href="http://do.davebsd.com/"&gt;&lt;span style="font-style: italic;"&gt;Gnome-Do&lt;/span&gt;&lt;/a&gt;, che porterebbe per forza di cose all ' inserimento dell' ambiente &lt;span style="font-weight: bold;"&gt;Mono&lt;/span&gt; nelle macchine degli utenti, che magari con &lt;span style="font-weight: bold;"&gt;Mono non vogliono niente avere a che fare&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Quello che in questa vicenda mi rattrista più di tutto(&lt;span style="font-style: italic;"&gt;mettendo da parte &lt;a href="http://www.ubuntu.com/"&gt;Ubuntu&lt;/a&gt;&lt;/span&gt;), e che distribuzioni come &lt;a href="http://www.debian.org/"&gt;Debian&lt;/a&gt;, che hanno sempre delineato un punto fermo tra il &lt;a href="http://it.wikipedia.org/wiki/Software_libero"&gt;software libero&lt;/a&gt;, e quello che comunque non rispecchia a pieno lo standard libero non possono(&lt;span style="font-style: italic;"&gt;per quale motivo poi?&lt;/span&gt;) non fare a meno di un software come &lt;span style="font-style: italic; font-weight: bold;"&gt;Tomboy&lt;/span&gt;, che&lt;a href="http://fedoraproject.org/it/"&gt; Fedora&lt;/a&gt; ha deciso di sostituire con &lt;a href="http://live.gnome.org/Gnote"&gt;Gnote&lt;/a&gt;. Evidentemente visto che &lt;span style="font-weight: bold;"&gt;Novell&lt;/span&gt; e una delle maggiori sponsorizzatrici di&lt;span style="font-weight: bold;"&gt; Gnome&lt;/span&gt;, e il capo sviluppatore di &lt;span style="font-weight: bold;"&gt;Mono&lt;/span&gt;, e quel &lt;a href="http://it.wikipedia.org/wiki/Miguel_de_Icaza"&gt;Miguel Icaza&lt;/a&gt; che è stato lo sviluppatore di &lt;span style="font-weight: bold;"&gt;Gnome&lt;/span&gt; stesso be.. qualche &lt;a href="http://tirania.org/blog/"&gt;forzatura&lt;/a&gt; ad includere &lt;span style="font-weight: bold;"&gt;Mono&lt;/span&gt; in &lt;span style="font-weight: bold;"&gt;Gnome&lt;/span&gt; evidentemente cè.&lt;br /&gt;&lt;br /&gt;Che sia arrivato il momento di iniziare a provare il &lt;a href="http://www.kde.org/"&gt;KDE4&lt;/a&gt;, &lt;span style="font-style: italic; font-weight: bold;"&gt;che tra l'altro e un progetto di taglio più europeo&lt;/span&gt;, o addirittura di iniziare la cernita di qualche altra distribuzione? Certamente &lt;a href="http://fedoraproject.org/it/"&gt;Fedora&lt;/a&gt;, &lt;a href="http://www2.mandriva.com/"&gt;Mandriva&lt;/a&gt;, o la &lt;a href="http://www.slackware.com/"&gt;Slackware&lt;/a&gt; male non sono.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-480476339824182306?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/480476339824182306/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=480476339824182306&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/480476339824182306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/480476339824182306'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/07/le-applicazioni-mono-sono-davvero.html' title='Le Applicazioni MONO sono Davvero Indispensabili?'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_kLl8btDOtr0/Sk4lbiHKfpI/AAAAAAAAAr0/dyUAeHl-Tu8/s72-c/goMono.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-5608138062935681792</id><published>2009-07-01T17:24:00.002+02:00</published><updated>2009-07-01T17:41:37.823+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personale'/><category scheme='http://www.blogger.com/atom/ns#' term='Gnu/Linux'/><title type='text'>I Dieci Motivi Ironici(ma non troppo)per cui Linux non sarà mai sui Desktop degli Utenti Medi di PC</title><content type='html'>Visto l' interesse e le discussioni di &lt;span style="font-style: italic;"&gt;riviste&lt;/span&gt; di &lt;span style="font-style: italic;"&gt;settore&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;forum&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;usenet&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;blog&lt;/span&gt;, e di appassionati del genere, su quale possa essere l'anno in cui &lt;span style="font-style: italic;"&gt;Linux&lt;/span&gt; rosicchi grandi fette di utenze &lt;span style="font-style: italic;"&gt;Desktop&lt;/span&gt; al sistema a&lt;a href="http://windows.microsoft.com/en-US/windows7/products/home?os=nonwin7"&gt; finestre&lt;/a&gt;, ho deciso di stilare una mia personale lista dei &lt;span style="font-weight: bold;"&gt;dieci&lt;/span&gt; motivi per cui &lt;span style="font-style: italic;"&gt;Linux&lt;/span&gt; non occuperà  mai i &lt;span style="font-style: italic;"&gt;Desktop&lt;/span&gt; sui pc degli &lt;a href="http://209.85.129.132/search?q=cache:bzA4MBpyyQ4J:www.amigaplatform.com/utente_medio.pdf+utente+medio+di+computer&amp;amp;cd=3&amp;amp;hl=it&amp;amp;ct=clnk&amp;amp;gl=it"&gt;utente medio&lt;/a&gt; di computer a discapito di &lt;span style="font-style: italic;"&gt;Windows&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Questa e una brevissima lista(&lt;span style="font-style: italic;"&gt;IMHO&lt;/span&gt;)dei primi dieci motivi per cui &lt;span style="font-style: italic;"&gt;Linux&lt;/span&gt; non prenderà mai piede sui &lt;span style="font-style: italic;"&gt;Desktop&lt;/span&gt; dell'utente medio di Computer.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1)&lt;/span&gt; All'utente medio di pc non interessa un cavolo capire come funzionano i computer e la tecnologia in generale, basta che funzioni.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2)&lt;/span&gt; Il Pc ideale per l'utente medio dovrebbe fare tutto quello che l'utente richiede possibilmente con un solo click. Figuriamoci se mettersi a smanettare su di un terminale astrusi comandi.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3) &lt;/span&gt;Alle masse di utenti di pc interessano soltanto quattro tipi di file che sono i seguenti: MP3, Video, foto pornografiche, e virus. Anche se di quest' ultimi farebbero molto volentieri a meno.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4)&lt;/span&gt; Perché dovrebbe interessare loro un' altro sistema gratuito e libero? Se già tutto il software che usano, sistema operativo compreso sono già aggratis?'&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5)&lt;/span&gt; Tutti gli applicativi più "fighi" che conoscono sono per windows, quindi perché provare un altro sistema operativo? E poi quello che manca su windows l'ho fornisce direttamente Linux con le versioni windows dei sui migliori software.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;6)&lt;/span&gt; E stata già una faticaccia imparare a dover fare copia e incolla, figuriamoci adesso se mettersi ad studiare concetti del tutto nuovi.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;7)&lt;/span&gt; Quando un utente medio di pc ha dei problemi, trova sempre un amico a portata di mano che gli risolve il problema, ma con Linux dove lo trova un amico che glielo risolva?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;8)&lt;/span&gt; Su Linux c'è il problema delle periferiche che non funzionano, mentre su Windows funzionano perfettamente anche se alla fine quelle stesse periferiche non vengono mai usate.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;9)&lt;/span&gt; Una delle mancanze più sentite di Linux è quella della scarsa documentazione, mentre su di una qualunque versione di Windows la documentazione la trovi sempre e in abbondanza. Peccato che tutto questo sia uno spreco visto  che la documentazione non la legge mai nessuno.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;10)&lt;/span&gt; Con l'attuale governo in carica, usando Linux si verrebbe accusati di essere comunisti, se così fosse, poi come fanno a leccare il culo alla Microsoft, e a Berlusconi?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(204, 0, 0);"&gt;ps.&lt;/span&gt; per quanti prendessero seriamente o a male uno qualsiasi di questi motivi, il mio consiglio e quello di &lt;a href="http://www.ecdl.it/"&gt;patentarsi&lt;/a&gt;. Così quando avrete delle difficoltà con i computer potrete ammonirli con la patente.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-5608138062935681792?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/5608138062935681792/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=5608138062935681792&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/5608138062935681792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/5608138062935681792'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/07/i-dieci-motivi-ironicima-non-troppoper.html' title='I Dieci Motivi Ironici(ma non troppo)per cui Linux non sarà mai sui Desktop degli Utenti Medi di PC'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-598193963679779235</id><published>2009-06-21T17:24:00.003+02:00</published><updated>2009-12-06T18:17:34.546+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sistema'/><category scheme='http://www.blogger.com/atom/ns#' term='SicurezzaPC'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows-OS'/><title type='text'>netstat: Statistiche di Connessioni e Routing</title><content type='html'>Come &lt;span style="font-style: italic;"&gt;Linux&lt;/span&gt;, anche &lt;span style="font-style: italic;"&gt;Windows&lt;/span&gt; comprende comandi per avere informazioni e statistiche sulle connessioni in uso dal sistema, nello specifico analizziamo &lt;span style="font-style: italic;"&gt;netstat&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Netstat&lt;/span&gt; e un comando per analizzare il protocollo usato nelle connessioni tra il nostro sistema(&lt;span style="font-style: italic;"&gt;pc&lt;/span&gt;) e sistemi remoti che dialogano tramite determinate porte con il nostro sistema.&lt;br /&gt;&lt;br /&gt;Per poter usare il comando &lt;span style="font-style: italic;"&gt;netstat&lt;/span&gt;, basta aprire il prompt dei comandi situato in &lt;span style="font-style: italic;"&gt;start&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;-&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt; tutti i programmi&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;-&gt;&lt;/span&gt; &lt;span style="font-style: italic;"&gt;accessori &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;-&gt;&lt;/span&gt; &lt;span style="font-style: italic;"&gt;prompt dei comandi&lt;/span&gt;. Una volta aperto il &lt;span style="font-style: italic;"&gt;prompt dei comandi&lt;/span&gt; si può digitare &lt;span style="font-style: italic;"&gt;netstat&lt;/span&gt; con una serie di opzioni che forniscono output differenti a secondo della opzione scelta.&lt;br /&gt;&lt;br /&gt;Vediamo in che modo possiamo usare &lt;span style="font-style: italic;"&gt;netstat&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Digitanto al prompt solo &lt;span style="font-style: italic;"&gt;netstat&lt;/span&gt;, senza opzioni avremo la statistica che riguarda la sola connessione corrente, mentre con uno dei seguenti &lt;span style="font-style: italic;"&gt;switch netstat&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;[-a] [-e] [-n] [-o] [-s] [-p proto] [-r]&lt;/span&gt;, che potremo associare anche in modo multiplo, avremo una statistica molto più esaustiva e dettagliata.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;netstat&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;-?&lt;/span&gt; e il comando di aiuto che ci fornisce tutti gli &lt;span style="font-style: italic;"&gt;switch&lt;/span&gt;(&lt;span style="font-style: italic;"&gt;opzioni&lt;/span&gt;)disponibili e il loro significato d'utilizzo che analizziamo sotto.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;-a&lt;/span&gt;    &lt;span style="font-style: italic;"&gt;serve per visualizzare le porte  in ascolto sul nostro Pc&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;-e&lt;/span&gt;    &lt;span style="font-style: italic;"&gt;serve per le statistiche sulla nostra connessione Ethernet&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;-n &lt;/span&gt;   &lt;span style="font-style: italic;"&gt;serve per visualizzare le porte sul nostro Pc in una forma numerica&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;-o &lt;/span&gt;   &lt;span style="font-style: italic;"&gt;serve per visualizzare l'id associato al processo che sta usando la connessione&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;-p&lt;/span&gt;   &lt;span style="font-style: italic;"&gt;serve per visualizzare le connessioni del protocollo chiamato proto che ha come valori TCP, UDP, Ipv6, ICMP, ecc,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;-s  &lt;/span&gt;  &lt;span style="font-style: italic;"&gt;e una opzione che può essere associata alle opzioni '&lt;span style="font-weight: bold;"&gt;-e&lt;/span&gt;' e '&lt;span style="font-weight: bold;"&gt;-p&lt;/span&gt;', per una visualizzazione più estesa e completa della statistica&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;-r &lt;/span&gt;   &lt;span style="font-style: italic;"&gt;serve per visualizzare l' instradamento del routing(tabella di routing)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ecco un esempio di &lt;span style="font-style: italic;"&gt;switch&lt;/span&gt; multiplo &lt;span style="font-weight: bold;"&gt;[-a n o ]&lt;/span&gt; sulla mia macchina &lt;span style="font-weight: bold;"&gt;xp&lt;/span&gt;, e il relativo output:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;protocollo, porte in uso, stato, e il pid usato&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Microsoft Windows XP [Versione 5.1.2600]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;(C) Copyright 1985-2001 Microsoft Corp.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\Documents and Settings\@rchieCreative&gt;netstat -ano&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Connessioni attive&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  Proto  Indirizzo locale          Indirizzo esterno        Stato           PID&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       1024&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  TCP    79.43.34.55:1590       80.65.228.130:80       TIME_WAIT       0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  TCP    79.43.34.55:1598       80.65.228.130:80       TIME_WAIT       0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  TCP    79.43.34.55:1601       80.65.228.130:80       TIME_WAIT       0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  TCP    127.0.0.1:1042         127.0.0.1:1041         TIME_WAIT       0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  TCP    192.168.1.2:139        0.0.0.0:0              LISTENING       4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  UDP    0.0.0.0:445            *:*                                    4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  UDP    0.0.0.0:500            *:*                                    780&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  UDP    0.0.0.0:1026           *:*                                    1236&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  UDP    0.0.0.0:1050           *:*                                    1236&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  UDP    0.0.0.0:1053           *:*                                    1236&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  UDP    0.0.0.0:1054           *:*                                    1236&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  UDP    0.0.0.0:1060           *:*                                    1236&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  UDP    0.0.0.0:4500           *:*                                    780&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  UDP    79.43.34.55:123        *:*                                    1120&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  UDP    127.0.0.1:123          *:*                                    1120&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  UDP    127.0.0.1:1900         *:*                                    1352&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  UDP    192.168.1.2:123        *:*                                    1120&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  UDP    192.168.1.2:137        *:*                                    4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  UDP    192.168.1.2:138        *:*                                    4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  UDP    192.168.1.2:1900       *:*                                    1352&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;E adesso per concludere questa breve guida, vedremo come tramite una delle nostre tante incursioni sul web, il nostro computer "&lt;span style="font-style: italic;"&gt;dialoga&lt;/span&gt;" in modo a noi completamente invisibile con il resto del mondo.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;stato di una porta      significato&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;CLOSE WAIT&lt;/span&gt;              &lt;span style="font-style: italic;"&gt;porta che chiude la connessione&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;CLOSED&lt;/span&gt;                  &lt;span style="font-style: italic;"&gt;porta non in uso (chiusa)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;CLOSING&lt;/span&gt;                 &lt;span style="font-style: italic;"&gt;entrambe le porte stanno chiudendo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                        (trasmissione dati non finita)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ESTABLISHED&lt;/span&gt;             &lt;span style="font-style: italic;"&gt;connessione in corso&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;FIN WAIT 1&lt;/span&gt;              &lt;span style="font-style: italic;"&gt;porta chiusa (connessione in conclusione)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;FIN WAIT 2&lt;/span&gt;              &lt;span style="font-style: italic;"&gt;porta chiusa (porta computer remoto in attesa)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;LAST ACK&lt;/span&gt;                &lt;span style="font-style: italic;"&gt;porta chiusa (computer remoto in attesa di conferma)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;LISTENING&lt;/span&gt;               &lt;span style="font-style: italic;"&gt;porta in attesa (ascolto connessioni in arrivo)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SYN RECV&lt;/span&gt;                &lt;span style="font-style: italic;"&gt;inizio connessione in corso&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SYN SEND&lt;/span&gt;                &lt;span style="font-style: italic;"&gt;tentativo di instaurare connessione in corso&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;TIME WAIT&lt;/span&gt;               &lt;span style="font-style: italic;"&gt;in attesa di conferma (conclusione della connessione)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UNKNOWN&lt;/span&gt;                 &lt;span style="font-style: italic;"&gt;stato della porta sconosciuto&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;con questo e tutto. Se avete intenzione di approfondire l'argomento, non vi resta che dare un' occhiata al &lt;a href="http://en.wikipedia.org/wiki/TCP/IP"&gt;TCP-ip&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/a&gt;(&lt;span style="font-style: italic;"&gt;si pronuncia TCP-AI&lt;/span&gt;) e al mondo del &lt;span style="font-weight: bold;"&gt;&lt;a href="http://it.wikipedia.org/wiki/Suite_di_protocolli_Internet"&gt;networking&lt;/a&gt; &lt;/span&gt;in generale.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-598193963679779235?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/598193963679779235/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=598193963679779235&amp;isPopup=true' title='2 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/598193963679779235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/598193963679779235'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/06/netstat-statistiche-di-connessioni-e.html' title='netstat: Statistiche di Connessioni e Routing'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-5904903739907728481</id><published>2009-06-07T18:23:00.005+02:00</published><updated>2009-07-12T17:05:47.746+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personale'/><category scheme='http://www.blogger.com/atom/ns#' term='SicurezzaPC'/><category scheme='http://www.blogger.com/atom/ns#' term='Privacy'/><title type='text'>e/mails Usa e Getta Contro lo Spam</title><content type='html'>Credo che vi sia già capitato che iscrivendovi ad una&lt;span style="font-style: italic;"&gt; mailing list&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;sito&lt;/span&gt; o altro servizio web in generale, tempo una mezza giornata, e vi siete ritrovati con la vostra casella di posta stracolma di ogni schifezza possibile, dalle &lt;span style="font-style: italic; font-weight: bold;"&gt;e/mail&lt;/span&gt; pubblicitarie allo &lt;span style="font-style: italic; font-weight: bold;"&gt;spam&lt;/span&gt; vero e proprio del tipo: &lt;span style="font-style: italic; font-weight: bold;"&gt;Natural Penis Enlargment Guide&lt;/span&gt; o vere e proprie &lt;span style="font-style: italic;"&gt;catene&lt;/span&gt; di &lt;span style="font-style: italic;"&gt;sant' Antonio&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Beh.. da oggi(&lt;span style="font-style: italic;"&gt;se non sapevate dell'esistenza di questi servizi&lt;/span&gt;)potrete fare le vostre iscrizioni un po' più a cuor leggero, specie se il &lt;span style="font-style: italic;"&gt;sito&lt;/span&gt; in questione vi crea dubbi.&lt;br /&gt;&lt;br /&gt;La lista dei servizi di &lt;span style="font-style: italic; font-weight: bold;"&gt;mail usa-e-getta&lt;/span&gt; è sicuramente più lunga di questa propostovi qui, ma vi posso garantire che i servizi in questa lista sono tra i più efficienti e sicuri di tutto l'intero web.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.spambox.us/"&gt;spambox.us&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.tempomail.fr/creation_en_php"&gt;tempomail.fr&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.mailscrap.com/"&gt;mailscrap.com&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://spamfree24.org/"&gt;spamfree24.org&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://spam.la/"&gt;spam.la&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.dodgeit.com/"&gt;dodgeit.com&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.bugmenot.com/"&gt;bugmenot.com&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;ul&gt;&lt;li&gt;&lt;a href="http://10minutemail.com/10MinuteMail/index.html"&gt;10minutemail.com&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.tempinbox.com/"&gt;tempinbox.com&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;ul&gt;&lt;li&gt;&lt;a href="http://www.kasmail.com/"&gt;kasmail.com&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.mailinator.com/"&gt;mailinator.com&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://mytrashmail.com/"&gt;mytrashmail.com&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.mailexpire.com/"&gt;mailexpire.com&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.guerrillamail.com/"&gt;guerrillamail.com&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;usate queste &lt;span style="font-style: italic; font-weight: bold;"&gt;mail&lt;/span&gt; per tutto quello che volete, solo cosi potrete garantirvi di mantenere la &lt;span style="font-weight: bold;"&gt;spazzatura&lt;/span&gt; lontana dal vostro &lt;span style="font-style: italic; font-weight: bold;"&gt;account principale&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-5904903739907728481?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/5904903739907728481/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=5904903739907728481&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/5904903739907728481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/5904903739907728481'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/06/emails-usa-e-getta-contro-lo-spam.html' title='e/mails Usa e Getta Contro lo Spam'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-8513066590149910303</id><published>2009-05-01T18:09:00.009+02:00</published><updated>2009-05-28T20:01:09.158+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Sistema'/><category scheme='http://www.blogger.com/atom/ns#' term='Gnu/Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Shell'/><title type='text'>Controllo del Sistema Tramite Shell</title><content type='html'>Per quanti siano convinti che il monitoraggio di una &lt;span style="font-style: italic; font-weight: bold;"&gt;linux box&lt;/span&gt; passi "&lt;span style="font-style: italic;"&gt;esclusivamente&lt;/span&gt;" dal monitor di sistema, o da una delle tante utility grafiche che "&lt;span style="font-style: italic;"&gt;passano&lt;/span&gt;" come output  grafico accattivanti e coloratissime schermate,&lt;span style="font-style: italic; font-weight: bold;"&gt; beh..&lt;/span&gt;, sappiate che i sistemi di tipo &lt;a href="http://it.wikipedia.org/wiki/Unix"&gt;unix&lt;/a&gt;, hanno sempre avuto (&lt;span style="font-style: italic;"&gt;dai tempi dei terminali a soli caratteri&lt;/span&gt;)le loro efficenti &lt;a href="http://it.wikipedia.org/wiki/Utilit%C3%A0_%28informatica%29"&gt;utility&lt;/a&gt; per monitorare il sistema.&lt;br /&gt;&lt;br /&gt;Tra queste di utility cè &lt;span style="font-weight: bold;"&gt;free&lt;/span&gt; per visualizzare la memoria usata e quella rimanente libera.&lt;br /&gt;Potete scegliere di  usare con il comando &lt;span style="font-weight: bold;"&gt;free&lt;/span&gt; una serie di &lt;span style="font-style: italic;"&gt;switch&lt;/span&gt; nel modo in cui intendete visualizzare l'unità della memoria.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Ecco alcuni esempi &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;free -b&lt;/span&gt; per visualizzare la memoria dettagliata in &lt;span style="font-style: italic;"&gt;byte singolo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;free -m&lt;/span&gt; per visualizzare la memoria dettagliata in &lt;span style="font-style: italic;"&gt;megabyte&lt;/span&gt;&lt;br /&gt;se intendete tenere(&lt;span style="font-style: italic;"&gt;in tempo reale&lt;/span&gt;) costantemente sotto controllo l'uso della memoria cè lo &lt;span style="font-style: italic;"&gt;switch&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;-s&lt;/span&gt;, che può essere usato anche con uno dei precedenti  &lt;span style="font-style: italic;"&gt;switch&lt;/span&gt; in questo modo&lt;span style="font-weight: bold;"&gt; free -m -s2&lt;/span&gt;. Vale  a dire visualizza dettagli della memoria in &lt;span style="font-style: italic;"&gt;megabyte&lt;/span&gt; ogni&lt;span style="font-weight: bold;"&gt; 2&lt;/span&gt; secondi.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;archie@geek:~$ free&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;              total    used     free    shared   buffers   cached&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mem:          638520  282680   355840        0     14948   134296&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;-/+ buffers/cache:    133436   505084&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Swap:      2240984         0   2240984&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;df&lt;/span&gt; per lo spazio libero su disco, il comando &lt;span style="font-weight: bold;"&gt;df&lt;/span&gt;, può essere usato(&lt;span style="font-style: italic;"&gt;anche&lt;/span&gt;) su vari tipi di file system in coppia con il comando&lt;span style="font-style: italic;"&gt; mount&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Esempio&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;archie@geek:~$ df&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;File System        blocchi  di  1k  Usati   Dispon.  Uso% Montato su&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;/dev/sda1            41231344     2779736  36357136  8% /&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;tmpfs                  319260           0    319260  0% /lib/init/rw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;varrun                 319260          96    319164  1% /var/run&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;varlock                319260           0    319260  0% /var/lock&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;udev                   319260         164    319096  1% /dev&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;tmpfs                  319260        1200    318060  1% /dev/shm&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;lrm                    319260        2392    316868  1% /lib/modules/2.6.28-11-generic/volatile&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;/dev/sda6            36337352      186572  34304916  1% /home         &lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;du&lt;/span&gt; per lo spazio occupato da directory e files sul disco. Il comando &lt;span style="font-weight: bold;"&gt;du&lt;/span&gt; a molte opzioni quindi vi consiglio di dare un bel &lt;span style="font-style: italic;"&gt;man du&lt;/span&gt; per approfondimenti.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Esempio&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;archie@geek:~$ du&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;88      ./.gconfd&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;0       ./.gvfs&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4       ./Musica&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;8       ./.idlerc&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;20      ./.cache&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4       ./Documenti&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;12      ./.fontconfig&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;8       ./.config/gtk-2.0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4       ./.config/gnome-session/saved-session&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;8       ./.config/gnome-session&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;28      ./.config&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4       ./Pubblici&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;8       ./.gconf/desktop/gnome/accessibility/keyboard&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;12      ./.gconf/desktop/gnome/accessibility&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;8       ./.gconf/desktop/gnome/applications/window_manager&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;12      ./.gconf/desktop/gnome/applications&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;8       ./.gconf/desktop/gnome/background&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[output tagliato per abbreviare]&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ulimit&lt;/span&gt; per limitare tutta una serie di eventi(&lt;span style="font-style: italic;"&gt;dai core dumb, alla grandezza dei files&lt;/span&gt;) su files e componenti del sistema, qui e usato con lo &lt;span style="font-style: italic; font-weight: bold;"&gt;switch -a&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Esempio&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;archie@geek:~$ ulimit -a&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;core file size      (blocks, -c) 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;data seg size       (kbytes, -d) unlimited&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;scheduling priority         (-e) 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;file size           (blocks, -f) unlimited&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;pending signal              (-i) 5120&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;max locked memory   (kbytes, -l) 32&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;max memory size     (kbytes, -m) unlimited&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;open files                  (-n) 1024&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;pipe size        (512 bytes, -p) 8&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;POSIX message queues (bytes, -q) 819200&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;real-time priority          (-r) 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;stack size           (kbytes,-s) 8192&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;cpu time            (seconds,-t) unlimited&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;max user processes          (-u) 5120&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;virtual memory       (kbytes,-v) unlimited&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;file locks                  (-x) unlimited&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;vmstat&lt;/span&gt; per visualizzare una istantanea del sistema, dalla &lt;span style="font-style: italic;"&gt;memoria virtuale&lt;/span&gt;, alla &lt;span style="font-style: italic;"&gt;swap&lt;/span&gt;, alla&lt;span style="font-style: italic;"&gt; cpu&lt;/span&gt;, sino al&lt;span style="font-style: italic;"&gt; carico&lt;/span&gt; di &lt;span style="font-style: italic;"&gt;sistema&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Esempio&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;archie@geek:~$ vmstat&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;procs -----------memory------------ ---swap-- -------io------ -system-- ----cpu----&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;r   b    swpd   free  buff     cache    si   so    bi   bo     in    cs us sy id wa&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2   0       0  352980 15496    135004    0    0    16    1    261    90  2  2 95  0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;top&lt;/span&gt; per visualizzare e controllare i &lt;span style="font-style: italic;"&gt;processi&lt;/span&gt; sul &lt;span style="font-style: italic;"&gt;sistema&lt;/span&gt;.  Visto che i comandi per controllare i "&lt;span style="font-style: italic;"&gt;processi interni&lt;/span&gt;" a &lt;span style="font-weight: bold;"&gt;top&lt;/span&gt; sono parecchi e con scopi differenti tra loro, eccovi uno &lt;span style="font-style: italic;"&gt;screenshots&lt;/span&gt; di &lt;span style="font-weight: bold;"&gt;top&lt;/span&gt;, e vi rimando alla solita man page(&lt;span style="font-style: italic;"&gt;man top&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;archie@geek:~$ top&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kLl8btDOtr0/Sfst4ccqVGI/AAAAAAAAAq8/ndo2Hro7q7Y/s1600-h/top.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 203px;" src="http://1.bp.blogspot.com/_kLl8btDOtr0/Sfst4ccqVGI/AAAAAAAAAq8/ndo2Hro7q7Y/s320/top.png" alt="" id="BLOGGER_PHOTO_ID_5330905031655445602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;pstree&lt;/span&gt; utility per vedere tramite una comoda visualizzazione ad albero, i &lt;span style="font-style: italic;"&gt;processi&lt;/span&gt; che a loro volta  avviano altri &lt;span style="font-style: italic;"&gt;sottoprocessi&lt;/span&gt;, con  il loro ordine di avvio.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Esempio&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;archie@geek:~$ pstree&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;init─┬─NetworkManager&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─anacron───sh───run-parts───apt───sleep&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─atd&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─avahi-daemon───avahi-daemon&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─bluetoothd&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─bonobo-activati───{bonobo-activati}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─console-kit-dae───63*[{console-kit-dae}]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─cron&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─cupsd&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─2*[dbus-daemon]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─dbus-launch&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─dd&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─fast-user-switc&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─gconfd-2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─gdm───gdm─┬─Xorg&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;│           └─x-session-manag─┬─bluetooth-apple&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;│                    &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─evolution-alarm───{evolution-alarm}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;│                             ├─gnome-panel&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;│                             ├─metacity&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;│          &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  ├─nautilus&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;│                             ├─nm-applet&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;│                             ├─python&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;│                    &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─seahorse-agent&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;│                             ├─ssh-agent&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;│                             ├─update-notifier&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;│                    &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;└─{x-session-manag}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─6*[getty]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─gnome-keyring-d&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─gnome-power-man&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─gnome-screensav&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─gnome-settings-───{gnome-settings-}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─gnome-terminal─┬─bash───top&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;│                ├─bash───pstree&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;│                ├─gnome-pty-helpe&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;│                └─{gnome-terminal}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─gvfs-fuse-daemo───3*[{gvfs-fuse-daemo}]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─gvfs-gphoto2-vo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─gvfs-hal-volume&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─gvfsd&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─gvfsd-burn&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─gvfsd-trash&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─hald───hald-runner─┬─hald-addon-inpu&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;│                    └─hald-addon-stor&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─indicator-apple&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─klogd&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─mixer_applet2───{mixer_applet2}&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─multiload-apple&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─nm-system-setti&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─notify-osd&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─pulseaudio─┬─gconf-helper&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;│   &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;└─2*[{pulseaudio}]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─syslogd&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─system-tools-ba&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─trashapplet&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;├─udevd&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;└─wpa_supplicant&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ps &lt;/span&gt;che mostra i programmi in esecuzione con il loro relativo &lt;span style="font-style: italic;"&gt;pid&lt;/span&gt;. Il comando &lt;span style="font-weight: bold;"&gt;ps&lt;/span&gt; ha molte opzioni utili che potete usare sia singolarmente che in modo concatenato. Per &lt;a href="http://othertothink.blogspot.com/2008/11/visualizare-i-processi-in-un-sistema.html"&gt;approfondire&lt;/a&gt; cè il solito &lt;span style="font-style: italic;"&gt;man ps&lt;/span&gt; che ci chiarira tutto.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Esempio&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;archie@geek:~$ ps&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;PID  TTY         TIME  CMD&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3091  pts/0   00:00:00  bash&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;7510  pts/0   00:00:00: ps&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;uptime&lt;/span&gt; mostra da quanto tempo una macchina e in funzione, e quanti utenti la stanno usando.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Esempio&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;archie@geek:~$ uptime&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;01:21:32 up  2:44,   2 users,  load  average: 0.29, 0.18, 0.06&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;w &lt;/span&gt;  e simile a &lt;span style="font-weight: bold;"&gt;uptime&lt;/span&gt;, ma  ci offre tutta una serie di dettagli in più su che &lt;span style="font-style: italic;"&gt;applicazioni&lt;/span&gt; stanno usando gli &lt;span style="font-style: italic;"&gt;utenti&lt;/span&gt;, da quando sono&lt;span style="font-style: italic;"&gt; loggati&lt;/span&gt;, sino all'uso che stanno facendo della &lt;span style="font-style: italic;"&gt;cpu&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Esempio&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;archie@geek:~$ w&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;01:21:32 up  2:44,  2 users,  load  average: 0.26, 0.17, 0.06&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;USER     TTY      FROM               LOGIN@   IDLE   JCPU   PCPU WHAT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;archie   tty?     :0                22:41    2:44m  1:05   1.00s x-session-manager&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;archie   pts/0    :0.0              22:49    0.00s  0.76s  0.03s w&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-8513066590149910303?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/8513066590149910303/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=8513066590149910303&amp;isPopup=true' title='5 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/8513066590149910303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/8513066590149910303'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/05/controllo-del-sistema-tramite-shell.html' title='Controllo del Sistema Tramite Shell'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_kLl8btDOtr0/Sfst4ccqVGI/AAAAAAAAAq8/ndo2Hro7q7Y/s72-c/top.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-1863376046950712304</id><published>2009-04-23T01:02:00.010+02:00</published><updated>2009-04-24T21:11:45.109+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PIL'/><category scheme='http://www.blogger.com/atom/ns#' term='Programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>PIL Immagini con Python</title><content type='html'>&lt;a href="http://www.pythonware.com/products/pil/"&gt;PIL&lt;/a&gt; e una libreria &lt;a href="http://www.python.org"&gt;Python&lt;/a&gt; che permette di elaborare, e nello stesso tempo creare immagini in molteplici formati tra cui &lt;span style="font-weight: bold;"&gt;GIF, JPEG, BMP, PNG, PBM, TIFF, RGB, PGM, RAST&lt;/span&gt; e molti altri, per una lista completa vi rimando al sito &lt;a href="http://www.pythonware.com/"&gt;www.pythonware.com&lt;/a&gt;, e alla relativa &lt;a href="http://www.pythonware.com/library/index.htm"&gt;documentazione&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.pythonware.com/products/pil/"&gt;PIL&lt;/a&gt; e scritta da &lt;a href="http://www.oreillynet.com/pub/au/654"&gt;Fredrik Lundh&lt;/a&gt;, l'autore del libro "&lt;a href="http://oreilly.com/catalog/9780596000967/"&gt;&lt;span style="font-style: italic;"&gt;The Standard Python Library&lt;/span&gt;&lt;/a&gt;", e molte altre librerie  scritte in python scaricabili dal sito&lt;a href="http://effbot.org/"&gt; effbot.org&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Ecco due piccoli(&lt;span style="font-style: italic;"&gt;e semplici&lt;/span&gt;) esempi di &lt;span style="font-weight: bold;"&gt;PIL&lt;/span&gt; con il suo modulo&lt;span style="font-weight: bold;"&gt; Image&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Crea una immagine&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;from&lt;/span&gt; PIL &lt;span style="color: rgb(51, 51, 255);"&gt;import&lt;/span&gt; Image, ImageDraw&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 153, 153);"&gt;#crea una nuova immagine 400x400 pixel di colore nero&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; crea_immagine = Image.new(&lt;span style="color: rgb(153, 0, 0);"&gt;'RGB'&lt;/span&gt;,(&lt;span style="color: rgb(255, 0, 0);"&gt;400,400&lt;/span&gt;),(&lt;span style="color: rgb(255, 0, 0);"&gt;0,0,0&lt;/span&gt;)) &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; draw = ImageDraw.Draw(crea_immagine)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 153, 153);"&gt;#crea una linea di colore&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; draw.line((&lt;span style="color: rgb(255, 0, 0);"&gt;80,60,190,90&lt;/span&gt;), fill = (&lt;span style="color: rgb(255, 0, 0);"&gt;0,255,0&lt;/span&gt;))&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 153, 153);"&gt;#scrive il testo di colore bianco&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; draw.text((&lt;span style="color: rgb(255, 0, 0);"&gt;100,180&lt;/span&gt;), &lt;span style="color: rgb(153, 0, 0);"&gt;'PIL is Magic!'&lt;/span&gt;, (&lt;span style="color: rgb(255, 0, 0);"&gt;255,255,255&lt;/span&gt;))&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 153, 153);"&gt;#scrive una linea di colore&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; draw.line((&lt;span style="color: rgb(255, 0, 0);"&gt;200,200,40,240&lt;/span&gt;), fill = (&lt;span style="color: rgb(255, 0, 0);"&gt;255,0,0&lt;/span&gt;))&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; crea_immagine.show()&lt;span style="color: rgb(153, 153, 153);"&gt;#.show visualizza l'immagine&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 153, 153);"&gt;#.save() per salvarla&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; crea_immagine.save(&lt;span style="color: rgb(153, 0, 0);"&gt;'my_canvas.jpg'&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Elaborazione Immagine con &lt;span style="font-weight: bold;"&gt;PIL&lt;/span&gt; tramite il modulo principale &lt;span style="font-weight: bold;"&gt;Image&lt;/span&gt;.&lt;br /&gt;Questa sotto è l'immagine "&lt;span style="font-style: italic; font-weight: bold;"&gt;labs.png&lt;/span&gt;" originaria  prima dell'elaborazione con la libreria &lt;span style="font-weight: bold;"&gt;PIL&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kLl8btDOtr0/SfH8I58cUnI/AAAAAAAAAqM/s6pJzame1CQ/s1600-h/labs-originale.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 219px; height: 320px;" src="http://3.bp.blogspot.com/_kLl8btDOtr0/SfH8I58cUnI/AAAAAAAAAqM/s6pJzame1CQ/s320/labs-originale.gif" alt="" id="BLOGGER_PHOTO_ID_5328317064079495794" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;import&lt;/span&gt; Image&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 153, 153);"&gt;#apro l'immagine da elaborare&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; immagine = Image.open(&lt;span style="color: rgb(153, 0, 0);"&gt;'labs.png'&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 153, 153);"&gt;#visualizza l'immagine&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; immagine.show()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 153, 153);"&gt;#converte l'immagine&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; immagine.convert(&lt;span style="color: rgb(255, 0, 0);"&gt;'1'&lt;/span&gt;).show()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 153, 153);"&gt;#salva l'immagine in formato .gif&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; immagine.save(&lt;span style="color: rgb(153, 0, 0);"&gt;"labs_elaborata_con_PIL.gif"&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Questa invece è l'immagine "&lt;span style="font-style: italic; font-weight: bold;"&gt;labs_elaborata_con_PIL.gif&lt;/span&gt;" dopo averla aperta   e eleborata col modulo&lt;span style="font-weight: bold;"&gt; Image&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kLl8btDOtr0/SfH-I1zpLeI/AAAAAAAAAqU/4f36iSKUr4U/s1600-h/labs_elaborata_con_PIL.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 220px; height: 320px;" src="http://4.bp.blogspot.com/_kLl8btDOtr0/SfH-I1zpLeI/AAAAAAAAAqU/4f36iSKUr4U/s320/labs_elaborata_con_PIL.gif" alt="" id="BLOGGER_PHOTO_ID_5328319261992103394" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Questi naturalmente, sono piccoli esempi che non rendono giustizia, della potenza reale di &lt;span style="font-weight: bold;"&gt;PIL&lt;/span&gt;, e del modulo&lt;span style="font-weight: bold;"&gt; Image&lt;/span&gt;.  Per quanti volessero approfondire la libreria &lt;span style="font-weight: bold;"&gt;PIL&lt;/span&gt;, al suo interno ha molti altri moduli molto utili e potenti al pari del modulo &lt;span style="font-weight: bold;"&gt;Image&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-1863376046950712304?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/1863376046950712304/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=1863376046950712304&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/1863376046950712304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/1863376046950712304'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/04/pil-immagini-con-python.html' title='PIL Immagini con Python'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_kLl8btDOtr0/SfH8I58cUnI/AAAAAAAAAqM/s6pJzame1CQ/s72-c/labs-originale.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-3577717060385947279</id><published>2009-04-19T22:03:00.002+02:00</published><updated>2009-04-19T22:14:57.122+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='Programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>PYTHON Funzioni Annidate</title><content type='html'>Annidare le funzioni(&lt;span style="font-style: italic; font-weight: bold;"&gt;le def&lt;/span&gt;) nelle ultime versioni di python e del tutto normale. Semplicemente le &lt;span style="font-weight: bold;"&gt;def&lt;/span&gt; sono codice eseguibile a tutti gli effetti, ma nelle "&lt;span style="font-style: italic;"&gt;vecchie&lt;/span&gt;" versioni  non era affatto cosi. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;La def delle versioni recenti&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;def&lt;/span&gt; func():&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...     scope_func = &lt;span style="color: rgb(153, 0, 0);"&gt;'marameoo'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        &lt;span style="color: rgb(153, 153, 153);"&gt;""" una funzione e del codice eseguibile&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 153, 153);"&gt;        a tutti gli effetti"""&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...     &lt;span style="color: rgb(51, 51, 255);"&gt;def&lt;/span&gt; func_annidata():&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...         &lt;span style="color: rgb(51, 51, 255);"&gt;print&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;'tu sei un ..'&lt;/span&gt;, scope_func&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...     &lt;span style="color: rgb(51, 51, 255);"&gt;return&lt;/span&gt; func_annidata   &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; chiamata = func()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; chiamata() &lt;span style="color: rgb(153, 153, 153);"&gt;# esegue la def annidata&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;tu sei un .. marameoo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Questo codice che nelle versioni &lt;span style="font-weight: bold;"&gt;2.4&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;2.5&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;2.6&lt;/span&gt; di Python funziona a meraviglia, ma se lo provate in una versione precedente a quelle appena elencate vedrete che produce degli errori.&lt;br /&gt;&lt;br /&gt;Per  ottenere del codice che funziona in qualsiasi versione di python ha bisogno che la &lt;span style="font-weight: bold;"&gt;def&lt;/span&gt; annidata referenzi il valore passato dalla &lt;span style="font-weight: bold;"&gt;def&lt;/span&gt; precedente.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Vediamo un esempio&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; &lt;span style="color: rgb(51, 51, 255);"&gt;def&lt;/span&gt; func():&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...     scope_func = &lt;span style="color: rgb(153, 0, 0);"&gt;'marameoo'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...     &lt;span style="color: rgb(153, 153, 153);"&gt;# Referenza&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...     &lt;span style="color: rgb(51, 51, 255);"&gt;def&lt;/span&gt; func_annidata(scope_func = scope_func):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...         &lt;span style="color: rgb(51, 51, 255);"&gt;print&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;'tu sei un ..'&lt;/span&gt;, scope_func&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...     func_annidata()   &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; func() &lt;span style="color: rgb(153, 153, 153);"&gt;# chiamata alla funzione&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;tu sei un .. marameoo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-3577717060385947279?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/3577717060385947279/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=3577717060385947279&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/3577717060385947279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/3577717060385947279'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/04/python-funzioni-annidate.html' title='PYTHON Funzioni Annidate'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-5485881561860675367</id><published>2009-04-19T21:46:00.004+02:00</published><updated>2011-08-20T21:00:01.594+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='Sistema'/><category scheme='http://www.blogger.com/atom/ns#' term='Gnu/Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Shell'/><category scheme='http://www.blogger.com/atom/ns#' term='Bash'/><title type='text'>Perle Della Bash[19-04]</title><content type='html'>Questo comando trova tutti i file nascosti(&lt;span style="font-style: italic;"&gt;quelli col dot .&lt;/span&gt;)nella vostra &lt;span style="font-weight: bold;"&gt;/home/directory&lt;/span&gt; e li manda in output.&lt;br /&gt;&lt;pre&gt;&lt;span style="font-weight: bold;"&gt;:~$ &lt;span style="color: #990000;"&gt;grep&lt;/span&gt; &lt;/span&gt;&lt;span style="color: black; font-weight: bold;"&gt;-l&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; 'PATH' ~/.[!.]&lt;span style="color: #990000;"&gt;*&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;cerca nella home dell'utente tutti i file mediante l'estensione passatagli(&lt;span style="font-style: italic;"&gt;in questo caso file  musicali '&lt;span style="color: #993300;"&gt;.mp3&lt;/span&gt;'&lt;/span&gt;), e se sono molti  &lt;span style="font-weight: bold;"&gt;'less' &lt;/span&gt;permette di leggerli pagina dopo pagina nella schermata della shell.&lt;br /&gt;&lt;pre&gt;&lt;span style="font-weight: bold;"&gt;:~$ &lt;span style="color: #990000;"&gt;find&lt;/span&gt; /home/archie &lt;span style="color: #990000;"&gt;-name&lt;/span&gt; *.mp3 | &lt;span style="color: #990000;"&gt;xargs&lt;/span&gt; pink floyd |&lt;span style="color: #666666;"&gt; &lt;span style="color: #990000;"&gt;less&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;rimuove linee bianche in un file e le visualizza tramite lo stream di &lt;span style="font-weight: bold;"&gt;sed&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&lt;span style="font-weight: bold;"&gt;:~$ &lt;span style="color: #990000;"&gt;cat&lt;/span&gt; my_file | &lt;span style="color: #990000;"&gt;sed&lt;/span&gt; /^$/&lt;span style="color: #990000;"&gt;d&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;cerca e rimuove file  con estensione '&lt;span style="font-weight: bold;"&gt;.rb&lt;/span&gt;' tramite una pipe con &lt;span style="font-weight: bold;"&gt;rm&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-weight: bold;"&gt;:~$ &lt;span style="color: #990000;"&gt;find&lt;/span&gt; . &lt;span style="color: #990000;"&gt;-name&lt;/span&gt; '*.rb' |&lt;span style="color: #990000;"&gt; rm&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;cerca con &lt;span style="font-weight: bold;"&gt;find&lt;/span&gt; file di testo dal nome sia in minuscole che con le maiuscole&lt;br /&gt;&lt;pre&gt;&lt;span style="font-weight: bold;"&gt;:~$ &lt;span style="color: #990000;"&gt;find&lt;/span&gt; . &lt;span style="color: #990000;"&gt;-name&lt;/span&gt; '*.txt [Ff][Ll][Vv]' &lt;span style="color: #990000;"&gt;-print&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-5485881561860675367?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/5485881561860675367/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=5485881561860675367&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/5485881561860675367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/5485881561860675367'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/04/perle-della-bash19-04.html' title='Perle Della Bash[19-04]'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-1577989702528722911</id><published>2009-04-19T20:58:00.004+02:00</published><updated>2009-04-19T21:41:29.735+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personale'/><title type='text'>E Stata Dura ma Siamo Nuovamente on-line</title><content type='html'>Ragazzi anche se non ve nè può fregar de meno, &lt;span style="font-weight: bold;"&gt;siamo nuovamente operativi!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Devo ammettere, che trovare una &lt;a href="http://it.wikipedia.org/wiki/Scheda_madre"&gt;piastra madre&lt;/a&gt; per il mio '&lt;span style="font-style: italic;"&gt;povero&lt;/span&gt;' &lt;span style="font-weight: bold;"&gt;PentiumIII&lt;/span&gt;,   non è stata una passeggiata, ma alla fine ci sono riuscito.  E oltre tutto, &lt;span style="font-weight: bold;"&gt;ne ho approfittato per dare anche una bella rinfrescata alla macchina in generale&lt;/span&gt;(&lt;span style="font-style: italic;"&gt;si è anzianotta&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;Ho aggiunto&lt;span style="font-weight: bold;"&gt; 128mb&lt;/span&gt; di &lt;a href="http://it.wikipedia.org/wiki/RAM"&gt;RAM&lt;/a&gt; in più. Ora siamo alla "&lt;span style="font-style: italic;"&gt;megagalattica&lt;/span&gt;" quantità di  &lt;span style="font-weight: bold;"&gt;620mb&lt;/span&gt;, e giacché che c'ero, ho pensato bene di aggiungere un "&lt;span style="font-style: italic;"&gt;mega&lt;/span&gt;" &lt;a href="http://it.wikipedia.org/wiki/Disco_rigido"&gt;hard disk&lt;/a&gt; da &lt;span style="font-weight: bold;"&gt;20 giga&lt;/span&gt;, dove risiede già una fiammante &lt;a href="http://www.debian.org/"&gt;&lt;span style="font-weight: bold;"&gt;Debian Lenny&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Ecco alcuni screenshots&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Il Potente Processor&lt;span style="font-weight: bold;"&gt; ;-)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kLl8btDOtr0/Set6yUGLWLI/AAAAAAAAAps/qyFcVqCRaFw/s1600-h/schermata3.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 249px;" src="http://2.bp.blogspot.com/_kLl8btDOtr0/Set6yUGLWLI/AAAAAAAAAps/qyFcVqCRaFw/s320/schermata3.png" alt="" id="BLOGGER_PHOTO_ID_5326485989102409906" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;E  la rivitalizzante Ram&lt;span style="font-weight: bold;"&gt; ;-)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kLl8btDOtr0/Set7fnbcNCI/AAAAAAAAAp0/FtXbcbFPi9c/s1600-h/schermata4.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 249px;" src="http://4.bp.blogspot.com/_kLl8btDOtr0/Set7fnbcNCI/AAAAAAAAAp0/FtXbcbFPi9c/s320/schermata4.png" alt="" id="BLOGGER_PHOTO_ID_5326486767385981986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Che dire, mah, non saprei.  Sicuramente &lt;span style="font-weight: bold;"&gt;dopo la sosta forzata&lt;/span&gt;,  possiamo riprendere a scrivere sul &lt;span style="font-weight: bold;"&gt;blog&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-1577989702528722911?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/1577989702528722911/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=1577989702528722911&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/1577989702528722911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/1577989702528722911'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/04/e-stata-dura-ma-siamo-nuovamente-on.html' title='E Stata Dura ma Siamo Nuovamente on-line'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kLl8btDOtr0/Set6yUGLWLI/AAAAAAAAAps/qyFcVqCRaFw/s72-c/schermata3.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-5803659300884874112</id><published>2009-03-24T00:03:00.003+01:00</published><updated>2009-03-24T00:32:31.184+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Un Semplice Test in Python</title><content type='html'>Un semplice test in Python. Il pezzo di codice da testare va inserito tra le variabili &lt;span style="font-weight: bold;"&gt;start&lt;/span&gt; e&lt;span style="font-weight: bold;"&gt; end&lt;/span&gt;.&lt;br /&gt;Il tempo puo essere  impostato a vostra discrezione, in base  alla porzione di codice da voi desiderato.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; def test_speed():&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...     import time&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...     start = time.time()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;...&lt;/span&gt;     &lt;span style="color: rgb(255, 102, 0);"&gt;def main():&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;...         print 'Bullett....'&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;...     main()    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...     end = time.time() - start&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...     assert end &amp;lt; 10, \&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...     "spiacente il codice supera i 10 secondi!"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;...     &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; test_speed()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;Bullett....&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&gt;&gt;&gt; &lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-5803659300884874112?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/5803659300884874112/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=5803659300884874112&amp;isPopup=true' title='2 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/5803659300884874112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/5803659300884874112'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/03/un-semplice-test-in-python.html' title='Un Semplice Test in Python'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-5400973631650423538</id><published>2009-03-23T23:50:00.002+01:00</published><updated>2009-03-23T23:56:35.424+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gnome'/><category scheme='http://www.blogger.com/atom/ns#' term='Gnu/Linux'/><title type='text'>Nuova Release Dello Gnomo</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://library.gnome.org/misc/release-notes/2.26/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 106px;" src="http://1.bp.blogspot.com/_kLl8btDOtr0/ScgTBTm9WPI/AAAAAAAAApc/nkfyWp--i7A/s320/two-twenty-six.png" alt="" id="BLOGGER_PHOTO_ID_5316520273275345138" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Buon Divertimento.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-5400973631650423538?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/5400973631650423538/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=5400973631650423538&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/5400973631650423538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/5400973631650423538'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/03/nuova-release-dello-gnomo.html' title='Nuova Release Dello Gnomo'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_kLl8btDOtr0/ScgTBTm9WPI/AAAAAAAAApc/nkfyWp--i7A/s72-c/two-twenty-six.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-6508982801717386691</id><published>2009-03-23T17:25:00.005+01:00</published><updated>2009-03-23T17:55:02.429+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Design'/><category scheme='http://www.blogger.com/atom/ns#' term='Css'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><title type='text'>Proprietà CSS per Elaborare il Testo</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kLl8btDOtr0/Sce7dPEj0oI/AAAAAAAAApU/rDFmePCJCkc/s1600-h/testo.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 233px;" src="http://1.bp.blogspot.com/_kLl8btDOtr0/Sce7dPEj0oI/AAAAAAAAApU/rDFmePCJCkc/s320/testo.gif" alt="" id="BLOGGER_PHOTO_ID_5316423996070417026" border="0" /&gt;&lt;/a&gt;Il testo, in una pagina web, e l'elemento che determina più di ogni altro componente, la bellezza e la particolarità(&lt;span style="font-style: italic;"&gt;tra cui la leggibilità in primis&lt;/span&gt;)della stessa.&lt;br /&gt;&lt;br /&gt;I &lt;a href="http://it.wikipedia.org/wiki/Foglio_di_stile"&gt;Cascading Style Sheets&lt;/a&gt;, hanno introdotto proprietà per il tag font &lt;span style="font-weight: bold;"&gt;&lt;/span&gt;dalle potenzialità molto vicine a quelli della carta stampata. Ecco cosa possiamo ottenere con le sole proprietà &lt;span style="font-style: italic; font-weight: bold;"&gt;letter-spacing&lt;/span&gt;, e &lt;span style="font-style: italic; font-weight: bold;"&gt;vertical-align&lt;/span&gt;, su di un semplice font della famiglia &lt;span style="font-style: italic;"&gt;sans-serif&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Il corpo del documento(&lt;span style="font-style: italic;"&gt;body&lt;/span&gt;) e impostato con una grandezza del font a &lt;span style="font-weight: bold;"&gt;1.2&lt;/span&gt;em, una famiglia di font &lt;span style="font-style: italic;"&gt;sans-serif&lt;/span&gt;, e la spaziatura(&lt;span style="font-style: italic;"&gt;letter-spacing&lt;/span&gt;) tra le lettere a normale. Mentre &lt;span style="font-weight: bold;"&gt;h1&lt;/span&gt;, ha un valore di spaziatura tra le lettere, negativo di &lt;span style="font-weight: bold;"&gt;-5&lt;/span&gt;px, il secondo &lt;span style="font-weight: bold;"&gt;h2&lt;/span&gt; ha un valore di spaziatura di &lt;span style="font-weight: bold;"&gt;1.25&lt;/span&gt;em.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Sub&lt;/span&gt; e &lt;span style="font-weight: bold;"&gt;sup&lt;/span&gt;(&lt;span style="font-style: italic;"&gt;subscript, e superscript&lt;/span&gt;),&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;sub&lt;/span&gt; viene allineato verticalmente in modo negativo al &lt;span style="font-weight: bold;"&gt;-100&lt;/span&gt;%, mentre &lt;span style="font-weight: bold; font-style: italic;"&gt;sup&lt;/span&gt; in modo verticale al &lt;span style="font-weight: bold;"&gt;100&lt;/span&gt;% della possibilità. Chiudono le due classi &lt;span style="font-weight: bold;"&gt;&lt;/span&gt;impostate cosi, &lt;span style="font-weight: bold;"&gt; .prima-classe&lt;/span&gt; con una spaziatura tra le lettere di &lt;span style="font-weight: bold;"&gt;3&lt;/span&gt;pixel, e &lt;span style="font-weight: bold;"&gt;.seconda-classe&lt;/span&gt; con una spaziatura a&lt;span style="font-style: italic; font-weight: bold;"&gt; normale&lt;/span&gt;(&lt;span style="font-style: italic;"&gt;normal;&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Questo e l'esempio completo del markup e del Css.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;title&amp;gt;&lt;/span&gt;letter-spacing, vertical-align&lt;span style="font-weight: bold;"&gt;&amp;lt;/title&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;style &lt;span style="color: rgb(0, 153, 0);"&gt;type&lt;/span&gt;="text/css"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;body {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;     font-size:&lt;span style="color: rgb(153, 0, 0);"&gt; 1.2&lt;/span&gt;em;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;     font-family: arial, helvetica, sans-serif;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;     letter-spacing: &lt;span style="color: rgb(51, 51, 255);"&gt;normal&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;h1 {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    letter-spacing: &lt;span style="color: rgb(153, 0, 0);"&gt;-5&lt;/span&gt;px;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;h2 {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    letter-spacing: &lt;span style="color: rgb(153, 0, 0);"&gt;1.25&lt;/span&gt;em;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;sub {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    vertical-align: &lt;span style="color: rgb(153, 0, 0);"&gt;-100&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;%&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;sup {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    vertical-align: &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;100&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;%&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(153, 102, 51);"&gt;.prima-classe&lt;/span&gt; {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    letter-spacing: &lt;span style="color: rgb(153, 0, 0);"&gt;3&lt;/span&gt;px;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(153, 102, 51);"&gt;.seconda-classe&lt;/span&gt; {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    letter-spacing: &lt;span style="color: rgb(51, 51, 255);"&gt;normal&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;/style&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;div id="contenitore"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;span style="font-weight: bold;"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt; Lorem ipsum dolor sit amet, consectetuer adipiscing elit.&lt;span style="font-weight: bold;"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; &amp;lt;p class="prima-classe"&amp;gt;&lt;/span&gt; Lorem ipsum dolor sit amet, consectetuer adipiscing elit.&lt;span style="font-weight: bold;"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;span style="font-weight: bold;"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt; Lorem ipsum dolor sit amet, consectetuer adipiscing elit.&lt;span style="font-weight: bold;"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;span style="font-weight: bold;"&gt;&amp;lt;h3&amp;gt;&lt;/span&gt;Lorem ipsum dolor &lt;span style="font-weight: bold;"&gt;&amp;lt;sup&amp;gt;&lt;/span&gt;sit amet,&lt;span style="font-weight: bold;"&gt;&amp;lt;/sup&amp;gt;&lt;/span&gt; consectetuer &lt;span style="font-weight: bold;"&gt;&amp;lt;sub&amp;gt;&lt;/span&gt;adipiscing elit.&lt;span style="font-weight: bold;"&gt;&amp;lt;/sub&amp;gt;&amp;lt;br /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; &lt;span style="font-weight: bold;"&gt;&amp;lt;span class="seconda-classe"&amp;gt;&lt;/span&gt; Lorem ipsum dolor sit amet, consectetuer adipiscing elit.&lt;span style="font-weight: bold;"&gt;&amp;lt;/span&amp;gt;&amp;lt;/h3&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-6508982801717386691?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/6508982801717386691/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=6508982801717386691&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/6508982801717386691'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/6508982801717386691'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/03/proprieta-css-per-elaborare-il-testo.html' title='Proprietà CSS per Elaborare il Testo'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_kLl8btDOtr0/Sce7dPEj0oI/AAAAAAAAApU/rDFmePCJCkc/s72-c/testo.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-1495663183955073027</id><published>2009-03-23T16:41:00.004+01:00</published><updated>2009-03-23T17:24:05.067+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Web Design'/><category scheme='http://www.blogger.com/atom/ns#' term='Css'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><title type='text'>Layout Centrato</title><content type='html'>Una semplice pagina resa impostando &lt;span style="font-weight: bold;"&gt;#container&lt;/span&gt; con i margini superiore e inferiore a &lt;span style="font-weight: bold;"&gt;0&lt;/span&gt;, e il margine sinistro e destro su &lt;span style="font-weight: bold;"&gt;auto&lt;/span&gt;. La larghezza &lt;span style="font-weight: bold;"&gt;width&lt;/span&gt; impostata a &lt;span style="font-weight: bold;"&gt;500&lt;/span&gt;px&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;, e un &lt;span style="font-weight: bold;"&gt;blockquote&lt;/span&gt; come sopra impostato &lt;span style="font-weight: bold;"&gt;o&lt;/span&gt;px margine superiore e inferiore, e margine sinistro e destro a &lt;span style="font-weight: bold;"&gt;100&lt;/span&gt;px.&lt;br /&gt;&lt;br /&gt;Per quanti non sapessero come funzionano i &lt;span style="font-weight: bold;"&gt;margini&lt;/span&gt;, semplicemente si segue il senso orario, vale a dire: &lt;span style="font-style: italic;"&gt;margine-superiore&lt;/span&gt;, &lt;span style="font-style: italic;"&gt;margine-destro&lt;/span&gt;,&lt;span style="font-style: italic;"&gt; margine-inferiore&lt;/span&gt;, e  &lt;span style="font-style: italic;"&gt;margine-sinistro&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Vediamo il markup html.&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;div id="container"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;A Title&lt;span style="font-weight: bold;"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;A Sub Title&lt;span style="font-weight: bold;"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Tristique quis, convallis ac, tempor eu, nisl. Morbi mauris.&lt;br /&gt;a that will live on through the generations.&lt;span style="font-weight: bold;"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;blockquote&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi interdum nisi vitae neque."&lt;span style="font-weight: bold;"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;/blockquote&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Lorem ipsum dolor sit amet, consectetuer adipiscing elit...&lt;span style="font-weight: bold;"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Nunc interdum. Nam eros urna, tristique quis,...&lt;span style="font-weight: bold;"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;Praesent dictum, risus id feugiat dapibus,...&lt;span style="font-weight: bold;"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;E le regole Css.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;style &lt;span style="color: rgb(0, 153, 0);"&gt;type&lt;/span&gt;="text/css"&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;body {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;font: &lt;span style="color: rgb(153, 0, 0);"&gt;62.5&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0);"&gt;%&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;/1.5&lt;/span&gt; verdana, arial, helvetica, sans-serif;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;color: #000000;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;background: #ffffff;&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;padding: &lt;span style="color: rgb(153, 0, 0);"&gt;20&lt;/span&gt;px;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;#container {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;font-size: &lt;span style="color: rgb(153, 0, 0);"&gt;1.2&lt;/span&gt;em;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;line-height: &lt;span style="color: rgb(153, 0, 0);"&gt;1.5&lt;/span&gt;em;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;margin: &lt;span style="color: rgb(153, 0, 0);"&gt;0&lt;/span&gt; auto;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;width: &lt;span style="color: rgb(153, 0, 0);"&gt;500&lt;/span&gt;px;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;h1 {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;font: &lt;span style="color: rgb(153, 0, 0);"&gt;1.5&lt;/span&gt;em/&lt;span style="color: rgb(153, 0, 0);"&gt;1.8&lt;/span&gt;em verdana, arial, helvetica, sans-serif;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;text-transform: &lt;span style="color: rgb(51, 51, 255);"&gt;uppercase&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;h2 {&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;font:&lt;span style="color: rgb(153, 0, 0);"&gt;1.2&lt;/span&gt;em verdana, arial, helvetica, sans-serif;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;text-transform: &lt;span style="color: rgb(51, 51, 255);"&gt;uppercase&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;blockquote {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;margin: &lt;span style="color: rgb(153, 0, 0);"&gt;0&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;100&lt;/span&gt;px;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;blockquote p {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;font-family: "Monotype Corsiva", gautami, serif;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;font-size: &lt;span style="color: rgb(153, 0, 0);"&gt;1.5&lt;/span&gt;em;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;/style&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt; &lt;/pre&gt;&lt;span style="font-family: verdana;"&gt;Questo e il risultato finale.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kLl8btDOtr0/Sce0oZzFlJI/AAAAAAAAApE/rcctY2-VmnE/s1600-h/letter_page.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 274px;" src="http://4.bp.blogspot.com/_kLl8btDOtr0/Sce0oZzFlJI/AAAAAAAAApE/rcctY2-VmnE/s320/letter_page.gif" alt="" id="BLOGGER_PHOTO_ID_5316416491347088530" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-1495663183955073027?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/1495663183955073027/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=1495663183955073027&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/1495663183955073027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/1495663183955073027'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/03/layout-centrato.html' title='Layout Centrato'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_kLl8btDOtr0/Sce0oZzFlJI/AAAAAAAAApE/rcctY2-VmnE/s72-c/letter_page.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-5801995475368541293</id><published>2009-03-14T18:09:00.005+01:00</published><updated>2009-03-14T18:37:21.261+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JavaScript'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Design'/><category scheme='http://www.blogger.com/atom/ns#' term='Howto'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><title type='text'>Rendere Visibile un'Immagine Tramite Javascript</title><content type='html'>Creare un effetto "&lt;span style="font-style: italic;"&gt;mostra-nascondi&lt;/span&gt;" tramite un piccolo script &lt;span style="font-style: italic;"&gt;Javascript&lt;/span&gt;, e la modalità &lt;span style="font-style: italic;"&gt;CSS &lt;/span&gt;Display.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Esempio del markup html:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;html&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;head&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    &amp;lt;title&amp;gt;views Image&amp;lt;/title&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;script src=&lt;span style="color: rgb(255, 102, 0);"&gt;"evento_load.js"&lt;/span&gt;&amp;gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;/head&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    &amp;lt;p&amp;gt;&amp;lt;a href=&lt;span style="color: rgb(153, 0, 0);"&gt;"#"&lt;/span&gt; onclick=&lt;span style="color: rgb(153, 0, 0);"&gt;"show_image&lt;/span&gt;(&lt;span style="color: rgb(153, 0, 0);"&gt;'jaunty'&lt;/span&gt;);&lt;span style="color: rgb(153, 0, 0);"&gt;"&lt;/span&gt;&amp;gt;Click per vedere o nascondere l'immagine!&amp;lt;/a&amp;gt;&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    &amp;lt;div id=&lt;span style="color: rgb(153, 0, 0);"&gt;"jaunty"&lt;/span&gt; style=&lt;span style="color: rgb(153, 0, 0);"&gt;"display: none;"&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    &amp;lt;p&amp;gt;&amp;lt;img src=&lt;span style="color: rgb(153, 51, 153);"&gt;"jaunty.jpg"&lt;/span&gt;&amp;gt;&amp;lt;/img&amp;gt;&amp;lt;/p&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    &amp;lt;/div&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;E lo script&lt;span style="font-style: italic;"&gt; javascript&lt;/span&gt; che dopo avere impostato il &lt;span style="font-weight: bold;"&gt;&amp;lt;div&amp;gt;&lt;/span&gt;come &lt;span style="font-style: italic;"&gt;display:none&lt;/span&gt;, invia&lt;span style="font-weight: bold;"&gt; l'&amp;lt;id jaunty&amp;gt; &lt;/span&gt;alla funzione &lt;span style="font-weight: bold;"&gt;show_image&lt;/span&gt; che essendo &lt;span style="font-style: italic;"&gt;none&lt;/span&gt;, lo imposta come stringa vuota, che reimposta a &lt;span style="font-style: italic;"&gt;display:none&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;function &lt;span style="color: rgb(0, 153, 0);"&gt;show_image&lt;/span&gt;(targetId)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;if&lt;/span&gt; (document.getElementById)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    target = document.getElementById(targetId);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;if&lt;/span&gt; (target.style.display == &lt;span style="color: rgb(153, 0, 0);"&gt;"none"&lt;/span&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    target.style.display = &lt;span style="color: rgb(153, 0, 0);"&gt;""&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;else&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    target.style.display = &lt;span style="color: rgb(153, 0, 0);"&gt;"none"&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Ecco la pagina prima dell' evento onclick :&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_kLl8btDOtr0/SbvmG1UVPuI/AAAAAAAAAo0/AFPbxjn5bMA/s1600-h/imageOFF.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 262px;" src="http://2.bp.blogspot.com/_kLl8btDOtr0/SbvmG1UVPuI/AAAAAAAAAo0/AFPbxjn5bMA/s320/imageOFF.gif" alt="" id="BLOGGER_PHOTO_ID_5313093190479593186" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;E Dopo:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kLl8btDOtr0/SbvmeuU3lRI/AAAAAAAAAo8/8_i812UKbCQ/s1600-h/imageON.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 287px;" src="http://3.bp.blogspot.com/_kLl8btDOtr0/SbvmeuU3lRI/AAAAAAAAAo8/8_i812UKbCQ/s320/imageON.gif" alt="" id="BLOGGER_PHOTO_ID_5313093600919655698" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kLl8btDOtr0/SbvmeuU3lRI/AAAAAAAAAo8/8_i812UKbCQ/s1600-h/imageON.gif"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-5801995475368541293?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/5801995475368541293/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=5801995475368541293&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/5801995475368541293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/5801995475368541293'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/03/rendere-visibile-unimmagine-tramite.html' title='Rendere Visibile un&apos;Immagine Tramite Javascript'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_kLl8btDOtr0/SbvmG1UVPuI/AAAAAAAAAo0/AFPbxjn5bMA/s72-c/imageOFF.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-6436615468290747661</id><published>2009-02-27T11:18:00.007+01:00</published><updated>2009-02-27T12:11:01.636+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Safari'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><category scheme='http://www.blogger.com/atom/ns#' term='Browser'/><title type='text'>Abilitare il Debug in Safari 4beta(win)</title><content type='html'>I ragazzi di &lt;a href="http://webkit.org/"&gt;WebKit&lt;/a&gt; hanno fatto un eccellente lavoro per il  Browser di &lt;a href="http://www.apple.com/"&gt;Apple&lt;/a&gt;, sia su &lt;a href="http://www.apple.com/it/macosx/"&gt;MacOSX&lt;/a&gt;, che su &lt;a href="http://www.microsoft.com/Italy/windows/default.mspx"&gt;Windows&lt;/a&gt;. Pur trattandosi di una &lt;a href="http://it.wikipedia.org/wiki/Beta_testing"&gt;beta&lt;/a&gt; pubblica, stabilità e velocità, rendono il navigare sul web veramente piacevole con &lt;a href="http://www.apple.com/it/macosx/features/safari.html"&gt;Safari&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Immensamente utile per chi sviluppa pagine web, e invece il menu Develop, che in questa beta ce il bisogno di renderla visibile(&lt;span style="font-style: italic;"&gt;su Windows&lt;/span&gt;)in questo modo.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Aprite il percorso&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;C:\Documents and Settings\@rchieCreative\Dati applicazioni\Apple Computer\Safari&lt;/span&gt; naturalmente questo e il path sul mio XP, ma mettendo il vostro user al posto di &lt;span style="font-weight: bold;"&gt;\@rchieCreative&lt;/span&gt;, il vostro dovrebbe essere identico(&lt;span style="font-style: italic;"&gt;almeno su XP&lt;/span&gt;).&lt;br /&gt;&lt;br /&gt;Una volta entrati nella cartella &lt;span style="font-weight: bold;"&gt;Safari&lt;/span&gt;, troviamo una serie di file, a noi interessa &lt;span style="font-weight: bold;"&gt;WebKitPreferences.plist&lt;/span&gt;, che e un semplice file xml, apriamolo con un editor di testo, e inserite la stringa &lt;span style="font-weight: bold;"&gt;&amp;lt;key&amp;gt;IncludeDebugMenu&amp;lt;/key&amp;gt;&lt;/span&gt; come ultima riga, in  modo che preceda i tag &lt;span style="font-weight: bold;"&gt;&amp;lt;true/&amp;gt; &amp;lt;/dict&amp;gt;&amp;lt;/plist&amp;gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Ecco un esempio del file prima della modifica:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kLl8btDOtr0/Sae-7EO2_qI/AAAAAAAAAoE/zjftjaOccwM/s1600-h/senza_aggiunta.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 134px;" src="http://4.bp.blogspot.com/_kLl8btDOtr0/Sae-7EO2_qI/AAAAAAAAAoE/zjftjaOccwM/s320/senza_aggiunta.gif" alt="" id="BLOGGER_PHOTO_ID_5307420607837044386" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;e l'esempio  dopo  la nostra aggiunta:&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kLl8btDOtr0/Sae_ONprPkI/AAAAAAAAAoM/PK_XpbiT10c/s1600-h/aggiunta.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 147px;" src="http://1.bp.blogspot.com/_kLl8btDOtr0/Sae_ONprPkI/AAAAAAAAAoM/PK_XpbiT10c/s320/aggiunta.gif" alt="" id="BLOGGER_PHOTO_ID_5307420936782954050" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Adesso aprite &lt;span style="font-weight: bold;"&gt;Safari&lt;/span&gt; e dall'icona con la &lt;span style="font-weight: bold;"&gt;rotellina&lt;/span&gt; marcate &lt;span style="font-weight: bold;"&gt;Show Menu Bar&lt;/span&gt;(&lt;span style="font-style: italic;"&gt;Hide Menu per nasconderla&lt;/span&gt;)apparirà in alto&lt;span style="font-weight: bold;"&gt; la barra Menu&lt;/span&gt;, da dove potrete fare il &lt;a href="http://it.wikipedia.org/wiki/Debugging"&gt;debug&lt;/a&gt; delle vostre pagine in modo simile a &lt;a href="http://getfirebug.com/"&gt;Firebug&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_kLl8btDOtr0/SafAadHkiqI/AAAAAAAAAoc/swmO4FI13AM/s1600-h/debug.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 278px;" src="http://3.bp.blogspot.com/_kLl8btDOtr0/SafAadHkiqI/AAAAAAAAAoc/swmO4FI13AM/s320/debug.gif" alt="" id="BLOGGER_PHOTO_ID_5307422246604933794" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Non mi resta che augurarvi &lt;span style="font-weight: bold;"&gt;Happy Coding!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-6436615468290747661?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/6436615468290747661/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=6436615468290747661&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/6436615468290747661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/6436615468290747661'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/02/abilitare-il-debug-in-safari-4beta.html' title='Abilitare il Debug in Safari 4beta(win)'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_kLl8btDOtr0/Sae-7EO2_qI/AAAAAAAAAoE/zjftjaOccwM/s72-c/senza_aggiunta.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-286949473034470577</id><published>2009-02-26T11:45:00.003+01:00</published><updated>2009-02-26T12:30:00.097+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Computer'/><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><category scheme='http://www.blogger.com/atom/ns#' term='Lenny'/><category scheme='http://www.blogger.com/atom/ns#' term='Debian'/><category scheme='http://www.blogger.com/atom/ns#' term='Gnu/Linux'/><title type='text'>Debian 5 aka Lenny</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kLl8btDOtr0/SaZ0UjDOI6I/AAAAAAAAAn8/3CLvTLe082A/s1600-h/lennybanner_indexed.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 261px;" src="http://1.bp.blogspot.com/_kLl8btDOtr0/SaZ0UjDOI6I/AAAAAAAAAn8/3CLvTLe082A/s320/lennybanner_indexed.png" alt="" id="BLOGGER_PHOTO_ID_5307057107257664418" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Signori&lt;/span&gt; e &lt;span style="font-weight: bold;"&gt;Signore&lt;/span&gt;, con un leggero ritardo causa(&lt;span style="font-style: italic;"&gt;modem morto&lt;/span&gt;) sono lieto...&lt;span style="font-weight: bold;"&gt;ALT!&lt;/span&gt; ricominciamo.&lt;br /&gt;&lt;br /&gt;Signori e Signore levatevi cappelli e bigodini, e fate un inchino alla nuova &lt;a href="http://www.debian.org/"&gt;&lt;span style="font-weight: bold;"&gt;Debian5.0&lt;/span&gt;&lt;/a&gt; "&lt;span style="font-style: italic; font-weight: bold;"&gt;aka Lenny&lt;/span&gt;" &lt;a href="http://www.debian.org/News/2009/20090214"&gt;&lt;/a&gt;&lt;a href="http://www.debian.org/News/2009/20090214"&gt;rilasciata&lt;/a&gt; il giorno di San Valentino(&lt;span style="font-style: italic;"&gt;forse non è casuale, vogliono che ve ne innamoriate&lt;/span&gt;)con una dedica particolare a &lt;a href="http://www.debian.org/News/2008/20081229"&gt;Thiemo Seufer&lt;/a&gt;, uno sviluppatore Debian deceduto nel Dicembre scorso.&lt;br /&gt;&lt;br /&gt;Le architetture supportate sono ben dodici, gli ambienti desktop supportati da &lt;span style="font-weight: bold;"&gt;Lenny&lt;/span&gt;, sono vari, da &lt;a href="http://www.gnome.org"&gt;Gnome&lt;/a&gt; a &lt;a href="http://www.kde.org/"&gt;KDE&lt;/a&gt;, a &lt;a href="http://www.xfce.org/"&gt;Xfce&lt;/a&gt;, al performante &lt;a href="http://www.lxde.org/"&gt;LXDE&lt;/a&gt;. Chi conosce la politica Debian, sa bene che non può trovare per quanto riguarda il software, le ultimissime versioni delle applicazioni, ma dalla precedente release(&lt;a href="http://www.debian.org/releases/etch/"&gt;etch&lt;/a&gt;),sono stati aggiornati comunque, un'infinità di pacchetti, che riporto(&lt;span style="font-style: italic;"&gt;in grassetto&lt;/span&gt;)direttamente dalla pagina del sito Debian.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;l'ambiente desktop K (KDE) 3.5.10, una versione aggiornata dell'ambiente desktop GNOME 2.22.2, l'ambiente desktop Xfce 4.4.2, LXDE 0.3.2.1, il desktop GNUstep 7.3, X.Org 7.3, OpenOffice.org 2.4.1, GIMP 2.4.7, Iceweasel (una versione senza marchio di Mozilla Firefox) 3.0.6, Icedove (una versione senza marchio di Mozilla Thunderbird) 2.0.0.19, PostgreSQL 8.3.6, MySQL 5.0.51a, GNU Compiler Collection 4.3.2, la versione 2.6.26 del kernel Linux, Apache 2.2.9, Samba 3.2.5, Python 2.5.2 e 2.4.6, Perl 5.10.0, PHP 5.2.6, Asterisk 1.4.21.2, Emacs 22, Inkscape 0.46, Nagios 3.06, l'Hypervisor Xen 3.2.1 (supporto dom0 e domU), OpenJDK 6b11 e più di 23.000 altri pacchetti software pronti da usare (compilati da oltre 12.000 pacchetti sorgenti).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Per chi sviluppa con &lt;a href="http://www.java.com/it/download/index.jsp"&gt;Java&lt;/a&gt;, interessante è la messa a disposizione nell'archivio main, di applicativi e librerie basate su Java. Il grosso del lavoro, come da tradizione Debian, e stato rivolto alla sicurezza, già prima del riavvio, viene effettuata sui server Debian un collegamento alla ricerca di eventuali aggiornamenti disponibili. Alla riduzione di binari con &lt;a href="http://it.wikipedia.org/wiki/Setuid"&gt;bit setuid&lt;/a&gt; attivati, a vari accorgimenti per&lt;a href="http://gcc.gnu.org/"&gt; GCC&lt;/a&gt;, sino a patch d'irrobustimento per &lt;a href="http://www.php.net/"&gt;PHP&lt;/a&gt; chiamata &lt;a href="http://www.hardened-php.net/suhosin/"&gt;Suhosin&lt;/a&gt;, che e noto per i suoi bug di sicurezza.&lt;br /&gt;&lt;br /&gt;Ma per approfondimenti, non vi resta che andare direttamente sul sito &lt;a href="http://www.debian.org"&gt;Debian&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-286949473034470577?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/286949473034470577/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=286949473034470577&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/286949473034470577'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/286949473034470577'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/02/debian-5-aka-lenny.html' title='Debian 5 aka Lenny'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_kLl8btDOtr0/SaZ0UjDOI6I/AAAAAAAAAn8/3CLvTLe082A/s72-c/lennybanner_indexed.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-2902551101450436156</id><published>2009-02-22T21:05:00.003+01:00</published><updated>2009-02-22T22:50:56.937+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Libri'/><category scheme='http://www.blogger.com/atom/ns#' term='Django'/><category scheme='http://www.blogger.com/atom/ns#' term='Programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Perché Comperare "Sviluppare applicazioni web con Django" Secondo il mio Modesto Parere</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_kLl8btDOtr0/SaG1uMmsjMI/AAAAAAAAAns/83T1ML5-43U/s1600-h/beri-django.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 224px; height: 320px;" src="http://4.bp.blogspot.com/_kLl8btDOtr0/SaG1uMmsjMI/AAAAAAAAAns/83T1ML5-43U/s320/beri-django.gif" alt="" id="BLOGGER_PHOTO_ID_5305721641281293506" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Andando in dietro nel tempo con la mia(&lt;span style="font-style: italic;"&gt;piccola&lt;/span&gt;) testolina, pensavo a quando cercavo un libro nella nostra madre lingua(&lt;span style="font-style: italic;"&gt;il mio primo libro&lt;/span&gt;) su &lt;a href="http://www.python.org"&gt;Python&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Per quanto ho cercato, i risultati, furono vani. Finché nel lontano &lt;span style="font-weight: bold;"&gt;2002&lt;/span&gt;, stando in ferie(&lt;span style="font-style: italic;"&gt;ebbene sì, allora in ferie ci andavo pure io&lt;/span&gt;)in quel di &lt;span style="font-style: italic;"&gt;Termoli&lt;/span&gt;, girovagando per &lt;span style="font-style: italic;"&gt;librerie&lt;/span&gt; del centro, feci un incontro inaspettato. In uno degli scaffali riservato ai testi di informatica, vidi un testo su Python in italiano, esattamente &lt;span style="font-weight: bold;"&gt;Python2.1&lt;/span&gt;(&lt;a href="http://www.apogeonline.com/libri/9788873039761/scheda"&gt;&lt;span style="font-style: italic;"&gt;the bible&lt;/span&gt;&lt;/a&gt;) edito dalla &lt;a href="http://www.apogeonline.com/"&gt;Apogeo&lt;/a&gt;, che dire, ero al settimo cielo, sino a quando con il  leggerlo sprofondai all'inferno.&lt;br /&gt;&lt;br /&gt;In due parole il testo era tradotto male, e il codice come riportato nel libro, era ancor più pessimo. Come tutti sappiamo(&lt;span style="font-style: italic;"&gt;gli amanti del linguaggio almeno&lt;/span&gt;) Python fa dell'indentazione, un punto &lt;a href="ttp://www.python.org/dev/peps/pep-0008/"&gt;indelebile&lt;/a&gt; del linguaggio stesso, mentre sul testo l'indentazione del codice di esempio veniva troncato e portato a capo a piacere di chi lo aveva tradotto, o mandato in stampa.&lt;br /&gt;&lt;br /&gt;Con questo aneddoto, non sto  a raccontarvi uno scorcio della mia vita(&lt;span style="font-style: italic;"&gt;lo so che non interessa a nessuno&lt;/span&gt;)ma a incoraggiare a comprare testi validi scritti in lingua italiana.&lt;br /&gt;&lt;br /&gt;Si qualcuno potrebbe farmi notare che sul web ci sono&lt;a href="http://it.diveintopython.org/"&gt; ottimi &lt;/a&gt;testi &lt;a href="http://www.python.it/doc/Howtothink/Howtothink-html-it/index.htm"&gt;tradotti&lt;/a&gt;, e che chi non sa l'inglese dovrebbe lasciare perdere la programmazione, infatti io ho letto montagne di documentazione in inglese, e adesso che un po mi raccapezzo(&lt;span style="font-style: italic;"&gt;almeno riguardo la lettura&lt;/span&gt;) ho già nella mia libreria personale, una  dozzina di testi nella lingua madre di &lt;a href="http://it.wikipedia.org/wiki/William_Shakespeare"&gt;S&lt;em&gt;hakespeare&lt;/em&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Ma vuoi mettere un testo tecnico nella tua lingua, e tutta un'altra cosa da capire, o no? Magari comperando il&lt;a href="http://www.apogeonline.com/libri/9788850328178/scheda"&gt; testo&lt;/a&gt; di &lt;a href="http://beri.it/"&gt;&lt;span style="font-style: italic;"&gt;Marco&lt;/span&gt;&lt;/a&gt;, che comunque non e il primo(&lt;span style="font-style: italic;"&gt;è autore di &lt;a href="http://www.apogeonline.com/libri/9788850325993/scheda"&gt;Python&lt;/a&gt;, e &lt;a href="http://www.apogeonline.com/libri/88-503-2665-3/scheda"&gt;Espressioni Regolari&lt;/a&gt;&lt;/span&gt;)ma il primo di un certo contenuto, si "&lt;span style="font-style: italic;"&gt;invoglino&lt;/span&gt;" anche altri pythonisti a scrivere i  loro testi in italiano, e rammento a chi non sapesse, che in Italia(&lt;span style="font-style: italic;"&gt;alcuni vivono fuori Italia&lt;/span&gt;) abbiamo programmatori Python  di altissimo livello, che pubblicano regolarmente &lt;a href="http://www.oreillynet.com/pub/au/918"&gt;testi&lt;/a&gt; e &lt;a href="http://www.oreillynet.com/pub/au/1782"&gt;articoli &lt;/a&gt;in inglese.&lt;br /&gt;&lt;br /&gt;Forse dovrei rammentare anche i punti a sfavore, nello scrivere un testo a carattere tecnico in lingua italiana:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1°&lt;/span&gt;    Il numero dei lettori sarebbe pari ad un &lt;span style="font-weight: bold;"&gt;5%&lt;/span&gt; della totalità dei lettori a livello mondiale.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2°&lt;/span&gt;    La perdita di "&lt;span style="font-style: italic;"&gt;autorità di un testo&lt;/span&gt;" di tipo informatico, scritto in una lingua che non sia l'inglese.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3°&lt;/span&gt;    Lo "&lt;span style="font-style: italic;"&gt;snobbare&lt;/span&gt;" in un certo qual modo qualsiasi altro editore che non sia O'reilly.&lt;br /&gt;&lt;br /&gt;Ma non posso non far notare, che su &lt;a href="http://www.ruby-lang.org/it/"&gt;Ruby&lt;/a&gt;, di testi nella nostra lingua, ne sono stati pubblicati già tre(&lt;span style="font-style: italic;"&gt;due editi dalla &lt;a href="http://www.apogeonline.com"&gt;Apogeo&lt;/a&gt;, e uno edito da &lt;a href="http://www.oreilly.com"&gt;O'reilly&lt;/a&gt;&lt;/span&gt;)tra cui, &lt;a href="http://marcoceresa.com/libroruby/"&gt;uno&lt;/a&gt; scritto completamente da &lt;a href="http://marcoceresa.com/libroruby/authors.shtml"&gt;autori&lt;/a&gt; italiani, in lingua italiana. Tra questi di autori(&lt;span style="font-style: italic;"&gt;ironia della sorte&lt;/span&gt;) ce un  &lt;a href="http://blogs.ugidotnet.org/lawrence/Default.aspx"&gt;pythonista&lt;/a&gt; dichiarato, e un altro paio lo sono stati in passato, e testi italiani in Python? Nada.&lt;br /&gt;&lt;br /&gt;Qualcuno mi dirà ce &lt;span style="font-weight: bold;"&gt;Learning Python&lt;/span&gt; tradotto sia nella &lt;a href="http://www.amazon.com/Learning-Python-Second-Mark-Lutz/dp/0596002815"&gt;2edizione&lt;/a&gt; ,che nella &lt;a href="http://www.hoepli.it/libro.asp?ib=9788848120906&amp;amp;pc=000022007002021"&gt;3Edizione&lt;/a&gt;, si  è vero(&lt;span style="font-style: italic;"&gt;tutto quello che ho appreso su Python sino ad ora proviene proprio da quel testo&lt;/span&gt;)ma la stragrande maggioranza e in lingua inglese, e vuoi mettere un libro scritto da un italiano, per italiani?&lt;br /&gt;Semplicemente quello che non afferri lo chiedi direttamente&lt;span style="font-weight: bold;"&gt;;-)&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Certamente sono da incoraggiare,(&lt;span style="font-style: italic;"&gt;parlo di tecnologie dal valore indiscutibile come Ruby e Python&lt;/span&gt;) pubblicazioni di autori  italiani che permettano, a chi nuovo nell'arte del programmare, di apprendere quei "&lt;span style="font-style: italic;"&gt;passaggi&lt;/span&gt;" che inevitabilmente diventano più lunghi da  capire in un testo che non è nella sua lingua madre. Tutto questo può avvenire solamente comperando(&lt;span style="font-style: italic;"&gt;è chi ha le competenze scrivendo&lt;/span&gt;) testi  validi di autori italiani, e &lt;a href="http://www.apogeonline.com/libri/9788850328178/scheda"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Sviluppare applicazioni web con Django&lt;/span&gt;&lt;/a&gt;, lo è.   &lt;br /&gt;&lt;br /&gt;Mi auguro, e spero vi auguriate, che chi deve comprare compri, e chi debba scrivere scriva. Ne guadagneremmo entrambi.&lt;br /&gt;&lt;br /&gt;Ma adesso passiamo al testo vero e proprio, &lt;a href="http://beri.it/about/"&gt;l'autore&lt;/a&gt; ci propone di apprendere &lt;a href="http://www.djangoproject.com"&gt;Django&lt;/a&gt;, tramite una serie di ricette(&lt;span style="font-style: italic;"&gt;non è un libro di cucina tranquilli&lt;/span&gt;)che ci permetteranno di risolvere i problemi classici dello sviluppo web "&lt;span style="font-style: italic;"&gt;moderno&lt;/span&gt;", man mano che aumentano di complessità.&lt;br /&gt;&lt;br /&gt;Il Testo è strutturato in tre parti, ovviamente dopo l'immancabile introduzione:&lt;br /&gt;La prima parte(&lt;span style="font-style: italic;"&gt;definita Gli Antipasti)&lt;/span&gt;affronta nello specifico, l'installazione sui sistemi &lt;a href="http://it.wikipedia.org/wiki/Linux"&gt;Gnu/Linux&lt;/a&gt;, &lt;a href="http://it.wikipedia.org/wiki/Microsoft_Windows"&gt;Windows&lt;/a&gt;, e &lt;a href="http://it.wikipedia.org/wiki/Mac_OS_X"&gt;MacOSX&lt;/a&gt;, sino al classico esempio &lt;span style="font-weight: bold;"&gt;Hello World!&lt;/span&gt;.Per poi affrontare i &lt;span style="font-weight: bold;"&gt;Database&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;l'applicazione Admin&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;gli Url&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;i Template&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;i Form&lt;/span&gt;, e &lt;span style="font-weight: bold;"&gt;Django&lt;/span&gt; in accoppiata con &lt;span style="font-weight: bold;"&gt;Apache&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;La seconda parte(&lt;span style="font-style: italic;"&gt;definita Le Portate&lt;/span&gt;):&lt;br /&gt;Entra nello specifico del &lt;a href="http://en.wikipedia.org/wiki/Web_application_framework"&gt;Framework&lt;/a&gt;, con i capitoli su: &lt;span style="font-weight: bold;"&gt;I Model&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Le Query&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;L'interfaccia di Admin&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Il Modulo URLconf&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Il Linguaggio dei Template&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Le Viste&lt;/span&gt;, e &lt;span style="font-weight: bold;"&gt;I Form di Django&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Mentre la terza parte(&lt;span style="font-style: italic;"&gt;Definita i Dolci&lt;/span&gt;):&lt;br /&gt;E composta da capitoli brevi, che a mio "&lt;span style="font-style: italic;"&gt;parere&lt;/span&gt;" sembrano dei rimandi a tutti gli argomenti che &lt;a href="http://beri.it/about/"&gt;l'autore&lt;/a&gt; non ha voluto inserire nel testo per non farlo diventare(&lt;span style="font-style: italic;"&gt;termine usato dall'autore&lt;/span&gt;) &lt;span style="font-weight: bold;"&gt;troppo Grosso&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Ecco i capitoli : &lt;span style="font-weight: bold;"&gt;Sicurezza&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Internazionalizzazione&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;RSS e Atom&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Databrowse&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Generare file non HTML&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Ajax&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Pagination&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Cache&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Nuovi tag per Template&lt;/span&gt;, e &lt;span style="font-weight: bold;"&gt;Applicazioni Pronte&lt;/span&gt;, e in fine,&lt;span style="font-weight: bold;"&gt; il Debugging&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Chiudono il Testo, alcune pagine di approfondimenti, e altre di links relativi su &lt;a href="http://www.djangoproject.com"&gt;Django&lt;/a&gt;, che &lt;a href="http://beri.it/about/"&gt;l'autore&lt;/a&gt; definisce &lt;span style="font-weight: bold;"&gt;il Caffè&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;AH&lt;/span&gt;, se a qualcuno,venisse qualche dubbio:&lt;br /&gt;Non sono &lt;span style="font-weight: bold;"&gt;stato pagato&lt;/span&gt; da Beri, nemmeno sa &lt;span style="font-weight: bold;"&gt;che esisto!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-2902551101450436156?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/2902551101450436156/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=2902551101450436156&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/2902551101450436156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/2902551101450436156'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/02/perche-comperare-sviluppare.html' title='Perché Comperare &quot;Sviluppare applicazioni web con Django&quot; Secondo il mio Modesto Parere'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_kLl8btDOtr0/SaG1uMmsjMI/AAAAAAAAAns/83T1ML5-43U/s72-c/beri-django.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-898447880339970587</id><published>2009-02-17T15:52:00.002+01:00</published><updated>2009-02-17T16:47:27.284+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Xhtml'/><category scheme='http://www.blogger.com/atom/ns#' term='Html5'/><category scheme='http://www.blogger.com/atom/ns#' term='Web Design'/><category scheme='http://www.blogger.com/atom/ns#' term='Css'/><title type='text'>HTML5 Sempre più Integrato nei Browser</title><content type='html'>Che molti sviluppatori web, hanno storto il naso alla notizia che una nuova versione html stava prendendo forma e innegabile.  A non prenderla molto bene,(&lt;a href="http://blog.html.it/09/01/2009/toh-un-sito-in-html5/"&gt;&lt;span style="font-style: italic;"&gt;ancora oggi&lt;/span&gt;&lt;/a&gt;)sono soprattuto sviluppatori che ormai da tempo apprezzano la pulizia, e l'ordine, che &lt;a href="http://www.w3.org/TR/xhtml1/"&gt;xhtml &lt;/a&gt;"impone" nello scrivere il markup strutturale delle pagine web, in confronto al  vecchio markup dell'&lt;a href="http://www.w3.org/TR/html401/"&gt;html4&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;E viene da storcerlo ancora di più in quanto è in lavorazione la versione &lt;a href="http://www.w3.org/MarkUp/"&gt;xhtml2&lt;/a&gt; che a detta di molti, non solo  avrebbe risolto le sbavature della versione attuale &lt;a href="http://www.w3.org/TR/xhtml11/"&gt;xhtml1.1&lt;/a&gt;, ma porterebbe con se novità eccellenti che ne avremmo  beneficiati tutti, dagli sviluppatori agli utenti finali.&lt;br /&gt;&lt;br /&gt;Ma ad oggi, e bene guardare la realtà, sempre più&lt;a href="http://webkit.org/blog/140/html5-media-support/"&gt; browser&lt;/a&gt; &lt;a href="http://dev.opera.com/articles/view/html-5-canvas-the-basics/"&gt;integrano&lt;/a&gt; al loro interno  nuove feature volte a &lt;a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/"&gt;html5&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Ecco le feature &lt;a href="http://www.whatwg.org/specs/web-apps/current-work/multipage/"&gt;html5&lt;/a&gt; della versione &lt;a href="https://developer.mozilla.org/en/Firefox_3.1_for_developers"&gt;Firefox 3.1&lt;/a&gt; for Developer, esattamente i tag introdotti per il multimedia, ovvero &lt;a href="https://developer.mozilla.org/En/HTML/Element/Audio"&gt;&lt;span style="font-weight: bold;"&gt;audio&lt;/span&gt;&lt;/a&gt; e &lt;a href="https://developer.mozilla.org/En/HTML/Element/Video"&gt;&lt;span style="font-weight: bold;"&gt;video&lt;/span&gt;&lt;/a&gt;, e supporto al &lt;a href="https://developer.mozilla.org/En/DragDrop/Drag_and_Drop"&gt;&lt;span style="font-weight: bold;"&gt;drag and drop&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Vediamone alcuni esempi:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;in questo avviene il play di un video dal sito web Theora&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;video src="http://v2v.cc/%7Ej/theora_testsuite/320x240.ogg"&amp;gt;&lt;br /&gt;  Your browser does not support the &amp;lt;code&amp;gt;video&amp;lt;/code&amp;gt; element.&lt;br /&gt;&amp;lt;/video&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;in questo esempio sorgenti multiple per differenti tipi di browser&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt; &amp;lt;video&amp;gt;&lt;br /&gt;   &amp;lt;source src="foo.ogg" type="video/ogg"&amp;gt;&lt;br /&gt;   &amp;lt;source src="foo.mov"&amp;gt;&lt;br /&gt;   Your browser does not support the &amp;lt;code&amp;gt;video&amp;lt;/code&amp;gt; element.&lt;br /&gt; &amp;lt;/source&amp;gt;&lt;br /&gt;&amp;lt;/source&amp;gt;&amp;lt;/video&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;e qui l'esempio tramite un ipotetico vostro JavaScript&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt; &lt;span style="font-weight: bold;"&gt;var&lt;/span&gt; v = document.&lt;span style="font-weight: bold;"&gt;getElementsByTagName&lt;/span&gt;(&lt;span style="color: rgb(0, 153, 0);"&gt;"video"&lt;/span&gt;)[&lt;span style="color: rgb(153, 153, 0);"&gt;0&lt;/span&gt;];&lt;br /&gt; v.&lt;span style="font-weight: bold;"&gt;play()&lt;/span&gt;;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Se siete interessati a vedere tutte le feature che diverranno realtà con il rilascio del Browser più amato dagli sviluppatori web non vi resta che puntare il vostro browser alla pagina del &lt;a href="https://developer.mozilla.org/en/Firefox_3.1_for_developers"&gt;&lt;span style="font-weight: bold;"&gt;Mozilla developer center&lt;/span&gt;&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-898447880339970587?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/898447880339970587/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=898447880339970587&amp;isPopup=true' title='2 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/898447880339970587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/898447880339970587'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/02/html5-sempre-piu-integrato-nei-browser.html' title='HTML5 Sempre più Integrato nei Browser'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-8457034830642624061</id><published>2009-02-10T00:04:00.005+01:00</published><updated>2009-02-10T01:26:57.573+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Personale'/><category scheme='http://www.blogger.com/atom/ns#' term='SicurezzaPC'/><category scheme='http://www.blogger.com/atom/ns#' term='Privacy'/><title type='text'>Siti Truffaldini</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_kLl8btDOtr0/SZDBHAeGLuI/AAAAAAAAAnM/0au19dkj1fo/s1600-h/UBI-banca.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 195px;" src="http://1.bp.blogspot.com/_kLl8btDOtr0/SZDBHAeGLuI/AAAAAAAAAnM/0au19dkj1fo/s320/UBI-banca.gif" alt="" id="BLOGGER_PHOTO_ID_5300949087544553186" border="0" /&gt;&lt;/a&gt;Nell'ultimo periodo le nostre caselle di posta, sono sotto un costante bombardamento di mail truffaldine(&lt;a href="http://www.microsoft.com/italy/athome/security/email/phishing.mspx"&gt;&lt;b&gt;phishing&lt;/b&gt;&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Queste mail che si spacciano( &lt;span style="font-style: italic;"&gt;quelle da me ricevute&lt;/span&gt;)da posta elettronica inviata almeno apparentemente dalle &lt;a href="http://www.poste.it/"&gt;Poste.it&lt;/a&gt;,  con dei suoi servizi derivati, tipo &lt;a href="http://www.poste.it/bancoposta/contobancoposta/"&gt;Banco Posta&lt;/a&gt;, e &lt;a href="http://www.poste.it/bancoposta/cartedipagamento/carte_postepay.shtml"&gt;postepay&lt;/a&gt;, ma non solo, ne  arrivano anche da servizi bancari tipo &lt;a href="http://aziende.iwbank.it/sportelli-ubi-banca-aziende.html"&gt;UBI Banca&lt;/a&gt;(&lt;span style="font-style: italic;"&gt;immagine a fianco&lt;/span&gt;), e &lt;a href="http://www.intesasanpaolo.com/scriptIbve/retail20/RetailIntesaSanpaolo/ita/home/ita_home.jsp"&gt;Banca Intesa&lt;/a&gt; , e da  &lt;a href="http://www.ebay.it/?keyword=ebay&amp;amp;crlp=2788748519_906&amp;amp;adgroup_id=1158609479&amp;amp;tt_encode=raw"&gt;ebay&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt; Inutile dire che queste E/mail, sono &lt;a href="http://antiphishing.poste.it/rischi_phishing.shtml"&gt;fasulle&lt;/a&gt;, il loro intento è solamente quello di rubare i vostri &lt;span style="font-weight: bold;"&gt;codici Pin&lt;/span&gt;, o le vostre credenziali  per accedere ai &lt;span style="font-weight: bold;"&gt;vostri conti&lt;/span&gt; e prosciugarveli.&lt;br /&gt;&lt;br /&gt;Non cadete nella trappola tesavi dal furbastro di turno, &lt;span style="font-weight: bold;"&gt;Poste.it&lt;/span&gt; e le &lt;span style="font-weight: bold;"&gt;Banche&lt;/span&gt;, non &lt;a href="http://antiphishing.poste.it/rischi_phishing.shtml"&gt;richiedono&lt;/a&gt; &lt;span style="font-weight: bold;"&gt;mai per E/mail&lt;/span&gt; i vostri &lt;span style="font-weight: bold;"&gt;numeri di conto&lt;/span&gt; o le vostre &lt;span style="font-weight: bold;"&gt;credenziali&lt;/span&gt;. Se siete dubbiosi, chiedete aiuto ad un vostro conoscente scaltro nell'usare il computer, basterà un semplice &lt;a href="http://www.indirizzo-ip.com/whois.php"&gt;whois&lt;/a&gt; tramite&lt;span style="font-weight: bold;"&gt; IP&lt;/span&gt; per non cadere nelle braccia del lupo.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Siate accorti!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-8457034830642624061?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/8457034830642624061/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=8457034830642624061&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/8457034830642624061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/8457034830642624061'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/02/siti-truffaldini.html' title='Siti Truffaldini'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_kLl8btDOtr0/SZDBHAeGLuI/AAAAAAAAAnM/0au19dkj1fo/s72-c/UBI-banca.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-2872406865005450814</id><published>2009-02-08T20:59:00.002+01:00</published><updated>2009-02-08T21:31:26.304+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='Programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Serializzazione dei dati in Python</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Python&lt;/span&gt; dispone nella sua &lt;a href="http://docs.python.org/library/"&gt;libreria standard&lt;/a&gt;(&lt;span style="font-style: italic;"&gt;già python e compreso di batterie&lt;/span&gt;)diversi moduli per memorizzare direttamente oggetti Python in un file, sto parlando di &lt;a href="http://docs.python.org/library/pickle.html"&gt;pickle&lt;/a&gt;, &lt;a href="http://docs.python.org/library/pickle.html#module-cPickle"&gt;cpickle&lt;/a&gt;, ma anche del modulo &lt;a href="http://docs.python.org/library/shelve.html"&gt;shelve&lt;/a&gt; che hanno il compito di effettuare il &lt;a href="http://en.wikipedia.org/wiki/Serialization"&gt;pickling, o serializzare&lt;/a&gt; oggetti in un database accessibile tramite chiavi di tipo dizionario nel caso specifico di &lt;a href="http://docs.python.org/library/shelve.html"&gt;shelve&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Vediamo il comportamento di &lt;span style="font-weight: bold;"&gt;pickle&lt;/span&gt;&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&gt;&gt;&gt; &lt;span style="font-weight: bold;"&gt;import&lt;/span&gt; pickle&lt;br /&gt;&gt;&gt;&gt; file_diz = {&lt;span style="color: rgb(0, 102, 0);"&gt;'hacker'&lt;/span&gt;:&lt;span style="color: rgb(255, 0, 0);"&gt;1&lt;/span&gt;, &lt;span style="color: rgb(0, 102, 0);"&gt;'geek'&lt;/span&gt;:&lt;span style="color: rgb(255, 0, 0);"&gt;2&lt;/span&gt;, &lt;span style="color: rgb(0, 102, 0);"&gt;'nerd'&lt;/span&gt;:&lt;span style="color: rgb(255, 0, 0);"&gt;3&lt;/span&gt;, &lt;span style="color: rgb(0, 102, 0);"&gt;'troll'&lt;/span&gt;:&lt;span style="color: rgb(255, 0, 0);"&gt;4&lt;/span&gt;}&lt;br /&gt;&gt;&gt;&gt; pickle_data = &lt;span style="font-weight: bold;"&gt;open&lt;/span&gt;(&lt;span style="color: rgb(102, 0, 0);"&gt;'file_diz.pkl'&lt;/span&gt;, &lt;span style="color: rgb(102, 0, 0);"&gt;'w'&lt;/span&gt;)&lt;br /&gt;&gt;&gt;&gt; pickle.dump(file_diz, pickle_data)&lt;br /&gt;&gt;&gt;&gt; pickle_data.&lt;span style="font-weight: bold;"&gt;close()&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Adesso apriamo il file creato con &lt;span style="font-weight: bold;"&gt;pickle&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&gt;&gt;&gt; pickle_data = &lt;span style="font-weight: bold;"&gt;open&lt;/span&gt;(&lt;span style="color: rgb(102, 0, 0);"&gt;'file_diz.pkl'&lt;/span&gt;, &lt;span style="color: rgb(102, 0, 0);"&gt;'r'&lt;/span&gt;)&lt;br /&gt;&gt;&gt;&gt; new_pickle_data = pickle.&lt;span style="font-weight: bold;"&gt;load&lt;/span&gt;(pickle_data)&lt;br /&gt;&gt;&gt;&gt; new_pickle_data&lt;br /&gt;{&lt;span style="color: rgb(0, 102, 0);"&gt;'hacker'&lt;/span&gt;: &lt;span style="color: rgb(255, 0, 0);"&gt;1&lt;/span&gt;, &lt;span style="color: rgb(0, 102, 0);"&gt;'geek'&lt;/span&gt;: &lt;span style="color: rgb(255, 0, 0);"&gt;2&lt;/span&gt;, &lt;span style="color: rgb(0, 102, 0);"&gt;'troll'&lt;/span&gt;: &lt;span style="color: rgb(255, 0, 0);"&gt;4&lt;/span&gt;, &lt;span style="color: rgb(0, 102, 0);"&gt;'nerd'&lt;/span&gt;: &lt;span style="color: rgb(255, 0, 0);"&gt;3&lt;/span&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Vediamo un' altro esempio&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&gt;&gt;&gt; &lt;span style="font-weight: bold;"&gt;import&lt;/span&gt; pickle&lt;br /&gt;&gt;&gt;&gt; diz = {&lt;span style="color: rgb(0, 102, 0);"&gt;'python'&lt;/span&gt;:&lt;span style="font-weight: bold;"&gt;[&lt;/span&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;'bello'&lt;/span&gt;,&lt;span style="color: rgb(102, 0, 0);"&gt;'elegante'&lt;/span&gt;,&lt;span style="color: rgb(102, 0, 0);"&gt;'divertente'&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;]&lt;/span&gt;,&lt;br /&gt;...        &lt;span style="color: rgb(0, 102, 0);"&gt;'java'&lt;/span&gt;: &lt;span style="font-weight: bold;"&gt;[&lt;/span&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;'rindondande'&lt;/span&gt;,&lt;span style="color: rgb(102, 0, 0);"&gt;'noioso'&lt;/span&gt;,&lt;span style="color: rgb(102, 0, 0);"&gt;'lento'&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;]&lt;/span&gt;,&lt;br /&gt;...        &lt;span style="color: rgb(0, 102, 0);"&gt;'ruby'&lt;/span&gt;: &lt;span style="font-weight: bold;"&gt;[&lt;/span&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;'copione'&lt;/span&gt;,&lt;span style="color: rgb(102, 0, 0);"&gt;'soppravalutato'&lt;/span&gt;,&lt;span style="color: rgb(102, 0, 0);"&gt;'buono sul web'&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;]&lt;/span&gt;}&lt;br /&gt;&gt;&gt;&gt; file_diz = &lt;span style="font-weight: bold;"&gt;open&lt;/span&gt;(&lt;span style="color: rgb(102, 0, 0);"&gt;'lista'&lt;/span&gt;,&lt;span style="color: rgb(102, 0, 0);"&gt;'w'&lt;/span&gt;)&lt;br /&gt;&gt;&gt;&gt; pickle.&lt;span style="font-weight: bold;"&gt;dump&lt;/span&gt;(diz, file_diz)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Adesso apriamo il file in lettura&lt;/span&gt;:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&gt;&gt;&gt; file_diz = &lt;span style="font-weight: bold;"&gt;open&lt;/span&gt;(&lt;span style="color: rgb(102, 0, 0);"&gt;'lista'&lt;/span&gt;, &lt;span style="color: rgb(102, 0, 0);"&gt;'r'&lt;/span&gt;)&lt;br /&gt;&gt;&gt;&gt; diz = pickle.&lt;span style="font-weight: bold;"&gt;load&lt;/span&gt;(file_diz)&lt;br /&gt;&gt;&gt;&gt; diz&lt;br /&gt;{&lt;span style="color: rgb(0, 102, 0);"&gt;'python'&lt;/span&gt;: &lt;span style="font-weight: bold;"&gt;[&lt;/span&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;'bello'&lt;/span&gt;, &lt;span style="color: rgb(102, 0, 0);"&gt;'elegante'&lt;/span&gt;, &lt;span style="color: rgb(102, 0, 0);"&gt;'divertente'&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;]&lt;/span&gt;, &lt;span style="color: rgb(0, 102, 0);"&gt;'java'&lt;/span&gt;: &lt;span style="font-weight: bold;"&gt;[&lt;/span&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;'rindondande'&lt;/span&gt;, &lt;span style="color: rgb(102, 0, 0);"&gt;'noioso'&lt;/span&gt;, &lt;span style="color: rgb(102, 0, 0);"&gt;'lento'&lt;/span&gt;], &lt;span style="color: rgb(0, 102, 0);"&gt;'ruby'&lt;/span&gt;: &lt;span style="font-weight: bold;"&gt;[&lt;/span&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;'copione'&lt;/span&gt;, &lt;span style="color: rgb(102, 0, 0);"&gt;'soppravalutato'&lt;/span&gt;, &lt;span style="color: rgb(102, 0, 0);"&gt;'buono sul web'&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;]&lt;/span&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;adesso vediamo &lt;span style="font-weight: bold;"&gt;shelve&lt;/span&gt; al lavoro&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&gt;&gt;&gt; &lt;span style="font-weight: bold;"&gt;import&lt;/span&gt; shelve&lt;br /&gt;&gt;&gt;&gt; databas = shelve.&lt;span style="font-weight: bold;"&gt;open&lt;/span&gt;(&lt;span style="color: rgb(153, 102, 51);"&gt;"mioDB"&lt;/span&gt;) &lt;span style="color: rgb(153, 153, 153);"&gt;# creo il database&lt;/span&gt;&lt;br /&gt;&gt;&gt;&gt; databas&lt;span style="font-weight: bold;"&gt;[&lt;/span&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;'Top star'&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;]&lt;/span&gt; = &lt;span style="font-weight: bold;"&gt;[&lt;/span&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;'Iron Maiden'&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;]&lt;/span&gt;&lt;br /&gt;&gt;&gt;&gt; databas&lt;span style="font-weight: bold;"&gt;[&lt;/span&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;'Genere'&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;]&lt;/span&gt; = &lt;span style="font-weight: bold;"&gt;[&lt;/span&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;'Metal'&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;]&lt;/span&gt; &lt;br /&gt;&gt;&gt;&gt; databas  &lt;span style="color: rgb(153, 153, 153);"&gt;# chiamo il database&lt;/span&gt;&lt;br /&gt;{&lt;span style="color: rgb(0, 102, 0);"&gt;'Genere'&lt;/span&gt;: &lt;span style="font-weight: bold;"&gt;[&lt;/span&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;'Metal'&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;]&lt;/span&gt;, &lt;span style="color: rgb(0, 102, 0);"&gt;'Top star'&lt;/span&gt;: &lt;span style="font-weight: bold;"&gt;[&lt;/span&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;'Iron Maiden'&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;]&lt;/span&gt;}&lt;br /&gt;&gt;&gt;&gt; databas.&lt;span style="font-weight: bold;"&gt;has_key&lt;/span&gt;(&lt;span style="color: rgb(102, 0, 0);"&gt;'Top star'&lt;/span&gt;) &lt;span style="color: rgb(153, 153, 153);"&gt;# chiamata tramite la prima chiave&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;1&lt;/span&gt;&lt;br /&gt;&gt;&gt;&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;del&lt;/span&gt; databas&lt;span style="font-weight: bold;"&gt;[&lt;/span&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;'Top star'&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;]&lt;/span&gt; &lt;span style="color: rgb(153, 153, 153);"&gt;# elimino la prima chiave cioè Top star&lt;/span&gt;&lt;br /&gt;&gt;&gt;&gt; databas&lt;br /&gt;{&lt;span style="color: rgb(0, 102, 0);"&gt;'Genere'&lt;/span&gt;: &lt;span style="font-weight: bold;"&gt;[&lt;/span&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;'Metal'&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;]&lt;/span&gt;}&lt;br /&gt;&gt;&gt;&gt; databas.&lt;span style="font-weight: bold;"&gt;keys()&lt;/span&gt; &lt;span style="color: rgb(153, 153, 153);"&gt;# ecco la chiave rimanente nel database&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;'Genere'&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;]&lt;/span&gt;&lt;br /&gt;&gt;&gt;&gt; databas.&lt;span style="font-weight: bold;"&gt;close()&lt;/span&gt;&lt;span style="color: rgb(153, 153, 153);"&gt;# chiudo il database&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Indubbiamente sia &lt;span style="font-weight: bold;"&gt;pickle&lt;/span&gt;, che &lt;span style="font-weight: bold;"&gt;shelve&lt;/span&gt;, sono degli ottimi modi per creare dei semplici file di database persistenti, ma non sono i soli, ci sono altri moduli, che definiscono dei dizionari su disco, tra questi ci sono &lt;span style="font-weight: bold;"&gt;dbm&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;gdbm&lt;/span&gt;, e &lt;span style="font-weight: bold;"&gt;anydbm&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-2872406865005450814?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/2872406865005450814/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=2872406865005450814&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/2872406865005450814'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/2872406865005450814'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/02/serializzazione-dei-dati-in-python.html' title='Serializzazione dei dati in Python'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-2905878038308799834</id><published>2009-02-08T20:49:00.002+01:00</published><updated>2009-02-08T20:57:24.896+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='Programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>Operazioni di Incremento e Decremento in Python</title><content type='html'>Operazione che incrementa da &lt;span style="font-weight: bold;"&gt;1&lt;/span&gt; a&lt;span style="font-weight: bold;"&gt; 9&lt;/span&gt;, l'operatore &lt;span style="font-weight: bold;"&gt;*&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&gt;&gt;&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt; def&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;main(&lt;/span&gt;):&lt;br /&gt;...     &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;for&lt;/span&gt; count &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;in&lt;/span&gt; range(&lt;span style="color: rgb(255, 0, 0);"&gt;1&lt;/span&gt;, &lt;span style="color: rgb(255, 0, 0);"&gt;10&lt;/span&gt;): &lt;span style="color: rgb(153, 153, 153);"&gt;# incrementa da 1 a 9&lt;/span&gt;&lt;br /&gt;...         &lt;span style="font-weight: bold;"&gt;print&lt;/span&gt; &lt;span style="color: rgb(255, 102, 0);"&gt;"*"&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;*&lt;/span&gt; count&lt;br /&gt;...       &lt;br /&gt;&gt;&gt;&gt; &lt;span style="font-weight: bold;"&gt;main()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;*&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;**&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;***&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;****&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;*****&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;******&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;*******&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;********&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;*********&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Operazione che Decrementa da&lt;span style="font-weight: bold;"&gt; 9&lt;/span&gt; a &lt;span style="font-weight: bold;"&gt;1&lt;/span&gt; l'operatore &lt;span style="font-weight: bold;"&gt;*&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&gt;&gt;&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;def&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;main()&lt;/span&gt;:&lt;br /&gt;...     &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;for&lt;/span&gt; count &lt;span style="font-weight: bold; color: rgb(0, 0, 153);"&gt;in&lt;/span&gt; range(&lt;span style="color: rgb(255, 0, 0);"&gt;9&lt;/span&gt;, &lt;span style="color: rgb(204, 0, 0);"&gt;0&lt;/span&gt;, &lt;span style="color: rgb(255, 0, 0);"&gt;-1&lt;/span&gt;): &lt;span style="color: rgb(153, 153, 153);"&gt;# decrementa da 9 a 1&lt;/span&gt;&lt;br /&gt;...         &lt;span style="font-weight: bold;"&gt;print&lt;/span&gt; &lt;span style="color: rgb(255, 102, 0);"&gt;"*"&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;*&lt;/span&gt; count&lt;br /&gt;...       &lt;br /&gt;&gt;&gt;&gt;&lt;span style="font-weight: bold;"&gt; main()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;*********&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;********&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;*******&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;******&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;*****&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;****&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;***&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;**&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;*&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3234545684503477006-2905878038308799834?l=othertothink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://othertothink.blogspot.com/feeds/2905878038308799834/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3234545684503477006&amp;postID=2905878038308799834&amp;isPopup=true' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/2905878038308799834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3234545684503477006/posts/default/2905878038308799834'/><link rel='alternate' type='text/html' href='http://othertothink.blogspot.com/2009/02/operazioni-di-incremento-e-decremento.html' title='Operazioni di Incremento e Decremento in Python'/><author><name>@rchie malex</name><uri>http://www.blogger.com/profile/00946468624735667225</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='18' height='32' src='http://4.bp.blogspot.com/-pRYty4aTs0M/Tv9jlF8m3qI/AAAAAAAAA5U/MRRIQByvYxk/s220/monak.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3234545684503477006.post-3505828102289354020</id><published>2009-02-03T01:19:00.004+01:00</published><updated>2009-02-04T02:14:44.576+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scripting'/><category scheme='http://www.blogger.com/atom/ns#' term='Sistema'/><category scheme='http://www.blogger.com/atom/ns#' term='Programmazione'/><category scheme='http://www.blogger.com/atom/ns#' term='Python'/><title type='text'>PYTHON Modulo Subprocess</title><content type='html'>Il modulo &lt;a href="http://www.python.org/doc/2.5.2/lib/module-subprocess.html"&gt;Subprocess&lt;/a&gt; ha fatto la sua comparsa nella versione &lt;a href="http://www.python.org/doc/2.4.4/"&gt;2.4 &lt;/a&gt;di &lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt;.&lt;br /&gt;Con il modulo &lt;a href="http://www.python.org/doc/2.5.2/lib/module-subprocess.html"&gt;Subprocess&lt;/a&gt;, si è reso molto più facile, interfacciare &lt;a href="http://www.python.org/"&gt;Python&lt;/a&gt; con processi di&lt;br /&gt;sistema, quali  la &lt;span style="font-weight: bold;"&gt;shell&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;l'input&lt;/span&gt; e &lt;span style="font-weight: bold;"&gt;l'output&lt;/span&gt;, chiamate a processi di sistema, e a una serie&lt;br /&gt;di utility sia per sistemi di tipo &lt;a href="http://it.wikipedia.org/wiki/Unix"&gt;Unix&lt;/a&gt;, che &lt;a href="http://www.microsoft.com/Italy/windows/default.mspx"&gt;Windows&lt;/a&gt;, che con i "&lt;span style="font-style: italic;"&gt;classici&lt;/span&gt;" &lt;span style="font-weight: bold;"&gt;os.popen&lt;/span&gt;&lt;a href="http://www.python.org/doc/2.5.2/lib/os-newstreams.html#os-newstreams"&gt;&lt;/a&gt;, &lt;span style="font-weight: bold;"&gt;os.popen2&lt;/span&gt;&lt;a style="font-weight: bold;" href="http://www.python.org/doc/2.5.2/lib/node539.html"&gt;&lt;/a&gt;,&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;os.system&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;os.exec&lt;/span&gt;, ecc, del modulo &lt;a href="http://docs.python.it/html/lib/module-os.html"&gt;OS&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Esempio &lt;span style="font-weight: bold;"&gt;os.system&lt;/span&gt;:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;import&lt;/span&gt; os&lt;br /&gt;mioSistema = os.system(&lt;span style="color: rgb(102, 0, 0);"&gt;'dir'&lt;/span&gt;)&lt;br /&gt;mioSistema&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Esempio &lt;span style="font-weight: bold;"&gt;subprocess&lt;/span&gt;:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;def&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;main()&lt;/span&gt;:&lt;br /&gt;vers = &lt;span style="color: rgb(102, 0, 0);"&gt;"du"&lt;/span&gt;&lt;br /&gt;vera = &lt;span style="color: rgb(102, 0, 0);"&gt;"-h"&lt;/span&gt;&lt;br /&gt;dir_path = &lt;span style="color: rgb(102, 0, 0);"&gt;"/home"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;print&lt;/span&gt; &lt;span style="color: rgb(102, 0, 0);"&gt;"Verifica spazio occupato nella mia home"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;subprocess.call&lt;/span&gt;([vers, vera, dir_path])&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;main()&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Questo invece è l'utilizzo reale del modulo &lt;span style="font-weight: bold;"&gt;subprocess&lt;/span&gt; al lavoro, che ci stampa a video la versione del kernel Linux in uso sul sistema, il comando &lt;span style="font-weight
