<?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>Vita di un sys-admin &#187; Informatica</title>
	<atom:link href="http://blog.angelofailla.com/category/informatica/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.angelofailla.com</link>
	<description>Storie, esperienze e pensieri da Dublino.</description>
	<lastBuildDate>Sun, 14 Aug 2011 22:11:12 +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>Che futuro ci dobbiamo aspettare?</title>
		<link>http://blog.angelofailla.com/2011/08/14/che-futuro-ci-dobbiamo-aspettare/</link>
		<comments>http://blog.angelofailla.com/2011/08/14/che-futuro-ci-dobbiamo-aspettare/#comments</comments>
		<pubDate>Sun, 14 Aug 2011 22:11:12 +0000</pubDate>
		<dc:creator>pallotron</dc:creator>
				<category><![CDATA[Informatica]]></category>
		<category><![CDATA[Lavoro]]></category>
		<category><![CDATA[carriera]]></category>
		<category><![CDATA[futuro]]></category>
		<category><![CDATA[informatica]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[pensione]]></category>
		<category><![CDATA[vecchiaia]]></category>

		<guid isPermaLink="false">http://blog.angelofailla.com/?p=2378</guid>
		<description><![CDATA[Salve lettori, (a proposito: c&#8217;e&#8217; ancora qualcuno che legge?) Qualche giorno fa sono stato colpito da questo articolo che ho letto su Slashdot sulla sezione &#8220;ask Slashdot&#8221;. Il titolo mi ha attirato immediatamente: &#8220;Sono troppo vecchio per imparare un nuovo linguaggio di programmazione?&#8221;. La domanda se la pone un lettore di Slashdot, un quarantenne con 25 [...]]]></description>
			<content:encoded><![CDATA[<p>Salve lettori, (a proposito: c&#8217;e&#8217; ancora qualcuno che legge?)</p>
<p>Qualche giorno fa sono stato colpito da <a title="Am I too old to learn a new programming language" href="http://ask.slashdot.org/story/11/08/12/1433239/Ask-Slashdot-Am-I-Too-Old-To-Learn-New-Programming-Languages" target="_blank">questo articolo</a> che ho letto su Slashdot sulla sezione &#8220;ask Slashdot&#8221;. Il titolo mi ha attirato immediatamente: <em>&#8220;Sono troppo vecchio per imparare un nuovo linguaggio di programmazione?&#8221;.</em></p>
<p>La domanda se la pone un lettore di Slashdot, un quarantenne con 25 di anni di esperienza lavorativa alle spalle. La domanda in se&#8217; non e&#8217; tanto originale: d&#8217;altronde chi tra di noi non si e&#8217; posto gia&#8217; simili domande? Quello che mi ha colpito e&#8217; il primissimo commento di un tale che riporto qui per la cronaca, anche per non perderlo (magari tra 10 anni mi ricapita di rileggerlo per vedere se la profezia si e&#8217; avverata):</p>
<blockquote><p>I&#8217;m 55, a programmer, and I&#8217;ve been out of work for two years. I&#8217;ve had plenty of interviews, but no job offers. Here&#8217;s my take on all of this: I&#8217;m too old to be a programmer. I&#8217;ll put my &#8220;management hat&#8221; on and tell you why:</p>
<p>1. I&#8217;m old. One 5 hour energy drink revvs up your basic 20 year old code monkey all day. I need a saline drip with caffeine in it all day to keep going.<br />
2. I&#8217;m expensive. I have 30 years of experience in the &#8216;biz and a masters degree in CS. I&#8217;m not cheap. You could hire two 25 year olds for what I&#8217;m asking.<br />
3. (and what I consider to be my greatest failing in the corporate world) I&#8217;ve seen all the tricks. I&#8217;ve been exposed to every nasty little mindgame management has at it&#8217;s disposal. And sometimes I have the bad manners to call people on it. This is called &#8220;having a bad attitude&#8221;.</p>
<p>So when I compete against 20-somethings in the worst economy since 1929 (I hesitate to say the worst economy ever), I lose. I should have made the leap to management when I had the chance, not because I would have loved management (I would have had to manage assholes like me, after all ;), but because at 40 you have TWENTY YEARS LEFT. The years go by really, really fast. You should really start thinking about a soft place to land when you&#8217;re 60 now, because if you aren&#8217;t in line to be a VP or a Director you ain&#8217;t gonna make it at this point.</p>
<p>The suggestion to &#8220;Follow Your Bliss&#8221; only works in an economy that&#8217;s not run by sociopaths. Hell, it only works in a country that&#8217;s not run by sociopaths. Strike one strike two. Tighten your belt, put as much money away as you can, and make sure you keep your health up. Because the era of &#8220;company loyalty&#8221; is over, COBRA for a family costs as much as your mortgage, and finding a new job is going to be a real challenge.</p>
<p>Other than that, have a nice day! :D</p></blockquote>
<p>L&#8217;autore del commento, ma anche qualche altro commentatore piu&#8217; sotto nei commenti, pare vedere nella carriera manageriale l&#8217;unico sbocco che un 40enne possa vedere nella sua carriera. Voi che ne pensate?</p>
<p>Io ci ho rimuginato sopra ultimamente anche complice un periodo di pensieri attorno alla senilita&#8217; in cui mi ritrovo, in questi due anni ho assistito ad alcune scene poco piacevoli che hanno coinvolto amici stretti e non che mi hanno ricordato che la nostra vita non e&#8217; infinita.</p>
<p>L&#8217;articolo e i commenti dei lettori sono un grande input a riflettere sul futuro, almeno nella sua sfaccettatura lavorativa.</p>
<p>Sono ancora nei 20-something per poco e lavoro da quando ne ho 18, con buoni risultati solo negli ultimi 5 anni. La mia carriera professionale migliora ogni anno che passa (dovrei scrivere un articolo sui miei primi 6 mesi in Facebook e probabilmente lo faro&#8217; quanto prima), mi trovo in uno dei migliori ambienti lavoriativi dove un informatico possa ritrovarsi.</p>
<p>Della capacita&#8217; di imparare non mi preoccupo tanto, penso che il giorno in cui finiro&#8217; di imparare mi potro&#8217; considerare morto:sono sempre stato in grado di andare avanti da autodidatta e ho sempre trovato interessi e cose da imparare, anche aldila&#8217; dell&#8217;informatica (fotografia, arte bianca, cucina, etc), e sinceramente benedico il giorno che ho deciso di lasciare l&#8217;universita&#8217;.</p>
<p>Non credo di aver problemi a ritrovarmi 40-enne in mezzo a un mondo di 20-enni, almeno non credo sara&#8217; un problema mio, magari il problema sara&#8217; loro, dei 20-enni che si sentiranno a disagio a lavorare con un 40-enne intendo&#8230;</p>
<p>Per quanto riguarda la carriera manageriale, non so, non ci sono portato, ne mai ci saro&#8217;, sono un tecnico, mi piace sporcarmi le mani coi problemi pratici invece di dire alla gente quello che deve fare, o assicurarsi che lo facciano, o mettermi nel politichese.</p>
<p>La scorsa settimana a lavoro ci hanno fatto fare un test attitudinale per trovare i maggiori 5 punti di forza in ogni componente del nostro team. La cosa interessante che abbiamo notato in tutti noi e&#8217; che siamo un gruppo molto basato sul data analysis, learning driven, e tutto il resto, ma con poche doti comunicative o comunque altre doti di public relations, la cosa molto simpatica e&#8217; che il nostro manager ha avuto un risultato completamente opposto, meno tecnico e molto piu&#8217; comunicativo.</p>
<p>In piu&#8217; lavoro in una societa&#8217; molto engineering-centric e molto orizzontale, i manager ci sono, ma sono dei semplici mediatori, le decisioni vengono lasciate ai tecnici, e piu&#8217; che altro essi funzionano come scudi o punti di contatto quando e&#8217; necessario buttarsi nel politichese aziendale. Io  vedo un futuro da technical specialist. Ma non so, si vedra&#8217;.</p>
<p>Ci sono anche posizioni di mezzo tipo team/tech leader o senior engineer in cui ti sporchi ancora le mani ma nello stesso tempo sei buttato in mezzo a riunioni dove si decide che percorso prendere, oppure devi dirigere un team di engineers.</p>
<p>Penso che l&#8217;incertezza vada combattuta con diverse azioni strategiche:</p>
<ul>
<li>migliorare la propria capacita&#8217; di risparmio (visto che probabilmente non ci sara&#8217; una pensione adeguata per noi lavoratori del presente);</li>
<li>ottimizzare le spese;</li>
<li>vedere un piano pensione? qualcuno dei lettori sa consigliarmi in questo merito?</li>
<li>concentrarsi in campi dove la domanda e&#8217; grande ma dove le competenze sono difficili da trovare, in modo tale da avere poca concorrenza;</li>
</ul>
<div>Chissa&#8217; come saro&#8217; messo da qui a 10 anni. Saluti e buon ferragosto, io lo passo sul divano scrivendo quello ceh avete appena letto e a guardare la TV aspettando le ferie che inizieranno il 26 Agosto <img src='http://blog.angelofailla.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </div>
<img src="http://blog.angelofailla.com/?ak_action=api_record_view&id=2378&type=feed" alt="" /><p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.angelofailla.com%2F2011%2F08%2F14%2Fche-futuro-ci-dobbiamo-aspettare%2F&amp;title=Che%20futuro%20ci%20dobbiamo%20aspettare%3F" id="wpa2a_2"><img src="http://blog.angelofailla.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.angelofailla.com/2011/08/14/che-futuro-ci-dobbiamo-aspettare/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>Highlight text on the fly thanks to terminfo and sed.</title>
		<link>http://blog.angelofailla.com/2011/06/27/highlight-text-on-the-fly-thanks-to-terminfo-and-sed/</link>
		<comments>http://blog.angelofailla.com/2011/06/27/highlight-text-on-the-fly-thanks-to-terminfo-and-sed/#comments</comments>
		<pubDate>Mon, 27 Jun 2011 18:36:02 +0000</pubDate>
		<dc:creator>pallotron</dc:creator>
				<category><![CDATA[Informatica]]></category>
		<category><![CDATA[Lavoro]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[highlight]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[sed]]></category>
		<category><![CDATA[terminfo]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://blog.angelofailla.com/?p=2337</guid>
		<description><![CDATA[A colleague today was looking for a way to pipe something to a command that highlights particular strings of text, keeping intact the stdin, similar to what you can see on some modern distros, ie Gentoo. Grep is not the way as it only prints the lines which contain the pattern that we are looking [...]]]></description>
			<content:encoded><![CDATA[<p>A colleague today was looking for a way to pipe something to a command that highlights particular strings of text, keeping intact the stdin, similar to what you can see on some modern distros, ie Gentoo.</p>
<p>Grep is not the way as it only prints the lines which contain the pattern that we are looking for.</p>
<p>While there are a bunch of tools that can do that, like supercat, etc. I felt no need to install additional packages for something you can do with few lines of bash and knowing terminal capabilities.</p>
<p>Therefore I wrote this small script, put it in the PATH env variable. The script uses sed and makes use of the terminfo database and of the terminal capabilities to color the text, here it is in case you find it useful:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
&nbsp;
<span style="color: #007800;">red</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span>tput bold;tput setaf <span style="color: #000000;">1</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
<span style="color: #007800;">normal</span>=$<span style="color: #7a0874; font-weight: bold;">&#40;</span>tput sgr0<span style="color: #7a0874; font-weight: bold;">&#41;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #c20cb9; font-weight: bold;">read</span> line; <span style="color: #000000; font-weight: bold;">do</span>
  <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$line</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">sed</span> <span style="color: #660033;">-e</span> <span style="color: #ff0000;">&quot;s/\($1\)/<span style="color: #007800;">$red</span>\1<span style="color: #007800;">$normal</span>/&quot;</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></td></tr></table></div>

<p>If you don&#8217;t like red just read `man tput` and read <a href="http://wiki.bash-hackers.org/scripting/terminalcodes">this link</a> about terminal codes.</p>
<p>Example of usage:</p>
<p><a href="http://blog.angelofailla.com/wp-content/uploads/2011/06/highlight.jpg"><img src="http://blog.angelofailla.com/wp-content/uploads/2011/06/highlight.jpg" alt="" title="highlight" width="607" height="284" class="aligncenter size-full wp-image-2343" /></a></p>
<p>It also accept regexps (in sed syntax, not perl syntax), for example:</p>
<p><code><br />
$ sudo tail -f /var/log/system.log | highlight [Ss]potify<br />
</code></p>
<img src="http://blog.angelofailla.com/?ak_action=api_record_view&id=2337&type=feed" alt="" /><p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.angelofailla.com%2F2011%2F06%2F27%2Fhighlight-text-on-the-fly-thanks-to-terminfo-and-sed%2F&amp;title=Highlight%20text%20on%20the%20fly%20thanks%20to%20terminfo%20and%20sed." id="wpa2a_4"><img src="http://blog.angelofailla.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.angelofailla.com/2011/06/27/highlight-text-on-the-fly-thanks-to-terminfo-and-sed/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>RSS-Bot</title>
		<link>http://blog.angelofailla.com/2011/01/20/rss-bot/</link>
		<comments>http://blog.angelofailla.com/2011/01/20/rss-bot/#comments</comments>
		<pubDate>Thu, 20 Jan 2011 23:06:22 +0000</pubDate>
		<dc:creator>pallotron</dc:creator>
				<category><![CDATA[Informatica]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[bot]]></category>
		<category><![CDATA[cpan]]></category>
		<category><![CDATA[irc]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://blog.angelofailla.com/?p=2231</guid>
		<description><![CDATA[Ho scritto questa cazzata un po&#8217; di tempo fa a lavoro nel tentativo (non riuscito) di migliorare un po&#8217; di comunicazione interna intra-dipartimentale e rendere l&#8217;azienda un posto piu&#8217; geek dove lavorare. Serviva un luogo dove tutti potessero stare per lavorare insieme a delle robe, con un bot che stampasse nei diversi canali ticket di [...]]]></description>
			<content:encoded><![CDATA[<p>Ho scritto questa cazzata un po&#8217; di tempo fa a lavoro nel tentativo (non riuscito) di migliorare un po&#8217; di comunicazione interna intra-dipartimentale e rendere l&#8217;azienda un posto piu&#8217; geek dove lavorare. Serviva un luogo dove tutti potessero stare per lavorare insieme a delle robe, con un bot che stampasse nei diversi canali ticket di nagios, jira e altre robe basate su RSS feed. Non doveva essere ne&#8217; Skype, ne&#8217; qualcosa XMPP based (perche&#8217; le stanze in XMPP sono un casino da creare). Ho proposto il classico server IRC + questo bot. Cosa c&#8217;e&#8217; di meglio di IRC? <img src='http://blog.angelofailla.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  <strong>La proposta non e&#8217; stata recepita ovviamente&#8230;</strong></p>
<p>Magari a qualcuno serve e/o puo&#8217; prenderci spunto per fare qualcosa di migliore o diverso ma sempre basato su irc, ho messu su un po&#8217; di codice (non che sia poi il massimo) sul mio <a href="https://github.com/pallotron/rssbot">GitHUB a questa URL</a>.</p>
<p>Il bot legge un file YAML dove si possono specificare una serie di feed rss che poi possono essere associati a piu&#8217; canali, in modo tale che quando qualcosa di nuovo viene postato su un feed il bot printi un summary su ogni canale a cui e&#8217; associato.</p>
<p>Il codice e&#8217; molto basic, giusto un proof of concept che ho messo su&#8217;, e non vuole essere niente di performante, infatti dopo un po&#8217; di feed le prestazioni fanno un po&#8217; schifo <img src='http://blog.angelofailla.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Immagino che per tanti feed tocchi passare ai thread. Magari glieli aggiungo, oppure magari provo a farlo in Python visto che sto imparando&#8230;</p>
<p>Uso un CPAN module chiamato <a href="http://search.cpan.org/~hinrik/Bot-BasicBot-0.84/lib/Bot/BasicBot.pm">Bot::BasicBot</a>, basta solo estendere la sua classe e implementare il proprio codice per avere qualcosa di basic.</p>
<p>Alla prossima</p>
<img src="http://blog.angelofailla.com/?ak_action=api_record_view&id=2231&type=feed" alt="" /><p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.angelofailla.com%2F2011%2F01%2F20%2Frss-bot%2F&amp;title=RSS-Bot" id="wpa2a_6"><img src="http://blog.angelofailla.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.angelofailla.com/2011/01/20/rss-bot/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Setting up WordPress Multisite on Debian 5.0 (lenny)</title>
		<link>http://blog.angelofailla.com/2010/12/29/setting-up-wordpress-multisite-on-debian-5-0-lenny/</link>
		<comments>http://blog.angelofailla.com/2010/12/29/setting-up-wordpress-multisite-on-debian-5-0-lenny/#comments</comments>
		<pubDate>Wed, 29 Dec 2010 18:09:35 +0000</pubDate>
		<dc:creator>pallotron</dc:creator>
				<category><![CDATA[English posts]]></category>
		<category><![CDATA[Informatica]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[installation]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[multisite]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp3]]></category>

		<guid isPermaLink="false">http://blog.angelofailla.com/?p=2095</guid>
		<description><![CDATA[This post explains how to install WordPress 3.x on a Debian lenny and to set up a multisite installation on your Debian server. All the blogs will log into the same file /var/log/apache2/access.log; the first column will be the blog host and port (see the LogFormat configured below). This chapter is based on information collected [...]]]></description>
			<content:encoded><![CDATA[<p>This post explains how to install WordPress 3.x on a Debian lenny and to set up a multisite installation on your Debian server.</p>
<p>All the blogs will log into the same file <code>/var/log/apache2/access.log</code>; the first column will be the blog host and port (see the LogFormat configured below).</p>
<p>This chapter is based on information collected at http://codex.wordpress.org/Create_A_Network and in <code>/usr/share/doc/wordpress/README.Debian</code>.</p>
<p>All WordPress blogs will use the same shared PHP code in <code>/usr/share/wordpress</code>.</p>
<p><strong>Assumptions</strong></p>
<ul>
<li>Main website will be http://domain.com</li>
<li>Blogs will be under http://${blogname}.domain.com</li>
</ul>
<p>File uploaded into the main blog (www.domain.com) will be stored in <code>/srv/www/wp-uploads/domain.com/%year/%month/</code></p>
<p>Files uploaded into the <code>*.domain.com</code> blogs will be stored in <code>/usr/share/wordpress/wp-content/blogs.dir/${blog_id}/files/%year/%month/</code>, where <code>${blog_id}</code> is the numeric id of the blog, as managed by the Multisite feature.</p>
<p><strong>Configuration of Debian lenny-backports repository and installation</strong></p>
<p>WordPress 3.x is not in lenny so we have to use the backport repository.<br />
Excute this as root:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;deb http://backports.debian.org/debian-backports lenny-backports main&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>apt<span style="color: #000000; font-weight: bold;">/</span>sources.list
&nbsp;
<span style="color: #c20cb9; font-weight: bold;">cat</span> <span style="color: #000000; font-weight: bold;">&lt;&lt;</span>EOF <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>apt<span style="color: #000000; font-weight: bold;">/</span>preferences
Package: <span style="color: #000000; font-weight: bold;">*</span>
Pin: release <span style="color: #007800;">a</span>=lenny-backports
Pin-Priority: <span style="color: #000000;">200</span>
EOF
&nbsp;
<span style="color: #c20cb9; font-weight: bold;">apt-get</span> update
<span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #660033;">-t</span> lenny-backports <span style="color: #c20cb9; font-weight: bold;">install</span> wordpress</pre></div></div>

<p><strong>Installation of non free swf plugin</strong></p>
<p>As stated in <code>/usr/share/doc/wordpress/README.Debian</code> WordPress originally comes with a Flash-based tool that allows to upload files. However, that tool violates the Debian Policy, as stated in the<br />
bug #591195. That is why this tool is not shipped with the Debian package anymore. If you want to enable this feature, you need to install the Flash file yourself with the following command:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">wget</span> <span style="color: #660033;">-O</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span>wordpress<span style="color: #000000; font-weight: bold;">/</span>wp-includes<span style="color: #000000; font-weight: bold;">/</span>js<span style="color: #000000; font-weight: bold;">/</span>swfupload<span style="color: #000000; font-weight: bold;">/</span>swfupload.swf http:<span style="color: #000000; font-weight: bold;">//</span>core.svn.wordpress.org<span style="color: #000000; font-weight: bold;">/</span>branches<span style="color: #000000; font-weight: bold;">/</span><span style="color: #000000;">3.0</span><span style="color: #000000; font-weight: bold;">/</span>wp-includes<span style="color: #000000; font-weight: bold;">/</span>js<span style="color: #000000; font-weight: bold;">/</span>swfupload<span style="color: #000000; font-weight: bold;">/</span>swfupload.swf</pre></div></div>

<p><strong>Configure your DNS server</strong></p>
<p>Add the following records in your zone (I suppose you know how to deal with your DNS zone):</p>

<div class="wp_syntax"><div class="code"><pre class="bind" style="font-family:monospace;">; wp multisite
$ORIGIN        IN A       ${IP}
www            IN A       ${IP}
*.domain.com.  IN CNAME   www</pre></div></div>

<p><strong>Apache configuration</strong></p>
<p>Configure the <code>vhost_combined</code> log format in <code>/etc/apache2/apache2.conf</code> modifying the default one:</p>

<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;"><span style="color: #00007f;">LogFormat</span> <span style="color: #7f007f;">&quot;%{Host}i:%p %h %l %u %t <span style="color: #000099; font-weight: bold;">\&quot;</span>%r<span style="color: #000099; font-weight: bold;">\&quot;</span> %&gt;s %O <span style="color: #000099; font-weight: bold;">\&quot;</span>%{Referer}i<span style="color: #000099; font-weight: bold;">\&quot;</span> <span style="color: #000099; font-weight: bold;">\&quot;</span>%{User-Agent}i<span style="color: #000099; font-weight: bold;">\&quot;</span>&quot;</span> vhost_combined</pre></div></div>

<p>Configure apache in <code>/etc/apache2/sites-available/wordpress-multisite</code> :</p>

<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;">&lt;<span style="color: #000000; font-weight:bold;">VirtualHost</span> *:<span style="color: #ff0000;">80</span>&gt;
<span style="color: #00007f;">UseCanonicalName</span>    <span style="color: #0000ff;">Off</span>
&nbsp;
<span style="color: #00007f;">ServerAlias</span> *.domain.com domain.com
<span style="color: #00007f;">ServerName</span> www.domain.com
<span style="color: #00007f;">DocumentRoot</span> /srv/www/domain.com/
&nbsp;
<span style="color: #00007f;">Options</span> <span style="color: #0000ff;">All</span>
<span style="color: #00007f;">ServerAdmin</span> you@domain.com
&nbsp;
<span style="color: #adadad; font-style: italic;"># Store uploads of www.domain.com in /srv/www/wp-uploads/$0</span>
<span style="color: #00007f;">RewriteEngine</span> <span style="color: #0000ff;">On</span>
<span style="color: #00007f;">RewriteRule</span> ^/wp-uploads/(.*)$ /srv/www/wp-uploads/%{HTTP_HOST}/$1
&nbsp;
&lt;<span style="color: #000000; font-weight:bold;">Directory</span> /&gt;
        <span style="color: #00007f;">Options</span> <span style="color: #0000ff;">FollowSymLinks</span>
        <span style="color: #00007f;">AllowOverride</span> <span style="color: #0000ff;">All</span>
&lt;/<span style="color: #000000; font-weight:bold;">Directory</span>&gt;
&nbsp;
<span style="color: #00007f;">CustomLog</span> /var/log/apache2/access.log vhost_combined
&nbsp;
<span style="color: #adadad; font-style: italic;"># this is needed when activating multisite, WP needs to to a </span>
<span style="color: #adadad; font-style: italic;"># fopen(&quot;http://randomname.domain.com&quot;) to verify</span>
<span style="color: #adadad; font-style: italic;"># that apache is correctly configured</span>
<span style="color: #00007f;">php_admin_flag</span> allow_url_fopen <span style="color: #0000ff;">on</span>
&nbsp;
&lt;/<span style="color: #000000; font-weight:bold;">VirtualHost</span>&gt;</pre></div></div>

<p>Configure <code>/etc/wordpress/htaccess</code>:</p>

<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;">&lt;<span style="color: #000000; font-weight:bold;">IfModule</span> mod_rewrite.c&gt;
<span style="color: #00007f;">RewriteEngine</span> <span style="color: #0000ff;">On</span>
<span style="color: #00007f;">RewriteBase</span> /
<span style="color: #00007f;">RewriteRule</span> ^index\.php$ - [L]
<span style="color: #adadad; font-style: italic;">## uploaded files</span>
<span style="color: #00007f;">RewriteRule</span> ^files/(.+) wp-<span style="color: #0000ff;">includes</span>/ms-files.php?file=$1 [L]
<span style="color: #adadad; font-style: italic;">## real files dealt directly</span>
<span style="color: #00007f;">RewriteCond</span> %{REQUEST_FILENAME} -f [OR]
<span style="color: #00007f;">RewriteCond</span> %{REQUEST_FILENAME} -d
<span style="color: #00007f;">RewriteRule</span> ^ - [L]
<span style="color: #adadad; font-style: italic;">## other go through index.php</span>
<span style="color: #00007f;">RewriteRule</span> . index.php [L]
&lt;/<span style="color: #000000; font-weight:bold;">IfModule</span>&gt;</pre></div></div>

<p>Enable the config executing this as root:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">a2ensite wordpress-multisite
a2enmod rewrite <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> a2enmod vhost_alias
<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>apache2 restart</pre></div></div>

<p><strong>Setting some permissions</strong></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># required to allow the main site to upload content</span>
<span style="color: #c20cb9; font-weight: bold;">chown</span> www-data <span style="color: #000000; font-weight: bold;">/</span>srv<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #c20cb9; font-weight: bold;">chown</span> www-data <span style="color: #000000; font-weight: bold;">/</span>srv<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># required to allow subdomains site to upload content</span>
<span style="color: #c20cb9; font-weight: bold;">chgrp</span> www-data <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span>wordpress<span style="color: #000000; font-weight: bold;">/</span>wp-content<span style="color: #000000; font-weight: bold;">/</span>blogs.dir<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #c20cb9; font-weight: bold;">chmod</span> g+<span style="color: #c20cb9; font-weight: bold;">w</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span>wordpress<span style="color: #000000; font-weight: bold;">/</span>wp-content<span style="color: #000000; font-weight: bold;">/</span>blogs.dir<span style="color: #000000; font-weight: bold;">/</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># required in order to be able to install/update themes/plugins </span>
<span style="color: #666666; font-style: italic;"># from the webgui (only on the main site)</span>
<span style="color: #c20cb9; font-weight: bold;">chown</span> <span style="color: #660033;">-R</span> www-data:www-data <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span>wordpress<span style="color: #000000; font-weight: bold;">/</span>wp-content<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #c20cb9; font-weight: bold;">chown</span> <span style="color: #660033;">-R</span> www-data:www-data <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span>wordpress<span style="color: #000000; font-weight: bold;">/</span>wp-admin<span style="color: #000000; font-weight: bold;">/</span></pre></div></div>

<p><strong>Creating main site</strong></p>
<p>At this stage we can create the main site using this bash script:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">bash</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>share<span style="color: #000000; font-weight: bold;">/</span>doc<span style="color: #000000; font-weight: bold;">/</span>wordpress<span style="color: #000000; font-weight: bold;">/</span>examples<span style="color: #000000; font-weight: bold;">/</span>setup-mysql <span style="color: #660033;">-n</span> main domain.com</pre></div></div>

<p>This script creates the DB &#038; tables and it also creates a file called <code>/etc/wordpress/config-domain.com.php</code>.</p>
<p>You should end up with the following files:</p>
<ul>
<li><code>/etc/wordpress/config-domain.com.php</code>
</li>
<li><code>/srv/www/domain.com</code> symlink to -> <code>/usr/share/wordpress</code>
</li>
<li><code>/srv/www/wp-uploads/domain.com/</code></li>
</ul>
<p><strong>Activating Network (aka multisite)</strong></p>
<p>At this stage you should log into http://domain.com and follow the on screen instructions.<br />
Once you are in the backend you can than click into the &#8220;Tools -> Network&#8221; link and enable the mulsite, this will create some tables in your db and it will ask you to copy&#038;paste some lines into <code>/etc/wordpress/config-domain.com.php</code>:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'SUBDOMAIN_INSTALL'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$base</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'/'</span><span style="color: #339933;">;</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'DOMAIN_CURRENT_SITE'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'domain.com'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'PATH_CURRENT_SITE'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'/'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'SITE_ID_CURRENT_SITE'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'BLOG_ID_CURRENT_SITE'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">1</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'AUTH_KEY'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'blabla'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'SECURE_AUTH_KEY'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'blabla'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'LOGGED_IN_KEY'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'blabla'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'NONCE_KEY'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'blabla'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'AUTH_SALT'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'blabla'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'SECURE_AUTH_SALT'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'blabla'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'LOGGED_IN_SALT'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'blabla'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'NONCE_SALT'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'blabla'</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #990000;">define</span><span style="color: #009900;">&#40;</span> <span style="color: #0000ff;">'MULTISITE'</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span> <span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># for debugging purposes only
</span><span style="color: #666666; font-style: italic;"># define('WP_DEBUG', true);</span></pre></div></div>

<p>After that you&#8217;re ready to go <img src='http://blog.angelofailla.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Logging as super admin and going into the SuperAdmin webgui area you can create new subdomains (blogs), and users, when you can create blogs an email is sent to the owner, you can personalize templates, decide how much storage space you want to assign to every single blog, etc, etc.</p>
<p>At this point you should be able to also install/upgrade plugins and themes straight from the web gui.<br />
Note that <code>define('WP_CORE_UPDATE', false);</code> in your config file will disable the auto update, your wordpress update cycle will be managed using Debian apt tool.</p>
<p>That&#8217;s it folks, any question please comment <img src='http://blog.angelofailla.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<img src="http://blog.angelofailla.com/?ak_action=api_record_view&id=2095&type=feed" alt="" /><p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.angelofailla.com%2F2010%2F12%2F29%2Fsetting-up-wordpress-multisite-on-debian-5-0-lenny%2F&amp;title=Setting%20up%20WordPress%20Multisite%20on%20Debian%205.0%20%28lenny%29" id="wpa2a_8"><img src="http://blog.angelofailla.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.angelofailla.com/2010/12/29/setting-up-wordpress-multisite-on-debian-5-0-lenny/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>SPQR</title>
		<link>http://blog.angelofailla.com/2010/12/18/spqr/</link>
		<comments>http://blog.angelofailla.com/2010/12/18/spqr/#comments</comments>
		<pubDate>Sat, 18 Dec 2010 00:09:52 +0000</pubDate>
		<dc:creator>pallotron</dc:creator>
				<category><![CDATA[English posts]]></category>
		<category><![CDATA[Informatica]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[games]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[puzzle]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[romans]]></category>

		<guid isPermaLink="false">http://blog.angelofailla.com/?p=2040</guid>
		<description><![CDATA[I&#8217;ve been programming Perl for a while now, but I&#8217;ve seen lot of people around me (even Perl enthusiasts) getting very excited about Python. In Newbay it&#8217;s used mainly for automated and performance tests, but some times also for some system engineering automation. I can understand them, Python seems to be a pretty cool language, very clear and [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been programming Perl for a while now, but I&#8217;ve seen lot of people around me (even Perl enthusiasts) getting very excited about Python.</p>
<p>In Newbay it&#8217;s used mainly for automated and performance tests, but some times also for some system engineering automation.</p>
<p>I can understand them, Python seems to be a pretty cool language, very clear and rigorous when compared to Perl, which tend to be messy (depending on the coder).</p>
<p>Python seems also to have more stuff into the default distribution which comes pre-installed on every Linux/Unix box. You already have http and xml libraries without the necessity of installing stuff (with Perl for example you don&#8217;t have LWP or any XML dom library by default and you have to install them through CPAN or your packaging system).</p>
<p>Also, with Jython is easier to interface with Java based stuff like JMS, etc. In the pat I&#8217;ve used some awful hacks using <a href="http://search.cpan.org/~patl/Inline-Java-0.52/Java.pod">Inline::Java</a> , they were working but, you know, they looked really scary.</p>
<p>I still do like Perl though, for doing simple and quick hacks, one-liners, etc.And I will probably continue to use it.</p>
<p>I&#8217;m currently reading this <a href="http://diveintopython.org/">Diving into Python</a> book, which is free to download or view online.</p>
<p>My colleague Brano has always tried to evangelize me, with no success so far (because of my chronic laziness), but today he gave me a nice puzzle which took me a couple of hours to solve <img src='http://blog.angelofailla.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>I&#8217;m sharing it with you just in case you fancy the idea to solve it too. Feel free to send me the result at<br />
pallotron (at) freaknet (dot) org <img src='http://blog.angelofailla.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>It&#8217;s called <strong>roman.py</strong>, it contains two functions called <strong>roman2dec</strong> and <strong>dec2roman</strong>, they should convert integers into roman numbers and viceversa.</p>
<p>Brano gave it to me with the excuse that, because I&#8217;m Italian, I should be pretty used with romans numbers and it wouldn&#8217;t take too much to solve it <img src='http://blog.angelofailla.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>I started in the afternoon while at work, it took a 1 hour and half to me to figure out the algo for the dec2roman function, I don&#8217;t consider myself a math genius so excuse me if I was slow <img src='http://blog.angelofailla.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>The roman2dec was a bit of a challenge, but after 3 glasses of nice white wine (<a href="http://www.vinicorvo.it/vinibianchi/glicine.htm">Corvo Glicine</a>) I started seen the pattern and I&#8217;ve nailed it <img src='http://blog.angelofailla.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>In vino veritas! ahaha!</p>
<p>You have to write the code of the two functions so that the all unit tests pass (there are also negatives tests that you should take care of), here is the code. Just copy paste in a file called <strong>roman.py</strong> and execute it with <strong>python roman.py</strong>, enjoy!</p>
<p>I&#8217;ll publish my script in a week or so (just to give you the time to play with it, PLEASE DO NOT CHEAT <img src='http://blog.angelofailla.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ).</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
</pre></td><td class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">unittest</span>
&nbsp;
<span style="color: #808080; font-style: italic;"># your global variables can go here, too ;)</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> roman2dec<span style="color: black;">&#40;</span>roman<span style="color: black;">&#41;</span>:
    <span style="color: #ff7700;font-weight:bold;">assert</span> <span style="color: #008000;">isinstance</span><span style="color: black;">&#40;</span>roman, <span style="color: #008000;">str</span><span style="color: black;">&#41;</span>, <span style="color: #483d8b;">'Expected string argument'</span>
    <span style="color: #808080; font-style: italic;"># your code goes here</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">None</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">def</span> dec2roman<span style="color: black;">&#40;</span>dec<span style="color: black;">&#41;</span>:
    <span style="color: #ff7700;font-weight:bold;">assert</span> <span style="color: #008000;">isinstance</span><span style="color: black;">&#40;</span>dec, <span style="color: #008000;">int</span><span style="color: black;">&#41;</span>, <span style="color: #483d8b;">'Expected integer argument'</span>
    <span style="color: #808080; font-style: italic;"># your code goes here</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">None</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> RomanTests<span style="color: black;">&#40;</span><span style="color: #dc143c;">unittest</span>.<span style="color: black;">TestCase</span><span style="color: black;">&#41;</span>:
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> testSimple<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #008000;">self</span>.<span style="color: black;">assertEqual</span><span style="color: black;">&#40;</span>roman2dec<span style="color: black;">&#40;</span><span style="color: #483d8b;">'XXIV'</span><span style="color: black;">&#41;</span>, <span style="color: #ff4500;">24</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">assertEqual</span><span style="color: black;">&#40;</span>roman2dec<span style="color: black;">&#40;</span><span style="color: #483d8b;">'mcmxcix'</span><span style="color: black;">&#41;</span>, <span style="color: #ff4500;">1999</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">assertEqual</span><span style="color: black;">&#40;</span>dec2roman<span style="color: black;">&#40;</span><span style="color: #ff4500;">13</span><span style="color: black;">&#41;</span>, <span style="color: #483d8b;">'XIII'</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">assertEqual</span><span style="color: black;">&#40;</span>dec2roman<span style="color: black;">&#40;</span><span style="color: #ff4500;">78</span><span style="color: black;">&#41;</span>, <span style="color: #483d8b;">'LXXVIII'</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> testInvalid<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #008000;">self</span>.<span style="color: black;">assertRaises</span><span style="color: black;">&#40;</span><span style="color: #008000;">ValueError</span>, roman2dec, <span style="color: #483d8b;">'IIII'</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">assertRaises</span><span style="color: black;">&#40;</span><span style="color: #008000;">ValueError</span>, roman2dec, <span style="color: #483d8b;">'VX'</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">assertRaises</span><span style="color: black;">&#40;</span><span style="color: #008000;">ValueError</span>, roman2dec, <span style="color: #483d8b;">'VV'</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">assertRaises</span><span style="color: black;">&#40;</span><span style="color: #008000;">ValueError</span>, roman2dec, <span style="color: #483d8b;">'IC'</span><span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">assertRaises</span><span style="color: black;">&#40;</span><span style="color: #008000;">ValueError</span>, dec2roman, -<span style="color: #ff4500;">1</span><span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> testExhaustive<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">for</span> i <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">range</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">4000</span><span style="color: black;">&#41;</span>:
            <span style="color: #008000;">self</span>.<span style="color: black;">assertEqual</span><span style="color: black;">&#40;</span>roman2dec<span style="color: black;">&#40;</span>dec2roman<span style="color: black;">&#40;</span>i<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>, i<span style="color: black;">&#41;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> testExhaustive2<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        letters = <span style="color: black;">&#40;</span><span style="color: #483d8b;">'I'</span>, <span style="color: #483d8b;">'V'</span>, <span style="color: #483d8b;">'X'</span>, <span style="color: #483d8b;">'L'</span>, <span style="color: #483d8b;">'C'</span>, <span style="color: #483d8b;">'D'</span>, <span style="color: #483d8b;">'M'</span><span style="color: black;">&#41;</span>
        first_example = <span style="color: #008000;">None</span>
        count = <span style="color: #ff4500;">0</span>
        <span style="color: #ff7700;font-weight:bold;">for</span> i <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">xrange</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">8</span><span style="color: #66cc66;">*</span><span style="color: #ff4500;">8</span><span style="color: #66cc66;">*</span><span style="color: #ff4500;">8</span><span style="color: #66cc66;">*</span><span style="color: #ff4500;">8</span><span style="color: #66cc66;">*</span><span style="color: #ff4500;">8</span><span style="color: black;">&#41;</span>:
            rom = <span style="color: #483d8b;">''</span>
            <span style="color: #ff7700;font-weight:bold;">while</span> <span style="color: #008000;">True</span>:             <span style="color: #808080; font-style: italic;"># do { ... } while i&gt;0</span>
                rom += letters<span style="color: black;">&#91;</span>i <span style="color: #66cc66;">%</span> <span style="color: #ff4500;">7</span><span style="color: black;">&#93;</span>
                i /= <span style="color: #ff4500;">7</span>
                <span style="color: #ff7700;font-weight:bold;">if</span> i<span style="color: #66cc66;">&lt;</span>=<span style="color: #ff4500;">0</span>: <span style="color: #ff7700;font-weight:bold;">break</span>
&nbsp;
            <span style="color: #ff7700;font-weight:bold;">try</span>:
                dec = roman2dec<span style="color: black;">&#40;</span>rom<span style="color: black;">&#41;</span>
                roman = dec2roman<span style="color: black;">&#40;</span>dec<span style="color: black;">&#41;</span>
                <span style="color: #ff7700;font-weight:bold;">if</span> rom <span style="color: #66cc66;">&lt;&gt;</span> roman:
                    <span style="color: #ff7700;font-weight:bold;">if</span> first_example <span style="color: #ff7700;font-weight:bold;">is</span> <span style="color: #008000;">None</span>:
                        first_example = <span style="color: #483d8b;">'%s != %s (decimal %d)'</span> <span style="color: #66cc66;">%</span> <span style="color: black;">&#40;</span>rom, roman, dec<span style="color: black;">&#41;</span>
                    count += <span style="color: #ff4500;">1</span>
            <span style="color: #ff7700;font-weight:bold;">except</span> <span style="color: #008000;">ValueError</span>, e:
                <span style="color: #ff7700;font-weight:bold;">pass</span>
&nbsp;
        <span style="color: #008000;">self</span>.<span style="color: black;">assertEqual</span><span style="color: black;">&#40;</span>count, <span style="color: #ff4500;">0</span>, <span style="color: #483d8b;">'Accepted %d invalid roman numbers (e.g. %s)'</span> <span style="color: #66cc66;">%</span> <span style="color: black;">&#40;</span>count, first_example<span style="color: black;">&#41;</span><span style="color: black;">&#41;</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">if</span> __name__ == <span style="color: #483d8b;">'__main__'</span>:
    <span style="color: #dc143c;">unittest</span>.<span style="color: black;">main</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span></pre></td></tr></table></div>

<p><strong>[Update]:</strong></p>
<p>There much more invalid roman numbers that you have to check, the quiz has been updated above <img src='http://blog.angelofailla.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> ﻿</p>
<img src="http://blog.angelofailla.com/?ak_action=api_record_view&id=2040&type=feed" alt="" /><p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.angelofailla.com%2F2010%2F12%2F18%2Fspqr%2F&amp;title=SPQR" id="wpa2a_10"><img src="http://blog.angelofailla.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.angelofailla.com/2010/12/18/spqr/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Mediaset&#8230;. ma non me rumpe er ca!</title>
		<link>http://blog.angelofailla.com/2010/11/14/nunmerompeerca/</link>
		<comments>http://blog.angelofailla.com/2010/11/14/nunmerompeerca/#comments</comments>
		<pubDate>Sun, 14 Nov 2010 11:44:31 +0000</pubDate>
		<dc:creator>pallotron</dc:creator>
				<category><![CDATA[Informatica]]></category>
		<category><![CDATA[Video]]></category>
		<category><![CDATA[youtube copyright proietti mediaset]]></category>

		<guid isPermaLink="false">http://blog.angelofailla.com/?p=1985</guid>
		<description><![CDATA[Ho Ricevuto questo messaggio da Youtube che pubblico volentieri, per farvi notare quello che accade. Le major e le zecche come Mediaset (Mediaset in particolare andata avanti con gli aiuti di qualcuno&#8230;) sono sempre li a rompervi er ca per un video idiota Vorrei sapere cosa ne pensa Gigi Proietti&#8230; Personalmente so&#8217; che se fossi [...]]]></description>
			<content:encoded><![CDATA[<p>Ho Ricevuto questo messaggio da Youtube che pubblico <strong>volentieri</strong>, per farvi notare quello che accade. Le major e le zecche come Mediaset (Mediaset in particolare andata avanti con gli aiuti di qualcuno&#8230;) sono sempre li a rompervi er ca per un video idiota <img src='http://blog.angelofailla.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Vorrei sapere cosa ne pensa Gigi Proietti&#8230; Personalmente so&#8217; che se fossi lui mi farebbe solo piacere avere il mio video su youtube, pubblicita&#8217; gratuita per lui.</p>
<p>Questa storia del copyright serve solo ai distributori di contenuti, non tanto ai fruitori o ai consumatori.</p>
<p>Attendo con ansia la rivoluzione del copyright, in cui cui tutte &#8216;ste zecche come major, etc se ne andranno tranquillamente fallendo perche&#8217; bypassate sia dai produttori di contenuti che dai suoi fruitori, date all&#8217;umanita&#8217; una 20ina di anni, io sono fiducioso che ci si arriva (se nel frattempo l&#8217;umanita&#8217; non si sia stupidamente annientata <img src='http://blog.angelofailla.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> )</p>
<p>Mediaset? Ma non ce rumpe er ca va! Ah, tralaltro ci sono N-mila copie di quel video su Youtube! Buona ricerca.</p>
<p><img class="aligncenter size-full wp-image-1986" title="nonmerompeerca" src="http://blog.angelofailla.com/wp-content/uploads/2010/11/nonmerompeerca.jpg" alt="" width="688" height="432" /></p>
<p>Ora ritorno nel limbo della defunta blogo sfera italo-irlandese disinformata, sindromata, morta, a sistemarmi i miei lavandini senza miscelatore.</p>
<p>Saluti</p>
<img src="http://blog.angelofailla.com/?ak_action=api_record_view&id=1985&type=feed" alt="" /><p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.angelofailla.com%2F2010%2F11%2F14%2Fnunmerompeerca%2F&amp;title=Mediaset%26%238230%3B.%20ma%20non%20me%20rumpe%20er%20ca%21" id="wpa2a_12"><img src="http://blog.angelofailla.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.angelofailla.com/2010/11/14/nunmerompeerca/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Streammare musica da casa ovunque siate via ssh tunnel</title>
		<link>http://blog.angelofailla.com/2010/08/09/streammare-musica-da-casa-ovunque-siate-via-ssh-tunnel/</link>
		<comments>http://blog.angelofailla.com/2010/08/09/streammare-musica-da-casa-ovunque-siate-via-ssh-tunnel/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 10:06:57 +0000</pubDate>
		<dc:creator>pallotron</dc:creator>
				<category><![CDATA[Informatica]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[daap]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Musica]]></category>
		<category><![CDATA[ssh tunnel]]></category>
		<category><![CDATA[stream]]></category>

		<guid isPermaLink="false">http://blog.angelofailla.com/?p=1906</guid>
		<description><![CDATA[A lavoro ho da poco migrato tutte le mie robe su un portatile nuovo. Mi sono accorto che l&#8217;80% dello spazio sul portatile era occupato da mp3 e musica varia, cosi&#8217; ho deciso di non mettere mai piu&#8217; musica nel suo hard disk, spreco di spazio inutile visto che viviamo nel mondo della connettivita&#8217; ormai dappertutto. [...]]]></description>
			<content:encoded><![CDATA[<p>A lavoro ho da poco migrato tutte le mie robe su un portatile nuovo. Mi sono accorto che l&#8217;80% dello spazio sul portatile era occupato da mp3 e musica varia, cosi&#8217; ho deciso di non mettere mai piu&#8217; musica nel suo hard disk, spreco di spazio inutile visto che viviamo nel mondo della connettivita&#8217; ormai dappertutto.</p>
<p>Cosi&#8217; mi sono detto, ho un bel mac mini a casa col wake-on-lan funzionante, zeppo di musica, questa ridondanza non ha senso, usiamo l&#8217;internet per streammare la musica dal computer di casa mentre sono a lavoro!</p>
<p>Mi sono documentato un po&#8217; e ho visto che in Linux si puo&#8217; installare un tool chiamato mt-daapd (<a href="http://www.fireflymediaserver.org/">http://www.fireflymediaserver.org</a>), ora conosciuto come FireFly media server; questo tool implementa il protocollo DAAP (<a href="http://en.wikipedia.org/wiki/Digital_Audio_Access_Protocol">http://en.wikipedia.org/wiki/Digital_Audio_Access_Protocol</a>), Digital Audio Access Protocol: e&#8217; un protocollo proprietario usato da Apple nel suo iTunes per streammare audio/video in una rete locale. Questo vuol dire che i media player che parlano DAAP (iTunes ed Amarok per esempio) sono in grado di fare l&#8217;autodiscovery di host daap-enabled nella rete locale in cui vi trovate perche&#8217; DAAP funziona in broadcast.</p>
<p>Per mettere su tutto questo ambaradam in Debian/Ubuntu basta installare il too:</p>
<pre>$ sudo aptitude install mt-daapd libid3tag0 avahi-utils</pre>
<p>Avahi-utils vi servira&#8217; solo se volete ascoltare la musica fuori da casa, altrimenti mt-daapd e&#8217; gia&#8217; ok se il vostro intento e&#8217; streammare musica da un altro host della vostra rete casalinga e niente piu&#8217;.</p>
<p>A questo punto configurate il daemon editando /etc/mt-daapd.conf. Io ho solo cambiato questa linea:</p>
<pre>mp3_dir = /home/pallotron/Music/</pre>
<p>Per puntare alla directory della mia home dove sta tutta la musica. Ma voi date un occhio al file per capire cosa altro potete cambiare a seconda delle vostre esigenze.</p>
<p>Avviate il daemon e fate in modo che parta al boot:</p>
<pre>
<div id="_mcePaste">$ sudo  /etc/init.d/mt-daapd start
$ sudo update-rc.d mt-daapd defaults</div>
</pre>
<p>A questo punto il vostro server ascoltera&#8217; sulla porta 3689:</p>
<pre>root@pallomac:~# netstat -tunap | grep LISTEN | grep mt-daapd
tcp        0      0 0.0.0.0:3689            0.0.0.0:*               LISTEN      18584/mt-daapd</pre>
<p>Questo tool ha una interfaccia web che potete usare per vari scopi: creare playlist, definire nuove directory dove trovare la musica, configurare il tool (password, etc). Basta puntare il proprio browser su <a href="http://localhost:6689/">http://localhost:6689/</a> o cambiare localhost con l&#8217;ip/hostname del vostro computer casalingo.</p>
<p>Ok, una volta che questo e&#8217; fatto viene il bello, un requisito importante e&#8217; che voi siate in grado di accedere al vostro host casalingo usando ssh, il vostro router casalingo deve essere configurato per redirigere la porta SSH (tcp/22) all&#8217;ip del vostro computer casalingo. Io a casa assegno due IP fissi ai mac address delle due interfaccie del computer (ethernet e wifi) tramite il DHCP server del router.</p>
<p>A questo punto dal vostro computer in ufficio o dovunque voi siate usate un bel ssh tunnel:</p>
<pre>$ ssh vostrouser@ip_pubblico_di_casa -L :6689:localhost:3689</pre>
<p>O se preferite potete configurare ~/.ssh/config per aggiungere qualcosa tipo:</p>
<pre>Host IP_CASA
   Username VOSTROUSER
   LocalForward *:3689  localhost:3689</pre>
<p>A questo punto potete connettere il vostro player preferito a localhost:3689 et voila&#8217;, potete vedere tutta la musica sul vostro computer a casa e iniziare ad ascoltare <img src='http://blog.angelofailla.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Ho verificato che banshee ancora non supporta DAAP, mentre rhythmbox supporat DAAP ma senza autodiscovery, cioe&#8217; inserendo a mano la URL del server&#8230; mentre amarok e iTunes supportano l&#8217;autodisvovery.</p>
<p>L&#8217;autodiscovery funzionera&#8217; automaticamente se vi trovate a casa ma se vi trovate fuori dovete utilizzare questo comando Avahi (<a href="http://en.wikipedia.org/wiki/Avahi_(software)">http://en.wikipedia.org/wiki/Avahi_(software)</a>):</p>
<pre>$ avahi-publish-address -v -s "my daap share" _daap._tcp. 6689 &amp;</pre>
<p>Avahi e&#8217; una cosa che devo ancora approfondire meglio, potete verificare che il vostro computer sta esportando correttamente lo share usando il comando:</p>
<pre>$ avahi-browse _daap._tcp</pre>
<p>Dovreste vedere il nome del vostro share apparire.</p>
<p><strong>Se intendete esportare la musica ai vostri colleghi vi avviso che probabilmente questo e&#8217; contro le regole aziendali. Quindi meglio non usare AVAHI <img src='http://blog.angelofailla.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </strong></p>
<p>Buon ascolto!</p>
<p><strong>Edit</strong></p>
<p>Ho trovato un po&#8217; di info a queste URL:</p>
<p><a href="http://wiki.fireflymediaserver.org/SSH_Tunnel">http://wiki.fireflymediaserver.org/SSH_Tunnel</a></p>
<p><a href="http://wiki.fireflymediaserver.org/RemoteAccess">http://wiki.fireflymediaserver.org/RemoteAccess</a></p>
<p>Pare sia meglio usare una porta diversa da 3689 nel comando ssh, perche&#8217; pare banshee provi a bindare la 3689, io ho scelto 6689&#8230; Di conseguenza cambiare anche il comando avahi per usare la porta 6689&#8230; e pare anche che dovete utilizzare l&#8217;IP del vostro laptop a lavoro e non localhost, cosi&#8217; i comandi diventano:</p>
<p><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; white-space: normal; font-size: 13px;"> </span></p>
<pre>$ ssh vostrouser@ip_pubblico_di_casa -L *:6689:localhost:3689</pre>
<p>oppure nel vostro ~/.ssh/config:</p>
<p><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; white-space: normal; font-size: 13px;"> </span></p>
<pre>Host IP_CASA
   Username VOSTROUSER
   LocalForward *:6689  localhost:3689</pre>
<p>E poi lanciare avahi cosi&#8217;:</p>
<pre>$ avahi-publish-address -v -s "my daap share" _daap._tcp. 6689 &amp;</pre>
<pre><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; white-space: normal; font-size: 13px;"><strong>Edit2</strong></span></pre>
<pre><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; white-space: normal; font-size: 13px;">Potete aggiungere le opzioni -N e -f al comando ssh per evitare di mantenere una shell aperta tutto il tempo, ma poi vi dovete ricordare di killare il processo ssh connesso al vostro server casalingo:</span></pre>
<pre><span style="font-family: Georgia, 'Times New Roman', 'Bitstream Charter', Times, serif; line-height: 19px; white-space: normal; font-size: 13px;">
<pre style="font: normal normal normal 12px/18px Consolas, Monaco, 'Courier New', Courier, monospace;">$ ssh vostrouser@ip_pubblico_di_casa -N -g -L *:6689:localhost:3689</pre>
<p></span></pre>
<img src="http://blog.angelofailla.com/?ak_action=api_record_view&id=1906&type=feed" alt="" /><p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.angelofailla.com%2F2010%2F08%2F09%2Fstreammare-musica-da-casa-ovunque-siate-via-ssh-tunnel%2F&amp;title=Streammare%20musica%20da%20casa%20ovunque%20siate%20via%20ssh%20tunnel" id="wpa2a_14"><img src="http://blog.angelofailla.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.angelofailla.com/2010/08/09/streammare-musica-da-casa-ovunque-siate-via-ssh-tunnel/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>AT&amp;T Mobile Share</title>
		<link>http://blog.angelofailla.com/2010/03/22/attmobileshare/</link>
		<comments>http://blog.angelofailla.com/2010/03/22/attmobileshare/#comments</comments>
		<pubDate>Mon, 22 Mar 2010 00:17:35 +0000</pubDate>
		<dc:creator>pallotron</dc:creator>
				<category><![CDATA[Informatica]]></category>
		<category><![CDATA[Lavoro]]></category>
		<category><![CDATA[at&t]]></category>
		<category><![CDATA[mobileshare]]></category>
		<category><![CDATA[newbay]]></category>

		<guid isPermaLink="false">http://blog.angelofailla.com/?p=1719</guid>
		<description><![CDATA[Pubblicita&#8217; Occulta! Finalmente, dopo 2 anni di lavoro (12 mesi circa per me), Newbay ha lanciato un servizio in collaborazione con AT&#38;T, chiamato Mobileshare. Si tratta di qualcosa simile a Flickr, in pratica uno storage di video ed immagini. Si possono spostare video/immagini avanti e indietro tra telefonino, computer di casa (attraverso un client windows/mac) e [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://att.com/mobileshare"></a><img class="size-full wp-image-1720 aligncenter" title="attmobileshare" src="http://blog.angelofailla.com/wp-content/uploads/2010/03/attmobileshare.png" alt="" width="634" height="177" /></p>
<p><strong>Pubblicita&#8217; Occulta!</strong></p>
<p><strong> </strong>Finalmente, dopo 2 anni di lavoro (12 mesi circa per me), Newbay ha lanciato un servizio in collaborazione con <a href="http://att.com/mobileshare">AT&amp;T, chiamato Mobileshare</a>.</p>
<p>Si tratta di qualcosa simile a Flickr, in pratica uno storage di video ed immagini. Si possono spostare video/immagini avanti e indietro tra telefonino, computer di casa (attraverso un client windows/mac) e social networks (﻿Facebook, Bebo, Photobucket, etc.)</p>
<p>Ovviamente il tutto e&#8217; integrato con la infrastruttura Telco di AT&amp;T (SMS/MMS/etc.)</p>
<p>E&#8217; stata una esperienza interessante e mi ha dato la possibilita&#8217; di divertirmi con cose che non avevo toccato prima. Mi sono occupato di mettere su quasi tutta l&#8217;infrastruttura dal punto di vista sistemistico, load balancers, virtual machines, storage, deployment automation, performance testing e capacity planning. Da oggi inizia se vogliamo la parte piu&#8217; difficile, i primi mesi di vita del sistema, fino a quando il sistema non sara&#8217; totalmente nelle mani del gruppo di supporto dovro&#8217; essere disponibile ad aiutare i colleghi in caso di incidenti.</p>
<p>Saluti.</p>
<img src="http://blog.angelofailla.com/?ak_action=api_record_view&id=1719&type=feed" alt="" /><p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.angelofailla.com%2F2010%2F03%2F22%2Fattmobileshare%2F&amp;title=AT%26%23038%3BT%20Mobile%20Share" id="wpa2a_16"><img src="http://blog.angelofailla.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.angelofailla.com/2010/03/22/attmobileshare/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Plugin wordpress per ordinare come si vuole i post d&#8217;archivio</title>
		<link>http://blog.angelofailla.com/2010/01/31/plugin-wordpress-per-ordinare-come-si-vuole-i-post-darchivio/</link>
		<comments>http://blog.angelofailla.com/2010/01/31/plugin-wordpress-per-ordinare-come-si-vuole-i-post-darchivio/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 23:05:04 +0000</pubDate>
		<dc:creator>pallotron</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Informatica]]></category>
		<category><![CDATA[informativa]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[web2.0]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.angelofailla.com/?p=1690&#038;langswitch_lang=en</guid>
		<description><![CDATA[Avviso ai blogghisti utilizzatori di wordpress. Dopo l&#8217;ultimo post sui due anni mi sono reso conto che wordpress di default non sia molto fruibile per leggere i post in cronologia, ho trovato questo plugin che potrebbe essere utile a molti di voi: http://moshublog.com/2007/10/30/custom-query-string-reloaded-for-wordpress-23-with-tag-support/ A chi usa ancora blogger dico solo che hanno tutta la mia [...]]]></description>
			<content:encoded><![CDATA[<p>Avviso ai blogghisti utilizzatori di wordpress.</p>
<p>Dopo l&#8217;ultimo post sui due anni mi sono reso conto che wordpress di default non sia molto fruibile per leggere i post in cronologia, ho trovato questo plugin che potrebbe essere utile a molti di voi:</p>
<p><a href="http://moshublog.com/2007/10/30/custom-query-string-reloaded-for-wordpress-23-with-tag-support/">http://moshublog.com/2007/10/30/custom-query-string-reloaded-for-wordpress-23-with-tag-support/</a></p>
<p>A chi usa ancora blogger dico solo che hanno tutta la mia compassione <img src='http://blog.angelofailla.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<img src="http://blog.angelofailla.com/?ak_action=api_record_view&id=1690&type=feed" alt="" /><p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.angelofailla.com%2F2010%2F01%2F31%2Fplugin-wordpress-per-ordinare-come-si-vuole-i-post-darchivio%2F&amp;title=Plugin%20wordpress%20per%20ordinare%20come%20si%20vuole%20i%20post%20d%26%238217%3Barchivio" id="wpa2a_18"><img src="http://blog.angelofailla.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.angelofailla.com/2010/01/31/plugin-wordpress-per-ordinare-come-si-vuole-i-post-darchivio/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>La decade informatica riassunta</title>
		<link>http://blog.angelofailla.com/2010/01/04/la-decade-informatica-riassunta/</link>
		<comments>http://blog.angelofailla.com/2010/01/04/la-decade-informatica-riassunta/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 22:55:16 +0000</pubDate>
		<dc:creator>pallotron</dc:creator>
				<category><![CDATA[Informatica]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[decade]]></category>
		<category><![CDATA[storia]]></category>

		<guid isPermaLink="false">http://blog.angelofailla.com/?p=1663&#038;langswitch_lang=en</guid>
		<description><![CDATA[Vi segnalo questo link di un articolo di register.co.uk che riassume alcuni aspetti della decade passata. Buona lettura.]]></description>
			<content:encoded><![CDATA[<p>Vi segnalo questo <a href="http://www.theregister.co.uk/2009/12/16/noughties_review/">link di un articolo di register.co.uk</a> che riassume alcuni aspetti della decade passata.</p>
<p>Buona lettura.</p>
<img src="http://blog.angelofailla.com/?ak_action=api_record_view&id=1663&type=feed" alt="" /><p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fblog.angelofailla.com%2F2010%2F01%2F04%2Fla-decade-informatica-riassunta%2F&amp;title=La%20decade%20informatica%20riassunta" id="wpa2a_20"><img src="http://blog.angelofailla.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://blog.angelofailla.com/2010/01/04/la-decade-informatica-riassunta/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

