<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-4914371871575337260</atom:id><lastBuildDate>Mon, 28 Nov 2011 00:32:44 +0000</lastBuildDate><category>mobile</category><category>visual</category><category>curriculum</category><category>publications</category><category>nohup</category><category>nativej</category><category>device</category><category>applet</category><category>sdf</category><category>rs232</category><category>shortcut</category><category>c#</category><category>sito</category><category>test</category><category>tail</category><category>iphone</category><category>cast</category><category>internazionalizzazione</category><category>resources</category><category>grep</category><category>codifica</category><category>installer</category><category>app</category><category>eclipse</category><category>alternative</category><category>trascrizione fonetica</category><category>serial port</category><category>multiple</category><category>foreign key</category><category>undo</category><category>cv</category><category>java</category><category>authentication</category><category>msi</category><category>bash</category><category>gui</category><category>wordpress</category><category>oracle</category><category>android</category><category>xcode</category><category>custom</category><category>colloquio</category><category>punti di vista</category><category>html</category><category>reference</category><category>mac</category><category>Jboss</category><category>framework</category><category>screenshot</category><category>preparazione</category><category>studio</category><category>diacritici</category><category>itunes</category><category>accenti</category><category>google</category><category>lavoro</category><category>hl7</category><category>cheat sheet</category><category>sharp</category><category>?</category><category>dll</category><category>proxy</category><category>javascript</category><category>no space left on device</category><category>smart</category><category>apple</category><category>ftp4j</category><category>compact</category><category>-ds</category><category>kill</category><category>form</category><category>amici dei popoli</category><category>inglese</category><category>marcoaguzzi.com</category><category>ios</category><category>browser</category><category>script</category><category>windows</category><category>layout</category><category>qrcode</category><category>port</category><category>adp</category><category>vignette</category><category>gesture</category><category>linux</category><category>hibernate</category><category>lab_eng</category><category>produzione</category><category>baretail</category><category>albania</category><category>opennet</category><category>obiettivo</category><category>question marks</category><category>website</category><category>amici</category><category>instance</category><category>constraint</category><category>resx</category><category>log4j</category><category>punti interrogativi</category><category>natale</category><category>benvenuto</category><category>unix</category><category>touchscreen</category><category>1611</category><category>tablespace</category><category>lab_ita</category><category>baregrep</category><category>health</category><category>eseguibile</category><category>ftp</category><title>Le Stanze di Magu</title><description>Computer science, thinking, thinkering, friends, and much more!&lt;br&gt;&lt;br&gt;
&lt;a href="/search/label/lab_ita"&gt;&lt;img src="http://www.marcoaguzzi.com/stanzedimagu/img/flagita2.gif" height="15"&gt;&lt;/a&gt;  
&lt;a href="/search/label/lab_eng"&gt;&lt;img src="http://www.marcoaguzzi.com/stanzedimagu/img/flageng2.gif" height="15"&gt;&lt;/a&gt;</description><link>http://stanzedimagu.blogspot.com/</link><managingEditor>noreply@blogger.com (Marco Aguzzi)</managingEditor><generator>Blogger</generator><openSearch:totalResults>49</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/LeStanzeDiMagu" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="lestanzedimagu" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4914371871575337260.post-8151723161258732654</guid><pubDate>Sun, 20 Feb 2011 20:12:00 +0000</pubDate><atom:updated>2011-02-20T21:12:25.593+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">wordpress</category><category domain="http://www.blogger.com/atom/ns#">website</category><category domain="http://www.blogger.com/atom/ns#">sito</category><category domain="http://www.blogger.com/atom/ns#">marcoaguzzi.com</category><title>Attenzione! nuovo indirizzo!</title><description>
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zPtkhuiU_R1LJDSfVP7615mxR5I/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zPtkhuiU_R1LJDSfVP7615mxR5I/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zPtkhuiU_R1LJDSfVP7615mxR5I/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zPtkhuiU_R1LJDSfVP7615mxR5I/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Ciao a tutti!&lt;br /&gt;
&lt;br /&gt;
Questo dovrebbe essere un post triste ma NON lo è! Nel senso che il blog così per come è strutturato adesso chiude e il sito ufficiale, &lt;a href="http://www.marcoaguzzi.com/"&gt;www.marcoaguzzi.com&lt;/a&gt;, rimasto per poco solo come "ospite" del blog, viene promosso a blog e sito tutto in uno!&lt;br /&gt;
&lt;br /&gt;
Quindi l'indirizzo ufficiale del blog (e da adesso anche sito) è&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.marcoaguzzi.com/"&gt;www.marcoaguzzi.com &lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Qualche informazione in più sulla nuova versione:&lt;br /&gt;
&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Al momento ci sono solo pochi post e categorie, ma si notano subito le categorie e le sotto - categorie, la pagina "home" separata dal resto e un form di contatti molto più efficace e integrato rispetto a quello inserito nella versione attuale in tutta fretta. Ovviamente dal nuovo indirizzo si potrà ancora raggiungere il vecchio, almeno fino a quando il processo di migrazione non sarà giunto ad un livello soddisfacente.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Ci vediamo nella nuova location!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
&lt;a
href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;
&lt;img src="http://www.feedburner.com/fb/lib/images/icons/feed-icon-12x12-orange.gif" alt="original feed"/&gt;
&lt;/a&gt;
&lt;a href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;View Feed XML&lt;/a&gt;
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4914371871575337260-8151723161258732654?l=stanzedimagu.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://stanzedimagu.blogspot.com/2011/02/attenzione-nuovo-indirizzo.html</link><author>noreply@blogger.com (Marco Aguzzi)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4914371871575337260.post-6983898965665467352</guid><pubDate>Sat, 19 Feb 2011 12:54:00 +0000</pubDate><atom:updated>2011-02-19T15:30:57.763+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">lab_ita</category><category domain="http://www.blogger.com/atom/ns#">1611</category><category domain="http://www.blogger.com/atom/ns#">mac</category><category domain="http://www.blogger.com/atom/ns#">iphone</category><category domain="http://www.blogger.com/atom/ns#">itunes</category><category domain="http://www.blogger.com/atom/ns#">apple</category><title>Impossibile ripristinare iPhone. Errore sconosciuto (1611). Gulp.</title><description>
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/swSwEBfEiRwHmdG2yaDpcOdjwaw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/swSwEBfEiRwHmdG2yaDpcOdjwaw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/swSwEBfEiRwHmdG2yaDpcOdjwaw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/swSwEBfEiRwHmdG2yaDpcOdjwaw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Ciao a tutti, &lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Vi racconto di una piccola disavventura che ho avuto col mio nuovo  iPhone. Anche entrando nel magico mondo degli smartphone non sempre  tutto funziona come ci si aspetterebbe... In questo caso iTunes è  stato il colpevole del famigerato errore 1611 presente anche nel titolo del post. Tra ieri e ieri l'altro sono passato dall'avere un telefono con cui non era  possibile sviluppare in quanto non più sincronizzabile con il proprio Mac, ad avere un costosissimo fermacarte (non si accendeva neanche come telefono).&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Ho iniziato a navigare un po' sui blog  e sul sito della Apple e il consiglio che mi ha permesso di uscire dall'empasse è stato quello di reinstallare iTunes per rieffettuare il ripristino dell'iPhone. La procedura, oltre alla disinstallazione del programma, prevede anche la cancellazione di un paio di file di libreria: io ne ho trovato solo uno, ma l'operazione di ripristino è andata a buon fine.&lt;/div&gt;&lt;br /&gt;
Questo il link della pagina che mi ha aiutato:&lt;br /&gt;
&lt;a href="http://support.apple.com/kb/HT1747?viewlocale=it_IT"&gt;http://support.apple.com/kb/HT1747?viewlocale=it_IT&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
e, per adesso, happy iPhoning a tutti!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
alla prossima!&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
&lt;a
href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;
&lt;img src="http://www.feedburner.com/fb/lib/images/icons/feed-icon-12x12-orange.gif" alt="original feed"/&gt;
&lt;/a&gt;
&lt;a href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;View Feed XML&lt;/a&gt;
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4914371871575337260-6983898965665467352?l=stanzedimagu.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://stanzedimagu.blogspot.com/2011/02/impossibile-ripristinare-iphone-errore.html</link><author>noreply@blogger.com (Marco Aguzzi)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4914371871575337260.post-4376644339508476850</guid><pubDate>Fri, 18 Feb 2011 21:13:00 +0000</pubDate><atom:updated>2011-02-18T22:15:18.671+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">obiettivo</category><category domain="http://www.blogger.com/atom/ns#">lab_ita</category><category domain="http://www.blogger.com/atom/ns#">curriculum</category><category domain="http://www.blogger.com/atom/ns#">cv</category><title>La mia frase preferita sul curriculum? Perché no!?</title><description>
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/tfMMQwDK11WgP0BO56jQv6__IjA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tfMMQwDK11WgP0BO56jQv6__IjA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/tfMMQwDK11WgP0BO56jQv6__IjA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tfMMQwDK11WgP0BO56jQv6__IjA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;Ciao a tutti,&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Eccoci ad un'altra puntata sul colloquio di di lavoro: il curriculum vitae.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;E' da questo documento che parte tutto il processo, quindi è bene prenderlo in considerazione attentamente. Anche qui presenterò un insieme di punti che mi sembra giusto sottolineare, sempre con il duplice intento di far pensare chi scrive e di essere di spunto a chi legge.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Il decalogo a tutti i costi! Questa non è la frase preferita che metterei nel mio curriculum, ma vi prometto che ci saranno suggerimenti sull'argomento all'interno del post...&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;1. Tanti colloqui, tanti curriculum: anche qui man mano che il tempo passerà le nuove riedizioni dei nostri cv saranno dei miglioramenti delle precedenti. Anche se il miglioramento non sarà subito palese, non preoccupiamoci: non facciamo i confronti ad ogni piè sospinto, ma lasciamoli per quando c'è un po' di materiale importante da aggiungere, oppure tra un colloquio e l'altro.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;2. Tanti curriculum non solo perché se ne scrivono un cospicuo numero nel tempo, ma perché li manderemo contemporanemente a più aziende, quindi tante versioni. I curriculum devono essere personalizzati: questo non vuol dire riscriverli da capo a piedi per ogni invio, ma è importante puntare sulla personalizzazione del cv verso l'azienda a cui lo mandate.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;E' stato seguito un particolare seminario all'università? questo potrebbe cambiare evidenza / posizione in base all'azienda a cui lo stiamo spedendo.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;3. A proposito di personalizzazione, un commento assolutamente personale: non mi piacciono i curriculum scritti sulla base del modello eurepeo: non perché non sia valido, ma perché spersonalizza parecchio il nostro cv: la libertà / creatività non devono essere messe in secondo piano: questo non vuol dire scrivere un cv di informatica con lo sfondo rosa e i fiorellini fuscia, è decisamente poco azzecato. Si tratta invece di riflettere quello che siamo nel nostro cv, e un modello precompilato lascia&lt;/div&gt;&lt;div style="text-align: justify;"&gt;poco spazio &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;4. Il modello europeo ha però un suo valore aggiunto: quello di non farci dimenticare nulla mentre scriviamo il cv... cosa non del tutto infrequente: in quel modello ci sono tutte le voci possibili e immaginabili, ci troveremo sicuramente a toglierne qualcuna perché non attinente. E' sicuramente utile, per esempio, per non dimenticare l'informativa sui dati personali. Nei prossimi post ulteriori dettalgi sulle singole sezioni.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;5. Le informazioni, dicevamo: in intestazione vanno messe in chiaro: cognome, nome indirizzo, telefono (meglio due, fisso e mobile) email, luogo e data di nascita. Deve presentarci e dare più modi possibili a chi legge il cv di contattarci. Un'altra informazione in intestazione: la data di aggiornamento del cv.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;6. Perché la data di aggiornamento? perchè segna che il cv è aggiornato, come deve essere. L'aggiornamento deve scattare dopo ogni evento importante: il termine di un ciclo di studi, un cambio di lavoro, ma anche il conseguimento di una certificazione aggiuntiva, un corso di lingua di un certo spessore. Una data di aggiornamento recente che si rifletta opportunamente nei contenuti è un segno importante che il cv è "vivo", e che l'operazione "ricerca lavoro" è seguita con attenzione.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;7. Personalmente subito dopo l'intestazione metto l'obiettivo che mi prefiggo con quel colloquio: non risulta in nessun modello standard che ho visto in giro, ma, credetemi, fa la sua figura. L'obiettivo deve essere, come si diceva in testa al post, la vostra frase preferita, al massimo quattro / cinque parole, e soprattutto di cui si è spudoratamente convinti. Un esempio per tutti sulla lunghezza? "With great power comes great responsibility": qualche lettore potrebbe pensare che sia la frase su mio cv, ma NON lo è :-)&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;8. Ritengo che l'ordine delle sezioni del cv non debba per forza essere predeterminato, per esempio prima gli studi e poi le esperienze lavorative. Ritengo che l'ordine vada scelto in base all'importanza: abbiamo appena terminato gli studi? allora gli studi passeranno in testa. Se invece abbiamo già una - due esperienze di lavoro valide queste passeranno in primo piano. Significative: se siete laureati in astrofisica e nell'ultimo periodo avete collaborato ad un sito web, direi che la laurea in astrofisica debba restare in prima posizione.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;9. All'interno di ogni sezione l'ordine cronologico deve essere inverso: prima le informazioni più recenti. Quindi ricapitolando, secondo me l'ordine corretto è prima per importanza, e poi per ordine cronologico decrescente.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;10. Quali sezioni? Corso di studi, Esami rilevanti sostenuti, Esperienze lavorative, Lingue straniere, Interessi personali. Le ultime due di solito sono un po' relegate al ruolo di cenerentola, ma non vanno assolutamente sottovalutate.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Per adesso è tutto, in altri post aggiungerò informazioni più di dettaglio sulle singole sezioni.&lt;br /&gt;
&lt;br /&gt;
A presto! &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
&lt;a
href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;
&lt;img src="http://www.feedburner.com/fb/lib/images/icons/feed-icon-12x12-orange.gif" alt="original feed"/&gt;
&lt;/a&gt;
&lt;a href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;View Feed XML&lt;/a&gt;
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4914371871575337260-4376644339508476850?l=stanzedimagu.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://stanzedimagu.blogspot.com/2011/02/la-mia-frase-preferita-sul-curriculum.html</link><author>noreply@blogger.com (Marco Aguzzi)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4914371871575337260.post-8578060247891518193</guid><pubDate>Sat, 12 Feb 2011 11:19:00 +0000</pubDate><atom:updated>2011-02-12T17:45:50.352+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">no space left on device</category><category domain="http://www.blogger.com/atom/ns#">device</category><category domain="http://www.blogger.com/atom/ns#">lab_eng</category><category domain="http://www.blogger.com/atom/ns#">mac</category><category domain="http://www.blogger.com/atom/ns#">alternative</category><title>Holy disk, Batman! No space left on device!</title><description>
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6eArVGCLxlryApPBMGny9m7hOUg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6eArVGCLxlryApPBMGny9m7hOUg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/6eArVGCLxlryApPBMGny9m7hOUg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6eArVGCLxlryApPBMGny9m7hOUg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;Hi all,&lt;br /&gt;
&lt;br /&gt;
How many times did we find ourselves with the disk almost full, we started gibbering with folders, chasing for files we could delete, without finding out anything worth the space (and the uselessness, of course) with which we could save some disk space?&lt;br /&gt;
Here we have a software that will surely suit our needs, available both for Mac and Windows. Actually it's two softwares we'll talking about, almost equivalent: DiskInventoryX (&lt;a href="http://www.derlien.com/"&gt;http://www.derlien.com/&lt;/a&gt;) for Mac and WinDirStat (&lt;a href="http://sourceforge.net/projects/windirstat/"&gt;http://sourceforge.net/projects/windirstat/&lt;/a&gt;) for Windows.&lt;br /&gt;
They work both this way: starting from a folder, or from the entire disk, the software runs an indexing procedure (it won't take long) and then shows the result in a graphical way, as you can see from the screenshot (the Mac one) below.&lt;/div&gt;&lt;br /&gt;
&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-qqbFjzesQCw/TVZo4cfE8zI/AAAAAAAAA0o/oWqDNOBd7uc/s1600/screenshotDX.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="223" src="http://2.bp.blogspot.com/-qqbFjzesQCw/TVZo4cfE8zI/AAAAAAAAA0o/oWqDNOBd7uc/s400/screenshotDX.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Here's how DiskInventoryX presents your disk. On the right you have the file types,&lt;br /&gt;
while on the left your folders.&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
We're being shown an interesting point of view because the coloured areas we see are groups of file with the same type (different colours for different types). It's now trivial pointing to larger rectangles to understand what is wasting our space.Moreover, areas are also grouped by folders: so we have, in decreasing space order, on the left the list of folders (clicking on one of these an area composed of different colours will be highlighted), while on the right the groups of file types.&lt;br /&gt;
At this point it's a piece of cake getting rid of a folder full of temporary files that have not been deleted for a while (and we forgot, didn't we?), or some huge application log files left there being covered with dust, but most of all we are not taking the risk of sacrifing stuff we need just because we're in a hurry and we desperately need disk space.&lt;br /&gt;
DiskInventoryX is released under GPL licence, and it asks for Rosetta in order to be run (you'll find on the MacOS DVD in the optional installation section), and WinDirStat is also licenced under GPL.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Robin, back to the Batcave! (with some more space)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
&lt;a
href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;
&lt;img src="http://www.feedburner.com/fb/lib/images/icons/feed-icon-12x12-orange.gif" alt="original feed"/&gt;
&lt;/a&gt;
&lt;a href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;View Feed XML&lt;/a&gt;
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4914371871575337260-8578060247891518193?l=stanzedimagu.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://stanzedimagu.blogspot.com/2011/02/holy-disk-batman-no-space-left-on.html</link><author>noreply@blogger.com (Marco Aguzzi)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-qqbFjzesQCw/TVZo4cfE8zI/AAAAAAAAA0o/oWqDNOBd7uc/s72-c/screenshotDX.png" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4914371871575337260.post-3551499405184869870</guid><pubDate>Sat, 12 Feb 2011 11:08:00 +0000</pubDate><atom:updated>2011-02-12T17:47:18.011+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">no space left on device</category><category domain="http://www.blogger.com/atom/ns#">device</category><category domain="http://www.blogger.com/atom/ns#">lab_ita</category><category domain="http://www.blogger.com/atom/ns#">mac</category><category domain="http://www.blogger.com/atom/ns#">alternative</category><title>No space left on device... Aaaaargh!</title><description>
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/E-FEFQrVD_g_POGfdtP3RqZ4_dE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/E-FEFQrVD_g_POGfdtP3RqZ4_dE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/E-FEFQrVD_g_POGfdtP3RqZ4_dE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/E-FEFQrVD_g_POGfdtP3RqZ4_dE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Ciao a tutti, &lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Quante volte ci siamo trovati il disco quasi pieno, ci siamo messi a scartabellare le cartelle a caccia dei file da poter cancellare, senza trovare nulla di significativamente grande (e non importante, ovviamente) che facesse recuperare spazio?&lt;/div&gt;Eccovi qui due software che faranno sicuramente al caso nostro, sostanzialmente equivalenti: uno per Mac, DiskInventoryX (&lt;a href="http://www.derlien.com/"&gt;http://www.derlien.com/&lt;/a&gt;) e uno per Windows, WinDirStat (&lt;a href="http://sourceforge.net/projects/windirstat/"&gt;http://sourceforge.net/projects/windirstat/&lt;/a&gt;)&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Il funzionamento di entrambi è questo: a partire da una cartella, o dall'intero disco, il programma esegue una indicizzazione, non particolarmente lunga, e poi mostra il risultato in maniera grafica, come potete vedere dallo screenshot qui sotto (lo screenshot è di Mac).&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-qqbFjzesQCw/TVZo4cfE8zI/AAAAAAAAA0o/oWqDNOBd7uc/s1600/screenshotDX.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="222" src="http://2.bp.blogspot.com/-qqbFjzesQCw/TVZo4cfE8zI/AAAAAAAAA0o/oWqDNOBd7uc/s400/screenshotDX.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Ecco come si presenta la schermata di DiskInventoryX. Sulla destra l'elenco di tipi di file,&lt;br /&gt;
mentre sulla sinistra l'elenco di cartelle&lt;/td&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;br /&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&amp;nbsp;Il punto di vista che ci viene mostrato è decisamente interessante perché le aree colorate che troviamo sono accorpamenti di file della stessa tipologia (diversi colori per diversi tipi). E' banale puntare subito ai rettangoli più grandi per capire cosa stia occupando spazio.&lt;br /&gt;
Oltre che per tipo di file la suddivisione è anche per cartelle: abbiamo quindi, in ordine di spazio decrescente, sulla sinistra l'elenco delle cartelle (facendo click su una cartella verrà evidenziata un'area composta da più colori) mentre sulla destra abbiamo il raggruppamento per tipo di file, sempre in ordine di spazio decrescente.&lt;br /&gt;
A questo punto sarà facilissimo individuare e sbarazzarsi di una cartella piena di temporanei che non cancelliamo da un po' e di cui ci eravamo dimenticati, o di log applicativi mostruosamente ingombranti lasciati lì a prendere polvere, soprattutto senza rischiare di sacrificare materiale che ci serve solo perché siamo di fretta e abbiamo assolutamente bisogno di spazio.&lt;br /&gt;
DiskInventoryX è distribuito con licenza GPL, e richiede Rosetta per essere eseguito (che trovare all'interno del DVD del sistema operativo nelle installazioni opzionali). WinDirStat è disponibile su sourceforge, al link che trovate in testa al post, sempre con licenza GPL&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Alla prossima, con più spazio! &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
&lt;a
href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;
&lt;img src="http://www.feedburner.com/fb/lib/images/icons/feed-icon-12x12-orange.gif" alt="original feed"/&gt;
&lt;/a&gt;
&lt;a href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;View Feed XML&lt;/a&gt;
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4914371871575337260-3551499405184869870?l=stanzedimagu.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://stanzedimagu.blogspot.com/2011/02/no-space-left-on-device-aaaaargh.html</link><author>noreply@blogger.com (Marco Aguzzi)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-qqbFjzesQCw/TVZo4cfE8zI/AAAAAAAAA0o/oWqDNOBd7uc/s72-c/screenshotDX.png" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4914371871575337260.post-396217730016048726</guid><pubDate>Wed, 09 Feb 2011 22:48:00 +0000</pubDate><atom:updated>2011-02-09T23:55:37.775+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">lab_ita</category><category domain="http://www.blogger.com/atom/ns#">curriculum</category><category domain="http://www.blogger.com/atom/ns#">lavoro</category><category domain="http://www.blogger.com/atom/ns#">colloquio</category><title>Punti di vista sul colloquio di lavoro - Parte 2</title><description>
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/q-t1sAeP2bdXVnyPhDAIZ6Cp5Ys/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/q-t1sAeP2bdXVnyPhDAIZ6Cp5Ys/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/q-t1sAeP2bdXVnyPhDAIZ6Cp5Ys/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/q-t1sAeP2bdXVnyPhDAIZ6Cp5Ys/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;Ciao a tutti,&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Continua la rassegna delle mie personali rielaborazioni delle esperienze di colloqui di lavoro, sempre con l'intento di fare riflettere chi scrive su quanto accaduto in passato, e con la speranza che possano essere di spunto a chi legge.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
Nella "puntata precedente" (disponibile &lt;a href="http://stanzedimagu.blogspot.com/2011/02/punti-di-vista-sul-colloquio-di-lavoro.html"&gt;qui&lt;/a&gt;) siamo partiti dall'annuncio che faceva per noi, e siamo arrivati a sederci al tavolo dell'azienda per una prima intervista. Vediamo come continua la storia...&lt;br /&gt;
&lt;br /&gt;
1. Lasciamo ancora un momento per un'annotazione pre colloquio: se il colloquio si svolge nella stanza dove state aspettando chi vi dovrà esaminare, osservate la disposizione delle sedie e, se non ci sono differenze evidenti tra le postazioni, cercate di prenderne una che vi permetta di dare le spalle al muro, non una che vi faccia stare spalle alla porta. Qualora foste anche spalle alla porta, non fatevi suggestionare...&lt;br /&gt;
Se invece entrate in una stanza dove la persona che vi deve esaminare è già presente, prendetevi i vostri 15 - 20 secondi per togliere con calma il cappotto, zittire il cellulare. E' un po' come se stesse prendendo possesso del territorio: ancora una volta il colloquio è per due persone, e una delle due siete voi.&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;1 bis. Può essere che ci siano più persone ad esaminarvi contemporaneamente... non è certo il modo migliore per mettervi a vostro agio, ma la cosa potrebbe essere voluta, oppure il motivo potrebbe essere banalmente il tempo, quindi accorpare in un solo incontro colloqui con responsabili diversi.&lt;br /&gt;
&lt;br /&gt;
2. Bene, si comincia. Via la faccia da cane bastonato... e anche quello da Clint Eastwood. Non stiamo facendo un duello western. L'atteggiamento migliore è quello di chi è desideroso di incrementare le proprie conoscenze e sicuro di poter offrire quelle che ha già.&lt;br /&gt;
&lt;br /&gt;
3. Come si diceva nella puntata precedente, pescando dalle domande di rito e dal vostro CV, vi viene data la possibilità di presentarvi.&lt;br /&gt;
Conviene avere una piccola presentazione già pronta in testa, così il discorso filerà via più tranquillo. Il tempo da dedicare a questa mini - presentazione è di massimo 2 minuti...&lt;br /&gt;
Ma soprattutto... cosa dire? Se avete già esperienze lavorative, sarà facile pescare dai progetti più significativi già fatti, in caso contrario la cosa migliore è fare riferimento ai progetti più interessanti svolti durante gli esami universitari: non preoccupatevi se non tutti combaciano con le parole chiave dell'annuncio, non devono. Ci saranno domande a cui non saprete rispondere: lasciate che siano gli altri a farvele, non vi avventurate in terreni sconosciuti citando tecnologie che vanno di moda di cui avete solo sentito il nome... è particolarmente pericoloso.&lt;br /&gt;
&lt;br /&gt;
4. Diciamo che il punto precedente va preso con attenzione... conviene dargli un taglio diverso a seconda che il colloquio sia quello tecnico o meno. Se è quello tecnico, massima attenzione ai tempi e a non citare argomenti che non si conoscono. Se invece non è tecnico, rilassate un po' questo vincolo, e tenete presente che chi vi sta davanti è molto bravo a cogliere segnali impliciti, ma non altrettanto con le tecnologie... piazzate pure qualche parola chiave che combaci con quelle dell'annuncio, sicuramente è una buona idea.&lt;br /&gt;
&lt;br /&gt;
5. Specialmente durante il colloquio non tecnico, c'è chi proverà a testare il vostro livello di autocontrollo e / o di stress, magari con una battuta poco simpatica, per esempio "Ho letto il suo cv ma me lo sono dimenticato". State tranquilli che non è vero, è solo un modo per introdurre un po' di perturbazione nella vostra intervista. Se anche dovesse mai essere vero, ri - diventate per un attimo esaminatori... non lo segnereste certo come punto a favore di chi vi esamina, giusto?&lt;br /&gt;
&lt;br /&gt;
6. State parlando... avete un'altra occasione per sovvertire i ruoli di colloquiato e colloquiante. Osservate con attenzione chi vi sta davanti: troverete un'espressione del volto, una parola ripetuta... che vi indicheranno quando state andando nella direzione sbagliata, oppure che è ora di tagliare. Giusto per colore, eccovene alcune di quelle che ho registrato personalmente:&lt;br /&gt;
"e va beh",&lt;br /&gt;
"certocertocerto",&lt;br /&gt;
arricciamento del naso,&lt;br /&gt;
colpetto di tosse tra le parole,&lt;br /&gt;
e altre ne scoprirete...!&lt;br /&gt;
&lt;br /&gt;
7. Finite la vostra presentazione, nel mentre vi sono state fatte un paio di domande generiche sulle tecnologie utilizzate, il segnale di allarme del punto 6 è comparso poche volte, e iniziano a parlarvi di quello che viene fatto in azienda: sta andando tutto per il meglio, e il colloquio tecnico è alle porte. &lt;br /&gt;
&lt;br /&gt;
8. Il colloquio tecnico sarà oggetto di uno dei prossimi post, subito prima o subito dopo ci sarà anche un intervento dedicato al curriculum vitae: in fondo è la miccia che fa partire la storia di questo post e quella precendente, mi sembra doveroso prenderlo in considerazione...&lt;br /&gt;
&lt;br /&gt;
Alla prossima!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
&lt;a
href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;
&lt;img src="http://www.feedburner.com/fb/lib/images/icons/feed-icon-12x12-orange.gif" alt="original feed"/&gt;
&lt;/a&gt;
&lt;a href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;View Feed XML&lt;/a&gt;
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4914371871575337260-396217730016048726?l=stanzedimagu.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://stanzedimagu.blogspot.com/2011/02/punti-di-vista-sul-colloquio-di-lavoro_09.html</link><author>noreply@blogger.com (Marco Aguzzi)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4914371871575337260.post-3296885711727715891</guid><pubDate>Mon, 07 Feb 2011 21:42:00 +0000</pubDate><atom:updated>2011-02-07T22:42:34.502+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">cheat sheet</category><category domain="http://www.blogger.com/atom/ns#">lab_ita</category><category domain="http://www.blogger.com/atom/ns#">eclipse</category><category domain="http://www.blogger.com/atom/ns#">mac</category><category domain="http://www.blogger.com/atom/ns#">shortcut</category><title>Eclipse e la sapiente arte di tagliare corto</title><description>
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NmPVI9N2eTkM-1U60CVHAro7cfY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NmPVI9N2eTkM-1U60CVHAro7cfY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NmPVI9N2eTkM-1U60CVHAro7cfY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NmPVI9N2eTkM-1U60CVHAro7cfY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Ciao a tutti,&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;Ancora un gioco di parole, questa volta per presentare, fatemi dire, una "good practice" della programmazione: gli shortcut da tastiera: tagliare corto appunto. Credo che la misura giusta sia intorno alla decina: per ricordarseli a memoria senza avere il foglio con gli appunti davanti e saperli usare al momento buono. Molti di più non si possono ricordare, ed è più il tempo che ci si mette a farli tornare alla memoria che quello che si recupera con il loro uso, molti di meno sono troppo pochi, e non riescono ad essere quel "prolungamento delle dita" che dovrebbero.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Questa può essere una regola base per tutti gli ambienti di lavoro: io metterò qui sul blog gli shortcut che uso più spesso di &lt;a href="http://www.eclipse.org/"&gt;Eclipse&lt;/a&gt; (a dire il vero sono tutti quelli che uso, il numero è arrivato a regime), fantastico IDE gratuito per la programmazione Java e molto altro:&lt;/div&gt;&lt;br /&gt;
Un'anteprima:&lt;br /&gt;
ALT + freccia su / giù: taglia e incolla intere righe in un colpo solo, senza usare il buffer del cut 'n' paste...&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
Eccovi l'elenco, diviso per macro - blocchi:&lt;br /&gt;
(se non c'è specificato, sostituite CTRL con MELA per il mac)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Editing del testo:&lt;/b&gt;&lt;br /&gt;
CTRL + S: salva&lt;br /&gt;
CTRL + C: copia&lt;br /&gt;
CTRL + V: incolla&lt;br /&gt;
CTRL + X: taglia&lt;br /&gt;
CTRL + A: seleziona tutto (buuuuu, queste le sanno tutti! Aspettate...)&lt;br /&gt;
ALT + freccia su / giù: sposta la (le) riga (righe) dove è posizionato il cursore.&lt;br /&gt;
In pratica una taglia e incolla per riga in un colpo solo, e senza intaccare il contenuto del buffer!&lt;br /&gt;
CTRL + ALT + freccia su / giù: duplica la (le) riga (righe) dove è posizionato il cursore (anche qui senza usare il buffer!)&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Ricerche &amp;amp; co.&lt;/b&gt;&lt;br /&gt;
CTRL + F: trova&lt;br /&gt;
CTRL + K: trova ancora &lt;br /&gt;
CTRL + O: mostra l'elenco di classi / metodi / attributi nel file corrente, con box di ricerca&lt;br /&gt;
CTRL + SHIFT + T: ricerca globale nel workspace di una classe, comodo perché consente di usare la wildcard "*" e soprattutto non ricerca in tutti i file, quindi è più veloce&lt;br /&gt;
CTRL + SHIFT + R: come sopra, su tutti i file, classi o meno che siano. Ovviamente un po' più lento.&lt;br /&gt;
CTRL (CTRL anche per mac) + H: apre la finestra di ricerca generica su tutto il workspace&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Cameriere, il principale! questo file non si può vedere!&lt;/b&gt;&lt;br /&gt;
CTRL + SHIFT + O: organizza gli import. Avevate provato la classe com.esempiodabuttare.maledocumentato? Sparito.&lt;br /&gt;
CTRL + SHIFT + F: indenta il codice secondo le spefiche date: spazi, a capo, parentesi, righe vuote... tutto in ordine. E last, but not at all least...&lt;br /&gt;
CTRL + 1: usato sull'errore / warning presente nel testo, propone una serie di suggerimenti che spesso danno una mano nell'ordinaria amministrazione, come la implementazione automatica dei metodi astratti di una superclasse / interfaccia.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Vabbé, lo ammetto, queste sono un po' da nerd...&lt;/b&gt;&lt;br /&gt;
ALT + SHIFT + X e poi T: esegue la selezione come test di JUnit&lt;br /&gt;
ALT + SHIFT + X e poi J: esegue la selezione come classe Java (ci deve essere il main)&lt;br /&gt;
ALT + SHIFT + X e poi Q: esegue la selezione come script di Ant&lt;br /&gt;
&lt;br /&gt;
Sembrano tante? Magari abbiamo sforato, l'elenco così come è scritto ne presenta 19... ma se togliamo le prime 5, che giustamente hanno provocato fischi dal pubblico, e le ultime 3, un po' particolari, arriviamo a 11. Sono poche da ricordare e soprattutto una volta usate le prime volte, non potrete più farne a meno...&lt;br /&gt;
&lt;br /&gt;
Alla prossima!&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
&lt;a
href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;
&lt;img src="http://www.feedburner.com/fb/lib/images/icons/feed-icon-12x12-orange.gif" alt="original feed"/&gt;
&lt;/a&gt;
&lt;a href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;View Feed XML&lt;/a&gt;
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4914371871575337260-3296885711727715891?l=stanzedimagu.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://stanzedimagu.blogspot.com/2011/02/eclipse-e-la-sapiente-arte-di-tagliare.html</link><author>noreply@blogger.com (Marco Aguzzi)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4914371871575337260.post-5781652585180854102</guid><pubDate>Sun, 06 Feb 2011 14:51:00 +0000</pubDate><atom:updated>2011-02-06T15:52:17.062+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">curriculum</category><category domain="http://www.blogger.com/atom/ns#">punti di vista</category><category domain="http://www.blogger.com/atom/ns#">cv</category><category domain="http://www.blogger.com/atom/ns#">preparazione</category><category domain="http://www.blogger.com/atom/ns#">lavoro</category><category domain="http://www.blogger.com/atom/ns#">colloquio</category><title>Punti di vista sul colloquio di lavoro - parte 1</title><description>
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/yzxF2BaQ3_AzyHno1LHij_dQNaU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yzxF2BaQ3_AzyHno1LHij_dQNaU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/yzxF2BaQ3_AzyHno1LHij_dQNaU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yzxF2BaQ3_AzyHno1LHij_dQNaU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Ciao a tutti,&lt;br /&gt;
&lt;br /&gt;
&lt;div align="justify"&gt;Mi piaceva l'idea di riportare qui sul blog un po' della mia esperienza di colloquiato e colloquiante (da qui i "punti di vista"), sia per ripensare a mente fredda alle avventure passate, sia perché spero che possa essere di qualche aiuto a chi si accinge ad affrontare questa prova per le prime volte. Cercherò di dividere il post in punti semplici:&lt;/div&gt;&lt;ol&gt;&lt;li style="text-align: justify;"&gt;Dicevamo, le primE voltE. Non ci sarà un solo colloquio, è una realtà. I primi faranno da bacino di esperienza per i successivi.&lt;br /&gt;
&lt;/li&gt;
&lt;a name='more'&gt;&lt;/a&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;Arrivate &lt;u&gt;puntuali&lt;/u&gt; al colloquio, non con mezz'ora di ritardo, ma neanche con mezz'ora di anticipo. Se siete in ritardo avvisate. Direi che è ovvio il perché non bisogna arrivare in ritardo, mentre arrivare troppo in anticipo ha ben due controindicazioni:&lt;/div&gt;&lt;ul&gt;&lt;li style="text-align: justify;"&gt;penseranno che non avete nulla di meglio da fare, e&lt;/li&gt;
&lt;li style="text-align: justify;"&gt;userete quella mezz'ora per innervosirvi nell'attesa, e chi vi deve fare il colloquio potrebbe arrivare comunque con un po' di ritardo per saggiare i vostri nervi... quindi 5 - 10 minuti prima sono più che sufficienti.&lt;br /&gt;
&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;Preparatevi per il colloquio nei giorni precedenti, non nella mezz'ora prima. La preparazione consta di attività semplici, quali: focalizzare bene le parole chiave dell'annuncio e capire se ci possa essere qualche lacuna tecnica o qualche punto a vostro favore, navigare il sito web dell'azienda che vi esaminerà per vedere in quali progetti siano coinvolti, o quali siano le loro tecnologie di punta. La domanda "conosce la ns. azienda?" ve la faranno sicuramente, e non sapere spiccicare parola non fa certo bella impressione... è sufficiente rispondere: "sì, ho visto il vs. sito aziendale, la tecnologia XYZ è molto interessante"&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;Pensate alle risposte alle domande che sembrano di cortesia, ma non lo sono... la prima è quasi sicuramente quella del paragrafo precedente, mentre la seconda potrebbe essere: "perché presso di noi?". Anche qui non serve scervellarsi, ma basta chiedersi (sempre il giorno prima, non la mezz'ora prima...) con sincerità quale sia il vostro valore aggiunto da portare alla azienda, ed esprimerlo in modo conciso. Oppure se pensate che quella realtà sia per voi trampolino di lancio per esperienze all'estero, o per imparare una tecnologia alla quale siete particolarmente interessati, va benissimo.&lt;/div&gt;&lt;/li&gt;
&lt;li style="text-align: justify;"&gt;Ripensate a quanto scritto nel vostro CV. L'esaminatore partirà proprio da quello per le prime domande, quindi è meglio evitare di fare la faccia "l'ho scritto io, davvero?!"&lt;br /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;div style="text-align: justify;"&gt;Durante il viaggio verso la sede convenuta, rilassatevi (siete già preparati, giusto?), e pensate che il colloquio si fa in due, non c'è solo l'azienda / esaminatore, ci siete anche voi... All'arrivo provate a fare un piccolo esame di quanto vedete intorno, per esempio:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;c'è una sala di attesa, o l'ingresso dà accesso immediato all'interno dell'azienda?&lt;/li&gt;
&lt;li&gt;c'è una persona dedicata alla reception?&lt;/li&gt;
&lt;li&gt;il posto è piccolo / grande / silenzioso / rumoroso?&lt;/li&gt;
&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;Tutto questo serve a porre anche voi stessi nella posizione (in percentuale minore, ovvio) di esaminatori, ma strapperà dalla vostra mente il pensiero di "oddio, devo fare il colloquio" &lt;/div&gt;&lt;/li&gt;
&lt;li&gt;Vi hanno fatto accomodare in una saletta per il colloquio, e vi hanno detto di attendere la persona che vi esaminerà... quando entra, alzatevi. Fa sempre bella impressione. I prossimi step nelle prossime puntate!&lt;/li&gt;
&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
&lt;a
href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;
&lt;img src="http://www.feedburner.com/fb/lib/images/icons/feed-icon-12x12-orange.gif" alt="original feed"/&gt;
&lt;/a&gt;
&lt;a href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;View Feed XML&lt;/a&gt;
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4914371871575337260-5781652585180854102?l=stanzedimagu.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://stanzedimagu.blogspot.com/2011/02/punti-di-vista-sul-colloquio-di-lavoro.html</link><author>noreply@blogger.com (Marco Aguzzi)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4914371871575337260.post-6229457046683060987</guid><pubDate>Sun, 06 Feb 2011 13:12:00 +0000</pubDate><atom:updated>2011-02-06T14:12:22.051+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">mobile</category><category domain="http://www.blogger.com/atom/ns#">qrcode</category><category domain="http://www.blogger.com/atom/ns#">lab_ita</category><category domain="http://www.blogger.com/atom/ns#">layout</category><title>Le stanze diventano mobili!</title><description>
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/6KHgwnhlZIVgfozZQn4e1bEToIo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6KHgwnhlZIVgfozZQn4e1bEToIo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/6KHgwnhlZIVgfozZQn4e1bEToIo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/6KHgwnhlZIVgfozZQn4e1bEToIo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_uk5bDBWv0bM/TU6cUmooU1I/AAAAAAAAA0U/hEFl93HyEfE/s1600/img.php.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_uk5bDBWv0bM/TU6cUmooU1I/AAAAAAAAA0U/hEFl93HyEfE/s1600/img.php.png" /&gt;&lt;/a&gt;&lt;/div&gt;Ciao a tutti,&lt;br /&gt;
&lt;br /&gt;
&lt;div align="justify"&gt;Eccovi una piccola ma importante novità per il blog. Navigando il blog dal vostro cellulare il suo layout cambierà automaticamente per meglio adattarsi allo schermo e alla usabilità propria per i dispositivi mobili.&lt;br /&gt;
Ma c'è dell'altro: inquadrate con il vostro smartphone il qrcode (codice a barre bidimensionale), presente qui nel post, e verrete rediretti direttamente al blog sul vostro cellulare! Volete generare il qrcode per il vostro blog o il vostro sito?&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;div align="justify"&gt;Visitando il sito &lt;a href="http://qrcode.kaywa.com/"&gt;http://qrcode.kaywa.com/&lt;/a&gt; è possibile immettere una URL, un testo, un sms e vedersi direttamente l'immagine qrcode generata da poter scaricare e mettere sul proprio sito, blog o rivista cartacea. Dal sito è possibile scaricare anche un lettore di qrcode, qualora il vostro cellulare ne fosse sprovvisto.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
&lt;a
href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;
&lt;img src="http://www.feedburner.com/fb/lib/images/icons/feed-icon-12x12-orange.gif" alt="original feed"/&gt;
&lt;/a&gt;
&lt;a href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;View Feed XML&lt;/a&gt;
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4914371871575337260-6229457046683060987?l=stanzedimagu.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://stanzedimagu.blogspot.com/2011/02/le-stanze-diventano-mobili.html</link><author>noreply@blogger.com (Marco Aguzzi)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_uk5bDBWv0bM/TU6cUmooU1I/AAAAAAAAA0U/hEFl93HyEfE/s72-c/img.php.png" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4914371871575337260.post-3436573920703640901</guid><pubDate>Sat, 05 Feb 2011 11:06:00 +0000</pubDate><atom:updated>2011-02-06T12:20:12.627+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">lab_ita</category><category domain="http://www.blogger.com/atom/ns#">linux</category><category domain="http://www.blogger.com/atom/ns#">baregrep</category><category domain="http://www.blogger.com/atom/ns#">baretail</category><category domain="http://www.blogger.com/atom/ns#">tail</category><category domain="http://www.blogger.com/atom/ns#">grep</category><category domain="http://www.blogger.com/atom/ns#">gui</category><category domain="http://www.blogger.com/atom/ns#">windows</category><category domain="http://www.blogger.com/atom/ns#">unix</category><title>Lo strumento è nudo!</title><description>
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/mrNqCGhKvy6NVSeijiQu71LAp9M/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mrNqCGhKvy6NVSeijiQu71LAp9M/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/mrNqCGhKvy6NVSeijiQu71LAp9M/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/mrNqCGhKvy6NVSeijiQu71LAp9M/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;Ciao a tutti...&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;no... questo non è un post di argomenti pruriginosi... ho semplicemente sfruttato un gioco di parole sul termine inglese "bare", appunto, "nudo". Quello che voglio presentare sono &lt;a href="http://www.baremetalsoft.com/baregrep"&gt;baregrep&lt;/a&gt; e &lt;a href="http://www.baremetalsoft.com/baretail"&gt;baretail&lt;/a&gt;: due strumenti molto comodi, e disponibili in egregia versione gratuita, per fare ricerche veloci ed efficaci su file di testo particolarmente grandi. Il sottotitolo di questo post potrebbe essere "quando il blocco note non ce la fa proprio".&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I due strumenti, distribuiti dalla &lt;a href="http://www.baremetalsoft.com/"&gt;BareMetal Software&lt;/a&gt;, sono il risultato di un felice adattamento all'ambiente windows dei conosciuti comandi Unix grep e tail. Vediamo insieme le funzionalità offerte da questi comandi nella loro versione originale:&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
Il comando "&lt;span style="font-family: inherit;"&gt;grep"&lt;/span&gt; consente di ricercare una certa stringa di caratteri in uno o più file di testo contenuti in una o più cartelle. Senza entrare nei dettagli della sintassi, un possibile utilizzo può essere:&lt;br /&gt;
&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; text-align: justify;"&gt;grep "pippo" *.txt&lt;/div&gt;&lt;div style="text-align: justify;"&gt;questo comando cerca la stringa &lt;span style="font-family: inherit;"&gt;"pippo&lt;/span&gt;" in tutti i file della cartella corrente che terminano con ".txt". Supponendo che nella cartella ci sia un file "fumetti.txt" contenente la stringa "pippo pluto paperino", l'output del comando sarà:&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; text-align: justify;"&gt;fumetti.txt:pippo pluto paperino&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Quindi grep ci sta dicendo che ha trovato nel file fumetti.txt la riga "pippo pluto paperino" che contiene la stringa che stiamo cercando. Questo tipo di ricerca è molto comodo quando abbiamo a che fare con file che contengono dei flussi dati, e vogliamo avere un'informazione al volo riguardo al significato dei record contenuti nel file.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Cosa offre in più lo strumento Baregrep? L'interfaccia grafica consente comodamente di specificare l'espressione che stiamo cercando, in quali file, se questi file sono contenuti in una o più cartelle, se navigare l'albero della cartelle nel selezionare i file, come presentare visivamente il risultato... rimando i lettori agli screenshot contenuti nel sito, molto esplicativi.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Il comando "tail" invece, è più semplice: dall'inglese "tail", "coda", semplicemente stampa a video la coda, quindi le ultime n righe, di un file. Questo è utile se abbiamo a che fare con un file che contiene le informazioni di esecuzione di un applicativo, e quindi sarà probabile che le ultime righe ci informino se ci sia stato un errore recente o se tutto stia andando bene.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Ma l'uso tipico di tail è leggermente più raffinato: con il comando:&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; text-align: justify;"&gt;tail -f file.txt&lt;/div&gt;&lt;div style="text-align: justify;"&gt;viene ancora stampata a video la coda di "file.txt", ma in questo caso tail, invece di terminare, resta in ascolto dei cambiamenti di "file.txt": se "file.txt" viene aggiornato (e se è un file di log di un applicativo in esecuzione, lo sarà sicurmente) tail presenta man mano a video le righe più nuove, portando quelle più vecchie verso la parte alta dello schermo.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Cosa offre in più lo strumento Baretail? L'interfaccia grafica consente comodamente di "agganciare" il file al programma per mostrarne il contenuto, e di "sganciarlo" a piacimento (per esempio quando le righe del file si susseguono troppo velocemente e vogliamo focalizzarci solo su una certa porzione). Ma soprattutto consente di colorare diversamente le righe del file che contengono alcune parole chiave specificabili dall'utente: questo è utile per vedere a colpo d'occhio se ci sono messaggi di un certo tipo, per esempio "avvisi" o "errori". Rimando ancora una volta i lettori agli screenshot contenuti  nel sito, molto esplicativi.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Alla prossima! &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
&lt;a
href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;
&lt;img src="http://www.feedburner.com/fb/lib/images/icons/feed-icon-12x12-orange.gif" alt="original feed"/&gt;
&lt;/a&gt;
&lt;a href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;View Feed XML&lt;/a&gt;
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4914371871575337260-3436573920703640901?l=stanzedimagu.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://stanzedimagu.blogspot.com/2011/02/lo-strumento-e-nudo.html</link><author>noreply@blogger.com (Marco Aguzzi)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4914371871575337260.post-2595847684070249583</guid><pubDate>Sat, 29 Jan 2011 10:15:00 +0000</pubDate><atom:updated>2011-01-29T11:37:54.909+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">lab_ita</category><category domain="http://www.blogger.com/atom/ns#">android</category><category domain="http://www.blogger.com/atom/ns#">browser</category><title>Anche Android ha il suo meta - blog</title><description>
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/MPjABvpDcx2Yd5-K9f2km2M3S6E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MPjABvpDcx2Yd5-K9f2km2M3S6E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/MPjABvpDcx2Yd5-K9f2km2M3S6E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MPjABvpDcx2Yd5-K9f2km2M3S6E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Ciao a tutti,&lt;br /&gt;
&lt;br /&gt;
Dopo aver pubblicato la prova di redirect sul browser di una generica url per iPhone, pubblico il risultato della stessa prova su Android. Il risultato è decisamente meno stylish, ma direi proprio che, una volta portato sul dispositivo, l'efficacia sia decisamente la stessa.&lt;br /&gt;
&lt;br /&gt;
Alla prossima!&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_uk5bDBWv0bM/TUPoyda94MI/AAAAAAAAAz8/y2gl4grGUS8/s1600/screenshot.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="225" width="320" src="http://4.bp.blogspot.com/_uk5bDBWv0bM/TUPoyda94MI/AAAAAAAAAz8/y2gl4grGUS8/s320/screenshot.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
&lt;a
href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;
&lt;img src="http://www.feedburner.com/fb/lib/images/icons/feed-icon-12x12-orange.gif" alt="original feed"/&gt;
&lt;/a&gt;
&lt;a href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;View Feed XML&lt;/a&gt;
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4914371871575337260-2595847684070249583?l=stanzedimagu.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://stanzedimagu.blogspot.com/2011/01/anche-android-ha-il-suo-meta-blog.html</link><author>noreply@blogger.com (Marco Aguzzi)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/_uk5bDBWv0bM/TUPoyda94MI/AAAAAAAAAz8/y2gl4grGUS8/s72-c/screenshot.png" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4914371871575337260.post-4841178883024128836</guid><pubDate>Fri, 28 Jan 2011 23:36:00 +0000</pubDate><atom:updated>2011-01-29T11:16:30.172+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">app</category><category domain="http://www.blogger.com/atom/ns#">lab_ita</category><category domain="http://www.blogger.com/atom/ns#">xcode</category><category domain="http://www.blogger.com/atom/ns#">ios</category><category domain="http://www.blogger.com/atom/ns#">iphone</category><title>Un piccolissimo test per iPhone</title><description>
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7vZJYhUmH8lNR9amPe3yetG1oRk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7vZJYhUmH8lNR9amPe3yetG1oRk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7vZJYhUmH8lNR9amPe3yetG1oRk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7vZJYhUmH8lNR9amPe3yetG1oRk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Ciao a tutti,&lt;br /&gt;
&lt;br /&gt;
Riporto qui sul blog una piccolissima prova che ho fatto nel provare uno sviluppo per iPhone: una semplice app che apra il browser all'indirizzo desiderato: la ripropongo qui in versione screenshot, nel quale si vede il simulatore dell'iphone puntare a questo stesso blog... un esempio di metablog, insomma :-) Nei prossimi post la stessa app, anziché usare safari per aprire un sito, lo porterà su una WebView, cosa potenzialmente più interessante perché possiamo lasciare la pagina che visitiamo all'interno dell'app stessa.&lt;br /&gt;
&lt;br /&gt;
Alla prossima!&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_uk5bDBWv0bM/TUNTxGfP7FI/AAAAAAAAAz0/4er6ZXqBcl0/s1600/screenshot.png" imageanchor="1" style="margin-left:1em; margin-right:1em"&gt;&lt;img border="0" height="320" width="166" src="http://1.bp.blogspot.com/_uk5bDBWv0bM/TUNTxGfP7FI/AAAAAAAAAz0/4er6ZXqBcl0/s320/screenshot.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
&lt;a
href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;
&lt;img src="http://www.feedburner.com/fb/lib/images/icons/feed-icon-12x12-orange.gif" alt="original feed"/&gt;
&lt;/a&gt;
&lt;a href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;View Feed XML&lt;/a&gt;
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4914371871575337260-4841178883024128836?l=stanzedimagu.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://stanzedimagu.blogspot.com/2011/01/un-piccolissimo-test-per-iphone.html</link><author>noreply@blogger.com (Marco Aguzzi)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_uk5bDBWv0bM/TUNTxGfP7FI/AAAAAAAAAz0/4er6ZXqBcl0/s72-c/screenshot.png" height="72" width="72" /><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4914371871575337260.post-3505663961105765137</guid><pubDate>Thu, 27 Jan 2011 22:06:00 +0000</pubDate><atom:updated>2011-01-27T23:08:24.461+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">foreign key</category><category domain="http://www.blogger.com/atom/ns#">constraint</category><category domain="http://www.blogger.com/atom/ns#">reference</category><category domain="http://www.blogger.com/atom/ns#">lab_eng</category><category domain="http://www.blogger.com/atom/ns#">oracle</category><title>Asking Oracle the foreign key</title><description>
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1pnHuJyPUwWXi0FEIK_O7VhjzUg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1pnHuJyPUwWXi0FEIK_O7VhjzUg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1pnHuJyPUwWXi0FEIK_O7VhjzUg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1pnHuJyPUwWXi0FEIK_O7VhjzUg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;Hi all,&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;This post is just a hint on how to ask Oracle the referenced table and column when dealing with table foreign keys. A fact that happens quite often is the attempt to delete some rows from a table, and seeing the error message:&amp;lt;&amp;lt;can't delete rows ... violated constraint: FK... &amp;gt;&amp;gt;&amp;nbsp; It could be quite hard getting which table and column we're referencing only using that computer generated string... but there's a way to let Oracle tell us more politely...&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
A sql query that can be used to retrieve constraint information is:&lt;br /&gt;
&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; text-align: justify;"&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;SELECT * FROM ALL_CONS_COLUMNS A JOIN ALL_CONSTRAINTS C&amp;nbsp; ON A.CONSTRAINT_NAME = C.CONSTRAINT_NAME&amp;nbsp; WHERE C.CONSTRAINT_TYPE = 'R'&lt;br /&gt;
and A.CONSTRAINT_NAME = &lt;i&gt;&amp;lt;theConstraintString&amp;gt;&lt;/i&gt;;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;The constraint type='R' refers to foreing keys: the resultset that this query will return will contain a column to the table and a column to the column we're refering (plus other column about owner and other information, the query above can be tailored to one own needs), thus making much more easier navigating through referenced tables.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;See you&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
&lt;a
href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;
&lt;img src="http://www.feedburner.com/fb/lib/images/icons/feed-icon-12x12-orange.gif" alt="original feed"/&gt;
&lt;/a&gt;
&lt;a href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;View Feed XML&lt;/a&gt;
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4914371871575337260-3505663961105765137?l=stanzedimagu.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://stanzedimagu.blogspot.com/2011/01/asking-oracle-foreign-key.html</link><author>noreply@blogger.com (Marco Aguzzi)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4914371871575337260.post-7723210889318217074</guid><pubDate>Sat, 15 Jan 2011 10:26:00 +0000</pubDate><atom:updated>2011-01-27T22:50:39.274+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">multiple</category><category domain="http://www.blogger.com/atom/ns#">port</category><category domain="http://www.blogger.com/atom/ns#">lab_eng</category><category domain="http://www.blogger.com/atom/ns#">Jboss</category><category domain="http://www.blogger.com/atom/ns#">instance</category><title>Configuring two JBoss instances on the same machine</title><description>
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/I7JzSYhorLKRmK8Jhj7MtxDnBzY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/I7JzSYhorLKRmK8Jhj7MtxDnBzY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/I7JzSYhorLKRmK8Jhj7MtxDnBzY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/I7JzSYhorLKRmK8Jhj7MtxDnBzY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Hi all,&lt;br /&gt;
&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;I've come across the need to configure two JBoss (to run parallely) on the same machine. As you can easily imagine, it comes a problem for port conflict which, if not handled properly, will prevent your configuration from being successfully done. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Starting from a technical article found on the net (&lt;a href="http://manoharviswanathan.com/blog/tech/running-multiple-jboss-instances-on-the-same-machine/"&gt;http://manoharviswanathan.com/blog/tech/running-multiple-jboss-instances-on-the-same-machine/&lt;/a&gt;), which reported the configuration for version 4.2.2, it could be noticed that there were quite a few discrepancies with version 4.2.1, which was the one I was interested in duplicating. &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;Browsing configuration folders, and using a mixture of netstat and grep commands, version 4.2.2 has been adapted to version 4.2.1. One important difference between the two version is that 4.2.1 has still some redundancies between server configuration, for example "default" and "all". In this example the "all" configuration has been taken into consideration.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;And here you have the list of ports that have been changed (for sake of easyness, a "1" character has been appended at the beginning of each number). Even though the list is specific for a particular version, I'm confident that it could be used as a staring point for another configuration by others, as it has been done by me from 4.2.2 to 4.2.1.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;See you&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;server/all/deploy/jboss-web.deployer/server.xml&lt;/div&gt;&lt;div style="text-align: justify;"&gt;8080 to 18080 &lt;/div&gt;&lt;div style="text-align: justify;"&gt;8443 to 18443&lt;/div&gt;&lt;div style="text-align: justify;"&gt;8009 to 18009&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;server/all/deploy/httpha-invoker.sar/META-INF/jboss-service.xml&lt;/div&gt;&lt;div style="text-align: justify;"&gt;8080 to 18080&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;server/all/deploy/jbossws.sar/jbossws.beans/META-INF/jboss-beans.xml&lt;/div&gt;&lt;div style="text-align: justify;"&gt;8080 to 18080&lt;/div&gt;&lt;div style="text-align: justify;"&gt;8443 to 18443&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;server/all/deploy/ejb3.deployer/META-INF/jboss-service.xml&lt;/div&gt;&lt;div style="text-align: justify;"&gt;3873 to 13873&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;server/default/deploy/jms/uil2-service.xml&lt;/div&gt;&lt;div style="text-align: justify;"&gt;8093 to 18093&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;server/all/conf/jboss-service.xml&lt;/div&gt;&lt;div style="text-align: justify;"&gt;8083 to 18083&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;server/all/conf/jboss-minimal.xml&lt;/div&gt;&lt;div style="text-align: justify;"&gt;1099 to 11099&lt;/div&gt;&lt;div style="text-align: justify;"&gt;1098 to 11098&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;server/all/conf/jboss-service.xml&lt;/div&gt;&lt;div style="text-align: justify;"&gt;1099 to 11099&lt;/div&gt;&lt;div style="text-align: justify;"&gt;1098 to 11098&lt;/div&gt;&lt;div style="text-align: justify;"&gt;4444 to 14444&lt;/div&gt;&lt;div style="text-align: justify;"&gt;4445 to 14445&lt;/div&gt;&lt;div style="text-align: justify;"&gt;4446 to 14446&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;server/all/deploy/snmp-adaptor.sar/managers.xml&lt;/div&gt;&lt;div style="text-align: justify;"&gt;1162 to 11162&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;server/all/deploy/snmp-adaptor.sar/META-INF/jboss-service.xml&lt;/div&gt;&lt;div style="text-align: justify;"&gt;1161 to 11161&lt;/div&gt;&lt;div style="text-align: justify;"&gt;1162 to 11161 &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;server/all/deploy/cluster-service.xml&lt;/div&gt;&lt;div style="text-align: justify;"&gt;1100 to 11100&lt;/div&gt;&lt;div style="text-align: justify;"&gt;1101 to 11101 &lt;/div&gt;&lt;div style="text-align: justify;"&gt;1102 to 11102&lt;/div&gt;&lt;div style="text-align: justify;"&gt;4447 to 14447&lt;/div&gt;&lt;div style="text-align: justify;"&gt;4448 to 14448&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;server/all/deploy/jms/hajndi-jms-ds.xml&lt;/div&gt;&lt;div style="text-align: justify;"&gt;1102 to 11102 &lt;/div&gt;&lt;div style="text-align: justify;"&gt;1100 to 11100&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;server/default/deploy/jms/jms-ds.xml&lt;/div&gt;&lt;div style="text-align: justify;"&gt;1100 to 11100&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;server/all/conf/jacorb.properties&lt;/div&gt;&lt;div style="text-align: justify;"&gt;3528 to 13528&lt;/div&gt;&lt;div style="text-align: justify;"&gt;3529 to 13529&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
&lt;a
href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;
&lt;img src="http://www.feedburner.com/fb/lib/images/icons/feed-icon-12x12-orange.gif" alt="original feed"/&gt;
&lt;/a&gt;
&lt;a href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;View Feed XML&lt;/a&gt;
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4914371871575337260-7723210889318217074?l=stanzedimagu.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://stanzedimagu.blogspot.com/2011/01/configuring-two-jboss-instances-on-same.html</link><author>noreply@blogger.com (Marco Aguzzi)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4914371871575337260.post-4280685894303705475</guid><pubDate>Sat, 15 Jan 2011 10:08:00 +0000</pubDate><atom:updated>2011-01-27T22:52:58.843+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">multiple</category><category domain="http://www.blogger.com/atom/ns#">lab_ita</category><category domain="http://www.blogger.com/atom/ns#">port</category><category domain="http://www.blogger.com/atom/ns#">Jboss</category><category domain="http://www.blogger.com/atom/ns#">instance</category><title>Configurare due istanze di JBoss sulla stessa macchina</title><description>
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gBlYIaUuPzpDOkOq9l2593LoQbs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gBlYIaUuPzpDOkOq9l2593LoQbs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gBlYIaUuPzpDOkOq9l2593LoQbs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gBlYIaUuPzpDOkOq9l2593LoQbs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;Ciao a tutti, &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Si è presentata la necessità di configurare due JBoss da poter far girare sulla stessa macchina contemporaneamente.&amp;nbsp;  Come è facile immaginare, nasce di un problema di utilizzo delle porte  da parte dei due JBoss che, se non risolto, genera conflitto e la  configurazione non può essere portata a termine con successo.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Partendo da un articolo trovato in rete (&lt;a href="http://manoharviswanathan.com/blog/tech/running-multiple-jboss-instances-on-the-same-machine/"&gt;http://manoharviswanathan.com/blog/tech/running-multiple-jboss-instances-on-the-same-machine/&lt;/a&gt;)  che riportava la configurazione per la versione 4.2.2, si notano  diverse discrepanze con la versione 4.2.1, quella per cui mi interessava  avere il doppio JBoss.&amp;nbsp; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Navigando tra le cartelle dei file di configurazione, e usando all'occorrenza i comandi netstat e grep  la versione 4.2.2 (riportata) è stata adattata a quella 4.2.1. La  differenza importante tra le due configurazioni è che nella 4.2.1 ci  sono duplicazioni di configurazione tra la versione del server "all" e  quella "default". In questo esempio è stato assunta come ipotesi che la  configurazione usata sia "all". &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Ed ecco l'elenco di  porte che è stato cambiato (il cambio è stato quello di aggiungere un  "1" davanti ad ogni numero di porta). Anche se, giocoforza, è spefico  per una particolare versione, confido nel fatto che possa servire come  punto di partenza per altri (così come è stato per me dalla 4.2.2) per  adattarlo ad altre versioni.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Alla prossima&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;server/all/deploy/jboss-web.deployer/server.xml&lt;/div&gt;&lt;div style="text-align: justify;"&gt;8080 to 18080 &lt;/div&gt;&lt;div style="text-align: justify;"&gt;8443 to 18443&lt;/div&gt;&lt;div style="text-align: justify;"&gt;8009 to 18009&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;server/all/deploy/httpha-invoker.sar/META-INF/jboss-service.xml&lt;/div&gt;&lt;div style="text-align: justify;"&gt;8080 to 18080&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;server/all/deploy/jbossws.sar/jbossws.beans/META-INF/jboss-beans.xml&lt;/div&gt;&lt;div style="text-align: justify;"&gt;8080 to 18080&lt;/div&gt;&lt;div style="text-align: justify;"&gt;8443 to 18443&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;server/all/deploy/ejb3.deployer/META-INF/jboss-service.xml&lt;/div&gt;&lt;div style="text-align: justify;"&gt;3873 to 13873&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;server/default/deploy/jms/uil2-service.xml&lt;/div&gt;&lt;div style="text-align: justify;"&gt;8093 to 18093&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;server/all/conf/jboss-service.xml&lt;/div&gt;&lt;div style="text-align: justify;"&gt;8083 to 18083&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;server/all/conf/jboss-minimal.xml&lt;/div&gt;&lt;div style="text-align: justify;"&gt;1099 to 11099&lt;/div&gt;&lt;div style="text-align: justify;"&gt;1098 to 11098&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;server/all/conf/jboss-service.xml&lt;/div&gt;&lt;div style="text-align: justify;"&gt;1099 to 11099&lt;/div&gt;&lt;div style="text-align: justify;"&gt;1098 to 11098&lt;/div&gt;&lt;div style="text-align: justify;"&gt;4444 to 14444&lt;/div&gt;&lt;div style="text-align: justify;"&gt;4445 to 14445&lt;/div&gt;&lt;div style="text-align: justify;"&gt;4446 to 14446&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;server/all/deploy/snmp-adaptor.sar/managers.xml&lt;/div&gt;&lt;div style="text-align: justify;"&gt;1162 to 11162&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;server/all/deploy/snmp-adaptor.sar/META-INF/jboss-service.xml&lt;/div&gt;&lt;div style="text-align: justify;"&gt;1161 to 11161&lt;/div&gt;&lt;div style="text-align: justify;"&gt;1162 to 11161 &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;server/all/deploy/cluster-service.xml&lt;/div&gt;&lt;div style="text-align: justify;"&gt;1100 to 11100&lt;/div&gt;&lt;div style="text-align: justify;"&gt;1101 to 11101 &lt;/div&gt;&lt;div style="text-align: justify;"&gt;1102 to 11102&lt;/div&gt;&lt;div style="text-align: justify;"&gt;4447 to 14447&lt;/div&gt;&lt;div style="text-align: justify;"&gt;4448 to 14448&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;server/all/deploy/jms/hajndi-jms-ds.xml&lt;/div&gt;&lt;div style="text-align: justify;"&gt;1102 to 11102 &lt;/div&gt;&lt;div style="text-align: justify;"&gt;1100 to 11100&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;server/default/deploy/jms/jms-ds.xml&lt;/div&gt;&lt;div style="text-align: justify;"&gt;1100 to 11100&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;server/all/conf/jacorb.properties&lt;/div&gt;&lt;div style="text-align: justify;"&gt;3528 to 13528&lt;/div&gt;&lt;div style="text-align: justify;"&gt;3529 to 13529&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
&lt;a
href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;
&lt;img src="http://www.feedburner.com/fb/lib/images/icons/feed-icon-12x12-orange.gif" alt="original feed"/&gt;
&lt;/a&gt;
&lt;a href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;View Feed XML&lt;/a&gt;
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4914371871575337260-4280685894303705475?l=stanzedimagu.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><enclosure type="x-html" url="http://manoharviswanathan.com/blog/tech/running-multiple-jboss-instances-on-the-same-machine/" length="0" /><link>http://stanzedimagu.blogspot.com/2011/01/configurare-due-istanze-di-jboss-sulla.html</link><author>noreply@blogger.com (Marco Aguzzi)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4914371871575337260.post-1584066129255588952</guid><pubDate>Sun, 21 Nov 2010 13:07:00 +0000</pubDate><atom:updated>2011-02-05T17:39:55.370+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">undo</category><category domain="http://www.blogger.com/atom/ns#">tablespace</category><category domain="http://www.blogger.com/atom/ns#">lab_eng</category><category domain="http://www.blogger.com/atom/ns#">oracle</category><title>Hints with tablespaces in oracle</title><description>
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/QT4wUH-tL44pthBNozlhmLMsVX8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QT4wUH-tL44pthBNozlhmLMsVX8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/QT4wUH-tL44pthBNozlhmLMsVX8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QT4wUH-tL44pthBNozlhmLMsVX8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Hi all,&lt;br /&gt;
&lt;br /&gt;
&lt;div align="justify"&gt;This post is about a little tricks in oracle which I've come across in my daily work activity. When you're using oracle in a test machine, probably a virtual one, it is useful to keep the disk usage low because, if disk space shortens too much, oracle response times can become really slow. A frequent operation that we (me and my colleagues) are frequently doing in test database is to freshen the database itself with updated dumps, so cleaning the user, creating it again without any database, and then importing the dump.&lt;br /&gt;
&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;
The first hint is to drop the user and its tablespace so that oracle will release also its space on disk, so:&lt;/div&gt;&lt;br /&gt;
If we'd like to check the actual filename of a tablespace:&lt;br /&gt;
&lt;br /&gt;
select FILE_NAME,TABLESPACE_NAME,BYTES from dba_data_files;&lt;br /&gt;
&lt;br /&gt;
Then:&lt;br /&gt;
&lt;br /&gt;
drop user &lt;username&gt; cascade;&lt;br /&gt;
drop tablespace &lt;tablespace_name&gt; including contents and datafiles;&lt;br /&gt;
&lt;br /&gt;
so create the tablespace again:&lt;br /&gt;
&lt;br /&gt;
create tablespace&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;lt;tablespace_name&amp;gt;&lt;br /&gt;
datafile&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;lt;actual_file_name_between_single_quotes&amp;gt;&lt;br /&gt;
size&lt;br /&gt;
&amp;nbsp; &amp;nbsp;512m&lt;br /&gt;
autoextend on&lt;br /&gt;
next 250m;&lt;br /&gt;
&lt;br /&gt;
and then the user:&lt;br /&gt;
&lt;br /&gt;
create user &amp;lt;username&amp;gt; identified by &amp;lt;password&amp;gt; default tablespace &amp;lt;tablespace_name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Of course the point in this is that we can delete the tablespace file in between the process of deletion / creation of the user.&lt;br /&gt;
&lt;br /&gt;
But there's another tablespace we'd like to take care (ehm... delete?) of: the undo tablespace. This could be handy because the undo tablespace grows in space for wathever change it's made on the dabase, and keep it low on space could help saving disk consumption. But this time we must create a new undo tablespace before dropping the old one. So:&lt;br /&gt;
&lt;br /&gt;
CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE &lt;tablespace_file_between_single_quotes&gt; SIZE 512M;&lt;br /&gt;
ALTER SYSTEM SET UNDO_TABLESPACE = UNDOTBS2 SCOPE=BOTH;&lt;br /&gt;
&lt;br /&gt;
The SCOPE = BOTH parameter will make the change immediate (at least within the oracle timing)&lt;br /&gt;
&lt;br /&gt;
At this point the old undo tablespace can be removed:&lt;br /&gt;
&lt;br /&gt;
drop tablespace UNDOTBS1 including contents and datafiles;&lt;br /&gt;
&lt;br /&gt;
Hope that these hints will be helpful to someone, that's all for now!&lt;/tablespace_file_between_single_quotes&gt;&lt;/tablespace_name&gt;&lt;/password&gt;&lt;/username&gt;&lt;/actual_file_name_between_single_quotes&gt;&lt;/tablespace_name&gt;&lt;/tablespace_name&gt;&lt;/username&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
&lt;a
href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;
&lt;img src="http://www.feedburner.com/fb/lib/images/icons/feed-icon-12x12-orange.gif" alt="original feed"/&gt;
&lt;/a&gt;
&lt;a href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;View Feed XML&lt;/a&gt;
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4914371871575337260-1584066129255588952?l=stanzedimagu.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://stanzedimagu.blogspot.com/2010/11/hints-with-tablespaces-in-oracle.html</link><author>noreply@blogger.com (Marco Aguzzi)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4914371871575337260.post-4632732107171474566</guid><pubDate>Sun, 21 Nov 2010 10:34:00 +0000</pubDate><atom:updated>2010-11-21T11:34:51.181+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">lab_eng</category><title>Couple of links</title><description>
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/MTEsdan5gHF_2Y_TwmW5EyVtp3Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MTEsdan5gHF_2Y_TwmW5EyVtp3Q/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/MTEsdan5gHF_2Y_TwmW5EyVtp3Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MTEsdan5gHF_2Y_TwmW5EyVtp3Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Hi all,&lt;br /&gt;
&lt;br /&gt;
This email to recall about a couple of links recollected in some days of work: those will also be reported in the "links" section of the blog.&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.cronmaker.com/" target="_blank"&gt;http://www.cronmaker.com/&lt;/a&gt; - simple, yet effective, user interface to create cron expressions. It uses a the quartz engine for validation, so it can be a handy tool if you're working with quartz and / or crontab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.yworks.com/en/products_yguard_about.html" target="_blank"&gt;http://www.yworks.com/en/&lt;wbr&gt;&lt;/wbr&gt;products_yguard_about.html&lt;/a&gt; - yguard is a free jar obfuscator, that can be used as an ant task. Very useful if you need to protect your java code from reverse engineering.&lt;br /&gt;
&lt;br /&gt;
This is all up to now!&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
&lt;a
href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;
&lt;img src="http://www.feedburner.com/fb/lib/images/icons/feed-icon-12x12-orange.gif" alt="original feed"/&gt;
&lt;/a&gt;
&lt;a href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;View Feed XML&lt;/a&gt;
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4914371871575337260-4632732107171474566?l=stanzedimagu.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://stanzedimagu.blogspot.com/2010/11/couple-of-links.html</link><author>noreply@blogger.com (Marco Aguzzi)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4914371871575337260.post-3882823833470470886</guid><pubDate>Mon, 04 Oct 2010 21:22:00 +0000</pubDate><atom:updated>2010-10-04T23:22:49.124+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">bash</category><category domain="http://www.blogger.com/atom/ns#">kill</category><category domain="http://www.blogger.com/atom/ns#">lab_eng</category><category domain="http://www.blogger.com/atom/ns#">nohup</category><category domain="http://www.blogger.com/atom/ns#">script</category><title>Army of Darkness (a.k.a. The unkillable process)</title><description>
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/7zVNogLIO6s2n-1Bbt81qw2pZ0Y/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7zVNogLIO6s2n-1Bbt81qw2pZ0Y/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/7zVNogLIO6s2n-1Bbt81qw2pZ0Y/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/7zVNogLIO6s2n-1Bbt81qw2pZ0Y/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Hi all,&lt;br /&gt;
&lt;br /&gt;
In this post I'd like to point out a quick method to have your process running in the background, without being related to the shell that has started it, and able to respawn itself (hence the army...) if interrupted abruptly because something wrong happened or some external killing has been fired.&lt;br /&gt;
So let's assume our process is a java powered class, its command will be (mind the citation):&lt;br /&gt;
&lt;br /&gt;
java -jar BruceCampbell.jar &amp;amp;&lt;br /&gt;
&lt;br /&gt;
In this way we can have our process running in the background, but still linked to the bash that run it, so:&lt;br /&gt;
&lt;br /&gt;
nohup java -jar BruceCampbell.jar &amp;amp;&lt;br /&gt;
&lt;br /&gt;
The&amp;nbsp; nohup command will make our program unlinked from the bash, so the program will run seamlessy even after we'll close the shell. But what happens if we search for the process with ps -aux | grep java, and the kill -9 &amp;lt;theprocessnumber&amp;gt;, simulating an external accident for our program? No mercy for it.&lt;br /&gt;
&lt;br /&gt;
This time the bash can be really helpful: &lt;br /&gt;
&lt;br /&gt;
until java -jar BruceCampbell.jar; do&lt;br /&gt;
&amp;nbsp; &amp;nbsp; echo "Zombies have been killed with exit code $?. &amp;nbsp;Respawning.." &amp;gt;&amp;amp;2&lt;br /&gt;
&amp;nbsp; &amp;nbsp; sleep 1&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
In this way, if the process is exited gracefully (e.g. System.exit(0)) the until loop terminates and all the processing stops, in any other case, the process is restarted. The sleep command is used to separate the termination of a process and the restarting of the new instance.&lt;br /&gt;
&lt;br /&gt;
So that is all for now, many thanks to the bloggers that gave me the inspiration for this post:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://stackoverflow.com/questions/696839/how-do-i-write-a-bash-script-to-restart-a-process-if-it-dies"&gt;http://stackoverflow.com/questions/696839/how-do-i-write-a-bash-script-to-restart-a-process-if-it-dies&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://it.wikipedia.org/wiki/Nohup"&gt;http://it.wikipedia.org/wiki/Nohup&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
&lt;a
href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;
&lt;img src="http://www.feedburner.com/fb/lib/images/icons/feed-icon-12x12-orange.gif" alt="original feed"/&gt;
&lt;/a&gt;
&lt;a href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;View Feed XML&lt;/a&gt;
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4914371871575337260-3882823833470470886?l=stanzedimagu.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://stanzedimagu.blogspot.com/2010/10/army-of-darkness-aka-unkillable-process.html</link><author>noreply@blogger.com (Marco Aguzzi)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4914371871575337260.post-2489204051815909323</guid><pubDate>Sat, 02 Oct 2010 14:55:00 +0000</pubDate><atom:updated>2010-10-02T16:55:15.790+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ftp4j</category><category domain="http://www.blogger.com/atom/ns#">ftp</category><category domain="http://www.blogger.com/atom/ns#">lab_eng</category><category domain="http://www.blogger.com/atom/ns#">authentication</category><category domain="http://www.blogger.com/atom/ns#">proxy</category><title>Thinkering with ftp</title><description>
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/UpJUN0GrfYUHVaRbMOeIvurmFGA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UpJUN0GrfYUHVaRbMOeIvurmFGA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/UpJUN0GrfYUHVaRbMOeIvurmFGA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/UpJUN0GrfYUHVaRbMOeIvurmFGA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;Hi all,&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;This time the post will be about some consideration on (yep, hazardous) ftp communications. The package I've been using is &lt;a href="http://www.sauronsoftware.it/projects/ftp4j/%20"&gt;ftp4j&lt;/a&gt;, an open source java software that has been widely used and tested in other projects me or my colleagues have been working on. The ftp connection itself is a piece of cake, the issues come around when proxies come into into the scenario.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;Proxies can be of different type, let's see what kind of authentication works best with each of them (more or less pointing to the connectors that ftp4j have made availabe, and it's straightforward how to program ones own),&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;Direct connection: basically is no proxy at all&lt;/li&gt;
&lt;li&gt;Direct connection with proxy in the authentication parameter: this case is half way throught the direct connection and the proxy: the host to connect to is the proxy host, while the credentials report the ftp host in the form user@ftp_host (password remains unchangend, of course) &lt;/li&gt;
&lt;li&gt;FTP Proxy: proxies supporting OPEN or SITE command&lt;/li&gt;
&lt;li&gt;HTTP Tunnel: this is more a method to fool a proxy, rather than to connect to the proxy itself&lt;/li&gt;
&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;One of the proxies that is (correctly and coherently) unsupported is a web proxy, because the only commands available are the ones relative to the HTTP protocol, not FTP. A cumbersome and awkward (you can quote other adjectives, if you like.. :-) ) workaround could be of using the tunneling method with the GET HTTP command, instruct the connector to recognize the html page listing the files on the ftp directory as a valid response, parse the html page for getting the file list, and use a single GET command to download any single file... sounds like a programmer nightmare..&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;A problem that could be difficult to investigate which I've experienced is the encrypted connection. When ftp4j instantiate the client, it asks the jvm which random number generator the operating system provides (of course used for encrypted connections). On unix systems, the application could benefit switching from /dev/random to /dev/urandom, a less secure but more performing random number generator. I've seen that the client hangs up on this step if this procedure fails on the machine hosting the java process, and this could be difficult to detect, since it seems a connection failing. A workaround in this case has been brutally to edit the source code and disabling the encryption intialization with a "=null". Of course it has been assumed that no encrypted connection will be needed.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;At the end of this post, a big "thank you" to the ftp4j developer, for building a software where the source code is readable and expandable, without these features it would have been almost impossible to seek our way through the solution!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
&lt;a
href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;
&lt;img src="http://www.feedburner.com/fb/lib/images/icons/feed-icon-12x12-orange.gif" alt="original feed"/&gt;
&lt;/a&gt;
&lt;a href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;View Feed XML&lt;/a&gt;
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4914371871575337260-2489204051815909323?l=stanzedimagu.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://stanzedimagu.blogspot.com/2010/10/thinkering-with-ftp.html</link><author>noreply@blogger.com (Marco Aguzzi)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4914371871575337260.post-4376453162302837283</guid><pubDate>Sat, 02 Oct 2010 14:25:00 +0000</pubDate><atom:updated>2010-10-02T16:25:16.951+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">lab_ita</category><category domain="http://www.blogger.com/atom/ns#">albania</category><category domain="http://www.blogger.com/atom/ns#">adp</category><category domain="http://www.blogger.com/atom/ns#">amici dei popoli</category><title>Liberi pensieri sull'esperienza albanese</title><description>
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/QiURsISdBGhbnyAITXC9uwfI4AE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QiURsISdBGhbnyAITXC9uwfI4AE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/QiURsISdBGhbnyAITXC9uwfI4AE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QiURsISdBGhbnyAITXC9uwfI4AE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;Dopo parecchio tempo, finalmente un post non informatico! Sono pensieri, in libertà, sull'esperienza di volontariato internazionale che ho vissuto in Albania tramite l'organizzazione Amici dei Popoli. Un grazie anticipato a chiunque voglia soffermarsi qualche minuto per leggerla.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;--&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;style type="text/css"&gt;
p { margin-bottom: 0.21cm; }
&lt;/style&gt;  &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm; text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0cm; text-align: justify;"&gt;Sebbene la "Lonely Planet" non abbia un volumetto interamente dedicato all'Albania, queste righe saranno particolarmente povere di materiale per scriverlo: l'esperienza che Amici dei Popoli ha dato la possibilità di vivere è stata molto più ricca di sensazioni "di pancia" che di considerazioni riportabili in qualsivoglia ordine ragionato.&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm; text-align: justify;"&gt; E' appunto questa mancanza di ragione che ci porta ad accettare le contraddizioni che questo paese propone ed espone. A cominciare dall'arrivo in aeroporto, dove tutto sembra “normale”, o meglio, occidentalizzato, almeno fino a quando non compare un numero considerevole di autostoppisti lungo tutta l'autostrada che da Tirana porta a Lezhë, la nostra destinazione per 2 delle 3 settimane di permanenza. Scopriamo poi che gli autostoppisti non sono altro che semplici passeggeri di improvvisati pullman che fanno la spola tra le due città, in quanto non c'è un punto fisso lungo la strada che abbia la funzione di fermata. E' ancora durante il primo viaggio che è impossibile non notare il numero impressionante di case in corso di costruzione completamente abbandonate, che fanno subito pensare ad un non meglio specificato processo di involuzione sociale, ma sul momento l'unica frase che cerca di spiegarlo può essere solo: “perché?”&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm; text-align: justify;"&gt; Le case che, invece, paiono avere realmente la loro funzione di abitazione sono per la maggior parte diverse da quelle che siamo abituati a conoscere: per lo più sembrano costruite direttamente dai loro inquilini, assembrate in piccoli quartieri, quasi volessero far fieramente capire che la vita “vera” sia proprio lì, che l'occidentalizzazione non abbia assolutamente attecchito e non è interesse che sia così.&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm; text-align: justify;"&gt; Un'espressione che, una volta rientrato, mi è capitato di usare più volte nei racconti per amici e conoscenti è “avamposto orientale”: questa sensazione arriva netta e decisa a tutti e 5 i sensi del visitatore anche non particolarmente attento. L'ambientazione, dalla quale si è ineluttabilmente costretti a lasciarsi avvolgere, è del tutto simile a quella che impavidi avventurieri ed esploratori hanno vissuto nei diversi racconti, cinematografici e non, che popolano il nostro immaginario. Qualche momento tra tutti: gli animali che, all'occidentale, sono chiamati “da cortile”, circolano liberamente sulle strade, i piccoli pullman (rigorosamente compreso il nostro...) che vengono  utilizzati da molte più persone rispetto a quante riportate sui rispettivi libretti di circolazione,  non ultimo la musica di fattura decisamente arabeggiante che si ascolta a tutto volume a bordo di quest'ultimi.&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm; text-align: justify;"&gt; Ma un viaggio non è tale se non si trascorre il proprio tempo con le persone del posto: l'attività di animazione portata avanti con gli animatori locali a Lezhë si offre come anticamera naturale per questo processo. Il gruppo di animatori locali, sotto l'esperta guida delle suore della parrocchia, dopo circa 5 anni in cui la formula italo – albanese viene riproposta, è ben rodato.&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm; text-align: justify;"&gt; Affermerei il falso se negassi che, anche inconsciamente, la mia mente non si sia proposta il raffronto tra l'immaginario che una certa sottocultura propone incessantemente in Italia sul popolo albanese, e i ragazzi con cui mi sono trovato a condividere questa esperienza; inutile dire che il risultato è schiacciante e in loro favore, ma quasi rimane l'amaro, come se il solo pensiero del raffronto servisse come forma di credibilità per la versione distorta che per troppo tempo ci è stata propinata.&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm; text-align: justify;"&gt; Un'altra espressione che ho usato nel descrivere la permanenza in Albania è stata “presi per mano”. Ed è questo quello che i ragazzi albanesi hanno fatto nei nostri confronti, sia durante le attività nel rapporto con i bambini, soprattutto quando la lingua ci poneva in netta inferiorità, sia durante le uscite extra – animazione, dove c'è la vaga sensazione di essere un po' turisti: situazione a cui, volendo rinunciare completamente, complicherebbe a dismisura il nostro soggiorno; e contemporaneamente, motivo di agio e di orgoglio da parte dei ragazzi albanesi che sentono di poter “farla da padrone”.&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm; text-align: justify;"&gt; Anche in questo caso, seppure il paragrafo appena scritto potrebbe lasciar pensare ad una situazione di “normalità”, è subito il raffronto con la realtà locale che fa capire come la situazione sia profondamente diversa. I disagi che, inevitabili, si sono parati sul percorso compiuto dai nostri coetanei nelle loro vite non faticano ad apparire, anche per poco, nella quotidianità condivisa: a dire il vero non serve molto di più per lasciarci spiazzati, per farci capire le fortune che abbiamo vissuto e viviamo senza quasi rendercene conto.&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm; text-align: justify;"&gt; Una grande opportunità che abbiamo avuto durante l'esperienza di quest'anno è stato trascorrere l'ultima settimana nella regione del Kelmend. Nonostante l'attività principale fosse comunque l'animazione con i bambini, diversi sono i punti di eccezionalità per questa parte di esperienza: l'ambientazione completamente diversa (piena, selvaggia, inesplorata, un po' minacciosa montagna), la presenza nel nostro gruppo di 3 animatori albanesi provenienti da Lezhë, che ovviamente avevano già condiviso le due settimane precedenti con noi, e la durata diversa dell'attività di animazione (giornata piena invece che solo mattina). Proprio sulla presenza della rappresentativa albanese vale la pena spendere due parole in più. Oltre ad aver annullato le differenze geografiche e reso il gruppo animatori, se possibile, più “entità unica”, ha dato la possibilità ai ragazzi albanesi di visitare luoghi che anche loro non avevano mai avuto l'occasione di vedere. Oltre a questo, la presenza di un'animatrice albanese nella loro rappresentativa è stato un evento veramente degno di nota: sia per l'eccezionalità, sia per il fatto che questo abbia contribuito, nel suo piccolo, a limare i pregiudizi che ancora sono vivi sul rapporto tra uomini e donne in Albania.&lt;/div&gt;&lt;br /&gt;
&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0cm; text-align: justify;"&gt; Tre settimane trascorrono veloci, si stringono legami e amicizie, inter – e intra – nazionali, che facilmente resisteranno al passare degli anni, alle memorie delle macchine digitali e alle foto, passatemi il termine, “un po' sbiadite”, di facebook.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
&lt;a
href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;
&lt;img src="http://www.feedburner.com/fb/lib/images/icons/feed-icon-12x12-orange.gif" alt="original feed"/&gt;
&lt;/a&gt;
&lt;a href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;View Feed XML&lt;/a&gt;
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4914371871575337260-4376453162302837283?l=stanzedimagu.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://stanzedimagu.blogspot.com/2010/10/liberi-pensieri-sullesperienza-albanese.html</link><author>noreply@blogger.com (Marco Aguzzi)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4914371871575337260.post-6752471548933293280</guid><pubDate>Sun, 23 May 2010 10:03:00 +0000</pubDate><atom:updated>2010-05-23T13:55:52.811+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">hibernate</category><category domain="http://www.blogger.com/atom/ns#">log4j</category><category domain="http://www.blogger.com/atom/ns#">lab_eng</category><category domain="http://www.blogger.com/atom/ns#">Jboss</category><category domain="http://www.blogger.com/atom/ns#">?</category><category domain="http://www.blogger.com/atom/ns#">question marks</category><title>Hibernate queries and question marks</title><description>
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/PaHIgdvVjPFBXLULD0lQ_SzBtS4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PaHIgdvVjPFBXLULD0lQ_SzBtS4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/PaHIgdvVjPFBXLULD0lQ_SzBtS4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/PaHIgdvVjPFBXLULD0lQ_SzBtS4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Hi all&lt;br /&gt;
&lt;br /&gt;
I report here a Jboss (4.2.1 GA) configuration with hibernate and log4j which should be of some useness to other developers that, like me, are overbored seeing hiberate - genereated queries in logs without seeing actual parameters which are passed to the queries. The configuration I'm reporting is far from being the best one, it's simply the outcome of a bunch of tries to achieve the result I was looking for. I'll update this post as soos as I'll find some better ways to do it. So let us proceed:&lt;br /&gt;
&lt;br /&gt;
log4j jboss configuration: jboss_folder/server/config_folder/conf/jboss-log4j.xml&lt;br /&gt;
&lt;br /&gt;
I added this category to the log activating the TRACE level and pointing the log the console:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;category name="org.hibernate.type" additivity="false"&amp;gt;&lt;br /&gt;
&amp;lt;priority value="TRACE" /&amp;gt;&lt;br /&gt;
&amp;lt;appender-ref ref="CONSOLE" /&amp;gt;&lt;br /&gt;
&amp;lt;/category&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Application log: application_source_root_folder/application_name-log4j.xml&lt;br /&gt;
&lt;br /&gt;
I've added two categories: one for the queries, and the other for parameters. Question marks aren't actually substituted, after the logged query there are other logs reporting passed parameters and values that are sent back in the target list (which are also very useful indeed). It's a very verbose log, but it can be useful to track down some stubborn errors.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;category name="org.hibernate.SQL" additivity="false"&amp;gt;&lt;br /&gt;
&amp;lt;appender-ref ref="ROLLING-H8"/&amp;gt;&lt;br /&gt;
&amp;lt;priority value="TRACE" /&amp;gt;&lt;br /&gt;
&amp;lt;/category&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;category name="org.hibernate.type" additivity="false"&amp;gt;&lt;br /&gt;
&amp;lt;appender-ref ref="ROLLING-H8"/&amp;gt;&lt;br /&gt;
&amp;lt;priority value="TRACE" /&amp;gt;&lt;br /&gt;
&amp;lt;/category&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ROLLING-H8 appender is a standard rolling appender, which I've redirected to a file, but any other configuration should work.&lt;br /&gt;
&lt;br /&gt;
See you on the next (hopefully more elegant) update!&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
&lt;a
href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;
&lt;img src="http://www.feedburner.com/fb/lib/images/icons/feed-icon-12x12-orange.gif" alt="original feed"/&gt;
&lt;/a&gt;
&lt;a href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;View Feed XML&lt;/a&gt;
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4914371871575337260-6752471548933293280?l=stanzedimagu.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://stanzedimagu.blogspot.com/2010/05/hibernate-queries-and-question-marks.html</link><author>noreply@blogger.com (Marco Aguzzi)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4914371871575337260.post-4194794243585925946</guid><pubDate>Wed, 05 May 2010 07:06:00 +0000</pubDate><atom:updated>2010-05-23T13:56:16.827+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">hibernate</category><category domain="http://www.blogger.com/atom/ns#">lab_ita</category><category domain="http://www.blogger.com/atom/ns#">punti interrogativi</category><category domain="http://www.blogger.com/atom/ns#">log4j</category><category domain="http://www.blogger.com/atom/ns#">Jboss</category><category domain="http://www.blogger.com/atom/ns#">?</category><title>Query hibernate e punti interrogativi</title><description>
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1QsgUxoZOLo88AZmoacSbytWRZw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1QsgUxoZOLo88AZmoacSbytWRZw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1QsgUxoZOLo88AZmoacSbytWRZw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1QsgUxoZOLo88AZmoacSbytWRZw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;Ciao a tutti,&lt;br /&gt;
&lt;br /&gt;
Riporto qui una configurazione di jboss (4.2.1 GA) con hibernate e log4j che potrebbe essere utile ad altri sviluppatori che, come me, sono arcistufi di vedere le query generate da hibernate nel log senza sapere i parametri che vengono effettivamente passati al database. La configurazione che propongo non sarà perfetta, è semplicemente frutto di un po' di prove fatte per arrivare al risultato, aggiornerò il post quando arriverò con idee più eleganti che raggiungano lo stesso risultato. Ma andiamo con ordine:&lt;br /&gt;
&lt;br /&gt;
Configurazione log4j di jboss: file server/&lt;i&gt;configurazione&lt;/i&gt;/conf/jboss-log4j.xml&lt;br /&gt;
&lt;br /&gt;
ho aggiunto questa categoria al log attivando il livello TRACE e facendo puntare il log alla console:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;category name="org.hibernate.type" additivity="false"&amp;gt;&lt;br /&gt;
&amp;lt;priority value="TRACE" /&amp;gt;&lt;br /&gt;
&amp;lt;appender-ref ref="CONSOLE" /&amp;gt;&lt;br /&gt;
&amp;lt;/category&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Log di applicazione: file &lt;i&gt;source_applicazione&lt;/i&gt;/&lt;i&gt;nome_applicazione&lt;/i&gt;-log4j.xml&lt;br /&gt;
&lt;br /&gt;
Ho aggiunto le due categorie, una per le query, e l'altra per i parametri. A dire il punti interrogativi non vengono sostituiti, ma dopo la query compare un altro log che riporta i parametri passati e i valori che vengono tornati nella target list. E' un log molto verboso, ma può essere utile per scoprire errori particolarmente difficili.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;category name="org.hibernate.SQL" additivity="false"&amp;gt;&lt;br /&gt;
&amp;lt;appender-ref ref="ROLLING-H8"/&amp;gt;&lt;br /&gt;
&amp;lt;priority value="TRACE" /&amp;gt;&lt;br /&gt;
&amp;lt;/category&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;category name="org.hibernate.type" additivity="false"&amp;gt;&lt;br /&gt;
&amp;lt;appender-ref ref="ROLLING-H8"/&amp;gt;&lt;br /&gt;
&amp;lt;priority value="TRACE" /&amp;gt;&lt;br /&gt;
&amp;lt;/category&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'appender ROLLING-H8 è un appender rolling standard, nel mio caso ho rediretto su file, ma qualsiasi altra configurazione è possibile.&lt;br /&gt;
&lt;br /&gt;
Al prossimo aggiornamento di questo post con qualche accorgimento più elegante!&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
&lt;a
href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;
&lt;img src="http://www.feedburner.com/fb/lib/images/icons/feed-icon-12x12-orange.gif" alt="original feed"/&gt;
&lt;/a&gt;
&lt;a href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;View Feed XML&lt;/a&gt;
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4914371871575337260-4194794243585925946?l=stanzedimagu.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://stanzedimagu.blogspot.com/2010/05/query-hibernate-e-punti-interrogativi.html</link><author>noreply@blogger.com (Marco Aguzzi)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4914371871575337260.post-892849743312197664</guid><pubDate>Wed, 03 Mar 2010 13:23:00 +0000</pubDate><atom:updated>2010-03-04T15:00:12.907+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">lab_ita</category><category domain="http://www.blogger.com/atom/ns#">cast</category><title>Casting misteriosi...</title><description>
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/MANl8FvsmP28nsUjmamDxaLnzTc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MANl8FvsmP28nsUjmamDxaLnzTc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/MANl8FvsmP28nsUjmamDxaLnzTc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/MANl8FvsmP28nsUjmamDxaLnzTc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p align='justify'&gt;Ciao a tutti, una piccola scoperta effettuata a spese di Java 1.5... sembra esserci una leggera differenza tra il comportamento della classe Date standard di Java (java.util.Date) e quella di tipo sql java.sql.Timestamp. Il codice di test riportato qui sotto prova ad istanziare un Calendar per avere la data corrente, e con questa istanzia le due date che in teoria dovrebbero essere identiche ma...&lt;/p&gt;&lt;br /&gt;
&lt;div align="left" class="java"&gt;&lt;table bgcolor="#ffffff" border="0" cellpadding="3" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;&lt;code&gt; &lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;class&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;DateCaster&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;implements&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Tryable&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;{&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;perform&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;throws&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Exception&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;{&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;Calendar&amp;nbsp;calendar&amp;nbsp;=&amp;nbsp;Calendar.getInstance&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: white;"&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;Date date&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Date&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;calendar.getTimeInMillis&lt;/span&gt;&lt;span style="color: black;"&gt;())&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;Timestamp ts =&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Timestamp&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;calendar.getTimeInMillis&lt;/span&gt;&lt;span style="color: black;"&gt;())&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: white;"&gt;&lt;/span&gt; &lt;br /&gt;
&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;System.out.println&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #2a00ff;"&gt;"ts.equals(date):&amp;nbsp;"&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;+&amp;nbsp;ts.equals&lt;/span&gt;&lt;span style="color: black;"&gt;(d&lt;/span&gt;&lt;span style="color: black;"&gt;ate&lt;/span&gt;&lt;span style="color: black;"&gt;))&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;System.out.println&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #2a00ff;"&gt;"date.equals(ts):&amp;nbsp;"&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;+ date.equals&lt;/span&gt;&lt;span style="color: black;"&gt;(ts&lt;/span&gt;&lt;span style="color: black;"&gt;))&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;br /&gt;
... Il risultato delle due System.out.println() ritorna, con un po' di sopresa:&lt;br /&gt;
&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&lt;div style="font: 13.0px Courier; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;ts.equals(date): false&lt;/div&gt;&lt;div style="font: 13.0px Courier; margin: 0.0px 0.0px 0.0px 0.0px;"&gt;date.equals(ts): true&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;p align='justify'&gt;Debuggando il codice delle due classi vediamo che la equals di Timestamp si aspetta per forza un oggetto di tipo Timestamp come argomento quindi è corretto (anche se non nel pieno rispetto del contract della equals) che la prima comparazione non vada a buon fine mentre funzioni solo la seconda, in quanto un oggetto Timestamp è un Date mentre un Date NON è un Timestamp. Ricordiamo che il contratto della equals prevede che se a.equals(b) allora b.equals(a).&lt;/p&gt;&lt;br /&gt;
Alla prossima!&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
&lt;a
href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;
&lt;img src="http://www.feedburner.com/fb/lib/images/icons/feed-icon-12x12-orange.gif" alt="original feed"/&gt;
&lt;/a&gt;
&lt;a href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;View Feed XML&lt;/a&gt;
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4914371871575337260-892849743312197664?l=stanzedimagu.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://stanzedimagu.blogspot.com/2010/03/casting-misteriosi.html</link><author>noreply@blogger.com (Marco Aguzzi)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4914371871575337260.post-7222683945798574231</guid><pubDate>Wed, 03 Mar 2010 12:52:00 +0000</pubDate><atom:updated>2010-05-23T13:57:09.398+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">java</category><category domain="http://www.blogger.com/atom/ns#">lab_eng</category><category domain="http://www.blogger.com/atom/ns#">cast</category><title>Misterious casting...</title><description>
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/h8OMWkFkEVVyVFlrj3vGp3RJ9ew/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/h8OMWkFkEVVyVFlrj3vGp3RJ9ew/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/h8OMWkFkEVVyVFlrj3vGp3RJ9ew/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/h8OMWkFkEVVyVFlrj3vGp3RJ9ew/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div align="justify" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Hi all, a little discovered I've come across made on Java 1.5... It seems there's a little difference between the behaviour of the standard java.util.Date class and the Timestamp class. The testin code reported here tries to instantiate a Calendar in order to retrieve the current date, and with that instantiates the two Date objects that, in theory, should be identical, but... &lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="left" class="java"&gt;&lt;table bgcolor="#ffffff" border="0" cellpadding="3" cellspacing="0"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td align="left" nowrap="nowrap" valign="top"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;code&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;class&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;DateCaster&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;implements&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Tryable&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;{&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;public&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;void&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;perform&lt;/span&gt;&lt;span style="color: black;"&gt;()&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;throws&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Exception&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;{&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;Calendar&amp;nbsp;calendar&amp;nbsp;=&amp;nbsp;Calendar.getInstance&lt;/span&gt;&lt;span style="color: black;"&gt;()&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;Date date&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Date&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;calendar.getTimeInMillis&lt;/span&gt;&lt;span style="color: black;"&gt;())&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;Timestamp ts =&amp;nbsp;&lt;/span&gt;&lt;span style="color: #7f0055;"&gt;&lt;b&gt;new&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;span style="color: black;"&gt;Timestamp&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: black;"&gt;calendar.getTimeInMillis&lt;/span&gt;&lt;span style="color: black;"&gt;())&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: white;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: white;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;System.out.println&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #2a00ff;"&gt;"ts.equals(date):&amp;nbsp;"&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;+&amp;nbsp;ts.equals&lt;/span&gt;&lt;span style="color: black;"&gt;(d&lt;/span&gt;&lt;span style="color: black;"&gt;ate&lt;/span&gt;&lt;span style="color: black;"&gt;))&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;&amp;nbsp;&amp;nbsp;System.out.println&lt;/span&gt;&lt;span style="color: black;"&gt;(&lt;/span&gt;&lt;span style="color: #2a00ff;"&gt;"date.equals(ts):&amp;nbsp;"&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;+ date.equals&lt;/span&gt;&lt;span style="color: black;"&gt;(ts&lt;/span&gt;&lt;span style="color: black;"&gt;))&lt;/span&gt;&lt;span style="color: black;"&gt;;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black;"&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;... the result of the two System.out.println() is, with a bit of surprise:&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="font-family: monospace;"&gt;&lt;div style="font: normal normal normal 13px/normal Courier; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;ts.equals(date): false&lt;/div&gt;&lt;/div&gt;&lt;div style="font: normal normal normal 13px/normal Courier; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;date.equals(ts): true&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div align="justify" style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Debugging the code of the two classes we see that the Timestamp equals expects an object of a Timestamp class as an argument (although not fully respecting the equals contract), so it's correct that the former comparison does not succeed while the latter does, because a Timestamp object is a Date while a Date object is NOT a Timestamp. Let's remember that the equals contract states that if a.equals(b) then b.equals.(a).&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;See you next time!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
&lt;a
href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;
&lt;img src="http://www.feedburner.com/fb/lib/images/icons/feed-icon-12x12-orange.gif" alt="original feed"/&gt;
&lt;/a&gt;
&lt;a href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;View Feed XML&lt;/a&gt;
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4914371871575337260-7222683945798574231?l=stanzedimagu.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://stanzedimagu.blogspot.com/2010/05/misterious-casting.html</link><author>noreply@blogger.com (Marco Aguzzi)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-4914371871575337260.post-1093061613376685247</guid><pubDate>Mon, 18 Jan 2010 21:49:00 +0000</pubDate><atom:updated>2010-01-18T22:49:57.263+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">lab_eng</category><category domain="http://www.blogger.com/atom/ns#">internazionalizzazione</category><title>The blog becomes bilingual!</title><description>
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/E8wn73auEDmVZ4hdtl6vjxM7uDA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/E8wn73auEDmVZ4hdtl6vjxM7uDA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/E8wn73auEDmVZ4hdtl6vjxM7uDA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/E8wn73auEDmVZ4hdtl6vjxM7uDA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;p align='justify'&gt;Hi all,&lt;br /&gt;
&lt;br /&gt;
a new little improvement for my blog: multilingual managing! As you can see, the two classic flags (hand made ones...) have popped up to distinguish between the two versions: the approach is quite simple: add a label like "english language" to all english posts, and then create a copy of the post in another language and assign to the latter the corresponding language label. If the post already has one or more label of its own, it's important not to loose them in the translation: otherwise, searches for post will have different results for different languages, which is a thing we don't want. Another little hint: if you're using a tag cloud, like the one on this blog, it's advisable to remove from the count the "language" labels. Since they're applied to all posts, they would be showed in huge size, disfiguring the rest of the cloud. For the automatic language choice, I've used a little javascript that runs as the page is loaded... but this is for the next time!&lt;br /&gt;
&lt;br /&gt;
stay tuned&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;p&gt;
&lt;a
href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;
&lt;img src="http://www.feedburner.com/fb/lib/images/icons/feed-icon-12x12-orange.gif" alt="original feed"/&gt;
&lt;/a&gt;
&lt;a href="http://feeds.feedburner.com/LeStanzeDiMagu?format=xml"&gt;View Feed XML&lt;/a&gt;
&lt;/p&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4914371871575337260-1093061613376685247?l=stanzedimagu.blogspot.com' alt='' /&gt;&lt;/div&gt;</description><link>http://stanzedimagu.blogspot.com/2010/01/blog-becomes-bilingual.html</link><author>noreply@blogger.com (Marco Aguzzi)</author><thr:total>0</thr:total></item></channel></rss>

