<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.2.1" -->
<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/"
	>

<channel>
	<title>Joshua "Schmalls" Thompson</title>
	<link>http://personal.schmalls.com</link>
	<description>My uninteresting ramblings</description>
	<pubDate>Sun, 31 Aug 2008 16:41:16 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.2.1</generator>
	<language>en</language>
			<item>
		<title>A Plugabble Preprocessor For PHP</title>
		<link>http://personal.schmalls.com/2008/08/31/a-plugabble-preprocessor-for-php/</link>
		<comments>http://personal.schmalls.com/2008/08/31/a-plugabble-preprocessor-for-php/#comments</comments>
		<pubDate>Sun, 31 Aug 2008 16:37:50 +0000</pubDate>
		<dc:creator>schmalls</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://personal.schmalls.com/2008/08/31/a-plugabble-preprocessor-for-php/</guid>
		<description><![CDATA[After reading Stan Vassilev&#8217;s post on Practical Uses for the PHP Tokenizer, I got to thinking about his example of a preprocessor. It makes a lot of sense for the library developer. They could easily create multiple versions of their code depending on PHP version, target platform, backend database, etc. So I started working on [...]]]></description>
			<content:encoded><![CDATA[<p>After reading Stan Vassilev&#8217;s post on <a href="http://c7y.phparch.com/c/entry/1/art,practical_uses_tokenizer">Practical Uses for the PHP Tokenizer</a>, I got to thinking about his example of a preprocessor. It makes a lot of sense for the library developer. They could easily create multiple versions of their code depending on PHP version, target platform, backend database, etc. So I started working on my own implementation of a preprocessor with the goal of making it easy to add plugins for additional functionality. It was during the construction of the core of the preprocessor, that it hit me: why can&#8217;t we implement new language features in the preprocessor. The first things that came to mind for me were traits and scalar type hints. So without further ado, I present version 0.1.0-dev of PPP (with its own doubly recursive meaning: PPP PHP PreProcessor).<br />
 <a href="http://personal.schmalls.com/2008/08/31/a-plugabble-preprocessor-for-php/#more-13" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://personal.schmalls.com/2008/08/31/a-plugabble-preprocessor-for-php/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SolidWorks Batch Runner</title>
		<link>http://personal.schmalls.com/2008/05/05/solidworks-batch-runner/</link>
		<comments>http://personal.schmalls.com/2008/05/05/solidworks-batch-runner/#comments</comments>
		<pubDate>Mon, 05 May 2008 19:03:40 +0000</pubDate>
		<dc:creator>schmalls</dc:creator>
		
		<category><![CDATA[SolidWorks]]></category>

		<guid isPermaLink="false">http://personal.schmalls.com/2008/05/05/solidworks-batch-runner/</guid>
		<description><![CDATA[In my everyday work, I spend a lot of time waiting on SolidWorks to finish a task. The SolidWorks task scheduler is able to remove some of these burdens by allowing them to be run overnight. The great thing about the task scheduler is that it allows me to select folders or groups of files [...]]]></description>
			<content:encoded><![CDATA[<p>In my everyday work, I spend a lot of time waiting on SolidWorks to finish a task. The SolidWorks task scheduler is able to remove some of these burdens by allowing them to be run overnight. The great thing about the task scheduler is that it allows me to select folders or groups of files and runs the task in a separate SolidWorks instance for each file it finds. It also has a timeout for each file to complete its task. This means it can keep churning through all of the files and recover from a problem with one of the files (SolidWorks 2008 is notoriously unstable).</p>
<p>The problem is that the number of tasks available is limited. There is the Custom Task which allows you to run a custom program or macro, but for some reason removes the file selection capability. It is for this reason that I set out to recreate the functionality of the task scheduler, but with the ability to run any macro (or multiple macros) in separate instances of SolidWorks for entire groups of files. I call it SolidWorksBatchRunner. <a href="http://personal.schmalls.com/2008/05/05/solidworks-batch-runner/#more-10" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://personal.schmalls.com/2008/05/05/solidworks-batch-runner/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Infinite Recursion (i.e. Hard To Spot Error)</title>
		<link>http://personal.schmalls.com/2008/02/12/infinite-recursion-ie-hard-to-spot-error/</link>
		<comments>http://personal.schmalls.com/2008/02/12/infinite-recursion-ie-hard-to-spot-error/#comments</comments>
		<pubDate>Wed, 13 Feb 2008 00:01:42 +0000</pubDate>
		<dc:creator>schmalls</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://personal.schmalls.com/2008/02/12/infinite-recursion-ie-hard-to-spot-error/</guid>
		<description><![CDATA[I ran into a hard to spot bug the other day and decided to share it. I worked on some code for a while and then fired up my browser to test it. I would be using Xdebug straight from Eclipse PDT, but I can&#8217;t get it to work with the latest php snapshots for [...]]]></description>
			<content:encoded><![CDATA[<p>I ran into a hard to spot bug the other day and decided to share it. I worked on some code for a while and then fired up my browser to test it. I would be using <a href="http://xdebug.org/">Xdebug</a> straight from <a href="http://www.eclipse.org/pdt/">Eclipse PDT</a>, but I can&#8217;t get it to work with the latest php snapshots for Windows. Anyway, when I went to test it, there was no output. It turns out that php-cgi had segfaulted. I spent the better half of a day trying to figure out the problem. When I thought I had figured it out, I would try to write up a test script for just that problem, and all of them ran just fine. Just when I was about to give up, I found the problem in this little class I was sure couldn&#8217;t be wrong.<br />
 <a href="http://personal.schmalls.com/2008/02/12/infinite-recursion-ie-hard-to-spot-error/#more-9" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://personal.schmalls.com/2008/02/12/infinite-recursion-ie-hard-to-spot-error/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Return to Prototype Based Programming in PHP</title>
		<link>http://personal.schmalls.com/2007/10/29/return-to-prototype-based-programming-in-php/</link>
		<comments>http://personal.schmalls.com/2007/10/29/return-to-prototype-based-programming-in-php/#comments</comments>
		<pubDate>Tue, 30 Oct 2007 00:19:26 +0000</pubDate>
		<dc:creator>schmalls</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://personal.schmalls.com/2007/10/29/return-to-prototype-based-programmin-in-php/</guid>
		<description><![CDATA[With the implementation of the get_called_class() function in PHP, prototype based programming in PHP is possible. The new function is in both PHP5.3 and PHP6 snapshots. So, I went back to the drawing board and came up with a fully capable class. The $this keyword is usable, as well as being able to use the [...]]]></description>
			<content:encoded><![CDATA[<p>With the implementation of the <code>get_called_class()</code> function in PHP, prototype based programming in PHP is possible. The new function is in both PHP5.3 and PHP6 <a href="http://snaps.php.net">snapshots</a>. So, I went back to the drawing board and came up with a fully capable class. The <code>$this</code> keyword is usable, as well as being able to use the <code>self</code>, <code>parent</code>, and <code>static</code> (new with the <a href="http://www.ds-o.com/archives/65-Late-static-binding....sorta.html">late static binding patch</a>) keywords. Code after the jump. <a href="http://personal.schmalls.com/2007/10/29/return-to-prototype-based-programming-in-php/#more-8" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://personal.schmalls.com/2007/10/29/return-to-prototype-based-programming-in-php/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Eclipse PHP IDE</title>
		<link>http://personal.schmalls.com/2006/12/28/eclipse-php-ide/</link>
		<comments>http://personal.schmalls.com/2006/12/28/eclipse-php-ide/#comments</comments>
		<pubDate>Fri, 29 Dec 2006 05:36:48 +0000</pubDate>
		<dc:creator>schmalls</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://personal.schmalls.com/2006/12/28/eclipse-php-ide/</guid>
		<description><![CDATA[I have been using PHPEclipse for quite some time. I have used the Eclipse Java debugger and was impressed with how much debugging time it saved. However, when I tried to get the debugger working in PHPEclipse, I ran into some problems. This might have something to do with using the latest version of Eclipse, [...]]]></description>
			<content:encoded><![CDATA[<p>I have been using <a href="http://www.phpeclipse.net">PHPEclipse</a> for quite some time. I have used the Eclipse Java debugger and was impressed with how much debugging time it saved. However, when I tried to get the debugger working in PHPEclipse, I ran into some problems. This might have something to do with using the latest version of Eclipse, but I never spent the time to figure it all out. I had some spare time today, and decided to try out the <a href="http://www.eclipse.org/php/">Eclipse PHP IDE</a>.<br />
 <a href="http://personal.schmalls.com/2006/12/28/eclipse-php-ide/#more-6" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://personal.schmalls.com/2006/12/28/eclipse-php-ide/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Prototype-based programming in PHP</title>
		<link>http://personal.schmalls.com/2006/11/06/prototype-based-programming-in-php/</link>
		<comments>http://personal.schmalls.com/2006/11/06/prototype-based-programming-in-php/#comments</comments>
		<pubDate>Tue, 07 Nov 2006 03:33:22 +0000</pubDate>
		<dc:creator>schmalls</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://personal.schmalls.com/2006/11/06/prototype-based-programming-in-php/</guid>
		<description><![CDATA[For those who have been doing a lot of Javascript programming, you know what prototype-based programming is all about. The basic idea is that functions can be added to classes dynamically. In Javascript functions can be added to a static class (using prototype) and it will be added to all instances of the class, or [...]]]></description>
			<content:encoded><![CDATA[<p>For those who have been doing a lot of Javascript programming, you know what <a href="http://en.wikipedia.org/wiki/Prototype-based_programming">prototype-based programming</a> is all about. The basic idea is that functions can be added to classes dynamically. In Javascript functions can be added to a static class (using <em>prototype</em>) and it will be added to all instances of the class, or they can be added to a specific instance and only be added to that instance.</p>
<p>Anyway, lets get to the point. I decided to try adding this functionality to PHP. I&#8217;m not sure why its a good idea, or if it even is, but I&#8217;ll let you be the judge of that. <a href="http://personal.schmalls.com/2006/11/06/prototype-based-programming-in-php/#more-5" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://personal.schmalls.com/2006/11/06/prototype-based-programming-in-php/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Double Your DVD Collection</title>
		<link>http://personal.schmalls.com/2006/02/14/double-your-dvd-collection/</link>
		<comments>http://personal.schmalls.com/2006/02/14/double-your-dvd-collection/#comments</comments>
		<pubDate>Tue, 14 Feb 2006 14:55:34 +0000</pubDate>
		<dc:creator>schmalls</dc:creator>
		
		<category><![CDATA[Random Thoughts]]></category>

		<guid isPermaLink="false">http://personal.schmalls.com/2006/02/14/double-your-dvd-collection/</guid>
		<description><![CDATA[I was having a conversation with my friend the other day when he suggested that the best thing about getting married was merging the two DVD collections. This was funny by itself, until my other friend gave his counter-argument of the other obvious benefits of being married. I won&#8217;t give you the exact words, because [...]]]></description>
			<content:encoded><![CDATA[<p>I was having a conversation with my friend the other day when he suggested that the <em>best</em> thing about getting married was merging the two DVD collections. This was funny by itself, until my other friend gave his counter-argument of the other obvious benefits of being married. I won&#8217;t give you the exact words, because it would make it less funny for me, and I believe it will be more humorous to you if you just imagine what he said.</p>
<p>Anyway, the conversation didn&#8217;t end here. Then I said something about my DVD collection, and he said that it may be the reason I am single, because <em>everyone</em> knows that women are just looking for a guy with all the right DVDs. I thought about arguing against this, but then I realized the DVD collection is a perfect scapegoat for singleness. Just blame it on the DVD collection, not your other inadequacies. So for all the single people out there, its not your fault, its your DVD collection&#8217;s.</p>
]]></content:encoded>
			<wfw:commentRss>http://personal.schmalls.com/2006/02/14/double-your-dvd-collection/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Proof that money is imaginary</title>
		<link>http://personal.schmalls.com/2006/01/11/hello-world/</link>
		<comments>http://personal.schmalls.com/2006/01/11/hello-world/#comments</comments>
		<pubDate>Wed, 11 Jan 2006 19:47:43 +0000</pubDate>
		<dc:creator>schmalls</dc:creator>
		
		<category><![CDATA[Random Thoughts]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[So I finally thought of something to write here. I&#8217;m sure a lot of people have heard the following proof that girls are evil:

First we state that girls require time and money.
Girls = Time * Money
And as we all know, &#8220;time is money&#8221;.
Time = Money
Therefore:
Girls = Money * Money = Money 2
And because &#8220;money is [...]]]></description>
			<content:encoded><![CDATA[<p>So I finally thought of something to write here. I&#8217;m sure a lot of people have heard the following proof that girls are evil:</p>
<blockquote><p>
First we state that girls require time and money.<br />
<em>Girls = Time * Money</em></p>
<p>And as we all know, &#8220;time is money&#8221;.<br />
<em>Time = Money</em></p>
<p>Therefore:<br />
<em>Girls = Money * Money = Money <code style="vertical-align:super;">2</code></em></p>
<p>And because &#8220;money is the root of all evil&#8221;:<br />
<em>Money = Evil <code style="vertical-align:super;">1/2</code></em></p>
<p>Therefore:<br />
<em>Girls = (Evil <code style="vertical-align:super;">1/2</code>)<code style="vertical-align:super;">2</code></em></p>
<p>And we are forced to conclude that:<br />
<em>Girls = Evil</em>
</p></blockquote>
<p>Well I want to prove that money is imaginary.</p>
<blockquote><p>
We know that &#8220;money is the root of all evil&#8221;:<br />
<em>Money = Evil <code style="vertical-align:super;">1/2</code></em></p>
<p>And I doubt anyone would disagree that evil is negative:<br />
<em>Evil &lt; 0</em></p>
<p>We know that the square root of a negative number is imaginary:<br />
<em>(-1)<code style="vertical-align:super;">1/2</code> = i</em></p>
<p>And so money is imaginary:<br />
<em>Money = i * ( | Evil | )<code style="vertical-align:super;">1/2</code></em>
</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://personal.schmalls.com/2006/01/11/hello-world/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
