<?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>Perplexed Labs &#187; Random</title>
	<atom:link href="http://blog.perplexedlabs.com/category/random/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.perplexedlabs.com</link>
	<description>web development war stories from the frontlines to the backend</description>
	<lastBuildDate>Sat, 24 Jul 2010 16:27:40 +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>Tornado 1.0 Released</title>
		<link>http://blog.perplexedlabs.com/2010/07/24/tornado-1-0-released/</link>
		<comments>http://blog.perplexedlabs.com/2010/07/24/tornado-1-0-released/#comments</comments>
		<pubDate>Sat, 24 Jul 2010 16:27:40 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[python tornado]]></category>

		<guid isPermaLink="false">http://blog.perplexedlabs.com/?p=459</guid>
		<description><![CDATA[Just a quick note that the Tornado team announced the release of version 1.0 on July 22nd. Here's the changelog. Looks like some nice new features - I'm looking forward to upgrading. Related posts:PHP 5.3.0 Released and Firefox 3.5 jQuery 1.4.2 Released Django 1.1 Released


Related posts:<ol><li><a href='http://blog.perplexedlabs.com/2009/06/30/php-5-3-0-released-and-firefox-3-5/' rel='bookmark' title='Permanent Link: PHP 5.3.0 Released and Firefox 3.5'>PHP 5.3.0 Released and Firefox 3.5</a></li>
<li><a href='http://blog.perplexedlabs.com/2010/02/20/jquery-1-4-2-released/' rel='bookmark' title='Permanent Link: jQuery 1.4.2 Released'>jQuery 1.4.2 Released</a></li>
<li><a href='http://blog.perplexedlabs.com/2009/07/29/django-1-1-released/' rel='bookmark' title='Permanent Link: Django 1.1 Released'>Django 1.1 Released</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Just a quick note that the Tornado team announced the release of version 1.0 on July 22nd.</p>
<p>Here's the <a href="http://groups.google.com/group/python-tornado/browse_thread/thread/6040b860b74444e0">changelog</a>.</p>
<p>Looks like some nice new features - I'm looking forward to upgrading.</p>


<p>Related posts:<ol><li><a href='http://blog.perplexedlabs.com/2009/06/30/php-5-3-0-released-and-firefox-3-5/' rel='bookmark' title='Permanent Link: PHP 5.3.0 Released and Firefox 3.5'>PHP 5.3.0 Released and Firefox 3.5</a></li>
<li><a href='http://blog.perplexedlabs.com/2010/02/20/jquery-1-4-2-released/' rel='bookmark' title='Permanent Link: jQuery 1.4.2 Released'>jQuery 1.4.2 Released</a></li>
<li><a href='http://blog.perplexedlabs.com/2009/07/29/django-1-1-released/' rel='bookmark' title='Permanent Link: Django 1.1 Released'>Django 1.1 Released</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.perplexedlabs.com/2010/07/24/tornado-1-0-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FormStack API Call Over SSL With Ruby</title>
		<link>http://blog.perplexedlabs.com/2010/04/28/formstack-api-call-over-ssl-with-ruby/</link>
		<comments>http://blog.perplexedlabs.com/2010/04/28/formstack-api-call-over-ssl-with-ruby/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 17:45:44 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[Ruby on Rails]]></category>
		<category><![CDATA[FormStack]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://blog.perplexedlabs.com/?p=449</guid>
		<description><![CDATA[I recently had to use the FormStack API in the context of a Rails app. You need to make these calls over SSL, and API returns either XML or JSON. I chose JSON because it's much easier to work with in my opinion and I hate XML. Below is a simple example. Check out the [...]


Related posts:<ol><li><a href='http://blog.perplexedlabs.com/2009/01/13/installing-ruby-enterprise-edition-with-phusion-passenger/' rel='bookmark' title='Permanent Link: Installing Ruby Enterprise Edition with Phusion Passenger'>Installing Ruby Enterprise Edition with Phusion Passenger</a></li>
<li><a href='http://blog.perplexedlabs.com/2008/02/26/flickr-rss-and-ruby/' rel='bookmark' title='Permanent Link: Flickr, RSS, and Ruby'>Flickr, RSS, and Ruby</a></li>
<li><a href='http://blog.perplexedlabs.com/2008/02/04/building-a-rails-capable-slice-from-scratch/' rel='bookmark' title='Permanent Link: Ruby On Rails and SliceHost Part 1: Initial Setup'>Ruby On Rails and SliceHost Part 1: Initial Setup</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I recently had to use the <a href="http://support.formstack.com/index.php?pg=kb.book&amp;id=3">FormStack API</a> in the context of a Rails app.  You need to make these calls over SSL, and API returns either XML or JSON.  I chose JSON because it's much easier to work with in my opinion and I hate XML.</p>
<p>Below is a simple example.  Check out the <a href="http://support.formstack.com/index.php?pg=kb.book&amp;id=3">FormStack API documentation</a> for all the other API calls.</p>
<p><script src="http://gist.github.com/372524.js"></script></p>


<p>Related posts:<ol><li><a href='http://blog.perplexedlabs.com/2009/01/13/installing-ruby-enterprise-edition-with-phusion-passenger/' rel='bookmark' title='Permanent Link: Installing Ruby Enterprise Edition with Phusion Passenger'>Installing Ruby Enterprise Edition with Phusion Passenger</a></li>
<li><a href='http://blog.perplexedlabs.com/2008/02/26/flickr-rss-and-ruby/' rel='bookmark' title='Permanent Link: Flickr, RSS, and Ruby'>Flickr, RSS, and Ruby</a></li>
<li><a href='http://blog.perplexedlabs.com/2008/02/04/building-a-rails-capable-slice-from-scratch/' rel='bookmark' title='Permanent Link: Ruby On Rails and SliceHost Part 1: Initial Setup'>Ruby On Rails and SliceHost Part 1: Initial Setup</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.perplexedlabs.com/2010/04/28/formstack-api-call-over-ssl-with-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Learning vs. Solving</title>
		<link>http://blog.perplexedlabs.com/2010/03/15/learning-vs-solving/</link>
		<comments>http://blog.perplexedlabs.com/2010/03/15/learning-vs-solving/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 13:00:07 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[thoughts]]></category>

		<guid isPermaLink="false">http://blog.perplexedlabs.com/?p=443</guid>
		<description><![CDATA[Often times you're tasked with solving a problem you haven't faced before, requiring the use of technologies you haven't previously been exposed to. This is a great thing! These experiences are the stuff of legend - continuing deep into the night as your curiosity peaks. When delivery of the solution makes a difference to somebody's [...]


Related posts:<ol><li><a href='http://blog.perplexedlabs.com/2009/05/04/php-jquery-ajax-javascript-long-polling/' rel='bookmark' title='Permanent Link: PHP jQuery AJAX Javascript Long Polling'>PHP jQuery AJAX Javascript Long Polling</a></li>
<li><a href='http://blog.perplexedlabs.com/2008/02/01/get-it-done/' rel='bookmark' title='Permanent Link: Get It Done'>Get It Done</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Often times you're tasked with solving a problem you haven't faced before, requiring the use of technologies you haven't previously been exposed to.  This is a great thing!  These experiences are the stuff of legend - continuing deep into the night as your curiosity peaks.</p>
<p>When delivery of the solution makes a difference to somebody's bottom line you have to balance the opportunity as a means to learn with your desire to deliver for a customer.</p>
<p>Consider this example.  A client recently wanted a private chat system for internal company communications.  The service they had been using wasn't meeting their needs, was littered with bugs, and sometimes didn't work at all.  The core requirement other than privacy, real-time chat, presence, and multi-user chat was that it had to be compliant (all communications stored).  </p>
<p>The learner in me wanted to dive deep, dig into XMPP, build a server from scratch, and accompany that with a web and desktop client.  I spent a few days investigating the technologies involved and even wrote a quick proof of concept (that didn't use XMPP) in PHP.</p>
<p>What I came to realize is that much of the chat landscape had been "solved".  There were rock solid open-source servers that were full-featured, standards compliant, extensible, performant, and scalable (I'm looking at you ejabberd).  In addition, XMPP being such a universally accepted/supported protocol, there were open-source clients for every major OS and even an AJAX web client.</p>
<p>I really did want to write my own XMPP client and server.  Perhaps I will some day, but only if it solves a problem the business is having that can't be solved through the use of existing tools.  In my opinion this is a reminder to "keep your eye on the prize".  If time and resources are infinite then by all means dig in.  Since in business that's rarely (if ever) the case, it's a good lesson learned.</p>
<p>Ask yourself the question "are we in the business of compliant real-time chat?".  If the answer is no take it off the shelf and solve the problem.</p>


<p>Related posts:<ol><li><a href='http://blog.perplexedlabs.com/2009/05/04/php-jquery-ajax-javascript-long-polling/' rel='bookmark' title='Permanent Link: PHP jQuery AJAX Javascript Long Polling'>PHP jQuery AJAX Javascript Long Polling</a></li>
<li><a href='http://blog.perplexedlabs.com/2008/02/01/get-it-done/' rel='bookmark' title='Permanent Link: Get It Done'>Get It Done</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.perplexedlabs.com/2010/03/15/learning-vs-solving/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP 5.3.0 Released and Firefox 3.5</title>
		<link>http://blog.perplexedlabs.com/2009/06/30/php-5-3-0-released-and-firefox-3-5/</link>
		<comments>http://blog.perplexedlabs.com/2009/06/30/php-5-3-0-released-and-firefox-3-5/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 17:00:32 +0000</pubDate>
		<dc:creator>Matt</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.perplexedlabs.com/?p=304</guid>
		<description><![CDATA[Pretty major day in the world of the web, eh? The PHP development team announced the release of version 5.3.0. This is a major milestone. Here's what I'm most excited about: Lambda Functions and Closures ternary short cut "?:" Optional garbage collection for cyclic references I'm excited about support for namespaces, but not the particular [...]


Related posts:<ol><li><a href='http://blog.perplexedlabs.com/2010/07/24/tornado-1-0-released/' rel='bookmark' title='Permanent Link: Tornado 1.0 Released'>Tornado 1.0 Released</a></li>
<li><a href='http://blog.perplexedlabs.com/2008/11/11/remove-firefox-link-outline/' rel='bookmark' title='Permanent Link: Remove Firefox Link Outline'>Remove Firefox Link Outline</a></li>
<li><a href='http://blog.perplexedlabs.com/2009/07/29/django-1-1-released/' rel='bookmark' title='Permanent Link: Django 1.1 Released'>Django 1.1 Released</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Pretty major day in the world of the web, eh?</p>
<p>The PHP development team announced the <a href="http://php.net/releases/5_3_0.php">release of version 5.3.0</a>.  This is a <strong>major</strong> milestone.  Here's what I'm most excited about:</p>
<ul>
<li>Lambda Functions and Closures</li>
<li>ternary short cut "?:"</li>
<li>Optional garbage collection for cyclic references</li>
</ul>
<p>I'm excited about support for namespaces, but not the particular syntactical implementation chosen.</p>
<p>Also, the Mozilla team announced the official release of <a href="http://download.mozilla.org/?product=firefox-3.5&#038;os=win&#038;lang=en-US">Firefox 3.5</a>.  Firefox is my browser of choice thanks to the great web development plugins available for it such as:</p>
<ul>
<li><a href="http://getfirebug.com/">Firebug</a></li>
<li><a href="http://code.google.com/p/httpfox/">HttpFox</a></li>
<li><a href="http://chrispederick.com/work/web-developer/">Web Developer Toolbar</a>
</ul>
<p>Version 3.5 looks to make an already excellent browser even faster.</p>


<p>Related posts:<ol><li><a href='http://blog.perplexedlabs.com/2010/07/24/tornado-1-0-released/' rel='bookmark' title='Permanent Link: Tornado 1.0 Released'>Tornado 1.0 Released</a></li>
<li><a href='http://blog.perplexedlabs.com/2008/11/11/remove-firefox-link-outline/' rel='bookmark' title='Permanent Link: Remove Firefox Link Outline'>Remove Firefox Link Outline</a></li>
<li><a href='http://blog.perplexedlabs.com/2009/07/29/django-1-1-released/' rel='bookmark' title='Permanent Link: Django 1.1 Released'>Django 1.1 Released</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.perplexedlabs.com/2009/06/30/php-5-3-0-released-and-firefox-3-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ad Revenue as a Business Model &#8211; Eat Dinner First</title>
		<link>http://blog.perplexedlabs.com/2009/02/03/ad-revenue-as-a-business-model-eat-dinner-first/</link>
		<comments>http://blog.perplexedlabs.com/2009/02/03/ad-revenue-as-a-business-model-eat-dinner-first/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 18:19:04 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[ads]]></category>
		<category><![CDATA[businessmodel]]></category>
		<category><![CDATA[revenue]]></category>

		<guid isPermaLink="false">http://www.perplexedlabs.com/?p=133</guid>
		<description><![CDATA[If you're building a startup and your revenue is all ad based, it's like eating dessert before eating the full meal. Yes, it might taste good at first, but sooner or later you'll be on the toilet...and uncomfortable. Over the past few weeks I've read a lot of articles like this one, which reiterate how [...]


Related posts:<ol><li><a href='http://blog.perplexedlabs.com/2008/12/19/13-years-on-the-web-a-retrospective-part-ii/' rel='bookmark' title='Permanent Link: 13 Years On The Web &#8211; A Retrospective, Part II'>13 Years On The Web &#8211; A Retrospective, Part II</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>If you're building a startup and your revenue is all ad based, it's like eating dessert before eating the full meal.  Yes, it might taste good at first, but sooner or later you'll be on the toilet...and uncomfortable.</p>
<p>Over the past few weeks I've read a lot of articles like <a href="http://www.masshightech.com/stories/2009/01/26/weekly17-VCs-nixing-social-networking-startup-investments.html">this one</a>, which reiterate how hopeless it is to build a startup around ad revenue that can survive a downturn.  I was going to say "to build a startup with an ad-based business model", but really, is ad revenue a business model?  It might be a "revenue model", but is what you are doing a business if you derive all of your income from advertising?  I wouldn't say so.  A true business produces something, or provides a service that improves the lives of the customer.  Your "MySpace of pet owners who visit the library every Thursday" or "Digg for horitculturalists" might be a good web application, it might be a nice way for you to show the world your programming prowess, but honestly, is it a business?</p>
<p>This is not to say that ad revenue is useless.  Far from it.  If I had a product site (Basecamp?), or a social site where money was exchanged for some service or premium features (Flickr?), I would definitely supplement whatever money I made from the main product (dinner) with some ads (dessert).  That's a no brainer.  But building a business based on ad revenue leaves you exposed to downturns like this.</p>
<p>If you're struggling with developing a business model, there have been some good articles written recently that might help you on your way: <a href="http://startuplessonslearned.blogspot.com/2009/01/three-freemium-strategies.html">Three Freemium Strategies</a> and <a href="http://www.sachinrekhi.com/blog/2009/01/25/make-something-people-will-buy">Make Something People Will Buy</a> among others.  I also found <a href="http://www.scribd.com/doc/11482768/JPMorgan-Nothing-but-Net-1509">JPMorgan's Internet Market Research Report</a> to be particularly insightful.</p>


<p>Related posts:<ol><li><a href='http://blog.perplexedlabs.com/2008/12/19/13-years-on-the-web-a-retrospective-part-ii/' rel='bookmark' title='Permanent Link: 13 Years On The Web &#8211; A Retrospective, Part II'>13 Years On The Web &#8211; A Retrospective, Part II</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.perplexedlabs.com/2009/02/03/ad-revenue-as-a-business-model-eat-dinner-first/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>13 Years On The Web &#8211; A Retrospective, Part II</title>
		<link>http://blog.perplexedlabs.com/2008/12/19/13-years-on-the-web-a-retrospective-part-ii/</link>
		<comments>http://blog.perplexedlabs.com/2008/12/19/13-years-on-the-web-a-retrospective-part-ii/#comments</comments>
		<pubDate>Fri, 19 Dec 2008 16:45:34 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Random]]></category>
		<category><![CDATA[aol]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[game programming]]></category>
		<category><![CDATA[perplexed]]></category>
		<category><![CDATA[vb]]></category>

		<guid isPermaLink="false">http://www.perplexedlabs.com/?p=96</guid>
		<description><![CDATA[In Part I, I detailed the formative phases of our web development careers.  A providential encounter with a magazine article, tons of free time, inherent curiosity, youthful ambition were the perfect storm that threw us into the world of programming. At this time, Matt was admittedly more of a programmer than I was.  While our [...]


Related posts:<ol><li><a href='http://blog.perplexedlabs.com/2008/11/20/13-years-on-the-web-a-retrospective-part-i/' rel='bookmark' title='Permanent Link: 13 Years On The Web &#8211; A Retrospective, Part I'>13 Years On The Web &#8211; A Retrospective, Part I</a></li>
<li><a href='http://blog.perplexedlabs.com/2009/02/03/ad-revenue-as-a-business-model-eat-dinner-first/' rel='bookmark' title='Permanent Link: Ad Revenue as a Business Model &#8211; Eat Dinner First'>Ad Revenue as a Business Model &#8211; Eat Dinner First</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>In <a href="http://www.perplexedlabs.com/2008/11/20/13-years-on-the-web-a-retrospective-part-i/">Part I</a>, I detailed the formative phases of our web development careers.  A providential encounter with a magazine article, tons of free time, inherent curiosity, youthful ambition were the perfect storm that threw us into the world of programming.</p>
<p>At this time, Matt was admittedly more of a programmer than I was.  While our web "programming" skills were roughly equal, Matt was also into C/C++ programming.  He wrote an Asteroids-like game to teach his brother math, and he would dissect gaming engines like the one used in Doom.  At one point we even thought of developing our own first person shooter based on our neighborhood and school, the premise being, we had to rescue everyone from zombies and aliens.  Again, youthful ambition, and not a bit of naivety.  Sometime in 1995 or 1996 we registered our first domain name, perplexed.com, with a $100 investment from my grandmother.  The name "perplexed" represented everything about us at the time: young and curious, but sometimes confused about the state of the world we were in.  Why did people do certain (illogical) things?  What were we going to do with our lives when we got to college?  Will the Knicks ever beat the Bulls in the playoffs?  It is my contention that perplexed.com is the greatest domain name ever registered, and I cannot articulate how angry we are with ourselves that we didn't renew it. More on that later</p>
<p><img style="padding: 2px !important; margin: 0px !important; border: 1px solid #D6D6D6;" title="title" src="http://www.perplexedlabs.com/wp-content/uploads/2008/12/title.jpg" alt="title" width="350" height="150" align="right" />We decided perplexed.com would host two different sites: Matt's Game Programming MegaSite, and my VB Programming MegaSite.  This arrangement allowed us both to build sites related to our interests.  We tried to keep the layouts the same so we'd have a consistent design across the domain; two frames, the left being the menu, the right being the content.  The color scheme was black background with white text.  We tried to make all our images using PhotoShop.  They came out ok in a cheesy way, as you'd expect from two programmers.  GPMega would focus on all aspects of game programming, especially engine design and DirectX.  Matt had a ton of C/C++ code up, as well as tutorials, links, software, and even a MIDI player so you can listen to a MIDI version of Van Halen's "Panama" while you browsed.  VBMega was concerned with Visual Basic programming, and the main focus was on programs that you could use to manipulate earlier versions of AOL.  For example, posting ASCII art in chat rooms, knocking people offline, pinging the service every few minutes so you wouldn't get knocked off, as well as other more nefarious features.  I ran this portion of the site, which allowed me to learn VB programming while at the same time piss off my friends by booting them off AOL over IM.  Everyone was a winner!</p>
<p>We made money the old-fashioned way, by selling ad space.  We signed up for various banner exchanges before settling with 24/7.  They had a different name back then, I just can't remember what it was.  In any case, the sites both grew very quickly, and the checks were arriving.  The first few months we made $150, then $200, then $300.  At the high point we were pulling in $1500 a month, strictly through ads.  When you're 15 years old in high school and you're walking around with that kind of money in your pocket, you feel on top of the world.  While the rest of our classmates ate the cafeteria food, we walked over to the deli across the street and treated ourselves to bacon egg and cheese sandwiches.  Going to the mall was fun: your girl wants some lunch?  No problem.  New shirt?  Done.  New programming book?  Buy two!  One month, perplexed.com accounted for a little more than 1% of the total ad impressions for every site that advertised with 24/7.  We were experiencing impressive growth.  Perhaps the most stunning thing to happen to us during this time was one day when we were in CompUSA.  Matt was leafing through a book, <a href="http://books.google.com/books?id=lRUj-nhQRu8C&amp;pg=PP25&amp;lpg=PP25&amp;dq=game+programming+megasite&amp;source=web&amp;ots=7vBe3xL25D&amp;sig=g5P08vACy_GZkHJfP1Cy6pKFb-4&amp;hl=en&amp;sa=X&amp;oi=book_result&amp;resnum=4&amp;ct=result">Tricks Of the Windows Game Programming Gurus</a>, when he saw GPMega mentioned!  We didn't even know the author had referenced us.  It was shocking; we were open-mouthed.</p>
<p>Unfortunately, all good things must come to an end.  In retrospect, the way Perplexed ended is sad indeed, and the only way I can explain it is stupidity.  In October of 1998, my family and I moved to another town, which was only 15 minutes away from where Matt lived, but to two kids with no cars who would now be going to different schools, it might as well have been a million miles.  We kept in touch and continued to hang out, but it was hard to run the sites at the time.  So many of our ideas came from lunchtime brainstorming, playing ball after school, or Friday night coding sessions.  Now that we weren't seeing each other on a day to day basis, the importance of the sites and the partnership that created them began to fall.  It sounds insane in this age of telecommuting, but back then we didn't know any better.  And priorities changed as we got older.  When you get a new car and you're hanging out with your girlfriend, and doing whatever high school kids do, who wants to be up at 3am on a Friday writing HTML and answering emails?  The nail in the coffin was the failure to renew the domain name.  To this day I don't know why we didn't do it.  I can't explain it; it was a stupid decision and one of the biggest regrets of my youth.</p>
<p>At this point, Matt and I are seniors in different high schools, preparing to attend different colleges.  We're still great friends but the lack of face time has meant that our priorities diverged a bit.  It's worth mentioning that my grades were better in high school and college after I moved away.  I failed out of Advanced Math in seventh grade, but got A's in Calc I, II, and III in college.  Go figure!  In all seriousness, the fact that Perplexed.com is now part of an ad farm is a huge source of pain and regret.  But all is not lost.  Stay tuned for Part III, where I will bring the story up to the present time, and offer my reflections on the business and pleasure of web programming.</p>


<p>Related posts:<ol><li><a href='http://blog.perplexedlabs.com/2008/11/20/13-years-on-the-web-a-retrospective-part-i/' rel='bookmark' title='Permanent Link: 13 Years On The Web &#8211; A Retrospective, Part I'>13 Years On The Web &#8211; A Retrospective, Part I</a></li>
<li><a href='http://blog.perplexedlabs.com/2009/02/03/ad-revenue-as-a-business-model-eat-dinner-first/' rel='bookmark' title='Permanent Link: Ad Revenue as a Business Model &#8211; Eat Dinner First'>Ad Revenue as a Business Model &#8211; Eat Dinner First</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.perplexedlabs.com/2008/12/19/13-years-on-the-web-a-retrospective-part-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>13 Years On The Web &#8211; A Retrospective, Part I</title>
		<link>http://blog.perplexedlabs.com/2008/11/20/13-years-on-the-web-a-retrospective-part-i/</link>
		<comments>http://blog.perplexedlabs.com/2008/11/20/13-years-on-the-web-a-retrospective-part-i/#comments</comments>
		<pubDate>Thu, 20 Nov 2008 17:09:01 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[deltasoft]]></category>
		<category><![CDATA[nostalgia]]></category>
		<category><![CDATA[perplexed]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.perplexedlabs.com/?p=78</guid>
		<description><![CDATA[I am not a nostalgic person.  You cannot change the past, and as much as the past has shaped your present, the fact is, you live in that same present, today.  It's no use getting caught up in what you can't change, or worrying about a future that may never come.  However, that being said, there [...]


Related posts:<ol><li><a href='http://blog.perplexedlabs.com/2008/12/19/13-years-on-the-web-a-retrospective-part-ii/' rel='bookmark' title='Permanent Link: 13 Years On The Web &#8211; A Retrospective, Part II'>13 Years On The Web &#8211; A Retrospective, Part II</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I am not a nostalgic person.  You cannot change the past, and as much as the past has shaped your present, the fact is, you live in that same present, today.  It's no use getting caught up in what you can't change, or worrying about a future that may never come.  However, that being said, there are times when it's instructive to look back on your past and see how far you have come.  To some, this can be a depressing prospect, especially when you come to the realization that the potential of the past has not yet been realized, and may never be.  To others, this process is encouraging, a helpful reminder that hard work and persistence over time leads to success, whatever that term means to you.  But there's a third group, for whom the nostalgic process is a little of both, because, while the present reality might not be what we thought it would be so many years ago, there's also the realization that the process is ongoing, and it's not over yet.  I think I fall into this third category.</p>
<p><a href="http://www.perplexedlabs.com/wp-content/uploads/2008/11/cyberia.jpg"><img class="alignleft size-medium wp-image-79" style="margin: 1px 4px;" title="Cyberia" src="http://www.perplexedlabs.com/wp-content/uploads/2008/11/cyberia-217x300.jpg" alt="" width="217" height="300" align="left" /></a>In 1994, I met Matt at junior high orientation.  I didn't know it at the time, but I had met a kindred soul.  We both loved good rock music, were good at sports (we are still undefeated in 2-on-2 basketball), and strived to lead a logical, reasoned life.  We had also perfected the art of pulling good grades doing absolutely no schoolwork, but that's for another day.  But perhaps the shared interest that would define our friendship was the computer.  Back then Matt had a 486, I had a 386.  Matt was using Prodigy for internet access, I had AOL 2.0 at home, on a 14.4 modem.  Obviously we played video games (Carmen Sandiego?) but we also started messing around with batch file programming, and generally loved to tinker with our machines.  I cannot tell you how many times I have had to restore my computer from scratch due to the ramifications of excessive (and uninformed) curiosity.  In any case, in November of 1995, we came into contact with a magazine that would literally change the course of our lives forever.  Matt, having the more powerful computer, was into a game called Cyberia, which I remember having insane graphics for it's time.  We purchased the November 1995 issue of Electronic Entertainment magazine, which featured Cyberia.  In the back of that magazine was an article called "How To Make Your Own Web Page", which turned out to be a 3 page tutorial on basic HTML.  Really basic.  We read the article and were hooked.   We had to try this out.</p>
<p>The first time I tried to make an HTML page, I used MS Word.  It took me a few minutes to realize that the formatting that Word does to a document makes it pretty much unreadable to a browser.  The only plain-text editor I had was Notepad.  And so I started using Notepad.  To this day, 13 years later, I code every single file by hand, be it a stylesheet or a PHP script, in a text editor.  Ok, I confess: I had a job after college where I was doing J2EE development and we used IBM WebSphere Development Studio, but Java is such a pain to develop with, I think I can be forgiven for using an IDE!  And in college I did take  VB class, but I was forced to, so don't hold that against me.</p>
<p>Anyway, fast forward a few months through many late night "coding" sessions, constantly tweaking the layouts of our pages (F5 became the most used key on my keyboard), and searching for awesome animated gifs (spinning globes!) and we were experts in the art of webpage creation.  We used AOL's free homepages at the time, because 13 year olds didn't have the money for hosting back then, which was ridiculously expensive compared to today's options.  We formed a fake company called "DeltaSoft".  Our first homepages were really just links to sites we liked, and some information about us.  Nothing crazy.  The first big idea we had was conceived at a sleepover, in the early hours of the morning.  We were going to Action Park the next day with my church's youth group, and we were hanging out in the living room drinking iced tea and eating popcorn (late night snack of champions).  We were talking about what we could do with DeltaSoft, and we had the idea of starting the DeltaSoft Network.  Basically our two separate sites would be part of a larger umbrella site of homepages.  We could let others join the DeltaSoft network and start their own homepages.  We would need hosting space, to be sure, and we weren't sure how exactly program with something dynamic like that.  The thought of making money hadn't crossed our minds yet.  Call us naive.  In retrospect, this idea was like the social networking sites of the present.  At the time, however, we didn't realize that there already existed such a service.  Anyone remember <a href="http://en.wikipedia.org/wiki/GeoCities">GeoCities</a>?  But it didn't matter.  Excited by the possibilities of a network of separate but related websites, we set to work.  What would the content be?  That was yet undecided.  What would drive visitors there?  Still undecided.  But we had an idea and we were going to execute it.</p>
<p>Stay tuned for Part II later this week, in which we become 15 year high school students making $1500 a month from our websites, and are able to purchase bacon, egg, and cheese sandwiches for lunch, making our classmates jealous.</p>


<p>Related posts:<ol><li><a href='http://blog.perplexedlabs.com/2008/12/19/13-years-on-the-web-a-retrospective-part-ii/' rel='bookmark' title='Permanent Link: 13 Years On The Web &#8211; A Retrospective, Part II'>13 Years On The Web &#8211; A Retrospective, Part II</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://blog.perplexedlabs.com/2008/11/20/13-years-on-the-web-a-retrospective-part-i/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Breaking Radio Silence</title>
		<link>http://blog.perplexedlabs.com/2008/03/18/breaking-radio-silence/</link>
		<comments>http://blog.perplexedlabs.com/2008/03/18/breaking-radio-silence/#comments</comments>
		<pubDate>Tue, 18 Mar 2008 20:54:37 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://www.perplexedlabs.com/2008/03/18/breaking-radio-silence/</guid>
		<description><![CDATA[It's been a few weeks since our last post, but rest assured we are still committed to this blog. We started a project that's not really top-secret, but we're keeping it under wraps for now. In the meantime we have developed a pretty cool framework. I know the pure Rubyists out there will cringe but [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p>It's been a few weeks since our last post, but rest assured we are still committed to this blog.  We started a project that's not really top-secret, but we're keeping it under wraps for now.  In the meantime we have developed a pretty cool framework.  I know the pure Rubyists out there will cringe but it's been nice to do some PHP programming.  I still love Ruby, but in the tech world you have to keep all your skills sharp.</p>
<p>I am still trying to digest everything that's happened with Bear Stearns.  It's very sad on a human level when you think about the people who have lost their jobs and retirement money. On a macro level, what implications does this, and the current credit crisis/dollar weakness mean for the future of America?  I have no idea but it's scary to think about.</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.perplexedlabs.com/2008/03/18/breaking-radio-silence/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Only Measurement Of Code Quality</title>
		<link>http://blog.perplexedlabs.com/2008/02/05/17/</link>
		<comments>http://blog.perplexedlabs.com/2008/02/05/17/#comments</comments>
		<pubDate>Tue, 05 Feb 2008 15:28:39 +0000</pubDate>
		<dc:creator>Eric</dc:creator>
				<category><![CDATA[Random]]></category>
		<category><![CDATA[code]]></category>

		<guid isPermaLink="false">http://perplexedlabs.com/2008/02/05/17/</guid>
		<description><![CDATA[No related posts.


No related posts.]]></description>
			<content:encoded><![CDATA[<p><center><img src="http://www.osnews.com/images/comics/wtfm.jpg" align="middle" height="453" width="500" /></center></p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.perplexedlabs.com/2008/02/05/17/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
