<?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>AntonelloCicchese.com &#187; Python</title>
	<atom:link href="http://www.antonellocicchese.com/category/python/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.antonellocicchese.com</link>
	<description></description>
	<lastBuildDate>Wed, 28 Apr 2010 20:19:11 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Regular expressions vol.1</title>
		<link>http://www.antonellocicchese.com/2007/03/24/regular-expressions-vol1/</link>
		<comments>http://www.antonellocicchese.com/2007/03/24/regular-expressions-vol1/#comments</comments>
		<pubDate>Sat, 24 Mar 2007 15:58:40 +0000</pubDate>
		<dc:creator>antonello</dc:creator>
				<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Php]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Regex]]></category>
		<category><![CDATA[WebMaster]]></category>

		<guid isPermaLink="false">http://www.antonellocicchese.com/2007/03/24/regular-expressions-vol1/</guid>
		<description><![CDATA[Validazione email &#8211; Email validation:
^[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*(.[a-z]{2,3})$
 Parsing file di log di Apache &#8211; Apache log parsing:
(\d+\.\d+\.\d+\.\d+) (-&#124;\w*) (-&#124;\w*) \[(\d+\/\w+\/\d+):(\d+:\d+:\d+) -(\d\d\d\d)\] "([^"]*)" (\d+) (-&#124;\d+) "([^"]*)" "(.*)"\s*\Z
se utilizzate python è estremamente utile compilare l&#8217;espressione regolare che ho appena scritto in questo modo:
myregex = re.compile('(?P\d+\.\d+\.\d+\.\d+) (?P-&#124;\w*) (?P-&#124;\w*) \[(?P\d+\/\w+\/\d+):(?P\d+:\d+:\d+) -(?P\d\d\d\d)\] "(?P[^"]*)" (?P\d+) (?P-&#124;\d+) "(?P[^"]*)" "(?P.*)"\s*\Z')
in questo modo utilizzando questo codice:
log [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Validazione email &#8211; Email validation:</strong><br />
<code>^[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*@[_a-zA-Z0-9-]+(.[_a-zA-Z0-9-]+)*(.[a-z]{2,3})$</code></p>
<p><strong> Parsing file di log di Apache &#8211; Apache log parsing:</strong><br />
<code>(\d+\.\d+\.\d+\.\d+) (-|\w*) (-|\w*) \[(\d+\/\w+\/\d+):(\d+:\d+:\d+) -(\d\d\d\d)\] "([^"]*)" (\d+) (-|\d+) "([^"]*)" "(.*)"\s*\Z</code></p>
<p>se utilizzate python è estremamente utile compilare l&#8217;espressione regolare che ho appena scritto in questo modo:<br />
<code>myregex = re.compile('(?P<ip>\d+\.\d+\.\d+\.\d+) (?P<identd>-|\w*) (?P<auth>-|\w*) \[(?P<date>\d+\/\w+\/\d+):(?P<time>\d+:\d+:\d+) -(?P<timezone>\d\d\d\d)\] "(?P<request>[^"]*)" (?P<response>\d+) (?P<byte>-|\d+) "(?P<referrer>[^"]*)" "(?P<browser>.*)"\s*\Z')</browser></referrer></byte></response></request></timezone></time></date></auth></identd></ip></code></p>
<p>in questo modo utilizzando questo codice:</p>
<pre lang="python">log = self.regex.match(row)
log_line = log.groupdict()</pre>
<p>nella variabile log_line otterrete un dizionario contenente come chiavi i valori che avete inserito nella fase di compilazione come ?P<nome> e come valore la relativa sottostringa, ad esempio log_line['ip'] = valore ip .</nome></p>
]]></content:encoded>
			<wfw:commentRss>http://www.antonellocicchese.com/2007/03/24/regular-expressions-vol1/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Google sitemap tool (english)</title>
		<link>http://www.antonellocicchese.com/2006/11/16/google-sitemap-tool-en/</link>
		<comments>http://www.antonellocicchese.com/2006/11/16/google-sitemap-tool-en/#comments</comments>
		<pubDate>Thu, 16 Nov 2006 11:18:28 +0000</pubDate>
		<dc:creator>antonello</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[WebMaster]]></category>

		<guid isPermaLink="false">http://www.antonellocicchese.com/2006/11/16/google-sitemap-tool-en/</guid>
		<description><![CDATA[(Italian version Google sitemap tool)
Hello, today I wanna tell you about my last python script (really nuts and bolts), called sitemaps.
With it you can build your website sitemaps, it works as a simple spider, it doesn&#8217;t produce a xml file but later maybe i can implement this function, for now it only produces a txt [...]]]></description>
			<content:encoded><![CDATA[<div align="right">(<a title="Google Site Map tool (italian)" href="http://www.antonellocicchese.com/2006/11/03/google-sitemap-tool/">Italian version Google sitemap tool</a>)</div>
<p><span class="imagelink"><img align="left" title="Web Graph" id="image41" alt="Web Graph" src="http://www.antonellocicchese.com/wp-content/uploads/2006/11/attweb.thumbnail.gif" /></span>Hello, today I wanna tell you about my last python script (really nuts and bolts), called sitemaps.<br />
With it you can build your website sitemaps, it works as a simple spider, it doesn&#8217;t produce a xml file but later maybe i can implement this function, for now it only produces a txt file.</p>
<p>This little spider, starts its crawling from a user specified starting page, and it moves all around the internal links it founds. At the end it produces a txt file with all the links, one per line, found during its crawl, this file could be submitted to Google SiteMaps and its syntax is legal.</p>
<p>The importans of using this kind of tool is that Google could index all your internal pages in less time, giving you the chance to increase your popularity.</p>
<p>As I said before this is really &#8220;nuts and bolts&#8221; but it&#8217;s a good starting point to write more sofisticated spider or web analysis tools.</p>
<p>The script core is a BFS (Breadth first search) visit  of the graph composed from  target web site internal links.</p>
<p>As usually if you have any comments, please don&#8217;t esitate, write them!</p>
<p>Here is the source code
<p>Error: Could not open sitemap.py</p>
<p>and here <a title="Google Sitemap tool" href="http://www.antonellocicchese.com/UserFiles/code/sitemap.py">sitemap.py</a> you can download the script.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.antonellocicchese.com/2006/11/16/google-sitemap-tool-en/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google sitemap tool</title>
		<link>http://www.antonellocicchese.com/2006/11/03/google-sitemap-tool/</link>
		<comments>http://www.antonellocicchese.com/2006/11/03/google-sitemap-tool/#comments</comments>
		<pubDate>Fri, 03 Nov 2006 18:24:03 +0000</pubDate>
		<dc:creator>antonello</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[WebMaster]]></category>

		<guid isPermaLink="false">http://www.antonellocicchese.com/2006/11/03/google-sitemap-tool/</guid>
		<description><![CDATA[(English version Google sitemap tool)
Ciao a tutti, quello che vi presento oggi è un semplicissimo script python, che consente a partire da un indirizzo internet specificato all&#8217;avvio, di costruire un file indice contenente tutti i link interni del sito analizzato.
Con questo strumento è possibile creare dei file utilizzabili con Google SiteMaps che vi aiuteranno a [...]]]></description>
			<content:encoded><![CDATA[<p align="right">(<a title="English version of Google sitemap tool" href="http://www.antonellocicchese.com/2006/11/16/google-sitemap-tool-en/">English version Google sitemap tool</a>)</p>
<p><img align="left" alt="Web Graph" id="image41" title="Web Graph" src="http://www.antonellocicchese.com/wp-content/uploads/2006/11/attweb.thumbnail.gif" />Ciao a tutti, quello che vi presento oggi è un semplicissimo script python, che consente a partire da un indirizzo internet specificato all&#8217;avvio, di costruire un file indice contenente tutti i link interni del sito analizzato.</p>
<p>Con questo strumento è possibile creare dei file utilizzabili con Google SiteMaps che vi aiuteranno a far indicizzare l&#8217;intero contenuto del vostro sito.</p>
<p>Lo script essendo stato scritto in meno di mezz&#8217;ora è veramente spartano, non prevede alcuna personalizzazione né produce in output un file xml compatibile con lo standard definito da google per le sitemaps, ma un semplice file di testo con l&#8217;elenco dei link.</p>
<p>È comunque un buon inizio sia per poter sviluppare tool più sofisticati per la produzione di sitemap sia per gettare le basi per un piccolo web crawler in python, perché quello che fa questo script è effettuare una visita BFS cioè in ampiezza, del grafo dei link interni di un sito.</p>
<p>Come al solito se avete commenti non esitate, anzi più ce ne sono migliore sarà il prodotto finale.</p>
<p>Clicca qui per il codice
<p>Error: Could not open sitemap.py</p>
<p>e clicca <a title="Google Sitemap tool" href="http://www.antonellocicchese.com/UserFiles/code/sitemap.py">sitemap.py</a> per scaricare il file.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.antonellocicchese.com/2006/11/03/google-sitemap-tool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Django e Python su DreamHost.com</title>
		<link>http://www.antonellocicchese.com/2006/10/12/django-python-dreamhost/</link>
		<comments>http://www.antonellocicchese.com/2006/10/12/django-python-dreamhost/#comments</comments>
		<pubDate>Thu, 12 Oct 2006 10:21:04 +0000</pubDate>
		<dc:creator>antonello</dc:creator>
				<category><![CDATA[Django]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[WebMaster]]></category>

		<guid isPermaLink="false">http://www.antonellocicchese.com/2006/10/12/django-e-python-su-dreamhostcom/</guid>
		<description><![CDATA[ATTENZIONE: questa configurazione dopo i recenti aggiornamenti su dreamhost non è più consigliata, spesso causa crash nel sito che risulta irraggiungibile ritornando Errore 500, appena possibile pubblicherò una guida aggiornata&#8230;

Questa è una versione modificata rispetto alla guida ufficiale che potrete trovare sul wiki di dreamhost, difatti punta a farvi utilizzare non la versione preinstallata che [...]]]></description>
			<content:encoded><![CDATA[<p><strong><em>ATTENZIONE</em>: questa configurazione dopo i recenti aggiornamenti su dreamhost non è più consigliata, spesso causa crash nel sito che risulta irraggiungibile ritornando Errore 500, appena possibile pubblicherò una guida aggiornata&#8230;<br />
</strong></p>
<p>Questa è una versione modificata rispetto alla guida ufficiale che potrete trovare sul wiki di dreamhost, difatti punta a farvi utilizzare non la versione preinstallata che trovate sul vostro server di python ma una vostra installazione personalizzata, con tutte le librerie di cui potreste aver bisogno, il documento originale in inglese da cui sono partito per scrivere questo tutorial si trova all&#8217;indirizzo:<br />
<a target="_blank" href="http://forums.site5.com/showthread.php?t=10236"> http://forums.site5.com/showthread.php?t=10236</a><br />
ora non mi rimane che augurarvi una buona lettura.</p>
<p>Per iniziare dopo aver completato le fasi di registrazione su dreamhost e una volta che avrete ottenuto un account ssh questi sono i passi da seguire per installare Django su Dreamhost, facendo uso però di una versione personalizzata di python:</p>
<ol>
<li>collegatevi in ssh sul vostro server</li>
<li>una volta entrati nella vostra home digitate:
<pre lang="c">wget http://peak.telecommunity.com/dist/virtual-python.py
python virtual-python.py</pre>
<p>Questo creerà  nella vostra home diverse cartelle (bin, lib, &#8230;) che vi consentiranno di avere una installazione personalizzata di python.<br />
Il vantaggio di questo approccio è che vi consentirà  di avere a vostra disposizione le librerie più indicate per il vostro progetto proprio come se aveste un vostro server personale.</li>
<li>Adesso è necessario scaricare ez_setup:
<pre lang="c">wget http://peak.telecommunity.com/dist/ez-setup.py
~/bin/python ez_setup.py</pre>
<p>Adesso avete un&#8217;installazione completamente funzionante di python al vostro servizio, passiamo ora all&#8217;installazione delle librerire necessarie.</li>
</ol>
<p><strong>Librerie di python:</strong></p>
<ol>
<li>La prima libreria necessaria per il funzionamento di Django su Dreamhost è quella per interfacciare Python al dbms MySQL, consiglio vivamente di scaricarsi ogni volta l&#8217;ultima versione della libreria che trova a questo indirizzo  <a target="_blank" href="http://sourceforge.net/projects/mysql-python">http://sourceforge.net/projects/mysql-python</a> e al limite caricarla in ftp direttamente nella vostra home e seguire le indicazioni che vi sto per dare, per la sua installazione, ad eccezione della prima linea.
<pre lang="c">wget http://path.to.sourceforge.mirror/sourceforge/mysql-python/MySQL-python-1.2.1_p2.tar.gz
tar zxvf MySQL-python-1.2.1_p2.tar.gz
cd MySQL-python-1.2.1_p2
~/bin/python setup.py install</pre>
</li>
<li>Installiamo una libreria che è utile (e necessaria) soprattutto se usate le immagini nel vostro progetto e gli ImageField, si tratta della libreria PIL (Python Imaging Library):
<pre lang="c">wget http://effbot.org/downloads/Imaging-1.1.5.tar.gz
tar zxvf Imaging-1.1.5.tar.gz
cd Imaging-1.1.5
~/bin/python setup.py install</pre>
</li>
<li>Installiamo infine la libreria flup:
<pre lang="c">svn co http://svn.saddi.com/flup/trunk flup
cd flup
~/bin/python setup.py install</pre>
<p>a questo punto siete pronti per l&#8217;installazione vera e propria di Django.</li>
</ol>
<p><strong>Installazione di Django:</strong></p>
<ol>
<li>scarichiamo per prima cosa nella nostra home l&#8217;ultima versione di django, utilizzando  svn:
<pre lang="c">svn co http://code.djangoproject.com/svn/django/trunk/ django-src</pre>
</li>
<li>adesso rendiamo disponibile il path di django nella nostra installazione di python facendo un soft link:
<pre lang="c">ln -s ~/django_src/django ~/lib/python2.4/site-packages/django</pre>
</li>
<li>creiamo una directory nella vostra home che conterrà il progetto che andrete ad utilizzare:
<pre lang="c">mkdir ~/django_project</pre>
<p>All&#8217;interno di questa directory dovrete caricare il vostro progetto django con tutte le cartelle ad eccezione della cartella media.</li>
</ol>
<p><strong>Rendiamoci visibili:</strong></p>
<p>Nella vostra home oltre a tutte le cartelle che avete creato fin qui, ci dovrebbe essere una cartella con il nome uguale a quello del dominio che avete acquistato, in caso contrario vi consiglio di visitare il wiki di dreamhost per maggiori informazioni.</p>
<ol>
<li>Supponendo quindi che voi abbiate una cartella miodominio.com la prima cosa da fare è aggiungere le ultime due cartelle create nel PATH di sistema:
<pre lang="c">vim ~/.bashrc
export PYTHONPATH=$PYTHONPATH:$HOME/django_src:$HOME/django_projects
:wq
source ~/.bashrc</pre>
</li>
<li>bisogna creare un file di configurazione che vi permetta di interfacciare il vostro progetto Django con il modulo fcgi:
<pre lang="python">vim ~/miodominio.com/django.fcgi
#!/home/username/bin/python
import sys
sys.path += ['/home/username/django_src']
sys.path += ['/home/username/django_projects']
from flup.server.fcgi import WSGIServer
from django.core.handlers.wsgi import WSGIHandler
import os os.environ['DJANGO_SETTINGS_MODULE'] = 'Progetto.settings'
WSGIServer(WSGIHandler()).run()

:wq</pre>
<p>ovviamente le parti con <strong><em>username</em></strong> e <strong><em>Progetto</em></strong> vanno sostituite con i vostri dati.<br />
<strong> (N.B.)</strong> Fate molta attenzione ad utilizzare nano o vim come editor se hanno il wordwrap, perch� in questo caso le linee troppo lunghe verranno spezzate ed il file sar�  inservibile.</li>
<li>ora va creato sempre nella directory miodominio.com il file che vi consentirà di utilizzare il mod_rewrite di Apache, quindi questo è quello che dovrete scrivere:
<pre lang="c">vim ~/miodominio.com/.htaccess
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} ^/stats/(.*)$ [OR]
RewriteRule ^.*$ - [L]
RewriteRule ^(media/.*)$ - [L]
RewriteRule ^(admin_media/.*)$ - [L]
RewriteCond %{REQUEST_URI} !(django.fcgi)
RewriteRule ^(.*)$ django.fcgi/$1 [L]  

:wq</pre>
<p>la riga</p>
<pre lang="c">RewriteCond %{REQUEST_URI} ^/stats/(.*)$ [OR]</pre>
<p>sta ad indicare la parte di file nella quale dovrete inserire tutte le url che non debbono essere gestite da django, quindi ad esempio l&#8217;url per accedere alle statistiche del sito <em>www.miodominio.com/stats</em></li>
<li>gli ultimi ritocchi da fare sono:
<pre lang="c">ln -s ~/django_src/django/contrib/admin/media ~/miodomionio.com/admin_media</pre>
<p>per rendere disponibile la grafica dell&#8217;amministrazione e caricare tramite ftp la cartella media del proprio progetto sempre dentro ~/miodominio.com</li>
<li>Ormai giunti alla fine di questo lungo lavoro, dovrete modificare il file di configurazione di django, settings.py in modo tale che rispetti il nuovo ordinamento delle directory, in particolare vanno modificate tutte le linee che si riferiscono alla cartella media indicando dove queste vanno ricercate, cioè ~/miodominio.com:
<pre lang="c">MEDIA_ROOT = '/home/username/miodominio.com/media/'

MEDIA_URL = 'http://www.miodominio.com/media/'

ADMIN_MEDIA_PREFIX = '/admin_media/'

TEMPLATE_DIRS = ( '/home/username/miodominio.com/media/template/',  )</pre>
</li>
<li>Per concludere dovrete &#8220;uccidere&#8221; tutti i processi attivi con python e django, ricordate questo passaggio è necessario ripeterlo tutte le volte che modificherete un file vitale di django come settings.py o urls.py, digitate quindi:
<pre lang="c">killall -9 /home/username/bin/python
killall -9 django.fcgi</pre>
</li>
</ol>
<p>Questo è veramente tutto, vi consiglio di leggere il tutorial su come utilizzare vim presente in questo blog all&#8217;indirizzo:  <a title="Tutorial Vim" href="http://www.antonellocicchese.com/2005/12/12/tutorial-vim/">http://www.antonellocicchese.com/2005/12/12/tutorial-vim/</a></p>
<p><strong><em>ATTENZIONE</em>: questa configurazione dopo i recenti aggiornamenti su dreamhost non è più consigliata, spesso causa crash nel sito che risulta irraggiungibile ritornando Errore 500, appena possibile pubblicherò una guida aggiornata&#8230;<br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.antonellocicchese.com/2006/10/12/django-python-dreamhost/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pulire le cartelle di MacOSX dai file .DS_Store</title>
		<link>http://www.antonellocicchese.com/2006/04/12/pulire-le-cartelle-di-macosx-dai-file-ds_store/</link>
		<comments>http://www.antonellocicchese.com/2006/04/12/pulire-le-cartelle-di-macosx-dai-file-ds_store/#comments</comments>
		<pubDate>Wed, 12 Apr 2006 10:43:38 +0000</pubDate>
		<dc:creator>antonello</dc:creator>
				<category><![CDATA[Guide]]></category>
		<category><![CDATA[MacOSX]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.antonellocicchese.com/wordpress/2006/04/12/pulire-le-cartelle-di-macosx-dai-file-ds_store/</guid>
		<description><![CDATA[Ciao a tutti, questa volta vi propongo un nuovo programma in python, utile per tutti quelli che come me debbono frequentemente scambiare dati, progetti o copie di backup delle directory del proprio Mac su Windows.
MacOSX in tutte le cartelle che crea o che voi visitate inserisce dei file chiamati .DS_Store, questi file, utili solo ai [...]]]></description>
			<content:encoded><![CDATA[<p>Ciao a tutti, questa volta vi propongo un nuovo programma in python, utile per tutti quelli che come me debbono frequentemente scambiare dati, progetti o copie di backup delle directory del proprio Mac su Windows.</p>
<p>MacOSX in tutte le cartelle che crea o che voi visitate inserisce dei file chiamati <strong>.DS_Store</strong>, questi file, utili solo ai fini del Finder di MacOSX, diventano veramente fastidiosi ogni qual volta la cartella su cui lavorate finisce su un sistema Windows, che non riconoscendo il file come nascosto ve lo presenta immancabilmente in mezzo al vostro lavoro.</p>
<p>A questo punto interviene questo programma, che attraversa tutte le directory a partire da quella che specificate ripulendole dai file .DS_Store, e se siete interessati, produce in output un file compresso con tutto il vostro lavoro ripulito.</p>
<p>Il programma funziona sia sotto Windows sia sotto MacOSX e supporta il formato di compresione <strong>GZip, BZip2 e Tar</strong>, il primo ed il secondo formato ve li consiglio per realizzare dei piccoli backup dei vostri lavori perché producono un output con un ottimo fattore di compressione (a discapito però della velocità).</p>
<p>Per lanciare il programma, da linea comando vi basterà  digitare<br />
<em>python clearTarMac.py
<path> [opzioni]</em></p>
<p>la parte delle opzioni può sia essere vuota, sia riportare :</p>
<ul>
<li><strong>bzip -> comprime in bzip2</strong></li>
<li><strong>gzip -> comprime in gzip</strong></li>
<li><strong>tar -> comprime in tar semplice</strong></li>
</ul>
<p>Il file compresso di output, verrà creato nella directory dalla quale eseguite il programma e avrà  come nome il nome della cartella analizzata e pulita.</p>
<p>Potete scaricare il programma completo cliccando qui <a title="Pulire le cartelle di MacOSX dal file .DS_Store e comprimerle" href="http://www.antonellocicchese.com/UserFiles/code/cleanTarMac.py">cleanTarMac.py</a>, oppure potrete leggere il codice cliccando qui:</p>
<p>Error: Could not open cleanTarMac.py</p>
]]></content:encoded>
			<wfw:commentRss>http://www.antonellocicchese.com/2006/04/12/pulire-le-cartelle-di-macosx-dai-file-ds_store/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Analisi dei log di Apache</title>
		<link>http://www.antonellocicchese.com/2006/03/29/analisi-dei-log-di-apache/</link>
		<comments>http://www.antonellocicchese.com/2006/03/29/analisi-dei-log-di-apache/#comments</comments>
		<pubDate>Wed, 29 Mar 2006 14:11:30 +0000</pubDate>
		<dc:creator>antonello</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Guide]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MacOSX]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[WebMaster]]></category>

		<guid isPermaLink="false">http://www.antonellocicchese.com/2006/03/29/analisi-dei-log-di-apache/</guid>
		<description><![CDATA[Salve a tutti, questo che vi propongo è uno script in python, che ho scritto recentemente, in grado di analizzare i log prodotti dal web server apache (nel formato standard ip &#8211; - [data] &#8211; richiesta) e di estrarre da questi, per ciascun ip, l&#8217;intera storia delle sue richieste.
Impostando un valore soglia per il numero [...]]]></description>
			<content:encoded><![CDATA[<p>Salve a tutti, questo che vi propongo è uno script in python, che ho scritto recentemente, in grado di analizzare i log prodotti dal web server apache (nel formato standard ip &#8211; - [data] &#8211; richiesta) e di estrarre da questi, per ciascun ip, l&#8217;intera storia delle sue richieste.</p>
<p>Impostando un valore soglia per il numero di richieste da analizzare, è possibile sfruttare questo tool per la ricerca di indirizzi ip che stanno tentando dos attack o che eseguono comunque un numero di richieste fuori dalla norma.</p>
<p>Lo script va eseguito passandogli come parametri il nome del file di log e il valore soglia, a questo punto dopo l&#8217;analisi creerà una cartella con all&#8217;interno tutti file di testo il cui nome sarà composto dal numero delle richieste e dall&#8217;indirizzo ip del richiedente, e che conterranno l&#8217;elenco dettagliato delle richieste fatte.</p>
<p>E&#8217; importante notare che i file prodotti sono ancora fedeli allo standard dei log di apache, risultano quindi ulteriormente analizzabili con altri software più specifici come awstats.</p>
<p>Il codice dello script è il seguente (<a title="Download logAnalyzer.py" href="http://www.antonellocicchese.com/UserFiles/code/logAnalyzer.py">download</a>):</p>
<p>Error: Could not open logAnalyzer.py</p>
]]></content:encoded>
			<wfw:commentRss>http://www.antonellocicchese.com/2006/03/29/analisi-dei-log-di-apache/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Posizionamento su Google</title>
		<link>http://www.antonellocicchese.com/2006/02/17/posizionamento-su-google/</link>
		<comments>http://www.antonellocicchese.com/2006/02/17/posizionamento-su-google/#comments</comments>
		<pubDate>Fri, 17 Feb 2006 14:08:45 +0000</pubDate>
		<dc:creator>antonello</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[WebMaster]]></category>

		<guid isPermaLink="false">http://www.antonellocicchese.com/2006/02/17/posizionamento-su-google/</guid>
		<description><![CDATA[Questo è un semplice script scritto in python e nato dall&#8217;esigenza di controllare il posizionamento dei miei siti su Google in funzione delle chiavi di ricerca.
Quello che fa il programma è leggere un file di configurazione nel quale si possono specificare diversi parametri come il dominio che si vuole trovare, la chiave con la quale [...]]]></description>
			<content:encoded><![CDATA[<p>Questo è un semplice script scritto in python e nato dall&#8217;esigenza di controllare il posizionamento dei miei siti su Google in funzione delle chiavi di ricerca.</p>
<p>Quello che fa il programma è leggere un file di configurazione nel quale si possono specificare diversi parametri come il dominio che si vuole trovare, la chiave con la quale effettuare la ricera, il motore di ricerca (google.it/com/&#8230;) ed il numero di pagine da controllare.</p>
<p>Potrete scaricare il file originale e completo qui <a title="Calcola il posizionamento su Google" href="http://www.antonellocicchese.com/UserFiles/code/whereIs.py">whereIs.py</a>, e questo è un suo file di configurazione di prova <a title="Calcola il posizionamento del tuo sito su Google" href="http://www.antonellocicchese.com/UserFiles/code/data.txt">data.txt</a>.<br />
Altrimenti potrete vedere il codice direttamente qui sotto cliccando sul nome del file:</p>
<p>Error: Could not open whereIs.py</p>
]]></content:encoded>
			<wfw:commentRss>http://www.antonellocicchese.com/2006/02/17/posizionamento-su-google/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Motion detection</title>
		<link>http://www.antonellocicchese.com/2006/02/08/motion-detection/</link>
		<comments>http://www.antonellocicchese.com/2006/02/08/motion-detection/#comments</comments>
		<pubDate>Wed, 08 Feb 2006 14:00:49 +0000</pubDate>
		<dc:creator>antonello</dc:creator>
				<category><![CDATA[Guide]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.antonellocicchese.com/2006/02/08/motion-detection/</guid>
		<description><![CDATA[Un interessante articolo sul Motion Detection in Python, è stato pubblicato sul blog di gumu&#8217;z devlog

Invito tutti quanti a leggerlo, trovo sorprendente la potenza di questo linguaggio e la facilità d&#8217;uso, con una manciata di linee di codice è possibile portare a termine anche i compiti più complessi.
L&#8217;articolo originale si trova a questo indirizzo: python [...]]]></description>
			<content:encoded><![CDATA[<p>Un interessante articolo sul <strong>Motion Detection </strong>in Python, è stato pubblicato sul blog di <a title="Gumu'z devlog" href="http://gumuz.looze.net/">gumu&#8217;z devlog<br />
</a></p>
<p>Invito tutti quanti a leggerlo, trovo sorprendente la potenza di questo linguaggio e la facilità d&#8217;uso, con una manciata di linee di codice è possibile portare a termine anche i compiti più complessi.</p>
<p>L&#8217;articolo originale si trova a questo indirizzo: <a title="python webcam fun motion detection" href="http://gumuz.looze.net/wordpress/index.php/archives/2005/06/06/python-webcam-fun-motion-detection/">python webcam fun motion detection</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.antonellocicchese.com/2006/02/08/motion-detection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
