<?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>Vastermonster</title>
	<atom:link href="http://vastermonster.com/blog/feed" rel="self" type="application/rss+xml" />
	<link>http://vastermonster.com/blog</link>
	<description>is Paul Thrasher&#039;s personal blog. This is my space to write and post whatever I&#039;m into at the moment. I will mostly post about php code, design, strange videos, internet chaos, simplicity and cleverness — fairly in-often.</description>
	<lastBuildDate>Tue, 06 Apr 2010 06:03:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
<cloud domain='vastermonster.com' port='80' path='/blog/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>Turning a string into a question in PHP</title>
		<link>http://vastermonster.com/blog/turning-a-string-into-a-question-in-php</link>
		<comments>http://vastermonster.com/blog/turning-a-string-into-a-question-in-php#comments</comments>
		<pubDate>Tue, 06 Apr 2010 05:55:29 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://vastermonster.com/blog/?p=141</guid>
		<description><![CDATA[In our Dogster Answers product, we reformat all of the question strings to look more like questions. The titles come in looking sometimes ridiculous so this helps give them consistent formatting in a list of other questions. This solution gives some leeway in input but should remove most types of trailing punctuation and replace it [...]]]></description>
			<content:encoded><![CDATA[<p>In our <a href="http://www.dogster.com/answers">Dogster Answers</a> product, we reformat all of the question strings to look more like questions. The titles come in looking sometimes ridiculous so this helps give them consistent formatting in a list of other questions. This solution gives some leeway in input but should remove most types of trailing punctuation and replace it with a question mark.</p>
<p><script src="http://gist.github.com/337165.js?file=format_question.php"></script></p>
]]></content:encoded>
			<wfw:commentRss>http://js-kit.com/rss/vastermonster.com/blog/p=141</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quake3&#8242;s Fast InvSqrt()</title>
		<link>http://vastermonster.com/blog/quake3s-fast-invsqrt</link>
		<comments>http://vastermonster.com/blog/quake3s-fast-invsqrt#comments</comments>
		<pubDate>Thu, 19 Nov 2009 00:18:42 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://vastermonster.com/blog/?p=133</guid>
		<description><![CDATA[via beyond3d]]></description>
			<content:encoded><![CDATA[<p><script src="http://gist.github.com/238404.js"></script></p>
<p><a href="http://beyond3d.com/content/articles/8">via beyond3d</a></p>
]]></content:encoded>
			<wfw:commentRss>http://js-kit.com/rss/vastermonster.com/blog/p=133</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>textorize-server — Easy textorize images via HTML image tags in PHP</title>
		<link>http://vastermonster.com/blog/textorize-server%e2%80%94easy-textorize-images-via-html-image-tags-in-php</link>
		<comments>http://vastermonster.com/blog/textorize-server%e2%80%94easy-textorize-images-via-html-image-tags-in-php#comments</comments>
		<pubDate>Tue, 20 Oct 2009 06:25:02 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[My Work]]></category>

		<guid isPermaLink="false">http://vastermonster.com/blog/?p=122</guid>
		<description><![CDATA[textorize-server allows you to build textorize images via simple HTML image tags. textorize creates crisp subpixel rendered text images via RubyCocoa in the command-line. textorize is an awesome bit of software but it can be a pain to generate all the images you need. textorize-server makes it super easy. Here&#8217;s how to use it &#60;img [...]]]></description>
			<content:encoded><![CDATA[<p>textorize-server allows you to build <a href="http://textorize.org/">textorize</a> images via simple HTML image tags. textorize creates crisp subpixel rendered text images via RubyCocoa in the command-line. textorize is an awesome bit of software but it can be a pain to generate all the images you need. textorize-server makes it super easy.</p>
<p><strong>Here&#8217;s how to use it</strong></p>
<pre>&lt;img src="/textorize-server/img.php?m=just_a_test&amp;f=arial&amp;s=20&amp;c=000000&amp;g=ffffff"
alt="just_a_test"&gt;</pre>
<p>Just add a simple IMG tag in your HTML and textorize-server will give you this beautifully subpixel-rendered bit of text:</p>
<p><img class="alignnone" title="textorize-server test image" src="http://vastermonster.com/images/textorize-server-test.png" alt="textorize-server test image" width="107" height="24" /></p>
<p><strong>Installation</strong><br />
To run textorize-server, you&#8217;ll need to install textorize on your Mac like so:</p>
<pre>$ gem sources -a http://gems.github.com
$ sudo gem install madrobby-textorize</pre>
<p>Then clone textorize-server into your project&#8217;s docroot like so:</p>
<pre>$ cd &lt;your project's web root&gt;
$ git clone git://github.com/thrashr888/textorize-server.git textorize-server
$ chmod 777 textorize/cache</pre>
<p>textorize-server is hosted at GitHub (<a href="http://github.com/thrashr888/textorize-server">http://github.com/thrashr888/textorize-server</a>). There you’ll find more thorough documentation about textorize-server.</p>
]]></content:encoded>
			<wfw:commentRss>http://js-kit.com/rss/vastermonster.com/blog/p=122</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Anatomy — An HTML Framework</title>
		<link>http://vastermonster.com/blog/anatomy%e2%80%94an-html-framework</link>
		<comments>http://vastermonster.com/blog/anatomy%e2%80%94an-html-framework#comments</comments>
		<pubDate>Tue, 20 Oct 2009 05:37:31 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[My Work]]></category>

		<guid isPermaLink="false">http://vastermonster.com/blog/?p=116</guid>
		<description><![CDATA[Anatomy is an HTML glue framework that gives you basic HTML, JavaScript and CSS to get a new website going. Anatomy is built for designers that may not yet know the best way to build an HTML layout, as well as developers that are constantly starting new projects. Anatomy includes the most popular JS and CSS [...]]]></description>
			<content:encoded><![CDATA[<p>Anatomy is an HTML glue framework that gives you basic HTML, JavaScript and CSS to get a new website going. Anatomy is built for designers that may not yet know the best way to build an HTML layout, as well as developers that are constantly starting new projects. Anatomy includes the most popular JS and CSS frameworks so can just pick one and get started.</p>
<p><strong>Getting started is easy</strong></p>
<ol>
<li>download the files</li>
<li>remove the unused frameworks</li>
<li>start adding your content.</li>
</ol>
<p><strong>Anatomy features include<span style="font-weight: normal; line-height: 18px;"> </span></strong></p>
<ul>
<li>XHTML 1.0 Transitional or HTML5 (<em>experimental</em>)</li>
<li>Smart <strong>defaults</strong> including <strong>jQuery</strong>, <strong>960</strong> and <strong>Google Ajax API</strong></li>
<li>Layout basics: header with nav bar, content and footer DIVs as well as 2 and 3 column layouts</li>
<li>CSS Frameworks (960, Blueprint, YUI, meyerweb reset, Dropdown Menu)</li>
<li>JS Frameworks (jQuery, Prototype + Scriptaculous, MooTools, Dojo, YUI, Ext)</li>
<li>Google Analytics tags</li>
<li>Text to be replaced is marked by &#8220;REPLACE&#8221;</li>
</ul>
<p><strong>Installation</strong></p>
<p>To use Anatomy, you can <a href="http://github.com/thrashr888/Anatomy/tarball/master">download Anatomy at GitHub</a> or clone the repo like so:</p>
<pre style="padding-left: 30px;">$&gt; git clone git://github.com/thrashr888/Anatomy.git</pre>
<p>Anatomy HTML Framework is hosted at GitHub (<a href="http://github.com/thrashr888/Anatomy">http://github.com/thrashr888/Anatomy</a>). There you&#8217;ll find more thorough documentation about Anatomy.</p>
]]></content:encoded>
			<wfw:commentRss>http://js-kit.com/rss/vastermonster.com/blog/p=116</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Asset Compression with YUI Compressor, Minify and OptiPNG</title>
		<link>http://vastermonster.com/blog/asset-compression</link>
		<comments>http://vastermonster.com/blog/asset-compression#comments</comments>
		<pubDate>Fri, 07 Aug 2009 00:27:21 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://vastermonster.com/blog/?p=108</guid>
		<description><![CDATA[One of the best ways to speed up rendering of your website is to compress all your assets: JavaScript, CSS and images. Yahoo! has all but perfected this. The best way of compressing these files is using Yahoo!&#8217;s YUI Compressor. Here&#8217;s how. Get the YUI Compressor YUI Compressor can be found at Yahoo! here: Docs: [...]]]></description>
			<content:encoded><![CDATA[<p>One of the best ways to speed up rendering of your website is to compress all your assets: JavaScript, CSS and images. Yahoo! has all but perfected this. The best way of compressing these files is using Yahoo!&#8217;s YUI Compressor. Here&#8217;s how.</p>
<h3>Get the YUI Compressor</h3>
<p>YUI Compressor can be f<span style="font-weight: normal; font-size: 13px;">ound at Yahoo! here:</span></p>
<ul>
<li><strong>Docs:</strong> <a href="http://developer.yahoo.com/yui/compressor/">http://developer.yahoo.com/yui/compressor/</a></li>
<li><strong>Download:</strong> <a href="http://yuilibrary.com/downloads/#yuicompressor">http://yuilibrary.com/downloads/#yuicompressor</a></li>
<li><strong>Source:</strong> <a href="http://github.com/yui/yuicompressor/tree/master">http://github.com/yui/yuicompressor/tree/master</a></li>
</ul>
<p>Once downloaded, you can run the compressor via command-line. Java is required.</p>
<pre style="margin-top: 1em; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font-family: monospace; line-height: 13px; padding: 0px;">$ java -jar yuicompressor-x.y.z.jar
$ java -jar yuicompressor-x.y.z.jar myfile.js -o myfile-min.js</pre>
<h3 style="font-size: 1.17em;">The YUI Compressor Ruby Gem</h3>
<p>You can also use a ruby gem to install and run the compressor. Compressing files is a little more difficult, check the documentation to learn how.</p>
<p><a href="http://github.com/sstephenson/ruby-yui-compressor/tree/master">http://github.com/sstephenson/ruby-yui-compressor/tree/master</a></p>
<pre>$ sudo gem install -r yui-compressor
$ irb -rubygems
&gt;&gt; require "yui/compressor"
compressor = YUI::JavaScriptCompressor.new
compressor.compress('var JS = "goes here";')</pre>
<p>There are a few options for compressing and serving assets on the fly. Gzip compression via Apache is common and usually turned on by default on your server. In addition to that, I use Minify. It takes some time to setup but it&#8217;s worth it.</p>
<h3>Minify PHP</h3>
<ul>
<li><strong>Project page:</strong> <a href="http://code.google.com/p/minify/">http://code.google.com/p/minify/</a></li>
<li><strong>Docs:</strong> <a href="http://code.google.com/p/minify/wiki/UserGuide">http://code.google.com/p/minify/wiki/UserGuide</a></li>
<li><strong>Download:</strong> <a href="http://code.google.com/p/minify/downloads/list">http://code.google.com/p/minify/downloads/list</a></li>
<li><strong>Source:</strong> <a href="http://code.google.com/p/minify/source/checkout">http://code.google.com/p/minify/source/checkout</a></li>
</ul>
<p>The documentation is pretty clear, so I won&#8217;t copy it here. Either way, you&#8217;ve got smaller files. Running the command manually gives you a lot more control over how it works and where the files end up. But setting up a Minify &#8220;server&#8221; lets you compress all your files without worrying about missing anything. They both work great.</p>
<h3>Image Compression with OptiPNG</h3>
<p>Recently we&#8217;ve started compressing our images as well. Images are probably the most common asset format found on your webpage so it&#8217;s important to get them downloaded smoothly. I haven&#8217;t found a great tool for this yet but once again, Yahoo! provides. These tools provide lossless compression, which means you won&#8217;t see any visual difference in the file, only in the final file size. Most of the tools I&#8217;ve found work best on png files, which is a great format to work with since it provides 24 bit alpha channels (better transparency) unlike gif or jpgs.</p>
<ul>
<li><strong>Yahoo! Smush-It:</strong> <a href="http://developer.yahoo.com/yslow/smushit/">http://developer.yahoo.com/yslow/smushit/</a><br />
Smush it does not yet have a public tool or API, but they&#8217;re working on it. It does a great job on png files. To compress the files, you have to place them on the internet and give the tool the urls. A better workaround is to use the tool via YSlow in Firebug.</li>
<li><strong>OptiPNG:</strong> <a href="http://optipng.sourceforge.net/">http://optipng.sourceforge.net/</a><br />
OptiPNG has great compression, a command-line tool and a <a href="http://www.amake.us/software/pngcrusher/">GUI wrapper for OS X</a>. The only downside is that it only works on png files. The GUI wrapper gives you a drag and drop tool for compressing your files.</li>
</ul>
<p>How have you been compressing <em>your</em> files?</p>
]]></content:encoded>
			<wfw:commentRss>http://js-kit.com/rss/vastermonster.com/blog/p=108</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Injecting error messages into Symfony 1.1 Forms</title>
		<link>http://vastermonster.com/blog/injecting-error-messages-into-symfony-1-1-forms</link>
		<comments>http://vastermonster.com/blog/injecting-error-messages-into-symfony-1-1-forms#comments</comments>
		<pubDate>Wed, 15 Jul 2009 06:47:30 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[Code]]></category>

		<guid isPermaLink="false">http://vastermonster.com/blog/?p=71</guid>
		<description><![CDATA[Symfony 1.1 does a great job handling forms and form validation but say you have a few external forces checking the validity of the user submitted data, such as Paypal. Paypal would love to return it&#8217;s own error messages (thank you very much!) and tie it to a particular form field (say, the credit_card field). [...]]]></description>
			<content:encoded><![CDATA[<p>Symfony 1.1 does a great job handling forms and form validation but say you have a few external forces checking the validity of the user submitted data, such as Paypal. Paypal would love to return it&#8217;s own error messages (thank you very much!) and tie it to a particular form field (say, the credit_card field).</p>
<p>Place this method into <code>symfony_project/lib/form/BaseFormPropel.class.php</code></p>
<p><script src="http://gist.github.com/147513.js"></script></p>
<p>And use it like so:</p>
<p><script src="http://gist.github.com/147514.js"></script></p>
<p>You can find more of my Symfony snippets on <a href="http://github.com/thrashr888/pauls-code-snippets/tree/8af31c618131a7e674ec9d75585e56ac4306cd6a/symfony">GitHub</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://js-kit.com/rss/vastermonster.com/blog/p=71</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Portfolio on Flickr</title>
		<link>http://vastermonster.com/blog/my-portfolio-on-flickr</link>
		<comments>http://vastermonster.com/blog/my-portfolio-on-flickr#comments</comments>
		<pubDate>Wed, 15 Jul 2009 05:44:48 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[My Work]]></category>

		<guid isPermaLink="false">http://vastermonster.com/blog/?p=68</guid>
		<description><![CDATA[My Portfolio Pieces on Flickr]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://bit.ly/njEr"><img class="aligncenter" title="My Portfolio on Flickr" src="http://farm4.static.flickr.com/3008/3088537328_812569f04e.jpg" alt="" width="376" height="500" /></a></p>
<p><a href="http://bit.ly/njEr">My Portfolio Pieces on Flickr</a></p>
]]></content:encoded>
			<wfw:commentRss>http://js-kit.com/rss/vastermonster.com/blog/p=68</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Frosti</title>
		<link>http://vastermonster.com/blog/frosti</link>
		<comments>http://vastermonster.com/blog/frosti#comments</comments>
		<pubDate>Wed, 15 Jul 2009 05:38:54 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[My Work]]></category>

		<guid isPermaLink="false">http://vastermonster.com/blog/?p=64</guid>
		<description><![CDATA[Bjork &#8211; Frosti I made this.]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="450" height="375" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="FlashVars" value="playerMode=embedded" /><param name="src" value="http://www.youtube.com/v/UQ-keauqc5E" /><param name="flashvars" value="playerMode=embedded" /><embed type="application/x-shockwave-flash" width="450" height="375" src="http://www.youtube.com/v/UQ-keauqc5E" flashvars="playerMode=embedded"></embed></object></p>
<p>Bjork &#8211; Frosti<br />
I made this.</p>
]]></content:encoded>
			<wfw:commentRss>http://js-kit.com/rss/vastermonster.com/blog/p=64</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Legendary Fist</title>
		<link>http://vastermonster.com/blog/legendary-fist</link>
		<comments>http://vastermonster.com/blog/legendary-fist#comments</comments>
		<pubDate>Wed, 15 Jul 2009 05:32:32 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[My Work]]></category>

		<guid isPermaLink="false">http://vastermonster.com/blog/?p=60</guid>
		<description><![CDATA[Legendary Fist &#8211; my Chinese martial arts comedy &#8211; On YouTube]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="560" height="340" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/miC33DilxHw&amp;hl=en&amp;fs=1&amp;rel=0" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="560" height="340" src="http://www.youtube.com/v/miC33DilxHw&amp;hl=en&amp;fs=1&amp;rel=0" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Legendary Fist &#8211; my Chinese martial arts comedy &#8211; <a href="http://www.youtube.com/watch?v=miC33DilxHw">On YouTube</a></p>
]]></content:encoded>
			<wfw:commentRss>http://js-kit.com/rss/vastermonster.com/blog/p=60</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Music Video: Aphex Twin &#8211; COCK /Ver 2</title>
		<link>http://vastermonster.com/blog/aphex-twin-cock-ver-2</link>
		<comments>http://vastermonster.com/blog/aphex-twin-cock-ver-2#comments</comments>
		<pubDate>Wed, 15 Jul 2009 05:22:51 +0000</pubDate>
		<dc:creator>Paul</dc:creator>
				<category><![CDATA[My Work]]></category>

		<guid isPermaLink="false">http://vastermonster.com/blog/?p=52</guid>
		<description><![CDATA[Music Video: Aphex Twin &#8211; COCK /Ver 2 on YouTube. My own notes here.]]></description>
			<content:encoded><![CDATA[<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/Li_Ka_Q1bEE&amp;hl=en&amp;fs=1&amp;rel=0" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/Li_Ka_Q1bEE&amp;hl=en&amp;fs=1&amp;rel=0" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Music Video: Aphex Twin &#8211; COCK /Ver 2 on <a href="http://www.youtube.com/watch?v=Li_Ka_Q1bEE">YouTube</a>.</p>
<p>My own notes <a href="http://vastermonster.com/my-work/video/icarus/">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://js-kit.com/rss/vastermonster.com/blog/p=52</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
