<?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>John Ciacia &#187; Snippets</title>
	<atom:link href="http://www.johnciacia.com/category/snippets/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.johnciacia.com</link>
	<description>Science, Technology, and Beyond</description>
	<lastBuildDate>Fri, 04 Jun 2010 02:44:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>itoa</title>
		<link>http://www.johnciacia.com/2010/04/09/itoa/</link>
		<comments>http://www.johnciacia.com/2010/04/09/itoa/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 20:02:20 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[C]]></category>

		<guid isPermaLink="false">http://www.johnciacia.com/?p=507</guid>
		<description><![CDATA[Convert an integer to an ASCII string]]></description>
			<content:encoded><![CDATA[<p>Convert an integer to an ASCII string</p>
<div class="hl-container">
<div class="hl-main">
<pre><span class="hl-mlcomment">/*</span><span class="hl-mlcomment"> K&amp;R2 60-63 </span><span class="hl-mlcomment">*/</span><span class="hl-code">
</span><span >char</span><span class="hl-code"> *</span><span class="hl-identifier">itoa</span><span class="hl-brackets">(</span><span >int</span><span class="hl-code"> </span><span class="hl-identifier">n</span><span class="hl-code">, </span><span >char</span><span class="hl-code"> </span><span class="hl-identifier">s</span><span class="hl-brackets">[</span><span class="hl-brackets">]</span><span class="hl-brackets">)</span><span class="hl-code">
</span><span class="hl-brackets">{</span><span class="hl-code">
    </span><span >int</span><span class="hl-code"> </span><span class="hl-identifier">c</span><span class="hl-code">, </span><span class="hl-identifier">i</span><span class="hl-code">, </span><span class="hl-identifier">j</span><span class="hl-code">, </span><span class="hl-identifier">sign</span><span class="hl-code">;

    </span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-brackets">(</span><span class="hl-identifier">sign</span><span class="hl-code"> = </span><span class="hl-identifier">n</span><span class="hl-brackets">)</span><span class="hl-code"> &lt; </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code">
        </span><span class="hl-identifier">n</span><span class="hl-code"> = -</span><span class="hl-identifier">n</span><span class="hl-code">;

    </span><span class="hl-reserved">do</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-identifier">s</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-code">++</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">n</span><span class="hl-code"> % </span><span class="hl-number">10</span><span class="hl-code"> + '</span><span class="hl-number">0</span><span class="hl-code">';
    </span><span class="hl-brackets">}</span><span class="hl-code"> </span><span class="hl-reserved">while</span><span class="hl-brackets">(</span><span class="hl-brackets">(</span><span class="hl-identifier">n</span><span class="hl-code"> /= </span><span class="hl-number">10</span><span class="hl-brackets">)</span><span class="hl-code"> &gt; </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code">;

    </span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">sign</span><span class="hl-code"> &lt; </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code">
        </span><span class="hl-identifier">s</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-code">++</span><span class="hl-brackets">]</span><span class="hl-code"> = '-';

    </span><span class="hl-identifier">s</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-code"> = '\</span><span class="hl-number">0</span><span class="hl-code">';

    </span><span class="hl-reserved">for</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-identifier">i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-identifier">j</span><span class="hl-code"> = </span><span class="hl-identifier">strlen</span><span class="hl-brackets">(</span><span class="hl-identifier">s</span><span class="hl-brackets">)</span><span class="hl-code">-</span><span class="hl-number">1</span><span class="hl-code">; </span><span class="hl-identifier">i</span><span class="hl-code"> &lt; </span><span class="hl-identifier">j</span><span class="hl-code">; </span><span class="hl-identifier">i</span><span class="hl-code">++, </span><span class="hl-identifier">j</span><span class="hl-code">--</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-identifier">c</span><span class="hl-code"> = </span><span class="hl-identifier">s</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-code">;
        </span><span class="hl-identifier">s</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">s</span><span class="hl-brackets">[</span><span class="hl-identifier">j</span><span class="hl-brackets">]</span><span class="hl-code">;
        </span><span class="hl-identifier">s</span><span class="hl-brackets">[</span><span class="hl-identifier">j</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">c</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-identifier">s</span><span class="hl-code">;
</span><span class="hl-brackets">}</span></pre>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.johnciacia.com/2010/04/09/itoa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Basic OCR</title>
		<link>http://www.johnciacia.com/2010/01/04/basic-ocr/</link>
		<comments>http://www.johnciacia.com/2010/01/04/basic-ocr/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 03:40:11 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[captcha]]></category>
		<category><![CDATA[gd]]></category>

		<guid isPermaLink="false">http://www.johnciacia.com/?p=454</guid>
		<description><![CDATA[This is a very basic optical character recognition script written in PHP. This is untested and serves merely a proof of concept. As noted in the comments, adjusting the sample size can improve results, since with a large sample size on a small image there can be many collisions. A database is needed to compare [...]]]></description>
			<content:encoded><![CDATA[<p>This is a very basic optical character recognition script written in PHP. This is untested and serves merely a proof of concept. As noted in the comments, adjusting the sample size can improve results, since with a large sample size on a small image there can be many collisions. A database is needed to compare output results of this script with known values.</p>
<div class="hl-container">
<div class="hl-main">
<pre><span class="hl-inlinetags">&lt;?php</span><span class="hl-code">

</span><span class="hl-comment">/*</span><span class="hl-comment"> create a test image </span><span class="hl-comment">*/</span><span class="hl-code">
</span><span class="hl-var">$im</span><span class="hl-code"> = @</span><span class="hl-identifier">imagecreate</span><span class="hl-brackets">(</span><span class="hl-number">100</span><span class="hl-code">, </span><span class="hl-number">20</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-reserved">or</span><span class="hl-code"> </span><span class="hl-reserved">die</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Cannot Initialize new GD image stream</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-var">$background_color</span><span class="hl-code"> = </span><span class="hl-identifier">imagecolorallocate</span><span class="hl-brackets">(</span><span class="hl-var">$im</span><span class="hl-code">, </span><span class="hl-number">255</span><span class="hl-code">, </span><span class="hl-number">255</span><span class="hl-code">, </span><span class="hl-number">255</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-var">$text_color</span><span class="hl-code"> = </span><span class="hl-identifier">imagecolorallocate</span><span class="hl-brackets">(</span><span class="hl-var">$im</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-identifier">imagestring</span><span class="hl-brackets">(</span><span class="hl-var">$im</span><span class="hl-code">, </span><span class="hl-number">1</span><span class="hl-code">, </span><span class="hl-number">5</span><span class="hl-code">, </span><span class="hl-number">5</span><span class="hl-code">,  </span><span class="hl-quotes">&quot;</span><span class="hl-string">Hello, World!</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-var">$text_color</span><span class="hl-brackets">)</span><span class="hl-code">;

</span><span class="hl-comment">/*</span><span class="hl-comment">**
 * Assumptions:
 *   A monochrome image where characters are black
 *   A single character is connected
 *   Characters are disjointed by white space
 </span><span class="hl-comment">*/</span><span class="hl-code">

</span><span class="hl-var">$width</span><span class="hl-code"> = </span><span class="hl-identifier">imagesx</span><span class="hl-brackets">(</span><span class="hl-var">$im</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-var">$height</span><span class="hl-code"> = </span><span class="hl-identifier">imagesy</span><span class="hl-brackets">(</span><span class="hl-var">$im</span><span class="hl-brackets">)</span><span class="hl-code">;

</span><span class="hl-comment">/*</span><span class="hl-comment">**
 * Notes:
 *   The smaller the sample size the more accurate it will be,
 *   however, it will take longer. Larger images can use a larger
 *   sample size wihtout compromizing much accuracy.
 </span><span class="hl-comment">*/</span><span class="hl-code">
</span><span class="hl-var">$x_sample</span><span class="hl-code"> = </span><span class="hl-number">1</span><span class="hl-code">;
</span><span class="hl-var">$y_sample</span><span class="hl-code"> = </span><span class="hl-number">1</span><span class="hl-code">;

</span><span class="hl-var">$last</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">;
</span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-var">$i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code"> &lt; </span><span class="hl-var">$width</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
    </span><span class="hl-var">$col</span><span class="hl-code"> = </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;

    </span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-var">$j</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">; </span><span class="hl-var">$j</span><span class="hl-code"> &lt; </span><span class="hl-var">$height</span><span class="hl-code">; </span><span class="hl-var">$j</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-var">$col</span><span class="hl-brackets">[</span><span class="hl-var">$j</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">imagecolorat</span><span class="hl-brackets">(</span><span class="hl-var">$im</span><span class="hl-code">, </span><span class="hl-var">$i</span><span class="hl-code">, </span><span class="hl-var">$j</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-brackets">(</span><span class="hl-var">$current</span><span class="hl-code"> = </span><span class="hl-identifier">array_sum</span><span class="hl-brackets">(</span><span class="hl-var">$col</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code"> &gt; </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-var">$last</span><span class="hl-code"> == </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
            </span><span class="hl-var">$l</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">;
        </span><span class="hl-brackets">}</span><span class="hl-code">

        </span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-var">$k</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">; </span><span class="hl-var">$k</span><span class="hl-code"> &lt; </span><span class="hl-var">$height</span><span class="hl-code">; </span><span class="hl-var">$k</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
            </span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-brackets">(</span><span class="hl-var">$l</span><span class="hl-code"> % </span><span class="hl-var">$x_sample</span><span class="hl-brackets">)</span><span class="hl-code"> == </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
                </span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-brackets">(</span><span class="hl-var">$k</span><span class="hl-code"> % </span><span class="hl-var">$y_sample</span><span class="hl-brackets">)</span><span class="hl-code"> == </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
                    </span><span class="hl-var">$sample</span><span class="hl-code"> .= </span><span class="hl-var">$col</span><span class="hl-brackets">[</span><span class="hl-var">$k</span><span class="hl-brackets">]</span><span class="hl-code">;
                </span><span class="hl-brackets">}</span><span class="hl-code">
            </span><span class="hl-brackets">}</span><span class="hl-code">
        </span><span class="hl-brackets">}</span><span class="hl-code">

        </span><span class="hl-var">$l</span><span class="hl-code">++;
        </span><span class="hl-var">$last</span><span class="hl-code"> = </span><span class="hl-var">$current</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code"> </span><span class="hl-reserved">else</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-var">$last</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-reserved">empty</span><span class="hl-brackets">(</span><span class="hl-var">$sample</span><span class="hl-brackets">)</span><span class="hl-code"> &amp;&amp; </span><span class="hl-var">$last</span><span class="hl-code"> == </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-reserved">echo</span><span class="hl-code"> </span><span class="hl-var">$sample</span><span class="hl-code"> . </span><span class="hl-quotes">&quot;</span><span class="hl-special">\n</span><span class="hl-quotes">&quot;</span><span class="hl-code">;
        </span><span class="hl-var">$sample</span><span class="hl-code"> = </span><span class="hl-quotes">&quot;</span><span class="hl-quotes">&quot;</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code">
</span><span class="hl-brackets">}</span><span class="hl-code">
</span><span class="hl-inlinetags">?&gt;</span></pre>
</div>
</div>
<p>Output (each line represents a character)</p>
<div class="quote">00000011111100000000000000001000000000000000000010000000000000000011111100000000<br />
00000000011000000000000000001011000000000000000011010000000000000000010100000000<br />
000000100001000000000000001111110000000000000000000100000000<br />
000000100001000000000000001111110000000000000000000100000000<br />
00000000011000000000000000001001000000000000000010010000000000000000011000000000<br />
000000000001000000000000000001100000000000000000010000000000<br />
00000011111100000000000000000110000000000000000001100000000000000011111100000000<br />
00000000011000000000000000001001000000000000000010010000000000000000011000000000<br />
00000000111100000000000000000100000000000000000010000000000000000000010000000000<br />
000000100001000000000000001111110000000000000000000100000000<br />
00000000011000000000000000001001000000000000000010100000000000000011111100000000<br />
00000001110100000000</div>
]]></content:encoded>
			<wfw:commentRss>http://www.johnciacia.com/2010/01/04/basic-ocr/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using PHP and GD to add border to text</title>
		<link>http://www.johnciacia.com/2010/01/04/using-php-and-gd-to-add-border-to-text/</link>
		<comments>http://www.johnciacia.com/2010/01/04/using-php-and-gd-to-add-border-to-text/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 23:41:03 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[border]]></category>
		<category><![CDATA[gd]]></category>
		<category><![CDATA[stroke]]></category>
		<category><![CDATA[text]]></category>

		<guid isPermaLink="false">http://www.johnciacia.com/?p=449</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<div class="hl-container">
<div class="hl-main">
<pre><span class="hl-inlinetags">&lt;?php</span><span class="hl-code">
</span><span class="hl-comment">/*</span><span class="hl-comment">*
 * Writes the given text with a border into the image using TrueType fonts.
 *</span><span class="hl-inlinedoc"> @author </span><span class="hl-comment">John Ciacia
 *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">image An image resource
 *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">size The font size
 *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">angle The angle in degrees to rotate the text
 *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">x Upper left corner of the text
 *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">y Lower left corner of the text
 *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">textcolor This is the color of the main text
 *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">strokecolor This is the color of the text border
 *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">fontfile The path to the TrueType font you wish to use
 *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">text The text string in UTF-8 encoding
 *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">px Number of pixels the text border will be
 *</span><span class="hl-inlinedoc"> @see </span><span class="hl-url">http://us.php.net/manual/en/function.imagettftext.php</span><span class="hl-comment">
 </span><span class="hl-comment">*/</span><span class="hl-code">
</span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">imagettfstroketext</span><span class="hl-brackets">(</span><span class="hl-code">&amp;</span><span class="hl-var">$image</span><span class="hl-code">, </span><span class="hl-var">$size</span><span class="hl-code">, </span><span class="hl-var">$angle</span><span class="hl-code">, </span><span class="hl-var">$x</span><span class="hl-code">, </span><span class="hl-var">$y</span><span class="hl-code">, &amp;</span><span class="hl-var">$textcolor</span><span class="hl-code">, &amp;</span><span class="hl-var">$strokecolor</span><span class="hl-code">, </span><span class="hl-var">$fontfile</span><span class="hl-code">, </span><span class="hl-var">$text</span><span class="hl-code">, </span><span class="hl-var">$px</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">

    </span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-var">$c1</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-var">$x</span><span class="hl-code">-</span><span class="hl-identifier">abs</span><span class="hl-brackets">(</span><span class="hl-var">$px</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-var">$c1</span><span class="hl-code"> &lt;= </span><span class="hl-brackets">(</span><span class="hl-var">$x</span><span class="hl-code">+</span><span class="hl-identifier">abs</span><span class="hl-brackets">(</span><span class="hl-var">$px</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-var">$c1</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-code">
        </span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-var">$c2</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-var">$y</span><span class="hl-code">-</span><span class="hl-identifier">abs</span><span class="hl-brackets">(</span><span class="hl-var">$px</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-var">$c2</span><span class="hl-code"> &lt;= </span><span class="hl-brackets">(</span><span class="hl-var">$y</span><span class="hl-code">+</span><span class="hl-identifier">abs</span><span class="hl-brackets">(</span><span class="hl-var">$px</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-var">$c2</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-code">
            </span><span class="hl-var">$bg</span><span class="hl-code"> = </span><span class="hl-identifier">imagettftext</span><span class="hl-brackets">(</span><span class="hl-var">$image</span><span class="hl-code">, </span><span class="hl-var">$size</span><span class="hl-code">, </span><span class="hl-var">$angle</span><span class="hl-code">, </span><span class="hl-var">$c1</span><span class="hl-code">, </span><span class="hl-var">$c2</span><span class="hl-code">, </span><span class="hl-var">$strokecolor</span><span class="hl-code">, </span><span class="hl-var">$fontfile</span><span class="hl-code">, </span><span class="hl-var">$text</span><span class="hl-brackets">)</span><span class="hl-code">;

   </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-identifier">imagettftext</span><span class="hl-brackets">(</span><span class="hl-var">$image</span><span class="hl-code">, </span><span class="hl-var">$size</span><span class="hl-code">, </span><span class="hl-var">$angle</span><span class="hl-code">, </span><span class="hl-var">$x</span><span class="hl-code">, </span><span class="hl-var">$y</span><span class="hl-code">, </span><span class="hl-var">$textcolor</span><span class="hl-code">, </span><span class="hl-var">$fontfile</span><span class="hl-code">, </span><span class="hl-var">$text</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}</span></pre>
</div>
</div>
<div class="hl-container">
<div class="hl-main">
<pre><span class="hl-inlinetags">&lt;?php</span><span class="hl-code">
</span><span class="hl-var">$img</span><span class="hl-code"> = </span><span class="hl-identifier">imagecreatefrompng</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">/home/john/Desktop/test.png</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-var">$font_color</span><span class="hl-code"> = </span><span class="hl-identifier">imagecolorallocate</span><span class="hl-brackets">(</span><span class="hl-var">$img</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-var">$stroke_color</span><span class="hl-code"> = </span><span class="hl-identifier">imagecolorallocate</span><span class="hl-brackets">(</span><span class="hl-var">$img</span><span class="hl-code">, </span><span class="hl-number">255</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-identifier">imagettfstroketext</span><span class="hl-brackets">(</span><span class="hl-var">$img</span><span class="hl-code">, </span><span class="hl-number">10</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">10</span><span class="hl-code">, </span><span class="hl-number">50</span><span class="hl-code">, </span><span class="hl-var">$font_color</span><span class="hl-code">, </span><span class="hl-var">$stroke_color</span><span class="hl-code">, </span><span class="hl-quotes">&quot;</span><span class="hl-string">abstract.ttf</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-quotes">&quot;</span><span class="hl-string">Hello, World!</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-number">2</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-inlinetags">?&gt;</span></pre>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.johnciacia.com/2010/01/04/using-php-and-gd-to-add-border-to-text/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Basic CAPTCHA</title>
		<link>http://www.johnciacia.com/2010/01/04/basic-captcha/</link>
		<comments>http://www.johnciacia.com/2010/01/04/basic-captcha/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 23:01:18 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[captcha]]></category>
		<category><![CDATA[gd]]></category>

		<guid isPermaLink="false">http://www.johnciacia.com/?p=443</guid>
		<description><![CDATA[Very basic code demonstrating the use of the GD library by creating a simple CAPTCHA.]]></description>
			<content:encoded><![CDATA[<p>Very basic code demonstrating the use of the GD library by creating a simple CAPTCHA.</p>
<div class="hl-container">
<div class="hl-main">
<pre><span class="hl-inlinetags">&lt;?php</span><span class="hl-code">
</span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">randomString</span><span class="hl-brackets">(</span><span class="hl-var">$length</span><span class="hl-brackets">)</span><span class="hl-brackets">{</span><span class="hl-code">
    </span><span class="hl-var">$pattern</span><span class="hl-code"> = </span><span class="hl-quotes">&quot;</span><span class="hl-string">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890</span><span class="hl-quotes">&quot;</span><span class="hl-code">;
    </span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">empty</span><span class="hl-brackets">(</span><span class="hl-var">$length</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-var">$length</span><span class="hl-code"> = </span><span class="hl-quotes">&quot;</span><span class="hl-string">10</span><span class="hl-quotes">&quot;</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-var">$i</span><span class="hl-code">=</span><span class="hl-number">0</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code">&lt;</span><span class="hl-var">$length</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-var">$string</span><span class="hl-code"> .= </span><span class="hl-var">$pattern</span><span class="hl-brackets">{</span><span class="hl-identifier">rand</span><span class="hl-brackets">(</span><span class="hl-number">0</span><span class="hl-code">,</span><span class="hl-number">61</span><span class="hl-brackets">)</span><span class="hl-brackets">}</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-var">$string</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">

</span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">captcha</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
    </span><span class="hl-identifier">header</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Content-type: image/png</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-var">$im</span><span class="hl-code"> = @</span><span class="hl-identifier">imagecreate</span><span class="hl-brackets">(</span><span class="hl-number">100</span><span class="hl-code">, </span><span class="hl-number">50</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-reserved">or</span><span class="hl-code"> </span><span class="hl-reserved">die</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Cannot Initialize new GD image stream</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-var">$background_color</span><span class="hl-code"> = </span><span class="hl-identifier">imagecolorallocate</span><span class="hl-brackets">(</span><span class="hl-var">$im</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-var">$text_color</span><span class="hl-code"> = </span><span class="hl-identifier">imagecolorallocate</span><span class="hl-brackets">(</span><span class="hl-var">$im</span><span class="hl-code">, </span><span class="hl-number">255</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-var">$string</span><span class="hl-code"> = </span><span class="hl-identifier">randomString</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-identifier">imagestring</span><span class="hl-brackets">(</span><span class="hl-var">$im</span><span class="hl-code">, </span><span class="hl-number">10</span><span class="hl-code">, </span><span class="hl-number">5</span><span class="hl-code">, </span><span class="hl-number">5</span><span class="hl-code">,  </span><span class="hl-var">$string</span><span class="hl-code">, </span><span class="hl-var">$text_color</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-identifier">imagepng</span><span class="hl-brackets">(</span><span class="hl-var">$im</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-identifier">imagedestroy</span><span class="hl-brackets">(</span><span class="hl-var">$im</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">

</span><span class="hl-identifier">captcha</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-inlinetags">?&gt;</span></pre>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.johnciacia.com/2010/01/04/basic-captcha/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tic Tac Toe</title>
		<link>http://www.johnciacia.com/2009/05/22/tic-tac-toe/</link>
		<comments>http://www.johnciacia.com/2009/05/22/tic-tac-toe/#comments</comments>
		<pubDate>Sat, 23 May 2009 00:34:31 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[gtk]]></category>
		<category><![CDATA[tic tac toe]]></category>

		<guid isPermaLink="false">http://www.johnciacia.com/?p=163</guid>
		<description><![CDATA[A graphical Tic Tac Toe board using PHP-Gtk]]></description>
			<content:encoded><![CDATA[<p>A graphical Tic Tac Toe board using PHP-Gtk</p>
<div class="hl-container">
<div class="hl-main">
<pre><span class="hl-code">#!/usr/local/bin/php -q
</span><span class="hl-inlinetags">&lt;?php</span><span class="hl-code">
</span><span class="hl-reserved">class</span><span class="hl-code"> </span><span class="hl-identifier">TicTacToe</span><span class="hl-code"> </span><span class="hl-reserved">extends</span><span class="hl-code"> </span><span class="hl-identifier">GtkWindow</span><span class="hl-brackets">{</span><span class="hl-code">

    </span><span class="hl-reserved">private</span><span class="hl-code"> </span><span class="hl-var">$_buttons</span><span class="hl-code">;
    </span><span class="hl-reserved">private</span><span class="hl-code"> </span><span class="hl-var">$_dialog</span><span class="hl-code">;
    </span><span class="hl-reserved">private</span><span class="hl-code"> </span><span class="hl-var">$_count</span><span class="hl-code">;
    </span><span class="hl-reserved">private</span><span class="hl-code"> </span><span class="hl-var">$_menu</span><span class="hl-code">;
    </span><span class="hl-reserved">private</span><span class="hl-code"> </span><span class="hl-var">$_lbl</span><span class="hl-code">;

    </span><span class="hl-reserved">public</span><span class="hl-code"> </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">__construct</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">
    </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-identifier">parent</span><span class="hl-code">::</span><span class="hl-identifier">__construct</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;

        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_title</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">Tic-Tac-Toe</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_size_request</span><span class="hl-brackets">(</span><span class="hl-number">250</span><span class="hl-code">, </span><span class="hl-number">250</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_position</span><span class="hl-brackets">(</span><span class="hl-identifier">Gtk</span><span class="hl-code">::</span><span class="hl-identifier">WIN_POS_CENTER</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">connect_simple</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">destroy</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">gtk</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">main_quit</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;

        </span><span class="hl-comment">#</span><span class="hl-comment">Create the Buttons and add them to the table</span><span class="hl-comment"></span><span class="hl-code">
        </span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-var">$i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code"> &lt; </span><span class="hl-number">9</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
            </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_buttons</span><span class="hl-brackets">[</span><span class="hl-var">$i</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkButton</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
            </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_buttons</span><span class="hl-brackets">[</span><span class="hl-var">$i</span><span class="hl-brackets">]</span><span class="hl-code">-&gt;</span><span class="hl-identifier">connect_simple</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">clicked</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">clicked</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-var">$i</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-brackets">}</span><span class="hl-code">

        </span><span class="hl-comment">#</span><span class="hl-comment">Create a GtkTable</span><span class="hl-comment"></span><span class="hl-code">
        </span><span class="hl-var">$tbl</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkTable</span><span class="hl-brackets">(</span><span class="hl-number">3</span><span class="hl-code">, </span><span class="hl-number">3</span><span class="hl-brackets">)</span><span class="hl-code">;

        </span><span class="hl-comment">#</span><span class="hl-comment">Add nine buttons to the table</span><span class="hl-comment"></span><span class="hl-code">
        </span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-var">$i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code"> &lt; </span><span class="hl-number">9</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
            </span><span class="hl-var">$tbl</span><span class="hl-code">-&gt;</span><span class="hl-identifier">attach</span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_buttons</span><span class="hl-brackets">[</span><span class="hl-var">$i</span><span class="hl-brackets">]</span><span class="hl-code">, </span><span class="hl-brackets">(</span><span class="hl-var">$i</span><span class="hl-code">%</span><span class="hl-number">3</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-brackets">(</span><span class="hl-var">$i</span><span class="hl-code">%</span><span class="hl-number">3</span><span class="hl-brackets">)</span><span class="hl-code">+</span><span class="hl-number">1</span><span class="hl-code">, </span><span class="hl-identifier">floor</span><span class="hl-brackets">(</span><span class="hl-var">$i</span><span class="hl-code">/</span><span class="hl-number">3</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-identifier">floor</span><span class="hl-brackets">(</span><span class="hl-var">$i</span><span class="hl-code">/</span><span class="hl-number">3</span><span class="hl-brackets">)</span><span class="hl-code">+</span><span class="hl-number">1</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-brackets">}</span><span class="hl-code">

        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">buildMenu</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;

        </span><span class="hl-comment">#</span><span class="hl-comment">GtkStatusBar</span><span class="hl-comment"></span><span class="hl-code">
        </span><span class="hl-var">$status</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkStatusbar</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$context</span><span class="hl-code"> = </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">Not Connected</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">Connected</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$status</span><span class="hl-code">-&gt;</span><span class="hl-identifier">push</span><span class="hl-brackets">(</span><span class="hl-var">$status</span><span class="hl-code">-&gt;</span><span class="hl-identifier">get_context_id</span><span class="hl-brackets">(</span><span class="hl-var">$context</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-var">$context</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-brackets">)</span><span class="hl-code">;

        </span><span class="hl-comment">#</span><span class="hl-comment">GtkVBox</span><span class="hl-comment"></span><span class="hl-code">
        </span><span class="hl-var">$vbox</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkVBox</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-comment">#</span><span class="hl-comment">Add the GtkVBox to the main window</span><span class="hl-comment"></span><span class="hl-code">
        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">add</span><span class="hl-brackets">(</span><span class="hl-var">$vbox</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-comment">#</span><span class="hl-comment">Add the GtkMenu to the GtkVBox</span><span class="hl-comment"></span><span class="hl-code">
        </span><span class="hl-var">$vbox</span><span class="hl-code">-&gt;</span><span class="hl-identifier">pack_start</span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_menu</span><span class="hl-code">, </span><span class="hl-reserved">false</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-comment">#</span><span class="hl-comment">Add the GtkTable to the GtkVBox</span><span class="hl-comment"></span><span class="hl-code">
        </span><span class="hl-var">$vbox</span><span class="hl-code">-&gt;</span><span class="hl-identifier">pack_start</span><span class="hl-brackets">(</span><span class="hl-var">$tbl</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-comment">#</span><span class="hl-comment">Add the GtkStatusBar to the GtkVBox</span><span class="hl-comment"></span><span class="hl-code">
        </span><span class="hl-var">$vbox</span><span class="hl-code">-&gt;</span><span class="hl-identifier">pack_start</span><span class="hl-brackets">(</span><span class="hl-var">$status</span><span class="hl-code">, </span><span class="hl-reserved">false</span><span class="hl-brackets">)</span><span class="hl-code">;

        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">show_all</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;

        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">server</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;

    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">private</span><span class="hl-code"> </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">server</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">
    </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-comment">#</span><span class="hl-comment">Not implemented</span><span class="hl-comment"></span><span class="hl-code">
    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">private</span><span class="hl-code"> </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">buildMenu</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">
    </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-comment">#</span><span class="hl-comment">GtkMenu</span><span class="hl-comment"></span><span class="hl-code">
        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_menu</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkMenuBar</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_menu</span><span class="hl-code">-&gt;</span><span class="hl-identifier">append</span><span class="hl-brackets">(</span><span class="hl-var">$file_item</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkMenuItem</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">_File</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_menu</span><span class="hl-code">-&gt;</span><span class="hl-identifier">append</span><span class="hl-brackets">(</span><span class="hl-var">$help_item</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkMenuItem</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">_Help</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;

        </span><span class="hl-var">$file_item</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_submenu</span><span class="hl-brackets">(</span><span class="hl-var">$file_menu</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code">  </span><span class="hl-identifier">GtkMenu</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$file_menu</span><span class="hl-code">-&gt;</span><span class="hl-identifier">append</span><span class="hl-brackets">(</span><span class="hl-var">$file_new_item</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkMenuItem</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">_New</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$file_menu</span><span class="hl-code">-&gt;</span><span class="hl-identifier">append</span><span class="hl-brackets">(</span><span class="hl-var">$file_connect_item</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkMenuItem</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">_Connect</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$file_menu</span><span class="hl-code">-&gt;</span><span class="hl-identifier">append</span><span class="hl-brackets">(</span><span class="hl-var">$file_quit_item</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkMenuItem</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">_Quit</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;

         </span><span class="hl-var">$help_item</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_submenu</span><span class="hl-brackets">(</span><span class="hl-var">$help_menu</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code">  </span><span class="hl-identifier">GtkMenu</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$help_menu</span><span class="hl-code">-&gt;</span><span class="hl-identifier">append</span><span class="hl-brackets">(</span><span class="hl-var">$help_about_item</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkMenuItem</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">_About</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;

        </span><span class="hl-var">$file_new_item</span><span class="hl-code">-&gt;</span><span class="hl-identifier">connect_simple</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">activate</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">restart</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$help_about_item</span><span class="hl-code">-&gt;</span><span class="hl-identifier">connect_simple</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">activate</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">about</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$file_quit_item</span><span class="hl-code">-&gt;</span><span class="hl-identifier">connect_simple</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">activate</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">Gtk</span><span class="hl-quotes">'</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">main_quit</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">public</span><span class="hl-code"> </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">about</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">
    </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-var">$about</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkAboutDialog</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$about</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_authors</span><span class="hl-brackets">(</span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">John Ciacia</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$about</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_comments</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Tic-Tac-Toe created using the PHP-Gtk extension.</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$about</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_copyright</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Copyright (C) 2008 John Ciacia</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$about</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_license</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">This software is released under the GNU GPL</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$about</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_version</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">1.0</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$about</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_website</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">http://www.codecall.net</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$about</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_website_label</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">http://www.codecall.net</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$about</span><span class="hl-code">-&gt;</span><span class="hl-identifier">show_all</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">public</span><span class="hl-code"> </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">clicked</span><span class="hl-brackets">(</span><span class="hl-var">$i</span><span class="hl-brackets">)</span><span class="hl-code">
    </span><span class="hl-brackets">{</span><span class="hl-code">
        !</span><span class="hl-reserved">isset</span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_count</span><span class="hl-brackets">)</span><span class="hl-code"> ? </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_count</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code"> : </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_count</span><span class="hl-code">++;
        </span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_count</span><span class="hl-code"> % </span><span class="hl-number">2</span><span class="hl-code"> == </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code"> ? </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_lbl</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">X</span><span class="hl-quotes">'</span><span class="hl-code"> : </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_lbl</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">O</span><span class="hl-quotes">'</span><span class="hl-code">;

        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_buttons</span><span class="hl-brackets">[</span><span class="hl-var">$i</span><span class="hl-brackets">]</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_label</span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_lbl</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_buttons</span><span class="hl-brackets">[</span><span class="hl-var">$i</span><span class="hl-brackets">]</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_sensitive</span><span class="hl-brackets">(</span><span class="hl-reserved">false</span><span class="hl-brackets">)</span><span class="hl-code">;

        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_check</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">private</span><span class="hl-code"> </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">_check</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">
    </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-var">$win</span><span class="hl-code"> = </span><span class="hl-reserved">false</span><span class="hl-code">;

        </span><span class="hl-var">$combinations</span><span class="hl-code"> = </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-code">
            </span><span class="hl-number">0</span><span class="hl-code"> =&gt; </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">1</span><span class="hl-code">, </span><span class="hl-number">2</span><span class="hl-brackets">)</span><span class="hl-code">,
            </span><span class="hl-number">1</span><span class="hl-code"> =&gt; </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-number">3</span><span class="hl-code">, </span><span class="hl-number">4</span><span class="hl-code">, </span><span class="hl-number">5</span><span class="hl-brackets">)</span><span class="hl-code">,
            </span><span class="hl-number">2</span><span class="hl-code"> =&gt; </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-number">6</span><span class="hl-code">, </span><span class="hl-number">7</span><span class="hl-code">, </span><span class="hl-number">8</span><span class="hl-brackets">)</span><span class="hl-code">,

            </span><span class="hl-number">3</span><span class="hl-code"> =&gt; </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">3</span><span class="hl-code">, </span><span class="hl-number">6</span><span class="hl-brackets">)</span><span class="hl-code">,
            </span><span class="hl-number">4</span><span class="hl-code"> =&gt; </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-number">1</span><span class="hl-code">, </span><span class="hl-number">4</span><span class="hl-code">, </span><span class="hl-number">7</span><span class="hl-brackets">)</span><span class="hl-code">,
            </span><span class="hl-number">5</span><span class="hl-code"> =&gt; </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-number">2</span><span class="hl-code">, </span><span class="hl-number">5</span><span class="hl-code">, </span><span class="hl-number">8</span><span class="hl-brackets">)</span><span class="hl-code">,

            </span><span class="hl-number">6</span><span class="hl-code"> =&gt; </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-number">4</span><span class="hl-code">, </span><span class="hl-number">8</span><span class="hl-brackets">)</span><span class="hl-code">,
            </span><span class="hl-number">7</span><span class="hl-code"> =&gt; </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-number">2</span><span class="hl-code">, </span><span class="hl-number">4</span><span class="hl-code">, </span><span class="hl-number">6</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;

        </span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-var">$i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code"> &lt; </span><span class="hl-number">8</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-code">
        </span><span class="hl-brackets">{</span><span class="hl-code">
            </span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_buttons</span><span class="hl-brackets">[</span><span class="hl-var">$combinations</span><span class="hl-brackets">[</span><span class="hl-var">$i</span><span class="hl-brackets">]</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-brackets">]</span><span class="hl-code">-&gt;</span><span class="hl-identifier">get_label</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code"> ==
                    </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_buttons</span><span class="hl-brackets">[</span><span class="hl-var">$combinations</span><span class="hl-brackets">[</span><span class="hl-var">$i</span><span class="hl-brackets">]</span><span class="hl-brackets">[</span><span class="hl-number">1</span><span class="hl-brackets">]</span><span class="hl-brackets">]</span><span class="hl-code">-&gt;</span><span class="hl-identifier">get_label</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code"> &amp;&amp; 

                </span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_buttons</span><span class="hl-brackets">[</span><span class="hl-var">$combinations</span><span class="hl-brackets">[</span><span class="hl-var">$i</span><span class="hl-brackets">]</span><span class="hl-brackets">[</span><span class="hl-number">1</span><span class="hl-brackets">]</span><span class="hl-brackets">]</span><span class="hl-code">-&gt;</span><span class="hl-identifier">get_label</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code"> ==
                    </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_buttons</span><span class="hl-brackets">[</span><span class="hl-var">$combinations</span><span class="hl-brackets">[</span><span class="hl-var">$i</span><span class="hl-brackets">]</span><span class="hl-brackets">[</span><span class="hl-number">2</span><span class="hl-brackets">]</span><span class="hl-brackets">]</span><span class="hl-code">-&gt;</span><span class="hl-identifier">get_label</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code"> &amp;&amp; 

                </span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_buttons</span><span class="hl-brackets">[</span><span class="hl-var">$combinations</span><span class="hl-brackets">[</span><span class="hl-var">$i</span><span class="hl-brackets">]</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-brackets">]</span><span class="hl-code">-&gt;</span><span class="hl-identifier">get_label</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code"> != </span><span class="hl-quotes">&quot;</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-brackets">{</span><span class="hl-code">

                </span><span class="hl-var">$win</span><span class="hl-code"> = </span><span class="hl-reserved">true</span><span class="hl-code">;
            </span><span class="hl-brackets">}</span><span class="hl-code">
        </span><span class="hl-brackets">}</span><span class="hl-code">

        </span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-var">$win</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
            </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">end_dialog</span><span class="hl-brackets">(</span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-brackets">}</span><span class="hl-code">
        </span><span class="hl-reserved">else</span><span class="hl-code"> </span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-var">$win</span><span class="hl-code"> &amp;&amp; </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_count</span><span class="hl-code"> == </span><span class="hl-number">8</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
            </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">end_dialog</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-brackets">}</span><span class="hl-code">
        </span><span class="hl-reserved">else</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
            ;
        </span><span class="hl-brackets">}</span><span class="hl-code">
    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">private</span><span class="hl-code"> </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">end_dialog</span><span class="hl-brackets">(</span><span class="hl-var">$win</span><span class="hl-code"> = </span><span class="hl-reserved">false</span><span class="hl-brackets">)</span><span class="hl-brackets">{</span><span class="hl-code">

        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_dialog</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkDialog</span><span class="hl-brackets">(</span><span class="hl-reserved">null</span><span class="hl-code">, </span><span class="hl-var">$this</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_dialog</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_title</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">Play Again?</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_dialog</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_default_size</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">100</span><span class="hl-quotes">'</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">100</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_dialog</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_modal</span><span class="hl-brackets">(</span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_dialog</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_transient_for</span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_dialog</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_resizable</span><span class="hl-brackets">(</span><span class="hl-reserved">false</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_dialog</span><span class="hl-code">-&gt;</span><span class="hl-identifier">connect_simple</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">destroy</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">destroy</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-var">$win</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
            </span><span class="hl-var">$label</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkLabel</span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_lbl</span><span class="hl-code"> . </span><span class="hl-quotes">&quot;</span><span class="hl-string"> has won the game. Play again?</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-brackets">}</span><span class="hl-code"> </span><span class="hl-reserved">else</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
            </span><span class="hl-var">$label</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkLabel</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">It's a tie! Play again?</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-brackets">}</span><span class="hl-code">
        </span><span class="hl-var">$button_yes</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkButton</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">_Yes</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$button_yes</span><span class="hl-code">-&gt;</span><span class="hl-identifier">connect_simple</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">clicked</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">restart</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$button_no</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">GtkButton</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">_No</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$button_no</span><span class="hl-code">-&gt;</span><span class="hl-identifier">connect</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">clicked</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">array</span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">destroy</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;

        </span><span class="hl-var">$vbox1</span><span class="hl-code"> = </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_dialog</span><span class="hl-code">-&gt;</span><span class="hl-identifier">vbox</span><span class="hl-code">;
        </span><span class="hl-var">$vbox2</span><span class="hl-code"> = </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_dialog</span><span class="hl-code">-&gt;</span><span class="hl-identifier">action_area</span><span class="hl-code">;
        </span><span class="hl-var">$vbox1</span><span class="hl-code">-&gt;</span><span class="hl-identifier">pack_start</span><span class="hl-brackets">(</span><span class="hl-var">$label</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$vbox2</span><span class="hl-code">-&gt;</span><span class="hl-identifier">pack_start</span><span class="hl-brackets">(</span><span class="hl-var">$button_yes</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$vbox2</span><span class="hl-code">-&gt;</span><span class="hl-identifier">pack_start</span><span class="hl-brackets">(</span><span class="hl-var">$button_no</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_dialog</span><span class="hl-code">-&gt;</span><span class="hl-identifier">show_all</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">public</span><span class="hl-code"> </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">restart</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">
    </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-reserved">isset</span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_dialog</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code"> </span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_dialog</span><span class="hl-code">-&gt;</span><span class="hl-identifier">hide_all</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-brackets">}</span><span class="hl-code">
        </span><span class="hl-reserved">unset</span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_count</span><span class="hl-brackets">)</span><span class="hl-code">;

        </span><span class="hl-reserved">foreach</span><span class="hl-brackets">(</span><span class="hl-var">$this</span><span class="hl-code">-&gt;</span><span class="hl-identifier">_buttons</span><span class="hl-code"> </span><span class="hl-reserved">as</span><span class="hl-code"> </span><span class="hl-var">$button</span><span class="hl-brackets">)</span><span class="hl-code">:
            </span><span class="hl-var">$button</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_label</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
            </span><span class="hl-var">$button</span><span class="hl-code">-&gt;</span><span class="hl-identifier">set_sensitive</span><span class="hl-brackets">(</span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-reserved">endforeach</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">public</span><span class="hl-code"> </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">destroy</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">
    </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-reserved">echo</span><span class="hl-code"> </span><span class="hl-quotes">&quot;</span><span class="hl-string">Good Bye!</span><span class="hl-special">\n</span><span class="hl-quotes">&quot;</span><span class="hl-code">;
        </span><span class="hl-identifier">Gtk</span><span class="hl-code">::</span><span class="hl-identifier">main_quit</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code">

</span><span class="hl-brackets">}</span><span class="hl-code">

</span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-identifier">TicTacToe</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-identifier">Gtk</span><span class="hl-code">::</span><span class="hl-identifier">main</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;

</span><span class="hl-inlinetags">?&gt;</span></pre>
</div>
</div>
<p><a href="http://www.johnciacia.com/wp-content/uploads/2009/05/tictactoe.png"><img src="http://www.johnciacia.com/wp-content/uploads/2009/05/tictactoe-300x187.png" alt="tictactoe" title="tictactoe" width="300" height="187" class="aligncenter size-medium wp-image-164" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.johnciacia.com/2009/05/22/tic-tac-toe/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Email Obfuscator</title>
		<link>http://www.johnciacia.com/2009/05/22/email-obfuscator/</link>
		<comments>http://www.johnciacia.com/2009/05/22/email-obfuscator/#comments</comments>
		<pubDate>Sat, 23 May 2009 00:25:21 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[obfuscator]]></category>

		<guid isPermaLink="false">http://www.johnciacia.com/?p=156</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<div class="hl-container">
<div class="hl-main">
<pre><span class="hl-code">&lt;!</span><span class="hl-identifier">DOCTYPE</span><span class="hl-code"> </span><span class="hl-identifier">html</span><span class="hl-code"> </span><span class="hl-identifier">PUBLIC</span><span class="hl-code"> </span><span class="hl-quotes">&quot;</span><span class="hl-string">-//W3C//DTD XHTML 1.0 Transitional//EN</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-quotes">&quot;</span><span class="hl-string">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</span><span class="hl-quotes">&quot;</span><span class="hl-code">&gt;
&lt;</span><span class="hl-identifier">html</span><span class="hl-code"> </span><span class="hl-identifier">xmlns</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">http://www.w3.org/1999/xhtml</span><span class="hl-quotes">&quot;</span><span class="hl-code">&gt;
&lt;</span><span class="hl-identifier">head</span><span class="hl-code">&gt;
&lt;</span><span class="hl-identifier">meta</span><span class="hl-code"> </span><span class="hl-identifier">http</span><span class="hl-code">-</span><span class="hl-identifier">equiv</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">Content-Type</span><span class="hl-quotes">&quot;</span><span class="hl-code"> </span><span class="hl-identifier">content</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">text/html; charset=utf-8</span><span class="hl-quotes">&quot;</span><span class="hl-code"> /&gt;
&lt;</span><span class="hl-identifier">title</span><span class="hl-code">&gt;</span><span class="hl-identifier">GEO</span><span class="hl-code">&lt;/</span><span class="hl-identifier">title</span><span class="hl-code">&gt;
&lt;</span><span class="hl-identifier">script</span><span class="hl-code"> </span><span class="hl-identifier">type</span><span class="hl-code">=</span><span class="hl-quotes">&quot;</span><span class="hl-string">text/javascript</span><span class="hl-quotes">&quot;</span><span class="hl-code">&gt;
</span><span class="hl-comment">//</span><span class="hl-comment">&lt;![CDATA[</span><span class="hl-comment"></span><span class="hl-code">
</span><span class="hl-builtin">window</span><span class="hl-code">.</span><span class="hl-identifier">onload</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
    </span><span class="hl-identifier">geo</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">

</span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">geo</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
    </span><span class="hl-reserved">if</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">getElementsByTagName</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-comment">//</span><span class="hl-comment"> Check for browser support</span><span class="hl-comment"></span><span class="hl-code">
            </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-reserved">false</span><span class="hl-code">;
    </span><span class="hl-reserved">if</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-identifier">rot13</span><span class="hl-brackets">)</span><span class="hl-code">
        </span><span class="hl-reserved">var</span><span class="hl-code"> </span><span class="hl-identifier">map</span><span class="hl-code"> = </span><span class="hl-identifier">rot13init</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">; 

    </span><span class="hl-reserved">var</span><span class="hl-code"> </span><span class="hl-identifier">links</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">getElementsByTagName</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">a</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;

    </span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">geo_decode</span><span class="hl-brackets">(</span><span class="hl-identifier">anchor</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-reserved">var</span><span class="hl-code"> </span><span class="hl-identifier">href</span><span class="hl-code"> = </span><span class="hl-identifier">anchor</span><span class="hl-code">.</span><span class="hl-identifier">getAttribute</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">href</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-reserved">var</span><span class="hl-code"> </span><span class="hl-identifier">address</span><span class="hl-code"> = </span><span class="hl-identifier">href</span><span class="hl-code">.</span><span class="hl-identifier">replace</span><span class="hl-brackets">(</span><span class="hl-code">/.*</span><span class="hl-identifier">contact</span><span class="hl-code">\/</span><span class="hl-brackets">(</span><span class="hl-brackets">[</span><span class="hl-identifier">a</span><span class="hl-code">-</span><span class="hl-identifier">z0</span><span class="hl-code">-</span><span class="hl-number">9</span><span class="hl-code">.</span><span class="hl-identifier">_</span><span class="hl-code">%-</span><span class="hl-brackets">]</span><span class="hl-code">+</span><span class="hl-brackets">)</span><span class="hl-code">\+</span><span class="hl-brackets">(</span><span class="hl-brackets">[</span><span class="hl-identifier">a</span><span class="hl-code">-</span><span class="hl-identifier">z0</span><span class="hl-code">-</span><span class="hl-number">9</span><span class="hl-code">.</span><span class="hl-identifier">_</span><span class="hl-code">%-</span><span class="hl-brackets">]</span><span class="hl-code">+</span><span class="hl-brackets">)</span><span class="hl-code">\+</span><span class="hl-brackets">(</span><span class="hl-brackets">[</span><span class="hl-identifier">a</span><span class="hl-code">-</span><span class="hl-identifier">z</span><span class="hl-code">.</span><span class="hl-brackets">]</span><span class="hl-code">+</span><span class="hl-brackets">)</span><span class="hl-code">/</span><span class="hl-identifier">i</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">$1</span><span class="hl-quotes">'</span><span class="hl-code"> + </span><span class="hl-quotes">'</span><span class="hl-string">@</span><span class="hl-quotes">'</span><span class="hl-code"> + </span><span class="hl-quotes">'</span><span class="hl-string">$2</span><span class="hl-quotes">'</span><span class="hl-code"> + </span><span class="hl-quotes">'</span><span class="hl-string">.</span><span class="hl-quotes">'</span><span class="hl-code"> + </span><span class="hl-quotes">'</span><span class="hl-string">$3</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-reserved">var</span><span class="hl-code"> </span><span class="hl-identifier">linktext</span><span class="hl-code"> = </span><span class="hl-identifier">anchor</span><span class="hl-code">.</span><span class="hl-identifier">innerHTML</span><span class="hl-code">;
            </span><span class="hl-reserved">if</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-identifier">href</span><span class="hl-code"> != </span><span class="hl-identifier">address</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
                </span><span class="hl-identifier">anchor</span><span class="hl-code">.</span><span class="hl-identifier">setAttribute</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">href</span><span class="hl-quotes">'</span><span class="hl-code">,</span><span class="hl-quotes">'</span><span class="hl-string">mailto:</span><span class="hl-quotes">'</span><span class="hl-code"> + </span><span class="hl-brackets">(</span><span class="hl-identifier">rot13</span><span class="hl-code"> ? </span><span class="hl-identifier">str_rot13</span><span class="hl-brackets">(</span><span class="hl-identifier">address</span><span class="hl-code">,</span><span class="hl-identifier">map</span><span class="hl-brackets">)</span><span class="hl-code"> : </span><span class="hl-identifier">address</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-comment">//</span><span class="hl-comment"> Add mailto link    </span><span class="hl-comment"></span><span class="hl-code">
                </span><span class="hl-identifier">anchor</span><span class="hl-code">.</span><span class="hl-identifier">innerHTML</span><span class="hl-code"> = </span><span class="hl-identifier">linktext</span><span class="hl-code">; </span><span class="hl-comment">//</span><span class="hl-comment"> IE Fix</span><span class="hl-comment"></span><span class="hl-code">
        </span><span class="hl-brackets">}</span><span class="hl-code">
    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">for</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-reserved">var</span><span class="hl-code"> </span><span class="hl-identifier">l</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code"> ; </span><span class="hl-identifier">l</span><span class="hl-code"> &lt; </span><span class="hl-identifier">links</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code"> ; </span><span class="hl-identifier">l</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-code">
    </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-identifier">links</span><span class="hl-brackets">[</span><span class="hl-identifier">l</span><span class="hl-brackets">]</span><span class="hl-code">.</span><span class="hl-identifier">onclick</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">
        </span><span class="hl-brackets">{</span><span class="hl-code">
            </span><span class="hl-identifier">geo_decode</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-brackets">}</span><span class="hl-code">

        </span><span class="hl-identifier">links</span><span class="hl-brackets">[</span><span class="hl-identifier">l</span><span class="hl-brackets">]</span><span class="hl-code">.</span><span class="hl-identifier">onmouseover</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">
        </span><span class="hl-brackets">{</span><span class="hl-code">
                </span><span class="hl-identifier">geo_decode</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;

        </span><span class="hl-brackets">}</span><span class="hl-code">
    </span><span class="hl-brackets">}</span><span class="hl-code">
</span><span class="hl-brackets">}</span><span class="hl-code">

</span><span class="hl-reserved">var</span><span class="hl-code"> </span><span class="hl-identifier">rot13</span><span class="hl-code"> = </span><span class="hl-number">1</span><span class="hl-code">;

</span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">rot13init</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
    </span><span class="hl-reserved">var</span><span class="hl-code"> </span><span class="hl-identifier">map</span><span class="hl-code"> = </span><span class="hl-reserved">new</span><span class="hl-code"> </span><span class="hl-builtin">Array</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-reserved">var</span><span class="hl-code"> </span><span class="hl-identifier">s</span><span class="hl-code"> = </span><span class="hl-quotes">&quot;</span><span class="hl-string">abcdefghijklmnopqrstuvwxyz</span><span class="hl-quotes">&quot;</span><span class="hl-code">;
    </span><span class="hl-reserved">for</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-reserved">var</span><span class="hl-code"> </span><span class="hl-identifier">i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code"> ; </span><span class="hl-identifier">i</span><span class="hl-code"> &lt; </span><span class="hl-identifier">s</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code"> ; </span><span class="hl-identifier">i</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-code">
        </span><span class="hl-identifier">map</span><span class="hl-brackets">[</span><span class="hl-identifier">s</span><span class="hl-code">.</span><span class="hl-identifier">charAt</span><span class="hl-brackets">(</span><span class="hl-identifier">i</span><span class="hl-brackets">)</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">s</span><span class="hl-code">.</span><span class="hl-identifier">charAt</span><span class="hl-brackets">(</span><span class="hl-brackets">(</span><span class="hl-identifier">i</span><span class="hl-code">+</span><span class="hl-number">13</span><span class="hl-brackets">)</span><span class="hl-code">%</span><span class="hl-number">26</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-reserved">for</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-reserved">var</span><span class="hl-code"> </span><span class="hl-identifier">i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code"> ; </span><span class="hl-identifier">i</span><span class="hl-code"> &lt; </span><span class="hl-identifier">s</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code"> ; </span><span class="hl-identifier">i</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-code">
        </span><span class="hl-identifier">map</span><span class="hl-brackets">[</span><span class="hl-identifier">s</span><span class="hl-code">.</span><span class="hl-identifier">charAt</span><span class="hl-brackets">(</span><span class="hl-identifier">i</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">toUpperCase</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">s</span><span class="hl-code">.</span><span class="hl-identifier">charAt</span><span class="hl-brackets">(</span><span class="hl-brackets">(</span><span class="hl-identifier">i</span><span class="hl-code">+</span><span class="hl-number">13</span><span class="hl-brackets">)</span><span class="hl-code">%</span><span class="hl-number">26</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">toUpperCase</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-identifier">map</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">

</span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">str_rot13</span><span class="hl-brackets">(</span><span class="hl-identifier">a</span><span class="hl-code">,</span><span class="hl-identifier">map</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
    </span><span class="hl-reserved">var</span><span class="hl-code"> </span><span class="hl-identifier">s</span><span class="hl-code"> = </span><span class="hl-quotes">&quot;</span><span class="hl-quotes">&quot;</span><span class="hl-code">;
    </span><span class="hl-reserved">for</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-reserved">var</span><span class="hl-code"> </span><span class="hl-identifier">i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code"> ; </span><span class="hl-identifier">i</span><span class="hl-code"> &lt; </span><span class="hl-identifier">a</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code"> ; </span><span class="hl-identifier">i</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-reserved">var</span><span class="hl-code"> </span><span class="hl-identifier">b</span><span class="hl-code"> = </span><span class="hl-identifier">a</span><span class="hl-code">.</span><span class="hl-identifier">charAt</span><span class="hl-brackets">(</span><span class="hl-identifier">i</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-identifier">s</span><span class="hl-code"> += </span><span class="hl-brackets">(</span><span class="hl-identifier">b</span><span class="hl-code">&gt;=</span><span class="hl-quotes">'</span><span class="hl-string">A</span><span class="hl-quotes">'</span><span class="hl-code"> &amp;&amp; </span><span class="hl-identifier">b</span><span class="hl-code">&lt;=</span><span class="hl-quotes">'</span><span class="hl-string">Z</span><span class="hl-quotes">'</span><span class="hl-code"> || </span><span class="hl-identifier">b</span><span class="hl-code">&gt;=</span><span class="hl-quotes">'</span><span class="hl-string">a</span><span class="hl-quotes">'</span><span class="hl-code"> &amp;&amp; </span><span class="hl-identifier">b</span><span class="hl-code">&lt;=</span><span class="hl-quotes">'</span><span class="hl-string">z</span><span class="hl-quotes">'</span><span class="hl-code"> ? </span><span class="hl-identifier">map</span><span class="hl-brackets">[</span><span class="hl-identifier">b</span><span class="hl-brackets">]</span><span class="hl-code"> : </span><span class="hl-identifier">b</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code">
    </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-identifier">s</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">
</span><span class="hl-comment">//</span><span class="hl-comment">]]&gt;</span><span class="hl-comment"></span><span class="hl-code">
&lt;/</span><span class="hl-identifier">script</span><span class="hl-code">&gt;
&lt;/</span><span class="hl-identifier">head</span><span class="hl-code">&gt;

&lt;</span><span class="hl-identifier">body</span><span class="hl-code">&gt;
&lt;?</span><span class="hl-identifier">php</span><span class="hl-code">

</span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">cloakmail</span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-identifier">content</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">

    </span><span class="hl-identifier">preg_match_all</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">^[-a-z-A-Z-0-9\._]+@[-a-z-A-Z-0-9\._]+\.[a-z]{2,4}^</span><span class="hl-quotes">&quot;</span><span class="hl-code">, $</span><span class="hl-identifier">content</span><span class="hl-code">, $</span><span class="hl-identifier">emails</span><span class="hl-brackets">)</span><span class="hl-code">;

    </span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-identifier">i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">; $</span><span class="hl-identifier">i</span><span class="hl-code"> &lt; </span><span class="hl-identifier">count</span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-identifier">emails</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-brackets">)</span><span class="hl-code">; $</span><span class="hl-identifier">i</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
        $</span><span class="hl-identifier">username</span><span class="hl-code"> = </span><span class="hl-identifier">explode</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">@</span><span class="hl-quotes">&quot;</span><span class="hl-code">, $</span><span class="hl-identifier">emails</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-brackets">[</span><span class="hl-code">$</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-brackets">)</span><span class="hl-code">;
        $</span><span class="hl-identifier">domain</span><span class="hl-code"> = </span><span class="hl-identifier">explode</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">.</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-identifier">str_rot13</span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-identifier">username</span><span class="hl-brackets">[</span><span class="hl-number">1</span><span class="hl-brackets">]</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;

        </span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">count</span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-identifier">domain</span><span class="hl-brackets">)</span><span class="hl-code"> &gt; </span><span class="hl-number">2</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
            $</span><span class="hl-identifier">replace</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">&lt;a href=&quot;contact/</span><span class="hl-quotes">'</span><span class="hl-code"> . </span><span class="hl-identifier">str_rot13</span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-identifier">username</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-brackets">)</span><span class="hl-code"> . </span><span class="hl-quotes">'</span><span class="hl-string">+</span><span class="hl-quotes">'</span><span class="hl-code">
            . $</span><span class="hl-identifier">domain</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code"> . </span><span class="hl-quotes">'</span><span class="hl-string">+</span><span class="hl-quotes">'</span><span class="hl-code">
            . $</span><span class="hl-identifier">domain</span><span class="hl-brackets">[</span><span class="hl-number">1</span><span class="hl-brackets">]</span><span class="hl-code"> . </span><span class="hl-quotes">'</span><span class="hl-string">.</span><span class="hl-quotes">'</span><span class="hl-code">
            . $</span><span class="hl-identifier">domain</span><span class="hl-brackets">[</span><span class="hl-number">2</span><span class="hl-brackets">]</span><span class="hl-code"> .</span><span class="hl-quotes">'</span><span class="hl-string">&quot; rel=&quot;nofollow&quot;&gt;</span><span class="hl-quotes">'</span><span class="hl-code"> . </span><span class="hl-identifier">asc2html</span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-identifier">emails</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-brackets">[</span><span class="hl-code">$</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-brackets">)</span><span class="hl-code"> . </span><span class="hl-quotes">'</span><span class="hl-string">&lt;/a&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
        </span><span class="hl-brackets">}</span><span class="hl-code"> </span><span class="hl-reserved">else</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
            $</span><span class="hl-identifier">replace</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">&lt;a href=&quot;contact/</span><span class="hl-quotes">'</span><span class="hl-code"> . </span><span class="hl-identifier">str_rot13</span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-identifier">username</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-brackets">)</span><span class="hl-code"> . </span><span class="hl-quotes">'</span><span class="hl-string">+</span><span class="hl-quotes">'</span><span class="hl-code">
            . $</span><span class="hl-identifier">domain</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code"> . </span><span class="hl-quotes">'</span><span class="hl-string">+</span><span class="hl-quotes">'</span><span class="hl-code">
            . $</span><span class="hl-identifier">domain</span><span class="hl-brackets">[</span><span class="hl-number">1</span><span class="hl-brackets">]</span><span class="hl-code"> .</span><span class="hl-quotes">'</span><span class="hl-string">&quot; rel=&quot;nofollow&quot;&gt;</span><span class="hl-quotes">'</span><span class="hl-code"> . </span><span class="hl-identifier">asc2html</span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-identifier">emails</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-brackets">[</span><span class="hl-code">$</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-brackets">)</span><span class="hl-code"> . </span><span class="hl-quotes">'</span><span class="hl-string">&lt;/a&gt;</span><span class="hl-quotes">'</span><span class="hl-code">;
        </span><span class="hl-brackets">}</span><span class="hl-code">

        $</span><span class="hl-identifier">content</span><span class="hl-code"> = </span><span class="hl-identifier">str_replace</span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-identifier">emails</span><span class="hl-brackets">[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-brackets">[</span><span class="hl-code">$</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-code">, $</span><span class="hl-identifier">replace</span><span class="hl-code">, $</span><span class="hl-identifier">content</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">return</span><span class="hl-code"> $</span><span class="hl-identifier">content</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">

</span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">asc2html</span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-identifier">email</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
    $</span><span class="hl-identifier">html</span><span class="hl-code"> = </span><span class="hl-quotes">&quot;</span><span class="hl-quotes">&quot;</span><span class="hl-code">;
    $</span><span class="hl-identifier">len</span><span class="hl-code"> = </span><span class="hl-identifier">strlen</span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-identifier">email</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-identifier">i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">; $</span><span class="hl-identifier">i</span><span class="hl-code"> &lt; $</span><span class="hl-identifier">len</span><span class="hl-code">; $</span><span class="hl-identifier">i</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
        $</span><span class="hl-identifier">html</span><span class="hl-code"> .= </span><span class="hl-quotes">&quot;</span><span class="hl-string">&amp;#</span><span class="hl-quotes">&quot;</span><span class="hl-code"> . </span><span class="hl-identifier">ord</span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-identifier">email</span><span class="hl-brackets">[</span><span class="hl-code">$</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code">
    </span><span class="hl-reserved">return</span><span class="hl-code"> $</span><span class="hl-identifier">html</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">

$</span><span class="hl-identifier">content</span><span class="hl-code"> = </span><span class="hl-quotes">&quot;</span><span class="hl-string">Sidewinder@anything.extreme-hq.com&lt;br /&gt;</span><span class="hl-special">\n</span><span class="hl-string">
Sidewinder@extreme-hq.com</span><span class="hl-quotes">&quot;</span><span class="hl-code">;

</span><span class="hl-identifier">echo</span><span class="hl-code"> </span><span class="hl-identifier">cloakmail</span><span class="hl-brackets">(</span><span class="hl-code">$</span><span class="hl-identifier">content</span><span class="hl-brackets">)</span><span class="hl-code">;
?&gt;
&lt;/</span><span class="hl-identifier">body</span><span class="hl-code">&gt;
&lt;/</span><span class="hl-identifier">html</span><span class="hl-code">&gt;</span></pre>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.johnciacia.com/2009/05/22/email-obfuscator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Decimal to Roman Numeral Conversion</title>
		<link>http://www.johnciacia.com/2009/05/21/decimal-to-roman-numeral-conversion/</link>
		<comments>http://www.johnciacia.com/2009/05/21/decimal-to-roman-numeral-conversion/#comments</comments>
		<pubDate>Thu, 21 May 2009 06:07:44 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[cpp]]></category>
		<category><![CDATA[decimal]]></category>
		<category><![CDATA[roman numeral]]></category>

		<guid isPermaLink="false">http://www.johnciacia.com/?p=145</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<div class="hl-container">
<div class="hl-main">
<pre><span >#include</span><span > </span><span class="hl-quotes">&lt;</span><span class="hl-string">iostream</span><span class="hl-quotes">&gt;</span><span ></span><span class="hl-code">
</span><span >#include</span><span > </span><span class="hl-quotes">&lt;</span><span class="hl-string">string</span><span class="hl-quotes">&gt;</span><span ></span><span class="hl-code">
</span><span class="hl-reserved">using</span><span class="hl-code"> </span><span >namespace</span><span class="hl-code"> </span><span class="hl-identifier">std</span><span class="hl-code">;

</span><span class="hl-identifier">string</span><span class="hl-code"> </span><span class="hl-identifier">dec_to_numeral</span><span class="hl-brackets">(</span><span >int</span><span class="hl-code"> </span><span class="hl-identifier">x</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
    </span><span >int</span><span class="hl-code"> </span><span class="hl-identifier">dec</span><span class="hl-brackets">[</span><span class="hl-number">13</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-brackets">{</span><span class="hl-number">1000</span><span class="hl-code">, </span><span class="hl-number">900</span><span class="hl-code">, </span><span class="hl-number">500</span><span class="hl-code">, </span><span class="hl-number">400</span><span class="hl-code">, </span><span class="hl-number">100</span><span class="hl-code">, </span><span class="hl-number">90</span><span class="hl-code">, </span><span class="hl-number">50</span><span class="hl-code">, </span><span class="hl-number">40</span><span class="hl-code">, </span><span class="hl-number">10</span><span class="hl-code">, </span><span class="hl-number">9</span><span class="hl-code">, </span><span class="hl-number">5</span><span class="hl-code">, </span><span class="hl-number">4</span><span class="hl-code">, </span><span class="hl-number">1</span><span class="hl-brackets">}</span><span class="hl-code">;
    </span><span class="hl-identifier">string</span><span class="hl-code"> </span><span class="hl-identifier">num</span><span class="hl-brackets">[</span><span class="hl-number">13</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-brackets">{</span><span class="hl-quotes">&quot;</span><span class="hl-string">M</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-quotes">&quot;</span><span class="hl-string">CM</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-quotes">&quot;</span><span class="hl-string">D</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-quotes">&quot;</span><span class="hl-string">CD</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-quotes">&quot;</span><span class="hl-string">C</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-quotes">&quot;</span><span class="hl-string">XC</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-quotes">&quot;</span><span class="hl-string">L</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-quotes">&quot;</span><span class="hl-string">XL</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-quotes">&quot;</span><span class="hl-string">X</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-quotes">&quot;</span><span class="hl-string">IX</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-quotes">&quot;</span><span class="hl-string">V</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-quotes">&quot;</span><span class="hl-string">IV</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-quotes">&quot;</span><span class="hl-string">I</span><span class="hl-quotes">&quot;</span><span class="hl-brackets">}</span><span class="hl-code">;
    </span><span class="hl-identifier">string</span><span class="hl-code"> </span><span class="hl-identifier">numeral</span><span class="hl-code">;

    </span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span >int</span><span class="hl-code"> </span><span class="hl-identifier">i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">; </span><span class="hl-identifier">i</span><span class="hl-code"> &lt; </span><span class="hl-number">13</span><span class="hl-code">; </span><span class="hl-identifier">i</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-reserved">while</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-identifier">x</span><span class="hl-code"> &gt;= </span><span class="hl-identifier">dec</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
            </span><span class="hl-identifier">x</span><span class="hl-code"> -= </span><span class="hl-identifier">dec</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-code">;
            </span><span class="hl-identifier">numeral</span><span class="hl-code">.</span><span class="hl-identifier">append</span><span class="hl-brackets">(</span><span class="hl-identifier">num</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-brackets">}</span><span class="hl-code">
    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-identifier">numeral</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">

</span><span >int</span><span class="hl-code"> </span><span class="hl-identifier">main</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
    </span><span class="hl-comment">//example</span><span class="hl-comment"></span><span class="hl-code">
    </span><span class="hl-identifier">cout</span><span class="hl-code"> &lt;&lt; </span><span class="hl-identifier">dec_to_numeral</span><span class="hl-brackets">(</span><span class="hl-number">400</span><span class="hl-brackets">)</span><span class="hl-code">;

    </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-number">0</span><span class="hl-code">;
</span><span class="hl-brackets">}</span></pre>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.johnciacia.com/2009/05/21/decimal-to-roman-numeral-conversion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Monte Carlo Generation of Pi</title>
		<link>http://www.johnciacia.com/2009/05/21/monte-carlo-generation-of-pi/</link>
		<comments>http://www.johnciacia.com/2009/05/21/monte-carlo-generation-of-pi/#comments</comments>
		<pubDate>Thu, 21 May 2009 05:34:44 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[cpp]]></category>
		<category><![CDATA[monte carlo]]></category>
		<category><![CDATA[pi]]></category>

		<guid isPermaLink="false">http://www.johnciacia.com/?p=141</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<div class="hl-container">
<div class="hl-main">
<pre><span >#include</span><span > </span><span class="hl-quotes">&lt;</span><span class="hl-string">stdio.h</span><span class="hl-quotes">&gt;</span><span ></span><span class="hl-code">
</span><span >#include</span><span > </span><span class="hl-quotes">&lt;</span><span class="hl-string">stdlib.h</span><span class="hl-quotes">&gt;</span><span ></span><span class="hl-code">
</span><span >#include</span><span > </span><span class="hl-quotes">&lt;</span><span class="hl-string">time.h</span><span class="hl-quotes">&gt;</span><span ></span><span class="hl-code">
</span><span >#include</span><span > </span><span class="hl-quotes">&lt;</span><span class="hl-string">math.h</span><span class="hl-quotes">&gt;</span><span ></span><span class="hl-code">
</span><span >int</span><span class="hl-code"> </span><span class="hl-identifier">main</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">
</span><span class="hl-brackets">{</span><span class="hl-code">
    </span><span >int</span><span class="hl-code"> </span><span class="hl-identifier">in</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">;
    </span><span class="hl-identifier">srand</span><span class="hl-brackets">(</span><span class="hl-identifier">time</span><span class="hl-brackets">(</span><span >NULL</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;

    </span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span >int</span><span class="hl-code"> </span><span class="hl-identifier">i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">; </span><span class="hl-identifier">i</span><span class="hl-code"> &lt; </span><span class="hl-number">1000000</span><span class="hl-code">; </span><span class="hl-identifier">i</span><span class="hl-code">++</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span >float</span><span class="hl-code"> </span><span class="hl-identifier">x</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-identifier">rand</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">%</span><span class="hl-number">1000000</span><span class="hl-brackets">)</span><span class="hl-code">/</span><span class="hl-number">1000000</span><span class="hl-number">.0</span><span class="hl-code">;
        </span><span >float</span><span class="hl-code"> </span><span class="hl-identifier">y</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-identifier">rand</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code">%</span><span class="hl-number">1000000</span><span class="hl-brackets">)</span><span class="hl-code">/</span><span class="hl-number">1000000</span><span class="hl-number">.0</span><span class="hl-code">;
        </span><span >double</span><span class="hl-code"> </span><span class="hl-identifier">r</span><span class="hl-code"> = </span><span class="hl-identifier">sqrt</span><span class="hl-brackets">(</span><span class="hl-brackets">(</span><span class="hl-identifier">pow</span><span class="hl-brackets">(</span><span class="hl-identifier">x</span><span class="hl-code">,</span><span class="hl-number">2</span><span class="hl-brackets">)</span><span class="hl-code">+</span><span class="hl-identifier">pow</span><span class="hl-brackets">(</span><span class="hl-identifier">y</span><span class="hl-code">,</span><span class="hl-number">2</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">r</span><span class="hl-code"> &lt;= </span><span class="hl-number">1</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-identifier">in</span><span class="hl-code">++;
    </span><span class="hl-brackets">}</span><span class="hl-code">
    </span><span class="hl-identifier">printf</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">percent error=%fn</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-brackets">(</span><span class="hl-brackets">(</span><span class="hl-brackets">(</span><span class="hl-brackets">(</span><span class="hl-number">4</span><span class="hl-code">*</span><span class="hl-identifier">in</span><span class="hl-code">/</span><span class="hl-number">1000000</span><span class="hl-number">.0</span><span class="hl-brackets">)</span><span class="hl-code">-</span><span class="hl-number">3</span><span class="hl-number">.141592</span><span class="hl-brackets">)</span><span class="hl-code">/</span><span class="hl-number">3</span><span class="hl-number">.141592</span><span class="hl-brackets">)</span><span class="hl-code">*</span><span class="hl-number">100</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-identifier">printf</span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">pi=%fn</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-brackets">(</span><span class="hl-number">4</span><span class="hl-code">*</span><span class="hl-identifier">in</span><span class="hl-code">/</span><span class="hl-number">1000000</span><span class="hl-number">.0</span><span class="hl-brackets">)</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-number">0</span><span class="hl-code">;
</span><span class="hl-brackets">}</span></pre>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.johnciacia.com/2009/05/21/monte-carlo-generation-of-pi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Euler&#8217;s Constant</title>
		<link>http://www.johnciacia.com/2009/05/21/eulers-constant/</link>
		<comments>http://www.johnciacia.com/2009/05/21/eulers-constant/#comments</comments>
		<pubDate>Thu, 21 May 2009 05:33:44 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[C++]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[e]]></category>
		<category><![CDATA[euler]]></category>
		<category><![CDATA[eulers constant]]></category>
		<category><![CDATA[factorial]]></category>
		<category><![CDATA[recursion]]></category>

		<guid isPermaLink="false">http://www.johnciacia.com/?p=139</guid>
		<description><![CDATA[Calculate Euler&#8217;s constant.]]></description>
			<content:encoded><![CDATA[<p>Calculate Euler&#8217;s constant.</p>
<div class="hl-container">
<div class="hl-main">
<pre><span >#include</span><span > </span><span class="hl-quotes">&lt;</span><span class="hl-string">stdio.h</span><span class="hl-quotes">&gt;</span><span ></span><span class="hl-code">
</span><span class="hl-mlcomment">/*</span><span class="hl-mlcomment">*
 * This code will calculate e
 * as the sum of the infinite series
 * 1/1! + 1/2! + 1/3! + ... + 1/n!
 * g++ e.c
 * ./a.out
 </span><span class="hl-mlcomment">*/</span><span class="hl-code">
</span><span >int</span><span class="hl-code"> </span><span class="hl-identifier">factorial</span><span class="hl-brackets">(</span><span >unsigned</span><span class="hl-code"> </span><span >int</span><span class="hl-code"> </span><span class="hl-identifier">i</span><span class="hl-brackets">)</span><span class="hl-code">;

</span><span >int</span><span class="hl-code"> </span><span class="hl-identifier">main</span><span class="hl-brackets">(</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
    </span><span >double</span><span class="hl-code"> </span><span class="hl-identifier">e</span><span class="hl-code"> = </span><span class="hl-number">1</span><span class="hl-number">.0</span><span class="hl-code">;
    </span><span class="hl-reserved">for</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span >int</span><span class="hl-code"> </span><span class="hl-identifier">n</span><span class="hl-code"> = </span><span class="hl-number">10</span><span class="hl-code">; </span><span class="hl-identifier">n</span><span class="hl-code"> &gt; </span><span class="hl-number">0</span><span class="hl-code">; </span><span class="hl-identifier">n</span><span class="hl-code">--</span><span class="hl-brackets">)</span><span class="hl-code">
        </span><span class="hl-identifier">e</span><span class="hl-code"> += </span><span class="hl-number">1</span><span class="hl-number">.0</span><span class="hl-code">/</span><span class="hl-identifier">factorial</span><span class="hl-brackets">(</span><span class="hl-identifier">n</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-identifier">printf</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-quotes">&quot;</span><span class="hl-string">e = %lgn</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-identifier">e</span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-number">0</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">

</span><span >int</span><span class="hl-code"> </span><span class="hl-identifier">factorial</span><span class="hl-brackets">(</span><span >unsigned</span><span class="hl-code"> </span><span >int</span><span class="hl-code"> </span><span class="hl-identifier">i</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
    </span><span class="hl-reserved">if</span><span class="hl-brackets">(</span><span class="hl-identifier">i</span><span class="hl-code"> == </span><span class="hl-number">0</span><span class="hl-code"> || </span><span class="hl-identifier">i</span><span class="hl-code"> == </span><span class="hl-number">1</span><span class="hl-brackets">)</span><span class="hl-code">
        </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-number">1</span><span class="hl-number">.0</span><span class="hl-code">;
    </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-identifier">i</span><span class="hl-code"> * </span><span class="hl-identifier">factorial</span><span class="hl-brackets">(</span><span class="hl-identifier">i</span><span class="hl-code">-</span><span class="hl-number">1</span><span class="hl-brackets">)</span><span class="hl-code">;
</span><span class="hl-brackets">}</span></pre>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.johnciacia.com/2009/05/21/eulers-constant/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Binary to Decimal Conversion</title>
		<link>http://www.johnciacia.com/2009/05/21/133/</link>
		<comments>http://www.johnciacia.com/2009/05/21/133/#comments</comments>
		<pubDate>Thu, 21 May 2009 05:08:00 +0000</pubDate>
		<dc:creator>John</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Snippets]]></category>
		<category><![CDATA[binary]]></category>
		<category><![CDATA[decimal]]></category>

		<guid isPermaLink="false">http://www.johnciacia.com/?p=133</guid>
		<description><![CDATA[Converts a binary number to its decimal equivalent. However unlike the bindec function, this will preserve the binary/radix point. Code Usage Output Usage Output]]></description>
			<content:encoded><![CDATA[<p>Converts a binary number to its decimal equivalent. However unlike the <a href="http://us3.php.net/manual/en/function.bindec.php">bindec </a>function, this will preserve the <a href="http://en.wikipedia.org/wiki/Binary_point">binary/radix point</a>.</p>
<p><strong>Code</strong></p>
<div class="hl-container">
<div class="hl-main">
<pre><span class="hl-inlinetags">&lt;?php</span><span class="hl-code">

</span><span class="hl-comment">/*</span><span class="hl-comment">*
 * Convert a binary number with our without
 * a radix point to its decimal equivalent.
 *
 *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">$binary The binary number to convert.
 *</span><span class="hl-inlinedoc"> @param </span><span class="hl-comment">$output Show the calculations.
 *</span><span class="hl-inlinedoc"> @return </span><span class="hl-comment">The decimal conversion
 </span><span class="hl-comment">*/</span><span class="hl-code">
</span><span class="hl-reserved">function</span><span class="hl-code"> </span><span class="hl-identifier">bin2dec</span><span class="hl-brackets">(</span><span class="hl-var">$binary</span><span class="hl-code">, </span><span class="hl-var">$output</span><span class="hl-code"> = </span><span class="hl-reserved">false</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
    </span><span class="hl-var">$N</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">;
    </span><span class="hl-var">$o</span><span class="hl-code"> = </span><span class="hl-quotes">&quot;</span><span class="hl-quotes">&quot;</span><span class="hl-code">;
    </span><span class="hl-reserved">list</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-var">$rhs</span><span class="hl-code">, </span><span class="hl-var">$lhs</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code"> = </span><span class="hl-identifier">explode</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-quotes">&quot;</span><span class="hl-string">.</span><span class="hl-quotes">&quot;</span><span class="hl-code">, </span><span class="hl-var">$binary</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-var">$rhs</span><span class="hl-code"> = </span><span class="hl-identifier">strrev</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-var">$rhs</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code">;
    </span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-var">$i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code"> &lt; </span><span class="hl-identifier">strlen</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-var">$rhs</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code"> ++</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-var">$d</span><span class="hl-code"> = </span><span class="hl-var">$rhs</span><span class="hl-code"> </span><span class="hl-brackets">[</span><span class="hl-var">$i</span><span class="hl-brackets">]</span><span class="hl-code"> * </span><span class="hl-identifier">pow</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-number">2</span><span class="hl-code">, </span><span class="hl-var">$i</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$N</span><span class="hl-code"> = </span><span class="hl-var">$d</span><span class="hl-code"> + </span><span class="hl-var">$N</span><span class="hl-code">;
        </span><span class="hl-var">$o</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-var">$d</span><span class="hl-code"> == </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code"> ? </span><span class="hl-var">$o</span><span class="hl-code"> : </span><span class="hl-var">$o</span><span class="hl-code"> . </span><span class="hl-var">$d</span><span class="hl-code"> . </span><span class="hl-quotes">&quot;</span><span class="hl-string"> + </span><span class="hl-quotes">&quot;</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">for</span><span class="hl-brackets">(</span><span class="hl-var">$i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code"> &lt; </span><span class="hl-identifier">strlen</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-var">$lhs</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-var">$i</span><span class="hl-code"> ++</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">{</span><span class="hl-code">
        </span><span class="hl-var">$d</span><span class="hl-code"> = </span><span class="hl-var">$lhs</span><span class="hl-code"> </span><span class="hl-brackets">[</span><span class="hl-var">$i</span><span class="hl-brackets">]</span><span class="hl-code"> * </span><span class="hl-identifier">pow</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-number">2</span><span class="hl-code">, - </span><span class="hl-brackets">(</span><span class="hl-var">$i</span><span class="hl-code"> + </span><span class="hl-number">1</span><span class="hl-brackets">)</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code">;
        </span><span class="hl-var">$N</span><span class="hl-code"> = </span><span class="hl-var">$d</span><span class="hl-code"> + </span><span class="hl-var">$N</span><span class="hl-code">;
        </span><span class="hl-var">$o</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-var">$d</span><span class="hl-code"> == </span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code"> ? </span><span class="hl-var">$o</span><span class="hl-code"> : </span><span class="hl-var">$o</span><span class="hl-code"> . </span><span class="hl-var">$d</span><span class="hl-code"> . </span><span class="hl-quotes">&quot;</span><span class="hl-string"> + </span><span class="hl-quotes">&quot;</span><span class="hl-code">;
    </span><span class="hl-brackets">}</span><span class="hl-code">

    </span><span class="hl-reserved">return</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-var">$output</span><span class="hl-brackets">)</span><span class="hl-code"> ? </span><span class="hl-identifier">substr</span><span class="hl-code"> </span><span class="hl-brackets">(</span><span class="hl-code"> </span><span class="hl-var">$o</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, - </span><span class="hl-number">3</span><span class="hl-code"> </span><span class="hl-brackets">)</span><span class="hl-code"> . </span><span class="hl-quotes">&quot;</span><span class="hl-string"> = </span><span class="hl-quotes">&quot;</span><span class="hl-code"> . </span><span class="hl-var">$N</span><span class="hl-code"> : </span><span class="hl-var">$N</span><span class="hl-code">;
</span><span class="hl-brackets">}</span><span class="hl-code">

</span><span class="hl-inlinetags">?&gt;</span></pre>
</div>
</div>
<p><strong>Usage</strong></p>
<div class="hl-container">
<div class="hl-main">
<pre><span class="hl-code">echo bin2dec ( &quot;1011101.1000101&quot;, true );</span></pre>
</div>
</div>
<p><strong>Output</strong></p>
<div class="hl-container">
<div class="hl-main">
<pre><span class="hl-code">1 + 4 + 8 + 16 + 64 + 0.5 + 0.03125 + 0.0078125 = 93.5390625</span></pre>
</div>
</div>
<p><strong>Usage</strong></p>
<div class="hl-container">
<div class="hl-main">
<pre><span class="hl-code">echo bin2dec ( &quot;1011101.1000101&quot;);</span></pre>
</div>
</div>
<p><strong>Output</strong></p>
<div class="hl-container">
<div class="hl-main">
<pre><span class="hl-code">93.5390625</span></pre>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.johnciacia.com/2009/05/21/133/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
