<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.3" -->
<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>Leaving Corporate</title>
	<link>http://leavingcorporate.com</link>
	<description>On technology and startups</description>
	<pubDate>Fri, 11 Jul 2008 14:31:49 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
	<language>en</language>
			<item>
		<title>The evolution of Socialbrowse</title>
		<link>http://leavingcorporate.com/2008/07/11/the-evolution-of-socialbrowse/</link>
		<comments>http://leavingcorporate.com/2008/07/11/the-evolution-of-socialbrowse/#comments</comments>
		<pubDate>Fri, 11 Jul 2008 14:25:05 +0000</pubDate>
		<dc:creator>garbowza</dc:creator>
		
		<category><![CDATA[8aweek]]></category>

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

		<category><![CDATA[Y Combinator]]></category>

		<guid isPermaLink="false">http://leavingcorporate.com/2008/07/11/the-evolution-of-socialbrowse/</guid>
		<description><![CDATA[Socialbrowse all started with us wanted to help you waste less time online. Really!
Our initial project during Y Combinator was 8aweek, a browser extension that helps you limit how much time you waste browsing the web each day. 8aweek generated a large and passionate following and just before demo day, we added a new feature: [...]]]></description>
			<content:encoded><![CDATA[<p>Socialbrowse all started with us wanted to help you waste less time online. Really!</p>
<p>Our initial project during <a href="http://ycombinator.com" onclick="javascript:urchinTracker ('/outbound/article/ycombinator.com');">Y Combinator</a> was <a href="http://8aweek.com" onclick="javascript:urchinTracker ('/outbound/article/8aweek.com');">8aweek</a>, a browser extension that helps you limit how much time you waste browsing the web each day. 8aweek generated a large and passionate following and just before <a href="http://www.techcrunch.com/2008/03/14/y-combinator-demo-day-roundup-for-spring-2008/" onclick="javascript:urchinTracker ('/outbound/article/www.techcrunch.com');">demo day</a>, we added a new feature: the sidebar.</p>
<p>We recognized that there are multiple ways of saving time online. At first we focused on providing ways to limit the time you spend on casual browsing, but it&#8217;s also important to save time by making the good content quicker to find. We quickly hacked together a sidebar prototype which had several really cool features, including a slider which incrementally removed old links from the page you are on, leaving only the freshest content.</p>
<p>Expanding on this concept, we realized that the ability to quickly access links of interest could be a great way to save time, and thus we implemented a method of highlighting links that your friends also went to. The response to these features from the users we demo&#8217;d them to was enthusiastic enough for us to think hard about whether it fit within the 8aweek paradigm, or was deserving of it&#8217;s own product path.</p>
<p>If you&#8217;re reading this, you&#8217;re probably aware of the outcome, however at the time it required significant soul searching on our part. We had put so much emotional and physical energy into developing 8aweek, and our user base was nearly fanatical. We had presented 8aweek to over 150 investors at demo day, and were hot and heavy into the fund raising process, so the thought of switching gears onto a new product was daunting. But we also saw a unique opportunity in our new sidebar concept to develop an extremely innovative way of customizing the web as you browse. We were extremely passionate about the idea, and in the end, we recognized that we couldn&#8217;t pass up this opportunity, since it had the chance to really change how people browse the web. As a result, Socialbrowse was born.</p>
<p><img src="http://socialbrowse.com/media/images/blog/sb.jpg" alt="Our first version of Socialbrowse" align="right" height="302" hspace="5" width="400" />The initial feature set of our Socialbrowse prototypes look nothing like the current product. Since our focus started with saving time, Socialbrowse initially was a sidebar control panel for altering the page you are on to find good content faster. Among other options, you could make old links disappear from the page, you could make the newest links &#8220;glow&#8221;, and you could remove Flash objects and images to declutter the page. The only aspect that remains today is the embedded user links, and that was the seed from which our current product grew.</p>
<p>As we continued to develop Socialbrowse, our focus evolved gradually from saving time to sharing and discovering content socially. We narrowed our feature set to support this focus more fully and the result of this process is the product you see today. Our goals are simple are to make it easy to share links and discover good content and we are rapidly iterating our product to this end. As we continue to grow, the product will evolve based on our user&#8217;s feedback and hopefully become a must-have extension to every browser. And if you find you&#8217;re spending too much time on Socialbrowse - well, there&#8217;s always 8aweek!</p>
]]></content:encoded>
			<wfw:commentRss>http://leavingcorporate.com/2008/07/11/the-evolution-of-socialbrowse/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Working from the Django Trunk</title>
		<link>http://leavingcorporate.com/2008/07/09/working-from-the-django-trunk/</link>
		<comments>http://leavingcorporate.com/2008/07/09/working-from-the-django-trunk/#comments</comments>
		<pubDate>Wed, 09 Jul 2008 07:14:49 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
		
		<category><![CDATA[Deploying]]></category>

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

		<guid isPermaLink="false">http://leavingcorporate.com/2008/07/09/working-from-the-django-trunk/</guid>
		<description><![CDATA[I just finished debuging a confusing issue on socialbrowse.com and wanted to make a quick note about working out of the django trunk.  I&#8217;ve been happily working from the django-trunk for over a year now and ignorantly updating whenever I felt the fancy or I found a new feature to utilize.
Django is under a great [...]]]></description>
			<content:encoded><![CDATA[<p>I just finished debuging a confusing issue on <a href="http://socialbrowse.com" onclick="javascript:urchinTracker ('/outbound/article/socialbrowse.com');">socialbrowse.com</a> and wanted to make a quick note about working out of the django trunk.  I&#8217;ve been happily working from the django-trunk for over a year now and ignorantly updating whenever I felt the fancy or I found a new feature to utilize.</p>
<p>Django is under a great deal of development by its very active community and awesome new features are added all the time.  There hasn&#8217;t had an official &#8220;release&#8221; since March 2007 and there have been so many improvements that it is a huge disadvantage to not work from the trunk. A few people <a href="http://www.technobabble.dk/2008/jun/07/django-importance-releases/" onclick="javascript:urchinTracker ('/outbound/article/www.technobabble.dk');">criticize</a> the slow release process but most are content with the the historically very stable trunk.</p>
<p>The issue I had, however, was with dealing with backwards incompatibility.  I had never run into an issue where my newly updated trunk would not run the code that worked on an old version.  I was so confident in the trunk in fact that it didn&#8217;t occur to me for a full hour that the issue may have been with the Django update I had done the day before and not with the large chunk of my own code I had just loaded.It was really a brain dead, but easy to make, mistake.</p>
<p>Too confident in Django I updated mindlessly on the live server before I tested on the development server.  Luckily it wasn&#8217;t a major issue.  For about 2 hours while I was cursing and testing, our users couldn&#8217;t change their profile pictures.  After realizing it was nothing I had done the #django IRC was quick to point out the new <a href="http://code.djangoproject.com/wiki/BackwardsIncompatibleChanges#Uploadedfilechanges" onclick="javascript:urchinTracker ('/outbound/article/code.djangoproject.com');">file upload changes</a>.</p>
<p><strong>Moral of the story:</strong>  Watch out for <a href="http://code.djangoproject.com/wiki/BackwardsIncompatibleChanges" onclick="javascript:urchinTracker ('/outbound/article/code.djangoproject.com');">backward incompatibilities</a> and make sure your development and live servers are on the same revision.</p>
]]></content:encoded>
			<wfw:commentRss>http://leavingcorporate.com/2008/07/09/working-from-the-django-trunk/feed/</wfw:commentRss>
		</item>
		<item>
		<title>8 thing you should know about Amazon EC2</title>
		<link>http://leavingcorporate.com/2008/05/13/8-thing-you-should-know-about-amazon-ec2/</link>
		<comments>http://leavingcorporate.com/2008/05/13/8-thing-you-should-know-about-amazon-ec2/#comments</comments>
		<pubDate>Tue, 13 May 2008 20:27:57 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
		
		<category><![CDATA[Deploying]]></category>

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

		<guid isPermaLink="false">http://leavingcorporate.com/2008/05/13/8-thing-you-should-know-about-amazon-ec2/</guid>
		<description><![CDATA[I&#8217;ve been answering a lot of questions for a few friends who just got into the summer round of YC and are figuring a lot of things out.  It reminds me of how much I learned over the past 11 months using Django and 3 months on Elastic Compute Cloud (EC2).  There are a lot [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been answering a lot of questions for a few friends who just got into the summer round of <a href="http://news.ycombinator.com" onclick="javascript:urchinTracker ('/outbound/article/news.ycombinator.com');">YC</a> and are figuring a lot of things out.  It reminds me of how much I learned over the past 11 months using Django and 3 months on Elastic Compute Cloud (EC2).  There are a lot of little things that tend to only be learned the hard way or through a lot of research.   I&#8217;ve listed a few of them here</p>
<p>1.    Other than an obnoxious sign up process its <strong>not that hard to get up and running </strong>a basic app on EC2 (1 - 5 hrs)<br />
2.    The <strong>HD space isn&#8217;t yet persistent</strong> (guaranteed to be around).  You get about <strike>16MB</strike> <em>Update: 10GB</em> of persistent info that will stick with your instance and then many GB of storage attached as your /mnt drive.  It has happened (though never to us) that everything on your /mnt drive could spontaneously disappear.  This means you need to keep a DB backup.  You should be doing this anyway though.  Also Amazon is soon releasing tools to make an instant image of your /mnt drive, which might make the whole persistent thing a virtual non-issue.<br />
4.    Because of this you need to <strong>put all of your data on your /mnt drive</strong>, including .log files.  This means you&#8217;ll have to change the default locations of your db and log files for apache.  As you run your app keep an eye on your /root dir&#8217;s with &#8220;df -h&#8221; and make sure its not growing.  If it is growing you&#8217;ve got a stray log file somewhere and need to get rid of it or you&#8217;ll hit your 16MB max quickly and your server will go down cause your apps can&#8217;t write anything anymore and you will be confused for a long time.  We learned this one the hard way :|.<br />
5.    <strong>Use the <a href="http://developer.amazonwebservices.com/connect/entry.jspa?externalID=609" onclick="javascript:urchinTracker ('/outbound/article/developer.amazonwebservices.com');">FF extension</a></strong> to handle your instances.  Its far from perfect.  It doesn&#8217;t allow you to name the instances, and the ssh functionality doesn&#8217;t work for Mac&#8217;s as far as I&#8217;ve been able to figure out.  But I think its a lot better interface than the command line tools.  http://developer.amazonwebservices.com/connect/entry.jspa?externalID=609<br />
7.    The promising ability of <strong>scaling up and down based on demand isn&#8217;t easy</strong>.  <a href="http://www.rightscale.com/m/" onclick="javascript:urchinTracker ('/outbound/article/www.rightscale.com');">RightScale</a> offers some expensive tools/service for this.   There&#8217;s also <a href="http://www.techcrunch.com/2008/04/03/scalr-the-auto-scaling-open-source-amazon-ec2-effort/" onclick="javascript:urchinTracker ('/outbound/article/www.techcrunch.com');">Scalr</a>, which is an open source system already bundled into Amazon Images for you.  I have yet to try this out.  It sounds promising.  If you&#8217;re just scaling to a hand full of servers (most cases) its easy enough to setup a load balancer such as <a href="http://haproxy.1wt.eu/" title="HAProxy" onclick="javascript:urchinTracker ('/outbound/article/haproxy.1wt.eu');">HAProxy</a> or <a href="http://wiki.codemongers.com/Main" title="nginx" onclick="javascript:urchinTracker ('/outbound/article/wiki.codemongers.com');">nginx</a>.   With notes from my friend Justin I wrote a cookbook for <a href="http://leavingcorporate.com/2008/03/03/session-based-load-balancing-with-haproxy/" >setting up HAProxy</a> previously.<br />
8.    Images taken from a <strong>Small instance cannot be loaded on L or XL instance</strong>, and vica versa.  This is becasue small instances have a 32-bit architecture and L and XL instances are 64-bit.</p>
<p>Good luck!  I&#8217;ll hopefully be posing a few more guides soon.</p>
<p><strong>Updates 5/15:  </strong>This article was pretty much just some notes posted to the web for a few friends.  I didn&#8217;t do a lot of fact checking and have had the following facts checked/corrected for me.</p>
<p>The &#8220;got about 16 MB&#8221; estimate was  horribly wrong.  You can <a href="http://docs.amazonwebservices.com/AWSEC2/2008-02-01/DeveloperGuide/CLTRG-ami-bundle-vol.html" onclick="javascript:urchinTracker ('/outbound/article/docs.amazonwebservices.com');"></a><a href="http://docs.amazonwebservices.com/AWSEC2/2008-02-01/DeveloperGuide/CLTRG-ami-bundle-vol.html" onclick="javascript:urchinTracker ('/outbound/article/docs.amazonwebservices.com');">specify a bundle size</a> up to 10G of free space in your bundle. The point is still the same though.  Put all growing data in your /mnt dir.</p>
<p>Rightscale should not be referred to as &#8220;expensive&#8221;.  I&#8217;m sure they&#8217;re more than worth their cost.</p>
<p>The latest version of Elasticfox (which I need to get) now has ssh support for macs.</p>
<p>I am an idiot and left out points 3 and 6.  This post actually only has 6 things you should know about Amazon EC2.  Never trust numbered list elements while editing a post.</p>
]]></content:encoded>
			<wfw:commentRss>http://leavingcorporate.com/2008/05/13/8-thing-you-should-know-about-amazon-ec2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Installing cmemcache on Ubuntu</title>
		<link>http://leavingcorporate.com/2008/05/04/installing-cmemcache-on-ubuntu/</link>
		<comments>http://leavingcorporate.com/2008/05/04/installing-cmemcache-on-ubuntu/#comments</comments>
		<pubDate>Mon, 05 May 2008 04:53:10 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://leavingcorporate.com/2008/05/04/installing-cmemcache-on-ubuntu/</guid>
		<description><![CDATA[Here are my cookbook notes for setting up cmemcache, the python extension for libmemcache on Ubuntu.  You&#8217;ll want to install this if you&#8217;re using the Django cache framework or need to use memcached for any other python needs.
The cookbook is mostly an abbreviation of the setup instructions for reviewboard.
 Install Dependencies  
 sudo [...]]]></description>
			<content:encoded><![CDATA[<p>Here are my cookbook notes for setting up <a href="http://leavingcorporate.com/wp-admin/%3Cbr" >cmemcache</a>, the python extension for libmemcache on Ubuntu.  You&#8217;ll want to install this if you&#8217;re using the Django cache framework or need to use memcached for any other python needs.</p>
<p>The cookbook is mostly an abbreviation of the <a href="http://code.google.com/p/reviewboard/wiki/Installing_on_Ubuntu_Gutsy" onclick="javascript:urchinTracker ('/outbound/article/code.google.com');">setup instructions for reviewboard</a>.</p>
<p><strong> Install Dependencies  </strong></p>
<blockquote><p> sudo apt-get install build-essential python-dev memcached libmemcache-dev python-dev</p></blockquote>
<p><strong>Install cmemcache</strong></p>
<p>Note, you might want to <a href="http://gijsbert.org/downloads/cmemcache/" onclick="javascript:urchinTracker ('/outbound/article/gijsbert.org');">check  for the latest version</a>.</p>
<blockquote><p> wget http://gijsbert.org/downloads/cmemcache/cmemcache-0.91.tar.bz2</p>
<p>tar -xvf cmemcache-0.91.tar.bz2<br />
cd cmemcache-0.91<br />
sudo python setup.py install</p></blockquote>
<p><strong>Running</strong></p>
<p>Here are <a href="http://www.danga.com/memcached/" onclick="javascript:urchinTracker ('/outbound/article/www.danga.com');">some instructions on running memcached</a>.  The following example runs memcached with 2G of memory listening on port 10.0.0.40 port 11211.</p>
<blockquote><p> memcached -d -m 2048 -l 10.0.0.40 -p 11211</p></blockquote>
<p>That&#8217;s it!  If something went wrong or you&#8217;re a compile junkie you might want to install libmemcache from source, instead of using the apt-get.</p>
<p><strong> Testing</strong></p>
<p>After running you can test with the test.py file provided in the download.</p>
<blockquote><p>python test.py</p></blockquote>
<p><strong>Install libmemcache from source</strong></p>
<p>If you&#8217;re not on a debian distribution and can&#8217;t simply use the apt-get install libmemcache you can install from source w/ the following steps.</p>
<blockquote><p> wget http://people.freebsd.org/~seanc/libmemcache/libmemcache-1.4.0.rc2.tar.bz2<br />
tar -xvf libmemcache-1.4.0.rc2.tar.bz2<br />
cd libmemcache-1.4.0.rc2<br />
./configure<br />
make<br />
sudo make install</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://leavingcorporate.com/2008/05/04/installing-cmemcache-on-ubuntu/feed/</wfw:commentRss>
		</item>
		<item>
		<title>How to get accepted for a Y Combinator interview</title>
		<link>http://leavingcorporate.com/2008/03/24/how-to-get-accepted-for-a-y-combinator-interview/</link>
		<comments>http://leavingcorporate.com/2008/03/24/how-to-get-accepted-for-a-y-combinator-interview/#comments</comments>
		<pubDate>Mon, 24 Mar 2008 16:31:28 +0000</pubDate>
		<dc:creator>Zack</dc:creator>
		
		<category><![CDATA[Y Combinator]]></category>

		<guid isPermaLink="false">http://leavingcorporate.com/2008/03/24/how-to-get-accepted-for-a-y-combinator-interview/</guid>
		<description><![CDATA[The current winter cycle of Y Combinator, which Dave and I are participating in, just completed the 2 demo days and is now moving into a new stage: raising investment capital and growing the businesses. As our &#8220;official&#8221; Y Combinator experience comes to a close (the network of founders will continue to hang out and [...]]]></description>
			<content:encoded><![CDATA[<p>The current winter cycle of Y Combinator, which Dave and I are participating in, just completed the 2 demo days and is now moving into a new stage: raising investment capital and growing the businesses. As our &#8220;official&#8221; Y Combinator experience comes to a close (the network of founders will continue to hang out and collaborate, just not as formally), a new batch of YC hopefuls will be applying. If you are one of these hopefuls, here&#8217;s how you can improve your chances of being accepted into the interview stage.</p>
<p><strong>Your future is important.</strong> Treat the application accordingly. Y Combinator is not a 3 month and out program. The 3 months is just the beginning. After that, you will continue to build your product, find investment, hire employees and create an actual business. This process will take years! This is a big decision and will change a large portion of your life, so don&#8217;t race through your application as if you&#8217;re trying for a summer job at McDonald&#8217;s. Spend the requisite time thinking through your idea, understanding what you are looking for out of YC, and preparing mentally for the long haul of startups. If you haven&#8217;t taken the preparation seriously, the application will show it, and you probably won&#8217;t get an interview.</p>
<p><strong>Start early.</strong> If you haven&#8217;t already begun your <a href="http://www.ycombinator.com/s2008.html" onclick="javascript:urchinTracker ('/outbound/article/www.ycombinator.com');">application</a>,  do so now! It&#8217;s due on April 2nd, and you probably should have started at least a month in advance. There&#8217;s certainly been cases where founders have been accepted with a last minute application, but why risk it? The longer you can think things through and iteratively improve your application, the better chance you&#8217;ve got.</p>
<p>In fact it&#8217;s good to approach the application the same way you approach startups: release early and iterate. In this case, releasing merely means writing an initial version of the application draft. Don&#8217;t try to be perfect on your first draft. Just get your thoughts down in order to avoid writers block. Trying to word everything perfectly will just slow you down and make every sentence feel subpar. Typically if you just sit down and type it out, it&#8217;ll end up being 90% perfect anyways, and then you can tweak it as necessary.</p>
<p><strong>Write alot, then erase alot.</strong> On some of the application&#8217;s questions, the 120 word limit can feeling very constraining. I would advise writing all your answers in as many words as it takes to fully answer the question. Then go back and cut whatever is not completely necessary in order to get it down to the limit. It&#8217;ll be painful, and you&#8217;ll need to remove sentences that you probably felt were critical, but ultimately it&#8217;ll leave you with a very succinct answer. It&#8217;ll be much cleaner and concise than if the constraint wasn&#8217;t there. This technique, rather than aiming for 120 word answers from the start, forces you to compress everything you&#8217;ve got into just a few powerful statements per answer.</p>
<p>This is actually very analogous to  Demo Day. Each startup gets just 7 minutes to convince investors that they may be worth investing in. You can imagine that 7 minutes is not very long to show your product, demo all the features, describe how you&#8217;ll make money and discuss your competitors. But that time constraint has a remarkable effect: it forces each startup to be extremely focused on getting their message across quickly and clearly: what they do, why they are different, and how they will make money. Talking to some of the investors afterwards, they were in awe at how focused and polished the pitches were. They are unlike all the typical convoluted presentations the investors see. The time constraint forces you to cut the fat, just as the word limit does on the application.</p>
<p><strong>Stand out. </strong>The YC partners will see 500-1000 of these applications. What will make them pause on yours and say &#8220;let&#8217;s find out a bit more about these guys/gals?&#8221; You need to identify what is unique about yourself and your accomplishments, and focus on these. Don&#8217;t water down your application. Find what stands out about you, and let that information stand out within the application.</p>
<p><strong>Be Honest</strong>. Some of the questions on the application might seem tricky, as if it&#8217;s a riddle that must be cleverly approached. But the questions aren&#8217;t tricks, so answer them honestly. People are accustomed to trick questions, probably due to their experience with college adminission essays or job interviews. But YC doesn&#8217;t operate like that.</p>
<p>One question from the application that many people assume is a trick is &#8220;what is the minimum you&#8217;d sell your company for at the end of YC.&#8221; There isn&#8217;t a particular answers that YC wants to see, so don&#8217;t over analyze it. Just be honest, whether it is $2 million or $20 million. I suspect PG and company just wants this to serve as an exercise for you and your co-founders, so that you get on the same page with each other regarding the hard questions that could split you up down the line.</p>
<p>If you&#8217;re fortunate enough to get into YC, you&#8217;ll realize quickly that the questions on the application are much like the YC partners themselves. There is just no BS involved. When they work with you on your startup, they don&#8217;t play games or sugar coat their opinions. They are straightforward and honest, and they expect the same from you. It&#8217;s really a shame this modus operandi feels so foreign.</p>
<p><strong>Be your own critic. </strong>This relates to being honest with yourself. I know that all founders consider their ideas their babies. But you can&#8217;t allow that emotional attachment cloud your perspective and prevent you from seeing your ideas&#8217; drawbacks and weaknesses. Look at your idea from the perspective of another founder, or a random person in middle America. Tear away all biases you have and force yourself to ask the tough questions: How is this really better than similar products? Will anyone actually want this? How will I keep a step ahead of the competition? Don&#8217;t fall in love with your idea too early. By finding the weaknesses, you can brainstorm solutions to them pro actively, and this will make it much more convincing on the application.</p>
<p><strong>Have a good team.</strong> This is probably the most important thing. You&#8217;re going to be competing with the best of the best for a spot in YC. Don&#8217;t go into this competition with subpar team members otherwise you have no chance! The YC partners see applications from the top technical talent in the world, so if you just load up your team with friends who you think it&#8217;d be fun to work with, your application will look weak in comparison. Each person on your team should be a superstar who adds obvious and unique value to your application through their credentials and achievements.</p>
<p>You&#8217;re going to go through alot of hard times in your startup. You need people who can weather the storm and forge ahead day after day. You&#8217;ll be wearing alot of hats and learning a hundred new things per day. Every person on your team needs to be hungry for knowledge and success.</p>
<p><strong>Conclusion.</strong> I&#8217;m not personally part of the decision making process, and I don&#8217;t have any inside information about how these decisions are made. But from observing how PG, et al operate, and from seeing what makes the YC founders group unique compared to other people our age, I&#8217;ve been able to infer how a successful application would be written.</p>
<p>So take another look at your application. Find what stands out, focus on that, be honest, trim the fat and cross your fingers! And my most important piece of advice<em>: whether YC accepts you for an interview or not, proceed with your startup regardless!</em></p>
]]></content:encoded>
			<wfw:commentRss>http://leavingcorporate.com/2008/03/24/how-to-get-accepted-for-a-y-combinator-interview/feed/</wfw:commentRss>
		</item>
		<item>
		<title>You weren&#8217;t meant to have a Boss</title>
		<link>http://leavingcorporate.com/2008/03/20/you-werent-meant-to-have-a-boss/</link>
		<comments>http://leavingcorporate.com/2008/03/20/you-werent-meant-to-have-a-boss/#comments</comments>
		<pubDate>Fri, 21 Mar 2008 01:41:22 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
		
		<category><![CDATA[Startups]]></category>

		<guid isPermaLink="false">http://leavingcorporate.com/2008/03/20/you-werent-meant-to-have-a-boss/</guid>
		<description><![CDATA[Paul Graham, our investor and the brains behind Y Combinator just wrote a great essay that really sums up my feelings about leaving corporate america and really goes with the theme of this blog.  Wanted to pass it along to our readers.
Check it out.
]]></description>
			<content:encoded><![CDATA[<p>Paul Graham, our investor and the brains behind Y Combinator just wrote a <a href="http://paulgraham.com/boss.html" title="You wern'et meant to have a boss" onclick="javascript:urchinTracker ('/outbound/article/paulgraham.com');">great essay</a> that really sums up my feelings about leaving corporate america and really goes with the theme of this blog.  Wanted to pass it along to our readers.</p>
<p><a href="http://paulgraham.com/boss.html" onclick="javascript:urchinTracker ('/outbound/article/paulgraham.com');">Check it out.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://leavingcorporate.com/2008/03/20/you-werent-meant-to-have-a-boss/feed/</wfw:commentRss>
		</item>
		<item>
		<title>8aweek article in &#8220;The Minnesota Daily&#8221;</title>
		<link>http://leavingcorporate.com/2008/03/07/8aweek-article-in-the-minnesota-daily/</link>
		<comments>http://leavingcorporate.com/2008/03/07/8aweek-article-in-the-minnesota-daily/#comments</comments>
		<pubDate>Fri, 07 Mar 2008 19:07:28 +0000</pubDate>
		<dc:creator>Zack</dc:creator>
		
		<category><![CDATA[8aweek]]></category>

		<guid isPermaLink="false">http://leavingcorporate.com/2008/03/07/8aweek-article-in-the-minnesota-daily/</guid>
		<description><![CDATA[8aweek is getting some press back home in Minnesota. Dave and I both attended the University of Minnesota, and today 8aweek is featured in the campus newspaper, The Minnesota Daily.
]]></description>
			<content:encoded><![CDATA[<p>8aweek is getting some press back home in Minnesota. Dave and I both attended the University of Minnesota, and today 8aweek <a href="http://www.mndaily.com/articles/2008/03/07/72166033" onclick="javascript:urchinTracker ('/outbound/article/www.mndaily.com');">is featured</a> in the campus newspaper, The Minnesota Daily.</p>
]]></content:encoded>
			<wfw:commentRss>http://leavingcorporate.com/2008/03/07/8aweek-article-in-the-minnesota-daily/feed/</wfw:commentRss>
		</item>
		<item>
		<title>8aweek and RescueTime</title>
		<link>http://leavingcorporate.com/2008/03/04/8aweek-and-rescuetime/</link>
		<comments>http://leavingcorporate.com/2008/03/04/8aweek-and-rescuetime/#comments</comments>
		<pubDate>Tue, 04 Mar 2008 17:42:09 +0000</pubDate>
		<dc:creator>Zack</dc:creator>
		
		<category><![CDATA[8aweek]]></category>

		<category><![CDATA[Y Combinator]]></category>

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

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

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

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

		<guid isPermaLink="false">http://leavingcorporate.com/2008/03/04/8aweek-and-rescuetime/</guid>
		<description><![CDATA[Fans of 8aweek may have heard of another company that helps you manage your time: RescueTime. If you&#8217;re a startup junkie you&#8217;ll also know that both 8aweek and RescueTime are funded in the winter &#8216;08 batch of Y Combinator &#8212; as Michael Arrington noted, &#8220;The products seem too close for comfort - I’m surprised Y [...]]]></description>
			<content:encoded><![CDATA[<p>Fans of <a href="http://8aweek.com" onclick="javascript:urchinTracker ('/outbound/article/8aweek.com');">8aweek</a> may have heard of another company that helps you manage your time: <a href="http://rescuetime.com" target="_blank" onclick="javascript:urchinTracker ('/outbound/article/rescuetime.com');">RescueTime</a>. If you&#8217;re a startup junkie you&#8217;ll also know that both 8aweek and RescueTime are funded in the winter &#8216;08 batch of Y Combinator &#8212; as <a href="http://www.techcrunch.com/2008/02/15/8aweek-to-help-you-kick-that-internet-time-wasting-addiction/" target="_blank" onclick="javascript:urchinTracker ('/outbound/article/www.techcrunch.com');">Michael Arrington noted</a>, &#8220;The products seem too close for comfort - I’m surprised Y Combinator is backing both of them.&#8221;</p>
<p>Why is Y Combinator funding both of these companies, does this create conflict, and are 8aweek and RescueTime really that similar? We get those questions alot, but we&#8217;re alot more comfortable with the situation than outsiders expect.</p>
<p>Arrington is right that it&#8217;s a bit curious that both 8aweek and RescueTime are backed by Y Combinator in the same funding cycle. But what makes this situation unique isn&#8217;t just that 8aweek and RescueTime are in the same space, but that there are very few other competitors in this space. In that sense, Y Combinator will come out with a solid foothold in this market. For YC it&#8217;s a great investment, as they will be a part of two different approaches in what we feel is a large, emerging market. Since this is such a new market, there is easily room for multiple companies pursuing different strategies, and certainly there will be more competitors in the future.</p>
<p>The RescueTime founders are great guys, and we chat with them every week at the YC dinners (and even swap some trade secrets). It&#8217;s hard to deny that we are competitors in a sense: we operate in a similar market! However, the degree to which we compete is much smaller than most people suspect.  In our discussions with Tony, Brian, and Joe of RescueTime, we&#8217;ve shared strategies, product roadmaps, infrastructure tips, and survey data. This is far from the Microsoft/Google relationship most people expect.</p>
<p>The ways in which these products differ, and will continue to strategically diverge, is most obvious when you examine the respective companies&#8217; tag lines:</p>
<p><strong> Rescuetime - Ridiculously Easy Time Management.</strong> RescueTime is a very polished and effective tool for managing your time. You can break down your computer usage by category, and slice &amp; dice the resulting data from every angle imaginable. This lets you discover how you spend your computer time each day, for instance to compare the amount of time you spend on web design to your blog writing. RescueTime also allows the ability to set goals and alerts to manage your time.</p>
<p><strong>8aweek - Save Time Online</strong>. 8aweek, on the other hand, is less about time <em>management</em> and more about time <em>saving</em>. 8aweek&#8217;s feature-set is distinctly focused on saving you time when you&#8217;re using the internet. Yes, it tracks habits and displays your usage in interactive and pretty graphs, but it does so from the aspect of identifying time wasting websites. You can then add the biggest time wasters to your restricted list in order to limit the amount of time you spend on them. The real value of 8aweek is not in simply observing your web usage, but changing your habits to make you more productive.</p>
<p>There is certainly overlap in our products&#8217; feature sets. Just as RescueTime&#8217;s goals and alerts extends into 8aweek&#8217;s core features, our habits tracking is similar to their base functionality. However, when you examine how these features are actually implemented, it&#8217;s clear that they uniquely support each products&#8217; core focus.</p>
<p>To a great extent, having overlapping products can provide each company with their own competitive advantage. We have a constant (or at least weekly) reminder to focus on the value our differentiation provides. That&#8217;s an important point for any business, but it&#8217;s also something that is often forgotten in the rush to bloat a product with features. We recognize the value a time saving toolbar brings that a desktop time management application cannot, and vice versa. This forces us to focus our development and marketing on our product&#8217;s unique value-add &#8212; those aspects which cannot be easily duplicated by our competition. This constant obsession with competitive advantages is what will make our product great. In the case of 8aweek and RescueTime, having a competitive advantage is not mutually exclusive - it&#8217;s beneficial for both of us.</p>
<p>As our respective products continue to evolve, the differences will become more defined and apparent.  The different approaches will manifest themselves in the subsequent feature sets. In fact, many Y Combinator founders already have installed both 8aweek and RescueTime, using them for separate reasons. And we&#8217;ll be rolling out an exciting 8aweek feature in the coming days that&#8217;ll provide a clear demonstration of just how different these products are, and will become.</p>
]]></content:encoded>
			<wfw:commentRss>http://leavingcorporate.com/2008/03/04/8aweek-and-rescuetime/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Session Based Load Balancing with HAproxy</title>
		<link>http://leavingcorporate.com/2008/03/03/session-based-load-balancing-with-haproxy/</link>
		<comments>http://leavingcorporate.com/2008/03/03/session-based-load-balancing-with-haproxy/#comments</comments>
		<pubDate>Tue, 04 Mar 2008 01:08:12 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
		
		<category><![CDATA[Deploying]]></category>

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

		<guid isPermaLink="false">http://leavingcorporate.com/2008/03/03/session-based-load-balancing-with-haproxy/</guid>
		<description><![CDATA[A friend is asking how to install HAproxy because I&#8217;d just done it three weeks ago, so I&#8217;m publishing my install notes, most of which I stole from another friend.
HAproxy is a pretty sweet tool but currently has little written about it so installation and configuration takes reading a large text manual.  Here though [...]]]></description>
			<content:encoded><![CDATA[<p>A friend is asking how to install HAproxy because I&#8217;d just done it three weeks ago, so I&#8217;m publishing my install notes, most of which I stole from another friend.</p>
<p>HAproxy is a pretty sweet tool but currently has little written about it so installation and configuration takes reading a large <a href="http://haproxy.1wt.eu/download/1.3/doc/configuration.txt" onclick="javascript:urchinTracker ('/outbound/article/haproxy.1wt.eu');">text manual</a>.  Here though is a basic setup that should work for most cases.</p>
<blockquote><p> mkdir /opt/haproxy<br />
cd /opt/haproxy</p>
<p>#Download latest version from http://haproxy.1wt.eu/download/1.3/bin/ e.g.<br />
wget http://haproxy.1wt.eu/download/1.3/bin/haproxy-1.3.14.2-pcre-40kses-splice-linux-i586.notstripped.gz  -O haproxy.gz</p>
<p>gunzip haproxy.gz<br />
chmod 700 haproxy</p></blockquote>
<p>Now you have HA proxy installed but need a config file.  Make a new file called /etc/haproxy.cfg and add the following contents.</p>
<blockquote><p> global<br />
log 127.0.0.1   daemon debug<br />
maxconn 4096</p>
<p>pidfile /var/run/haproxy.pid<br />
daemon<br />
defaults<br />
log     global<br />
mode    http</p>
<p>option  dontlognull<br />
retries 3<br />
option redispatch<br />
maxconn 2000<br />
contimeout      5000<br />
clitimeout      50000<br />
srvtimeout      50000<br />
listen webfarm &lt;HAproxy host ip&gt;:80<br />
mode http<br />
cookie MYSITECOOKIE insert nocache<br />
balance roundrobin<br />
server app1 &lt;server1 ip&gt;:8080 cookie app1inst1 check<br />
server app2 &lt;server2 ip&gt;:8080 cookie app2inst2 check<br />
server app3 &lt;server3 ip&gt;:8080 cookie app3inst3 check</p></blockquote>
<p>This config file sets up session based balancing; meaning HAproxy will inject its own cookie into each person who visits the load balancer.  Then every requests the person with that cookie makes from that point on will get directed to the same server!  This is most important for apps with content heavily based around user information.  Without it its really tough to make use of local caching.</p>
<p>Make sure you change all of the parameters inside &lt;&gt; brackets.  You can add or remove servers by editing the &#8220;server&#8221; commands.  I think you can see the trend there :).  Also you&#8217;ll want to change the MYSITECOOKIE, which is the name of the cookie that HAproxy will inject and the variables app* and app*inst* are made up.  You can call them whatever you want.</p>
<p>You should also notice that in this setup HAproxy is listening to port 80 ( &lt;HAproxy host ip&gt;:80 ) and that its redirecting to port 8080 on the re-direct servers (&lt;server1 ip&gt;:8080 ).  This is because often one of the re-direct servers is usually the same as the HAproxy host.  Also its not a good idea to have random IP&#8217;s that aren&#8217;t directly linked to your domain to be hosting your app on port 80.</p>
<p>So, next we have to change your app instance to listen to port 8080.  I&#8217;ve only done this with Apache2 and will only go through those steps. Its very simple and is probably as simple with other servers.  You need to edit your ports.conf (often found in /etc/apache2/ports.conf ) and  add, or change the following line at the top.</p>
<blockquote><p> #ports.conf<br />
Listen 8080</p></blockquote>
<p>Save it, restart Apache2, and that&#8217;s it.</p>
<p>Lastly here are the directions for running the proxy.  You could bundle these in a script but I use them so rarely I didn&#8217;t.  There is one command for kicking off the proxy, another for verifying a new configuration file if you make an update (for when you add or remove a server) and finally a third that will dynamically reload your new configuration.</p>
<blockquote><p> First time start:<br />
/opt/haproxy/haproxy -f /etc/haproxy.cfg -p /var/run/haproxy.pid</p>
<p>Verify a valid configuration:<br />
/opt/haproxy/haproxy -f /etc/haproxy.cfg -c</p>
<p>Dynamically reload configuration:<br />
/bin/sh -c &#8220;/opt/haproxy/haproxy -f /etc/haproxy.cfg -p /var/run/haproxy.pid -st $(&lt;/var/run/haproxy.pid)&#8221;</p></blockquote>
<p>I&#8217;m no expert. Like I said I got most of this from my friend Justin (Thanks Justin!).   But it was a pain sifting through the manual and I thought others might benefit from these notes.  For more information visit the <a href="http://haproxy.1wt.eu/#docs" title="HAproxy" onclick="javascript:urchinTracker ('/outbound/article/haproxy.1wt.eu');">HAproxy docs</a>.</p>
<p><em>Note: Interestingly <a href="http://blog.emmettshear.com/post/2008/03/03/Dont-use-Pound-for-load-balancing" title="Don't use Pound" onclick="javascript:urchinTracker ('/outbound/article/blog.emmettshear.com');">this post</a> by <a href="http://justin.tv" title="Justin TV" onclick="javascript:urchinTracker ('/outbound/article/justin.tv');">Justin.tv</a> promoting <a href="http://wiki.codemongers.com/Main" title="Nginx" onclick="javascript:urchinTracker ('/outbound/article/wiki.codemongers.com');">Nginx</a> over <a href="http://www.apsis.ch/pound/" title="Pound" onclick="javascript:urchinTracker ('/outbound/article/www.apsis.ch');">Pound</a> just made it to the top of <a href="http://news.ycombinator.com" title="Hacker News" onclick="javascript:urchinTracker ('/outbound/article/news.ycombinator.com');">Hacker News</a> as I was finishing.  I want to add my recommendation of HAproxy.  I also tried Nginx but ended up going with HAproxy.  There is certainly more articles on using Nginx but it is more difficult to set up session based balancing.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://leavingcorporate.com/2008/03/03/session-based-load-balancing-with-haproxy/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Keeping up with the Zenters</title>
		<link>http://leavingcorporate.com/2008/03/02/keeping-up-with-the-zenters/</link>
		<comments>http://leavingcorporate.com/2008/03/02/keeping-up-with-the-zenters/#comments</comments>
		<pubDate>Sun, 02 Mar 2008 23:54:52 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
		
		<category><![CDATA[8aweek]]></category>

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

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

		<category><![CDATA[Y Combinator]]></category>

		<guid isPermaLink="false">http://leavingcorporate.com/2008/03/02/keeping-up-with-the-zenters/</guid>
		<description><![CDATA[I just got around to reading the Newsweek article on YC.  In it Paul is quoted referring to the Zenters &#8220;These guys have written 40,000 lines of code in three months!&#8221;
The Zenters were just a couple of guys with some work experience similar to Zack and I.  But they must have had some [...]]]></description>
			<content:encoded><![CDATA[<p>I just got around to reading the <a href="http://www.newsweek.com/id/34734/page/1" onclick="javascript:urchinTracker ('/outbound/article/www.newsweek.com');">Newsweek article on YC</a>.  In it Paul is quoted referring to the Zenters &#8220;These guys have written 40,000 lines of code in three months!&#8221;</p>
<p>The Zenters were just a couple of guys with some work experience similar to Zack and I.  But they must have had some serious skill since they were apparently kicking Google&#8217;s butt at the Powerpoint game, or at least were offering some pretty novel aspects, because they were acquired just 6 months after they started YC.</p>
<p>Lines of code is far from and end-all indicator of startup success.  Especially when ignoring the little things like how much code was re-written/discarded, which languages/frameworks the code is in, comments, spacing between lines,  the amazing roundness of the numbers 40,000 and 3 months, etc&#8230;.  But there seemed to be a high correlation with the Zenters,  and its something at least so I decided to see how we stack up.</p>
<p>If your files are all in one directory you can use a simple &#8220;cat * | wc -l&#8221;.  We have a pretty big maze of directories however so I wrote this quick <a href="http://leavingcorporate.com/files/line_cnt.py" title="line_cnt.py" >python script</a> to walk the directory structure and find out for me.  I wrote it so it&#8217;d be relatively easy for others to use.  There are two variables at the top of the file where you can include directory names to ignore and characters in files that will exclude them from being counted.  This way it won&#8217;t count the dirs with code we didn&#8217;t write, compiled files, svn repositories, images, copied files that emacs leaves behind, etc.</p>
<p>The results: 20,010 lines of code in the 53 days we&#8217;ve been working.  Yes, I included the code in this script to break 20,000.  Assuming we keep up our pace for the next 38 days (which might be unlikely due to demo day and investors) we&#8217;ll be at 34,511 lines for the 3 months.  Crap!  Just short!</p>
<p>Also, assuming we keep up that pace, I&#8217;ll be dead.  A fact that Zack is disturbingly unconcerned about.</p>
<p>But kudos to the Zenters.  You guys rock.</p>
<p>You can test yourselves to see if you can keep up with the Zenters.  <a href="http://leavingcorporate.com/files/line_cnt.py" title="line_cnt.py" >Download</a> the script into the root dir of your source files.  Open it up and edit the excluded_dirs and exclude_files_containing variables for your needs.  Then run it: python line_cnt.py</p>
]]></content:encoded>
			<wfw:commentRss>http://leavingcorporate.com/2008/03/02/keeping-up-with-the-zenters/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
