<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4819023452935229433</id><updated>2011-09-25T20:32:43.455+02:00</updated><category term='log4j'/><category term='linux'/><category term='jquery'/><category term='hibernate'/><category term='imageshack api'/><category term='compatibilità'/><category term='javascript'/><category term='java'/><category term='php'/><category term='internet explorer'/><category term='web'/><category term='immagini'/><category term='HTML'/><category term='OpenSSL'/><category term='recupero file'/><category term='SSL'/><category term='sicurezza'/><category term='png'/><category term='pdf'/><category term='openoffice'/><category term='certificati'/><title type='text'>Appunti di Informatica</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://zenitlab.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4819023452935229433/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://zenitlab.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Michele</name><uri>http://www.blogger.com/profile/04237483130272969910</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>13</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4819023452935229433.post-7199478336918189425</id><published>2011-09-25T20:32:00.000+02:00</published><updated>2011-09-25T20:32:43.475+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='hibernate'/><category scheme='http://www.blogger.com/atom/ns#' term='log4j'/><title type='text'>Hibernate e log4j</title><content type='html'>&lt;span class="Apple-style-span" style="background-color: white; color: #545454; font-family: Verdana, Helvetica, Arial, sans-serif; font-size: 12px; line-height: 14px;"&gt;&lt;/span&gt;&lt;br /&gt;Nella modalità di debug, &lt;a href="http://www.hibernate.org/"&gt;Hibernate&lt;/a&gt; effettua un logging molto approfondito, comprendendo ad esempio le query SQL ed i valori delle variabili assegnate. Questi log possono essere di grande aiuto per lo sviluppatore, il quale però si trova molto spesso davanti ad un elenco interminabile di log sullo stdout. Nasce quindi la necessità di avere il pieno controllo del flusso dei log con l'utilizzo di un valido strumento di logging, come&amp;nbsp;&lt;a href="http://logging.apache.org/log4j/1.2/index.html"&gt;log4j&lt;/a&gt;. Grazie a log4j è possibile, ad esempio, redirezionare il flusso di alcuni log su un file, sullo standard input, oppure escluderli completamente.&amp;nbsp;&lt;div&gt;&lt;a href="http://www.hibernate.org/"&gt;Hibernate&lt;/a&gt; usa &lt;a href="http://www.slf4j.org/"&gt;slf4j&lt;/a&gt; quale gestore di log e, al fine di delegare il controllo a log4j è indispensabile svolgere i seguenti semplici passi:&lt;br /&gt;&lt;br /&gt;1. Copiare i jar log4j, slf4j-api e slf4j-log4j nel classpath. Le seguenti versioni sono state testate personalmente log4j-1.2.15.jar [&lt;a href="http://archive.apache.org/dist/logging/log4j/1.2.15/apache-log4j-1.2.15.zip"&gt;link diretto&lt;/a&gt;], slf4j-api-1.5.3.jar e slf4j-log4j12-1.5.3.jar [&lt;a href="http://www.slf4j.org/dist/slf4j-1.5.3.zip"&gt;link diretto&lt;/a&gt;].&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. Configurare il file log4j.xml (o log4j.properties) ed inserirlo nel classpath. &lt;br /&gt;&lt;br /&gt;Per maggiori informazioni ed esempi sul log4j.xml si trovano sulla &lt;a href="http://wiki.apache.org/logging-log4j/Log4jXmlFormat"&gt;pagina dedicata del sito ufficiale&lt;/a&gt;.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4819023452935229433-7199478336918189425?l=zenitlab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zenitlab.blogspot.com/feeds/7199478336918189425/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://zenitlab.blogspot.com/2011/09/hibernate-e-log4j.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4819023452935229433/posts/default/7199478336918189425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4819023452935229433/posts/default/7199478336918189425'/><link rel='alternate' type='text/html' href='http://zenitlab.blogspot.com/2011/09/hibernate-e-log4j.html' title='Hibernate e log4j'/><author><name>Michele</name><uri>http://www.blogger.com/profile/04237483130272969910</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4819023452935229433.post-2426048524516137860</id><published>2011-07-27T22:18:00.009+02:00</published><updated>2011-07-27T23:26:32.770+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>Trasformare il tasto &lt;invio&gt; in &lt;tab&gt; nelle form HTML</title><content type='html'>&lt;div style="text-align: justify;"&gt;Molto spesso, mentre si compilano i campi di una form html, può venire spontaneo battere il tasto invio senza voler fare il submit della form. Tuttavia, salvo diversi accorgimenti, si ottiene così proprio il submit della form.&lt;/div&gt;&lt;div style="text-align: justify;"&gt;In un'applicazione web, in cui vengono inseriti molti dati attraverso la tastiera, può essere utile assegnare al tasto d'invio lo stesso comportamento del tasto tab. Il seguente script, che ho trovato &lt;a href="http://codeigniter.com/forums/viewthread/121358/"&gt;in un post&lt;/a&gt; sul forum codeigniter.com, fa uso di jQuery e fa al caso nostro. Ad ogni pressione del tasto invio sui campi di classe "enter" il focus viene spostato al campo successivo (di classe "enter"), a meno che non ci troviamo sull'ultimo campo (di classe "enter").&lt;/div&gt;&lt;br /&gt;&lt;pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; color: #000000; background-color: #eee;font-size: 12px;border: 1px dashed #999999;line-height: 14px;padding: 5px; overflow: auto; width: 100%"&gt;&lt;code&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;$(document).ready(function(){&lt;br /&gt;    $(&amp;quot;input&amp;quot;).addClass(&amp;quot;enter&amp;quot;); //se necessario, rimuovere questa linea e assegnare la class=&amp;quot;enter&amp;quot; ai soli campi sui quali si desidera trasformare enter in tab&lt;br /&gt;    $(&amp;quot;select&amp;quot;).addClass(&amp;quot;enter&amp;quot;); //se necessario, rimuovere questa linea e assegnare la class=&amp;quot;enter&amp;quot; ai soli campi sui quali si desidera trasformare enter in tab&lt;br /&gt;    if ($.browser.mozilla) {&lt;br /&gt;        $(&amp;quot;.enter&amp;quot;).keypress(checkForEnter);&lt;br /&gt;    } else {&lt;br /&gt;        $(&amp;quot;.enter&amp;quot;).keydown(checkForEnter);&lt;br /&gt;    }&lt;br /&gt;});&lt;br /&gt;function checkForEnter(event) {&lt;br /&gt;    var lfound = false;&lt;br /&gt;    if (event.keyCode == 13) {&lt;br /&gt;        var obj = this;&lt;br /&gt;        $(&amp;quot;.enter&amp;quot;).each(function() {&lt;br /&gt;            if (this == obj) {&lt;br /&gt;                lfound = true&lt;br /&gt;            } else {&lt;br /&gt;                if (lfound) {&lt;br /&gt;                    $(this).focus()&lt;br /&gt;                    $(this).select();&lt;br /&gt;                    event.preventDefault();&lt;br /&gt;                    return false;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        });&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4819023452935229433-2426048524516137860?l=zenitlab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zenitlab.blogspot.com/feeds/2426048524516137860/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://zenitlab.blogspot.com/2011/07/trasformare-il-tasto-in-nelle-form-html.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4819023452935229433/posts/default/2426048524516137860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4819023452935229433/posts/default/2426048524516137860'/><link rel='alternate' type='text/html' href='http://zenitlab.blogspot.com/2011/07/trasformare-il-tasto-in-nelle-form-html.html' title='Trasformare il tasto &amp;lt;invio&amp;gt; in &amp;lt;tab&amp;gt; nelle form HTML'/><author><name>Michele</name><uri>http://www.blogger.com/profile/04237483130272969910</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4819023452935229433.post-7930291330062677978</id><published>2011-05-06T18:21:00.000+02:00</published><updated>2011-05-06T18:21:50.700+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Apache e Tomcat</title><content type='html'>&lt;a href="http://httpd.apache.org/"&gt;Apache HTTP Server&lt;/a&gt; è un web server che permette l'accesso a uno o più siti presenti sul server sul quale è installato. Molto spesso Apache HTTP Server viene utilizzato nella piattaforma &lt;a href="http://it.wikipedia.org/wiki/LAMP_(piattaforma)"&gt;LAMP&lt;/a&gt;&amp;nbsp;(Linux, Apache, MySQL, PHP) rendendo i siti web accessibili e disponibili sulla porta 80 (la porta predefinita per la navigazione web). &lt;br /&gt;&lt;br /&gt;&lt;div&gt;Quando si sviluppano applicazioni web in &lt;a href="http://www.oracle.com/technetwork/java/index.html"&gt;Java&lt;/a&gt;, c'è bisogno di una piattaforma che consenta di eseguire applicazioni web scritte in questo linguaggio. Le più utilizzate sono &lt;a href="http://tomcat.apache.org/"&gt;Tomcat&lt;/a&gt;, &lt;a href="http://www.jboss.org/"&gt;JBoss&lt;/a&gt; e &lt;a href="http://glassfish.java.net/"&gt;Glassfish&lt;/a&gt;. Queste piattaforme, denominate web container (alcune sono più di un web container), restano in ascolto solitamente sulla porta 8080 e quindi, a meno di digitare il numero della porta nell'URL (esempio, www.example.com:8080), nasce l'esigenza di accedere all'applicazione web più comodamente, magari con un dominio diverso o attraverso un sottodominio. &lt;br /&gt;&lt;br /&gt;Per configurare Apache affinché possa "trasferire" il traffico da un determinato sottodominio al web container, si procede come segue:&lt;br /&gt;a) installare attivare i moduli proxy, proxy_http e rewrite di Apache&lt;br /&gt;b)  inserire un nuovo VirtualHost (il file si trova in /etc/apache2/httpd.conf oppure /etc/httpd/conf/httpd.conf , dipende dall'installazione di Apache) con la seguente configurazione&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&amp;lt;proxy&amp;gt;&lt;br /&gt;Order deny,allow&lt;br /&gt;Allow from all&lt;br /&gt;&amp;lt;/proxy&amp;gt;&lt;br /&gt;ProxyRequests Off&lt;br /&gt;ProxyPreserveHost On&lt;br /&gt;ProxyVia On&lt;br /&gt;RewriteEngine On&lt;br /&gt;RewriteRule ^/alfresco/(.*) /$1 [PT]&lt;br /&gt;ProxyPass / &lt;a href="http://localhost:8080/alfresco/"&gt;http://localhost:8080/alfresco/&lt;/a&gt;&lt;br /&gt;ProxyPassReverse / &lt;a href="http://localhost:8080/alfresco/"&gt;http://localhost:8080/alfresco/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4819023452935229433-7930291330062677978?l=zenitlab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zenitlab.blogspot.com/feeds/7930291330062677978/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://zenitlab.blogspot.com/2011/05/apache-e-tomcat.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4819023452935229433/posts/default/7930291330062677978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4819023452935229433/posts/default/7930291330062677978'/><link rel='alternate' type='text/html' href='http://zenitlab.blogspot.com/2011/05/apache-e-tomcat.html' title='Apache e Tomcat'/><author><name>Michele</name><uri>http://www.blogger.com/profile/04237483130272969910</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4819023452935229433.post-7598550731961938329</id><published>2010-12-26T13:03:00.001+01:00</published><updated>2010-12-26T13:05:14.780+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Linux e avvio automatico di demoni</title><content type='html'>Su Linux, per avviare un demone all'avvio del PC, bisogna inserire lo script nella directory /etc/init.d/ e creare un link simbolico in uno o più runlevel:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;0 - Halt&lt;/li&gt;&lt;li&gt;1 - Single-user text mode&lt;/li&gt;&lt;li&gt;2 - Not used (user-definable)&lt;/li&gt;&lt;li&gt;3 - Full multi-user text mode&lt;/li&gt;&lt;li&gt;4 - Not used (user-definable)&lt;/li&gt;&lt;li&gt;5 - Full multi-user graphical mode (with an X-based login screen)&lt;/li&gt;&lt;li&gt;6 - Reboot&lt;/li&gt;&lt;/ul&gt;In Ubuntu, per velocizzare la creazione dei link simbolici nei runlevel esiste il comando &lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;update-rc.d&lt;/span&gt; . Il suo utilizzo è molto semplice:&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;update-rc.d nomedemone defaults&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;In CentOS esiste un metodo più avanzato per mantenere i link simbolici, con il comando &lt;span class="command" style="font-family: 'Courier New', Courier, monospace;"&gt;chkconfig&lt;/span&gt;&lt;span class="command" style="font-family: inherit;"&gt;. Il suo utilizzo è altrettanto facile:&lt;/span&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;&lt;/code&gt;&lt;code&gt;chkconfig --list&lt;/code&gt;&lt;br /&gt;&lt;code&gt;chkconfig --add foo&lt;/code&gt;&lt;br /&gt;&lt;code&gt;chkconfig --del foo&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;/code&gt;&lt;br /&gt;&lt;ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4819023452935229433-7598550731961938329?l=zenitlab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zenitlab.blogspot.com/feeds/7598550731961938329/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://zenitlab.blogspot.com/2010/12/linux-e-avvio-automatico-di-demoni.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4819023452935229433/posts/default/7598550731961938329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4819023452935229433/posts/default/7598550731961938329'/><link rel='alternate' type='text/html' href='http://zenitlab.blogspot.com/2010/12/linux-e-avvio-automatico-di-demoni.html' title='Linux e avvio automatico di demoni'/><author><name>Michele</name><uri>http://www.blogger.com/profile/04237483130272969910</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4819023452935229433.post-7993026156200043573</id><published>2010-12-26T13:01:00.002+01:00</published><updated>2010-12-26T13:02:22.339+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pdf'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='openoffice'/><title type='text'>Convertire doc e odt in pdf</title><content type='html'>Convertire i file doc e odt in pdf è una procedura alquanto semplice con la libreria &lt;a href="http://www.artofsolving.com/opensource/jodconverter"&gt;JODConverter&lt;/a&gt;. Innanzitutto bisogna installare &lt;a href="http://openoffice.org/"&gt;OpenOffice.org&lt;/a&gt; e metterlo in ascolto sulla porta 8100 con il comando:&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;soffice -headless -accept="socket,port=8100;urp;"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Una volta &lt;a href="http://sourceforge.net/projects/jodconverter/files/"&gt;scaricato il pacchetto&lt;/a&gt; JODConverter, la conversione dei documenti avviene con il comando:&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;java -jar jodconverter-cli-x.x.x.jar &lt;input-document&gt; &lt;output-document&gt;&lt;/output-document&gt;&lt;/input-document&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Un campo di applicazione di questa tecnica è, ad esempio, il caso in cui un'applicazione web debba creare dinamicamente pdf a partire da campi inseriti dall'utente, uniti in un modello doc (o odt).&lt;br /&gt;&lt;br /&gt;Siti utili:&lt;br /&gt;&lt;a href="http://code.google.com/p/openmeetings/wiki/OpenOfficeConverter"&gt;http://code.google.com/p/openmeetings/wiki/OpenOfficeConverter&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4819023452935229433-7993026156200043573?l=zenitlab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zenitlab.blogspot.com/feeds/7993026156200043573/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://zenitlab.blogspot.com/2010/12/convertire-doc-e-odt-in-pdf.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4819023452935229433/posts/default/7993026156200043573'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4819023452935229433/posts/default/7993026156200043573'/><link rel='alternate' type='text/html' href='http://zenitlab.blogspot.com/2010/12/convertire-doc-e-odt-in-pdf.html' title='Convertire doc e odt in pdf'/><author><name>Michele</name><uri>http://www.blogger.com/profile/04237483130272969910</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4819023452935229433.post-6545967648271465143</id><published>2010-09-18T00:16:00.000+02:00</published><updated>2010-09-18T00:16:10.080+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>20 tools per il monitoraggio di sistemi Linux</title><content type='html'>&lt;a href="http://www.cyberciti.biz/tips/top-linux-monitoring-tools.html"&gt;Interessantissimo articolo&lt;/a&gt; (in inglese) che suggerisce 20 tools utili per il monitoraggio di sistemi Linux: top, ps, vmstat, netstat e molti altri, corredati da alcune brevi indicazioni di utilizzo, per una consultazione facile e veloce.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4819023452935229433-6545967648271465143?l=zenitlab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zenitlab.blogspot.com/feeds/6545967648271465143/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://zenitlab.blogspot.com/2010/09/20-tools-per-il-monitoraggio-di-sistemi.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4819023452935229433/posts/default/6545967648271465143'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4819023452935229433/posts/default/6545967648271465143'/><link rel='alternate' type='text/html' href='http://zenitlab.blogspot.com/2010/09/20-tools-per-il-monitoraggio-di-sistemi.html' title='20 tools per il monitoraggio di sistemi Linux'/><author><name>Michele</name><uri>http://www.blogger.com/profile/04237483130272969910</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4819023452935229433.post-409153519968770491</id><published>2010-09-10T14:35:00.001+02:00</published><updated>2010-09-10T14:36:12.998+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>Editor HTML per programmi Java</title><content type='html'>&lt;a href="http://www.hexidec.com/ekit.php"&gt;EKIT&lt;/a&gt; è un editor HTML da inserire nei frame Java, oppure come applet in una pagina web. Molto facile da usare ed è, ovviamente, open source.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4819023452935229433-409153519968770491?l=zenitlab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zenitlab.blogspot.com/feeds/409153519968770491/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://zenitlab.blogspot.com/2010/09/editor-html-per-programmi-java.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4819023452935229433/posts/default/409153519968770491'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4819023452935229433/posts/default/409153519968770491'/><link rel='alternate' type='text/html' href='http://zenitlab.blogspot.com/2010/09/editor-html-per-programmi-java.html' title='Editor HTML per programmi Java'/><author><name>Michele</name><uri>http://www.blogger.com/profile/04237483130272969910</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4819023452935229433.post-1722623395669993791</id><published>2010-09-10T14:28:00.002+02:00</published><updated>2010-09-10T14:29:40.422+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='recupero file'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Linux: recupero file e diagnosi</title><content type='html'>&lt;a href="http://www.ultimatebootcd.com/"&gt;Ultimate Boot CD&lt;/a&gt; è una distribuzione live di Linux molto utile per recuperare file, analizzare dischi ed effettuare diagnosi su sistemi operativi corrotti.&lt;br /&gt;Con più di 100 programmi di utilità è utilissima per chi fa assistenza tecnica e per tutti addetti ai lavori!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4819023452935229433-1722623395669993791?l=zenitlab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zenitlab.blogspot.com/feeds/1722623395669993791/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://zenitlab.blogspot.com/2010/09/linux-per-recupero-sistemi.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4819023452935229433/posts/default/1722623395669993791'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4819023452935229433/posts/default/1722623395669993791'/><link rel='alternate' type='text/html' href='http://zenitlab.blogspot.com/2010/09/linux-per-recupero-sistemi.html' title='Linux: recupero file e diagnosi'/><author><name>Michele</name><uri>http://www.blogger.com/profile/04237483130272969910</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4819023452935229433.post-2877146481304896366</id><published>2010-08-02T15:03:00.002+02:00</published><updated>2010-08-03T14:38:46.989+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='immagini'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='imageshack api'/><title type='text'>ImageShack API</title><content type='html'>Un metodo sicuro ed efficace di upload e condivisione di immagini è utilizzare i siti di image hosting, come il celebre &lt;a href="http://imageshack.us/" target="_blank"&gt;ImageShack&lt;/a&gt;. Oltre a fare upload attraverso il sito, ImageShack offre la possibilità, utilizzando le &lt;a href="http://code.google.com/p/imageshackapi/wiki/ImageshackAPI" target="_blank"&gt;sue API&lt;/a&gt;, di integrare l'upload all'interno del proprio sito web, in modo semplice, sicuro ed invisibile all'utente. I passi da seguire sono altrettanto semplici. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;La key&lt;/b&gt;. La prima cosa da fare è &lt;a href="http://stream.imageshack.us/content.php?page=email&amp;amp;q=marketing&amp;amp;sub=XML%20API%20Request" target="_blank"&gt;ottenere una key&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Le API di ImageShack&lt;/b&gt;. Le API usano la tecnologia &lt;a href="http://it.wikipedia.org/wiki/REST" target="_blank"&gt;REST&lt;/a&gt; e, per semplificarne l'utilizzo, consiglio di &lt;a href="http://www.megaupload.com/?d=ALX4CQUD" target="_blank"&gt;scaricare la classe ImageShack&lt;/a&gt;, scritta da &lt;a href="http://elliottback.com/wp/using-the-imageshack-xml-api/" target="_blank"&gt;Elliott C. Back&lt;/a&gt; e leggermente modificata da me perché non funzionante con la nuova versione delle API. Questa classe si occupa della comunicazione con il servizio di ImageShack. &lt;br /&gt;Per utilizzarla basta invocare il metodo &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;upload(FILE)&lt;/span&gt;, che invia il file al servizio ImageShack, e poi utilizzare i metodi &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;get_image_url(), get_thumb_url(), get_resolution()&lt;/span&gt; per avere, ad esempio, l'URL dell'immagine inviata, l'URL della miniatura, la risoluzione.&lt;br /&gt;&lt;br /&gt;L'unica variabile da personalizzare all'interno di questa classe è la key: &lt;br /&gt;&lt;pre&gt;$postData['&lt;span style="color: black;"&gt;key&lt;/span&gt;'] = "&lt;span style="color: purple;"&gt;MY ASSIGNED KEY&lt;/span&gt;";&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Il form di upload&lt;/b&gt;. Nel file &lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;form.html&lt;/span&gt; scriveremo il codice HTML relativo al form di upload&lt;br /&gt;&lt;pre&gt;&amp;lt;form action="&lt;span style="color: red;"&gt;upload.php&lt;/span&gt;" enctype="multipart/form-data" method="post"&amp;gt;&lt;br /&gt;&amp;lt;input name="MAX_FILE_SIZE" type="hidden" value="1048576" /&amp;gt;&lt;br /&gt;&amp;lt;input name="&lt;span style="color: lime;"&gt;fileupload&lt;/span&gt;" size="10" type="file" /&amp;gt;&lt;br /&gt;&amp;lt;input name="submit" type="submit" value="Salva immagine" /&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;L'invio del file ad ImageShack&lt;/b&gt;. Infine, nel file &lt;span style="color: red; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;upload.php&lt;/span&gt; scriveremo il codice PHP che invia l'immagine, ricevuta da &lt;span style="color: blue; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;form.html&lt;/span&gt;, al servizio ImageShack e fornisce le utili informazioni del file inviato, quali URL dell'immagine, URL della miniatura (thumbnail), dimensione del file, ecc.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;require_once('ImageShack.php');&lt;br /&gt;$im = new ImageShack();&lt;br /&gt;$im-&amp;gt;upload($_FILES['&lt;span style="color: lime;"&gt;fileupload&lt;/span&gt;']);&lt;br /&gt;echo "URL immagine: ".$im-&amp;gt;get_image_url();&lt;br /&gt;echo "URL miniatura: ".$im-&amp;gt;get_thumb_url();&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4819023452935229433-2877146481304896366?l=zenitlab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zenitlab.blogspot.com/feeds/2877146481304896366/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://zenitlab.blogspot.com/2010/08/imageshack-api.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4819023452935229433/posts/default/2877146481304896366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4819023452935229433/posts/default/2877146481304896366'/><link rel='alternate' type='text/html' href='http://zenitlab.blogspot.com/2010/08/imageshack-api.html' title='ImageShack API'/><author><name>Michele</name><uri>http://www.blogger.com/profile/04237483130272969910</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4819023452935229433.post-5682104441050545994</id><published>2010-07-22T15:01:00.003+02:00</published><updated>2010-07-22T15:02:52.255+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Finestre nel Web</title><content type='html'>Segnalo un plugin che consente di creare delle finestre in una pagina Web. &lt;br /&gt;&lt;br /&gt;Si chiama &lt;a target="_blank" href="http://pupunzi.com/#mb.components/mb.containerPlus/containerPlus.html"&gt;mb.ContainerPlus&lt;/a&gt;, usa il framework &lt;a  target="_blank" href="http://jquery.com/"&gt;jQuery&lt;/a&gt; ed è scritto dall'italianissimo &lt;a  target="_blank" href="http://pupunzi.open-lab.com/"&gt;Matteo Bicocchi&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4819023452935229433-5682104441050545994?l=zenitlab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zenitlab.blogspot.com/feeds/5682104441050545994/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://zenitlab.blogspot.com/2010/07/finestre-nel-web.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4819023452935229433/posts/default/5682104441050545994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4819023452935229433/posts/default/5682104441050545994'/><link rel='alternate' type='text/html' href='http://zenitlab.blogspot.com/2010/07/finestre-nel-web.html' title='Finestre nel Web'/><author><name>Michele</name><uri>http://www.blogger.com/profile/04237483130272969910</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4819023452935229433.post-7750422600153209368</id><published>2010-07-21T22:54:00.007+02:00</published><updated>2010-07-22T15:03:14.808+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SSL'/><category scheme='http://www.blogger.com/atom/ns#' term='certificati'/><category scheme='http://www.blogger.com/atom/ns#' term='sicurezza'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenSSL'/><title type='text'>Creazione di certificati SSL con OpenSSL</title><content type='html'>&lt;a href="http://www.openssl.org/" target="_blank"&gt;OpenSSL&lt;/a&gt; è una implementazione del protocollo SSL. E' un programma open source ed è disponibile sia per Windows che per Linux.&lt;br /&gt;Con OpenSSL si possono creare facilmente dei certificati. Vediamo come.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Generazione del proprio Certificate Authority.&lt;/span&gt; Si genera una chiave con l'algoritmo des3 nel file ca.key; dopo si genera il vero e proprio certificato, valido per 365 giorni, nel file ca.crt&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;openssl genrsa -des3 -out ca.key 4096&lt;br /&gt;openssl req -new -x509 -days 365 -key ca.key -out ca.crt&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Con il secondo comando verranno chieste alcune informazioni dell'Ente Certificatore (nessuna di queste è obbligatoria): Country Name, Province Name, Locality Name, Organization Name, ecc.&lt;br /&gt;Ora abbiamo il certificato che useremo per &lt;span style="font-style: italic;"&gt;firmare&lt;/span&gt; altri certificati. Quindi va tenuto al sicuro!&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Generazione di un secondo certificato.&lt;/span&gt; Si genera una chiave con l'algoritmo des3 nel file server.key e poi si genera la &lt;span style="font-style: italic;"&gt;richiesta di firma&lt;/span&gt; del certificato, nel file server.csr&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;openssl genrsa -des3 -out server.key 4096&lt;br /&gt;openssl req -new -key server.key -out server.csr&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Anche qui, con il secondo comando verranno chieste alcune informazioni (nessuna di queste è obbligatoria): Country Name, Province Name, Locality Name, Organization Name, ecc.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Firma della richiesta.&lt;/span&gt; Il certificato viene salvato nel file server.crt, è valido 365 giorni ed è firmato dall'&lt;span style="font-style: italic;"&gt;Ente Certificatore&lt;/span&gt; (cioè noi). Bisogna avere cura di incrementare di 1 il serial (vedi parametro set_serial) e consiglio di mantenere una mappa di (serial, nome organizzazione)&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;openssl x509 -req -days 365 -in server.csr \&lt;br /&gt;-CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;L'uso che si può fare dei certificati è vario: crittare file ed email o usarlo in Apache per ottenere una comunicazione sicura SSL.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4819023452935229433-7750422600153209368?l=zenitlab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zenitlab.blogspot.com/feeds/7750422600153209368/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://zenitlab.blogspot.com/2010/07/creazione-di-certificati-ssl-con.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4819023452935229433/posts/default/7750422600153209368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4819023452935229433/posts/default/7750422600153209368'/><link rel='alternate' type='text/html' href='http://zenitlab.blogspot.com/2010/07/creazione-di-certificati-ssl-con.html' title='Creazione di certificati SSL con OpenSSL'/><author><name>Michele</name><uri>http://www.blogger.com/profile/04237483130272969910</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4819023452935229433.post-3880959373773774887</id><published>2010-07-21T21:46:00.006+02:00</published><updated>2010-07-21T23:55:15.027+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='internet explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='compatibilità'/><title type='text'>Javascript e appendChild</title><content type='html'>Ho riscontrato una incompatibilità di Internet Explorer con il metodo appendChild di Javascript. L'obiettivo era quello di creare delle option (con il metodo createElement) e di annidarle dentro una select (con il metodo appendChild), il quale si è rivelato, appunto, incompatibile con Internet Explorer. &lt;br /&gt;&lt;br /&gt;Ecco la soluzione:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;var select1 = document.getElementById('select1');&lt;br /&gt;var opt = document.createElement('option');&lt;br /&gt;opt.value = "Valore";&lt;br /&gt;opt.text = "Testo";&lt;br /&gt;//select1.appendChild(opt); // INCOMPATIBILE CON IE&lt;br /&gt;select1.options.add(opt);   // OK&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4819023452935229433-3880959373773774887?l=zenitlab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zenitlab.blogspot.com/feeds/3880959373773774887/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://zenitlab.blogspot.com/2010/07/javascript-e-appendchild.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4819023452935229433/posts/default/3880959373773774887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4819023452935229433/posts/default/3880959373773774887'/><link rel='alternate' type='text/html' href='http://zenitlab.blogspot.com/2010/07/javascript-e-appendchild.html' title='Javascript e appendChild'/><author><name>Michele</name><uri>http://www.blogger.com/profile/04237483130272969910</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4819023452935229433.post-2032299033040962356</id><published>2010-07-21T11:00:00.008+02:00</published><updated>2010-07-22T15:03:41.261+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='png'/><category scheme='http://www.blogger.com/atom/ns#' term='internet explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='compatibilità'/><title type='text'>Immagini PNG compatibili con Internet Explorer</title><content type='html'>Internet Explorer fino alla versione 6 non supporta la trasparenza delle immagini PNG (Portable Network Graphics). &lt;br /&gt;Un metodo che risolve questo problema consiste nell'importare nello stile della pagina uno script HTC.&lt;br /&gt;&lt;br /&gt;I passi da seguire sono semplici:&lt;br /&gt;1) estrarre i file contenuti in &lt;a target="_blank" href="http://webfx.eae.net/download/pngbehavior102.zip"&gt;questo zip&lt;/a&gt; in una directory&lt;br /&gt;2) copiare nel foglio di stile il seguente codice, che richiama il file pngbehavior.htc:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;blockquote&gt;img {&lt;br /&gt;behavior: url("pngbehavior.htc");&lt;br /&gt;}&lt;/blockquote&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;In alternativa, è possibile inserire questo codice nel file HTML, avendo cura di racchiuderlo nel tag style&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4819023452935229433-2032299033040962356?l=zenitlab.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://zenitlab.blogspot.com/feeds/2032299033040962356/comments/default' title='Commenti sul post'/><link rel='replies' type='text/html' href='http://zenitlab.blogspot.com/2010/07/immagini-png-compatibili-con-internet.html#comment-form' title='0 Commenti'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4819023452935229433/posts/default/2032299033040962356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4819023452935229433/posts/default/2032299033040962356'/><link rel='alternate' type='text/html' href='http://zenitlab.blogspot.com/2010/07/immagini-png-compatibili-con-internet.html' title='Immagini PNG compatibili con Internet Explorer'/><author><name>Michele</name><uri>http://www.blogger.com/profile/04237483130272969910</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
