<?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-1648270047395980929</id><updated>2012-02-16T11:13:38.852+02:00</updated><category term='linux'/><category term='musica'/><category term='del.icio.us'/><category term='libri'/><category term='javascript'/><category term='java'/><category term='php'/><category term='modem'/><category term='andrea'/><category term='gsm'/><category term='wardriving'/><category term='viaggi'/><category term='seriale'/><category term='django'/><category term='font'/><category term='opentype'/><category term='blog'/><category term='osx'/><category term='dave'/><category term='complemento a 2'/><category term='log4j'/><category term='firefox'/><category term='primo aprile'/><category term='python'/><category term='amule'/><category term='rss'/><category term='html'/><category term='ie7'/><category term='wordwrap'/><category term='Torino'/><category term='eclipse'/><category term='ubuntu'/><category term='gd'/><category term='The Police'/><category term='RandomAccessFile'/><category term='google'/><title type='text'>Out of Bound</title><subtitle type='html'>System.out.println(a[a.length]);</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://out-of-bound.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://out-of-bound.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Dave</name><uri>http://www.blogger.com/profile/07712218025275177596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>29</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1648270047395980929.post-8896004740491790308</id><published>2007-05-16T01:37:00.000+02:00</published><updated>2007-05-16T01:38:46.471+02:00</updated><title type='text'></title><content type='html'>&lt;embed style="width:400px; height:326px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docId=3237027119714361315&amp;hl=en" flashvars=""&gt; &lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1648270047395980929-8896004740491790308?l=out-of-bound.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://out-of-bound.blogspot.com/feeds/8896004740491790308/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1648270047395980929&amp;postID=8896004740491790308' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/8896004740491790308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/8896004740491790308'/><link rel='alternate' type='text/html' href='http://out-of-bound.blogspot.com/2007/05/blog-post.html' title=''/><author><name>noandrea</name><uri>http://www.blogger.com/profile/14334172638705463251</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1648270047395980929.post-3838530441830425979</id><published>2007-05-13T21:35:00.000+02:00</published><updated>2007-05-13T21:38:35.200+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='django'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Ancora Django</title><content type='html'>&lt;span style="font-family: verdana;"&gt;Contiuano gli esperimenti con Django.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Una quindicina di giorni di prove, letture e googlate varie mi hanno permesso di farmi un'idea più precisa di questo bellissimo framework.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Mi piace un sacco, si possono fare un sacco di cose in empi brevissimi, funzioni che, sviluppate in php secondo i metodi che uso abitualmente, richiedono un sacco di codice noioso e ripetitivo, in Django richiedono due righe di codice e un template (penso ad esempio a pagine con &lt;/span&gt;&lt;a style="font-family: verdana;" href="http://www.djangoproject.com/documentation/generic_views/"&gt;liste di record&lt;/a&gt;&lt;span style="font-family: verdana;"&gt;, o alla &lt;/span&gt;&lt;a style="font-family: verdana;" href="http://www.djangoproject.com/documentation/newforms/"&gt;visualizzazione e validazione dei dati che arrivano da un form&lt;/a&gt;&lt;span style="font-family: verdana;"&gt;, o al modulo per l'&lt;/span&gt;&lt;a style="font-family: verdana;" href="http://www.djangoproject.com/documentation/authentication/"&gt;autenticazione e la gestione degli utenti&lt;/a&gt;&lt;span style="font-family: verdana;"&gt; e delle &lt;/span&gt;&lt;a style="font-family: verdana;" href="http://www.djangoproject.com/documentation/sessions/"&gt;sessioni&lt;/a&gt;&lt;span style="font-family: verdana;"&gt;, o a quello per gli &lt;/span&gt;&lt;a style="font-family: verdana;" href="http://www.djangoproject.com/documentation/syndication_feeds/"&gt;rss&lt;/a&gt;&lt;span style="font-family: verdana;"&gt;...). Quasi tutto quello che serve per mettere su un sito web è implementato da qualche parte, e se non lo è farlo è velocissimo, estendendo le funzionalità già presenti.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;E Python mi sembra davvero un bel linguaggio, con tante strutture dati comodissime da usare e una libreria standarda molto ampia, totalmente object-oriented e che permette di scrivere codice molto compatto... Bisogna solo abituarsi alla sintassi, strana per chi arriva da C/Java: l'indentazione obbligatoria, i due punti dopo i for, i while e gli if, ma tutto cose di poco conto...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Difetti di Django? Non è immediato iniziare a ragionare come vuole lui, se non si è abituati a procedere secondo il principio MCV, e bisogna smanettare un po' per farlo andare su Apache (non ci sono ancora riuscito, Andrea però sì, probabilmente sulla mia macchina c'è qualche pasticcio di troppo...).&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1648270047395980929-3838530441830425979?l=out-of-bound.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://out-of-bound.blogspot.com/feeds/3838530441830425979/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1648270047395980929&amp;postID=3838530441830425979' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/3838530441830425979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/3838530441830425979'/><link rel='alternate' type='text/html' href='http://out-of-bound.blogspot.com/2007/05/ancora-django.html' title='Ancora Django'/><author><name>Dave</name><uri>http://www.blogger.com/profile/07712218025275177596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1648270047395980929.post-513092909527617060</id><published>2007-05-10T02:18:00.000+02:00</published><updated>2007-05-10T02:24:38.813+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='osx'/><title type='text'>GIUBILO</title><content type='html'>Ho una nuova fiammante cofigurazione  che ha l'unico difetto di essere universal binary.&lt;br /&gt;compilata a manina (tranne php)&lt;br /&gt;Apache 2.2.4&lt;br /&gt;Php 5.2.2&lt;br /&gt;Python 2.5.1&lt;br /&gt;Subversion 1.4.3 (con supporto ssl)&lt;br /&gt;e poi&lt;br /&gt;apr(-util) 1.2.8&lt;br /&gt;libneon 0.25.5 (per forza se no subversion non va)&lt;br /&gt;&lt;br /&gt;che bello.&lt;br /&gt;come sono contento.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;La top 2 delle cose che fanno girare i coglioni di brutto è:&lt;br /&gt;Php&lt;br /&gt;Python&lt;br /&gt;il resto lisio.&lt;br /&gt;ciao ciao ciao.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1648270047395980929-513092909527617060?l=out-of-bound.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://out-of-bound.blogspot.com/feeds/513092909527617060/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1648270047395980929&amp;postID=513092909527617060' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/513092909527617060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/513092909527617060'/><link rel='alternate' type='text/html' href='http://out-of-bound.blogspot.com/2007/05/giubilo.html' title='GIUBILO'/><author><name>noandrea</name><uri>http://www.blogger.com/profile/14334172638705463251</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1648270047395980929.post-591319138432527376</id><published>2007-05-10T00:49:00.000+02:00</published><updated>2007-05-10T00:54:27.473+02:00</updated><title type='text'>Building Night</title><content type='html'>Una notte passata a compilare.&lt;br /&gt;Per avere un solo apache con subversion, php e python.&lt;br /&gt;Per avere tutto NON universal ma solo per intel&lt;br /&gt;Il risultato è che:&lt;br /&gt;&lt;div style="text-align: center;"&gt;NON SI PUO'&lt;br /&gt;&lt;div style="text-align: left;"&gt;o meglio non esiste la semplice via, magari n giorno scriverò come si fa.&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1648270047395980929-591319138432527376?l=out-of-bound.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://out-of-bound.blogspot.com/feeds/591319138432527376/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1648270047395980929&amp;postID=591319138432527376' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/591319138432527376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/591319138432527376'/><link rel='alternate' type='text/html' href='http://out-of-bound.blogspot.com/2007/05/building-night.html' title='Building Night'/><author><name>noandrea</name><uri>http://www.blogger.com/profile/14334172638705463251</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1648270047395980929.post-7040809897343572730</id><published>2007-04-27T10:35:00.000+02:00</published><updated>2007-04-27T10:42:00.020+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='html'/><category scheme='http://www.blogger.com/atom/ns#' term='ie7'/><title type='text'>IE7, campi input e readonly</title><content type='html'>&lt;span style="font-family:verdana;"&gt;Come tutti sappiamo, è possibile settare un campo di testo in sola lettura con l'attributo readonly:&lt;br /&gt;&amp;lt;input type="text" id="i" value="pippo" readonly="readonly" /&amp;gt;&lt;br /&gt;&lt;br /&gt;Funziona sia con IE7 che con Firefox.&lt;br /&gt;Ma se vogliamo settare la proprietà dinamicamente, con javascript?&lt;br /&gt;Sembrerebbe facile:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;var i = document.getElementById("i");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;i.setAttribute("readonly", "readonly");&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Con FF funziona, con IE7 no.&lt;br /&gt;&lt;br /&gt;La soluzione è fare così:&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="font-family:courier new;"&gt;var i = document.getElementById("i");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;i.readOnly = true;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;che funziona con entrambi i browser.&lt;br /&gt;Sarebbe bello sapere perchè la prima soluzione non va bene...&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1648270047395980929-7040809897343572730?l=out-of-bound.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://out-of-bound.blogspot.com/feeds/7040809897343572730/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1648270047395980929&amp;postID=7040809897343572730' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/7040809897343572730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/7040809897343572730'/><link rel='alternate' type='text/html' href='http://out-of-bound.blogspot.com/2007/04/ie7-campi-input-e-readonly.html' title='IE7, campi input e readonly'/><author><name>Dave</name><uri>http://www.blogger.com/profile/07712218025275177596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1648270047395980929.post-3297048603090514160</id><published>2007-04-27T01:11:00.000+02:00</published><updated>2007-10-21T13:03:59.246+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='osx'/><category scheme='http://www.blogger.com/atom/ns#' term='amule'/><title type='text'>aMuleGui for Mac OSX (English version)</title><content type='html'>This is a translation of "AmuleGUI sul mac"&lt;br /&gt;&lt;br /&gt;aMuleGui is a great thing, many users can control a single aMule through a remote interface. But there are not any precompiled version of aMuleGui for Mac. So this is what you need to do for making aMuleGui working on Mac.&lt;br /&gt;You will need gcc installed, this mean that you need the Developer Tools that can be find on the dvd of OSX or can be download from the Apple developer site.&lt;br /&gt;Than you have to download the wxWidgets from &lt;a href="http://www.wxwidgets.org/downloads/"&gt;here&lt;/a&gt; and naturally aMule from &lt;a href="http://www.amule.org/files/download.php?file=160"&gt;here&lt;/a&gt;.  I'm talking about sources obiouvsly =).&lt;br /&gt;The version that I've used are:&lt;br /&gt;wxMac 2.6.4&lt;br /&gt;aMule 2.1.3&lt;br /&gt;Now ride the terminal and write:&lt;br /&gt;&lt;pre&gt;&gt;tar xzf wxMac-2.6.4.tar.gz&lt;br /&gt;&gt;cd wxMac-2.6.4&lt;br /&gt;&gt;mkdir macbuild&lt;br /&gt;&gt;cd mackbuid&lt;br /&gt;&gt;../configure --disable-sound&lt;br /&gt;&gt;make&lt;br /&gt;&gt;sudo make install&lt;br /&gt;&lt;/pre&gt;I have used the --disable-sound parameter for the configure because I've get an error building wxWidgets on the library responsable for the sound, so fu** off sh**** library, but (maybe) this error depends on my system.&lt;br /&gt;Going on:&lt;br /&gt;&lt;pre&gt;&gt;cd ../../&lt;br /&gt;&gt;tar xjf aMule-2.1.3.tar.bz2&lt;br /&gt;&gt;cd aMule-2.1.3&lt;br /&gt;&gt;mkdir macbuild&lt;br /&gt;&gt;cd macbuild&lt;br /&gt;&gt;../configure --enable-amule-gui \&lt;br /&gt;--with-wx-config=/usr/local/bin/wx-config&lt;br /&gt;&gt;make&lt;br /&gt;&lt;/pre&gt;Now we make the pretty mac-style application&lt;br /&gt;&lt;pre&gt;&gt;mkdir -p amulegui.app/Contents/MacOS&lt;br /&gt;&gt;cp src/amulegui amulegui.app/Contents/MacOS&lt;br /&gt;&lt;/pre&gt;voilà, aMuleGui is ready.&lt;br /&gt;I don't know how to set the icon for the application that we have just made so if someone want explain how to do it I will appreciate a lot.&lt;br /&gt;Ciao, and sorry for my English&lt;br /&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1648270047395980929-3297048603090514160?l=out-of-bound.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://out-of-bound.blogspot.com/feeds/3297048603090514160/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1648270047395980929&amp;postID=3297048603090514160' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/3297048603090514160'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/3297048603090514160'/><link rel='alternate' type='text/html' href='http://out-of-bound.blogspot.com/2007/04/amulegui-for-mac-osx-english-version.html' title='aMuleGui for Mac OSX (English version)'/><author><name>noandrea</name><uri>http://www.blogger.com/profile/14334172638705463251</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1648270047395980929.post-5600442265779178340</id><published>2007-04-27T01:02:00.000+02:00</published><updated>2007-04-27T01:10:26.402+02:00</updated><title type='text'>Era una calda giornata di ....</title><content type='html'>Non mi ricordo quando il Dave e me abbiamo messo su questo blog ma Google Analytics la dice lunga:&lt;br /&gt;la maggior parte dei visitatori usa firefox&lt;br /&gt;la maggior parte dei visitatori cercava info su amulegui (seguita da django)&lt;br /&gt;la maggior parte dei visitatori usa il mac&lt;br /&gt;e per finire indovina un po'&lt;br /&gt;la maggior parte dei visitatori è italiana&lt;br /&gt;QUINDI&lt;br /&gt;per amore della scienza (il Dave e io) tradurremo i post di maggior successo in inglese tanto per vedere cosa accade.&lt;br /&gt;ciao a tutti.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1648270047395980929-5600442265779178340?l=out-of-bound.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://out-of-bound.blogspot.com/feeds/5600442265779178340/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1648270047395980929&amp;postID=5600442265779178340' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/5600442265779178340'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/5600442265779178340'/><link rel='alternate' type='text/html' href='http://out-of-bound.blogspot.com/2007/04/era-una-calda-giornata-di.html' title='Era una calda giornata di ....'/><author><name>noandrea</name><uri>http://www.blogger.com/profile/14334172638705463251</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1648270047395980929.post-4922214698242278854</id><published>2007-04-24T10:52:00.000+02:00</published><updated>2007-04-24T10:59:01.372+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='viaggi'/><title type='text'>Oslo - Norway</title><content type='html'>Oslo è una città che io non so come dire quanto è bella. Magari non bella da visistare tanti giorni perchè non è che ci siano moltissime cose da vedere, ma sicuramente da viverci deve essere una gran figata.&lt;br /&gt;Se non ti preoccupa il freddo.&lt;br /&gt;Se non ti spaventa la notte sempre.&lt;br /&gt;Insomma la cosa perfetta sarebbe abitarci durante l'estate, l'estate è proprio estate, 20 ore (o giù di lì) di sole al giorno, i fiordi le barche e poi un salto a Capo Nord.&lt;br /&gt;Davvero Davvero Bella&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1648270047395980929-4922214698242278854?l=out-of-bound.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://out-of-bound.blogspot.com/feeds/4922214698242278854/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1648270047395980929&amp;postID=4922214698242278854' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/4922214698242278854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/4922214698242278854'/><link rel='alternate' type='text/html' href='http://out-of-bound.blogspot.com/2007/04/oslo-norway.html' title='Oslo - Norway'/><author><name>noandrea</name><uri>http://www.blogger.com/profile/14334172638705463251</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1648270047395980929.post-3305825760476019872</id><published>2007-04-24T10:39:00.000+02:00</published><updated>2007-04-24T10:58:29.988+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Ubuntu 7.04 Feisty Fawn</title><content type='html'>Grandi novità, mentre ero a Oslo è uscita la nuova versione di Ubuntu la 7.04. La sto già installando, le new features si trovano &lt;a href="http://www.ubuntu.com/getubuntu/releasenotes/704tour"&gt;qui&lt;/a&gt;.&lt;br /&gt;L'upgrade è davvero semplice anche da interfaccia grafica, una cosa mai vista!!!&lt;br /&gt;L'unico cosa che non mi piace tanto è che nella versione server il webserver di default è apache 2.2.*, ciò significa che bisogna paioccare un po' per installare subversion.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1648270047395980929-3305825760476019872?l=out-of-bound.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://out-of-bound.blogspot.com/feeds/3305825760476019872/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1648270047395980929&amp;postID=3305825760476019872' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/3305825760476019872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/3305825760476019872'/><link rel='alternate' type='text/html' href='http://out-of-bound.blogspot.com/2007/04/ubuntu-704-feisty-fawn.html' title='Ubuntu 7.04 Feisty Fawn'/><author><name>noandrea</name><uri>http://www.blogger.com/profile/14334172638705463251</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1648270047395980929.post-7733331070613608158</id><published>2007-04-20T11:28:00.000+02:00</published><updated>2007-04-20T11:30:47.655+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='The Police'/><category scheme='http://www.blogger.com/atom/ns#' term='musica'/><category scheme='http://www.blogger.com/atom/ns#' term='Torino'/><title type='text'>The Police</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_OfNJakHUzN8/RiiIFiVFZYI/AAAAAAAAAAc/2bychPA4VE0/s1600-h/Police.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp1.blogger.com/_OfNJakHUzN8/RiiIFiVFZYI/AAAAAAAAAAc/2bychPA4VE0/s320/Police.jpg" alt="" id="BLOGGER_PHOTO_ID_5055440210419344770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;2 Ottobre, stadio Delle Alpi:&lt;br /&gt;The Police!&lt;br /&gt;Non vedo l'ora!&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1648270047395980929-7733331070613608158?l=out-of-bound.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://out-of-bound.blogspot.com/feeds/7733331070613608158/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1648270047395980929&amp;postID=7733331070613608158' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/7733331070613608158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/7733331070613608158'/><link rel='alternate' type='text/html' href='http://out-of-bound.blogspot.com/2007/04/police.html' title='The Police'/><author><name>Dave</name><uri>http://www.blogger.com/profile/07712218025275177596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_OfNJakHUzN8/RiiIFiVFZYI/AAAAAAAAAAc/2bychPA4VE0/s72-c/Police.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1648270047395980929.post-9195835497455618139</id><published>2007-04-19T00:22:00.000+02:00</published><updated>2007-04-19T00:30:47.453+02:00</updated><title type='text'>Regex</title><content type='html'>Oilà Dave, ti ricordi quando studiavamo linguaggi e ambienti? che bei tempi.&lt;br /&gt;Per ricordarli ti scrivo l'espressione regolare per riconoscere (per quanto sia possibile) se un mail è una replay analizzando il subject:&lt;br /&gt;&lt;pre&gt;^((r|R)(e|E)?:( )?)+.*&lt;/pre&gt;Se matcha questo con buone probabilità è una replay, ma ti dirò di più, ti dirò come strippare via il testo antico che la replay si porta dietro:&lt;br /&gt;&lt;pre&gt;&gt;+.*\r\n&lt;/pre&gt;Questo naturalmente da usare con un replaceAll.&lt;br /&gt;Ciao Dave, buone vacanze.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1648270047395980929-9195835497455618139?l=out-of-bound.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://out-of-bound.blogspot.com/feeds/9195835497455618139/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1648270047395980929&amp;postID=9195835497455618139' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/9195835497455618139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/9195835497455618139'/><link rel='alternate' type='text/html' href='http://out-of-bound.blogspot.com/2007/04/regex.html' title='Regex'/><author><name>noandrea</name><uri>http://www.blogger.com/profile/14334172638705463251</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1648270047395980929.post-8584362542391216666</id><published>2007-04-14T12:15:00.000+02:00</published><updated>2007-04-14T13:56:58.657+02:00</updated><title type='text'>Kurt Vonnegut</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_kr7uMBzyNc0/RiDBZkX0QlI/AAAAAAAAAAM/XqwbdIkeSgQ/s1600-h/vonnegutwikipedia.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_kr7uMBzyNc0/RiDBZkX0QlI/AAAAAAAAAAM/XqwbdIkeSgQ/s320/vonnegutwikipedia.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5053251426914157138" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Due giorni fa è morto Kurt Vonnegut, l'ho scoperto solo ora.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1648270047395980929-8584362542391216666?l=out-of-bound.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://out-of-bound.blogspot.com/feeds/8584362542391216666/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1648270047395980929&amp;postID=8584362542391216666' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/8584362542391216666'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/8584362542391216666'/><link rel='alternate' type='text/html' href='http://out-of-bound.blogspot.com/2007/04/kurt-vonnegut.html' title='Kurt Vonnegut'/><author><name>noandrea</name><uri>http://www.blogger.com/profile/14334172638705463251</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_kr7uMBzyNc0/RiDBZkX0QlI/AAAAAAAAAAM/XqwbdIkeSgQ/s72-c/vonnegutwikipedia.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1648270047395980929.post-1060111807673095544</id><published>2007-04-13T11:39:00.000+02:00</published><updated>2007-04-13T12:06:12.895+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='osx'/><title type='text'>AmuleGUI sul mac</title><content type='html'>aMuleGUI è una gran figata, permette a più utenti di collegarsi a un unico amule con un interfaccia remota. Purtroppo non ci sono versioni precompilate di aMuleGui per il mac. Perciò ecco come fare per compilarlo (sul mac).&lt;br /&gt;Bisogna avere gcc installato, insomma bisogna installare i Developers Tools che sono nel dvd di OSX oppure si scaricano dal sito di Apple.&lt;br /&gt;Bisogna scaricare wxWidgets da &lt;a href="http://www.wxwidgets.org/downloads/"&gt;qui&lt;/a&gt; e naturalmente aMule da &lt;a href="http://www.amule.org/files/download.php?file=160"&gt;qui&lt;/a&gt;. Sto parlando dei sorgenti naturalmente.&lt;br /&gt;Le versioni che ho usato sono&lt;br /&gt;wxMac 2.6.4&lt;br /&gt;aMule 2.1.3&lt;br /&gt;Terminale e si parte.&lt;br /&gt;&lt;pre&gt;&gt;tar xzf wxMac-2.6.4.tar.gz&lt;br /&gt;&gt;cd wxMac-2.6.4&lt;br /&gt;&gt;mkdir macbuild&lt;br /&gt;&gt;cd mackbuid&lt;br /&gt;&gt;../configure --disable-sound&lt;br /&gt;&gt;make&lt;br /&gt;&gt;sudo make install&lt;br /&gt;&lt;/pre&gt;Nel configure il parametro --disable-sound l'ho messo perchè mi dava sempre un errore in compilazione sulla libreria che gestisce il suono per cui aff..... la libreria, ma non è detto che su altre macchine ci sia questo problema.&lt;br /&gt;Proseguendo da dove mi ero fermato prima&lt;br /&gt;&lt;pre&gt;&gt;cd ../../&lt;br /&gt;&gt;tar xjf aMule-2.1.3.tar.bz2&lt;br /&gt;&gt;cd aMule-2.1.3&lt;br /&gt;&gt;mkdir macbuild&lt;br /&gt;&gt;cd macbuild&lt;br /&gt;&gt;../configure --enable-amule-gui --with-wx-config=/usr/local/bin/wx-config&lt;br /&gt;&gt;make&lt;br /&gt;&lt;/pre&gt;Ora facciamo la bella applicazzioncina&lt;br /&gt;&lt;pre&gt;&gt;mkdir -p amulegui.app/Contents/MacOS&lt;br /&gt;&gt;cp src/amulegui amulegui.app/Contents/MacOS&lt;br /&gt;&lt;/pre&gt;et voilà.&lt;br /&gt;Non so come si mettono le icone perciò amulegui avrà l'anonima icona di default di OSX se qualcuno sa come si mettono le icone me lo dica per cortesia.&lt;br /&gt;ciao.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1648270047395980929-1060111807673095544?l=out-of-bound.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://out-of-bound.blogspot.com/feeds/1060111807673095544/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1648270047395980929&amp;postID=1060111807673095544' title='5 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/1060111807673095544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/1060111807673095544'/><link rel='alternate' type='text/html' href='http://out-of-bound.blogspot.com/2007/04/amulegui-sul-mac.html' title='AmuleGUI sul mac'/><author><name>noandrea</name><uri>http://www.blogger.com/profile/14334172638705463251</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1648270047395980929.post-1485150684774321807</id><published>2007-04-11T11:52:00.000+02:00</published><updated>2007-04-11T11:58:30.157+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wordwrap'/><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><title type='text'>Soft wordwrap in Eclipse</title><content type='html'>&lt;span style="font-family:verdana;"&gt;Una cosa che manca ad Eclipse è il soft wordwrap, che è molto comodo specie se si scrivono lunghe stringhe di testo, ad esempio delle query, o se si ha un monitor con scarsa risoluzione orizzontale.&lt;br /&gt;Leggendo in giro pare che sia abbastanza problematico implementarlo, a causa dei mille controlli che Eclipse fa sulle righe (correttezza sintattica e tutte queste cose qua) e che diventano più complessi da fare se c'è il wordwrap.&lt;br /&gt;Esiste però un plugin che lo permette, si chiama &lt;a href="http://ahtik.com/blog/eclipse-word-wrap/"&gt;Virtual Word Wrap&lt;/a&gt;. E' ancora in beta, e quando lo si attiva la numerazione delle righe non è corretta, ma funziona ed è comodo da usare perchè lo si attiva/disattiva dal menu contestuale.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1648270047395980929-1485150684774321807?l=out-of-bound.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://out-of-bound.blogspot.com/feeds/1485150684774321807/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1648270047395980929&amp;postID=1485150684774321807' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/1485150684774321807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/1485150684774321807'/><link rel='alternate' type='text/html' href='http://out-of-bound.blogspot.com/2007/04/soft-wordrap-in-eclipse.html' title='Soft wordwrap in Eclipse'/><author><name>Dave</name><uri>http://www.blogger.com/profile/07712218025275177596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1648270047395980929.post-5129814088083388276</id><published>2007-04-01T13:46:00.000+02:00</published><updated>2007-04-01T18:06:37.193+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='primo aprile'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Gmail Paper e Google TiSP!</title><content type='html'>&lt;span style="font-family:verdana;"&gt;&lt;a href="http://mail.google.com/mail/help/paper/more.html"&gt;http://mail.google.com/mail/help/paper/more.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.google.com/tisp/"&gt;http://www.google.com/tisp/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Genio.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1648270047395980929-5129814088083388276?l=out-of-bound.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://out-of-bound.blogspot.com/feeds/5129814088083388276/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1648270047395980929&amp;postID=5129814088083388276' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/5129814088083388276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/5129814088083388276'/><link rel='alternate' type='text/html' href='http://out-of-bound.blogspot.com/2007/04/gmail-paper.html' title='Gmail Paper e Google TiSP!'/><author><name>Dave</name><uri>http://www.blogger.com/profile/07712218025275177596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1648270047395980929.post-4606348402900761831</id><published>2007-03-31T12:07:00.000+02:00</published><updated>2007-03-31T12:11:26.606+02:00</updated><title type='text'>Transizione</title><content type='html'>Eccoci giunti finalmente alla grande transizione.  Finalmente, dopo tanto (&lt;span style="text-decoration: line-through;"&gt;forse&lt;/span&gt; troppo) tempo ci si separa dal nido. L'unica speranza è di non essere costretti a tornare indietro. E' un po' come il suicidio, non lo puoi sbagliare.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1648270047395980929-4606348402900761831?l=out-of-bound.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://out-of-bound.blogspot.com/feeds/4606348402900761831/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1648270047395980929&amp;postID=4606348402900761831' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/4606348402900761831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/4606348402900761831'/><link rel='alternate' type='text/html' href='http://out-of-bound.blogspot.com/2007/03/transizione.html' title='Transizione'/><author><name>noandrea</name><uri>http://www.blogger.com/profile/14334172638705463251</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1648270047395980929.post-8920560735508201695</id><published>2007-03-29T16:21:00.000+02:00</published><updated>2007-03-29T16:32:37.276+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gd'/><category scheme='http://www.blogger.com/atom/ns#' term='opentype'/><category scheme='http://www.blogger.com/atom/ns#' term='font'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='osx'/><title type='text'>Font e GDLibrary</title><content type='html'>Oggi stavo cercando di scrivere del testo un un'immagine generata da php 5 usando le librerie GD. Sembrava uno cosa molto semplice, bastava usare la funzione &lt;a href="http://it.php.net/imagetfttxt"&gt;imagetfttext()&lt;/a&gt; passandogli tra i vari parametri anche il nome del font da usare.&lt;br /&gt;E invece no, ottenevo sempre dei simpatici quadratini: il font non veniva caricato. Dopo un bel po' di ricerche sul manuale di php  e su google, &lt;a href="http://it.php.net/manual/en/function.imagettftext.php#44127"&gt;ho scoperto che le versioni più recenti delle GD richiedono l'uso di font OpenType&lt;/a&gt;, che è un formato sviluppato da Microsoft e Adobe e a &lt;a href="http://en.wikipedia.org/wiki/Opentype"&gt;quanto pare abbastanza diffuso e con dei vantaggi rispetto agli altri tipi di font&lt;/a&gt;.&lt;br /&gt;OSX di default non ha font OpenType, ma con un'altra ricerca ho trovato &lt;a href="http://www.fonthaus.com/FH100124ot.zip"&gt;un font OpenType gratuito da scaricare&lt;/a&gt;, l'ho downloadato, l'ho copiato nella directory dello script, ho rilanciato lo script stesso e oplà, il testo è magicamente comparso sull'immagine.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1648270047395980929-8920560735508201695?l=out-of-bound.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://out-of-bound.blogspot.com/feeds/8920560735508201695/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1648270047395980929&amp;postID=8920560735508201695' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/8920560735508201695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/8920560735508201695'/><link rel='alternate' type='text/html' href='http://out-of-bound.blogspot.com/2007/03/font-e-gdlibrary.html' title='Font e GDLibrary'/><author><name>Dave</name><uri>http://www.blogger.com/profile/07712218025275177596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1648270047395980929.post-7481321996859722175</id><published>2007-03-27T17:42:00.001+02:00</published><updated>2007-03-27T18:05:26.902+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wardriving'/><title type='text'>Wardriving!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_OfNJakHUzN8/RglAqAFT-zI/AAAAAAAAAAU/N8gCooBvvOY/s1600-h/Foto+50.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_OfNJakHUzN8/RglAqAFT-zI/AAAAAAAAAAU/N8gCooBvvOY/s320/Foto+50.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5046635947766315826" /&gt;&lt;/a&gt;&lt;br /&gt;Connessi dalla macchina di Andrea, in via Barletta numero 76!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1648270047395980929-7481321996859722175?l=out-of-bound.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://out-of-bound.blogspot.com/feeds/7481321996859722175/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1648270047395980929&amp;postID=7481321996859722175' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/7481321996859722175'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/7481321996859722175'/><link rel='alternate' type='text/html' href='http://out-of-bound.blogspot.com/2007/03/wardriving.html' title='Wardriving!'/><author><name>Dave</name><uri>http://www.blogger.com/profile/07712218025275177596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_OfNJakHUzN8/RglAqAFT-zI/AAAAAAAAAAU/N8gCooBvvOY/s72-c/Foto+50.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1648270047395980929.post-2171993786655740458</id><published>2007-03-26T21:30:00.000+02:00</published><updated>2007-03-27T09:26:59.588+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='django'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Esperimenti con Django, parte II</title><content type='html'>&lt;span style="font-family:verdana;"&gt;La mia prima miniapplicazione funziona: mostra l'elenco dei guestbook e l'elenco dei messaggi per ogni guestbook presente. Aggiungiamo ora l'inserimento di un nuovo messaggio.&lt;br /&gt;Editiamo quindi il template &lt;span style="font-family:courier new;"&gt;messaggi.html&lt;/span&gt;, aggiungendovi al fondo un semplice form HTML:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;[form method="post" action="ins/"]&lt;br /&gt;[fieldset]&lt;br /&gt;[label]Nome:[/label[input type="text" name="nome"][br /]&lt;br /&gt;[label]Email:[/label][input type="text" name="mail"][br /]&lt;br /&gt;[label]Messaggio:[/label][textarea name="msg"][/textarea][br /]&lt;br /&gt;[input type="submit" value="Inserisci"]&lt;br /&gt;[/fieldse][/form]&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Notate l'action del form: punta a &lt;span style="font-family:courier new;"&gt;ins/&lt;/span&gt;.&lt;br /&gt;Editiamo quindi il file &lt;span style="font-family:courier new;"&gt;urls.py&lt;/span&gt;, aggiungendo la riga&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;(r'^guestbook/(?P&lt;guestbook_id&gt;\d+)/ins/$', 'mysite.guestbook.views.insmessage')&lt;/guestbook_id&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;alla variabile &lt;span style="font-family:courier new;"&gt;urlpatterns&lt;/span&gt;.&lt;br /&gt;Ora dobbiamo solo creare la nuova view, dentro a &lt;span style="font-family:courier new;"&gt;views.py&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;def insmessage(request, guestbook_id):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    m = Messaggi()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    m.autore = request.POST['nome']&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    m.email = request.POST['mail']&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    m.messaggio = request.POST['msg']&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    m.guestbook_id = guestbook_id&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    m.data = strftime("%Y-%m-%d %H:%M:%S")&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    m.save()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    return HttpResponseRedirect('/guestbook/'+guestbook_id+'/')&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Due parole: questa funzione crea un nuovo oggetto di tipo Messaggi (perchè ho chiamato la classe al plurale non me lo spiego), ne setta gli attributi con i dati che arrivano tramite post, attraverso il dictionary &lt;span style="font-family:courier new;"&gt;POST&lt;/span&gt; dell'oggetto &lt;span style="font-family:courier new;"&gt;HttpRequest&lt;/span&gt;, lo salva su db e fa un redirect alla pagina che mostra i messaggi.&lt;br /&gt;Tutto molto semplice, ovviamente esiste anche un dictionary &lt;span style="font-family:courier new;"&gt;GET&lt;/span&gt; per dati in get.&lt;br /&gt;&lt;br /&gt;Il sistema di django è molto bello, la separazione tra template, models e views è netta e molto chiara e effettivamente una volta che si prende la mano mi pare che possa essere un ottimo strumento per velocizzare lo sviluppo.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&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/1648270047395980929-2171993786655740458?l=out-of-bound.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://out-of-bound.blogspot.com/feeds/2171993786655740458/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1648270047395980929&amp;postID=2171993786655740458' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/2171993786655740458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/2171993786655740458'/><link rel='alternate' type='text/html' href='http://out-of-bound.blogspot.com/2007/03/esperimenti-con-django-parte-ii.html' title='Esperimenti con Django, parte II'/><author><name>Dave</name><uri>http://www.blogger.com/profile/07712218025275177596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1648270047395980929.post-6115924423875339420</id><published>2007-03-26T09:55:00.000+02:00</published><updated>2007-03-26T17:34:28.905+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='del.icio.us'/><category scheme='http://www.blogger.com/atom/ns#' term='rss'/><title type='text'>Modifiche layout</title><content type='html'>&lt;span style="font-family:verdana;"&gt;Andrea ha cambiato il template, io ho aggiunto alla barra laterale il feed dei bookmark miei e suoi su &lt;a href="http://del.icio.us/"&gt;del.icio.us&lt;/a&gt;. Ci piace? Proviamo un po' e poi vediamo.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1648270047395980929-6115924423875339420?l=out-of-bound.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://out-of-bound.blogspot.com/feeds/6115924423875339420/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1648270047395980929&amp;postID=6115924423875339420' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/6115924423875339420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/6115924423875339420'/><link rel='alternate' type='text/html' href='http://out-of-bound.blogspot.com/2007/03/modifiche-layout.html' title='Modifiche layout'/><author><name>Dave</name><uri>http://www.blogger.com/profile/07712218025275177596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1648270047395980929.post-5970660870471948392</id><published>2007-03-23T20:01:00.000+02:00</published><updated>2007-03-23T20:23:24.940+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gsm'/><category scheme='http://www.blogger.com/atom/ns#' term='modem'/><category scheme='http://www.blogger.com/atom/ns#' term='seriale'/><title type='text'>AT Commands</title><content type='html'>Non mi ricordo mai i comandi at per dialogare con un modem attraverso la seriale&lt;br /&gt;&lt;a href="http://www.dataip.co.uk/Reference/ATCommands.php"&gt;Questa&lt;/a&gt; pagina ha un bell'elenco per i modem in generale.&lt;br /&gt;&lt;a href="http://www.activexperts.com/activsms/atcommands/nokia/"&gt;Questa&lt;/a&gt; ne ha ancora di più ma sono meno chiari.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;Questi sono quelli più utili da usare con Hyper Terminal di BigM.&lt;br /&gt;Da notare che dove c'è &lt;span style="font-weight: bold;"&gt;n &lt;/span&gt;o&lt;span style="font-weight: bold;"&gt; k &lt;/span&gt;bisogna sostituire con  un numero.&lt;br /&gt;&lt;pre&gt;ATEn      Command Echo            (0=OFF,      1=ON  )&lt;br /&gt;ATQn      Result Code Suppression (0=OFF,      1=ON  )&lt;br /&gt;ATVn      Define Response Format  (0=NUMERIC,  1=TEXT)&lt;br /&gt;AT+CMGF=n Message Format          (0=PDU,      1=TEXT)&lt;br /&gt;AT+CSCA   Service Centre Address&lt;br /&gt;AT+CMGL   List Messages&lt;br /&gt;AT+CMGR=k Read Message            (k = message number)&lt;br /&gt;AT+CMGD=k Delete Message          (k = message number)&lt;br /&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/1648270047395980929-5970660870471948392?l=out-of-bound.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://out-of-bound.blogspot.com/feeds/5970660870471948392/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1648270047395980929&amp;postID=5970660870471948392' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/5970660870471948392'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/5970660870471948392'/><link rel='alternate' type='text/html' href='http://out-of-bound.blogspot.com/2007/03/at-commands.html' title='AT Commands'/><author><name>noandrea</name><uri>http://www.blogger.com/profile/14334172638705463251</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1648270047395980929.post-5457076222083171029</id><published>2007-03-23T13:41:00.000+02:00</published><updated>2007-03-25T21:07:52.358+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='RandomAccessFile'/><title type='text'>fseek() in Java?</title><content type='html'>&lt;span style="font-family: verdana;font-family:verdana;" &gt;Usando &lt;a style="font-family: courier new;" href="http://java.sun.com/j2se/1.5.0/docs/api/java/io/DataInputStream.html"&gt;java.io.DataInputStream&lt;/a&gt; non si può.&lt;br /&gt;&lt;br /&gt;Si può invece con &lt;/span&gt;&lt;a style="font-family: courier new;" href="http://java.sun.com/j2se/1.5.0/docs/api/java/io/RandomAccessFile.html"&gt;java.io.RandomAccessFile&lt;/a&gt;&lt;span style="font-family: verdana;"&gt;, che ha un bellissimo metodo &lt;span style="font-family: courier new;"&gt;seek()&lt;/span&gt; definito così:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;  &lt;code&gt;void&lt;/code&gt;&lt;/span&gt;&lt;span style="font-family: verdana;"&gt; &lt;/span&gt;&lt;code style="font-family: verdana;"&gt;&lt;b&gt;&lt;a href="http://java.sun.com/j2se/1.5.0/docs/api/java/io/RandomAccessFile.html#seek%28long%29"&gt;seek&lt;/a&gt;&lt;/b&gt;(long pos)&lt;/code&gt;&lt;span style="font-family: verdana;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;          Sets the file-pointer offset, measured from the beginning of this   file, at which the next read or write occurs.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;Così dovrei riuscire a stampare i colori dei pixel di una file bitmap dall'angolo in alto a sinistra in giù senza caricare tutta l'immagine in memoria.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1648270047395980929-5457076222083171029?l=out-of-bound.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://out-of-bound.blogspot.com/feeds/5457076222083171029/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1648270047395980929&amp;postID=5457076222083171029' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/5457076222083171029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/5457076222083171029'/><link rel='alternate' type='text/html' href='http://out-of-bound.blogspot.com/2007/03/fseek-in-java.html' title='fseek() in Java?'/><author><name>Dave</name><uri>http://www.blogger.com/profile/07712218025275177596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1648270047395980929.post-3617233450783243436</id><published>2007-03-22T03:00:00.000+02:00</published><updated>2007-03-22T03:02:10.489+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>IMPORTANTISSIMO</title><content type='html'>questo post è un fake, solo per avere più tag java di tutti gli altri. anche se Dave domani mi srtozza.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1648270047395980929-3617233450783243436?l=out-of-bound.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://out-of-bound.blogspot.com/feeds/3617233450783243436/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1648270047395980929&amp;postID=3617233450783243436' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/3617233450783243436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/3617233450783243436'/><link rel='alternate' type='text/html' href='http://out-of-bound.blogspot.com/2007/03/questo-post-un-fake-solo-per-avere-pi.html' title='IMPORTANTISSIMO'/><author><name>noandrea</name><uri>http://www.blogger.com/profile/14334172638705463251</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1648270047395980929.post-2807927402341428916</id><published>2007-03-22T02:45:00.000+02:00</published><updated>2007-03-22T03:00:08.690+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='libri'/><title type='text'>Infinite Jest</title><content type='html'>Infinite Jest - David Foster Wallace&lt;br /&gt;La figata più figosa che ciè. No davvero sto libro è una cosa, ma una cosa che neanche te lo immagini. Bè te lo immagini se qualcuno che ti conosce bene ti ha assicurato che ti piacerà, ma tant'è. E' un po' lunghetto, più di unocontrezeridietro, tanto per capirci, il che, dato lo splendore, è una feature. Le prime 2,3cento pagine sono tutte in salita, mica per scherzo, una fatica del diavolo, ma se ce la fai......ommioddio se ce la fai come te la spassi, e poi non finisce più. una meraviglia. Solo che poi ti viene un po' di tristezza a pensare che lo finirai perchè non sai se troverai mai una cosa così, multistratificata e multidimensionale. Ma tanto tutte le cose finiscono, questa un po' più lentamente del solito (con relativezza parlando); quindi meglio.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1648270047395980929-2807927402341428916?l=out-of-bound.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://out-of-bound.blogspot.com/feeds/2807927402341428916/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1648270047395980929&amp;postID=2807927402341428916' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/2807927402341428916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/2807927402341428916'/><link rel='alternate' type='text/html' href='http://out-of-bound.blogspot.com/2007/03/infinite-jest.html' title='Infinite Jest'/><author><name>noandrea</name><uri>http://www.blogger.com/profile/14334172638705463251</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1648270047395980929.post-5384414463390995324</id><published>2007-03-22T01:50:00.000+02:00</published><updated>2007-03-22T02:11:36.429+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='django'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>Esperimenti con Django</title><content type='html'>&lt;span style="font-family:arial;"&gt;Dopo aver letto e copiato pari pari il &lt;a href="http://www.djangoproject.com/documentation/tutorial1"&gt;tutorial&lt;/a&gt; di Django, ottenendo una simpatica applicazione web per gestire sondaggi, ho deciso di provare a fare qualcosa da solo.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Cercherò di sviluppare una webapp per gestire e visualizzare un guestbook.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Per prima cosa occore creare l'applicazione con il comando&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;python manage.py startapp guestbook&lt;/pre&gt;&lt;span style="font-family:arial;"&gt;Questo comando genera una directory di nome &lt;span style="font-family:courier new;"&gt;guestbook&lt;/span&gt;, con dentro 3 file: &lt;span style="font-family:courier new;"&gt;__init__.py&lt;/span&gt;, &lt;span style="font-family:courier new;"&gt;models.py&lt;/span&gt;, &lt;span style="font-family:courier new;"&gt;views.py&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Ora bisogna creare le classi che comporranno l'applicazione. Per un semplice guestbook, bastano due classi: Guestbook e Messaggi. Creiamole editando il file &lt;span style="font-family:courier new;"&gt;models.py&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;from django.db import models&lt;br /&gt;&lt;br /&gt;class Guestbook(models.Model):&lt;br /&gt;  nome = models.CharField(maxlength=200)&lt;br /&gt;  data_creazione = models.DateTimeField('data di creazione')&lt;br /&gt;&lt;br /&gt;class Messaggi(models.Model):&lt;br /&gt;  guestbook = models.ForeignKey(Guestbook)&lt;br /&gt;  messaggio = models.TextField()&lt;br /&gt;  autore = models.CharField(maxlength=50)&lt;br /&gt;  data = models.DateTimeField('data messaggio')&lt;br /&gt;  email = CharField(maxlength=50)&lt;/pre&gt;&lt;span style="font-family:arial;"&gt;Ora dobbiamo dire a Django che il guetbook fa parte del progetto corrente, editando il file &lt;span style="font-family:courier new;"&gt;settigs.py&lt;/span&gt; e aggiungendo '&lt;span style="font-family:courier new;"&gt;mysite.guestbook'&lt;/span&gt; a I&lt;span style="font-family:courier new;"&gt;NSTALLED_APPS&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Ora Django può creare le tabelle su db che rappresentino gli oggetti appena definiti. Il comando python manage.py sql guestbook ci mostra le query che verrano lanciate per fare ciò:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;pre&gt;BEGIN;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;CREATE TABLE `guestbook_messaggi` (&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    `guestbook_id` integer NOT NULL,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    `messaggio` longtext NOT NULL,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    `autore` varchar(50) NOT NULL,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    `data` datetime NOT NULL,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    `email` varchar(50) NOT NULL&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;CREATE TABLE `guestbook_guestbook` (&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    `id` integer AUTO_INCREMENT NOT NULL PRIMARY KEY,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    `nome` varchar(200) NOT NULL,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    `data_creazione` datetime NOT NULL&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;ALTER TABLE `guestbook_messaggi` ADD CONSTRAINT guestbook_id_referencing_guestbook_guestbook_id FOREIGN KEY (`guestbook_id`) REFERENCES `guestbook_guestbook` (`id`);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;COMMIT;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-family:arial;"&gt;Per fargliele eseguire, si usa il comando &lt;span style="font-family:courier new;"&gt;python manage.py syncdb&lt;/span&gt;, che sicronizza il database con gli oggetti definiti.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Django aggiunge automaticamente un campo id autoincrementante come chiave primaria delle tabelle, e anche i campi che sono chiavi esterne, specificati nella definizione dell'oggetto con &lt;span style="font-family:courier new;"&gt;models.ForeignKey(tabellareferenziata)&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Ora abbiamo tutto pronto per iniziare a sviluppare il guestbook, ma prima utilizziamo una delle caratteristiche più interessanti di Django, la creazione automatica del backoffice per gestire le nostre tabelle.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Se nel file &lt;span style="font-family:courier new;"&gt;settings.py&lt;/span&gt;, all'interno di &lt;span style="font-family:courier new;"&gt;INSTALLED_APPS&lt;/span&gt;, è presente l'applicazione django.contrib.admin, allora il backoffice è già attivo e funzionate, dobbiamo solo dire ai nostri oggetti che dovranno apparirvi.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Per fare ciò, dobbiamo creare una sottoclasse di Guestbook e di Messaggi, di nome &lt;span style="font-family:courier new;"&gt;Admin&lt;/span&gt;, editando il file &lt;span style="font-family:courier new;"&gt;models.py&lt;/span&gt;:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-family:arial;"&gt;class Guestbook(models.Model):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    # i vari campi&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    class Admin:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;        pass&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;class Messaggi(models.Model):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    # i vari campi&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    class Admin:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;        pass&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-family:arial;"&gt;Salviamo, puntiamo il browser su http://www.miosito.com/admin/ e vedremo l'interfaccia del backoffice.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Per ogni oggetto, ci viene data la possibilità di crearne di nuovi, modificarli o di eliminarli.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;E' possibile raffinare l'aspetto e la funzionalità di questo backoffice modificando le sottoclassi Admin degli oggetti, ma già la versione standard è completissima e perfettamente usabile.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Ora possiamo iniziare a creare le funzionalità del guestbook vero e proprio.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Per prima cosa, editiamo il file &lt;span style="font-family:courier new;"&gt;urls.py&lt;/span&gt;, in modo che somigli a qualcosa del genere:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-family:arial;"&gt;urlpatterns = patterns(&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    (r'^guestbook/$', 'mysite.polls.views.index'),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    (r'^guestbook/(?P&lt;guestbook_id&gt;\d+)/$', 'mysite.guestbook.views.showmessages'),&lt;/guestbook_id&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-family:arial;"&gt;Django usa un sistema di espressioni regolari per associare gli url alle fuzionalità di un applicazione: nel nostro caso, quando viene chiamata un url del tipo http://www.miosito.com/guestbook, il server caricherà la view contenuta in &lt;span style="font-family:courier new;"&gt;mysite.polls.views.index&lt;/span&gt;. Cos'è una view? E' un tipo di pagina, che serve ad una specifica funzione e ha un suo template.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Le view si definiscono nel file&lt;span style="font-family:courier new;"&gt; views.py.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Per prima cosa, creiamo la view che verrà caricata come index:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-family:arial;"&gt;from django.template import Context, loader&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;from mysite.guestbook.models import Guestbook&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;from django.http import HttpResponse&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;def index(request):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    gb = Guestbook.objects.all().order_by('-data_creazione')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    t = loader.get_template('guestbook/index.html')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    c = Context({&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;        'gb': gb&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    })&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    return HttpResponse(t.render(c))&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;span style="font-family:arial;"&gt;La view index estrae tutti gli oggetti Guestbook dal db, in ordine discendente rispetto alla data di creazione, carica il template, crea un context, ovvero un dizionario che mappa nomi di variabili del template su nomi di oggetti, renderizza il template con il context e restituisce un oggetto HttpResponse.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Ora manca solo il template, creiamolo:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[html]&lt;br /&gt;[body]&lt;br /&gt;[center]Guestbook[/center]&lt;br /&gt;{% if gb %}&lt;br /&gt;[ul]&lt;br /&gt;{% for g in gb %}&lt;br /&gt;[li][a href="{{g.id}}"]{{g.nome}}[/a][/li]&lt;br /&gt;[/ul]&lt;br /&gt;{% endfor %}&lt;br /&gt;{% else %}&lt;br /&gt;[center]Nessun guestbook presente[/center]&lt;br /&gt;{% endif %}&lt;br /&gt;[/body]&lt;br /&gt;[/html]&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span style="font-family:arial;"&gt;(Ho messo le quadre al posto di &lt;&gt; se non blogger schizza.)&lt;br /&gt;Questo template riceve l'oggetto gb dalla view, e per ogni oggetto di tipo Guestbook dentro a gb stampa un link con il nome del guestbook.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Se ora apriamo http://www.miosito.com/guestbook, vedremo  l'elenco dei guestbook.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Ora dobbiamo creare la view che visualizzi l'elenco dei messaggi di un certo guestbook:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;def showmessages(request, guestbook_id):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    g = Guestbook.objects.get(pk=guestbook_id)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    m = Messaggi.objects.filter(guestbook=guestbook_id).order_by('-data')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    t = loader.get_template('guestbook/messaggi.html')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    c = Context({&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;      'm': m,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;      'g': g           &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;     })&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    return HttpResponse(t.render(c))&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;e il template messaggi.html:&lt;/span&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;[html]&lt;br /&gt;[style]&lt;br /&gt;h3 {&lt;br /&gt; font-size: 14px;&lt;br /&gt; font-family: verdana;&lt;br /&gt; font-weight: bold;&lt;br /&gt;}&lt;br /&gt;h1 {&lt;br /&gt; font-size: 16px;&lt;br /&gt; font-family: verdana;&lt;br /&gt; font-weight: bold;&lt;br /&gt;}&lt;br /&gt;p  {&lt;br /&gt; font-size: 10px;&lt;br /&gt; font-family: verdana;&lt;br /&gt; font-weight: normal;&lt;br /&gt; border: 1px solid;&lt;br /&gt; width: 200px;&lt;br /&gt;}&lt;br /&gt;[/style]&lt;br /&gt;[body]&lt;br /&gt;[center]&lt;br /&gt;[h1]{{ g.nome }}[/h1]&lt;br /&gt;[br]&lt;br /&gt;{% for mex in m %}&lt;br /&gt; [div]&lt;br /&gt; [h3]{{mex.autore}} {{mex.data}} {{mex.email}}[/h3]&lt;br /&gt; [p]{{mex.messaggio}}[/p]&lt;br /&gt; [/div]&lt;br /&gt;{% endfor %}&lt;br /&gt;[/center]&lt;br /&gt;[/body]&lt;br /&gt;[/html]&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Ecco fatto.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Ora puntiamo il browser su http://www.miosito.com/guestbook/1/ e vedremo l'elenco dei messaggi inseriti nel nostro primo guestbook!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Prossimamente, aggiungerò un form per inserire nuovi messaggi, per imparare a gestire il passaggio di dati in POST.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1648270047395980929-5384414463390995324?l=out-of-bound.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://out-of-bound.blogspot.com/feeds/5384414463390995324/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1648270047395980929&amp;postID=5384414463390995324' title='2 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/5384414463390995324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/5384414463390995324'/><link rel='alternate' type='text/html' href='http://out-of-bound.blogspot.com/2007/03/esperimenti-con-django.html' title='Esperimenti con Django'/><author><name>Dave</name><uri>http://www.blogger.com/profile/07712218025275177596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1648270047395980929.post-1779193592306715207</id><published>2007-03-21T23:55:00.000+02:00</published><updated>2007-03-23T15:16:07.845+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='log4j'/><title type='text'>Log4j</title><content type='html'>Lo so che tutti conoscono log4j e che tutti lo usano e non si accorgono neanche di farlo, però io ho iniziato solo ora a usarlo e sono felice...&lt;br /&gt;Quindi la prima cosa da fare è scaricarlo da &lt;a href="http://logging.apache.org/site/binindex.cgi"&gt;qui&lt;/a&gt;. E' un progetto ospitato da &lt;a href="http://www.apache.org/"&gt;apache&lt;/a&gt; e questo dovrebbe bastare per dissipare qualsivoglia dubbio (ahah come parlo bene).&lt;br /&gt;Seconda cosa aggiungerlo al classpath della propria applicazione (sto parlando di java nel caso non fosse chiaro); quindi un bell'&lt;br /&gt;&lt;pre&gt;import org.apache.log4j.Logger;&lt;br /&gt;import org.apache.log4j.PropertyConfigurator;&lt;br /&gt;&lt;/pre&gt;poi nella dichiarazione delle variabili di classe&lt;br /&gt;&lt;pre&gt;static Logger logger = Logger.getLogger(MyClass.class);&lt;/pre&gt;MyClass è il nome della classe su cui stai lavorando.A questo punto se l'applicazione ha un main ci puoi dovresti mettere un&lt;br /&gt;&lt;pre&gt;PropertyConfigurator.configure("log4j.properties");&lt;/pre&gt;che dice al logger dove recuperare le info di configurazione, infatti non vogliamo dover ricompilare tutte le volte che decidiamo di modificare delle impostazioni per il logger.&lt;br /&gt;Il file log4j.properties sarà una cosa così&lt;br /&gt;&lt;pre&gt;# Set root logger level to DEBUG and its only appender to A1.&lt;br /&gt;log4j.rootLogger=INFO, A1&lt;br /&gt;#log4j.appender.A1=org.apache.log4j.ConsoleAppender&lt;br /&gt;log4j.appender.A1=org.apache.log4j.RollingFileAppender&lt;br /&gt;log4j.appender.A1.File=theLog.log&lt;br /&gt;log4j.appender.A1.MaxFileSize=1024KB&lt;br /&gt;# A1 uses PatternLayout.&lt;br /&gt;log4j.appender.A1.layout=org.apache.log4j.PatternLayout&lt;br /&gt;log4j.appender.A1.layout.ConversionPattern=%-4r [%d] %-5p %c - %m%n&lt;br /&gt;&lt;/pre&gt;Non ciò voglia di spiegare cosa significa perciò copiare e incollare e tener presente che è una configurazione piuttosto agricola.&lt;br /&gt;&lt;br /&gt;E' fatta, il logger è pronto a questo punto tutte le volte che si vuole loggare qualcosa nella classe è sufficiente scrivere&lt;br /&gt;&lt;pre&gt;logger.info("o che bello");&lt;/pre&gt;o&lt;pre&gt;logger.warn("Brrrrr");&lt;/pre&gt;o&lt;pre&gt;logger.debug("noiosezze");&lt;/pre&gt;o&lt;pre&gt;logger.error("ahiahahia");&lt;/pre&gt;o&lt;pre&gt;logger.fatal("AAAAAAAAAHHHHHHHHHHHHHHH");&lt;/pre&gt;o farsi dei logger personalizzati tipo&lt;pre&gt;logger.porcaPutt("Questo non dovrebbe mai accadere");&lt;/pre&gt;ma per i logger personalizzati RTFM.&lt;br /&gt;&lt;br /&gt;Ultima nota. Se si sta sviluppando una classe senza main è sufficente&lt;pre&gt;import org.apache.log4j.Logger;&lt;/pre&gt;e&lt;pre&gt;static Logger logger = Logger.getLogger(MyClass.class);&lt;/pre&gt;con i vari&lt;pre&gt;logger.info() logger.warn()&lt;/pre&gt; etc..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1648270047395980929-1779193592306715207?l=out-of-bound.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://out-of-bound.blogspot.com/feeds/1779193592306715207/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1648270047395980929&amp;postID=1779193592306715207' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/1779193592306715207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/1779193592306715207'/><link rel='alternate' type='text/html' href='http://out-of-bound.blogspot.com/2007/03/lo-so-che-tutti-conoscono-log4j-e-che.html' title='Log4j'/><author><name>noandrea</name><uri>http://www.blogger.com/profile/14334172638705463251</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1648270047395980929.post-6779293168342008569</id><published>2007-03-21T19:44:00.000+02:00</published><updated>2007-03-21T20:13:20.100+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='complemento a 2'/><title type='text'>Da signed ad unsigned</title><content type='html'>&lt;span style="font-family:verdana;"&gt;Come si fa a convertire un numero da signed ad unsigned?&lt;br /&gt;Il problema è venuto fuori cercando di leggere in Java un file bmp, formato che salva le informazioni dei colori dei pixel in tre byte per pixel, uno per componente RGB. I valori sono ovviamente solo interi positivi su 8 bit, ma leggendoli Java li interpreta come interi con segno a 7 bit, ovvero come numeri codificati in complemento a due su 8 bit.&lt;br /&gt;Come si fa la conversione?&lt;br /&gt;Così:&lt;br /&gt;&lt;pre&gt;private static int unsignedByteToInt(byte b) {&lt;br /&gt; return (int) b &amp; 0xFF;&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;Il metodo legge un byte, lo mette in AND con il valore esadecimale FF e restituisce il risultato castato a int.&lt;br /&gt;Gli int di Java sono su 4 byte, l'AND lascia inalterati gli otto bit della variabile &lt;span style="font-family:courier new;"&gt;b&lt;/span&gt; e mette a zero i 24 bit in più. In questo modo il bit del segno (quello più significativo)  è zero e il numero viene interpretato come positivo.&lt;br /&gt;E vualà, ecco il valore che cerchiamo.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1648270047395980929-6779293168342008569?l=out-of-bound.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://out-of-bound.blogspot.com/feeds/6779293168342008569/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1648270047395980929&amp;postID=6779293168342008569' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/6779293168342008569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/6779293168342008569'/><link rel='alternate' type='text/html' href='http://out-of-bound.blogspot.com/2007/03/da-signed-ad-unsigned.html' title='Da signed ad unsigned'/><author><name>Dave</name><uri>http://www.blogger.com/profile/07712218025275177596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1648270047395980929.post-7008190535310782440</id><published>2007-03-21T02:23:00.000+02:00</published><updated>2007-03-21T02:49:27.676+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='django'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='osx'/><title type='text'>Installare Django su OSX</title><content type='html'>&lt;span style="font-family:verdana;"&gt;Fomentato dalla lettura di alcuni post su forum vari e dal tutorial sul sito, ho deciso di installare &lt;a href="http://www.djangoproject.com/"&gt;Django&lt;/a&gt;. Django è un framework scritto in python che, stando a quello che dice il sito, dovrebbe semplificare moltissimo la creazione di applicazioni web, specialmente gestionali, cms e applicazioni database-driven. Il tutorial, anche se purtroppo è incompleto al momento, fa vedere delle bellissime cose, e allora mi sono deciso a dargli un'occhiata.&lt;br /&gt;&lt;br /&gt;L'installazione non è stata liscissima: dopo aver scaricato il tar.gz contenente Django, ho lanciato lo script di install, che ha funzionato al primo colpo. Al momento però di provare a fare delle operazioni che richiedevano accesso a mysql, ho scoperto che la distribuzione di python che c'è su OSX non ha le librerie necessarie. Allora le ho scaricate, da &lt;a href="http://sourceforge.net/projects/mysql-python/"&gt;qui&lt;/a&gt;. Al momento di installarle, mi hanno richiesto setuptools versione0.6c5 o superiori (a quanto ho capito, setuptools è un sistema per python che semplifica le installazioni dei pacchetti aggiuntivi, una specie di synaptic o giù di lì). Ho scaricato anche questo, da &lt;a href="http://peak.telecommunity.com/DevCenter/setuptools"&gt;qui&lt;/a&gt;, e alla fine sono riuscito a far andare il tutto.&lt;br /&gt;&lt;br /&gt;Ora django può accedere al db, e molto presto mi dedicherò alle sue API, che sembrano molto interessanti.&lt;br /&gt;&lt;br /&gt;E per la gioia di Andrea, ho pure trovato un plugin di Eclipse per Python, &lt;a href="http://pydev.sourceforge.net/"&gt;PyDev&lt;/a&gt;.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1648270047395980929-7008190535310782440?l=out-of-bound.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://out-of-bound.blogspot.com/feeds/7008190535310782440/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1648270047395980929&amp;postID=7008190535310782440' title='2 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/7008190535310782440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/7008190535310782440'/><link rel='alternate' type='text/html' href='http://out-of-bound.blogspot.com/2007/03/installare-django-su-osx.html' title='Installare Django su OSX'/><author><name>Dave</name><uri>http://www.blogger.com/profile/07712218025275177596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1648270047395980929.post-2612031685809628957</id><published>2007-03-20T17:30:00.000+02:00</published><updated>2007-03-20T18:09:29.550+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='dave'/><category scheme='http://www.blogger.com/atom/ns#' term='andrea'/><title type='text'>Out of Bound</title><content type='html'>&lt;span style="font-family:verdana;"&gt;Oggi, mentre tentavamo di studiare CPS, ad Andrea e me è venuta l'idea di aprire un blog per raccogliere frammenti di codice, programmi fatti da noi, how-to, link utili e/o interessanti e cose di questo genere.&lt;br /&gt;Detto fatto, ecco il blog. Chissà se avremo la voglia e la costanza di portarlo avanti. O anche solo la voglia di customizzarlo a dovere.&lt;br /&gt;&lt;br /&gt;E Andrea mi ha già chiamato perchè non riusciva ad accettare l'invito a diventare coautore. Iniziamo bene.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1648270047395980929-2612031685809628957?l=out-of-bound.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://out-of-bound.blogspot.com/feeds/2612031685809628957/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1648270047395980929&amp;postID=2612031685809628957' title='1 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/2612031685809628957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1648270047395980929/posts/default/2612031685809628957'/><link rel='alternate' type='text/html' href='http://out-of-bound.blogspot.com/2007/03/out-of-bound.html' title='Out of Bound'/><author><name>Dave</name><uri>http://www.blogger.com/profile/07712218025275177596</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
