<?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>Test Facebook</title>
	<atom:link href="http://www.testfacebook.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.testfacebook.com</link>
	<description>The community for testing Facebook applications</description>
	<lastBuildDate>Wed, 28 Jul 2010 16:21:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Zen and the Art of Facebook Application Load Testing (Part 2)</title>
		<link>http://www.testfacebook.com/2010/07/28/zen-and-the-art-of-facebook-application-load-testing-part-2/</link>
		<comments>http://www.testfacebook.com/2010/07/28/zen-and-the-art-of-facebook-application-load-testing-part-2/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 16:18:18 +0000</pubDate>
		<dc:creator>Sander Smith</dc:creator>
				<category><![CDATA[Methodology]]></category>

		<guid isPermaLink="false">http://www.testfacebook.com/?p=385</guid>
		<description><![CDATA[In the last post, we discussed Robert Pirsig&#8217;s seminal book Zen and the Art of Motorcycle Maintenance and its relation to application load testing. In short, Pirsig discusses that any experiment (or test run in our case) is only a failure when nothing is learned from the outcome. In this post, we&#8217;ll talk about some [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-415" style="margin: 10px;" title="PersigCycle" src="http://www.testfacebook.com/blog/wp-content/uploads/2010/07/PersigCycle.jpg" alt="PersigCycle" width="200" height="235" />In the<a href="http://www.testfacebook.com/2010/07/23/zen-and-the-art-of-facebook-application-load-testing-part-1/" target="_blank"> last post</a>, we discussed Robert Pirsig&#8217;s seminal book <a href="http://www.amazon.com/Zen-Art-Motorcycle-Maintenance-Inquiry/dp/0553277472" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.amazon.com/Zen-Art-Motorcycle-Maintenance-Inquiry/dp/0553277472?referer=');"><em>Zen and the Art of Motorcycle Maintenance</em> </a>and its relation to application load testing. In short, Pirsig discusses that any experiment (or test run in our case) is only a failure when nothing is learned from the outcome. In this post, we&#8217;ll talk about some concrete steps to avoid falling into this trap. We&#8217;ve successfully used this approach many times in the past when load testing Facebook apps, and hope that you&#8217;ll find it useful.</p>
<h3>Before Testing</h3>
<p>Before running any tests, you&#8217;ll need to set some goals. The first and most important goal is the number of simultaneous users the application must be able to service at any time. We&#8217;ll call this <em>SimulGoal</em>. If your application is already deployed, you can get a sense of this number from the current statistics. Otherwise, you need to do a little magic mixed with some marketing projections. Every application is going to be different, and there are going to be loads of variables to determine the right number. This is an interesting topic in itself that we hope to cover sometime in the future, but one very rough rule of thumb that you may use is that for an application with a million Monthly Active Users (MAU) you&#8217;ll need to be able to service a couple thousand simultaneously (YMMV!!).</p>
<p>The next goal you&#8217;ll need to define is the number of simultaneous users that can be serviced by a single application server, we&#8217;ll call this <em>ServerGoal</em>. Coming up with <em>ServerGoal</em> can, and has been be done lots of different ways:</p>
<ul>
<li>Bottom up: Figure out the computational power of a single application server. Then, test and determine how much computational power is necessary to process a single transaction. Do some arithmetic, and you&#8217;ve got the number.</li>
<li>Top down: Find out your budget for server equipment, and determine the number of servers you&#8217;ll be able to run for this application. Divide <em>SimulGoal </em>by this number to determine <em>ServerGoal.</em> This may not have any basis in reality, but it&#8217;s a start.</li>
<li>Typical: Pull a number out of one of your body&#8217;s orifices. Note: this is the method that most people use, so don&#8217;t be ashamed to admit it.</li>
</ul>
<p>Note that <em>ServerGoal</em> is a &#8220;soft&#8221; goal that can and should change as more is learned about how the application responds under load.</p>
<p>Okay, now that you&#8217;ve set some goals, let&#8217;s start testing:</p>
<h3>Test #1</h3>
<p>The first thing you&#8217;ll need to decide for your first test is how many virtual users it should contain. Of course your instinct is going to tell you to try and run <em>SimulGoal </em>users through a full deployment infrastructure. Resist this instinct as it is a very bad idea. Why? Well, let&#8217;s look at the situation through a <em>Zen</em> lens. You&#8217;re not really testing any hypothesis. When you run the test, it is sure to fail (because the first one <strong>always</strong> fails). When it does fail, what have you learned? Nothing &#8211; the test has ended as a true failure and you&#8217;ve wasted your time.</p>
<p>A much better approach is this: Define a &#8220;Minimal Viable Server Infrastructure&#8221; (MVSI) which is the smallest infrastructure you can run and still service requests. Often this simply means a single application server with an optional database server if necessary. If you typically use a load balancer, throw one into the mix.</p>
<p>Now, run a test against this MVSI with <em>ServerGoal</em>+(a few extra) virtual users. Our hypothesis will be that when the test reaches <em>ServerGoal</em> users, the application infrastructure will begin to fail. When the test completes, you&#8217;ll definitely have learned something, namely <em>ServerReal</em> which is the actual number of simultaneous users a single server can support. What to do next will be determined by the state you&#8217;re in:</p>
<h4>ServerReal &lt; ServerGoal</h4>
<p>This is probably where you&#8217;re going to be. You&#8217;ll need to rethink how you came up with <em>ServerGoal</em> (e.g. did you use the orifice method?) and perhaps modify it. Maybe <em>ServerReal</em> really is the limit that your application can handle. If you&#8217;re okay with that, set <em>ServerGoal = ServerReal</em> and continue onto Test #2.</p>
<p>However, if you&#8217;re thinking &#8220;Something&#8217;s wrong &#8211; this server must be able to handle more users than that&#8221;, then you&#8217;re in for some work. Look through the server logs and try to find some evidence of something the application is doing that isn&#8217;t efficient. Look through the code and see if you can find it there. Look at how the servers that run the application are configured, and see if they can be tweaked to get better performance. In short. come up with some idea for how to squeeze more performance out of the system.</p>
<p>Once you do all of that, you now have a hypothesis for how to improve performance. Test this hypothesis by re-running Test #1 and see if anything gets better. Continue this iteration cycle until you get to a value of <em>ServerGoal</em> that just can&#8217;t get any better.</p>
<h4>ServerReal &gt; ServerGoal</h4>
<p>Wow, you&#8217;re in really good shape. First, go talk to your developers and thank them for writing such a great application. Next, reset <em>ServerGoal = ServerReal,</em> and if you&#8217;re satisfied with that, continue to Test #2, otherwise iterate and try to get even better.</p>
<p>In the next post, we&#8217;ll talk about what happens in Test #2 where we&#8217;ll determine just how scalable the application is.</p>
<p class="getsocial" style="text-align:left;"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1005.png" alt="" /><a title="Add to Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://www.testfacebook.com/2010/07/28/zen-and-the-art-of-facebook-application-load-testing-part-2" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_//www.testfacebook.com/2010/07/28/zen-and-the-art-of-facebook-application-load-testing-part-2&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1015.png" alt="Add to Facebook" /></a><a title="Add to Digg" rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F28%2Fzen-and-the-art-of-facebook-application-load-testing-part-2&amp;title=Zen%20and%20the%20Art%20of%20Facebook%20Application%20Load%20Testing%20(Par..." target="_blank" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?phase=2_amp_url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F28_2Fzen-and-the-art-of-facebook-application-load-testing-part-2_amp_title=Zen_20and_20the_20Art_20of_20Facebook_20Application_20Load_20Testing_20_Par...&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1025.png" alt="Add to Digg" /></a><a title="Add to Del.icio.us" rel="nofollow" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F28%2Fzen-and-the-art-of-facebook-application-load-testing-part-2&amp;title=Zen%20and%20the%20Art%20of%20Facebook%20Application%20Load%20Testing%20(Part%202)" target="_blank" onclick="pageTracker._trackPageview('/outgoing/del.icio.us/post?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F28_2Fzen-and-the-art-of-facebook-application-load-testing-part-2_amp_title=Zen_20and_20the_20Art_20of_20Facebook_20Application_20Load_20Testing_20_Part_202&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1035.png" alt="Add to Del.icio.us" /></a><a title="Add to Stumbleupon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F28%2Fzen-and-the-art-of-facebook-application-load-testing-part-2&amp;title=Zen%20and%20the%20Art%20of%20Facebook%20Application%20Load%20Testing%20(Part%202)" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.stumbleupon.com/submit?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F28_2Fzen-and-the-art-of-facebook-application-load-testing-part-2_amp_title=Zen_20and_20the_20Art_20of_20Facebook_20Application_20Load_20Testing_20_Part_202&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1045.png" alt="Add to Stumbleupon" /></a><a title="Add to Reddit" rel="nofollow" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F28%2Fzen-and-the-art-of-facebook-application-load-testing-part-2&amp;title=Zen%20and%20the%20Art%20of%20Facebook%20Application%20Load%20Testing%20(Part%202)" target="_blank" onclick="pageTracker._trackPageview('/outgoing/reddit.com/submit?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F28_2Fzen-and-the-art-of-facebook-application-load-testing-part-2_amp_title=Zen_20and_20the_20Art_20of_20Facebook_20Application_20Load_20Testing_20_Part_202&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1055.png" alt="Add to Reddit" /></a><a title="Add to Blinklist" rel="nofollow" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Description=&amp;Url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F28%2Fzen-and-the-art-of-facebook-application-load-testing-part-2&amp;Title=Zen%20and%20the%20Art%20of%20Facebook%20Application%20Load%20Testing%20(Part%202)" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.blinklist.com/index.php?Action=Blink/addblink.php_amp_Description=_amp_Url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F28_2Fzen-and-the-art-of-facebook-application-load-testing-part-2_amp_Title=Zen_20and_20the_20Art_20of_20Facebook_20Application_20Load_20Testing_20_Part_202&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1065.png" alt="Add to Blinklist" /></a><a title="Add to Twitter" rel="nofollow" href="http://twitter.com/home/?status=Zen%20and%20the%20Art%20of%20Facebook%20Applicat...+%40+http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F28%2Fzen-and-the-art-of-facebook-application-load-testing-part-2" target="_blank" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=Zen_20and_20the_20Art_20of_20Facebook_20Applicat...+_40+http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F28_2Fzen-and-the-art-of-facebook-application-load-testing-part-2&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1075.png" alt="Add to Twitter" /></a><a title="Add to Technorati" rel="nofollow" href="http://www.technorati.com/faves?add=http://www.testfacebook.com/2010/07/28/zen-and-the-art-of-facebook-application-load-testing-part-2" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.technorati.com/faves?add=http_//www.testfacebook.com/2010/07/28/zen-and-the-art-of-facebook-application-load-testing-part-2&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1085.png" alt="Add to Technorati" /></a><a title="Add to Yahoo Buzz" rel="nofollow" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F28%2Fzen-and-the-art-of-facebook-application-load-testing-part-2&amp;headline=Zen%20and%20the%20Art%20of%20Facebook%20Application%20Load%20Testing%20(Part%202)" target="_blank" onclick="pageTracker._trackPageview('/outgoing/buzz.yahoo.com/buzz?targetUrl=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F28_2Fzen-and-the-art-of-facebook-application-load-testing-part-2_amp_headline=Zen_20and_20the_20Art_20of_20Facebook_20Application_20Load_20Testing_20_Part_202&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1095.png" alt="Add to Yahoo Buzz" /></a><a title="Add to Newsvine" rel="nofollow" href="http://www.newsvine.com/_wine/save?u=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F28%2Fzen-and-the-art-of-facebook-application-load-testing-part-2&amp;h=Zen%20and%20the%20Art%20of%20Facebook%20Application%20Load%20Testing%20(Part%202)" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.newsvine.com/_wine/save?u=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F28_2Fzen-and-the-art-of-facebook-application-load-testing-part-2_amp_h=Zen_20and_20the_20Art_20of_20Facebook_20Application_20Load_20Testing_20_Part_202&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1105.png" alt="Add to Newsvine" /></a><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1115.png" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.testfacebook.com/2010/07/28/zen-and-the-art-of-facebook-application-load-testing-part-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Zen and the Art of Facebook Application Load Testing (Part 1)</title>
		<link>http://www.testfacebook.com/2010/07/23/zen-and-the-art-of-facebook-application-load-testing-part-1/</link>
		<comments>http://www.testfacebook.com/2010/07/23/zen-and-the-art-of-facebook-application-load-testing-part-1/#comments</comments>
		<pubDate>Fri, 23 Jul 2010 15:17:46 +0000</pubDate>
		<dc:creator>Sander Smith</dc:creator>
				<category><![CDATA[Methodology]]></category>

		<guid isPermaLink="false">http://www.testfacebook.com/?p=335</guid>
		<description><![CDATA[Many years ago when I was an undergrad in college, I had lots of pre-med friends who took Biochemistry. One of their assigned texts was Robert Pirsig&#8217;s Zen and the Art of Motorcycle Maintenance, something that didn&#8217;t make any sense to me at the time. It was only several years later after I read the book [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-339" style="margin: 10px;" title="Zen_motorcycle" src="http://www.testfacebook.com/blog/wp-content/uploads/2010/07/Zen_motorcycle1.jpg" alt="Zen_motorcycle" width="150" height="231" />Many years ago when I was an undergrad in college, I had lots of pre-med friends who took Biochemistry. One of their assigned texts was Robert Pirsig&#8217;s <span id="btAsinTitle"><a href="http://www.amazon.com/Zen-Art-Motorcycle-Maintenance-Inquiry/dp/0553277472" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.amazon.com/Zen-Art-Motorcycle-Maintenance-Inquiry/dp/0553277472?referer=');"><em>Zen and the Art of Motorcycle Maintenance</em></a>, something that didn&#8217;t make any sense to me at the time. It was only several years later after I read the book for myself that I understood why this book should be assigned to budding scientists. </span></p>
<p><span><em>Zen</em> tells the story of a motorcycle trip, but at its core, is really about the search for the meaning of quality. It also contains some great discussions about the Scientific Method. You remember the <a href="http://en.wikipedia.org/wiki/Scientific_method" target="_blank" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/Scientific_method?referer=');">Scientific Method</a>, that process you learned in the seventh grade that you didn&#8217;t see any use for it. Well, it turns out that this process has loads of meaning for software testing, and it&#8217;s worth looking into.</span></p>
<p><span>For me, the most insightful passage of the whole book is this:</span></p>
<p style="padding-left: 30px;"><span><em>The TV scientist who mutters sadly, &#8220;The experiment is a failure; we have failed to achieve what we had hoped for,&#8221; is suffering mainly from a bad scriptwriter. An experiment is never a failure solely because it fails to achieve predicted results. An experiment is a failure only when it also fails adequately to test the hypothesis in question, when the data it produces don&#8217;t prove anything one way or another.</em></span></p>
<p><span>What Pirsig is really getting at here can be applied to software testing, where each test that you run is (or really should be) an experiment. When viewed this way, Pirsig&#8217;s words have real meaning.</span><span> Every test that you run should have a purpose, which is, to test a hypothesis. You should be able to predict the results of the test before you run it, and most importantly, you should always learn something  from the outcome of a test regardless of the results.</span></p>
<p><span>Software testing, especially load testing is pretty resource intensive. Each test usually requires someone to run the test, someone to run the computing infrastructure, perhaps a DBA to watch the database (often the first thing to break), a developer or two, and perhaps a few others depending on the application. You need a deployment-quality infrastructure to run the application under test, and a much larger infrastructure to run the load testing tool. Beforehand, you need plenty of planning, and afterwards you need some time to analyze the data. All of this needs coordination, and most importantly time. In short, running a single load test is a fairly complex thing to do, and is pretty expensive. Expensive, not in terms of money, but in time, schedule and focus.</span></p>
<p><span>And that&#8217;s where <em>Zen</em> comes in. Before you invest that amount of time and effort into running your test, it&#8217;s critically important to ensure that you don&#8217;t end up like that TV scientist. A test where you don&#8217;t learn anything afterwards is a waste. Since load testing is often the last thing done before deployment, it is really important not to be wasteful, and to always complete a test cycle knowing more than when you started.</span></p>
<p><span>In the next post, we&#8217;ll discuss some concrete strategies you can take to plan your own load tests.</span></p>
<p class="getsocial" style="text-align:left;"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1001.png" alt="" /><a title="Add to Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://www.testfacebook.com/2010/07/23/zen-and-the-art-of-facebook-application-load-testing-part-1" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_//www.testfacebook.com/2010/07/23/zen-and-the-art-of-facebook-application-load-testing-part-1&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1011.png" alt="Add to Facebook" /></a><a title="Add to Digg" rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F23%2Fzen-and-the-art-of-facebook-application-load-testing-part-1&amp;title=Zen%20and%20the%20Art%20of%20Facebook%20Application%20Load%20Testing%20(Par..." target="_blank" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?phase=2_amp_url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F23_2Fzen-and-the-art-of-facebook-application-load-testing-part-1_amp_title=Zen_20and_20the_20Art_20of_20Facebook_20Application_20Load_20Testing_20_Par...&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1021.png" alt="Add to Digg" /></a><a title="Add to Del.icio.us" rel="nofollow" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F23%2Fzen-and-the-art-of-facebook-application-load-testing-part-1&amp;title=Zen%20and%20the%20Art%20of%20Facebook%20Application%20Load%20Testing%20(Part%201)" target="_blank" onclick="pageTracker._trackPageview('/outgoing/del.icio.us/post?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F23_2Fzen-and-the-art-of-facebook-application-load-testing-part-1_amp_title=Zen_20and_20the_20Art_20of_20Facebook_20Application_20Load_20Testing_20_Part_201&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1031.png" alt="Add to Del.icio.us" /></a><a title="Add to Stumbleupon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F23%2Fzen-and-the-art-of-facebook-application-load-testing-part-1&amp;title=Zen%20and%20the%20Art%20of%20Facebook%20Application%20Load%20Testing%20(Part%201)" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.stumbleupon.com/submit?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F23_2Fzen-and-the-art-of-facebook-application-load-testing-part-1_amp_title=Zen_20and_20the_20Art_20of_20Facebook_20Application_20Load_20Testing_20_Part_201&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1041.png" alt="Add to Stumbleupon" /></a><a title="Add to Reddit" rel="nofollow" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F23%2Fzen-and-the-art-of-facebook-application-load-testing-part-1&amp;title=Zen%20and%20the%20Art%20of%20Facebook%20Application%20Load%20Testing%20(Part%201)" target="_blank" onclick="pageTracker._trackPageview('/outgoing/reddit.com/submit?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F23_2Fzen-and-the-art-of-facebook-application-load-testing-part-1_amp_title=Zen_20and_20the_20Art_20of_20Facebook_20Application_20Load_20Testing_20_Part_201&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1051.png" alt="Add to Reddit" /></a><a title="Add to Blinklist" rel="nofollow" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Description=&amp;Url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F23%2Fzen-and-the-art-of-facebook-application-load-testing-part-1&amp;Title=Zen%20and%20the%20Art%20of%20Facebook%20Application%20Load%20Testing%20(Part%201)" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.blinklist.com/index.php?Action=Blink/addblink.php_amp_Description=_amp_Url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F23_2Fzen-and-the-art-of-facebook-application-load-testing-part-1_amp_Title=Zen_20and_20the_20Art_20of_20Facebook_20Application_20Load_20Testing_20_Part_201&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1061.png" alt="Add to Blinklist" /></a><a title="Add to Twitter" rel="nofollow" href="http://twitter.com/home/?status=Zen%20and%20the%20Art%20of%20Facebook%20Applicat...+%40+http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F23%2Fzen-and-the-art-of-facebook-application-load-testing-part-1" target="_blank" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=Zen_20and_20the_20Art_20of_20Facebook_20Applicat...+_40+http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F23_2Fzen-and-the-art-of-facebook-application-load-testing-part-1&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1071.png" alt="Add to Twitter" /></a><a title="Add to Technorati" rel="nofollow" href="http://www.technorati.com/faves?add=http://www.testfacebook.com/2010/07/23/zen-and-the-art-of-facebook-application-load-testing-part-1" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.technorati.com/faves?add=http_//www.testfacebook.com/2010/07/23/zen-and-the-art-of-facebook-application-load-testing-part-1&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1081.png" alt="Add to Technorati" /></a><a title="Add to Yahoo Buzz" rel="nofollow" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F23%2Fzen-and-the-art-of-facebook-application-load-testing-part-1&amp;headline=Zen%20and%20the%20Art%20of%20Facebook%20Application%20Load%20Testing%20(Part%201)" target="_blank" onclick="pageTracker._trackPageview('/outgoing/buzz.yahoo.com/buzz?targetUrl=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F23_2Fzen-and-the-art-of-facebook-application-load-testing-part-1_amp_headline=Zen_20and_20the_20Art_20of_20Facebook_20Application_20Load_20Testing_20_Part_201&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1091.png" alt="Add to Yahoo Buzz" /></a><a title="Add to Newsvine" rel="nofollow" href="http://www.newsvine.com/_wine/save?u=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F23%2Fzen-and-the-art-of-facebook-application-load-testing-part-1&amp;h=Zen%20and%20the%20Art%20of%20Facebook%20Application%20Load%20Testing%20(Part%201)" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.newsvine.com/_wine/save?u=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F23_2Fzen-and-the-art-of-facebook-application-load-testing-part-1_amp_h=Zen_20and_20the_20Art_20of_20Facebook_20Application_20Load_20Testing_20_Part_201&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1101.png" alt="Add to Newsvine" /></a><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1111.png" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.testfacebook.com/2010/07/23/zen-and-the-art-of-facebook-application-load-testing-part-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Load Test your Facebook Application!!</title>
		<link>http://www.testfacebook.com/2010/07/22/load-test-your-facebook-application/</link>
		<comments>http://www.testfacebook.com/2010/07/22/load-test-your-facebook-application/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 13:08:17 +0000</pubDate>
		<dc:creator>Sander Smith</dc:creator>
				<category><![CDATA[FriendRunner]]></category>
		<category><![CDATA[Load Testing]]></category>
		<category><![CDATA[Testing tools]]></category>
		<category><![CDATA[Facebook]]></category>

		<guid isPermaLink="false">http://www.testfacebook.com/?p=437</guid>
		<description><![CDATA[Once again, the need to load test your Facebook application before deployment has been proven out in the wild. Another company has seen their application crash and burn under a load that it either wasn&#8217;t expecting, or unable to deal with. The interesting part of this story, which seems to get told over and over, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-445" style="margin: 20px;" title="willms fans FINAL.JPG" src="http://www.testfacebook.com/blog/wp-content/uploads/2010/07/bieberfans.jpg" alt="willms fans FINAL.JPG" width="175" height="226" />Once again, the need to load test your Facebook application before deployment has been proven out in the wild. Another company has seen their application crash and burn under a load that it either wasn&#8217;t expecting, or unable to deal with. The interesting part of this story, which seems to get told over and over, is the company that was the victim of the crash and the source of the load.</p>
<p>In this case, the application was Facebook&#8217;s newly released <a href="http://stories.facebook.com/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/stories.facebook.com/?referer=');">Facebook Stories </a>application. This application allows users to tell the story about how they got onto Facebook and how it changed their life. The application became overwhelmed and eventually crashed due to the load placed on it by &#8230;</p>
<p>&#8230; rabid Justin Bieber fans</p>
<p>That&#8217;s right, I just wrote the most unlikely string of words that can show up in a blog about technology. The crash was reported by Justin himself, ironically on Twitter.</p>
<p><img class="aligncenter size-full wp-image-448" title="justin-bieber-tweet" src="http://www.testfacebook.com/blog/wp-content/uploads/2010/07/justin-bieber-tweet.jpg" alt="justin-bieber-tweet" width="400" height="276" /></p>
<p> Kids, don&#8217;t let this happen to your application. Before deployment, load test it with a tool like <a href="http://www.friendrunner.com/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.friendrunner.com/?referer=');">FriendRunner</a>.</p>
<h2><span style="color: #ff0000;">Update</span></h2>
<p>Ahhh geez! Okay, this will teach me to trust Justin Bieber. <a href="http://www.allfacebook.com/2010/07/justin-bieber-facebook-page/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.allfacebook.com/2010/07/justin-bieber-facebook-page/?referer=');">All Facebook </a>is now reporting that the rabid Justin Bieber fans never crashed the Facebook Stories app. Instead, he was asked to remove the tab for the application from his page because he was using it to solicit stories about himself instead of using it for the purpose it was intended for (How has Facebook changed <strong>your</strong> life?).</p>
<p>Okay, I was fooled, but the original story did have a believable provenance. I originally heard it from Randi Zuckerberg, who after all is the sister of &#8230;. She got it from All Facebook, which is a reliable source of great FB information.</p>
<p>I apologize to you dear reader, and will now make the commitment that this blog will never <strong>ever </strong>disseminate any more news about Justin Bieber, regardless of what it is or where it comes from.</p>
<p class="getsocial" style="text-align:left;"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1002.png" alt="" /><a title="Add to Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://www.testfacebook.com/2010/07/22/load-test-your-facebook-application" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_//www.testfacebook.com/2010/07/22/load-test-your-facebook-application&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1012.png" alt="Add to Facebook" /></a><a title="Add to Digg" rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F22%2Fload-test-your-facebook-application&amp;title=Load%20Test%20your%20Facebook%20Application!!" target="_blank" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?phase=2_amp_url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F22_2Fload-test-your-facebook-application_amp_title=Load_20Test_20your_20Facebook_20Application&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1022.png" alt="Add to Digg" /></a><a title="Add to Del.icio.us" rel="nofollow" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F22%2Fload-test-your-facebook-application&amp;title=Load%20Test%20your%20Facebook%20Application!!" target="_blank" onclick="pageTracker._trackPageview('/outgoing/del.icio.us/post?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F22_2Fload-test-your-facebook-application_amp_title=Load_20Test_20your_20Facebook_20Application&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1032.png" alt="Add to Del.icio.us" /></a><a title="Add to Stumbleupon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F22%2Fload-test-your-facebook-application&amp;title=Load%20Test%20your%20Facebook%20Application!!" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.stumbleupon.com/submit?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F22_2Fload-test-your-facebook-application_amp_title=Load_20Test_20your_20Facebook_20Application&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1042.png" alt="Add to Stumbleupon" /></a><a title="Add to Reddit" rel="nofollow" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F22%2Fload-test-your-facebook-application&amp;title=Load%20Test%20your%20Facebook%20Application!!" target="_blank" onclick="pageTracker._trackPageview('/outgoing/reddit.com/submit?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F22_2Fload-test-your-facebook-application_amp_title=Load_20Test_20your_20Facebook_20Application&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1052.png" alt="Add to Reddit" /></a><a title="Add to Blinklist" rel="nofollow" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Description=&amp;Url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F22%2Fload-test-your-facebook-application&amp;Title=Load%20Test%20your%20Facebook%20Application!!" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.blinklist.com/index.php?Action=Blink/addblink.php_amp_Description=_amp_Url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F22_2Fload-test-your-facebook-application_amp_Title=Load_20Test_20your_20Facebook_20Application&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1062.png" alt="Add to Blinklist" /></a><a title="Add to Twitter" rel="nofollow" href="http://twitter.com/home/?status=Load%20Test%20your%20Facebook%20Application!!+%40+http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F22%2Fload-test-your-facebook-application" target="_blank" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=Load_20Test_20your_20Facebook_20Application_+_40+http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F22_2Fload-test-your-facebook-application&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1072.png" alt="Add to Twitter" /></a><a title="Add to Technorati" rel="nofollow" href="http://www.technorati.com/faves?add=http://www.testfacebook.com/2010/07/22/load-test-your-facebook-application" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.technorati.com/faves?add=http_//www.testfacebook.com/2010/07/22/load-test-your-facebook-application&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1082.png" alt="Add to Technorati" /></a><a title="Add to Yahoo Buzz" rel="nofollow" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F22%2Fload-test-your-facebook-application&amp;headline=Load%20Test%20your%20Facebook%20Application!!" target="_blank" onclick="pageTracker._trackPageview('/outgoing/buzz.yahoo.com/buzz?targetUrl=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F22_2Fload-test-your-facebook-application_amp_headline=Load_20Test_20your_20Facebook_20Application&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1092.png" alt="Add to Yahoo Buzz" /></a><a title="Add to Newsvine" rel="nofollow" href="http://www.newsvine.com/_wine/save?u=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F22%2Fload-test-your-facebook-application&amp;h=Load%20Test%20your%20Facebook%20Application!!" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.newsvine.com/_wine/save?u=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F22_2Fload-test-your-facebook-application_amp_h=Load_20Test_20your_20Facebook_20Application&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1102.png" alt="Add to Newsvine" /></a><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1112.png" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.testfacebook.com/2010/07/22/load-test-your-facebook-application/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reflections on a Quarter Century</title>
		<link>http://www.testfacebook.com/2010/07/22/reflections-on-a-quarter-century/</link>
		<comments>http://www.testfacebook.com/2010/07/22/reflections-on-a-quarter-century/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 10:31:39 +0000</pubDate>
		<dc:creator>Sander Smith</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.testfacebook.com/?p=323</guid>
		<description><![CDATA[This post is neither about Facebook applications nor Testing, but rather something of a more personal nature.
Today marks the day when I would have been inducted into the IBM Quarter Century Club had I stuck it out in IBM all of these years, and I would have earned the right to put this cool logo on my [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-324" style="margin: 10px;" title="Quarter CenturyLogo" src="http://www.testfacebook.com/blog/wp-content/uploads/2010/07/Quarter-CenturyLogo.gif" alt="Quarter CenturyLogo" width="99" height="103" />This post is neither about Facebook applications nor Testing, but rather something of a more personal nature.</p>
<p>Today marks the day when I would have been inducted into the IBM Quarter Century Club had I stuck it out in IBM all of these years, and I would have earned the right to put this cool logo on my business cards. But the truth is, I left back in 1996 to join a small startup where I learned that I&#8217;d be much happier as a small fish in a small pond rather than a small fish in a big pond. Twenty five years is a long time, and I learned a few things along the way:</p>
<ul>
<li><strong>IBM was a great place to start out.</strong>
<ul>
<li>I got to work with some really great people, and learned about developing software professionally in a great environment, something that they don&#8217;t (and really can&#8217;t) teach you in school. IBM allowed me to work on lots of different and interesting projects, paid for my Master&#8217;s degree, moved me halfway across the world, and actually paid me a salary the whole time. </li>
</ul>
</li>
<li> <strong>Leaving IBM was a good idea. </strong>
<ul>
<li>Towards the end of my tenure at IBM, the company wasn&#8217;t doing so well, so to turn things around management created this mass hysteria known as Market Driven Quality (MDQ). We were told that it &#8220;wouldn&#8217;t be one of those Quality programs where you get a coffee mug, and that&#8217;s the end of it&#8221;. Big mistake. It shouldn&#8217;t have existed past the coffee mug stage, but it ruled our lives for a few years. You don&#8217;t hear about it anymore, and there&#8217;s not even much on the Internet about MDQ, but an interesting description can be found <a href="http://www.grouchyoldcripple.com/archives/001951.html" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.grouchyoldcripple.com/archives/001951.html?referer=');">here</a>. One thing it did do was to start to convince me that IBM may not be the place for me. Fortunately, after John Akers was removed as CEO, much of this nonsense was gone and the company really did recover. Except &#8230;. without me.</li>
</ul>
</li>
<li><strong>It used to be really hard to bring new ideas into IBM. </strong>
<ul>
<li>Back in 1992 I worked on an IBM product called BookManager, an early attempt at softcopy books (think Adobe Reader, but  a lot less sexy). It looked terrible, but had a very sophisticated automatic indexing and search facility so you could search through large stacks of IBM manuals. A friend of mine and I wrote a proposal to apply this indexing/search technology to the nascent Internet, so you could search for information there (although we weren&#8217;t sure why anyone would want to do this &#8230;). This is pre-Google, pre-Yahoo, pre-Mosaic! The management we spoke with asked compelling questions such as &#8220;What IBM platform does this &#8216;Internet&#8217; run on &#8211; MVS, VM, or OS/2?&#8221;. That was the end of that, although I did read somewhere that those Yahoo and Google guys did fairly well for themselves with &#8220;Internet search&#8221;.</li>
</ul>
</li>
<li><strong>There&#8217;s always something new to learn. </strong>
<ul>
<li>Over the past 25 years, I can&#8217;t even recall the number of languages, operating systems, scripting languages, IDEs, development tools, and protocols I&#8217;ve had to learn and have since forgotten. But that&#8217;s good as it keeps you fresh. Last week I learned <a href="https://jersey.dev.java.net/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/jersey.dev.java.net/?referer=');">Jersey</a>, a cool system for writing RESTful Web services in Java. But I still refuse to learn Rails.</li>
</ul>
</li>
<li><strong>Being a software developer is a cool thing to do. </strong>
<ul>
<li>I&#8217;ve been able to do it professionally in three different countries. I&#8217;ve started my own company. I get to work on something I like doing, and feel like I&#8217;m making a contribution to the world. I even wrote a compiler despite the fact that I refused to take Compiler Theory in university because I thought &#8220;How many compilers does the world really need anyway?&#8221;.</li>
</ul>
</li>
<li><strong>We&#8217;ve come a long way. </strong>
<ul>
<li>My first job in IBM was working on this monstrosity for the US Air Force with hundreds of other developers. The team I worked with was involved with something called &#8220;packet switching&#8221;, kind of cutting edge back then but so ubiquitous today that you never even hear the term used. Sort of like turning on the tap and having clean water semi-miraculously pouring out, packet switching does the same with bytes. The fact that it&#8217;s so invisible and pervasive reminds me of how far we&#8217;ve come.</li>
</ul>
</li>
</ul>
<p>I have loads more stories to tell, but also lots of real work to do, so I better get on that. Let&#8217;s hope that the next 25 years is as good as the first.</p>
<p class="getsocial" style="text-align:left;"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1002.png" alt="" /><a title="Add to Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://www.testfacebook.com/2010/07/22/reflections-on-a-quarter-century" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_//www.testfacebook.com/2010/07/22/reflections-on-a-quarter-century&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1012.png" alt="Add to Facebook" /></a><a title="Add to Digg" rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F22%2Freflections-on-a-quarter-century&amp;title=Reflections%20on%20a%20Quarter%20Century" target="_blank" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?phase=2_amp_url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F22_2Freflections-on-a-quarter-century_amp_title=Reflections_20on_20a_20Quarter_20Century&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1022.png" alt="Add to Digg" /></a><a title="Add to Del.icio.us" rel="nofollow" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F22%2Freflections-on-a-quarter-century&amp;title=Reflections%20on%20a%20Quarter%20Century" target="_blank" onclick="pageTracker._trackPageview('/outgoing/del.icio.us/post?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F22_2Freflections-on-a-quarter-century_amp_title=Reflections_20on_20a_20Quarter_20Century&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1032.png" alt="Add to Del.icio.us" /></a><a title="Add to Stumbleupon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F22%2Freflections-on-a-quarter-century&amp;title=Reflections%20on%20a%20Quarter%20Century" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.stumbleupon.com/submit?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F22_2Freflections-on-a-quarter-century_amp_title=Reflections_20on_20a_20Quarter_20Century&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1042.png" alt="Add to Stumbleupon" /></a><a title="Add to Reddit" rel="nofollow" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F22%2Freflections-on-a-quarter-century&amp;title=Reflections%20on%20a%20Quarter%20Century" target="_blank" onclick="pageTracker._trackPageview('/outgoing/reddit.com/submit?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F22_2Freflections-on-a-quarter-century_amp_title=Reflections_20on_20a_20Quarter_20Century&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1052.png" alt="Add to Reddit" /></a><a title="Add to Blinklist" rel="nofollow" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Description=&amp;Url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F22%2Freflections-on-a-quarter-century&amp;Title=Reflections%20on%20a%20Quarter%20Century" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.blinklist.com/index.php?Action=Blink/addblink.php_amp_Description=_amp_Url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F22_2Freflections-on-a-quarter-century_amp_Title=Reflections_20on_20a_20Quarter_20Century&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1062.png" alt="Add to Blinklist" /></a><a title="Add to Twitter" rel="nofollow" href="http://twitter.com/home/?status=Reflections%20on%20a%20Quarter%20Century+%40+http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F22%2Freflections-on-a-quarter-century" target="_blank" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=Reflections_20on_20a_20Quarter_20Century+_40+http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F22_2Freflections-on-a-quarter-century&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1072.png" alt="Add to Twitter" /></a><a title="Add to Technorati" rel="nofollow" href="http://www.technorati.com/faves?add=http://www.testfacebook.com/2010/07/22/reflections-on-a-quarter-century" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.technorati.com/faves?add=http_//www.testfacebook.com/2010/07/22/reflections-on-a-quarter-century&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1082.png" alt="Add to Technorati" /></a><a title="Add to Yahoo Buzz" rel="nofollow" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F22%2Freflections-on-a-quarter-century&amp;headline=Reflections%20on%20a%20Quarter%20Century" target="_blank" onclick="pageTracker._trackPageview('/outgoing/buzz.yahoo.com/buzz?targetUrl=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F22_2Freflections-on-a-quarter-century_amp_headline=Reflections_20on_20a_20Quarter_20Century&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1092.png" alt="Add to Yahoo Buzz" /></a><a title="Add to Newsvine" rel="nofollow" href="http://www.newsvine.com/_wine/save?u=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F22%2Freflections-on-a-quarter-century&amp;h=Reflections%20on%20a%20Quarter%20Century" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.newsvine.com/_wine/save?u=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F22_2Freflections-on-a-quarter-century_amp_h=Reflections_20on_20a_20Quarter_20Century&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1102.png" alt="Add to Newsvine" /></a><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1112.png" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.testfacebook.com/2010/07/22/reflections-on-a-quarter-century/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FriendRunner announces customer success</title>
		<link>http://www.testfacebook.com/2010/07/12/friendrunner-announces-customer-success/</link>
		<comments>http://www.testfacebook.com/2010/07/12/friendrunner-announces-customer-success/#comments</comments>
		<pubDate>Mon, 12 Jul 2010 14:25:00 +0000</pubDate>
		<dc:creator>Sander Smith</dc:creator>
				<category><![CDATA[FriendRunner]]></category>

		<guid isPermaLink="false">http://www.testfacebook.com/?p=312</guid>
		<description><![CDATA[FriendRunner, the cloud-based tool for load-testing Facebook applications recently announced a customer success story from Hobsons, a leading provider of educational products and services. Hobsons used FriendRunner before deploying its mySchools by Hobsons Facebook application.
To learn more about their experience with Friendrunner, the only tool available to properly load test Facebook applications, click here.

]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-314" title="FriendRunner" src="http://www.testfacebook.com/blog/wp-content/uploads/2010/07/FriendRunner.jpg" alt="FriendRunner" width="200" height="66" />FriendRunner, the cloud-based tool for load-testing Facebook applications recently announced a customer success story from Hobsons, a leading provider of educational products and services. Hobsons used FriendRunner before deploying its mySchools by Hobsons Facebook application.</p>
<p>To learn more about their experience with Friendrunner, the only tool available to properly load test Facebook applications, click <a href="http://www.friendrunner.com/index.php/whos-using-friendrunner/hobsons.html" onclick="pageTracker._trackPageview('/outgoing/www.friendrunner.com/index.php/whos-using-friendrunner/hobsons.html?referer=');">here</a>.</p>
<p class="getsocial" style="text-align:left;"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1001.png" alt="" /><a title="Add to Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://www.testfacebook.com/2010/07/12/friendrunner-announces-customer-success" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_//www.testfacebook.com/2010/07/12/friendrunner-announces-customer-success&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1011.png" alt="Add to Facebook" /></a><a title="Add to Digg" rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F12%2Ffriendrunner-announces-customer-success&amp;title=FriendRunner%20announces%20customer%20success" target="_blank" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?phase=2_amp_url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F12_2Ffriendrunner-announces-customer-success_amp_title=FriendRunner_20announces_20customer_20success&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1021.png" alt="Add to Digg" /></a><a title="Add to Del.icio.us" rel="nofollow" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F12%2Ffriendrunner-announces-customer-success&amp;title=FriendRunner%20announces%20customer%20success" target="_blank" onclick="pageTracker._trackPageview('/outgoing/del.icio.us/post?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F12_2Ffriendrunner-announces-customer-success_amp_title=FriendRunner_20announces_20customer_20success&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1031.png" alt="Add to Del.icio.us" /></a><a title="Add to Stumbleupon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F12%2Ffriendrunner-announces-customer-success&amp;title=FriendRunner%20announces%20customer%20success" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.stumbleupon.com/submit?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F12_2Ffriendrunner-announces-customer-success_amp_title=FriendRunner_20announces_20customer_20success&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1041.png" alt="Add to Stumbleupon" /></a><a title="Add to Reddit" rel="nofollow" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F12%2Ffriendrunner-announces-customer-success&amp;title=FriendRunner%20announces%20customer%20success" target="_blank" onclick="pageTracker._trackPageview('/outgoing/reddit.com/submit?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F12_2Ffriendrunner-announces-customer-success_amp_title=FriendRunner_20announces_20customer_20success&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1051.png" alt="Add to Reddit" /></a><a title="Add to Blinklist" rel="nofollow" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Description=&amp;Url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F12%2Ffriendrunner-announces-customer-success&amp;Title=FriendRunner%20announces%20customer%20success" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.blinklist.com/index.php?Action=Blink/addblink.php_amp_Description=_amp_Url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F12_2Ffriendrunner-announces-customer-success_amp_Title=FriendRunner_20announces_20customer_20success&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1061.png" alt="Add to Blinklist" /></a><a title="Add to Twitter" rel="nofollow" href="http://twitter.com/home/?status=FriendRunner%20announces%20customer%20success+%40+http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F12%2Ffriendrunner-announces-customer-success" target="_blank" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=FriendRunner_20announces_20customer_20success+_40+http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F12_2Ffriendrunner-announces-customer-success&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1071.png" alt="Add to Twitter" /></a><a title="Add to Technorati" rel="nofollow" href="http://www.technorati.com/faves?add=http://www.testfacebook.com/2010/07/12/friendrunner-announces-customer-success" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.technorati.com/faves?add=http_//www.testfacebook.com/2010/07/12/friendrunner-announces-customer-success&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1081.png" alt="Add to Technorati" /></a><a title="Add to Yahoo Buzz" rel="nofollow" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F12%2Ffriendrunner-announces-customer-success&amp;headline=FriendRunner%20announces%20customer%20success" target="_blank" onclick="pageTracker._trackPageview('/outgoing/buzz.yahoo.com/buzz?targetUrl=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F12_2Ffriendrunner-announces-customer-success_amp_headline=FriendRunner_20announces_20customer_20success&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1091.png" alt="Add to Yahoo Buzz" /></a><a title="Add to Newsvine" rel="nofollow" href="http://www.newsvine.com/_wine/save?u=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F12%2Ffriendrunner-announces-customer-success&amp;h=FriendRunner%20announces%20customer%20success" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.newsvine.com/_wine/save?u=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F12_2Ffriendrunner-announces-customer-success_amp_h=FriendRunner_20announces_20customer_20success&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1101.png" alt="Add to Newsvine" /></a><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1111.png" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.testfacebook.com/2010/07/12/friendrunner-announces-customer-success/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How does Facebook get tested?</title>
		<link>http://www.testfacebook.com/2010/07/05/how-does-facebook-get-tested/</link>
		<comments>http://www.testfacebook.com/2010/07/05/how-does-facebook-get-tested/#comments</comments>
		<pubDate>Tue, 06 Jul 2010 01:12:28 +0000</pubDate>
		<dc:creator>Sander Smith</dc:creator>
				<category><![CDATA[General Testing]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.testfacebook.com/?p=298</guid>
		<description><![CDATA[The focus of this blog has always been to talk about testing Facebook applications. There are plenty of places to read about software testing or Facebook, but this is the one place to get that intersection. With this in mind I&#8217;m going to stray from our charter and talk about testing Facebook. No, not how to test your Facebook app, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-303" title="TestFacebook Venn" src="http://www.testfacebook.com/blog/wp-content/uploads/2010/07/TestFacebook-Venn.jpg" alt="TestFacebook Venn" width="300" height="183" />The focus of this blog has always been to talk about testing Facebook applications. There are plenty of places to read about software testing or Facebook, but this is the one place to get that intersection. With this in mind I&#8217;m going to stray from our charter and talk about testing Facebook. No, not how to test your Facebook app, but how does Facebook test Facebook.</p>
<p>That&#8217;s right. Have you ever thought about how Facebook tests its own product? Well wonder no more as the good people at <a href="http://www.quora.com/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.quora.com/?referer=');">Quora </a>have already asked that question, and Steven Grimm,<span id="ld_y6FZRk_4107"><span> </span><span>Facebook&#8217;s test engineering tech lead</span> has provided <a href="http://www.quora.com/What-kind-of-automated-testing-does-Facebook-do" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.quora.com/What-kind-of-automated-testing-does-Facebook-do?referer=');">quite a good answer</a>.</span></p>
<p><span><span id="ld_y6FZRk_4126">A few interesting take-aways:</span></span></p>
<ul>
<li><span><span>For a company that&#8217;s so grounded in PHP, it&#8217;s interesting to see that they&#8217;re so heavily invested in <a href="http://watir.com/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/watir.com/?referer=');">Watir</a>, a tool from the Ruby world.</span></span></li>
<li><span><span><em>&#8220;Facebook has no dedicated QA team.&#8221; </em>Now for many people, this will come as no surprise. For others from a more traditional development background, no dedicated QA for something as large and mission critical as Facebook seems like a really bad idea.</span></span></li>
<li><span><span>They don&#8217;t talk about load testing. From what we can tell, they probably don&#8217;t even do it. In a lot of respects, a proper load test of Facebook is probably far more trouble than it&#8217;s worth.</span></span></li>
</ul>
<p class="getsocial" style="text-align:left;"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1002.png" alt="" /><a title="Add to Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://www.testfacebook.com/2010/07/05/how-does-facebook-get-tested" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_//www.testfacebook.com/2010/07/05/how-does-facebook-get-tested&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1012.png" alt="Add to Facebook" /></a><a title="Add to Digg" rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F05%2Fhow-does-facebook-get-tested&amp;title=How%20does%20Facebook%20get%20tested%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?phase=2_amp_url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F05_2Fhow-does-facebook-get-tested_amp_title=How_20does_20Facebook_20get_20tested_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1022.png" alt="Add to Digg" /></a><a title="Add to Del.icio.us" rel="nofollow" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F05%2Fhow-does-facebook-get-tested&amp;title=How%20does%20Facebook%20get%20tested%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/del.icio.us/post?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F05_2Fhow-does-facebook-get-tested_amp_title=How_20does_20Facebook_20get_20tested_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1032.png" alt="Add to Del.icio.us" /></a><a title="Add to Stumbleupon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F05%2Fhow-does-facebook-get-tested&amp;title=How%20does%20Facebook%20get%20tested%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.stumbleupon.com/submit?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F05_2Fhow-does-facebook-get-tested_amp_title=How_20does_20Facebook_20get_20tested_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1042.png" alt="Add to Stumbleupon" /></a><a title="Add to Reddit" rel="nofollow" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F05%2Fhow-does-facebook-get-tested&amp;title=How%20does%20Facebook%20get%20tested%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/reddit.com/submit?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F05_2Fhow-does-facebook-get-tested_amp_title=How_20does_20Facebook_20get_20tested_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1052.png" alt="Add to Reddit" /></a><a title="Add to Blinklist" rel="nofollow" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Description=&amp;Url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F05%2Fhow-does-facebook-get-tested&amp;Title=How%20does%20Facebook%20get%20tested%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.blinklist.com/index.php?Action=Blink/addblink.php_amp_Description=_amp_Url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F05_2Fhow-does-facebook-get-tested_amp_Title=How_20does_20Facebook_20get_20tested_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1062.png" alt="Add to Blinklist" /></a><a title="Add to Twitter" rel="nofollow" href="http://twitter.com/home/?status=How%20does%20Facebook%20get%20tested%3F+%40+http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F05%2Fhow-does-facebook-get-tested" target="_blank" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=How_20does_20Facebook_20get_20tested_3F+_40+http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F05_2Fhow-does-facebook-get-tested&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1072.png" alt="Add to Twitter" /></a><a title="Add to Technorati" rel="nofollow" href="http://www.technorati.com/faves?add=http://www.testfacebook.com/2010/07/05/how-does-facebook-get-tested" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.technorati.com/faves?add=http_//www.testfacebook.com/2010/07/05/how-does-facebook-get-tested&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1082.png" alt="Add to Technorati" /></a><a title="Add to Yahoo Buzz" rel="nofollow" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F05%2Fhow-does-facebook-get-tested&amp;headline=How%20does%20Facebook%20get%20tested%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/buzz.yahoo.com/buzz?targetUrl=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F05_2Fhow-does-facebook-get-tested_amp_headline=How_20does_20Facebook_20get_20tested_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1092.png" alt="Add to Yahoo Buzz" /></a><a title="Add to Newsvine" rel="nofollow" href="http://www.newsvine.com/_wine/save?u=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F07%2F05%2Fhow-does-facebook-get-tested&amp;h=How%20does%20Facebook%20get%20tested%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.newsvine.com/_wine/save?u=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F07_2F05_2Fhow-does-facebook-get-tested_amp_h=How_20does_20Facebook_20get_20tested_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1102.png" alt="Add to Newsvine" /></a><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1112.png" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.testfacebook.com/2010/07/05/how-does-facebook-get-tested/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Arrested for load testing your Facebook app??</title>
		<link>http://www.testfacebook.com/2010/05/12/arrested-for-load-testing-your-facebook-app/</link>
		<comments>http://www.testfacebook.com/2010/05/12/arrested-for-load-testing-your-facebook-app/#comments</comments>
		<pubDate>Wed, 12 May 2010 20:52:48 +0000</pubDate>
		<dc:creator>Sander Smith</dc:creator>
				<category><![CDATA[Load Testing]]></category>
		<category><![CDATA[Facebook]]></category>

		<guid isPermaLink="false">http://www.testfacebook.com/?p=289</guid>
		<description><![CDATA[Yes, it sounds crazy that you could get arrested for load testing a Facebook application, but that&#8217;s the implication for what&#8217;s been reported on All Facebook.
All Facebook reports that Power Ventures, creator of the social network aggregator Power.com is being sued by Facebook for violating their Terms Of Service. Power.com allows users to log into [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-291" title="bill-gates-arrested-mugshot1" src="http://www.testfacebook.com/blog/wp-content/uploads/2010/05/bill-gates-arrested-mugshot1.jpg" alt="bill-gates-arrested-mugshot1" width="142" height="250" />Yes, it sounds crazy that you could get arrested for load testing a Facebook application, but that&#8217;s the implication for what&#8217;s been reported on <a href="http://www.allfacebook.com/2010/05/auto-logging-into-facebook-could-get-you-arrested/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.allfacebook.com/2010/05/auto-logging-into-facebook-could-get-you-arrested/?referer=');">All Facebook</a>.</p>
<p>All Facebook reports that Power Ventures, creator of the social network aggregator <a href="http://power.com" target="_blank" onclick="pageTracker._trackPageview('/outgoing/power.com?referer=');">Power.com</a> is being sued by Facebook for violating their Terms Of Service. Power.com allows users to log into multiple social networking sites simultaneously &#8211; you log into their service and they log into the sites automatically. The problem is that Facebook has a very clear prohibition in their TOS against accessing their service by automated means, which is exactly what Power.com is doing. How Facebook sees this as a <a href="http://www.mi2n.com/press.php3?press_nb=130050" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.mi2n.com/press.php3?press_nb=130050&amp;referer=');">criminal act </a>seems kind of crazy, but that&#8217;s exactly what&#8217;s happening.</p>
<p>So what does this have to do with load testing? Everything! The Facebook TOS (as well as a few other technical hurdles) prevent you from hooking a standard load testing tool up to Facebook to load test your newly created Facebook app. Kids, don&#8217;t try this at home, lest you get arrested. Better stick with a dedicated tool like <a href="http://www.friendrunner.com" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.friendrunner.com?referer=');">FriendRunner </a>that allows you to load test your Facebook app outside of the Facebook infrastructure.</p>
<p class="getsocial" style="text-align:left;"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1002.png" alt="" /><a title="Add to Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://www.testfacebook.com/2010/05/12/arrested-for-load-testing-your-facebook-app" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_//www.testfacebook.com/2010/05/12/arrested-for-load-testing-your-facebook-app&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1012.png" alt="Add to Facebook" /></a><a title="Add to Digg" rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F12%2Farrested-for-load-testing-your-facebook-app&amp;title=Arrested%20for%20load%20testing%20your%20Facebook%20app%3F%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?phase=2_amp_url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F12_2Farrested-for-load-testing-your-facebook-app_amp_title=Arrested_20for_20load_20testing_20your_20Facebook_20app_3F_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1022.png" alt="Add to Digg" /></a><a title="Add to Del.icio.us" rel="nofollow" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F12%2Farrested-for-load-testing-your-facebook-app&amp;title=Arrested%20for%20load%20testing%20your%20Facebook%20app%3F%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/del.icio.us/post?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F12_2Farrested-for-load-testing-your-facebook-app_amp_title=Arrested_20for_20load_20testing_20your_20Facebook_20app_3F_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1032.png" alt="Add to Del.icio.us" /></a><a title="Add to Stumbleupon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F12%2Farrested-for-load-testing-your-facebook-app&amp;title=Arrested%20for%20load%20testing%20your%20Facebook%20app%3F%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.stumbleupon.com/submit?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F12_2Farrested-for-load-testing-your-facebook-app_amp_title=Arrested_20for_20load_20testing_20your_20Facebook_20app_3F_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1042.png" alt="Add to Stumbleupon" /></a><a title="Add to Reddit" rel="nofollow" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F12%2Farrested-for-load-testing-your-facebook-app&amp;title=Arrested%20for%20load%20testing%20your%20Facebook%20app%3F%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/reddit.com/submit?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F12_2Farrested-for-load-testing-your-facebook-app_amp_title=Arrested_20for_20load_20testing_20your_20Facebook_20app_3F_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1052.png" alt="Add to Reddit" /></a><a title="Add to Blinklist" rel="nofollow" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Description=&amp;Url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F12%2Farrested-for-load-testing-your-facebook-app&amp;Title=Arrested%20for%20load%20testing%20your%20Facebook%20app%3F%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.blinklist.com/index.php?Action=Blink/addblink.php_amp_Description=_amp_Url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F12_2Farrested-for-load-testing-your-facebook-app_amp_Title=Arrested_20for_20load_20testing_20your_20Facebook_20app_3F_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1062.png" alt="Add to Blinklist" /></a><a title="Add to Twitter" rel="nofollow" href="http://twitter.com/home/?status=Arrested%20for%20load%20testing%20your%20Facebook%20app%3F%3F+%40+http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F12%2Farrested-for-load-testing-your-facebook-app" target="_blank" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=Arrested_20for_20load_20testing_20your_20Facebook_20app_3F_3F+_40+http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F12_2Farrested-for-load-testing-your-facebook-app&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1072.png" alt="Add to Twitter" /></a><a title="Add to Technorati" rel="nofollow" href="http://www.technorati.com/faves?add=http://www.testfacebook.com/2010/05/12/arrested-for-load-testing-your-facebook-app" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.technorati.com/faves?add=http_//www.testfacebook.com/2010/05/12/arrested-for-load-testing-your-facebook-app&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1082.png" alt="Add to Technorati" /></a><a title="Add to Yahoo Buzz" rel="nofollow" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F12%2Farrested-for-load-testing-your-facebook-app&amp;headline=Arrested%20for%20load%20testing%20your%20Facebook%20app%3F%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/buzz.yahoo.com/buzz?targetUrl=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F12_2Farrested-for-load-testing-your-facebook-app_amp_headline=Arrested_20for_20load_20testing_20your_20Facebook_20app_3F_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1092.png" alt="Add to Yahoo Buzz" /></a><a title="Add to Newsvine" rel="nofollow" href="http://www.newsvine.com/_wine/save?u=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F12%2Farrested-for-load-testing-your-facebook-app&amp;h=Arrested%20for%20load%20testing%20your%20Facebook%20app%3F%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.newsvine.com/_wine/save?u=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F12_2Farrested-for-load-testing-your-facebook-app_amp_h=Arrested_20for_20load_20testing_20your_20Facebook_20app_3F_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1102.png" alt="Add to Newsvine" /></a><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1112.png" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.testfacebook.com/2010/05/12/arrested-for-load-testing-your-facebook-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook Testing: Which metric is important?</title>
		<link>http://www.testfacebook.com/2010/05/08/facebook-testing-metrics/</link>
		<comments>http://www.testfacebook.com/2010/05/08/facebook-testing-metrics/#comments</comments>
		<pubDate>Sun, 09 May 2010 02:20:31 +0000</pubDate>
		<dc:creator>Sander Smith</dc:creator>
				<category><![CDATA[General Testing]]></category>
		<category><![CDATA[Load Testing]]></category>
		<category><![CDATA[Facebook application]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://www.testfacebook.com/?p=231</guid>
		<description><![CDATA[Many people ask us which metric is best to use when performing a load test of a Facebook application. Common wisdom says that Page Load Time (PLT) works for web applications: it&#8217;s easy to calculate, seemingly applicable, and everyone understands what it means. However, it isn&#8217;t so useful in the Facebook world since it contains so much extraneous [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-276" title="fbmetrics" src="http://www.testfacebook.com/blog/wp-content/uploads/2010/05/fbmetrics.jpg" alt="fbmetrics" width="189" height="144" />Many people ask us which metric is best to use when performing a load test of a Facebook application. Common wisdom says that Page Load Time (PLT) works for web applications: it&#8217;s easy to calculate, seemingly applicable, and everyone understands what it means. However, it isn&#8217;t so useful in the Facebook world since it contains so much extraneous information that makes it hard to analyze anything with it.</p>
<h3>Facebook Canvas applications</h3>
<p>To understand why PLT is a bad idea for Canvas applications,  we must go back and understand the Canvas architecture. Users interact with Canvas applications by using a browser connected to the Facebook server which acts as a middleman and requests data from the app. The app may call APIs that interact with the Facebook server, and then ultimately return an FBML file to Facebook which renders it into HTML for return to the users bowser. The problem is that if we only look at PLT by measuring response time at the browser, we have all of this extra stuff being counted in the timing:</p>
<p><img class="aligncenter size-full wp-image-263" title="CanvasApps" src="http://www.testfacebook.com/blog/wp-content/uploads/2010/05/CanvasApps2.jpg" alt="CanvasApps" width="480" height="136" /></p>
<ul>
<li>Network latency between the browser and Facebook</li>
<li>Time required by Facebook to figure out which application must be called, authenticating the request, etc.</li>
<li>Time to render the FBML into HTML</li>
<li>Time spent at the Facebook server servicing API calls</li>
</ul>
<p>These &#8220;extraneous&#8221; functions will take an unpredictable amount of time depending on, among other things, the current load at the Facebook server. This will make it hard, if not impossible, to positively correlate the timings of two different test runs. Since one of the prime motivators of load testing is to see the effects of changes to the code on performance, metrics like these will ultimatly prove to be of little use.</p>
<h3>Facebook Connect applications</h3>
<p>Using PLT for Facebook Connect applications is a little bit better. Users interact with Facebook Connect applications directly, and do not need the Facebook server to act as the middleman. The only extraneous functionality being counted in the timing is the time spent at the Facebook Server responding to API calls. If there are many API calls being made, this will cause a bit of randomness in the metrics.</p>
<h3>Application Response Times</h3>
<p>In contrast to PLT, creating metrics based on the Application Response Time is much more meaningful and useful, although harder to calculate. Application Response Time should calculate the amount of time spent at the application <strong>and only</strong> the time spent at the application. Unfortunately, in contrast to PLT there&#8217;s no simple way to get the Application Response Time &#8211; you&#8217;ll need to do a little bit of work to get at it.</p>
<p>To calculate this, you&#8217;ll need to create a stopwatch function which starts when your application is called, and stops when the application completes the request and returns an FBML file to the caller. In between, the stopwatch needs to be paused when a Facebook API is called. Finally, those of you using PHP as your development platform should check out the microtime() function as it&#8217;s much more accurate than the standard time() function. If your application is able to keep up with all of the bookkeeping, you&#8217;ll have metrics that can accurately show you the effects on application performance from any changes you make.</p>
<p>For those of you who don&#8217;t want to be bothered with keeping track of all of these timing calculations, please note that <a href="http://www.friendrunner.com" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.friendrunner.com?referer=');">FriendRunner </a>does all of this for you automatically.</p>
<p class="getsocial" style="text-align:left;"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1001.png" alt="" /><a title="Add to Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://www.testfacebook.com/2010/05/08/facebook-testing-metrics" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_//www.testfacebook.com/2010/05/08/facebook-testing-metrics&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1011.png" alt="Add to Facebook" /></a><a title="Add to Digg" rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F08%2Ffacebook-testing-metrics&amp;title=Facebook%20Testing%3A%20Which%20metric%20is%20important%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?phase=2_amp_url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F08_2Ffacebook-testing-metrics_amp_title=Facebook_20Testing_3A_20Which_20metric_20is_20important_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1021.png" alt="Add to Digg" /></a><a title="Add to Del.icio.us" rel="nofollow" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F08%2Ffacebook-testing-metrics&amp;title=Facebook%20Testing%3A%20Which%20metric%20is%20important%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/del.icio.us/post?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F08_2Ffacebook-testing-metrics_amp_title=Facebook_20Testing_3A_20Which_20metric_20is_20important_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1031.png" alt="Add to Del.icio.us" /></a><a title="Add to Stumbleupon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F08%2Ffacebook-testing-metrics&amp;title=Facebook%20Testing%3A%20Which%20metric%20is%20important%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.stumbleupon.com/submit?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F08_2Ffacebook-testing-metrics_amp_title=Facebook_20Testing_3A_20Which_20metric_20is_20important_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1041.png" alt="Add to Stumbleupon" /></a><a title="Add to Reddit" rel="nofollow" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F08%2Ffacebook-testing-metrics&amp;title=Facebook%20Testing%3A%20Which%20metric%20is%20important%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/reddit.com/submit?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F08_2Ffacebook-testing-metrics_amp_title=Facebook_20Testing_3A_20Which_20metric_20is_20important_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1051.png" alt="Add to Reddit" /></a><a title="Add to Blinklist" rel="nofollow" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Description=&amp;Url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F08%2Ffacebook-testing-metrics&amp;Title=Facebook%20Testing%3A%20Which%20metric%20is%20important%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.blinklist.com/index.php?Action=Blink/addblink.php_amp_Description=_amp_Url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F08_2Ffacebook-testing-metrics_amp_Title=Facebook_20Testing_3A_20Which_20metric_20is_20important_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1061.png" alt="Add to Blinklist" /></a><a title="Add to Twitter" rel="nofollow" href="http://twitter.com/home/?status=Facebook%20Testing%3A%20Which%20metric%20is%20important%3F+%40+http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F08%2Ffacebook-testing-metrics" target="_blank" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=Facebook_20Testing_3A_20Which_20metric_20is_20important_3F+_40+http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F08_2Ffacebook-testing-metrics&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1071.png" alt="Add to Twitter" /></a><a title="Add to Technorati" rel="nofollow" href="http://www.technorati.com/faves?add=http://www.testfacebook.com/2010/05/08/facebook-testing-metrics" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.technorati.com/faves?add=http_//www.testfacebook.com/2010/05/08/facebook-testing-metrics&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1081.png" alt="Add to Technorati" /></a><a title="Add to Yahoo Buzz" rel="nofollow" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F08%2Ffacebook-testing-metrics&amp;headline=Facebook%20Testing%3A%20Which%20metric%20is%20important%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/buzz.yahoo.com/buzz?targetUrl=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F08_2Ffacebook-testing-metrics_amp_headline=Facebook_20Testing_3A_20Which_20metric_20is_20important_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1091.png" alt="Add to Yahoo Buzz" /></a><a title="Add to Newsvine" rel="nofollow" href="http://www.newsvine.com/_wine/save?u=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F08%2Ffacebook-testing-metrics&amp;h=Facebook%20Testing%3A%20Which%20metric%20is%20important%3F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.newsvine.com/_wine/save?u=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F08_2Ffacebook-testing-metrics_amp_h=Facebook_20Testing_3A_20Which_20metric_20is_20important_3F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1101.png" alt="Add to Newsvine" /></a><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1111.png" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.testfacebook.com/2010/05/08/facebook-testing-metrics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Disclosure Agreements and the Like Button</title>
		<link>http://www.testfacebook.com/2010/05/01/disclosure-agreements-and-the-like-button/</link>
		<comments>http://www.testfacebook.com/2010/05/01/disclosure-agreements-and-the-like-button/#comments</comments>
		<pubDate>Sun, 02 May 2010 02:53:16 +0000</pubDate>
		<dc:creator>Sander Smith</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[crazy stuff]]></category>

		<guid isPermaLink="false">http://www.testfacebook.com/?p=233</guid>
		<description><![CDATA[A short time ago, a company that we&#8217;re doing some work with asked us to sign a Non-Disclosure Agreement (NDA). Things like this are fairly common, and I had no qualms about signing it or keeping things confidential. The truth is, we really do take these things seriously when we&#8217;re asked to sign. We even have [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-236" title="nonda" src="http://www.testfacebook.com/blog/wp-content/uploads/2010/05/nonda.jpg" alt="nonda" width="200" height="204" />A short time ago, a company that we&#8217;re doing some work with asked us to sign a Non-Disclosure Agreement (NDA). Things like this are fairly common, and I had no qualms about signing it or keeping things confidential. The truth is, we really do take these things seriously when we&#8217;re asked to sign. We even have our own NDA that we&#8217;ve asked others to sign in the past, but not recently. I started to think about why that was and I realized that NDAs do have their function and place, but in this Social Media-ized environment an NDA seems so dated. I was thinking about why that was and realized that what we really needed and wanted was a, well &#8230;</p>
<p><strong>Disclosure Agreement</strong></p>
<p>That&#8217;s right &#8211; what I&#8217;d really like is to have an agreement with everyone we work with that says that we&#8217;re legally bound to talk about each other. Something that forces us to tell at least 100 people about our  partner in the hopes that at least 1 or 2 of them will be interested enough to investigate further. Write blog posts, tweet, put links on the website, do whatever else is necessary to tell the world that we believe that those guys are doing something so innovative, valuable, and cool,  that you should also check them out. Isn&#8217;t that what all of this social media stuff is all about anyway?</p>
<p>So what do you think about this? Is this a good idea or just really goofy? Are there any lawyers out there forward thinking enough to even try to draft such an agreement? If so, let us know at <a href="mailto:admin@testfacebook.com">admin@testfacebook.com</a>.</p>
<p>Until then, I guess the &#8220;Like&#8221; button will have to do.</p>
<h3>Postscript</h3>
<p>Two days after publishing this I received an email containing yet <em>another</em> NDA to sign. On the one hand, it&#8217;s very positive that other companies wish to talk to us. However, it would be even nicer if they also talked about us to others.</p>
<p> </p>
<p class="getsocial" style="text-align:left;"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1004.png" alt="" /><a title="Add to Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://www.testfacebook.com/2010/05/01/disclosure-agreements-and-the-like-button" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_//www.testfacebook.com/2010/05/01/disclosure-agreements-and-the-like-button&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1014.png" alt="Add to Facebook" /></a><a title="Add to Digg" rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F01%2Fdisclosure-agreements-and-the-like-button&amp;title=Disclosure%20Agreements%20and%20the%20Like%20Button" target="_blank" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?phase=2_amp_url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F01_2Fdisclosure-agreements-and-the-like-button_amp_title=Disclosure_20Agreements_20and_20the_20Like_20Button&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1024.png" alt="Add to Digg" /></a><a title="Add to Del.icio.us" rel="nofollow" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F01%2Fdisclosure-agreements-and-the-like-button&amp;title=Disclosure%20Agreements%20and%20the%20Like%20Button" target="_blank" onclick="pageTracker._trackPageview('/outgoing/del.icio.us/post?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F01_2Fdisclosure-agreements-and-the-like-button_amp_title=Disclosure_20Agreements_20and_20the_20Like_20Button&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1034.png" alt="Add to Del.icio.us" /></a><a title="Add to Stumbleupon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F01%2Fdisclosure-agreements-and-the-like-button&amp;title=Disclosure%20Agreements%20and%20the%20Like%20Button" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.stumbleupon.com/submit?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F01_2Fdisclosure-agreements-and-the-like-button_amp_title=Disclosure_20Agreements_20and_20the_20Like_20Button&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1044.png" alt="Add to Stumbleupon" /></a><a title="Add to Reddit" rel="nofollow" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F01%2Fdisclosure-agreements-and-the-like-button&amp;title=Disclosure%20Agreements%20and%20the%20Like%20Button" target="_blank" onclick="pageTracker._trackPageview('/outgoing/reddit.com/submit?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F01_2Fdisclosure-agreements-and-the-like-button_amp_title=Disclosure_20Agreements_20and_20the_20Like_20Button&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1054.png" alt="Add to Reddit" /></a><a title="Add to Blinklist" rel="nofollow" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Description=&amp;Url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F01%2Fdisclosure-agreements-and-the-like-button&amp;Title=Disclosure%20Agreements%20and%20the%20Like%20Button" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.blinklist.com/index.php?Action=Blink/addblink.php_amp_Description=_amp_Url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F01_2Fdisclosure-agreements-and-the-like-button_amp_Title=Disclosure_20Agreements_20and_20the_20Like_20Button&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1064.png" alt="Add to Blinklist" /></a><a title="Add to Twitter" rel="nofollow" href="http://twitter.com/home/?status=Disclosure%20Agreements%20and%20the%20Like%20Button+%40+http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F01%2Fdisclosure-agreements-and-the-like-button" target="_blank" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=Disclosure_20Agreements_20and_20the_20Like_20Button+_40+http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F01_2Fdisclosure-agreements-and-the-like-button&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1074.png" alt="Add to Twitter" /></a><a title="Add to Technorati" rel="nofollow" href="http://www.technorati.com/faves?add=http://www.testfacebook.com/2010/05/01/disclosure-agreements-and-the-like-button" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.technorati.com/faves?add=http_//www.testfacebook.com/2010/05/01/disclosure-agreements-and-the-like-button&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1084.png" alt="Add to Technorati" /></a><a title="Add to Yahoo Buzz" rel="nofollow" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F01%2Fdisclosure-agreements-and-the-like-button&amp;headline=Disclosure%20Agreements%20and%20the%20Like%20Button" target="_blank" onclick="pageTracker._trackPageview('/outgoing/buzz.yahoo.com/buzz?targetUrl=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F01_2Fdisclosure-agreements-and-the-like-button_amp_headline=Disclosure_20Agreements_20and_20the_20Like_20Button&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1094.png" alt="Add to Yahoo Buzz" /></a><a title="Add to Newsvine" rel="nofollow" href="http://www.newsvine.com/_wine/save?u=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F05%2F01%2Fdisclosure-agreements-and-the-like-button&amp;h=Disclosure%20Agreements%20and%20the%20Like%20Button" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.newsvine.com/_wine/save?u=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F05_2F01_2Fdisclosure-agreements-and-the-like-button_amp_h=Disclosure_20Agreements_20and_20the_20Like_20Button&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1104.png" alt="Add to Newsvine" /></a><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1114.png" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.testfacebook.com/2010/05/01/disclosure-agreements-and-the-like-button/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>K&amp;R and thoughts on the Graph API</title>
		<link>http://www.testfacebook.com/2010/04/25/kr-and-thoughts-on-the-grid-api/</link>
		<comments>http://www.testfacebook.com/2010/04/25/kr-and-thoughts-on-the-grid-api/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 00:32:36 +0000</pubDate>
		<dc:creator>Sander Smith</dc:creator>
				<category><![CDATA[Application development]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Graph API]]></category>

		<guid isPermaLink="false">http://www.testfacebook.com/?p=217</guid>
		<description><![CDATA[With this post I&#8217;m going to do something I promised myself I wouldn&#8217;t do while writing this blog - kvetch like an old grumpy man. But there&#8217;s a point:
While I was in San Francisco for f8, I had the good fortune to attend an informal meeting of Facebook developers to discuss the changes to the Platform [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-219" title="Kr_c_prog_lang" src="http://www.testfacebook.com/blog/wp-content/uploads/2010/04/Kr_c_prog_lang.jpg" alt="Kr_c_prog_lang" width="182" height="240" />With this post I&#8217;m going to do something I promised myself I wouldn&#8217;t do while writing this blog - kvetch like an old grumpy man. But there&#8217;s a point:</p>
<p>While I was in San Francisco for f8, I had the good fortune to attend an informal meeting of Facebook developers to discuss the changes to the Platform that were announced at f8. It was graciously hosted at the offices of one of the leading Facebook development companies in the city. They were beautiful offices high up in an historical building with great views, and more Red Bull than a developer could drink.</p>
<p>While there, I noticed a copy of the iconic <a href="http://en.wikipedia.org/wiki/The_C_Programming_Language_(book)" target="_blank" onclick="pageTracker._trackPageview('/outgoing/en.wikipedia.org/wiki/The_C_Programming_Language_book?referer=');">Kernighan and Ritchie </a>(K&amp;R) book on the C language sitting on a desk. What transpired was a short conversation between myself and one of the employees of the company:</p>
<p><strong>Me</strong>  : Very impressive, someone still reads K&amp;R.<br />
<strong>Him</strong> : &lt;Blank Stare&gt;<br />
<strong>Me</strong>  : The Kernighan and Ritchie book on C &#8211; it&#8217;s a classic<br />
<strong>Him</strong> : &lt;Blank Stare&gt;<br />
<strong>Me</strong>  : You should read this book, it&#8217;s so beautifully written. Look how thin it is, and the whole language is thoroughly described with examples and exercises.<br />
<strong>Him</strong> : Yeah, the Rails documentation is much thicker<br />
<strong>Me</strong>  : &lt;Blank Stare&gt;<br />
<strong>Him</strong> : That&#8217;s our CTO&#8217;s desk &#8211; it&#8217;s probably his book</p>
<p>Okay, so the point here is that I&#8217;m realizing that you can actually get a degree in Computer Science without ever reading K&amp;R. Without learning C. Without really understanding what goes on at all levels inside the computer without it all getting abstracted away. I was starting to feel bad that this whole drag-and-drop Rubyization of the world was creating developers who weren&#8217;t grounded in the basics. Who didn&#8217;t deeply understand how to properly analyze an algorithm. And who probably didn&#8217;t read stuff from guys like <a href="http://www.joelonsoftware.com/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.joelonsoftware.com/?referer=');">Joel Spolsky </a>who kvetched about it all.</p>
<p>But then something else crossed my mind. The reason I love C and K&amp;R so much is because it works on so many levels. You can use it to develop (practically) on the bare metal. You can use it to write customer-facing applications. You can use it to build a server. However, it&#8217;s becoming true that the higher off the metal you get, the harder it is to use C (or even C++). Web apps, Application Servers, Multi-tiered architectures, virtualization &#8211; all of these things are so much easier to do with more &#8220;modern&#8221; languages. And you know what, I&#8217;m okay with that.</p>
<p>So here&#8217;s my wish: Go get a copy of K&amp;R and read it. I used to own 3 copies: one for work, one for home, and one for lending out. Even if you never plan to use C, please read it. It&#8217;s the best technical documentation you&#8217;ll ever read, and something you should aspire to. And the reason this is true is that the language is robust and, most importantly, simple.</p>
<p>Which brings me to the new Facebook Graph API and the way it simplifies everything. I think we should all say <strong><em>Hurray</em></strong>. K&amp;R reminds us that simple does not have to mean not powerful. And what the Facebook guys did with this API reminds me of what Dr. Kernighan and Dr. Ritchie had done previously. Go read the book so you too can be inspired to continue building things that are both powerful and simple.</p>
<h3>Postscript</h3>
<p>For sheer entertainment value, you can&#8217;t beat the first version of the <a href="http://java.sun.com/docs/books/jls/first_edition/html/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/java.sun.com/docs/books/jls/first_edition/html/?referer=');">Java Language spec</a>. In particular, check out the index entry for <strong>index entries</strong> to see all of the great references they included, and see how many you can understand. Their description of multiple inheritance (<a href="http://java.sun.com/docs/books/jls/first_edition/html/javalang.doc2.html#14342" target="_blank" onclick="pageTracker._trackPageview('/outgoing/java.sun.com/docs/books/jls/first_edition/html/javalang.doc2.html_14342?referer=');">Section 20.3.5</a>) is inspired, <a href="http://snltranscripts.jt.org/75/75ishimmer.phtml" target="_blank" onclick="pageTracker._trackPageview('/outgoing/snltranscripts.jt.org/75/75ishimmer.phtml?referer=');">obscure</a>, and absolutely brilliant.</p>
<p class="getsocial" style="text-align:left;"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1002.png" alt="" /><a title="Add to Facebook" rel="nofollow" href="http://www.facebook.com/sharer.php?u=http://www.testfacebook.com/2010/04/25/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_//www.testfacebook.com/2010/04/25/&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1012.png" alt="Add to Facebook" /></a><a title="Add to Digg" rel="nofollow" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F04%2F25%2F&amp;title=K%26R%20and%20thoughts%20on%20the%20Grid%20API" target="_blank" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?phase=2_amp_url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F04_2F25_2F_amp_title=K_26R_20and_20thoughts_20on_20the_20Grid_20API&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1022.png" alt="Add to Digg" /></a><a title="Add to Del.icio.us" rel="nofollow" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F04%2F25%2F&amp;title=K%26R%20and%20thoughts%20on%20the%20Grid%20API" target="_blank" onclick="pageTracker._trackPageview('/outgoing/del.icio.us/post?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F04_2F25_2F_amp_title=K_26R_20and_20thoughts_20on_20the_20Grid_20API&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1032.png" alt="Add to Del.icio.us" /></a><a title="Add to Stumbleupon" rel="nofollow" href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F04%2F25%2F&amp;title=K%26R%20and%20thoughts%20on%20the%20Grid%20API" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.stumbleupon.com/submit?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F04_2F25_2F_amp_title=K_26R_20and_20thoughts_20on_20the_20Grid_20API&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1042.png" alt="Add to Stumbleupon" /></a><a title="Add to Reddit" rel="nofollow" href="http://reddit.com/submit?url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F04%2F25%2F&amp;title=K%26R%20and%20thoughts%20on%20the%20Grid%20API" target="_blank" onclick="pageTracker._trackPageview('/outgoing/reddit.com/submit?url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F04_2F25_2F_amp_title=K_26R_20and_20thoughts_20on_20the_20Grid_20API&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1052.png" alt="Add to Reddit" /></a><a title="Add to Blinklist" rel="nofollow" href="http://www.blinklist.com/index.php?Action=Blink/addblink.php&amp;Description=&amp;Url=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F04%2F25%2F&amp;Title=K%26R%20and%20thoughts%20on%20the%20Grid%20API" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.blinklist.com/index.php?Action=Blink/addblink.php_amp_Description=_amp_Url=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F04_2F25_2F_amp_Title=K_26R_20and_20thoughts_20on_20the_20Grid_20API&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1062.png" alt="Add to Blinklist" /></a><a title="Add to Twitter" rel="nofollow" href="http://twitter.com/home/?status=K%26R%20and%20thoughts%20on%20the%20Grid%20API+%40+http%3A%2F%2Fwww.testfacebook.com%2F2010%2F04%2F25%2F" target="_blank" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=K_26R_20and_20thoughts_20on_20the_20Grid_20API+_40+http_3A_2F_2Fwww.testfacebook.com_2F2010_2F04_2F25_2F&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1072.png" alt="Add to Twitter" /></a><a title="Add to Technorati" rel="nofollow" href="http://www.technorati.com/faves?add=http://www.testfacebook.com/2010/04/25/" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.technorati.com/faves?add=http_//www.testfacebook.com/2010/04/25/&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1082.png" alt="Add to Technorati" /></a><a title="Add to Yahoo Buzz" rel="nofollow" href="http://buzz.yahoo.com/buzz?targetUrl=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F04%2F25%2F&amp;headline=K%26R%20and%20thoughts%20on%20the%20Grid%20API" target="_blank" onclick="pageTracker._trackPageview('/outgoing/buzz.yahoo.com/buzz?targetUrl=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F04_2F25_2F_amp_headline=K_26R_20and_20thoughts_20on_20the_20Grid_20API&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1092.png" alt="Add to Yahoo Buzz" /></a><a title="Add to Newsvine" rel="nofollow" href="http://www.newsvine.com/_wine/save?u=http%3A%2F%2Fwww.testfacebook.com%2F2010%2F04%2F25%2F&amp;h=K%26R%20and%20thoughts%20on%20the%20Grid%20API" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.newsvine.com/_wine/save?u=http_3A_2F_2Fwww.testfacebook.com_2F2010_2F04_2F25_2F_amp_h=K_26R_20and_20thoughts_20on_20the_20Grid_20API&amp;referer=');"><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1102.png" alt="Add to Newsvine" /></a><img style="border:0;margin:0;padding:0;" src="http://getsocialserver.wordpress.com/files/2009/08/gs1112.png" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.testfacebook.com/2010/04/25/kr-and-thoughts-on-the-grid-api/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
