<?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"
	>

<channel>
	<title>On Tech and Software</title>
	<atom:link href="http://jmgtan.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://jmgtan.com</link>
	<description>Random thoughts on technology, ventures, algorithms, frameworks, gadgets and THE MAN</description>
	<pubDate>Sat, 03 Jan 2009 16:48:31 +0000</pubDate>
	
	<language>en</language>
			<item>
		<title>Something&#8217;s cookin&#8217;</title>
		<link>http://jmgtan.com/2009/01/03/somethings-cookin/</link>
		<comments>http://jmgtan.com/2009/01/03/somethings-cookin/#comments</comments>
		<pubDate>Sat, 03 Jan 2009 16:46:20 +0000</pubDate>
		<dc:creator>Jan Michael Tan</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[ideas]]></category>

		<category><![CDATA[ventures]]></category>

		<guid isPermaLink="false">http://jmgtan.com/?p=72</guid>
		<description><![CDATA[I&#8217;ve been experimenting with different ways to manage releases (major and maintenance) and this resulted in a very good solution which i&#8217;ve been using for several weeks now. This is a fantastic tool for small to medium software companies and freelancers looking for a really cheap release management software to help their clients manage the [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been experimenting with different ways to manage releases (major and maintenance) and this resulted in a very good solution which i&#8217;ve been using for several weeks now. This is a fantastic tool for small to medium software companies and freelancers looking for a really cheap release management software to help their clients manage the intricacies and confusion that comes with releasing a software.</p>
<p>Watch out for this, will be launching a beta version soon!</p>
]]></content:encoded>
			<wfw:commentRss>http://jmgtan.com/2009/01/03/somethings-cookin/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Venture Diary: Initial thoughts and questions about hosting</title>
		<link>http://jmgtan.com/2008/12/04/venture-diary-initial-thoughts-and-questions-about-hosting/</link>
		<comments>http://jmgtan.com/2008/12/04/venture-diary-initial-thoughts-and-questions-about-hosting/#comments</comments>
		<pubDate>Thu, 04 Dec 2008 06:08:51 +0000</pubDate>
		<dc:creator>Jan Michael Tan</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[diary]]></category>

		<category><![CDATA[venture]]></category>

		<guid isPermaLink="false">http://jmgtan.com/?p=68</guid>
		<description><![CDATA[Ever since i&#8217;ve starting working in the consulting business, and now in product development with a Fortune 20 company, i&#8217;ve always dreamt of having an online business. I&#8217;ve always hated the 8 hour grind everyday for 5 days a week, although the pay is great, but there&#8217;s something really exciting with working for yourself whether [...]]]></description>
			<content:encoded><![CDATA[<p>Ever since i&#8217;ve starting working in the consulting business, and now in product development with a Fortune 20 company, i&#8217;ve always dreamt of having an online business. I&#8217;ve always hated the 8 hour grind everyday for 5 days a week, although the pay is great, but there&#8217;s something really exciting with working for yourself whether it be freelance consulting or starting an online business; creativity is the only limiting factor. The hardest part of an online business is the idea, well we all know that, once an idea has been solidified the easiest part is execution of said idea which the only limiting factor (for me) has been the lack of time.</p>
<p>W&#8217;ve been steadily developing some ideas right now, and we&#8217;ve also finalized the revenue stream and from the looks of things it will be very feasible. Right now i&#8217;m very much interested on how other ventures started, did they rely on shared hosting services, or did they just rolled their own solution (own hardware). From our own assessment we would be using shared hosting services until we reached a certain milestone (number of users), and from there on will be rolling our own hardware.</p>
<p>Post your thoughts on the matter in the comments section</p>
]]></content:encoded>
			<wfw:commentRss>http://jmgtan.com/2008/12/04/venture-diary-initial-thoughts-and-questions-about-hosting/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Zend Framework Model Based Validation Part 1</title>
		<link>http://jmgtan.com/2008/10/24/zend-framework-model-based-validation-part-1/</link>
		<comments>http://jmgtan.com/2008/10/24/zend-framework-model-based-validation-part-1/#comments</comments>
		<pubDate>Fri, 24 Oct 2008 13:56:35 +0000</pubDate>
		<dc:creator>Jan Michael Tan</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jmgtan.com/?p=62</guid>
		<description><![CDATA[I&#8217;m not really a big fan of Zend_Form, too verbose and less flexible. I&#8217;ve been using this little base class for several of my freelance projects. It basically allows you to define validation rules for your model&#8217;s columns. This is a very basic version that I&#8217;m planning to enhance soon with custom validation functions.
Download version [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m not really a big fan of Zend_Form, too verbose and less flexible. I&#8217;ve been using this little base class for several of my freelance projects. It basically allows you to define validation rules for your model&#8217;s columns. This is a very basic version that I&#8217;m planning to enhance soon with custom validation functions.</p>
<p><a href="http://jmgtan.com/files/ZF-ModelBased-Validation-0.1.zip">Download version 0.1</a></p>
<p><strong>USAGE EXAMPLE</strong></p>
<p>Model</p>
<pre class="syntax-highlight:php">
&lt;?
class User extends AbstractModelValidator {
	protected $_name = &#039;users&#039;;
	protected $_primary = &#039;id&#039;;
	protected $_rules = array(
		array(&#039;name&#039;=&gt;&#039;firstname&#039;, &#039;class&#039;=&gt;&#039;NotEmpty&#039;, &#039;message&#039;=&gt;&#039;Required Field (Firstname)&#039;),
		array(&#039;name&#039;=&gt;&#039;firstname&#039;, &#039;class&#039;=&gt;&#039;StringLength&#039;, &#039;options&#039;=&gt;array(0, 50),&#039;message&#039;=&gt;&#039;Max length is 50 (Firstname)&#039;),
		array(&#039;name&#039;=&gt;&#039;lastname&#039;, &#039;class&#039;=&gt;&#039;NotEmpty&#039;, &#039;message&#039;=&gt;&#039;Required Field (Lastname)&#039;),
		array(&#039;name&#039;=&gt;&#039;lastname&#039;, &#039;class&#039;=&gt;&#039;StringLength&#039;, &#039;options&#039;=&gt;array(0, 50),&#039;message&#039;=&gt;&#039;Max length is 50 (Lastname)&#039;),
	);
}
</pre>
<p>Controller</p>
<pre class="syntax-highlight:php">
&lt;?
class UsersController extends Zend_Controller_Action {
	public function addAction() {
		$this-&gt;view-&gt;req = $this-&gt;_request;
		if($this-&gt;_request-&gt;isPost()) {
			$u = new User();
			if($u-&gt;isValid($this-&gt;_request-&gt;getParams())) {

			}
			else {
				$this-&gt;view-&gt;errors = $u-&gt;getValidationMessages();
			}
		}
	}
}
</pre>
<p>View</p>
<pre class="syntax-highlight:php">
&lt;html&gt;
	&lt;head&gt;
		&lt;title&gt;Add User&lt;/title&gt;
	&lt;/head&gt;
	&lt;body&gt;
		&lt;? if(isset($this-&gt;errors) &amp;amp;&amp;amp; sizeof($this-&gt;errors) &gt; 0): ?&gt;
			&lt;ul&gt;
				&lt;? foreach($this-&gt;errors as $e): ?&gt;
					&lt;li&gt;&lt;?=$e?&gt;&lt;/li&gt;
				&lt;? endforeach; ?&gt;
			&lt;/ul&gt;
		&lt;? endif; ?&gt;
		&lt;div&gt;
			&lt;form action=&quot;&lt;?=$this-&gt;url()?&gt;&quot; method=&quot;post&quot;&gt;
				&lt;div&gt;Firstname:&lt;/div&gt;
				&lt;div&gt;&lt;?=$this-&gt;formText(&#039;firstname&#039;, $this-&gt;req-&gt;getParam(&#039;firstname&#039;), array(&#039;size&#039;=&gt;20))?&gt;&lt;/div&gt;
				&lt;div&gt;Lastname::&lt;/div&gt;
				&lt;div&gt;&lt;?=$this-&gt;formText(&#039;lastname&#039;, $this-&gt;req-&gt;getParam(&#039;lastname&#039;), array(&#039;size&#039;=&gt;20))?&gt;&lt;/div&gt;
				&lt;div&gt;&lt;?=$this-&gt;formSubmit(&#039;submit&#039;, &#039;Submit&#039;)?&gt;&lt;/div&gt;
			&lt;/form&gt;
		&lt;/div&gt;
	&lt;/body&gt;
&lt;/html&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://jmgtan.com/2008/10/24/zend-framework-model-based-validation-part-1/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Simple Pagination</title>
		<link>http://jmgtan.com/2008/09/24/simple-pagination/</link>
		<comments>http://jmgtan.com/2008/09/24/simple-pagination/#comments</comments>
		<pubDate>Thu, 25 Sep 2008 03:42:19 +0000</pubDate>
		<dc:creator>Jan Michael Tan</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jmgtan.com/?p=41</guid>
		<description><![CDATA[I use alot of Zend Framework for my freelance projects and prior to version 1.6 they have no pagination class to do the dirty work. I know what you&#8217;re thinking right now, why didn&#8217;t I just reused some of the many pagination scripts in the internet and/or in PEAR. I just really needed something simple [...]]]></description>
			<content:encoded><![CDATA[<p>I use alot of Zend Framework for my freelance projects and prior to version 1.6 they have no pagination class to do the dirty work. I know what you&#8217;re thinking right now, why didn&#8217;t I just reused some of the many pagination scripts in the internet and/or in PEAR. I just really needed something simple that I can quickly reuse all over my web-app and here it is</p>
<p>To get the offset for your sql query just do this:</p>
<pre class="syntax-highlight:php">
$offset = $numOfItemsPerPage * ($page - 1);
</pre>
<p>Here&#8217;s the code for the pagination, take note that the logic can be use regardless of the programming language, i&#8217;ve also use this in some of my java webapps</p>
<pre class="syntax-highlight:php">
&lt;?php
class Paginator {
	const NUM_TRAIL_LEAD_LINKS = 5;

	public static function generate($url, $total, $current = 1, $numPerPage = 5, $var = &#039;page&#039;, $separator = &#039; &#039;) {
		$totalNumberOfPages = ceil($total / $numPerPage);

		$linksArray = array();
		$isFirstLinkDone = false;
		$i = 1;
		if(($current - self::NUM_TRAIL_LEAD_LINKS) &gt; $i) {
			$i = $current - self::NUM_TRAIL_LEAD_LINKS;
		}

		for(;$i&lt;=$totalNumberOfPages;$i++) {
			if(!$isFirstLinkDone &amp;&amp; $current &gt; 1) {
				$linksArray[] = &#039;&lt;a href=&quot;&#039;.$url.&#039;/&#039;.$var.&#039;/1&quot;&gt;First&lt;/a&gt;&#039;;
				$linksArray[] = &#039;&lt;a href=&quot;&#039;.$url.&#039;/&#039;.$var.&#039;/&#039;.($current-1).&#039;&quot;&gt;Prev&lt;/a&gt;&#039;;
				$isFirstLinkDone = true;
			}

			if($i == $current) {
				$linksArray[] = &#039;&lt;span style=&quot;font-weight:bold&quot;&gt;&#039;.$current.&#039;&lt;/span&gt;&#039;;
			}
			else {
				if(($current + self::NUM_TRAIL_LEAD_LINKS) &lt; $i) {
					break;
				}

				$linksArray[] = &#039;&lt;a href=&quot;&#039;.$url.&#039;/&#039;.$var.&#039;/&#039;.$i.&#039;&quot;&gt;&#039;.$i.&#039;&lt;/a&gt;&#039;;
			}
		}

		if($current &lt; $totalNumberOfPages) {
			$linksArray[] = &#039;&lt;a href=&quot;&#039;.$url.&#039;/&#039;.$var.&#039;/&#039;.($current+1).&#039;&quot;&gt;Next&lt;/a&gt;&#039;;
			$linksArray[] = &#039;&lt;a href=&quot;&#039;.$url.&#039;/&#039;.$var.&#039;/&#039;.$totalNumberOfPages.&#039;&quot;&gt;Last&lt;/a&gt;&#039;;
		}
		return implode($separator, $linksArray);
	}
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://jmgtan.com/2008/09/24/simple-pagination/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New Toy: Razer DeathAdder</title>
		<link>http://jmgtan.com/2008/09/21/new-toy-razer-deathadder/</link>
		<comments>http://jmgtan.com/2008/09/21/new-toy-razer-deathadder/#comments</comments>
		<pubDate>Sun, 21 Sep 2008 13:39:24 +0000</pubDate>
		<dc:creator>Jan Michael Tan</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://jmgtan.com/?p=35</guid>
		<description><![CDATA[Admittedly I suck at first person shooters, so regardless of what I&#8217;m using I still suck, the only question is which one would allow me to suck a little less. I was using Microsoft&#8217;s Wireless Laser Mouse 8000 which is a bluetooth mouse that has terrible response time when it comes to gaming and is [...]]]></description>
			<content:encoded><![CDATA[<p>Admittedly I suck at first person shooters, so regardless of what I&#8217;m using I still suck, the only question is which one would allow me to suck a little less. I was using Microsoft&#8217;s Wireless Laser Mouse 8000 which is a bluetooth mouse that has terrible response time when it comes to gaming and is doubly terrible when used with OSX. I don&#8217;t know if the issue lies with OSX&#8217;s bluetooth drivers or the mouse itself, but it lacks any kind of smoothness and lags all the time which makes using Photoshop or any graphics software an exercise in frustration.</p>
<p>Enter the Razer DeathAdder, a 1800dpi with 1000hz ultrapolling mouse. This baby has so far put me up the top 5 of total kills per game in Call of Duty 4. The difference in performance is tremendous, maybe because of it&#8217;s wired nature, but it has absolutely no lag at all between movements. It also has first class support in OSX by way of drivers/software to customize any and all aspects of the mouse (dpi, polling, button mapping).</p>
<p style="text-align: center;"><a href="http://jmgtan.com/wp-content/uploads/2008/09/117_1954_2.jpg"><img class="size-medium wp-image-36 aligncenter" title="117_1954_2" src="http://jmgtan.com/wp-content/uploads/2008/09/117_1954_2-300x300.jpg" alt="Razer DeathAdder" width="300" height="300" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://jmgtan.com/2008/09/21/new-toy-razer-deathadder/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Enterprise and their sucky frameworks</title>
		<link>http://jmgtan.com/2008/09/14/enterprise-and-their-sucky-frameworks/</link>
		<comments>http://jmgtan.com/2008/09/14/enterprise-and-their-sucky-frameworks/#comments</comments>
		<pubDate>Sun, 14 Sep 2008 13:17:10 +0000</pubDate>
		<dc:creator>Jan Michael Tan</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[enterprise]]></category>

		<guid isPermaLink="false">http://jmgtan.com/?p=26</guid>
		<description><![CDATA[No i&#8217;m not talking about frameworks that addresses their own unique business needs. I&#8217;m talking about your ORMs, MVC web frameworks, javascript (including ajax) frameworks, but for now i&#8217;m talking about your everyday java enterprise application. There is at least one of this monstrocities that is being build in every big company under the pretense [...]]]></description>
			<content:encoded><![CDATA[<p>No i&#8217;m not talking about frameworks that addresses their own unique business needs. I&#8217;m talking about your ORMs, MVC web frameworks, javascript (including ajax) frameworks, but for now i&#8217;m talking about your everyday java enterprise application. There is at least one of this monstrocities that is being build in every big company under the pretense of &#8220;We don&#8217;t need the other stuff that framework X offers&#8221;, or maybe you&#8217;ve heard of the priceless line &#8220;Framework X contains so much features that it can affect the scalability of our enterprise application&#8221;. So with those ammunition, management will give them a go signal to build their very own abomination; maybe 2 years down the line some moron will pick up a business magazine seeing those new fangled application servers and will decide that they have to migrate to it to keep up with the trend, and yes, you&#8217;ve guess it&#8230; their framework is not compatible with the new application server and they will have to spend several thousand dollars to port it. Standards and open source frameworks exists for a reason.</p>
]]></content:encoded>
			<wfw:commentRss>http://jmgtan.com/2008/09/14/enterprise-and-their-sucky-frameworks/feed/</wfw:commentRss>
		</item>
		<item>
		<title>5 things that suck about weak typing</title>
		<link>http://jmgtan.com/2008/08/26/5-things-that-suck-about-weak-typing/</link>
		<comments>http://jmgtan.com/2008/08/26/5-things-that-suck-about-weak-typing/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 04:08:39 +0000</pubDate>
		<dc:creator>Jan Michael Tan</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://jmgtan.com/?p=18</guid>
		<description><![CDATA[We all love our scripting languages with its simplicity, elegant and beautiful syntax, and the ability to quickly hack together a solution. One of the common features of most scripting languages is being weakly typed. Meaning that we don&#8217;t have to declare the variable&#8217;s data type before we use it; to some developers this is [...]]]></description>
			<content:encoded><![CDATA[<p>We all love our scripting languages with its simplicity, elegant and beautiful syntax, and the ability to quickly hack together a solution. One of the common features of most scripting languages is being weakly typed. Meaning that we don&#8217;t have to declare the variable&#8217;s data type before we use it; to some developers this is a time saver and is one of the appeal of using these types of languages. But like with most things it has its pros and cons, and these are 5 things that you have to consider before using a weakly typed language.</p>
<ol>
<li><strong>Using them in a team is risky. </strong>Unless you have some kind of coding standards to determine what kind of type this variable is being used for, there is always a risk of somebody trampling on each others variables thereby causing side-effects all over the system.</li>
<li><strong>Maintenance issues. </strong>Going back on an already completed system after some time to do maintenance work on bugs is a nightmare in any language. Weak typing exacerbates this situation because of the danger of lacking checks and balances on what a variable can handle.</li>
<li><strong>Tool support. </strong>While the current state of IDE&#8217;s for scripting languages are improving. There is still work to be done especially on code assists, because of the nature of weak typing, this only partially works on some IDE&#8217;s.</li>
<li><strong>Error catching. </strong>Scripting languages are almost always are interpreted at runtime, therefore most conversion errors are not caught since there is no compiler to catch this errors. Even if there is a compiler, type information are dynamically determined by the interpreter.</li>
<li><strong>Performance/Optimizations. </strong>Statically typed languages have the advantage of having been optimized by the compiler. While interpreted languages are always a little bit slower than their compiled counterparts, dynamic typing and dynamic type conversions will always cause a little overhead.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://jmgtan.com/2008/08/26/5-things-that-suck-about-weak-typing/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Oh no its PHP!!!</title>
		<link>http://jmgtan.com/2008/08/23/oh-no-its-php/</link>
		<comments>http://jmgtan.com/2008/08/23/oh-no-its-php/#comments</comments>
		<pubDate>Sun, 24 Aug 2008 03:03:01 +0000</pubDate>
		<dc:creator>Jan Michael Tan</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[enterprise]]></category>

		<category><![CDATA[opinion]]></category>

		<guid isPermaLink="false">http://jmgtan.com/?p=13</guid>
		<description><![CDATA[A few months ago I was doing some job hunting and i&#8217;ve come across some interesting job interviews in the process. Now I have a good mixture of full-time work and freelance work, and most of my freelance work consists of enterprise PHP web applications; while my full-time work primarily consists of J2EE and Oracle.
During [...]]]></description>
			<content:encoded><![CDATA[<p>A few months ago I was doing some job hunting and i&#8217;ve come across some interesting job interviews in the process. Now I have a good mixture of full-time work and freelance work, and most of my freelance work consists of enterprise PHP web applications; while my full-time work primarily consists of J2EE and Oracle.</p>
<p>During the course of the interview when they are finished asking me the standard questions regarding my J2EE and Oracle experience, they focused their attention on my freelance works. I must say there is a really big ignorance with the LAMP stack in the enterprise world, opinions and questions that PHP is only a toy language and it cannot &#8220;scale&#8221; like their &#8220;100 concurrent users or the app server will choke&#8221; J2EE apps.  Now this opinions are nothing new, but it&#8217;s hilarious when you actually meet people with that opinion. If only they knew that sites like Digg, Facebook, Friendster were constructed with PHP albeit the web-part only, but like they say, right tools for the right job. I cringe everytime people construct simple intranet sites with full blown J2EE architecture thinking it would automatically scale because it&#8217;s Java/Oracle; apps that could have been simply done with a LAMP stack and 1 week.</p>
]]></content:encoded>
			<wfw:commentRss>http://jmgtan.com/2008/08/23/oh-no-its-php/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Injecting technology to conservative management</title>
		<link>http://jmgtan.com/2008/08/08/injecting-technology-to-conservative-management/</link>
		<comments>http://jmgtan.com/2008/08/08/injecting-technology-to-conservative-management/#comments</comments>
		<pubDate>Sat, 09 Aug 2008 03:06:28 +0000</pubDate>
		<dc:creator>Jan Michael Tan</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[business]]></category>

		<guid isPermaLink="false">http://jmgtan.com/?p=9</guid>
		<description><![CDATA[During the course of my freelance work, i&#8217;ve encountered my fair share of conservative management. The fear, sometimes warranted, of migrating processes to use technology is staggering to the point of being absurd and sometimes humorous. Granted most of this businesses have experience using some form of technology, and they have been burned numerous times [...]]]></description>
			<content:encoded><![CDATA[<p>During the course of my freelance work, i&#8217;ve encountered my fair share of conservative management. The fear, sometimes warranted, of migrating processes to use technology is staggering to the point of being absurd and sometimes humorous. Granted most of this businesses have experience using some form of technology, and they have been burned numerous times by past experiences which leads them to revert to the old style of pen and paper (LOTS OF THEM!). Future companies that would be brave enough to sell them their technology would be hard press to convinced them otherwise. Citing different reasons such as cost, maintenance and the concern for downtimes that will inevitably result to slower operations, and if your offering them an online solution, the concern of intermittent or unavailable online access.</p>
<p>How do you deal with this kinds of clients? Should we avoid them? Or try to enlighten them?</p>
]]></content:encoded>
			<wfw:commentRss>http://jmgtan.com/2008/08/08/injecting-technology-to-conservative-management/feed/</wfw:commentRss>
		</item>
		<item>
		<title>New home!</title>
		<link>http://jmgtan.com/2008/08/08/new-home/</link>
		<comments>http://jmgtan.com/2008/08/08/new-home/#comments</comments>
		<pubDate>Fri, 08 Aug 2008 15:26:47 +0000</pubDate>
		<dc:creator>Jan Michael Tan</dc:creator>
		
		<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://jmgtan.com/?p=3</guid>
		<description><![CDATA[Hi! Welcome to my new home, a place to share technology related ideas and random rants. Also a place to post new development updates for a still to be announced venture.
]]></description>
			<content:encoded><![CDATA[<p>Hi! Welcome to my new home, a place to share technology related ideas and random rants. Also a place to post new development updates for a still to be announced venture.</p>
]]></content:encoded>
			<wfw:commentRss>http://jmgtan.com/2008/08/08/new-home/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
