<?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>seo Giuseppe Liguori &#124; seo napoli &#187; Microsoft.Net</title>
	<atom:link href="http://www.giuseppeliguori.it/category/informatica/microsoftnet/feed" rel="self" type="application/rss+xml" />
	<link>http://www.giuseppeliguori.it</link>
	<description></description>
	<lastBuildDate>Fri, 04 Nov 2011 09:23:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Polygen per il web &#8211; Generatore di testo casuale.</title>
		<link>http://www.giuseppeliguori.it/2007/01/05/polygen-per-il-web-generatore-di-testo-casuale.htm</link>
		<comments>http://www.giuseppeliguori.it/2007/01/05/polygen-per-il-web-generatore-di-testo-casuale.htm#comments</comments>
		<pubDate>Fri, 05 Jan 2007 12:25:24 +0000</pubDate>
		<dc:creator>Giuseppe Liguori</dc:creator>
				<category><![CDATA[Microsoft.Net]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SEO]]></category>
		<category><![CDATA[Vario]]></category>

		<guid isPermaLink="false">http://www.giuseppeliguori.it/index.php/2007/01/05/polygen-per-il-web-generatore-di-testo-casuale.htm</guid>
		<description><![CDATA[Polygen è un software gratuito, che genera testo casuale basato su delle grammatiche programmabili con un metalinguaggio molto facile da apprendere.  Nel loro sito (tutto in italiano) è possibile scaricare molte grammatiche già pronte come ad esempio l&#8217;oroscopo o il divertentissimo Lettere a riviste per teenager. I testi prodotti da polygen sono pseudo casuali e con una buona semantica, utilissimi per dei ...]]></description>
			<content:encoded><![CDATA[<p><a href="http://polygen.org/" target="_blank">Polygen</a> è un software gratuito, che genera testo casuale basato su delle grammatiche programmabili con un metalinguaggio molto facile da apprendere. </p>
<p>Nel loro sito (tutto in italiano) è possibile scaricare molte grammatiche già pronte come ad esempio l&#8217;<a href="http://polygen.org/web/Oroscopo.523.0.html" target="_blank">oroscopo</a> o il divertentissimo <a href="http://polygen.org/web/Teen.413.0.html" target="_blank">Lettere a riviste per teenager</a>.<br />
I testi prodotti da polygen sono pseudo casuali e con una buona semantica, utilissimi per dei TEST, per riempire pagine web vuote e per dare quindi qualcosa in pasto ai motori di ricerca e che che non dia troppo nell&#8217;occhio anche ad quality rater rispetto al classico testo casuale realizzato con le markov chain.</p>
<p>Polygen però viene fornito in formato eseguibile e non è solitamente utilizzabile nelle pagine web, per cui ho pensato di integrare l&#8217;eseguibile di polygen, con codice php o asp.net.</p>
<p>Purtroppo l&#8217;unico requisito scomodo è che per utilizzare questo codice bisogna avere permessi di esecuzione sul file, quindi fruibile solo su un server vostro e non sui classici hosting gratuiti.</p>
<p>Procedura:</p>
<p>-scaricate l&#8217;eseguibile di polygen (download <a href="http://www.polygen.org/gs/dist/polygen-1.0.6-20040628-linux-bin.zip">per linux</a> o <a href="http://www.polygen.org/gs/dist/polygen-1.0.6-20051011-cygwin32-bin.zip" target="_blank">per windows</a>)   ed il <a href="http://www.polygen.org/gs/dist/polygen-1.0.6-20051011-grm.zip" target="_blank">file per la grammatica</a> scelta o realizzata da voi in formato .grm.</p>
<p>-Copiate l&#8217;eseguibile di polygen ad esempio nella stessa cartella della pagina php o .aspx (se è sistema microsoft dovete copiare anche cygwin1.dll), copiate anche la grammatica di vostro interesse.</p>
<p>Di seguito le due versioni:</p>
<p>Codice PHP:</p>
<p>< ?php<br />
$grammatica=&#8221;oroscopo.grm&#8221;; //qui mettete il nome del file di grammatica da voi scelto<br />
echo system_o(realpath(&#8220;polygen.exe&#8221;) . &#8221; &#8221; . $grammatica); //eliminare &#8220;.exe&#8221; nel caso di sistema linux</p>
<p>   function system_o($cmd)<br />
   {<br />
       global $ret;<br />
       exec(&#8220;$cmd&#8221;, $f);<br />
       foreach($f as $output) {<br />
           //$output = htmlentities($output); //decommentate questa al posto della successiva se volete strippare via tutto l&#8217;eventuale codice html<br />
           $ret .= &#8220;$output\n&#8221;;<br />
       }<br />
       return $ret;<br />
   }<br />
?></p>
<p>Codice ASP.NET</p>
<p>   < %<br />
   Dim p As System.Diagnostics.Process = New System.Diagnostics.Process<br />
 &#8217;instanzio il processo eliminando la shell dos e redirezionando l&#8217;output.<br />
        With p.StartInfo<br />
            .FileName = Server.MapPath(&#8220;.&#8221;) + &#8220;\&#8221; + &#8220;polygen.exe&#8221;<br />
            .Arguments = Server.MapPath(&#8220;.&#8221;) + &#8220;\&#8221; + &#8220;oroscopo.grm&#8221;<br />
            .CreateNoWindow = True<br />
            .RedirectStandardInput = True<br />
            .RedirectStandardOutput = True<br />
            .RedirectStandardError = True<br />
            .UseShellExecute = False<br />
        End With<br />
        &#8216;lancio il processo<br />
        p.Start()<br />
        Dim StdOut As System.IO.StreamReader = p.StandardOutput<br />
        Dim sTemp As String</p>
<p>        sTemp += StdOut.ReadToEnd</p>
<p> &#8217;decommentare solo se volete leggere anche lo stderr<br />
        &#8216;Dim StdErr As System.IO.StreamReader = p.StandardError<br />
        &#8216;sTemp += StdErr.ReadToEnd</p>
<p> &#8217;stampa a video del testo generato<br />
        Response.Write(sTemp)<br />
        %></p>
<p>Se avete problemi o domande, contattatemi pure.</p>
<p>Giuseppe Liguori</p>
]]></content:encoded>
			<wfw:commentRss>http://www.giuseppeliguori.it/2007/01/05/polygen-per-il-web-generatore-di-testo-casuale.htm/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>eliminare il dithering dalle gif salvate in vb.net</title>
		<link>http://www.giuseppeliguori.it/2006/10/24/eliminare-il-dithering-dalle-gif-salvate-in-vbnet.htm</link>
		<comments>http://www.giuseppeliguori.it/2006/10/24/eliminare-il-dithering-dalle-gif-salvate-in-vbnet.htm#comments</comments>
		<pubDate>Tue, 24 Oct 2006 07:30:01 +0000</pubDate>
		<dc:creator>Giuseppe Liguori</dc:creator>
				<category><![CDATA[Microsoft.Net]]></category>

		<guid isPermaLink="false">http://www.giuseppeliguori.it/index.php/2006/10/24/eliminare-il-dithering-dalle-gif-salvate-in-vbnet.htm</guid>
		<description><![CDATA[Di recente mi è capitato di dover scrivere un testo al volo su delle immagini di un mio sito a scopo di copyright. Per le jpeg non ho avuto particolari problemi; caricavo l&#8217;immagine, convertivo in bitmap e ci lavoravo sopra di grafica e testo con il system.Drawing.Graphics. Il problema si presenta però con le gif, il salvataggio le rovina in ...]]></description>
			<content:encoded><![CDATA[<p>Di recente mi è capitato di dover scrivere un testo al volo su delle immagini di un mio sito a scopo di copyright.<br />
Per le jpeg non ho avuto particolari problemi; caricavo l&#8217;immagine, convertivo in bitmap e ci lavoravo sopra di grafica e testo con il system.Drawing.Graphics.<br />
Il problema si presenta però con le gif, il salvataggio le rovina in maniera disastrosa, applicando il dithering all&#8217;immagine. Leggendo qua e là ho compreso che era un problema di palette e che tramite le GDI+ si poteva ovviare al problema.</p>
<p>Ho quindi trovato un utile riferimento su msdn <a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/colorquant.asp">http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/colorquant.asp</a></p>
<p>nella cui pagina vi è un <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=cb9a0bc8-c96b-4c3e-9652-df609352fa89&#038;DisplayLang=en">progetto di esempio </a> da scaricare in C#.</p>
<p>L&#8217;ho quindi adattato in vb.net, importando la dll ImageManipulation.dll nel mio progetto e usando il seguente codice DOPO aver effettuato tutte le manipolazioni grafiche sull&#8217;immagine, prima quindi di inviare l&#8217;outputstream all&#8217;utente.<br />
In grassetto il codice utile al corretto adattamento dei colori.</p>
<p><code><br />
Imports System<br />
Imports System.Web<br />
Imports System.Drawing.Imaging<br />
Imports System.Drawing<br />
<b>Imports ImageManipulation</b></p>
<p>            Dim g As System.Drawing.Image = System.Drawing.Image.FromFile(thepath, True)</p>
<p>            Dim thisFormat = g.RawFormat<br />
            Dim hh As Integer = g.Height<br />
            Dim ww As Integer = g.Width</p>
<p>            Dim imgOutput As New Bitmap(g, ww, hh)<br />
            Dim b As Graphics = Graphics.FromImage(imgOutput)</p>
<p>            Dim blackbrush As New SolidBrush(Color.Black)</p>
<p>            b.DrawString("testo da scrivere", New Font("arial", 7, FontStyle.Bold), blackbrush, New PointF(6, hh - 25))</p>
<p>            If thisFormat.Equals(System.Drawing.Imaging.ImageFormat.Gif) Then</p>
<p>                Response.ContentType = "image/gif"</p>
<p><strong>            'Questo è il codice aggiunto per eliminare il dithering dalle gif.<br />
                Dim quantizer As New OctreeQuantizer(255, 8 )<br />
                imgOutput = quantizer.Quantize(imgOutput)<br />
            '*********************************************</strong></p>
<p>            Else<br />
                Response.ContentType = "image/jpeg"<br />
            End If</p>
<p>            imgOutput.Save(Response.OutputStream, thisFormat)<br />
            b.Dispose()<br />
            g.Dispose()<br />
            imgOutput.Dispose()</p>
<p>Il risultato è davvero ottimo, chissà perchè microsoft non ha pensato di implementare questa feature direttamente nel framework?</p>
<p>Giuseppe Liguori<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.giuseppeliguori.it/2006/10/24/eliminare-il-dithering-dalle-gif-salvate-in-vbnet.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

