<?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>ZenGFX.net &#187; Tutorial</title>
	<atom:link href="http://www.blog.zengfx.net/category/tutorial/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.blog.zengfx.net</link>
	<description>Graphic &#38; Informatic Resources</description>
	<lastBuildDate>Tue, 10 May 2011 10:11:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Convertitore bbcode to html</title>
		<link>http://www.blog.zengfx.net/2009/11/23/convertitore-bbcode-to-html/</link>
		<comments>http://www.blog.zengfx.net/2009/11/23/convertitore-bbcode-to-html/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 03:10:44 +0000</pubDate>
		<dc:creator>Logan</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Array]]></category>
		<category><![CDATA[BBCode]]></category>
		<category><![CDATA[Convertitore]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[ln2br]]></category>
		<category><![CDATA[str_replace]]></category>

		<guid isPermaLink="false">http://www.blog.zengfx.net/?p=513</guid>
		<description><![CDATA[Quante volte abbiamo avuto bisogno di avere un semplice convertitore di BBCODE in HTML? Il BBCODE è una realtà ed è ampiamente utilizzato in quasi tutte le communiti ed i siti per vari motivi che variano dalla semplicità d&#8217;uso alla sicurezza stessa di un sito. Tuttavia realizzare un convertitore non è poi una cosa semplicissima. [...]]]></description>
			<content:encoded><![CDATA[<p>Quante volte abbiamo avuto bisogno di avere un semplice convertitore di BBCODE in HTML?<br />
Il BBCODE è una realtà ed è ampiamente utilizzato in quasi tutte le communiti ed i siti per vari motivi che variano dalla semplicità d&#8217;uso alla sicurezza stessa di un sito.<br />
Tuttavia realizzare un convertitore non è poi una cosa semplicissima.<br />
Esistono svariate soluzioni, javascript, php, ma io ve ne mostrerò una molto semplice che usa degli array ed uno string replace in PHP.<br />
Ovviamente se affiancherete questa funzione con strumenti migliori di sicurezza, quale la <a href="/2009/11/23/eliminare-tag-html-in-una-stringa/" target ="_blank">strip_tags</a> vista precedentemente, non farete altro che migliorare la sicurezza del vostro sito.</p>
<p>Ecco la funzione che vi permetterà di effettuare la conversione:</p>
<pre class="brush: php">
function bb2tohtml($testo){
  $bbcode = array(&quot;&lt;&quot;, &quot;&gt;&quot;,
                &quot;[list]&quot;, &quot;[*]&quot;, &quot;[/list]&quot;,
                &quot;[img]&quot;, &quot;[/img]&quot;,
                &quot;[b]&quot;, &quot;[/b]&quot;,
                &quot;[u]&quot;, &quot;[/u]&quot;,
                &quot;[i]&quot;, &quot;[/i]&quot;,
                &#039;[color=&quot;&#039;, &quot;[/color]&quot;,
                &quot;[size=\&quot;&quot;, &quot;[/size]&quot;,
                &#039;[url=&quot;&#039;, &quot;[/url]&quot;,
                &quot;[code]&quot;, &quot;[/code]&quot;,
                &#039;&quot;]&#039;);
  $html = array(&quot;&lt;&quot;, &quot;&gt;&quot;,
                &quot;&lt;ul&gt;&quot;, &quot;&lt;li&gt;&quot;, &quot;&lt;/ul&gt;&quot;,
                &quot;&lt;img src=\&quot;&quot;, &quot;\&quot;&gt;&quot;,
                &quot;&lt;b&gt;&quot;, &quot;&lt;/b&gt;&quot;,
                &quot;&lt;u&gt;&quot;, &quot;&lt;/u&gt;&quot;,
                &quot;&lt;i&gt;&quot;, &quot;&lt;/i&gt;&quot;,
                &quot;&lt;span style=\&quot;color:&quot;, &quot;&lt;/span&gt;&quot;,
                &quot;&lt;span style=\&quot;font-size:&quot;, &quot;&lt;/span&gt;&quot;,
                &#039;&lt;a href=&quot;&#039;, &quot;&lt;/a&gt;&quot;,
                &quot;&lt;code&gt;&quot;, &quot;&lt;/code&gt;&quot;,
                &#039;&quot;&gt;&#039;);
  $testo = str_replace($bbcode, $html, $testo);
  $testo = nl2br($testo);
  return $testo;
}
</pre>
<p>Molto semplice da implementare. basta inserirla nei vostri script e richiamarla, penserà a tutto lei.<br />
Ovviamente potrete aggiungere nuovi tag bbcode semplicemente aggiungendo nuovi elementi nell&#8217;array ma badate bene, le posizioni del tag HTML e quello BBCode all&#8217;interno dell&#8217;array, devono coincidere!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.zengfx.net/2009/11/23/convertitore-bbcode-to-html/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eliminare Tag HTML in una stringa</title>
		<link>http://www.blog.zengfx.net/2009/11/23/eliminare-tag-html-in-una-stringa/</link>
		<comments>http://www.blog.zengfx.net/2009/11/23/eliminare-tag-html-in-una-stringa/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 02:33:29 +0000</pubDate>
		<dc:creator>Logan</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Espressioni Regolari]]></category>
		<category><![CDATA[Filtri]]></category>
		<category><![CDATA[strip_tags. HTML]]></category>

		<guid isPermaLink="false">http://www.blog.zengfx.net/?p=510</guid>
		<description><![CDATA[Spesso succede che ci troviamo nella condizione di dover filtrare le stringhe che si ricevono attraverso degli input in modo tale che queste non contengano al loro interno del codice dannoso. Una delle solite soluzione è l&#8217;utilizzo di espressioni regolari che servono a filtrare i caratteri speciali HTML in modo tale che questi possano essere [...]]]></description>
			<content:encoded><![CDATA[<p>Spesso succede che ci troviamo nella condizione di dover filtrare le stringhe che si ricevono attraverso degli input in modo tale che queste non contengano al loro interno del codice dannoso.<br />
Una delle solite soluzione è l&#8217;utilizzo di espressioni regolari che servono a filtrare i caratteri speciali HTML in modo tale che questi possano essere eliminati.<br />
Tuttavia usare le espressioni regolari implica il saperle consocere non che, alle volte, si rende necessario abilitare l&#8217;HTML solamente per alcune specifiche tag.<br />
Tutto questo richiederebbe un lavoro non indifferente di filtraggio che può essere svolto attraverso la praticissima funzione massa a disposizione da PHP, parliamo di <b>strip_tags</b>.</p>
<p>Vediamo un esempio:</p>
<p>Supponiamo di avere una stringa e di questa volessimo rendere disponibili per HTML solamente alcuni comandi. per farlo dovremmo quindi impostare un filtro.<br />
La stringa che verrà quindi filtrata, vedrà essere eliminati tutti quei tag HTML che non rientrano nel filtro dei consentiti.</p>
<p>Ad esempio se volessimo che gli unici tag utilizzabili fossero:</p>
<pre class="brush: html">
&lt;font&gt;&lt;img&gt;&lt;p&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;li&gt;&lt;ul&gt;&lt;br&gt;
</pre>
<p>Dovremmo fare così:</p>
<pre class="brush: php">
$Testo=strip_tags($Testo,&#039;&lt;font&gt;&lt;img&gt;&lt;p&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;li&gt;&lt;ul&gt;&lt;br&gt;&#039;);
</pre>
<p>Che significa: sulla stringa contenuta in testo, elimina tutti i TAG HTML che non siano quelli forniti come parametro.</p>
<p>Se applicassimo questo comando PHP ad una stringa come in questo esempio:</p>
<pre class="brush: php">
$Testo=&quot;&lt;font color=&#039;#444000&#039;&gt;Ciao mondo&lt;/font&gt;&lt;br&gt;&lt;br&gt;&lt;img src=&#039;http://www.zengfx.net/signage/Mila_Kunis_Sign_by_LoganDTR.jpg&#039; /&gt; &lt;br&gt;&lt;a href=&#039;blog.zengfx.net&#039;&gt;blog&lt;/a&gt;&quot;;
$Testo=strip_tags($Testo,&#039;&lt;font&gt;&lt;img&gt;&lt;p&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;li&gt;&lt;ul&gt;&lt;br&gt;&#039;);
echo $Testo;
</pre>
<p>Il risultato sarà esattamente la stringa offerta in HTML meno il link al blog contenuto nel tag a che sarà rimosso lasciando solo la scritta semplice &#8220;blog&#8221;.</p>
<blockquote></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.zengfx.net/2009/11/23/eliminare-tag-html-in-una-stringa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MixPod Patch 2.0</title>
		<link>http://www.blog.zengfx.net/2009/10/20/mixpod-patch-2-0/</link>
		<comments>http://www.blog.zengfx.net/2009/10/20/mixpod-patch-2-0/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 14:18:27 +0000</pubDate>
		<dc:creator>Logan</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[GDR/CD]]></category>
		<category><![CDATA[Mixpod]]></category>
		<category><![CDATA[MP3]]></category>
		<category><![CDATA[Playlist]]></category>
		<category><![CDATA[Plugin]]></category>

		<guid isPermaLink="false">http://www.blog.zengfx.net/?p=487</guid>
		<description><![CDATA[Ho aggiornato la versione del lettore mp3 mixpod.com con nuove interessanti novità senza contare dei controlli aggiuntivi che lo rendono molto più pratico all&#8217;uso per gli utenti meno esperti. Le aggiunte che sono state fatte sono le seguenti: Javascript per l&#8217;aggiunta di una palette di selezione colori con anteprima Javascript per il controllo dei campi [...]]]></description>
			<content:encoded><![CDATA[<p>Ho aggiornato la versione del lettore mp3 mixpod.com con nuove interessanti novità senza contare dei controlli aggiuntivi che lo rendono molto più pratico all&#8217;uso per gli utenti meno esperti.<br />
Le aggiunte che sono state fatte sono le seguenti:</p>
<ol>
<li>Javascript per l&#8217;aggiunta di una palette di selezione colori con anteprima</li>
<li>Javascript per il controllo dei campi dati inseriti.</li>
</ol>
<p>Questa è un anteprima della palette per l&#8217;inserimento dei colori:</p>
<p align="center"><img src="/immagini/mixpod2/color.jpg" alt="Palette Colori" /></p>
<p>Ed invece qui un anteprima del form di inserimento dei dati per il lettore:</p>
<p align="center"><img src="/immagini/mixpod2/pannello.jpg" alt="Inserimento dati" /></p>
<p><span id="more-487"></span><br />
<strong>Cosa fa?</strong></p>
<p>Il plug-in permette di inserire all&#8217;interno del proprio sito un pratico form da compilare con anteprima dei colori e selezione della skin che permetterà di utilizzare il proprio account di mixpod.com senza bisogno di conoscere nulla di HTML e senza dover inserire alcun codice.<br />
Grazie alla palette, sarà facoltativo anche ricavare i colori della propria playlist, infatti, potranno praticamente essere scelti ed inseriti automaticamente, proprio come la skin.</p>
<p><strong>Come si installa?</strong></p>
<p>All&#8217;interno del pacchetto troverete i seguenti file:<br />
<em><br />
scheda.php<br />
scheda3.php<br />
mixpod.js<br />
301a.js<br />
musica.sql<br />
README.txt</em></p>
<p><strong>Javascript</strong></p>
<p>Il primo passo è semplicemente quello di mettere nella cartella principale del sito, o dove meglio preferite l&#8217;importante che poi ricordiate di modificare il path nel richiamare lo script, i due file.js che serviranno per il corretto funzionamento del plug-in.<br />
E&#8217; bene spendere nello specifico alcune parole per i due script.</p>
<p><em><strong>301a.js</strong></em></p>
<p>Al suo interno troverete tutte le indicazioni sotto forma di commenti, ricordo che è stato realizzato da <a href="http://www.free-color-picker.com" target="_blank">http://www.free-color-picker.com</a> al suo interno troverete anche le avvertenze d&#8217;uso ossia, non modificare in alcun modo lo script per garantirne il corretto funzionamento.</p>
<p><em><strong>Mixpod.js</strong></em></p>
<p>questo è stato realizzato da me e semplicemente fa il controllo sui dati inseriti ossia, i tre colori e l&#8217;id.</p>
<pre class="brush: javascript">
function checkMixPod(){
	var test = true;
	var id = document.dati.myid.value;
	var color1 = document.dati.color1.value;
	var color2 = document.dati.color2.value;
	var color3 = document.dati.color3.value;
	var espressione = /^#+[A-Fa-f0-9]{6}/;

	if ((isNaN(id))||(parseInt(id)!=id)){
		alert(&quot;Hai inserito un numero ID non valido, ricontrollalo!&quot;);
		document.dati.myid.focus();
		test = false;
	}
	if ((color1 == &quot;&quot;)||(color1.length !=7)||(!(espressione.test(color1)))){
		alert(&quot;Codice colore 1 non valido, inserire un valore esadecimale a 6 cifre preceduto da #&quot;);
		document.dati.color1.focus();
		test = false;
	}
	if ((color2 == &quot;&quot;)||(color2.length != 7)||(!(espressione.test(color2)))){
		alert(&quot;Codice colore 2 non valido, inserire un valore esadecimale a 6 cifre preceduto da #&quot;);
		document.dati.color2.focus();
		test = false;
	}
	if ((color3 == &quot;&quot;)||(color3.length != 7)||(!(espressione.test(color3)))){
		alert(&quot;Codice colore 3 non valido, inserire un valore esadecimale a 6 cifre preceduto da #&quot;);
		document.dati.color3.focus();
		test = false;
	}
	return test;
}
</pre>
<p>Lo script si assicura che l&#8217;invio dei dati venga bloccato nel caso in cui:</p>
<ol>
<li>L&#8217;ID non è un intero</li>
<li>Il colore non è in una forma valida</li>
</ol>
<p>Per il colore vale spendere due parole, esso controlla fondamentalmente che la stringa non sia vuota, che sia lunga 7 caratteri (6 del codice colore e uno per il cancelletto) e con un espressione regolare controlla che le stringhe inizino sempre con # ed abbiano i caratteri compresi tra AF af e 09.</p>
<p>Se questo non dovesse essere vero, allora restituirà un alert comunicando il messaggio d&#8217;errore e dove si è verificato bloccando l&#8217;invio per consentire all&#8217;utente di inserire i dati corretti.</p>
<p><strong>SQL</strong></p>
<p>Fatto questo, si passerà alla modifica del database, vi basterà semplicemente importare in esso il file musica.sql che apporterà le modifiche necessarie alla tabella Personaggio.</p>
<pre class="brush: sql">
ALTER TABLE Personaggio ADD MyID integer(11) default &#039;0&#039;;
ALTER TABLE Personaggio ADD Skin varchar(30) default &#039;myflashfetish-mp3-player.swf&#039;;
ALTER TABLE Personaggio ADD Color1 varchar(6) default &#039;000000&#039;;
ALTER TABLE Personaggio ADD Color2 varchar(6) default &#039;000000&#039;;
ALTER TABLE Personaggio ADD Color3 varchar(6) default &#039;000000&#039;;
</pre>
<p><strong>Scheda.php</strong></p>
<p>Le modifiche da apportare qui non sono molto differenti da quelle fatte nella versione 1.0 se non per ulteriori semplici controlli.<br />
Comunque nel codice base, sono presenti dei commenti molto semplici che vi permetteranno di capire da dove iniziano e dove finiscono le modifiche.<br />
Le troverete alle seguenti posizioni del file che scaricherete dal sito:<br />
Riga 24-30</p>
<pre class="brush: php">
 $myid = ereg_replace(&quot;[^0-9 ]&quot;, &quot;0&quot;, $_POST[&#039;myid&#039;]);
 $skin = ereg_replace(&quot;[^A-Za-z0-9.-]&quot;, &quot;0&quot;, $_POST[&#039;skin&#039;]);
 $color1 =ereg_replace(&quot;[^A-Fa-f0-9 ]&quot;, &quot;0&quot;, substr($_POST[&#039;color1&#039;], -6));
 $color2 =ereg_replace(&quot;[^A-Fa-f0-9 ]&quot;, &quot;0&quot;, substr($_POST[&#039;color2&#039;],-6));
 $color3 =ereg_replace(&quot;[^A-Fa-f0-9 ]&quot;, &quot;0&quot;, substr($_POST[&#039;color3&#039;],-6));
</pre>
<p>Queste modifiche servono semplicemente a togliere il # dal codice esadecimale che viene passato come parametro (substr) ed aggiungere un controllo con un espressione regolare che ci assicura ulteriormente che, i valori ricevuti siano effettivamente compresi tra AF, af, 09 per i codici esadecimali e controlla che l&#8217;ID sia un valore compreso tra 0 e 9 ossia un intero.</p>
<p>Le altre modifiche le troverete dalla riga 179 alla 185:</p>
<pre class="brush: php">
$myid =trim($myid);
$skin =trim($skin);
$color1 =trim($color1);
$color2 =trim($color2);
$color3 =trim($color3);
</pre>
<p>Poi per l&#8217;inserimento si andrà a modificare la query alla riga 238-244</p>
<pre class="brush: php">
$MySql .= &quot; MyID = &#039;&quot;.$myid.&quot;&#039;,&quot;;
$MySql .= &quot; Skin = &#039;&quot;.$skin.&quot;&#039;,&quot;;
$MySql .= &quot; Color1 = &#039;&quot;.$color1.&quot;&#039;,&quot;;
$MySql .= &quot; Color2 = &#039;&quot;.$color2.&quot;&#039;,&quot;;
$MySql .= &quot; Color3 = &#039;&quot;.$color3.&quot;&#039;&quot;;
</pre>
<p>Finita la parte di modifica per il salvataggio dei dati, andremo a modificare la visualizzazione della scheda per mostrare il nostro lettore MP3. Come sempre questa parte trova ampia personalizzazione dato che, non c&#8217;è un vero e proprio posto dove per esempio potevo collocarlo, ma starà al webmaster decidere dove e come posizionarlo nel modo più idoneo alla sua community.<br />
Le modifiche iniziano dalla riga 464 – 571.</p>
<pre class="brush: php">
&lt;?
if(($rs[&#039;MyID&#039;] != 0)){
	$height = 0;
	$width = 0;
.....
.....
&lt;tr&gt;&lt;td colspan=2 align=center&gt;
&lt;?
echo &quot;&lt;center&gt;&lt;p style=&#039;visibility:visible;&#039;&gt;&lt;embed src=&#039;http://assets.myflashfetish.com/swf/mp3/&quot;.$rs[&#039;Skin&#039;].&quot;?myid=&quot;.$rs[&#039;MyID&#039;].&quot;&amp;path=2009/09/27&#039; quality=&#039;high&#039; wmode=&#039;transparent&#039; flashvars=&#039;mycolor=&quot;.$rs[&#039;Color1&#039;].&quot;&amp;mycolor2=&quot;.$rs[&#039;Color2&#039;].&quot;&amp;mycolor3=&quot;.$rs[&#039;Color3&#039;].&quot;&amp;autoplay=true&amp;rand=0&amp;f=4&amp;vol=100&amp;pat=0&amp;grad=false&#039; width=&#039;&quot;.$width.&quot;&#039; height=&#039;&quot;.$height.&quot;&#039; name=&#039;myflashfetish&#039; salign=&#039;TL&#039; type=&#039;application/x-shockwave-flash&#039; pluginspage=&#039;http://www.macromedia.com/go/getflashplayer&#039; border=&#039;0&#039; style=&#039;visibility:visible;width:&quot;.$width.&quot;px;height:&quot;.$height.&quot;px;&#039; /&gt;&lt;/p&gt;&lt;/center&gt;&quot;;
?&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;? }; ?&gt;
</pre>
<p>E con queste sono finite le modifiche da fare al file, passiamo all&#8217;ultimo:</p>
<p><strong>scheda3.php</strong></p>
<p>Come prima cosa dobbiamo richiamare qui i due script che abbiamo caricato sul nostro server, questi dovranno essere collocati nell&#8217;head. Troverete le modifiche dalla linea 81-84</p>
<pre class="brush: javascript">
&lt;script src=&quot;mixpod.js&quot; type=&quot;text/javascript&quot; language=&quot;javascript&quot;&gt;&lt;/script&gt;
&lt;script src=&quot;301a.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
</pre>
<p>Fatto questo passiamo al form di inserimento, modifichiamo i suoi parametri come mostrato nella riga 112</p>
<pre class="brush: html">
&lt;form action=&quot;scheda.php?pg=&lt;?= urlencode($pg) ?&gt;&quot; method=&quot;POST&quot; name=&quot;dati&quot; onSubmit=&quot;return checkMixPod()&quot;&gt;
</pre>
<p>Ed infine dalla riga 166 fino alla 216 di cui ometterò il codice della selezione del lettore vista la sua semplicità per spendere qualche parola su quello per l&#8217;uso dello javascript.</p>
<pre class="brush: html">
	&lt;tr&gt;
    	&lt;td align=center colspan=3&gt;MyId &lt;br/&gt;
	    &lt;input type=&quot;text&quot; name=&quot;myid&quot; maxlength=&quot;8&quot; size=&quot;8&quot;  value=&quot;&lt;?=htmlspecialchars($rs[&quot;MyID&quot;])?&gt;&quot;/&gt;&lt;/td&gt;
    &lt;/tr&gt;
......
......
	&lt;tr&gt;
    	&lt;td align=center colspan=3&gt;Colore 1&lt;br/&gt;
        &lt;div id=&quot;colorpicker301&quot; class=&quot;colorpicker301&quot;&gt;&lt;/div&gt;
		&lt;input type=&quot;button&quot; onClick=&quot;showColorGrid3(&#039;color1&#039;,&#039;color11_sample&#039;);&quot; value=&quot;...&quot;&gt;&amp;nbsp;&lt;input type=&quot;text&quot; ID=&quot;color1&quot; name=&quot;color1&quot; maxlength=&quot;7&quot; size=&quot;7&quot; value=&quot;#&lt;?=htmlspecialchars($rs[&quot;Color1&quot;])?&gt;&quot;&gt;&amp;nbsp;&lt;input type=&quot;text&quot; ID=&quot;color11_sample&quot; size=&quot;1&quot; value=&quot;&quot; style=&quot;background-color:#&lt;?=htmlspecialchars($rs[&quot;Color1&quot;])?&gt;&quot;&gt;&lt;/td&gt;
    &lt;/tr&gt;
	&lt;tr&gt;
    	&lt;td align=center colspan=3&gt;Colore 2&lt;br/&gt;
        &lt;div id=&quot;colorpicker301&quot; class=&quot;colorpicker301&quot;&gt;&lt;/div&gt;
		&lt;input type=&quot;button&quot; onClick=&quot;showColorGrid3(&#039;color2&#039;,&#039;color12_sample&#039;);&quot; value=&quot;...&quot;&gt;&amp;nbsp;&lt;input type=&quot;text&quot; ID=&quot;color2&quot; name=&quot;color2&quot; maxlength=&quot;7&quot; size=&quot;7&quot; value=&quot;#&lt;?=htmlspecialchars($rs[&quot;Color2&quot;])?&gt;&quot;&gt;&amp;nbsp;&lt;input type=&quot;text&quot; ID=&quot;color12_sample&quot; size=&quot;1&quot; value=&quot;&quot; style=&quot;background-color:#&lt;?=htmlspecialchars($rs[&quot;Color2&quot;])?&gt;&quot;&gt;&lt;/td&gt;
    &lt;/tr&gt;
	&lt;tr&gt;
    	&lt;td align=center colspan=3&gt;Colore 3&lt;br/&gt;
        &lt;div id=&quot;colorpicker301&quot; class=&quot;colorpicker301&quot;&gt;&lt;/div&gt;
		&lt;input type=&quot;button&quot; onClick=&quot;showColorGrid3(&#039;color3&#039;,&#039;color13_sample&#039;);&quot; value=&quot;...&quot;&gt;&amp;nbsp;&lt;input type=&quot;text&quot; ID=&quot;color3&quot; maxlength=&quot;7&quot; name=&quot;color3&quot; size=&quot;7&quot; value=&quot;#&lt;?=htmlspecialchars($rs[&quot;Color3&quot;])?&gt;&quot;&gt;&amp;nbsp;&lt;input type=&quot;text&quot; ID=&quot;color13_sample&quot; size=&quot;1&quot; value=&quot;&quot; style=&quot;background-color:#&lt;?=htmlspecialchars($rs[&quot;Color3&quot;])?&gt;&quot;&gt;&lt;/td&gt;
    &lt;/tr&gt;
</pre>
<p>Semplicemente il javascript prevede l&#8217;aggiunta di una casella di testo come anteprima che io ho pensato bene di rendere disponibile anche nel momento in cui la scheda venga aperta e non solamente quando si seleziona un colore dalla palette.<br />
Ovviamente si da spazio alla libera modifica.</p>
<p>Tutto qui, buon divertimento con il vostro plug-in!</p>
Note: There is a file embedded within this post, please visit this post to download the file.
]]></content:encoded>
			<wfw:commentRss>http://www.blog.zengfx.net/2009/10/20/mixpod-patch-2-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vista ed XP non si vedono un una LAN</title>
		<link>http://www.blog.zengfx.net/2009/10/17/vista-ed-xp-non-si-vedono-un-una-lan/</link>
		<comments>http://www.blog.zengfx.net/2009/10/17/vista-ed-xp-non-si-vedono-un-una-lan/#comments</comments>
		<pubDate>Sat, 17 Oct 2009 13:51:01 +0000</pubDate>
		<dc:creator>Logan</dc:creator>
				<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Firewall]]></category>
		<category><![CDATA[FIX]]></category>
		<category><![CDATA[LAN]]></category>
		<category><![CDATA[Rete]]></category>
		<category><![CDATA[Vista]]></category>
		<category><![CDATA[XP]]></category>

		<guid isPermaLink="false">http://www.blog.zengfx.net/?p=483</guid>
		<description><![CDATA[Può accadere che si voglia installare una rete domestica nel proprio appartamento, ad esempio per chi come me possiede un portatile ed un PC fisso, avere una rete lan sicuramente è un vantaggio soprattutto per poter scambiare rapidamente i file. Con Windows Vista e Windows XP spesso però, non è molto facile permettere ai due [...]]]></description>
			<content:encoded><![CDATA[<p>Può accadere che si voglia installare una rete domestica nel proprio appartamento, ad esempio per chi come me possiede un portatile ed un PC fisso, avere una rete lan sicuramente è un vantaggio soprattutto per poter scambiare rapidamente i file.<br />
Con Windows Vista e Windows XP spesso però, non è molto facile permettere ai due computer di essere visibili nella mappa di rete. Dopo un po&#8217; di ricerche e soprattutto facendo un po&#8217; di considerazioni personali, sono riuscito ad arrivare ad una soluzione ovvia che vi illustrerò di seguito, in modo che anche voi possiate creare la vostra lan e risolvere i problemi di compatibilità tra Vista ed XP.</p>
<p>Consultando il sito della Microsoft, sono venuto a conoscenza che il problema non è legato a Vista, ma ad XP, che a quanto pare, non implementa il protocollo LLTD indispensabile a Vista per l&#8217;utilizzo della rete e la stesura della relativa mappa, quindi, otterremo l&#8217;ormai triste fenomeno di avere XP che visualizza Vista ma non il contrario.</p>
<p><strong>Come risolvere il problema?</strong></p>
<p>Semplice, la Microsoft a <a href="http://support.microsoft.com/kb/922120" target="_blank">questo</a> indirizzo, mette a disposizione un semplice fix che permette a XP di comunicare con Vista e quindi di implementare la rete in modo semplice e rapido.<br />
Tutto quello che dovrete fare, è scaricare il fix che vi verrà inviato via e-mail con tanto di codice per decomprimerlo, installarlo, riavviare il PC e, a meno di firewall, Vista ed XP si vedranno vicendevolmente consentendo l&#8217;installazione di una LAN.</p>
<p>Questa è la semplice risoluzione ad un problema che attanaglia ormai molti.</p>
<p>Ovviamente, va detto per completezza, che Windows, sia XP che Vista, può essere protetto da un firewall che potrebbe richiede l&#8217;apertura di determinate porte per poter effettuare lo scambio di messaggio tra i due o più terminali.<br />
<em>Le porte in questione sono: 137 – 138 – 139 – 445<br />
</em>Queste regole solitamente nel Windows Firewall sono già aggiunte come eccezioni, ma ovviamente, non tutti i firewall le hanno preimpostate.<br />
E&#8217; buona norma quindi quella di controllare sempre, in caso di malfunzionamenti quali:</p>
<p>1. Vista vede XP ma non il contrario<br />
2. XP Vede Vista ma non il contrario<br />
3. XP e Vista si vedono ma non trovano il percorso di rete nel trasferire i file</p>
<p>che nel proprio firewall su ogni PC siano aggiunte le dovute regole.</p>
<p>Dato che il mondo firewall è vasto, non tratterò in questo articolo nello specifico il come aprire le porte, ma eventualmente lo farò in articoli successivi.</p>
<p>A presto!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.zengfx.net/2009/10/17/vista-ed-xp-non-si-vedono-un-una-lan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Profile Image Fix</title>
		<link>http://www.blog.zengfx.net/2009/10/01/profile-image-fix/</link>
		<comments>http://www.blog.zengfx.net/2009/10/01/profile-image-fix/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 12:31:44 +0000</pubDate>
		<dc:creator>Logan</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://www.blog.zengfx.net/?p=473</guid>
		<description><![CDATA[Quello che spesso succede nei codici OS è che mancano alcune rifiniture che rendono esteticamente più bello il nostro sito. Uno dei problemi del GDR/CD è che usando il BBCode le immagini nel profilo non possono essere limitate. Questo FIX si occupa molto semplicemente di ridimensionare le immagini qualora superino la dimenzione prefissata dall&#8217;amministratore. I [...]]]></description>
			<content:encoded><![CDATA[<p>Quello che spesso succede nei codici OS è che mancano alcune rifiniture che rendono esteticamente più bello il nostro sito.<br />
Uno dei problemi del GDR/CD è che usando il BBCode le immagini nel profilo non possono essere limitate. Questo FIX si occupa molto semplicemente di ridimensionare le immagini qualora superino la dimenzione prefissata dall&#8217;amministratore.</p>
<p>I file da modificare sono: <em>open2.php</em> e <em>main.css</em><br />
Come sempre su base GDR/CD Extented ma va benissimo anche per versioni precedenti.</p>
<p><strong>open2.php</strong><br />
Apriamo il file ed andiamo alla riga 47 e sostituire</p>
<pre class="brush: php">
$testo=str_replace(&quot;[/img]&quot;,&quot;&#039; border=0&gt;&quot;,$testo);
</pre>
<p>Con:</p>
<pre class="brush: php">
$testo=str_replace(&quot;[/img]&quot;,&quot;&#039; ID=&#039;scheda&#039;/&gt;&quot;,$testo);
</pre>
<p>andate alla riga 82 e sostituire:</p>
<pre class="brush: php">
$testo=str_replace(&quot;[/IMG]&quot;,&quot;&#039; border=0&gt;&quot;,$testo);
</pre>
<p>Con:</p>
<pre class="brush: php">
$testo=str_replace(&quot;[/IMG]&quot;,&quot;&#039; ID=&#039;scheda&#039;&gt;&quot;,$testo);
</pre>
<p><strong>main.css</strong><br />
Semplicemente andate alla fine del file ed aggiungete la classe CSS che vi permetterà di gestire le immagini all&#8217;interno del profilo della scheda:</p>
<pre class="brush: css">
img#scheda{
	max-width:500px;
	width:expression(this.width &gt; 500 ? 500: true );
}
</pre>
<p>Finito, comunque metterò i due file in download per ogni evenienza. Sono testati e funzionanti.</p>
<p>Un saluto ed a presto!</p>
Note: There is a file embedded within this post, please visit this post to download the file.
]]></content:encoded>
			<wfw:commentRss>http://www.blog.zengfx.net/2009/10/01/profile-image-fix/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Flash Avatar</title>
		<link>http://www.blog.zengfx.net/2009/10/01/flash-avatar/</link>
		<comments>http://www.blog.zengfx.net/2009/10/01/flash-avatar/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 10:26:21 +0000</pubDate>
		<dc:creator>Logan</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Avatar]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[GDR/CD]]></category>

		<guid isPermaLink="false">http://www.blog.zengfx.net/?p=469</guid>
		<description><![CDATA[Questo nuovo plug-in veramente molto semplice, permetterà di personalizzare ancora di più il vostro GDR/CD Extended. Molto probabilmente il codice funzionerà anche sulle versioni precedenti dato che la modifica apportate sono davvero irrisorie. Cosa fa? Questo plug-in, senza alcuna modifica al database, permette di inserire nelle schede degli avatar realizzati in flash. Come si installa? [...]]]></description>
			<content:encoded><![CDATA[<p>Questo nuovo plug-in veramente molto semplice, permetterà di personalizzare ancora di più il vostro GDR/CD Extended.<br />
Molto probabilmente il codice funzionerà anche sulle versioni precedenti dato che la modifica apportate sono davvero irrisorie.<br />
<strong>Cosa fa?</strong><br />
Questo plug-in, <em>senza alcuna modifica al database</em>, permette di inserire nelle schede degli avatar realizzati in flash.<br />
<strong>Come si installa?</strong><br />
L&#8217;installazione è davvero molto semplice e prevede una sola singola modifica al file <em>scheda.php</em>. Andiamo a vedere quale:</p>
<p>Andate alla riga 332 e sostituite questo codice:</p>
<pre class="brush: php">
&lt;img width=200 height=200 src=&quot;&lt;?= $UrlImg ?&gt;&quot; border=&quot;2&quot; bordercolor=&quot;brown&quot;&gt;
</pre>
<p>Con questo:</p>
<pre class="brush: php">
&lt;?
$ext = strtolower(substr($UrlImg,strlen($string)-3,3));
if ($ext==&quot;swf&quot;){
?&gt;
&lt;embed src=&quot;&lt;?= $UrlImg ?&gt;&quot; quality=&quot;high&quot; wmode=&quot;transparent&quot; width=&quot;200&quot; height=&quot;200&quot; name=&quot;avatar&quot; align=&quot;middle&quot; allowScriptAccess=&quot;sameDomain&quot; type=&quot;application/x-shockwave-flash&quot; pluginspage=&quot;http://www.macromedia.com/go/getflashplayer&quot; /&gt;
&lt;?
}
else{
?&gt;
&lt;img width=200 height=200 src=&quot;&lt;?= $UrlImg ?&gt;&quot; border=&quot;2&quot; bordercolor=&quot;brown&quot;&gt;
&lt;? } ?&gt;
</pre>
<p>Inutile dirvi che potrete personalizzare il codice come meglio crediate.<br />
Le dimensioni degli avatar da me sono state fissate a 200&#215;200 ma ovviamente, sta a voi adattarle alle vostre esigenze.</p>
<p>A presto!</p>
Note: There is a file embedded within this post, please visit this post to download the file.
]]></content:encoded>
			<wfw:commentRss>http://www.blog.zengfx.net/2009/10/01/flash-avatar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MixPod Patch 1.0</title>
		<link>http://www.blog.zengfx.net/2009/09/28/mixpod-patch-1-0/</link>
		<comments>http://www.blog.zengfx.net/2009/09/28/mixpod-patch-1-0/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 12:38:58 +0000</pubDate>
		<dc:creator>Logan</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[GDR/CD]]></category>
		<category><![CDATA[MicPod]]></category>
		<category><![CDATA[Patch]]></category>
		<category><![CDATA[Plug In]]></category>

		<guid isPermaLink="false">http://www.blog.zengfx.net/?p=457</guid>
		<description><![CDATA[Questo script è stato realizzato da me per permettere a tutti quei gestori che, non vogliono abilitare l&#8217;HTML nelle schede della loro community l&#8217;html ma che, tuttavia, desiderano concedere ad essi la possibilità di inserire una playlist Come piattaforma da utilizzare ho scelto il noto mixpod.com che sembra essere il fornitore di playlist più utilizzato [...]]]></description>
			<content:encoded><![CDATA[<p>Questo script è stato realizzato da me per permettere a tutti quei gestori che, non vogliono abilitare l&#8217;HTML nelle schede della loro community l&#8217;html ma che, tuttavia, desiderano concedere ad essi la possibilità di inserire una playlist<br />
Come piattaforma da utilizzare ho scelto il noto <a href="http://www.mixpod.com/" target="_blank">mixpod.com</a> che sembra essere il fornitore di playlist più utilizzato dai giocatori di tutte le community basate sul codice di Romeo Gentile.</p>
<p>Tutte le informazioni relative a cosa fa questo plugin potrete trovarle all&#8217;interno del file <em>README.txt</em> contenuto nel pacchetto in cui troverete:</p>
<ol>
<li>README.txt</li>
<li>musica.sql</li>
<li>scheda.php</li>
<li>scheda3.php</li>
</ol>
<p><span id="more-457"></span><br />
<strong>Cosa fa?</strong><br />
Questo script permette di inserire all&#8217;interno delle schede dei personaggi<br />
un lettore tratto da <a href="http://www.mixpod.com/" target="_blank">mixpod.com</a></p>
<p><strong>Come si usa?</strong><br />
Quando si sceglierà di modificare la scheda del proprio personaggio, l&#8217;utente<br />
avrà a disposizione una scelta molto semplice addizionale a quella che già avrete<br />
previsto per la vostra community.<br />
Compariranno i campi:</p>
<ol>
<li><strong>MyID</strong> &#8211; l&#8217;ID della playlist su mixpod</li>
<li><strong>Skin </strong>- si potrà selezionare la skin direttamente da mixpod</li>
<li><strong>Color 1,2,3</strong> &#8211; i colori in esadecimale per il proprio lettore</li>
</ol>
<p>questi valori sono limitati in input, il primo è limitato a 8 ma dato il crescente numero<br />
si playlist du <a href="http://www.mixpod.com/" target="_blank">mixpod.com</a>, il valore è espandibile fino ad 11 cifre (valore ragionevolmente grande).</p>
<p>il file <em>musica.sql</em> si occuperà di aggiornare la tabella personaggio del database<br />
in modo tale da permettere la memorizzazione di questi valori all&#8217;interno della scheda<br />
del personaggio. Di default sono posti tutti a 0.</p>
<p>Il file <em>scheda.php</em> contiene le modifiche necessarie per inserire i dati passati da<br />
<em>scheda3.php</em> all&#8217;interno del database ed ovviamente per recuperarli ed inserirli<br />
nel codice standard del lettore.</p>
<p>PS: il lettore deve essere posizionato a discrezione del programmatore all&#8217;interno della scheda<br />
Io l&#8217;ho posizionato così, senza premura, sta a voi sistemarlo come si conviene.</p>
<p>Se il valore di MyID è nullo viene posto a 0.<br />
Se l&#8217;id della playlist è nullo o zero, allora questa non viene visualizzata.</p>
<p><strong>Come si installa?</strong></p>
<p>Tengo a precisare ancora una volta che, non ho scritto un codice con grafica ossia, mini help, CSS, posizionamento nella scheda. No, ho inserito dei commenti la dove ho modificato lasciando l&#8217;incombenza della grafica al programmatore che l&#8217;adatterà a sua scelta alla propria community.<br />
Andiamo a vedere e commentare quali sono le parti del codice che sono state aggiunte all&#8217;interno dei vari file:<br />
<strong>musica.sql</strong></p>
<pre class="brush: sql">
ALTER TABLE Personaggio ADD MyID integer(11) default &#039;0&#039;;
ALTER TABLE Personaggio ADD Skin varchar(30) default &#039;myflashfetish-mp3-player.swf&#039;;
ALTER TABLE Personaggio ADD Color1 varchar(6) default &#039;000000&#039;;
ALTER TABLE Personaggio ADD Color2 varchar(6) default &#039;000000&#039;;
ALTER TABLE Personaggio ADD Color3 varchar(6) default &#039;000000&#039;;
</pre>
<p>Questo file è fondamentale dato che, modificherà la tabella personaggio e quindi consentirà di memorizzare le impostazioni della playlist di <a href="http://www.mixpod.com/" target="_blank">mixpod.com</a>.</p>
<p><strong>Scheda3.php</strong></p>
<p>Questo file consente di modificare la scheda. Semplicemente ho aggiunto dei campi che permettono di aggiungere i dati della playlist:</p>
<ol>
<li><strong>MyID:</strong> ovviamente contiene l&#8217;id della playlist ed è un intero a 8 cifre</li>
<li><strong>Skin:</strong> è una combobox con la scelta delle skin disponibili su mixpod</li>
<li><strong>Colori:</strong> i colori in formato esadecimale, limitati ovviamente a 6 caratteri.</li>
</ol>
<p>Premendo invio questi dati sono inviati a <em>Scheda.php</em><br />
<em>L&#8217;aggiunta va dalla riga 161 alla riga 207</em>.</p>
<p><strong>Scheda.php</strong></p>
<p>Qui le modifiche sono state più sostanziali.</p>
<p>Come vedrete nei commenti, quello che mi sono limitato a fare è aggiungere la ricezione dei parametri da <em>Scheda3.php</em> e quindi inserirli nelle query.<br />
E&#8217; fondamentale che nella prima parte rispettiate l&#8217;esatto ordine in cui ho modificato il file, ci sono dei vistosi commenti. <br/><br />
Aggiungere sotto:</p>
<pre class="brush: php">
$capacita = $_POST[&#039;capacita&#039;];
</pre>
<p>Questo:</p>
<pre class="brush: php">
//RACCOLTA DATI LETTORE
 $myid = ereg_replace(&quot;[^0-9 ]&quot;, &quot;0&quot;, $_POST[&#039;myid&#039;]);
 $skin = $_POST[&#039;skin&#039;];
 $color1 =ereg_replace(&quot;[^A-Fa-f0-9 ]&quot;, &quot;0&quot;, $_POST[&#039;color1&#039;]);
 $color2 =ereg_replace(&quot;[^A-Fa-f0-9 ]&quot;, &quot;0&quot;, $_POST[&#039;color2&#039;]);
 $color3 =ereg_replace(&quot;[^A-Fa-f0-9 ]&quot;, &quot;0&quot;, $_POST[&#039;color3&#039;]);
 //FINE
</pre>
<p>Aggiungere sotto:</p>
<pre class="brush: php">
$midi = trim($midi);
</pre>
<p>Questo:</p>
<pre class="brush: php">
 //VARIABILI PER LETTORINO
 $myid =trim($myid);
 $skin =trim($skin);
 $color1 =trim($color1);
 $color2 =trim($color2);
 $color3 =trim($color3);
 //FINE VARIABILI PER LETTOTINO
</pre>
<p>Aggiungere sotto:</p>
<pre class="brush: php">
 $MySql .= &quot; UrlImg = &#039;&quot;.$urlimg.&quot;&#039;,&quot;;
</pre>
<p>Questo:</p>
<pre class="brush: php">
	//AGGIUNTA LETTORE QUERY
	$MySql .= &quot; MyID = &#039;&quot;.$myid.&quot;&#039;,&quot;;
	$MySql .= &quot; Skin = &#039;&quot;.$skin.&quot;&#039;,&quot;;
	$MySql .= &quot; Color1 = &#039;&quot;.$color1.&quot;&#039;,&quot;;
	$MySql .= &quot; Color2 = &#039;&quot;.$color2.&quot;&#039;,&quot;;
	$MySql .= &quot; Color3 = &#039;&quot;.$color3.&quot;&#039;&quot;;
	//FINE AGGIUNTA
</pre>
<p>L&#8217;unica parte che potrete personalizzare a vostro piacimento è dalla linea 464 alla 561.</p>
<p>Ho inserito uno switch perché non volevo usare file esterni o accesso al database anche in vista di una facile modificabilità per modifiche future. Ma comunque liberi di personalizzare il vostro codice.</p>
<p>Inserite la porzione che vi ho indicato dove meglio credete all&#8217;interno del file <em>scheda.php</em> in modo tale che il lettore sia visibile.</p>
<p>Buon ascolto!<br />
Note: There is a file embedded within this post, please visit this post to download the file.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.zengfx.net/2009/09/28/mixpod-patch-1-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Riparare o eliminare Windows Live 2009</title>
		<link>http://www.blog.zengfx.net/2009/06/09/riparare-o-eliminare-windows-live-2009/</link>
		<comments>http://www.blog.zengfx.net/2009/06/09/riparare-o-eliminare-windows-live-2009/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 11:14:12 +0000</pubDate>
		<dc:creator>Logan</dc:creator>
				<category><![CDATA[Segnalazioni]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Cancellare Windows Live]]></category>
		<category><![CDATA[Clean MSN]]></category>
		<category><![CDATA[Eliminare Windows Live]]></category>
		<category><![CDATA[MSN]]></category>
		<category><![CDATA[Reinstallare MSN]]></category>
		<category><![CDATA[Windows Live 2009]]></category>

		<guid isPermaLink="false">http://www.blog.zengfx.net/?p=425</guid>
		<description><![CDATA[Quante volte è capitato di avere a che fare con dei brutti errori di MSN che non lasciano accedere al proprio account? Addirittura, spesso può capitare dopo inavvertite cancellazioni di chiavi di registro o file, avvenute ad opera di programmi per la pulizia, che neanche si riesce a disinstalare MSN. Esiste tuttavia una soluzione abbastanza [...]]]></description>
			<content:encoded><![CDATA[<p>Quante volte è capitato di avere a che fare con dei brutti errori di MSN che non lasciano accedere al proprio account?</p>
<p>Addirittura, spesso può capitare dopo inavvertite cancellazioni di chiavi di registro o file, avvenute ad opera di programmi per la pulizia, che neanche si riesce a disinstalare MSN.</p>
<p>Esiste tuttavia una soluzione abbastanza semplice offerta da due software gratuiti che, consentono di eliminare MSN o riparlarlo senza troppi fronzoli.</p>
<p>Vi rimando ai link dei relativi autori, io ho provato a distruggere il mio MSN semplicemente spostando le cartelle in c:/programmi sul desktop per vedere se, effettivamente i programmi fossero in grado di eliminare MSN e consentirmi una reinstallazione.</p>
<p>Risultato eccellente, hanno eliminato tutto ciò che riguardava Windows Live 2009 senza problemi consentendomi una successiva reinstallazione.</p>
<p>Note: There is a file embedded within this post, please visit this post to download the file.<br />
Note: There is a file embedded within this post, please visit this post to download the file.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.zengfx.net/2009/06/09/riparare-o-eliminare-windows-live-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Effetto Vintage</title>
		<link>http://www.blog.zengfx.net/2009/06/02/effetto-vintage/</link>
		<comments>http://www.blog.zengfx.net/2009/06/02/effetto-vintage/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 12:36:12 +0000</pubDate>
		<dc:creator>Logan</dc:creator>
				<category><![CDATA[Foto]]></category>
		<category><![CDATA[Photoshop]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Effetto Vintage]]></category>
		<category><![CDATA[Stazione]]></category>
		<category><![CDATA[Vintage]]></category>

		<guid isPermaLink="false">http://www.blog.zengfx.net/?p=415</guid>
		<description><![CDATA[In questo tutorial andremo a vedere in pochi semplici passi come ottenere sulle nostre foto, un effetto vintage davvero accattivante. Tutto quello da cui ci occorre partire è proprio una foto o immagine. Io per questo tutorial ne ho scelta una scattata da me: Quando avrete scelto, potremo iniziare. Adesso possiamo iniziare con la lavorazione. [...]]]></description>
			<content:encoded><![CDATA[<p>In questo tutorial andremo a vedere in pochi semplici passi come ottenere sulle nostre foto, un effetto vintage davvero accattivante.</p>
<p>Tutto quello da cui ci occorre partire è proprio una foto o immagine. Io per questo tutorial ne ho scelta una scattata da me:</p>
<p><img class="aligncenter size-full wp-image-416" title="1" src="http://www.blog.zengfx.net/wp-content/1.jpg" alt="1" width="600" height="402" /></p>
<p>Quando avrete scelto, potremo iniziare.</p>
<p align = "right">
<span id="more-415"></span>
</p>
<p>Adesso possiamo iniziare con la lavorazione. sarà tutto basato su Adjustment Layer. Iniziamo con un New Adjustment Layer per Brughtness/Contrast e impostiamolo come segue:</p>
<p><img class="aligncenter size-full wp-image-416" title="1" src="http://www.blog.zengfx.net/immagini/tut_vintage/2.png" alt="2" /></p>
<p>Questo è il risultato:</p>
<p><img class="aligncenter size-full wp-image-416" title="1" src="http://www.blog.zengfx.net/immagini/tut_vintage/3.jpg" alt="3" /></p>
<p>Adesso New Adjustment Layer -&gt; Hue Saturation e diamo questi valori:</p>
<p><img class="aligncenter size-full wp-image-416" title="1" src="http://www.blog.zengfx.net/immagini/tut_vintage/4.png" alt="4" /></p>
<p>Ottenendo questo:</p>
<p><img class="aligncenter size-full wp-image-416" title="1" src="http://www.blog.zengfx.net/immagini/tut_vintage/5.jpg" alt="5" /></p>
<p>Ora bisogna fare attenzione, andremo a giocare sulle curve quindi bisognerà far attenzione a come le imposteremo. New Adjustment Layer -&gt; Curves  e rispettivamente per il Rosso, Verde e Blu impostiamole come segue:</p>
<p><img class="aligncenter size-full wp-image-416" title="1" src="http://www.blog.zengfx.net/immagini/tut_vintage/6.png" alt="6" /></p>
<p><img class="aligncenter size-full wp-image-416" title="1" src="http://www.blog.zengfx.net/immagini/tut_vintage/7.png" alt="7" /></p>
<p><img class="aligncenter size-full wp-image-416" title="1" src="http://www.blog.zengfx.net/immagini/tut_vintage/8.png" alt="8" /></p>
<p>Ottenendo questo:</p>
<p><img class="aligncenter size-full wp-image-416" title="1" src="http://www.blog.zengfx.net/immagini/tut_vintage/9.jpg" alt="9" /></p>
<p>Una volta fatto questo, New Adjustment Layer -&gt; Hue / Saturation ed impostare come segue:</p>
<p><img class="aligncenter size-full wp-image-416" title="1" src="http://www.blog.zengfx.net/immagini/tut_vintage/10.png" alt="10" /></p>
<p>impostiamo a 50% l&#8217;Opacity Layer per ottenere questo:</p>
<p><img class="aligncenter size-full wp-image-416" title="1" src="http://www.blog.zengfx.net/immagini/tut_vintage/11.jpg" alt="11" /></p>
<p>Ed infine Layer -&gt; New Fill Layer -&gt; Solid Color e diamo un colore simile a questo:</p>
<p><img class="aligncenter size-full wp-image-416" title="1" src="http://www.blog.zengfx.net/immagini/tut_vintage/12.png" alt="12" /></p>
<p>Impostiamo l&#8217;Opacity Layer a 5% ottenendo questo:</p>
<p><img class="aligncenter size-full wp-image-416" title="11" src="http://www.blog.zengfx.net/immagini/tut_vintage/13.jpg" alt="13" /></p>
<p>Adesso giunge il tocco finale, possiamo procedere in due modi, il primo è  duplicarla con CRTL + J o in alternativa usare l&#8217;opzione Convert for Smart Filters nel menù Filter. Io ho scelto quest&#8217;ultima soluzione ed ho applicato il filtro Distort -&gt; Lens Correction dando nel menù Vignette del filtro i parameti Amount -100  e  Midpoint + 50.</p>
<p>Impostiamo un opacity di circa 60 &#8211; 70 % per questo filtro:</p>
<p><img class="aligncenter size-full wp-image-416" title="1" src="http://www.blog.zengfx.net/immagini/tut_vintage/14.png" alt="14" /></p>
<p>Ed ecco il risultato finale:</p>
<p><img class="aligncenter size-full wp-image-416" title="11" src="http://www.blog.zengfx.net/immagini/tut_vintage/15.jpg" alt="15" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.zengfx.net/2009/06/02/effetto-vintage/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>simple client server in java</title>
		<link>http://www.blog.zengfx.net/2009/03/15/simple-client-server-in-java/</link>
		<comments>http://www.blog.zengfx.net/2009/03/15/simple-client-server-in-java/#comments</comments>
		<pubDate>Sun, 15 Mar 2009 13:28:01 +0000</pubDate>
		<dc:creator>Logan</dc:creator>
				<category><![CDATA[JAVA]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[bufferedreader]]></category>
		<category><![CDATA[client]]></category>
		<category><![CDATA[inputstream]]></category>
		<category><![CDATA[programmazione]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[socket]]></category>

		<guid isPermaLink="false">http://www.blog.zengfx.net/?p=327</guid>
		<description><![CDATA[In questa breve guida tratteremo come realizzare una semplice implementazione di un sistema client/server realizzato in java. Andremo ad esporre con del codice java, come realizzare questi due moduli riportando il codice con delle spiegazioni passo passo su cosa servono le varie linee scritte. Ma descriviamo adesso un pò cosa fanno in linea di massima [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft" title="Java Code" src="http://img440.imageshack.us/img440/7858/schermatat.png" alt="" width="125" height="100" />In questa breve guida tratteremo come realizzare una semplice implementazione di un sistema client/server realizzato in java.</p>
<p>Andremo ad esporre con del codice java, come realizzare questi due moduli riportando il codice con delle spiegazioni passo passo su cosa servono le varie linee scritte.</p>
<p>Ma descriviamo adesso un pò cosa fanno in linea di massima questi due moduli che analizzaremo in dettaglio di seguito.</p>
<p><strong>Server:</strong></p>
<p>Il modulo server instaura una connessione con un client su richiesta, è strato introdotto un numero nella costante MAX_CONNECTION per limitare il numero massimo di client accettabili.</p>
<p>Una volta che il server avrà accettato la connessione con il client, egli inoltrerà la socket di riferimento ad una subroutine ausiliaria che avrà lo scopo di esaudire le sue richieste.</p>
<p>Nell&#8217;esempio mi sono limitato a far si che il client riceva una stringa e la stampi a video.</p>
<p style="text-align: right;"><span id="more-327"></span></p>
<p>Ecco adesso il codice del server:</p>
<pre class="brush: java">
package simpleserver;

/*Importiamo le librerie che ci serviranno*/

import java.io.*;
import java.net.*;

/**
 *
 * @author roberto
 */
public class Server {

    /*Definizione del numero massimo di connessioni*/
    private final static int MAX_CONNECTION = 10;

    /*Inizio procedura principale del server*/
    public static void StartServer(){
        /*Dichiaro la socket del server*/
        ServerSocket sk = null;
        /*Dichiaro la socket del client*/
        Socket client = null;
        /*variabile contatore per il numero massimo
         * di client*/
        int i = 0;

       /*Cattura degli errori nel caso in cui
        * si verificasse un eccesione IOException
        * nello stabilimento di una connessione
        * tra server e client*/
        try{
            /*Creo un nuovo socket del server in cui indico
             * il numero della porta 80 ed il numero massimo
             * di connessioni accettabili*/
            sk = new ServerSocket(8080, MAX_CONNECTION);

            /*ciclo per il limite di connessioni*/
            while(i &lt; MAX_CONNECTION){
                /*accetto la connessione del client*/
                client = sk.accept();
                /*evoco una subroutine che svolga le funzioni
                 * dedicate al client, si lascia libera implementa-
                 * zione all&#039;utente*/
                ServiziClient(client);
                i++;
            }
            /*chiusura della socket del server*/
            sk.close();
        }
        /*Gestione Errori*/
        catch(IOException e){
            System.out.println(&quot;Errore di I/O.&quot;);
        }
    }

    /*Questa procedura si occupa di una semplice lettura su canale aperto attraverso la socket,
     * del messaggio proveniente dal client in formato stringa.*/

    private static void ServiziClient(Socket s){
        try{
            BufferedReader br = new BufferedReader(new InputStreamReader(s.getInputStream()));
            String msg;
            while ((msg = br.readLine())!= null){
                System.out.println(msg);
            }
            br.close();
        }catch(IOException e){
            System.out.println(&quot;Errore nella lettura su canale&quot;);
        }
    }
}
</pre>
<p><strong>Client:</strong></p>
<p>Molto semplicemente si occupa di richiedere una connessione con il server e poi inoltrare ad esso una stringa.</p>
<p>Ecco adesso il codice del server:</p>
<pre class="brush: java">
package simpleclient;

/*Importiamo le librerie che ci serviranno*/

import java.io.*;
import java.net.*;

/**
 *
 * @author roberto
 */
public class Client {
    public static void StartClient(){
        /*Dichiaro la socket del server*/
        Socket s = null;
        /*Dichiaro il canale di scrittura*/
        PrintWriter pr = null;
        try{
            /*Connetto attravero la socket il client al server
             * localhost sulla porta 80*/
            s = new Socket(&quot;localhost&quot;, 8080);
            /*Apro il canale di scrittura attraverso la socket*/
            pr = new PrintWriter(s.getOutputStream());
            pr.print(&quot;Ciao server!&quot;);
            /*Chiudo in ordine il canale di scrittura e la socket*/
            pr.close();
            s.close();
        }
        /*Cattuto l&#039;errore di host sconosciuto che previene
         * eventuali url sbagliati del server*/
        catch(UnknownHostException e){
            System.out.println(&quot;Errore nel riconoscimento dell&#039;Host.&quot;);
        }
        /*Catturo eventuali errori di scrittura su canale*/
        catch(IOException d){
            System.out.println(&quot;Errore si I/O.&quot;);
        }
    }
}
</pre>
<p>Con questo abbiamo illustrato in modo molto semplice come creare un semplice sistema client server con java.</p>
<p>Eistono ovviamente tecnologie diverse per implementarli, ad esempio il server potrebbe implementare un sistema di risposta per il client, o ideare un protocollo per la sincronizzazione tra client e server o anche usare un sistema multi-thread.</p>
<p>Sono cose che comunque vedremo in seguito, per adesso ci limitiamo a questo esempio fornendo il codice in download.</p>
<p>Buon lavoro!</p>
Note: There is a file embedded within this post, please visit this post to download the file.
]]></content:encoded>
			<wfw:commentRss>http://www.blog.zengfx.net/2009/03/15/simple-client-server-in-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

