<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>EnricoSimonetti.com</title>
	<atom:link href="http://enricosimonetti.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://enricosimonetti.com</link>
	<description>Enrico Simonetti's Personal Blog</description>
	<lastBuildDate>Mon, 04 Apr 2011 13:32:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Cara Italia cosi’ non va</title>
		<link>http://enricosimonetti.com/2010/08/26/cara-italia-cosi%e2%80%99-non-va/</link>
		<comments>http://enricosimonetti.com/2010/08/26/cara-italia-cosi%e2%80%99-non-va/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 17:12:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Immigrazione]]></category>
		<category><![CDATA[Italia]]></category>
		<category><![CDATA[Lavoro]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Politica]]></category>

		<guid isPermaLink="false">http://enricosimonetti.com/?p=246</guid>
		<description><![CDATA[Essendo un emigrato da più di qualche anno in Australia, ogni tanto mi pongo le domande: “ma perché l’Italia non funziona?” “Da dove si potrebbe iniziare a sistemare le cose?” In realtà, più penso a possibili risposte e più cado nello sconforto. Non capisco perché ci sono paesi al mondo, che possono funzionare non dico [...]]]></description>
			<content:encoded><![CDATA[<p>Essendo un emigrato da più di qualche anno in Australia, ogni tanto mi pongo le domande: “ma perché l’Italia non funziona?” “Da dove si potrebbe iniziare a sistemare le cose?”</p>
<p>In realtà, più penso a possibili risposte e più cado nello sconforto.</p>
<p>Non capisco perché ci sono paesi al mondo, che possono funzionare non dico alla perfezione, ma in un modo accettabile, ed invece un paese con quasi infinite bellezze artistiche, storiche e naturali come l’Italia puo&#8217; funzionare cosi’ male.</p>
<p>Faccio la premessa che queste sono mie idee, in base alle esperienze personali e con le (poche) conoscenze dei fatti e situazioni che ho.</p>
<p><strong>Lavoro</strong><br />
Per risanare qualcosa, forse partirei dal settore pubblico.<br />
Recentemente in Italia hanno iniziato ad andare sulla buona strada, ed eliminare i buontemponi con poca voglia di fare.<br />
Certamente ce ne sono molti di furbi, che hanno fregato l’Italia come stato e come popolazione per un bel po’ di tempo, ma ci sono problemi maggiori.<br />
Sembra che si debbano ridefinire un po’ ruoli e mansioni all’interno del pubblico.<br />
Più mi addentro in uffici pubblici, più sembra che diversi settori si accavallino, e alla fine nessuno riesca mai a trovare l’esatto ufficio dove ottenere una certa prestazione.<br />
E’ forse per questo che abbiamo bassi tassi di disoccupazione in Italia?<br />
Creazione di decine di servizi pubblici dove le cose vengono (spero) involontariamente replicate?<br />
Perché invece non si fa piazza pulita di tutte le “brutte copie” e non ci si concentra nel migliorare le “belle copie” ottimizzandole con personale adatto e qualificato, e di giusto numero, distribuito nel territorio, in base alla popolazione ed ai bisogni?<br />
Forse questo non vale anche per Camera e Senato?<br />
Perché servono cosi’ tante persone nel nostro paese per svolgere lo stesso lavoro?<br />
Perché ci devono essere uffici sovraffollati, con gente che gioca al pc per passare il tempo (o addirittura neanche si presenta al lavoro), e uffici con deficienza di personale, che non sa dove sbattere la testa?<br />
Perché non ci sono controlli con punizioni esemplari per chi non svolge correttamente e professionalmente il proprio lavoro?<br />
Troppo garantismo.<br />
Lo so, ci sono stati decenni di lotte per riuscire ad arrivare dove siamo ora, ma al momento, io credo che abbiamo raggiunto livelli di protezione ridicoli, che portano maggiormente aspetti negativi, a causa del loro abuso, da parte di alcune persone.<br />
Basta vedere quanto e’ diventato impossibile ottenere un contratto a tempo indeterminato, e quanto e’ difficile farsi assumere se si e’ donne.<br />
I sindacati. Perché esistono i sindacati? Chi proteggono esattamente? Non si capisce che garantendo troppo, si creano problemi a tutti con il passare del tempo?<br />
Permessi di malattia utilizzati male, lo stesso vale per maternità e cassa integrazione. Per non parlare di incentivi di disoccupazione. E chi paga tutto cio? La gente che versa le tasse (che in Italia e’ ben poca).</p>
<p>Ricordiamoci che oltre al settore pubblico, esiste una gran parte del paese, che lavora su aziende private.<br />
Le aziende private, viste come vili esseri mostruosi che sfruttano le persone, in realtà danno lavoro ad altri, permettendo loro di sopravvivere.<br />
Perché ci sono persone che creano aziende?<br />
L’uomo a mio parere e’ mosso dall’appagamento, che può derivare da varie fonti, ma credo che in ambito lavorativo, forse semplificando il tutto, riassumerei in: denaro e soddisfazioni personali.<br />
Ci sono gli imprenditori, che guidati dal loro desiderio di appagamento, investono di tasca loro, per essere ulteriormente più appagati. Cosi’ facendo creano lavoro per altra gente. Perché non siamo loro riconoscenti?</p>
<p>Perché esistono i sindacati? Per proteggere i lavoratori dipendenti.<br />
Ma chi protegge le aziende?<br />
Perché prima di tutto abbiamo “i sindacati” e non “il sindacato”?<br />
Per creare più posti di lavoro replicando mansioni? Come sempre del resto.<br />
E perché i sindacati non sono qualcosa che siede nel mezzo tra aziende e lavoratori ed aiuta a correggere dispute?<br />
E’ tutta una ruota. Se un dipendente non ha appagamento dal proprio lavoro, non lo svolge correttamente, e porta l’imprenditore stesso, o il proprio superiore diretto, a non essere appagato. Perché non può essere più semplice terminare un rapporto di lavoro che non ha beneficio per entrambe le parti? Lavorare non e’ prendere un compenso, per stare al lavoro, ma prendere un compenso, dando un certo quantitativo di prestazioni in cambio.<br />
Sono entrambe le parti che dovrebbero essere ugualmente tutelate.<br />
Il dipendente, con la tutela dei propri diritti, ed il datore di lavoro, con la possibilita’ di cambiare le carte in tavola se le cose non vanno come dovrebbero.<br />
Perché e’ cosi’ difficile licenziare qualcuno? Non e’ forse il lavoro dell’imprenditore, gestire l’azienda al meglio e farla funzionare a regime?<br />
Perché e’ cosi’ facile non svolgere le proprie mansioni, e non farsi licenziare/punire in Italia?<br />
Perché e’ cosi’ facile generare assenteismo per malattia in Italia?<br />
Non e’ possibile svolgere il proprio lavoro, se ci si presenta al lavoro un giorno in meno a settimana.<br />
Perché si da tutto per garantito?<br />
Si svolge il proprio lavoro, e a lavoro svolto, si percepisce uno stipendio. It’s that easy!<br />
Perché devo poter percepire uno stipendio se non svolgo il mio lavoro correttamente con scrupolo e professionalita’?<br />
In questo, devo dire che mi trovo d’accordo con l’Australia, il posto dove sono emigrato anni fa (specifico qui, come lavoratore dipendende).<br />
Si hanno 10 giorni all’anno di malattia/permessi personali pagati, il resto lo si può prendere, ma non si viene pagati durante gli eccedenti giorni di assenza.<br />
Fortunatamente non ho problemi di salute, ma ho una assicurazione sanitaria privata, per coprire eventuali problemi a lungo termine.<br />
Perché devo pesare sul mio datore di lavoro, oppure sullo stato o su altri lavoratori, se le mie condizioni di salute non mi permettono di svolgere quantitativamente e qualitativamente le mie mansioni?<br />
Non ha senso. Ma in Italia, a quanto pare, si. Perche?</p>
<p>Ricordiamo dalla Costituzione Italiana:<br />
<em>L&#8217;Italia è una Repubblica democratica, fondata sul lavoro.</em><br />
E ancora:<br />
<em>Ogni cittadino ha il dovere di svolgere, secondo le proprie possibilità e la propria scelta, un&#8217;attività o una funzione che concorra al progresso materiale o spirituale della società.</em><br />
Ed inoltre:<br />
<em>Il lavoratore ha diritto ad una retribuzione proporzionata alla quantità e qualità del suo lavoro e in ogni caso sufficiente ad assicurare a sé e alla famiglia un&#8217;esistenza libera e dignitosa.</em></p>
<p>Non definisce esattamente quello di cui ho parlato poco fa e che non viene applicato?</p>
<p>Ricordiamoci che migliorando ed ottimizzando settore pubblico e privato, si diventerebbe più competitivi e la gente che ha effettivamente voglia di lavorare, potrebbe ottenere di più di quello che ha oggi, sia monetariamente che come avanzamento in carriera.<br />
Ovviamente, le persone che hanno poca voglia di fare, sono spaventate e soffiano nell’ombra per fare si che questo non accada, altrimenti sarebbero gli unici a rimetterci.</p>
<p><strong>Mentalità degli italiani</strong><br />
Il problema numero due dell’Italia e’ la mentalità degli italiani stessi.<br />
Siamo tutti definiti come “pizza mafia e mandolino” all’estero.<br />
E’ l’immagine che ci rappresenta in ogni angolo del globo. Lo stereotipo italiano all’estero e’ (esagerando) il mafioso seduto sotto casa, bello in carne, moro, di carnagione scura e con accento marcatamente meridionale, che riceve soldi per fare non si sa bene cosa.<br />
Perché ci piace cosi’ tanto la corruzione, il favorire qualcuno, ed il farsi favorire?<br />
Perché non siamo meritocratici in niente come popolo?<br />
E perché una persona può farsi assumere da qualche parte (anche nel settore pubblico) chiedendo all’amico del fratello del cugino? (La mentalità del “si combina”)<br />
E perché in Italia si può comprare qualsiasi cosa?<br />
Perché il medico curante può dichiarare quello che vuole (magari oltretutto con un “compenso” addizionale!) senza che nessuno lo contesti? E’ poi veramente un medico che si e’ laureato correttamente? Chi lo sa!<br />
Perché si deve pagare qualcuno per poter esercitare la propria professione liberamente e non essere minacciati?<br />
Perché ci sono migliaia di falsi invalidi che gravano sulla societa’?<br />
Perché la gente non paga regolarmente le tasse, per ottenere in cambio i servizi dallo Stato?<br />
Ho fatto dei piccoli esempi banali (e purtroppo sembrano/sono cosi’ reali!) ma dovrebbero rendere l’idea.<br />
Qui non ho altro da aggiungere.<br />
Se non vi va bene come stanno andando le cose, svegliatevi e cambiate nel vostro piccolo.</p>
<p><strong>Giustizia</strong><br />
La giustizia e’ un altro capitolo critico dell’Italia.<br />
Come sempre, parlando della replicazione delle mansioni nel pubblico, in Italia esistono millemila corpi di polizia/protezione/etc.<br />
Esercito, carabinieri, alpini, polizia, finanza, vigili urbani, municipale etc etc. e ci aggiungiamo pure la protezione civile!<br />
E ci si lamenta che non c’e’ personale da utilizzare in Italia per garantire la sicurezza?<br />
A sentire la lista dei nomi dei corpi di polizia, si ha l’impressione che un terzo degli italiani sia parte delle forze dell’ordine! Ma poi la gente non si sente sicura ed ha paura di uscire di casa in certi posti. Allora?<br />
Mi viene il voltastomaco solo a parlarne.<br />
Perché non si fanno uno o due corpi in totale, suddivisi in dipartimenti con specifiche mansioni, dove la gente viene spostata da un dipartimento all’altro in base al fabbisogno?<br />
Si ha paura ad utilizzare l’esercito per fare mansioni di protezione ordinaria. Ma cosa fanno da mattina a sera altrimenti?<br />
Se ci fossero più controlli, in Italia la gente (sia italiani, che non) si comporterebbe un po’ meglio. Alla fine non e’ questo il compito delle forze di polizia? Proteggere la popolazione e garantire rispetto delle regole?<br />
Mi sta bene che ci siano tutte queste persone nei corpi di polizia, ma non mettiamo solo i carabinieri e polizia a fare il lavoro sporco. Mettiamoli tutti. E’ una scelta di vita combattere ogni tipo di criminale giusto? Non glie l’ha mica ordinato il medico di scegliere quel tipo di lavoro.<br />
In più anche qui aggiungiamo un sacco di protezione e diritti eccessivi per i criminali. Ma lasciamo un po’ di potere di azione a questi corpi specializzati di polizia. Utilizziamo un po’ il manganello con chi non si comporta correttamente!<br />
Ho avuto qualche piccola esperienza personale, di gente impunita che si vede tutt’ora per strada.<br />
Come e’ possibile? In Italia ti incitano a compiere reati? Tanto il guadagno proveniente da attività illecite e’ generalmente elevato, e punizioni esistono solamente in casi sfortunati.<br />
Che senso ha allora il comportarsi correttamente? Creiamo miniere, lavori forzati, non carceri con televisioni e divani!<br />
Creiamo punizioni esemplari, in modo che la gente si convinca che il carcere non e’ un bel posto dove finire, anche se per qualche giorno.<br />
Facciamo pulizia della gente “sbagliata” che c’e’ nella giustizia italiana ed interpretiamo le regole allo stesso modo per tutti!<br />
Poi perché ci devono essere milioni di regole anche in contrasto l’una con l’altra?<br />
Ma riscriviamo il tutto! La nostra giustizia sembra un labirinto senza uscita.<br />
Mesi e mesi se non anni, per arrivare ad un verdetto in tribunale, con gente a piede libero nelle strade. Tante piccole leggi senza capo ne coda. Ma ci stiamo prendendo in giro da soli?<br />
Ne’ la piccola criminalità, ne’ quella organizzata spariranno se non si da un taglio netto al sistema attuale. In fin dei conti siamo d’accordo tutti che non funziona, giusto?</p>
<p><strong>Immigrazione</strong><br />
Da immigrato in un paese altamente sviluppato, posso dire che in Italia stiamo sbagliando tutto.<br />
Migliorando il sistema giudiziaro e di giustizia, le cose funzionerebbero meglio di riflesso.<br />
Non e’ questione di intolleranza o razzismo.<br />
Persone nuove, provenienti da altri stati anche disagiati, devono poter dimostrare che sono pronti ad integrarsi con il resto della popolazione, rispettando regole e contribuendo allo sviluppo del paese.<br />
Alla fine io come italiano ho dovuto fare test medici accurati (a mie spese, non gratuiti!), per provare che non sarei pesato nella societa’ (per esempio con cure mediche gratuite come tanti fanno appena arrivano in Italia). Ho dovuto fare esami accurati di lingua, sempre a mie spese, e provare con certificati di polizia da ogni singolo paese in cui ho vissuto, che ho la fedina penale intatta.<br />
Non posso biasimare queste persone, fanno quel che possono, finché glie lo lasciamo fare, ed imparano SOLAMENTE dall’italiano tipo, a comportarsi al limite delle leggi, per poi eccepire nella pratica e superare il maestro!<br />
Mea culpa!<br />
Il problema e’ che al momento la popolazione e’ stufa di quello che sta’ accadendo. Siamo davvero alla frutta!<br />
Ovviamente e’ un processo che va applicato gradualmente, altrimenti succedono cose spiacevoli per tutti. La parola chiave e’ integrazione. Al giorno d’oggi, tutti hanno praticamente diritto di vivere dovunque, l’abbiamo scelto anche noi, aderendo all’unione dell’Europa! Ma e’ sicuramente il futuro del mondo, e devo dire che potrebbe funzionare, se applicato correttamente.</p>
<p><strong>Chiesa</strong><br />
Riguardo la Chiesa cattolica, al momento ho solo una cosa da citare, presa dalla Costituzione Italiana:<br />
<em>Lo Stato e la Chiesa cattolica sono, ciascuno nel proprio ordine, indipendenti e sovrani.</em></p>
<p>Credo di essermi tolto qualche sassolino dalla scarpa anche se purtroppo non porterà a niente. Mi sono sfogato ed ho espresso cosa vorrei cambiasse in questo paese bello e ricco, ma con seri problemi strutturali.</p>
]]></content:encoded>
			<wfw:commentRss>http://enricosimonetti.com/2010/08/26/cara-italia-cosi%e2%80%99-non-va/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Company information (phone number) based on the user geolocation</title>
		<link>http://enricosimonetti.com/2010/07/18/company-information-phone-number-based-on-the-user-geolocation/</link>
		<comments>http://enricosimonetti.com/2010/07/18/company-information-phone-number-based-on-the-user-geolocation/#comments</comments>
		<pubDate>Sun, 18 Jul 2010 05:31:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Teckie]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://enricosimonetti.com/?p=227</guid>
		<description><![CDATA[The other day I got a question asked, about geolocation. How would I show a different phone number for my company&#8217;s website, based on the current user location? There are many different ways to solve this problem. Let&#8217;s analyze few of them: 1) We can use the browser language settings, detected via JavaScript and then [...]]]></description>
			<content:encoded><![CDATA[<p>The other day I got a question asked, about geolocation.</p>
<p>How would I show a different phone number for my company&#8217;s website, based on the current user location?</p>
<p>There are many different ways to solve this problem.<br />
Let&#8217;s analyze few of them:</p>
<p>1) We can use the browser language settings, detected via JavaScript and then display a different phone number based on the user&#8217;s nation.</p>
<p>2) We could instead download one of the free ip to nation database mappings that there are on the net (or use one of the ip2country services), and code some server side script  that will determine the user location.</p>
<p>3) Use <a rel="nofollow" href="http://code.google.com/apis/ajax/documentation/" onclick="return TrackClick('http%3A%2F%2Fcode.google.com%2Fapis%2Fajax%2Fdocumentation%2F','Google+JS+API')" target="_blank">Google JS API</a> (that is a sort of ip2country webservice anyway&#8230;) to determine the user location, plus JavaScript.</p>
<p>I would say that number 1 is definitely too weak.<br />
Number 2, if I have to maintain my own ip/country database it is going to be a nightmare over time, and I don&#8217;t think there are companies (or at least I&#8217;m not aware of them) big and reliable enough that can offer a proper ip2country free webservice.</p>
<p>I would definitely go for number 3 and as personal choice I would use <a rel="nofollow" href="http://jquery.com" onclick="return TrackClick('http%3A%2F%2Fjquery.com','jQuery')" target="_blank">jQuery</a> as JavaScript library.</p>
<p>To gain further flexibility I would also add a dropdown where the default country value is the one that Google chooses as user&#8217;s position (if determined at all), and the user can interact with the dropdown if necessary, displaying a different phone number/country details.</p>
<p>The sample JavaScript/HTML code to be able to achieve this functionality is attached <a href="http://enricosimonetti.com/wp-content/uploads/2010/07/user_location.html" onclick="return TrackClick('http%3A%2F%2Fenricosimonetti.com%2Fwp-content%2Fuploads%2F2010%2F07%2Fuser_location.html','here')">here</a> (right click and save as).</p>
<p>NB: It is required a local copy of jQuery (saved as jquery.js)</p>
]]></content:encoded>
			<wfw:commentRss>http://enricosimonetti.com/2010/07/18/company-information-phone-number-based-on-the-user-geolocation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iCalendar / vCalendar meeting invitation</title>
		<link>http://enricosimonetti.com/2010/06/26/icalendar-vcalendar-meeting-invitation/</link>
		<comments>http://enricosimonetti.com/2010/06/26/icalendar-vcalendar-meeting-invitation/#comments</comments>
		<pubDate>Sat, 26 Jun 2010 03:10:22 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Teckie]]></category>
		<category><![CDATA[SugarCRM]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://enricosimonetti.com/?p=203</guid>
		<description><![CDATA[Probably everybody is familiar with the calendar event invite features? If you use Microsoft Windows (with Outlook) or Mac OSX (with iCal) or just a basic browser with a GMail account and you use the calendar functionality, you would have realized, that every time you get invited or invite someone to an event, you get [...]]]></description>
			<content:encoded><![CDATA[<p>Probably everybody is familiar with the calendar event invite features?</p>
<p>If you use Microsoft Windows (with Outlook) or Mac OSX (with iCal) or just a basic browser with a GMail account and you use the calendar functionality, you would have realized, that every time you get invited or invite someone to an event, you get a basic email, that adds the recipient to the calendar event.</p>
<p>I had to write an invitation tool that was cross compatible between different platforms and integrated with <a rel="nofollow" href="http://www.sugarcrm.com" onclick="return TrackClick('http%3A%2F%2Fwww.sugarcrm.com','SugarCRM')" target="_blank">SugarCRM</a> for a customer of <a rel="nofollow" href="http://www.insightful.com.au" onclick="return TrackClick('http%3A%2F%2Fwww.insightful.com.au','InsightfulCRM')" target="_blank">InsightfulCRM</a> (Australian SugarCRM Gold Partner) where I work.</p>
<p>I started from some samples, and by reading the <a rel="nofollow" href="http://tools.ietf.org/rfc/rfc5545.txt" onclick="return TrackClick('http%3A%2F%2Ftools.ietf.org%2Frfc%2Frfc5545.txt','RFC')" target="_blank">RFC</a> of the protocol and the <a rel="nofollow" href="http://en.wikipedia.org/wiki/ICalendar" onclick="return TrackClick('http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FICalendar','iCalendar+Wikipedia')" target="_blank">iCalendar Wikipedia</a> entry.</p>
<p>According to the protocol RFC and the Wikipedia entry, the iCalendar and vCalendar seems really similar, so we can use the common items to create a meeting invite.</p>
<p>Let&#8217;s pick a basic sample so that we can run some tests on:</p>
<p><code>BEGIN:VCALENDAR<br />
VERSION:2.0<br />
CALSCALE:GREGORIAN<br />
METHOD:REQUEST<br />
BEGIN:VEVENT<br />
DTSTART:20100616T080000Z<br />
DTEND:20100616T090000Z<br />
DTSTAMP:20100616T075116Z<br />
ORGANIZER;CN=Enrico Simonetti:mailto:enrico@test.com<br />
UID:12345678<br />
ATTENDEE;PARTSTAT=NEEDS-ACTION;RSVP= TRUE;CN=Sample:mailto:sample@test.com<br />
DESCRIPTION:Complete event on http://www.sample.com/get_event.php?id=12345678<br />
LOCATION: Sydney<br />
SEQUENCE:0<br />
STATUS:CONFIRMED<br />
SUMMARY:Test iCalendar<br />
TRANSP:OPAQUE<br />
END:VEVENT<br />
END:VCALENDAR</code></p>
<p>Now, how do we send this event?<br />
It is pretty simple.<br />
We need a specific set of headers on the email, and the content of the email has to be the structured meeting code itself.<br />
(No, it is not an attachment, also if you see an attached file!)</p>
<p>The headers are exactly as below:</p>
<p><code>$headers = "From: Enrico &lt;enrico@test.com&gt;\n";<br />
$headers .= "MIME-Version: 1.0\n";<br />
$headers .= "Content-Type: text/calendar; method=REQUEST;\n";<br />
$headers .= '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;charset="UTF-8"';<br />
$headers .= "\n";<br />
$headers .= "Content-Transfer-Encoding: 7bit";</code></p>
<p><strong>NB:</strong> be REALLY careful with the spacing. Apparently calendars are really really fragile, and if you only remove a space, it will result on Outlook removing the buttons at the top of the email itself, where you can accept/reject the meeting, or/and even the attendees will disappear from the list!<br />
It really caused me a lot of headache!</p>
<p>Now we can actually send the above calendar invite, as body of the email, structuring the meeting as per above sample, inside the content of $message variable.</p>
<p><code>$subject = "Meeting Subject";<br />
$subject = html_entity_decode($subject, ENT_QUOTES, 'UTF-8');<br />
mail("sample@test.com", $subject, $message, $headers);</code></p>
<p>Of course you will have to send an email for each attendee.</p>
<p>There you go, you just invited your attendee to meeting with id &#8217;12345678&#8242;!</p>
<p>As simple as that!</p>
]]></content:encoded>
			<wfw:commentRss>http://enricosimonetti.com/2010/06/26/icalendar-vcalendar-meeting-invitation/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Ubuntu 9.10 (Karmic Koala) batch upgrades</title>
		<link>http://enricosimonetti.com/2009/11/02/ubuntu-9-10-karmic-koala-batch-upgrades/</link>
		<comments>http://enricosimonetti.com/2009/11/02/ubuntu-9-10-karmic-koala-batch-upgrades/#comments</comments>
		<pubDate>Mon, 02 Nov 2009 00:10:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Teckie]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Medibuntu]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[Upgrade]]></category>

		<guid isPermaLink="false">http://enricosimonetti.com/?p=183</guid>
		<description><![CDATA[I had the need to upgrade multiple pcs with Ubuntu 9.04 without downloading for every single instance all the files needed for the upgrade process to work. You will just need to download the &#8220;alternate&#8221; Ubuntu iso (that you can find here). Then as next step you have 2 choices, burn the cd or mount [...]]]></description>
			<content:encoded><![CDATA[<p>I had the need to upgrade multiple pcs with Ubuntu 9.04 without downloading for every single instance all the files needed for the upgrade process to work.<br />
You will just need to download the &#8220;alternate&#8221; <a rel="nofollow" href="http://www.ubuntu.com" onclick="return TrackClick('http%3A%2F%2Fwww.ubuntu.com','Ubuntu')" title="Ubuntu" target="_blank">Ubuntu</a> iso (that you can find <a href="http://releases.ubuntu.com/9.10/ubuntu-9.10-alternate-i386.iso" onclick="return TrackClick('http%3A%2F%2Freleases.ubuntu.com%2F9.10%2Fubuntu-9.10-alternate-i386.iso','ubuntu-9.10-alternate-i386.iso')" title="ubuntu-9.10-alternate-i386.iso" target="_blank">here</a>).</p>
<p>Then as next step you have 2 choices, burn the cd or mount the iso file locally as below:</p>
<p><code>sudo mount -o loop ubuntu-9.10-alternate-i386.iso /media/cdrom0</code></p>
<p>Then we can run the executable &#8220;cdromupgrade&#8221; inside the root of the cdrom:</p>
<p><code>sudo /cdrom/cdromupgrade &#038;</code></p>
<p>and then follow the normal upgrade process through the interface.</p>
<p>On upgrade complete, if you use the <a rel="nofollow" href="http://www.medibuntu.org" onclick="return TrackClick('http%3A%2F%2Fwww.medibuntu.org','Medibuntu')" title="Medibuntu" target="_blank">Medibuntu</a> repository, you will need to update the sources used and probably to update your software versions as well.<br />
You can find below the commands that you need to run, as stated on Medibuntu website:</p>
<p><code>sudo wget http://www.medibuntu.org/sources.list.d/$(lsb_release -cs).list \<br />
 --output-document=/etc/apt/sources.list.d/medibuntu.list &#038;&#038;<br />
sudo apt-get -q update &#038;&#038;<br />
sudo apt-get --yes -q --allow-unauthenticated install medibuntu-keyring &#038;&#038;<br />
sudo apt-get -q update</code></p>
<p>If it is a fresh Ubuntu install, you will probably want to install the commonly used packages (or you can find the complete list of Medibuntu packages for Karmic Koala <a rel="nofollow" href="http://packages.medibuntu.org/karmic/index.html" onclick="return TrackClick('http%3A%2F%2Fpackages.medibuntu.org%2Fkarmic%2Findex.html','Karmic+Koala+Medibuntu+packages')" title="Karmic Koala Medibuntu packages">here</a>):</p>
<p><code>sudo apt-get install ubuntu-restricted-extras libdvdcss2 w32codecs skype</code></p>
<p>if it is just an upgrade, you can run:</p>
<p><code>sudo apt-get upgrade</code></p>
<p>and that will be working things out for you.</p>
<p>Happy upgrade!</p>
]]></content:encoded>
			<wfw:commentRss>http://enricosimonetti.com/2009/11/02/ubuntu-9-10-karmic-koala-batch-upgrades/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Integration between SugarCRM and Perl using SOAP</title>
		<link>http://enricosimonetti.com/2009/10/21/integration-between-sugarcrm-and-perl-using-soap/</link>
		<comments>http://enricosimonetti.com/2009/10/21/integration-between-sugarcrm-and-perl-using-soap/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 10:58:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Teckie]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[SugarCRM]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://enricosimonetti.com/?p=143</guid>
		<description><![CDATA[I&#8217;ve been developing SugarCRM solutions for a while now at InsightfulCRM (Fonality Pty Ltd) and I never really got into interacting through SOAP with languages other than PHP until today. There are some tutorials and documentation on SugarCRM Wiki website about it, but not really for Perl, that is the programming language I&#8217;ve chosen today. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been developing <a rel="nofollow" href="http://www.sugarcrm.com" onclick="return TrackClick('http%3A%2F%2Fwww.sugarcrm.com','SugarCRM')" target="_blank" title="SugarCRM">SugarCRM</a> solutions for a while now at <a rel="nofollow" href="http://www.insightful.com.au" onclick="return TrackClick('http%3A%2F%2Fwww.insightful.com.au','InsightfulCRM+SugarCRM+Free+Trial')" onclick="return TrackClick('http%3A%2F%2Fwww.insightful.com.au','InsightfulCRM+%28Fonality+Pty+Ltd%29')" target="_blank" title="InsightfulCRM (Fonality Pty Ltd)">InsightfulCRM (Fonality Pty Ltd)</a> and I never really got into interacting through SOAP with languages other than PHP until today.</p>
<div id="attachment_170" class="wp-caption alignright" style="width: 312px;height:67px;">
<img src="http://enricosimonetti.com/wp-content/uploads/2009/10/sugarcrm_logo.gif" alt="SugarCRM" title="SugarCRM" width="302" height="62" class="size-full wp-image-170" />
</div>
<p>There are some tutorials and documentation on <a rel="nofollow" href="http://www.sugarcrm.com/wiki/index.php?title=SOAP_Documentation" onclick="return TrackClick('http%3A%2F%2Fwww.sugarcrm.com%2Fwiki%2Findex.php%3Ftitle%3DSOAP_Documentation','SugarCRM+Wiki+SOAP')" target="_blank" title="SugarCRM Wiki SOAP">SugarCRM Wiki</a> website about it, but not really for <a rel="nofollow" href="http://en.wikipedia.org/wiki/Perl" onclick="return TrackClick('http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FPerl','Perl')" title="Perl">Perl</a>, that is the programming language I&#8217;ve chosen today.</p>
<p>I&#8217;m not a &#8220;rockstar&#8221; with Perl but let&#8217;s figure this out <img src='http://enricosimonetti.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>First of all why Perl?<br />
The main reason is: you get Perl with your Linux box, without mucking around too much, in any Linux distribution and doesn&#8217;t really need too much software around it. It is multi platform and it has his own package manager <a rel="nofollow" href="http://en.wikipedia.org/wiki/CPAN" onclick="return TrackClick('http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FCPAN','CPAN')" target="_blank" title="CPAN">(CPAN)</a> to install other components.<br />
This is all that&#8217;s needed to get started!</p>
<p>So let&#8217;s start.</p>
<p>First of all, let&#8217;s define what exactly we want to achieve through <a rel="nofollow" href="http://en.wikipedia.org/wiki/SOAP" onclick="return TrackClick('http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FSOAP','SOAP')" target="_blank" title="SOAP">SOAP</a>.</p>
<p>1) We want Perl to log in to our SugarCRM instance.<br />
2) We want to create a new Case in Sugar<br />
3) We want to create a note with an attachment (file stored on the PC where the script is executed) linked to our new Case</p>
<p>The software I will write, will be running from command line, and to be safe, we will add another step before 1), to check the hostname where our SugarCRM resides is currently active, just by pinging it.</p>
<p>We will need to install some software that doesn&#8217;t really come out of the box.<br />
Usually SOAP Lite is not installed by default, so we will need to run </p>
<p><code>perl -MCPAN -e 'install SOAP::Lite'</code></p>
<p>Now we can start the real coding.</p>
<p>Step 0, write a few lines to check if the host is alive (works only if executed by root):</p>
<p><code>#!/usr/bin/perl<br />
use Net::Ping;<br />
my $p = Net::Ping->new("icmp");<br />
if ($p->ping('our.crm.com', 0.5))<br />
{<br />
&nbsp;&nbsp;print 'Alive\n';<br />
} else {<br />
&nbsp;&nbsp;print 'Dead\n';<br />
}</code></p>
<p>Now we have to use the SugarCRM SOAP login function. It requires the username and the password passed in as parameters, and it returns the session id that we will use for other SOAP calls.</p>
<p>Let&#8217;s write the login part using the necessary libraries.</p>
<p><code>use SOAP::Lite;<br />
use Data::Dumper;<br />
# For encoding notes attachment content we will need this<br />
use MIME::Base64;</code><code># Let's define some variables...<br />
my $soap_domain = 'http://www.sugarcrm.com/sugarcrm';<br />
my $soap_url = 'http://our.crm.com/soap.php';<br />
my $sugarcrm_username = 'username';<br />
# MD5 of the password<br />
my $sugarcrm_md5_password = '5f4dcc3b5aa765d61d8327deb882cf99';</code><code># Instantiate SOAP<br />
my $soap = SOAP::Lite->uri($soap_domain)->proxy($soap_url);</code><code># Hash with credentials<br />
my $user_auth = {'user_name' => $sugarcrm_username, 'password' => $sugarcrm_md5_password};</code><code># Execute the login<br />
my $result = $soap->login(SOAP::Data->value($user_auth));</code><code># We can eventually print out the result so that we understand the data structure for debug (yeah that's what I did all the time)<br />
# print(Dumper($result->result));</code><code># And finally get the session id<br />
my $session_id = $result->result->{'id'};</code><code># Now we can get the Sugar user id of the logged in user (always useful for assigning records to the right person)<br />
$result = $soap->get_user_id(SOAP::Data->value($session_id));<br />
my $sugarcrm_id = $result->result;</code></p>
<p>Now we have to complete point 2, creating the Case. For this we use the general purpose function &#8216;set_entry&#8217;.<br />
We just need to pass the session id previously generated, the module name, and an array of name and values for each field we want to fill in.</p>
<p><code># Ok let's create the Case<br />
$result = $soap->set_entry(<br />
&nbsp;&nbsp;SOAP::Data->value($session_id),<br />
&nbsp;&nbsp;SOAP::Data->value('Cases'),<br />
&nbsp;&nbsp;SOAP::Data->value(<br />
&nbsp;&nbsp;[<br />
&nbsp;&nbsp;&nbsp;&nbsp;{'name' => 'name', 'value' => 'Enrico Test'},<br />
&nbsp;&nbsp;&nbsp;&nbsp;{'name' => 'status', 'value' => 'Assigned'},<br />
&nbsp;&nbsp;&nbsp;&nbsp;{'name' => 'assigned_user_id', 'value' => $sugarcrm_id},<br />
&nbsp;&nbsp;&nbsp;&nbsp;{'name' => 'description', 'value' => 'Enrico Test'}<br />
&nbsp;&nbsp;]<br />
&nbsp;&nbsp;)<br />
);<br />
my $case_id = $result->result->{'id'};</code></p>
<p>Now we retrieve the record just created to use the case_number property. We can use the get_entry function.<br />
It needs the session, the module name, the case id and an array of fields we want back in the response.</p>
<p><code>$result = $soap->get_entry(<br />
&nbsp;&nbsp;SOAP::Data->value($session_id),<br />
&nbsp;&nbsp;SOAP::Data->value('Cases'),<br />
&nbsp;&nbsp;SOAP::Data->value($case_id),<br />
&nbsp;&nbsp;SOAP::Data->value(<br />
&nbsp;&nbsp;&nbsp;&nbsp;['case_number']<br />
&nbsp;&nbsp;)<br />
);</code><code># Hash, use ->{'key'}, array use ['0'] (Yeah this needed a bit of debugging before I got it right!)</code><code>my $case_number = $result->result->{'entry_list'}['0']->{'name_value_list'}['0']->{'value'};</code></p>
<p>It&#8217;s time for the step 3. Create a function to easily store multiple files.</p>
<p>a) Create a Note with set_entry<br />
b) Read the file<br />
c) Create an attachment for the note just created with set_note_attachment (This function can only link a file to an existing note&#8230;)</p>
<p>Here is the code:</p>
<p><code>sub create_note($$$$$)<br />
{<br />
&nbsp;&nbsp;my($soap_connection, $session_id, $filename, $display_filename, $case_id) = @_;<br />
&nbsp;&nbsp;# Check if the file exists<br />
&nbsp;&nbsp;if(-e $filename)<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Create note<br />
&nbsp;&nbsp;&nbsp;&nbsp;$result = $soap_connection->set_entry(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SOAP::Data->value($session_id),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SOAP::Data->value('Notes'),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SOAP::Data->value(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{'name' => 'name', 'value' => $display_filename},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{'name' => 'parent_id', 'value' => $case_id},<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{'name' => 'parent_type', 'value' => 'Cases'}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;]<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;$note_id = $result->result->{'id'};<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Read our file<br />
&nbsp;&nbsp;&nbsp;&nbsp;open(DAT, $filename) || die("Could not open file!");<br />
&nbsp;&nbsp;&nbsp;&nbsp;@data=<DAT>;<br />
&nbsp;&nbsp;&nbsp;&nbsp;close(DAT);<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Convert array of lines to a string<br />
&nbsp;&nbsp;&nbsp;&nbsp;$data = join('', @data);<br />
&nbsp;&nbsp;&nbsp;&nbsp;# Attach the file (The content needs to be encoded in base 64)<br />
&nbsp;&nbsp;&nbsp;&nbsp;my $resp = $soap_connection->set_note_attachment(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SOAP::Data->value($session_id),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SOAP::Data->value(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'id' => $note_id,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'file' => encode_base64($data),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'filename' => $display_filename<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;);<br />
&nbsp;&nbsp;}<br />
}</code></p>
<p>Cool! Now we have completed all three pieces that we needed, and I&#8217;m sure that I&#8217;ve covered a bit of everything on how to integrate your Perl program with SugarCRM.</p>
<p>If you are interested on having a free trial SugarCRM system and purchasing it in Australia, you can always send me an email and/or go to <a rel="nofollow" href="http://www.insightful.com.au" onclick="return TrackClick('http%3A%2F%2Fwww.insightful.com.au','InsightfulCRM+SugarCRM+Free+Trial')" onclick="return TrackClick('http%3A%2F%2Fwww.insightful.com.au','InsightfulCRM+%28Fonality+Pty+Ltd%29')" target="_blank" title="InsightfulCRM SugarCRM Free Trial">InsightfulCRM</a> website.</p>
<p>Thank you,</p>
<p>Enrico</p>
]]></content:encoded>
			<wfw:commentRss>http://enricosimonetti.com/2009/10/21/integration-between-sugarcrm-and-perl-using-soap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Asterisk FastAGI with PHP</title>
		<link>http://enricosimonetti.com/2009/04/27/asterisk-fastagi-with-php/</link>
		<comments>http://enricosimonetti.com/2009/04/27/asterisk-fastagi-with-php/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 00:37:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Teckie]]></category>
		<category><![CDATA[Asterisk]]></category>
		<category><![CDATA[trixbox]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://enricosimonetti.com/?p=126</guid>
		<description><![CDATA[Lately I&#8217;ve been involved in some work projects related to Asterisk. I had the opportunity to play with the Asterisk Gateway Interface (AGI) to see what can be done with it. In a few words, it allows you to execute scripts on an action (eg: a user calling an extension), that will interact with other [...]]]></description>
			<content:encoded><![CDATA[<p>Lately I&#8217;ve been involved in some work projects related to <a rel="nofollow" href="http://en.wikipedia.org/wiki/Asterisk_(PBX)" onclick="return TrackClick('http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FAsterisk_%28PBX%29','Asterisk')" target="_blank" title="Asterisk">Asterisk</a>.<br />
I had the opportunity to play with the <a rel="nofollow" href="http://en.wikipedia.org/wiki/Asterisk_Gateway_Interface" onclick="return TrackClick('http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FAsterisk_Gateway_Interface','Asterisk+Gateway+Interface')" target="_blank" title="Asterisk Gateway Interface">Asterisk Gateway Interface (AGI)</a> to see what can be done with it.</p>
<p>In a few words, it allows you to execute scripts on an action (eg: a user calling an extension), that will interact with other systems (eg: retrieve information from a database and store other input data) and trigger other actions.</p>
<p>First of all, given that I&#8217;m more familiar with PHP than Perl, I looked around for libraries that can interact with my loved PHP.<br />
You can get a lot of useful information at <a rel="nofollow" href="http://voip-info.org" onclick="return TrackClick('http%3A%2F%2Fvoip-info.org','Voip+Info')" target="_blank" title="Voip Info">http://voip-info.org</a>, being more specific at: <a rel="nofollow" href="http://www.voip-info.org/wiki/view/Asterisk+AGI" onclick="return TrackClick('http%3A%2F%2Fwww.voip-info.org%2Fwiki%2Fview%2FAsterisk%2BAGI','Asterisk+AGI')" target="_blank" title="Asterisk AGI">http://www.voip-info.org/wiki/view/Asterisk+AGI</a><br />
This will help you understand what can and cannot be done&#8230;</p>
<p>I used one of our company (Fonality Australia) trixbox Pro test systems for playing around with this.<br />
What I was interested on, was specifically the FastAGI. Basically call remote agi scripts that communicate with your Asterisk system via tcp sockets (more info <a rel="nofollow" href="http://www.voip-info.org/wiki/view/Asterisk+FastAGI" onclick="return TrackClick('http%3A%2F%2Fwww.voip-info.org%2Fwiki%2Fview%2FAsterisk%2BFastAGI','FastAGI')" target="_blank" title="FastAGI">here</a>).</p>
<p>This is interesting because it allows you to install software in your remote machine, without exposing your trixbox appliance to new software (even unsupported one).</p>
<p>First of all I&#8217;ve installed the phpagi library (that can be found on sourceforge at <a rel="nofollow" href="http://phpagi.sourceforge.net/" onclick="return TrackClick('http%3A%2F%2Fphpagi.sourceforge.net%2F','PHP+AGI+SourceForge')" target="_blank" title="PHP AGI SourceForge">http://phpagi.sourceforge.net/</a>) and had a look at the code.<br />
The server side part (so the one that the trixbox system will call in the next steps) will execute as a deamon with the aid of xinetd on your linux box.<br />
In my case xinetd wasn&#8217;t installed, and in a Debian flavoured linux distribution you can easily install it with &#8220;sudo apt-get install xinetd&#8221;, and of course you can get more info about xinetd at <a rel="nofollow" href="http://xinetd.org" onclick="return TrackClick('http%3A%2F%2Fxinetd.org','Xinetd')" target="_blank" title="Xinetd">http://xinetd.org</a>.</p>
<p>You can get more info on how all the the super server system is structured in the wikipedia inetd page <a rel="nofollow" href="http://en.wikipedia.org/wiki/Inetd" onclick="return TrackClick('http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FInetd','Inetd')" target="_blank" title="Inetd">here</a></p>
<p>Of course you have to make sure you have a working command line php server on your linux box (for Debian flavour: sudo apt-get install php5-cli) and test it running a command line script (php -f file.php).</p>
<p>As a first step of the installation of the library you need to unzip it somewhere in your linux box and that path will be from now on _PHP_LIBRARY_PATH<br />
You need to list the server port inside the services list (/etc/services). So at the bottom add the line &#8220;fastagi 4573/tcp&#8221;.<br />
And then to add a config entry inside /etc/xinetd.d/fastagi.<br />
For testing I&#8217;ve entered as follows:</p>
<p><code>service fastagi<br />
{<br />
&nbsp;&nbsp;socket_type  = stream<br />
&nbsp;&nbsp;user         = test<br />
&nbsp;&nbsp;group        = test<br />
&nbsp;&nbsp;server       = _PHP_LIBRARY_PATH/phpagi-fastagi.php<br />
&nbsp;&nbsp;wait         = no<br />
&nbsp;&nbsp;protocol     = tcp<br />
&nbsp;&nbsp;disable      = no<br />
}</code></p>
<p>After restarting xinetd, our server side is ready to go and will accept requests from external IPs.<br />
Just for being safe, I would ssh on a remote machine and see if we can telnet into the port of our FastAGI server and see if the server is listening (telnet IP_ADDRESS 4573).<br />
All good? Let&#8217;s go.</p>
<p>Now we create a sample agi script. I will write the php file at _PHP_LIBRARY_PATH/sample.php<br />
with just this as a content:</p>
<p><code>&lt;?php<br />
$fastagi->verbose('cool, the FastAGI server has been called!');<br />
?&gt;</code></p>
<p>Now we go inside our nice little trixbox menu interface and we add an agi script entry on the trixbox call menu with this syntax: agi://agi_server_ip_address/sample.php and save.</p>
<p>We can now ssh inside our trixbox box (or whatever asterisk based system you have) and access the asterisk cli interface with &#8220;asterisk -r&#8221; and enable the agi debugging with &#8220;agi debug&#8221;.</p>
<p>Now you can try to call your trixbox, and when you will reach the right menu steps you are calling the AGI script with&#8230; you will see the command sent from the php library to your Asterisk system!</p>
<p>Now you can have a play with the library and easily extend your phone system with new fancy features!<br />
Using the instance of the AGI object $fastagi you can call any method of the phpagi library, listed and explained in <a rel="nofollow" href="http://phpagi.sourceforge.net/phpagi2/docs/" onclick="return TrackClick('http%3A%2F%2Fphpagi.sourceforge.net%2Fphpagi2%2Fdocs%2F','PHP+AGI+Guide')" target="_blank" title="PHP AGI Guide">here</a></p>
<p>You can do a lot of other fancy stuff with AGI, like communicating via soap with other systems, accessing data, saving data, recording messages, playing messages, read and play DTMF tones, even read new messages with text to speech libraries and the other way around!</p>
<p>I guess there is no limit to the possibility it can give to your phone system!</p>
<p>See you next!</p>
]]></content:encoded>
			<wfw:commentRss>http://enricosimonetti.com/2009/04/27/asterisk-fastagi-with-php/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Another battle against IE</title>
		<link>http://enricosimonetti.com/2009/03/21/another-battle-against-ie/</link>
		<comments>http://enricosimonetti.com/2009/03/21/another-battle-against-ie/#comments</comments>
		<pubDate>Sat, 21 Mar 2009 02:49:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Teckie]]></category>
		<category><![CDATA[Browsers Compatibility]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[W3C]]></category>

		<guid isPermaLink="false">http://enricosimonetti.com/?p=108</guid>
		<description><![CDATA[As usual, I was playing around with my new project, implementing something similar to Google Suggests for country/city suggestions, after using Google Map Geolocation. Basically the idea was to see a dynamic html table underneath every country/city text field, that suggests the possible values the user is typing. Everything is generated appending child elements through [...]]]></description>
			<content:encoded><![CDATA[<p>As usual, I was playing around with my new project, implementing something similar to <a rel="nofollow" href="http://www.google.com/webhp?complete=1" onclick="return TrackClick('http%3A%2F%2Fwww.google.com%2Fwebhp%3Fcomplete%3D1','Google+Suggests')" target="_blank">Google Suggests</a> for country/city suggestions, after using <a rel="nofollow" href="http://code.google.com/apis/maps/documentation/" onclick="return TrackClick('http%3A%2F%2Fcode.google.com%2Fapis%2Fmaps%2Fdocumentation%2F','Google+Map+Geolocation')" target="_blank">Google Map Geolocation</a>.</p>
<p>Basically the idea was to see a dynamic html table underneath every country/city text field, that suggests the possible values the user is typing.</p>
<p>Everything is generated appending child elements through javascript and removing them when needed.</p>
<p>As usual no problems with Firefox, but I had to battle a lot to understand the problem with Internet Explorer.</p>
<p>Basically the code was correctly appended inside the right element, but wasn&#8217;t visible using IE!</p>
<p>I could for example alert the innerHTML of the newly created table, but still couldn&#8217;t see it on the browser output.</p>
<p>The code I was using was:</p>
<p><code><br />
// creating table<br />
var mytable = document.createElement('table');<br />
mytable.setAttribute('id','this_table_id');<br />
mytable.className = 'my_class';<br />
&nbsp;<br />
// creating row<br />
var tr = document.createElement('tr');<br />
tr.className = 'new_row';<br />
tr.onclick = function() { do_something(); }<br />
&nbsp;<br />
// creating td<br />
var td = document.createElement('td');<br />
td.innerHTML = "My Td Content";<br />
// adding the td inside the row<br />
tr.appendChild(td);<br />
&nbsp;<br />
// adding the row inside the table<br />
mytable.appendChild(tr)<br />
&nbsp;<br />
var body = document.getElementById('my_page_body');<br />
// adding the new table inside the page body<br />
body.appendChild(mytable);<br />
&nbsp;<br />
</code></p>
<p>After few tests and headaches, I had a quick look at MSDN website and noticed that a lot of examples had the &#8220;tbody&#8221; tag in each generated table, why? Let&#8217;s try&#8230;</p>
<p>It worked! Internet Explorer needs the &#8220;tbody&#8221; tag for a table created through javascript to be visible! Crazy stuff.</p>
<p>The working code will look like:</p>
<p><code><br />
// creating table<br />
var mytable = document.createElement('table');<br />
mytable.setAttribute('id','this_table_id');<br />
mytable.className = 'my_class';<br />
&nbsp;<br />
// creating tbody tag<br />
var tbody = document.createElement('tbody');<br />
&nbsp;<br />
// creating row<br />
var tr = document.createElement('tr');<br />
tr.className = 'new_row';<br />
tr.onclick = function() { do_something(); }<br />
&nbsp;<br />
// creating td<br />
var td = document.createElement('td');<br />
td.innerHTML = "My Td Content";<br />
&nbsp;<br />
// adding the td inside the row<br />
tr.appendChild(td);<br />
&nbsp;<br />
// adding the row inside the tbody<br />
tbody.appendChild(tr);<br />
&nbsp;<br />
// adding the tbody inside the table<br />
mytable.appendChild(tbody)<br />
var body = document.getElementById('my_page_body');<br />
&nbsp;<br />
// adding the new table inside the page body<br />
body.appendChild(mytable);<br />
&nbsp;<br />
</code></p>
<p>Yes, I agree that the tag tbody is part of the w3c standard, but on <a rel="nofollow" href="http://www.w3.org/TR/html401/struct/tables.html#h-11.2.1" onclick="return TrackClick('http%3A%2F%2Fwww.w3.org%2FTR%2Fhtml401%2Fstruct%2Ftables.html%23h-11.2.1','HTML+4.01+W3C+standards')" target="_blank">HTML 4.01 W3C standards</a> it is stated the following:</p>
<p><cite><br />
The TBODY start tag is always required except when the table contains only one table body and no table head or foot sections. The TBODY end tag may always be safely omitted.<br />
&nbsp;<br />
</cite></p>
<p>What does it mean? I didn&#8217;t need the tbody, and IE forced me to use it! It CAN&#8217;T be safely omitted <img src='http://enricosimonetti.com/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>Another thumb down for IE.</p>
]]></content:encoded>
			<wfw:commentRss>http://enricosimonetti.com/2009/03/21/another-battle-against-ie/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Do you Internet Explorer? I don&#8217;t.</title>
		<link>http://enricosimonetti.com/2009/03/05/do-you-internet-explorer-i-dont/</link>
		<comments>http://enricosimonetti.com/2009/03/05/do-you-internet-explorer-i-dont/#comments</comments>
		<pubDate>Thu, 05 Mar 2009 12:12:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Teckie]]></category>
		<category><![CDATA[Browsers Compatibility]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[W3C]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://enricosimonetti.com/?p=87</guid>
		<description><![CDATA[Rants I&#8217;m a web developer and what does a web developer do? He tries to make a website work almost everywhere! Everywhere? According to w3schools browsers stats, the sum of the users of the 2 browsers is about 90% of the whole users, so yeah, everywhere. Here is the problem: we generally love Firefox, we [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Rants</strong></p>
<p>I&#8217;m a web developer and what does a web developer do? He tries to make a website work almost everywhere! <img src='http://enricosimonetti.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Everywhere? According to <a rel="nofollow" href="http://www.w3schools.com/browsers/browsers_stats.asp" onclick="return TrackClick('http%3A%2F%2Fwww.w3schools.com%2Fbrowsers%2Fbrowsers_stats.asp','w3schools+browsers+stats')" target="_blank">w3schools browsers stats</a>, the sum of the users of the 2 browsers is about 90% of the whole users, so yeah, everywhere.</p>
<p>Here is the problem: we generally love <a rel="nofollow" href="http://www.mozilla.com/firefox/" onclick="return TrackClick('http%3A%2F%2Fwww.mozilla.com%2Ffirefox%2F','Firefox')" target="_blank">Firefox</a>, we really do, because there are so many tools for make your life of debugging a website heaps easier than what it would be with other browsers.</p>
<p>A couple of examples? Of course <a rel="nofollow" href="http://addons.mozilla.org/firefox/addon/1843" onclick="return TrackClick('http%3A%2F%2Faddons.mozilla.org%2Ffirefox%2Faddon%2F1843','Firebug')" target="_blank">Firebug</a> and the <a rel="nofollow" href="http://addons.mozilla.org/firefox/addon/60" onclick="return TrackClick('http%3A%2F%2Faddons.mozilla.org%2Ffirefox%2Faddon%2F60','Web+Developer')" target="_blank">Web Developer</a> addons!<br />
That&#8217;s why we generally start with Firefox to build a website, then we check it on Internet Explorer&#8230; and bam! Nothing works also if you write code/javascript following every single <a rel="nofollow" href="http://www.w3.org" onclick="return TrackClick('http%3A%2F%2Fwww.w3.org','W3C')" target="_blank">W3C</a> standard.</p>
<p>So from that point on, developing will be more like crying blood tears to understand a common way to make things work in both the 2 main browsers user by the &#8220;internet population&#8221;.</p>
<p>But let&#8217;s not get into this, there would be too much to talk about, and it would be only a personal view anyway.</p>
<p>Let&#8217;s talk about the battle I had to win today&#8230;</p>
<p><strong>Objective</strong></p>
<p>I just had to do some pretty basic stuff with checkboxes.</p>
<p>Basically the webpage had a some content (that I couldn&#8217;t modify server side) and I had to add some events through javascript on some checkboxes, to be able to display/hide some parts inside the webpage, on check/uncheck action.</p>
<p>I had to obtain the same feature of a normal &#8220;onclick&#8221; like this:</p>
<p><code>&lt;div id='myid' onclick='alert("you clicked me!")' /&gt;</code></p>
<p>&#8230; dynamically.</p>
<p><strong>Events&#8230; what about them?</strong></p>
<p>How everyone knows, Internet Explorer uses its own weird way of handling events&#8230; and yeah who says that I am right? <a rel="nofollow" href="http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-EventTarget-addEventListener" onclick="return TrackClick('http%3A%2F%2Fwww.w3.org%2FTR%2FDOM-Level-2-Events%2Fevents.html%23Events-EventTarget-addEventListener','W3C+standards')" target="_blank">W3C standards</a> of course! <img src='http://enricosimonetti.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
(and anyway I&#8217;m carrying Firefox&#8217;s flag, so there we go <img src='http://enricosimonetti.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> )</p>
<p>Anyway going back to the point, everyone knows that there are two<br />
 types of event handling:</p>
<p>1) Firefox (W3C compatible):</p>
<p><code><br />
myDomElement.addEventListener('eventType', function()<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;/* some stuff here */<br />
&nbsp;&nbsp;}, bool<br />
);<br />
</code></p>
<p>2) IE:</p>
<p><code><br />
myDomElement.attachEvent('theirEventType', function()<br />
&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;/* some stuff here */<br />
&nbsp;&nbsp;}<br />
);<br />
</code></p>
<p>&#8230;and until here all good&#8230;</p>
<p>So a basic &#8220;browser detecting&#8221; would be something like:</p>
<p><code><br />
if(window.addEventListener)<br />
{<br />
&nbsp;&nbsp;/* My W3C Friends */<br />
}<br />
else<br />
{<br />
&nbsp;&nbsp;/* Evil Browsers */<br />
}<br />
</code></p>
<p>Then I&#8217;ve added my dirty little code on it&#8230; to attach events on the 2 browsers&#8230;</p>
<p><code><br />
if(window.addEventListener)<br />
{<br />
&nbsp;&nbsp;    myElement.addEventListener('click', function()<br />
&nbsp;&nbsp;&nbsp;&nbsp;        {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;            checkboxChange(this, my_array_of_fields);<br />
&nbsp;&nbsp;&nbsp;&nbsp;        }, false<br />
&nbsp;&nbsp;    );<br />
}<br />
else<br />
{<br />
&nbsp;&nbsp;    myElement.attachEvent('onclick', function()<br />
&nbsp;&nbsp;&nbsp;&nbsp;        {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;            checkboxChange(this, my_array_of_fields);<br />
&nbsp;&nbsp;&nbsp;&nbsp;        }<br />
&nbsp;&nbsp;    );<br />
}<br />
</code></p>
<p>As said before&#8230; I have a look at the result on Firefox&#8230; and all works fine&#8230; then I move to IE&#8230; and THUNDERSTORMS!<br />
The above code (OF COURSE) doesn&#8217;t work!</p>
<p>Why? WHY???<br />
After digging for a while I&#8217;ve figured out that the name of the object &#8220;this&#8221; passed to the function</p>
<p><code>checkboxChange(...)</code></p>
<p>was not the name of the object I was passing.<br />
I couldn&#8217;t even get the right element through the ID, because of another problem there is with IE!</p>
<p><code>document.getElementById('myId')</code></p>
<p>IE gets confused, if you have the name of an element, equal to the id of another element and that (not my choice) was the case.<br />
So there we go, we have to find another solution!</p>
<p><strong>Solutions? Workarounds?</strong></p>
<p>Of course the easiest way (and also browser indipendent) is&#8230; to use a library that someone &#8220;maybe smarter than you&#8221; wrote already <img src='http://enricosimonetti.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>For example:</p>
<p><a rel="nofollow" href="http://developer.yahoo.com/yui/" onclick="return TrackClick('http%3A%2F%2Fdeveloper.yahoo.com%2Fyui%2F','YAHOO')" target="_blank">YAHOO</a> one</p>
<p><code><br />
YAHOO.util.Event.addListener(myElement, 'click', function()<br />
&nbsp;&nbsp;        {<br />
&nbsp;&nbsp;&nbsp;&nbsp;            checkboxChange(this, my_array_of_fields);<br />
&nbsp;&nbsp;        }<br />
);<br />
</code></p>
<p>or my favorite one <a rel="nofollow" href="http://mootools.net" onclick="return TrackClick('http%3A%2F%2Fmootools.net','MooTools')" target="_blank">MooTools</a></p>
<p><code><br />
myElement.addEvent('click', function()<br />
&nbsp;&nbsp;        {<br />
&nbsp;&nbsp;&nbsp;&nbsp;            checkboxChange(this, my_array_of_fields);<br />
&nbsp;&nbsp;        }<br />
);<br />
</code></p>
<p>Figuring out that there weren&#8217;t other &#8220;onclick&#8221; events in the page for the element I was applying events on, I&#8217;ve decided to don&#8217;t use any external javascript library for this project.<br />
I&#8217;ve used instead an anonymous function associated to the onclick event listener of my element as below:</p>
<p><code><br />
myElement.onclick = function ()<br />
{<br />
&nbsp;&nbsp;checkboxChange(this, my_array_of_fields);<br />
}<br />
</code></p>
<p>This&#8230; just for IE of course <img src='http://enricosimonetti.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>For Firefox instead I&#8217;m still using the addEventListener!</p>
<p>Hopefully I&#8217;ve been helpful to someone with this article <img src='http://enricosimonetti.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>See ya next!</p>
]]></content:encoded>
			<wfw:commentRss>http://enricosimonetti.com/2009/03/05/do-you-internet-explorer-i-dont/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2009 Australian Open Canoeing</title>
		<link>http://enricosimonetti.com/2009/02/22/australian-open-canoeing/</link>
		<comments>http://enricosimonetti.com/2009/02/22/australian-open-canoeing/#comments</comments>
		<pubDate>Sun, 22 Feb 2009 09:48:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Australia]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Sport]]></category>

		<guid isPermaLink="false">http://enricosimonetti.com/?p=69</guid>
		<description><![CDATA[Today in Penrith (Sydney) there was the 2009 Australian Open of Canoeing. I went there to see my friend Daniele Molmenti in his sport performance. Once again he proved to be a strong athlete, a champion, arriving first in the semifinal as well as in the final of this international competition. It is the first [...]]]></description>
			<content:encoded><![CDATA[<p>Today in Penrith (Sydney) there was the 2009 Australian Open of <a rel="nofollow" href="http://en.wikipedia.org/wiki/Canoeing" onclick="return TrackClick('http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FCanoeing','Canoeing')" target="_blank">Canoeing</a>.</p>
<p>I went there to see my friend <a rel="nofollow" href="http://www.danielemolmenti.it" onclick="return TrackClick('http%3A%2F%2Fwww.danielemolmenti.it','Daniele+Molmenti')" target="_blank">Daniele Molmenti</a> in his sport performance. Once again he proved to be a strong athlete, a champion, arriving first in the semifinal as well as in the final of this international competition.</p>
<p>It is the first time I&#8217;ve seen him live since the TV broadcast of the <a rel="nofollow" href="http://en.wikipedia.org/wiki/Canoeing_at_the_2008_Summer_Olympics_-_Men%27s_slalom_K-1" onclick="return TrackClick('http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FCanoeing_at_the_2008_Summer_Olympics_-_Men%2527s_slalom_K-1','Beijing+2008+Olympic+games')" target="_blank">Beijing 2008 Olympic games</a>.</p>
<p>I can say that I felt excitement and also a bit of pressure watching his race. Yes it was really cool to follow his achievements also for just one day, running around with my camera, trying to get the right shot for him.</p>
<p>In this post, just below, you can see as well some of my pictures of today&#8217;s race!</p>
<p>Enjoy! <img src='http://enricosimonetti.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<br/><br />
<br/><br />

<div class="ngg-galleryoverview" id="ngg-gallery-1-69">


	
	<!-- Thumbnails -->
		
	<div id="ngg-image-22" class="ngg-gallery-thumbnail-box" style="width:25%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/DSC_0048.JPG" title="Daniele Molmenti having a look at the race path." class="thickbox" rel="set_1" >
								<img title="DSC_0048.JPG" alt="DSC_0048.JPG" src="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/thumbs/thumbs_DSC_0048.JPG"  />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-23" class="ngg-gallery-thumbnail-box" style="width:25%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/DSC_0179.JPG" title="Daniele Molmenti during the K1 semi final." class="thickbox" rel="set_1" >
								<img title="DSC_0179.JPG" alt="DSC_0179.JPG" src="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/thumbs/thumbs_DSC_0179.JPG"  />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-24" class="ngg-gallery-thumbnail-box" style="width:25%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/DSC_0180.JPG" title="Daniele Molmenti K1 semi final." class="thickbox" rel="set_1" >
								<img title="DSC_0180.JPG" alt="DSC_0180.JPG" src="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/thumbs/thumbs_DSC_0180.JPG"  />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-25" class="ngg-gallery-thumbnail-box" style="width:25%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/DSC_0192.JPG" title="Daniele Molmenti K1 semi final." class="thickbox" rel="set_1" >
								<img title="DSC_0192.JPG" alt="DSC_0192.JPG" src="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/thumbs/thumbs_DSC_0192.JPG"  />
							</a>
		</div>
	</div>
	
				<br style="clear: both" />
	
 		
	<div id="ngg-image-26" class="ngg-gallery-thumbnail-box" style="width:25%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/DSC_0206.JPG" title="Daniele Molmenti K1 semi final." class="thickbox" rel="set_1" >
								<img title="DSC_0206.JPG" alt="DSC_0206.JPG" src="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/thumbs/thumbs_DSC_0206.JPG"  />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-27" class="ngg-gallery-thumbnail-box" style="width:25%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/DSC_0213.JPG" title="Daniele Molmenti K1 semi final." class="thickbox" rel="set_1" >
								<img title="DSC_0213.JPG" alt="DSC_0213.JPG" src="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/thumbs/thumbs_DSC_0213.JPG"  />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-28" class="ngg-gallery-thumbnail-box" style="width:25%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/DSC_0219.JPG" title="Best time of the path! It was of Daniele Molmenti during the K1 semi final." class="thickbox" rel="set_1" >
								<img title="DSC_0219.JPG" alt="DSC_0219.JPG" src="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/thumbs/thumbs_DSC_0219.JPG"  />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-29" class="ngg-gallery-thumbnail-box" style="width:25%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/DSC_0225.JPG" title="David Florence C2." class="thickbox" rel="set_1" >
								<img title="DSC_0225.JPG" alt="DSC_0225.JPG" src="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/thumbs/thumbs_DSC_0225.JPG"  />
							</a>
		</div>
	</div>
	
				<br style="clear: both" />
	
 		
	<div id="ngg-image-30" class="ngg-gallery-thumbnail-box" style="width:25%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/DSC_0227.JPG" title="Nice picture of Pater and Ladislav Skantar." class="thickbox" rel="set_1" >
								<img title="DSC_0227.JPG" alt="DSC_0227.JPG" src="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/thumbs/thumbs_DSC_0227.JPG"  />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-31" class="ngg-gallery-thumbnail-box" style="width:25%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/DSC_0233.JPG" title="Pavol and Peter Hochschorner. 3 gold medals in row in the last 3 Olympic games in C2! Amazing!" class="thickbox" rel="set_1" >
								<img title="DSC_0233.JPG" alt="DSC_0233.JPG" src="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/thumbs/thumbs_DSC_0233.JPG"  />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-32" class="ngg-gallery-thumbnail-box" style="width:25%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/DSC_0273.JPG" title="Our friend David Florence :) (Silver C1 in Beijing 2008), silver today as well" class="thickbox" rel="set_1" >
								<img title="DSC_0273.JPG" alt="DSC_0273.JPG" src="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/thumbs/thumbs_DSC_0273.JPG"  />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-33" class="ngg-gallery-thumbnail-box" style="width:25%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/DSC_0285.JPG" title="David Florence during the C1 final." class="thickbox" rel="set_1" >
								<img title="DSC_0285.JPG" alt="DSC_0285.JPG" src="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/thumbs/thumbs_DSC_0285.JPG"  />
							</a>
		</div>
	</div>
	
				<br style="clear: both" />
	
 		
	<div id="ngg-image-34" class="ngg-gallery-thumbnail-box" style="width:25%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/DSC_0324.JPG" title="Daniele Molmenti, K1 final." class="thickbox" rel="set_1" >
								<img title="DSC_0324.JPG" alt="DSC_0324.JPG" src="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/thumbs/thumbs_DSC_0324.JPG"  />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-35" class="ngg-gallery-thumbnail-box" style="width:25%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/DSC_0325.JPG" title="Daniele Molmenti, K1 final." class="thickbox" rel="set_1" >
								<img title="DSC_0325.JPG" alt="DSC_0325.JPG" src="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/thumbs/thumbs_DSC_0325.JPG"  />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-36" class="ngg-gallery-thumbnail-box" style="width:25%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/DSC_0334.JPG" title="Daniele Molmenti, K1 final." class="thickbox" rel="set_1" >
								<img title="DSC_0334.JPG" alt="DSC_0334.JPG" src="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/thumbs/thumbs_DSC_0334.JPG"  />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-37" class="ngg-gallery-thumbnail-box" style="width:25%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/DSC_0388.JPG" title="Daniele Molmenti, 1st at K1 2009 Australian Open in Penrith" class="thickbox" rel="set_1" >
								<img title="DSC_0388.JPG" alt="DSC_0388.JPG" src="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/thumbs/thumbs_DSC_0388.JPG"  />
							</a>
		</div>
	</div>
	
				<br style="clear: both" />
	
 		
	<div id="ngg-image-38" class="ngg-gallery-thumbnail-box" style="width:25%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/DSC_0401.JPG" title="Daniele Molmenti vertical :D" class="thickbox" rel="set_1" >
								<img title="DSC_0401.JPG" alt="DSC_0401.JPG" src="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/thumbs/thumbs_DSC_0401.JPG"  />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-39" class="ngg-gallery-thumbnail-box" style="width:25%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/DSC_0421.JPG" title="Daniele with &quot;the press&quot; :D" class="thickbox" rel="set_1" >
								<img title="DSC_0421.JPG" alt="DSC_0421.JPG" src="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/thumbs/thumbs_DSC_0421.JPG"  />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-40" class="ngg-gallery-thumbnail-box" style="width:25%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/DSC_0463.JPG" title="K1 podium." class="thickbox" rel="set_1" >
								<img title="DSC_0463.JPG" alt="DSC_0463.JPG" src="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/thumbs/thumbs_DSC_0463.JPG"  />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-41" class="ngg-gallery-thumbnail-box" style="width:25%;" >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/DSC_0469.JPG" title="K1 podium." class="thickbox" rel="set_1" >
								<img title="DSC_0469.JPG" alt="DSC_0469.JPG" src="http://enricosimonetti.com/wp-content/gallery/2009_02_22_australian_open_canoeing/thumbs/thumbs_DSC_0469.JPG"  />
							</a>
		</div>
	</div>
	
				<br style="clear: both" />
	
 	 	
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>

</p>
]]></content:encoded>
			<wfw:commentRss>http://enricosimonetti.com/2009/02/22/australian-open-canoeing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ideas? Time?</title>
		<link>http://enricosimonetti.com/2009/02/10/ideas-and-time/</link>
		<comments>http://enricosimonetti.com/2009/02/10/ideas-and-time/#comments</comments>
		<pubDate>Tue, 10 Feb 2009 11:27:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Life]]></category>

		<guid isPermaLink="false">http://enricosimonetti.com/?p=44</guid>
		<description><![CDATA[Lately it is the inspiration period&#8230; Ideas, tons of them! Mostly silly but still exciting&#8230; Some of them start immediately, some others don&#8217;t&#8230; I&#8217;m trying to line them up for a next (possibly near) future, write down all the details&#8230; but&#8230; there is ALWAYS a BUT! As usual there is not enough time to develop [...]]]></description>
			<content:encoded><![CDATA[<p>Lately it is the inspiration period&#8230;<br />
Ideas, tons of them! Mostly silly but still exciting&#8230;<br />
Some of them start immediately, some others don&#8217;t&#8230;<br />
I&#8217;m trying to line them up for a next (possibly near) future, write down all the details&#8230; but&#8230; there is <strong>ALWAYS</strong> a <em>BUT</em>! <img src='http://enricosimonetti.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>As usual there is not enough time to develop them&#8230; and it is not only a matter of &quot;time&quot;&#8230; energy&#8230; then there are a lot of people to see, going out, parties, beaches, sun (yes here it is summer right now&#8230; and a bloody hot one as well! And with this weather who really wants to sit down and code on the spare time? <img src='http://enricosimonetti.com/wp-includes/images/smilies/icon_neutral.gif' alt=':|' class='wp-smiley' />  )<br />
Then it happens that your mind doesn&#8217;t feel like coding right now, but just sit down and relax when outside is boiling hot&#8230; and there we go with the tv series&#8230; oh yeah tons tons tons of them lately! From Scrubs, after as well all Entourage and Californication&#8230; the usual Smallville, How I Met Your Mother and Heroes.</p>
<p>And there we go, the time goes, day after day, and tomorrow, will surely be another of those days, full of things to do, and full of other ideas.</p>
<p>Yep. Now I definitely believe it.<br />
Less spare time I have, more the ideas jump up and down my head during day and night!<br />
It is just not fair!</p>
]]></content:encoded>
			<wfw:commentRss>http://enricosimonetti.com/2009/02/10/ideas-and-time/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>It&#8217;s blog o&#8217; clock!</title>
		<link>http://enricosimonetti.com/2009/01/28/its-blog-o-clock/</link>
		<comments>http://enricosimonetti.com/2009/01/28/its-blog-o-clock/#comments</comments>
		<pubDate>Wed, 28 Jan 2009 08:10:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Personal]]></category>
		<category><![CDATA[Australia]]></category>
		<category><![CDATA[Life]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://enricosimonetti.com/?p=15</guid>
		<description><![CDATA[Yes, apparently I did it&#8230; It&#8217;s blog time! Stuck inside this weird little vortex, few years later the boom of blogs. What a weirdo! I will try to be constant, write something, on my spare time, (possibly in correct english) about me (probably just a little), about my teckkie stuff, interests, new old and current [...]]]></description>
			<content:encoded><![CDATA[<p>Yes, apparently I did it&#8230; It&#8217;s blog time!</p>
<p>Stuck inside this weird little vortex, few years later the boom of blogs. What a weirdo! <img src='http://enricosimonetti.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>I will try to be constant, write something, on my spare time, (possibly in correct english) about me (probably just a little), about my teckkie stuff, interests, new old and current projects, some picture of trips as well and whatever I feel like writing <img src='http://enricosimonetti.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Anyway let&#8217;s start from the introductions&#8230; who I am&#8230; and something about me in general&#8230;</p>
<p>Well my name is Enrico (yeah right it is well written everywhere!) and I&#8217;m from Italy in a quite little town in the north east of Italy (Pordenone).</p>
<p>I&#8217;ve been living all my childhood in that city, ending up in high school in Udine, then is time for uni&#8230; in Bologna where I graduated in Computer Engeneering&#8230;</p>
<p>Immediately after gratuation, comes the big decision of leaving Italy for a far far away brand new place. Sydney, where I currently live.</p>
<p>It was a bet, a joke but now it is real and I still live this adventure after few years.</p>
<p>Currently I work for <a title="Insightful Solutions" rel="nofollow" href="http://www.insightful.com.au" onclick="return TrackClick('http%3A%2F%2Fwww.insightful.com.au','Insightful+Solutions')" target="_blank">Insightful Solutions</a> (aka <a title="Fonality" rel="nofollow" href="http://www.fonality.com" onclick="return TrackClick('http%3A%2F%2Fwww.fonality.com','Fonality')" target="_blank">Fonality</a> Australia) as software developer mainly for web based applications.</p>
<p>I guess those are the main steps of my life until now (or at least that I want to talk about in here <img src='http://enricosimonetti.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  )</p>
<p>I&#8217;m sure there will be description of trips as well in this blog, but the aim (at least this is what I think right now) is to write something mainly about projects and technology.</p>
<p>Well guys&#8230; I&#8217;ve written enough for this first post&#8230;</p>
<p>I guess&#8230; write to you soon!</p>
<p>Enrico</p>
]]></content:encoded>
			<wfw:commentRss>http://enricosimonetti.com/2009/01/28/its-blog-o-clock/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

