<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>DeveloperZen</title>
	
	<link>http://www.developerzen.com</link>
	<description>The essence of software development...</description>
	<lastBuildDate>Thu, 02 Sep 2010 01:55:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/EranKampf" /><feedburner:info uri="erankampf" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><item>
		<title>What the new Apple TV is really missing…</title>
		<link>http://feedproxy.google.com/~r/EranKampf/~3/0cAgYiDUwt8/</link>
		<comments>http://www.developerzen.com/2010/09/02/what-the-new-apple-tv-is-really-missing/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 01:52:54 +0000</pubDate>
		<dc:creator>Eran Kampf</dc:creator>
				<category><![CDATA[Software Industry]]></category>
		<category><![CDATA[AAPL]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[AppleTV]]></category>

		<guid isPermaLink="false">http://www.developerzen.com/2010/09/02/what-the-new-apple-tv-is-really-missing/</guid>
		<description><![CDATA[I was watching the Apple launch event the other day and I must say I was a bit disappointed. Don&#8217;t get me wrong the device is small and slick and the 99$ puts it in the right price range to compete with other streamers in the market.&#160; The problem is, that besides connecting to iTunes, [...]]]></description>
			<content:encoded><![CDATA[<p><img style="display: inline" alt="" align="right" src="http://images.apple.com/appletv/images/whatis_gallery_slide120100901.jpg" width="315" height="303" />I was watching the Apple launch event the other day and I must say I was a bit disappointed.    <br />Don&#8217;t get me wrong the device is small and slick and the 99$ puts it in the right price range to compete with other streamers in the market.&#160; <br />The problem is, that besides connecting to iTunes, the Apple TV <a href="http://www.engadget.com/2010/09/01/appletv-vs-the-competition-how-does-it-stack-up/">its not much different than the rest of the bunch</a>.    <br />Apple isn&#8217;t taking advantage of its platform strengths the same way its doing with its other devices…</p>
<h3>Why isn&#8217;t the Apple TV Social?</h3>
<p>Apple just launched its own social network – Ping. Why isn&#8217;t Ping data featured on the Apple TV?   <br />I&#8217;d like see what my friends watched, get recommendations and share stuff I Like. </p>
<h3>Where are the Apps?!</h3>
<p>The iPhone, iPod and iPad are thriving on a vibrant Apps market. Why can&#8217;t the Apple TV do the same?   <br />I was really expecting an iOS driven device where developers could enhance the Apple TV capabilities by providing apps specifically designed to be run on TV set with limited controls.</p>
<p>You could browse social networks (Facebook, Twitter etc.), or watch stock market information, or browse content from your favorite feeds and content providers (imagine something like the iPad&#8217;s <a href="http://www.flipboard.com/">Flipboard</a> your big LCD TV), or cook with your TV&#8217;s help (imagine <a href="http://www.jamieoliver.com/20-minute-meals/">Jamie Oliver&#8217;s iPhone app</a> on the big screen) or get apps from content providers (like local news channels for example) that&#8217;ll be able to stream their own content…    <br />There&#8217;s tons of stuff developers could do with the Apple TV if given the option.</p>
<p>Apple could have really taken the streamers to a whole new level with this…</p>
<p>In short, I wish Apple TV would be more like <a href="http://www.boxee.tv/">Boxee</a> <img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://storage.developerzen.com//2010/09/wlEmoticonsmile.png" /></p>
<p><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.developerzen.com/2009/09/29/what-would-twitter-do-with-100-million/" rel="bookmark" title="September 29, 2009">What would Twitter do with $100 million?</a></li>
<li><a href="http://www.developerzen.com/2010/01/28/3-takeaways-from-the-apple-ipad-launch/" rel="bookmark" title="January 28, 2010">3 Takeaways from the Apple iPad Launch</a></li>
<li><a href="http://www.developerzen.com/2009/12/14/iphone-vs-droid/" rel="bookmark" title="December 14, 2009">iPhone vs. Droid</a></li>
<li><a href="http://www.developerzen.com/2008/10/05/why-coming-up-with-an-iphone-killer-will-be-tough/" rel="bookmark" title="October 5, 2008">Why Coming Up With an iPhone Killer Will Be Tough…</a></li>
<li><a href="http://www.developerzen.com/2009/10/27/high-performance-at-massive-scale-lessons-learned-at-facebook/" rel="bookmark" title="October 27, 2009">High Performance at Massive Scale &ndash; Lessons learned at Facebook</a></li>
</ul>
<p><!-- Similar Posts took 8.860 ms --></p>

<p><a href="http://feedads.g.doubleclick.net/~a/Ydt4W4x5wQqxh6G6Fkv3-KOYujs/0/da"><img src="http://feedads.g.doubleclick.net/~a/Ydt4W4x5wQqxh6G6Fkv3-KOYujs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Ydt4W4x5wQqxh6G6Fkv3-KOYujs/1/da"><img src="http://feedads.g.doubleclick.net/~a/Ydt4W4x5wQqxh6G6Fkv3-KOYujs/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EranKampf?a=0cAgYiDUwt8:gSzZGEj4O20:XQ266DUsA9M"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=XQ266DUsA9M" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=0cAgYiDUwt8:gSzZGEj4O20:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=0cAgYiDUwt8:gSzZGEj4O20:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=0cAgYiDUwt8:gSzZGEj4O20:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=0cAgYiDUwt8:gSzZGEj4O20:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=0cAgYiDUwt8:gSzZGEj4O20:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=0cAgYiDUwt8:gSzZGEj4O20:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=0cAgYiDUwt8:gSzZGEj4O20:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=0cAgYiDUwt8:gSzZGEj4O20:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=0cAgYiDUwt8:gSzZGEj4O20:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=0cAgYiDUwt8:gSzZGEj4O20:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=0cAgYiDUwt8:gSzZGEj4O20:i0o2LV1JfPc"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=i0o2LV1JfPc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=0cAgYiDUwt8:gSzZGEj4O20:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EranKampf/~4/0cAgYiDUwt8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developerzen.com/2010/09/02/what-the-new-apple-tv-is-really-missing/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.developerzen.com/2010/09/02/what-the-new-apple-tv-is-really-missing/</feedburner:origLink></item>
		<item>
		<title>3 Takeaways from the Apple iPad Launch</title>
		<link>http://feedproxy.google.com/~r/EranKampf/~3/2eYJK2p-EI0/</link>
		<comments>http://www.developerzen.com/2010/01/28/3-takeaways-from-the-apple-ipad-launch/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 21:24:00 +0000</pubDate>
		<dc:creator>Eran Kampf</dc:creator>
				<category><![CDATA[Software Industry]]></category>
		<category><![CDATA[AAPL]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[iPad]]></category>

		<guid isPermaLink="false">http://www.developerzen.com/2010/01/28/3-takeaways-from-the-apple-ipad-launch/</guid>
		<description><![CDATA[A Computer That Doesn&#8217;t Feel Like A Computer Its not a geek device, its a computing appliance. The iPad is a computer with an iPhone OS. Not a full fledged Os like we’re used to, no multitasking, terminal, filesystems…&#160; Just a list of Apps that can be installed and updated from the net. Simple, elegant, [...]]]></description>
			<content:encoded><![CDATA[<h2>A Computer That Doesn&#8217;t Feel Like A Computer </h2>
<p><strong></strong><img style="display: inline; margin-left: 0px; margin-right: 0px" alt="" align="right" src="http://images.apple.com/ipad/design/images/accessories_20100127.jpg" width="240" height="235" />Its not a geek device, its a computing <em>appliance</em>. The iPad is a computer with an iPhone OS. Not a full fledged Os like we’re used to, no multitasking, terminal, filesystems…&#160; <br />Just a list of Apps that can be installed and updated from the net. Simple, elegant, and exactly what most people who aren’t computer geeks need.     <br />The perfect “laptop” for mom and dad…</p>
<p><strong></strong></p>
<p>  <br style="clear: both" /><br />
<h2>Apple Sells Relationship, Not Hardware</h2>
<p><a href="http://www.apple.com/ipad/"><img style="display: inline; margin-left: 0px; margin-right: 0px" alt="" align="right" src="http://images.apple.com/home/images/ipad_hero4_20100127.jpg" width="240" height="153" /></a>The iPad’s amazing pricing just shows that Apple is really counting on people using the heck out of their device… that means <em>buying</em> apps, books, music and videos. Its building a relationship with its customer that gets stronger and stronger with each purchase on iTunes.</p>
<p>Customers who have all their applications, games, books, music and videos on iTunes are locked in the Apple ecosystem. They’re vested in it…    <br />They’re not going to easily switch to an Android or a Zune…</p>
<p>HP\Dell\Asus\etc. only make money the moment you purchase their hardware (and on support and stuff) they make no difference if you use it or not. Microsoft too, only makes money when you buy your Windows license.</p>
<p>Apple on the other hand keeps monetizing its customers way after they left the Apple Store with their latest new device – when they buy content for their device. They keep and nurture a profitable relationship with their customers and thats a way better business than a one-off hardware\license sale… </p>
<p>(btw, Microsoft is learning about making profit from a relationship too… that’s what drives its Xbox business)</p>
<h2><strong>iBooks Can Change the Publishing Industry</strong></h2>
<p><a href="http://www.apple.com/ipad/"><img style="display: inline; margin-left: 0px; margin-right: 0px" alt="" align="right" src="http://images.apple.com/home/images/ipad_hero2_20100127.jpg" width="240" height="153" /></a>Before the iTunes Music store, buying songs at a ridiculous 99c price was inconceivable. The iPhone App Store did the same to applications, <a href="http://gizmodo.com/5378390/the-app-store-effect-are-iphone-apps-headed-for-oblivion">changing</a> the the economy (checkout this excellent <a href="http://www.ritholtz.com/blog/2010/01/the-app-economy/">App Economy</a> graphic) of application taking prices down.</p>
<p>Same could (and would probably) happend with books…&#160; but there’s more!</p>
<p>Unlike Amazin’s Kindle (and Sony’s reader and the rest of the bunch) which support a very limited interaction &#8211; text and some grey imagery – the iPad comes with a big, colorful touchscreen and a CPU that can handle 3D gaming.    <br />The iPad’s hardware is perfect for interactive content and the Times Magazine demo showed during the launch shows a glimpse of&#160; how our future books and magazines should look and feel on electronic media.     <br />Electronic “print” is going to be much more interactive and rich which means the entire process of book production changes.     <br />The publishers’ role changes from mass printing and delivery to production of interactive content, the way authors work changes, and distribution costs drop…</p>
<p><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.developerzen.com/2010/09/02/what-the-new-apple-tv-is-really-missing/" rel="bookmark" title="September 2, 2010">What the new Apple TV is really missing&hellip;</a></li>
<li><a href="http://www.developerzen.com/2008/10/05/why-coming-up-with-an-iphone-killer-will-be-tough/" rel="bookmark" title="October 5, 2008">Why Coming Up With an iPhone Killer Will Be Tough…</a></li>
<li><a href="http://www.developerzen.com/2009/12/14/iphone-vs-droid/" rel="bookmark" title="December 14, 2009">iPhone vs. Droid</a></li>
<li><a href="http://www.developerzen.com/2009/10/29/building-an-iphone-application/" rel="bookmark" title="October 29, 2009">Building an iPhone Application</a></li>
<li><a href="http://www.developerzen.com/2009/07/25/moving-your-application-to-amazon-s-cloud/" rel="bookmark" title="July 25, 2009">Moving Your Application to Amazon&rsquo;s Cloud</a></li>
</ul>
<p><!-- Similar Posts took 10.370 ms --></p>

<p><a href="http://feedads.g.doubleclick.net/~a/RGvO3G91gzlw-kviAyOPOQeDWGo/0/da"><img src="http://feedads.g.doubleclick.net/~a/RGvO3G91gzlw-kviAyOPOQeDWGo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/RGvO3G91gzlw-kviAyOPOQeDWGo/1/da"><img src="http://feedads.g.doubleclick.net/~a/RGvO3G91gzlw-kviAyOPOQeDWGo/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EranKampf?a=2eYJK2p-EI0:HvrxlVs2oQg:XQ266DUsA9M"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=XQ266DUsA9M" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=2eYJK2p-EI0:HvrxlVs2oQg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=2eYJK2p-EI0:HvrxlVs2oQg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=2eYJK2p-EI0:HvrxlVs2oQg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=2eYJK2p-EI0:HvrxlVs2oQg:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=2eYJK2p-EI0:HvrxlVs2oQg:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=2eYJK2p-EI0:HvrxlVs2oQg:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=2eYJK2p-EI0:HvrxlVs2oQg:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=2eYJK2p-EI0:HvrxlVs2oQg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=2eYJK2p-EI0:HvrxlVs2oQg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=2eYJK2p-EI0:HvrxlVs2oQg:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=2eYJK2p-EI0:HvrxlVs2oQg:i0o2LV1JfPc"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=i0o2LV1JfPc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=2eYJK2p-EI0:HvrxlVs2oQg:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EranKampf/~4/2eYJK2p-EI0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developerzen.com/2010/01/28/3-takeaways-from-the-apple-ipad-launch/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.developerzen.com/2010/01/28/3-takeaways-from-the-apple-ipad-launch/</feedburner:origLink></item>
		<item>
		<title>The New Google App Engine Blobstore API – First Thoughts</title>
		<link>http://feedproxy.google.com/~r/EranKampf/~3/21jNJPBGIDo/</link>
		<comments>http://www.developerzen.com/2009/12/15/the-new-google-app-engine-blobstore-api-first-thoughts/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 10:56:30 +0000</pubDate>
		<dc:creator>Eran Kampf</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[AppEngine]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://www.developerzen.com/2009/12/15/first-thoughts-on-the-new-google-app-engine-blobstore/</guid>
		<description><![CDATA[Google’s App Engine 1.3.0 was released yesterday along with a brand new Blobstore API allowing the storage and serving of files up to 50MB. Store and Serve &#8211; Files can be uploaded and stored as blobs, to be served later in response to user requests. Developers can build their own organizational structures and access controls [...]]]></description>
			<content:encoded><![CDATA[<p>Google’s App Engine 1.3.0 was <a href="http://googleappengine.blogspot.com/2009/12/app-engine-sdk-130-released-including.html">released</a> yesterday along with a brand new Blobstore API allowing the storage and serving of files up to 50MB.</p>
<blockquote><p><b>Store and Serve</b> &#8211; Files can be uploaded and stored as blobs, to be served later in response to user requests. Developers can build their own organizational structures and access controls on top of blobs.</p>
</blockquote>
<p>The way this API works is pretty simple. To upload files you can an <a href="http://code.google.com/appengine/docs/python/blobstore/overview.html#Uploading_a_Blob">API that manufactures a POST URL</a> that web forms requests containing files data are submitted to. App Engine processes the POST request and created the blobs in its storage (and BlobInfo objects – readonly datastore entities containing the metadata on each blob). It then rewrites the request, removing the uploaded files data and replacing them a <em>Blobstore key</em> pointing to the stored blob in the App Engine Blobstore, and calls <em>your handler</em> with this data.</p>
<p>To <a href="http://code.google.com/appengine/docs/python/blobstore/overview.html#Serving_a_Blob">serve an existing blob</a> in your app, you put a special header in the response containing the blob key. App Engine replaces the body of the response with the content of the blob.</p>
<p>Now this is pretty straightforward but there are few concerns with this approach:</p>
<p><strong>1. What about request validation (authentication\authorization etc.)?</strong></p>
<p>When uploading files, the request reaches your code only after blobs have already been processed and stored. This means that you can only handle authentication\authorization or even form validation <u>after</u> data has been stored.</p>
<p>This means you’ll have to write code to clean the relevant blob entries in case of failed authentication\authorization\validation – more datastore API calls, more CPU…</p>
<p>It also means that without taking care of these special cases any newbie hacker with a simple snifter (or FireBug) <strike>can start uploading (and potentially) serving files off your service</strike> (see update).</p>
<p><strong>2. No way to preprocess data</strong></p>
<p>As the files data is already stored prior to the program’s handler being called, there’s no way to preprocess submitted data other than reading it from the store, processing it and storing it again.</p>
<p>There’s also no straightforward API to access or store blob data in code, so the above process has to be implementing using URL fetching (fetch the image via http call, process it, store it again using http POST call)</p>
<p>There must be a way for the Google App Engine team to wrap this app nicely and provide a clean API for this to be done efficiently (along with solving the validation problem described before)</p>
<p>&#160;</p>
<p>As the Blogstore API is still in <em>experimental</em> phase I guess we’ll see some quick progress made on its development and hopefully the Google team will solve the issues above.</p>
<p>Atleast now there’s a beginning of an alternative to Amazon S3 for AppEngine applications.</p>
<p>&#160;</p>
<p><strong>Update:</strong></p>
<p>Bret Slatkin <a href="http://www.cloudave.com/link/the-new-google-app-engine-blobstore-api-first-thoughts#comments-50000000667098">notes</a> that when the API manufactures the POST URL to be used for uploading the files, it creates a unique one-time URL which which mitigates any potential sniffing.     <br />This fits perfectly for the scenario when you’re rendering a web form to be submitted by the user. But, it makes things harder if you’re trying to provide a REST API that allows uploading files (think of something like TwitPic for example). In this case you’ll have to write your own render that simulates what a web form would do (get the files, create random POST URL, call it, …)     </p>
<p><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.developerzen.com/2009/10/29/building-an-iphone-application/" rel="bookmark" title="October 29, 2009">Building an iPhone Application</a></li>
<li><a href="http://www.developerzen.com/2009/07/25/moving-your-application-to-amazon-s-cloud/" rel="bookmark" title="July 25, 2009">Moving Your Application to Amazon&rsquo;s Cloud</a></li>
<li><a href="http://www.developerzen.com/2009/01/11/aspnet-mvc-rss-feed-action-result/" rel="bookmark" title="January 11, 2009">ASP.NET MVC RSS Feed Action Result</a></li>
<li><a href="http://www.developerzen.com/2008/10/09/microsoft-next-killer-os-is-sharepoint/" rel="bookmark" title="October 9, 2008">Microsoft&#8217;s Next Killer OS is&hellip; SharePoint?</a></li>
<li><a href="http://www.developerzen.com/2008/10/30/microsoft-calls-openid-a-de-facto-login-standard/" rel="bookmark" title="October 30, 2008">Microsoft calls OpenID a De Facto Login Standard</a></li>
</ul>
<p><!-- Similar Posts took 18.565 ms --></p>

<p><a href="http://feedads.g.doubleclick.net/~a/G_T1OCl2ZaDhbzthoTqNT2XN7OE/0/da"><img src="http://feedads.g.doubleclick.net/~a/G_T1OCl2ZaDhbzthoTqNT2XN7OE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/G_T1OCl2ZaDhbzthoTqNT2XN7OE/1/da"><img src="http://feedads.g.doubleclick.net/~a/G_T1OCl2ZaDhbzthoTqNT2XN7OE/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EranKampf?a=21jNJPBGIDo:M2f-bKEfXHs:XQ266DUsA9M"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=XQ266DUsA9M" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=21jNJPBGIDo:M2f-bKEfXHs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=21jNJPBGIDo:M2f-bKEfXHs:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=21jNJPBGIDo:M2f-bKEfXHs:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=21jNJPBGIDo:M2f-bKEfXHs:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=21jNJPBGIDo:M2f-bKEfXHs:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=21jNJPBGIDo:M2f-bKEfXHs:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=21jNJPBGIDo:M2f-bKEfXHs:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=21jNJPBGIDo:M2f-bKEfXHs:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=21jNJPBGIDo:M2f-bKEfXHs:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=21jNJPBGIDo:M2f-bKEfXHs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=21jNJPBGIDo:M2f-bKEfXHs:i0o2LV1JfPc"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=i0o2LV1JfPc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=21jNJPBGIDo:M2f-bKEfXHs:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EranKampf/~4/21jNJPBGIDo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developerzen.com/2009/12/15/the-new-google-app-engine-blobstore-api-first-thoughts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.developerzen.com/2009/12/15/the-new-google-app-engine-blobstore-api-first-thoughts/</feedburner:origLink></item>
		<item>
		<title>iPhone vs. Droid</title>
		<link>http://feedproxy.google.com/~r/EranKampf/~3/5pIeBoyyecs/</link>
		<comments>http://www.developerzen.com/2009/12/14/iphone-vs-droid/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 07:23:04 +0000</pubDate>
		<dc:creator>Eran Kampf</dc:creator>
				<category><![CDATA[Humor]]></category>
		<category><![CDATA[Software Industry]]></category>
		<category><![CDATA[Android]]></category>
		<category><![CDATA[Droid]]></category>
		<category><![CDATA[Galaxy]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Samsung]]></category>

		<guid isPermaLink="false">http://www.developerzen.com/?p=2373</guid>
		<description><![CDATA[I found the following comparison between the iPhone and the Droid ads hilarious. Especially, the following Droid bullets: It is fast and it despises aesthetics. It is packaged inside missiles launched by stealth jets. (*) It is a robot and should mostly be handled by other robots. Droid is to be used with robotic hands [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="iphone-vs-motorola-droid-500x362" border="0" alt="iphone-vs-motorola-droid-500x362" align="right" src="http://storage.developerzen.com//2009/12/iphonevsmotoroladroid500x362_thumb.jpg" width="244" height="178" />
<p>I found the <a href="http://mislav.uniqpath.com/iphone-droid-ads/">following comparison</a> between the iPhone and the Droid ads hilarious.</p>
<p>Especially, the following Droid bullets:</p>
<ul>
<li>It is fast and it despises aesthetics. </li>
<li>It is packaged inside missiles launched by stealth jets. <em>(*)</em> </li>
<li>It is a robot and should mostly be handled by other robots. </li>
<li>Droid is to be used with robotic hands in a low-lit hi-tech laboratory or warehouse.</li>
</ul>
<p>Actually, in one of the ads they say they Droid is like a Scud, a soviet missile that’s not known for its accuracy…</p>
<p>In any case, I’ve used an Android device before (the <a href="http://en.wikipedia.org/wiki/Samsung_i7500">Samsung Galaxy</a>) and I can’t really find anything good to say about the device or the Android OS (and its Apps Market).    <br />I can’t believe there are people in the blogsphere calling the Galaxy and Droid an iPhone alternative…&#160; </p>
<p><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.developerzen.com/2010/09/02/what-the-new-apple-tv-is-really-missing/" rel="bookmark" title="September 2, 2010">What the new Apple TV is really missing&hellip;</a></li>
<li><a href="http://www.developerzen.com/2008/10/05/why-coming-up-with-an-iphone-killer-will-be-tough/" rel="bookmark" title="October 5, 2008">Why Coming Up With an iPhone Killer Will Be Tough…</a></li>
<li><a href="http://www.developerzen.com/2010/01/28/3-takeaways-from-the-apple-ipad-launch/" rel="bookmark" title="January 28, 2010">3 Takeaways from the Apple iPad Launch</a></li>
<li><a href="http://www.developerzen.com/2009/06/16/facebook-hadoop-and-hive/" rel="bookmark" title="June 16, 2009">Facebook, Hadoop and Hive</a></li>
<li><a href="http://www.developerzen.com/2009/02/02/creating-an-attractive-internet-company-its-all-about-emotions/" rel="bookmark" title="February 2, 2009">Creating an Attractive Internet Company &ndash; It&rsquo;s All About Emotions</a></li>
</ul>
<p><!-- Similar Posts took 15.594 ms --></p>

<p><a href="http://feedads.g.doubleclick.net/~a/yvztAXqQ8AtrEPEfOZl5IMna2P0/0/da"><img src="http://feedads.g.doubleclick.net/~a/yvztAXqQ8AtrEPEfOZl5IMna2P0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/yvztAXqQ8AtrEPEfOZl5IMna2P0/1/da"><img src="http://feedads.g.doubleclick.net/~a/yvztAXqQ8AtrEPEfOZl5IMna2P0/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EranKampf?a=5pIeBoyyecs:UDs8InyzlUU:XQ266DUsA9M"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=XQ266DUsA9M" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=5pIeBoyyecs:UDs8InyzlUU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=5pIeBoyyecs:UDs8InyzlUU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=5pIeBoyyecs:UDs8InyzlUU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=5pIeBoyyecs:UDs8InyzlUU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=5pIeBoyyecs:UDs8InyzlUU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=5pIeBoyyecs:UDs8InyzlUU:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=5pIeBoyyecs:UDs8InyzlUU:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=5pIeBoyyecs:UDs8InyzlUU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=5pIeBoyyecs:UDs8InyzlUU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=5pIeBoyyecs:UDs8InyzlUU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=5pIeBoyyecs:UDs8InyzlUU:i0o2LV1JfPc"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=i0o2LV1JfPc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=5pIeBoyyecs:UDs8InyzlUU:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EranKampf/~4/5pIeBoyyecs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developerzen.com/2009/12/14/iphone-vs-droid/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.developerzen.com/2009/12/14/iphone-vs-droid/</feedburner:origLink></item>
		<item>
		<title>Insight: Hiring Programmers</title>
		<link>http://feedproxy.google.com/~r/EranKampf/~3/QglruaCHbd8/</link>
		<comments>http://www.developerzen.com/2009/11/30/insight-hiring-programmers/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 16:13:00 +0000</pubDate>
		<dc:creator>Eran Kampf</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[hiring]]></category>
		<category><![CDATA[insights]]></category>

		<guid isPermaLink="false">http://www.developerzen.com/?p=2362</guid>
		<description><![CDATA[There’s a very interesting blog post over at Raw Thought on the topic of hiring programmers. It offers the following insight on hiring: There are three questions you have when you’re hiring a programmer (or anyone, for that matter): Are they smart? Can they get stuff done? Can you work with them? Someone who’s smart [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://storage.developerzen.com//2009/11/crowd_standout.jpg"><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="crowd_standout" border="0" alt="crowd_standout" align="right" src="http://storage.developerzen.com//2009/11/crowd_standout_thumb.jpg" width="211" height="240" /></a> There’s a very interesting blog post over at <a href="http://www.aaronsw.com/weblog/hiring">Raw Thought</a> on the topic of hiring programmers. It offers the following insight on hiring:</p>
<blockquote><p>There are three questions you have when you’re hiring a programmer (or anyone, for that matter): </p>
<ul>
<li>Are they smart? </li>
<li>Can they get stuff done? </li>
<li>Can you work with them? </li>
</ul>
<p>Someone who’s smart but doesn’t get stuff done should be your <em>friend</em>, not your <em>employee</em>. You can talk your problems over with them while they procrastinate on their actual job. </p>
<p>Someone who gets stuff done but isn’t smart is <em>inefficient</em>: non-smart people get stuff done by doing it the hard way and working with them is slow and frustrating. </p>
<p>Someone you can’t work with, you can’t work with.</p>
</blockquote>
<p>I think its a much better and more effective approach than the traditional method of asking cheesy annoying riddles and problems…</p>
<p><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.developerzen.com/2009/02/04/no-hope-for-traditional-media-companies/" rel="bookmark" title="February 4, 2009">No Hope for Traditional Media Companies?</a></li>
<li><a href="http://www.developerzen.com/2008/12/05/99-ways-to-become-a-better-developer/" rel="bookmark" title="December 5, 2008">99 Ways to Become a Better Developer</a></li>
<li><a href="http://www.developerzen.com/2009/02/06/give-up-control-think-distributed-dld-2009-summary/" rel="bookmark" title="February 6, 2009">Give Up Control, Think Distributed &ndash; DLD 2009 Summary</a></li>
<li><a href="http://www.developerzen.com/2008/10/30/office-web-applications/" rel="bookmark" title="October 30, 2008">Office Web Applications</a></li>
<li><a href="http://www.developerzen.com/2009/04/30/a-visit-to-maraboo-restaurants-as-tribes-in-the-digital-age/" rel="bookmark" title="April 30, 2009">A Visit to Maraboo, Restaurants as Tribes in the Digital Age</a></li>
</ul>
<p><!-- Similar Posts took 12.477 ms --></p>

<p><a href="http://feedads.g.doubleclick.net/~a/KUUJMc_ng4Cdm_d0fCSqb-MdX_k/0/da"><img src="http://feedads.g.doubleclick.net/~a/KUUJMc_ng4Cdm_d0fCSqb-MdX_k/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/KUUJMc_ng4Cdm_d0fCSqb-MdX_k/1/da"><img src="http://feedads.g.doubleclick.net/~a/KUUJMc_ng4Cdm_d0fCSqb-MdX_k/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EranKampf?a=QglruaCHbd8:JYTUiRpQBM4:XQ266DUsA9M"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=XQ266DUsA9M" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=QglruaCHbd8:JYTUiRpQBM4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=QglruaCHbd8:JYTUiRpQBM4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=QglruaCHbd8:JYTUiRpQBM4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=QglruaCHbd8:JYTUiRpQBM4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=QglruaCHbd8:JYTUiRpQBM4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=QglruaCHbd8:JYTUiRpQBM4:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=QglruaCHbd8:JYTUiRpQBM4:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=QglruaCHbd8:JYTUiRpQBM4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=QglruaCHbd8:JYTUiRpQBM4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=QglruaCHbd8:JYTUiRpQBM4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=QglruaCHbd8:JYTUiRpQBM4:i0o2LV1JfPc"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=i0o2LV1JfPc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=QglruaCHbd8:JYTUiRpQBM4:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EranKampf/~4/QglruaCHbd8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developerzen.com/2009/11/30/insight-hiring-programmers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.developerzen.com/2009/11/30/insight-hiring-programmers/</feedburner:origLink></item>
		<item>
		<title>Dov Moran’s Latest Invention: A Miniature Company</title>
		<link>http://feedproxy.google.com/~r/EranKampf/~3/Mudbrbd8Mxc/</link>
		<comments>http://www.developerzen.com/2009/11/15/dov-morans-latest-invention-a-miniature-company/#comments</comments>
		<pubDate>Sat, 14 Nov 2009 22:41:56 +0000</pubDate>
		<dc:creator>Eran Kampf</dc:creator>
				<category><![CDATA[Software Industry]]></category>
		<category><![CDATA[Dov Moran]]></category>
		<category><![CDATA[Modu]]></category>

		<guid isPermaLink="false">http://www.developerzen.com/2009/11/15/dov-morans-latest-invention-a-miniature-company/</guid>
		<description><![CDATA[This couldn’t be more ironic. The title for the presentation by Dov Moran, CEO and Chairman of Modu, at the upcoming TheMarker convention: (translated from Hebrew: “How to go from a huge company to a large one, from large to medium, from medium to small and from small to miniature, or the opposite”) (via Ido [...]]]></description>
			<content:encoded><![CDATA[<p>This couldn’t be <a href="http://www.haaretz.com/hasen/spages/1127679.html">more ironic</a>. The title for the presentation by <a href="http://www.crunchbase.com/person/dov-moran">Dov Moran</a>, CEO and Chairman of <a href="http://www.haaretz.com/hasen/spages/1127679.html">Modu</a>, at the upcoming TheMarker convention: (translated from Hebrew: “<em>How to go from a huge company to a large one, from large to medium, from medium to small and from small to miniature, or the opposite</em>”)</p>
<p><a href="http://storage.developerzen.com//2009/11/dovmoranlecture.jpg"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="dov-moran-lecture" border="0" alt="dov-moran-lecture" src="http://storage.developerzen.com//2009/11/dovmoranlecture_thumb.jpg" width="470" height="320" /></a>(via <a href="http://www.room404.net/?p=23085">Ido Keinan</a>) </p>
<p><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.developerzen.com/2008/11/15/wordcamp-israel-2008/" rel="bookmark" title="November 15, 2008">WordCamp Israel 2008</a></li>
<li><a href="http://www.developerzen.com/2009/10/27/high-performance-at-massive-scale-lessons-learned-at-facebook/" rel="bookmark" title="October 27, 2009">High Performance at Massive Scale &ndash; Lessons learned at Facebook</a></li>
<li><a href="http://www.developerzen.com/2009/04/25/weekend-inspirations-%e2%80%93-big-data-visualizations-innovative-man-machine-interactions/" rel="bookmark" title="April 25, 2009">Weekend Inspirations – Big Data Visualizations,  Innovative Man-Machine Interactions</a></li>
<li><a href="http://www.developerzen.com/2009/04/05/microsoft-can-clone-twitter/" rel="bookmark" title="April 5, 2009">Microsoft Can Clone Twitter?!</a></li>
<li><a href="http://www.developerzen.com/2008/10/19/the-morning-after-stressed-out-blogger-lashes-out-on-twitter/" rel="bookmark" title="October 19, 2008">The Morning After (Stressed Out Blogger Lashes Out On Twitter)</a></li>
</ul>
<p><!-- Similar Posts took 8.160 ms --></p>

<p><a href="http://feedads.g.doubleclick.net/~a/VJ0VAfbf0olyhXQ_pIpyfRooCRE/0/da"><img src="http://feedads.g.doubleclick.net/~a/VJ0VAfbf0olyhXQ_pIpyfRooCRE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/VJ0VAfbf0olyhXQ_pIpyfRooCRE/1/da"><img src="http://feedads.g.doubleclick.net/~a/VJ0VAfbf0olyhXQ_pIpyfRooCRE/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EranKampf?a=Mudbrbd8Mxc:ckEdg0t8i1U:XQ266DUsA9M"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=XQ266DUsA9M" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=Mudbrbd8Mxc:ckEdg0t8i1U:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=Mudbrbd8Mxc:ckEdg0t8i1U:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=Mudbrbd8Mxc:ckEdg0t8i1U:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=Mudbrbd8Mxc:ckEdg0t8i1U:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=Mudbrbd8Mxc:ckEdg0t8i1U:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=Mudbrbd8Mxc:ckEdg0t8i1U:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=Mudbrbd8Mxc:ckEdg0t8i1U:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=Mudbrbd8Mxc:ckEdg0t8i1U:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=Mudbrbd8Mxc:ckEdg0t8i1U:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=Mudbrbd8Mxc:ckEdg0t8i1U:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=Mudbrbd8Mxc:ckEdg0t8i1U:i0o2LV1JfPc"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=i0o2LV1JfPc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=Mudbrbd8Mxc:ckEdg0t8i1U:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EranKampf/~4/Mudbrbd8Mxc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developerzen.com/2009/11/15/dov-morans-latest-invention-a-miniature-company/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.developerzen.com/2009/11/15/dov-morans-latest-invention-a-miniature-company/</feedburner:origLink></item>
		<item>
		<title>Building an iPhone Application</title>
		<link>http://feedproxy.google.com/~r/EranKampf/~3/miblbMjTGMg/</link>
		<comments>http://www.developerzen.com/2009/10/29/building-an-iphone-application/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 16:25:00 +0000</pubDate>
		<dc:creator>Eran Kampf</dc:creator>
				<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[AppEngine]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[Fiddme]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.developerzen.com/?p=2349</guid>
		<description><![CDATA[On the past few weeks I’ve been working on a new venture centered around the iPhone. The process of building our app has been quite an adventure and we’ve experimented with several technologies that were new to us before reaching our current technology stack. As we’ve finally got our stuff together and made an initial [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://storage.developerzen.com//2009/10/fiddmeteaser.png"><img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="fiddme-teaser" border="0" alt="fiddme-teaser" align="right" src="http://storage.developerzen.com//2009/10/fiddmeteaser_thumb.png" width="247" height="448" /></a>On the past few weeks I’ve been working on a new venture centered around the iPhone. The process of building our app has been quite an adventure and we’ve experimented with several technologies that were new to us before reaching our current technology stack.     <br />As we’ve finally got our stuff together and made an initial release to a group of testers I thought I’d share some of the technology choices we’ve made and the reasons behind them.</p>
<h3>First some information about the team</h3>
<p>&#8230;because technology choices are affected by the team’s technical skillset.</p>
<ul>
<li>We’re 3 developers (<a href="http://twitter.com/yosit">Yosi</a>, <a href="http://twitter.com/UdiMilo">Udi</a> and myself) and one designer (the awesome <a href="http://twitter.com/naorsuki">Naor Suki</a>). </li>
<li>We’ve allocated two developers for the iPhone and one for the backend APIs &amp; website. </li>
<li>We’re all veteran developers with experience mostly on Microsoft’s Development stack. This project meant going out of our comfort zone to a whole new set of technologies. Experience does make a difference easing the learning curve… </li>
</ul>
<h3>iPhone Development</h3>
<ul>
<li><strong><a href="http://www.devworld.apple.com/iphone/">iPhone SDK</a></strong>: This one is obvious right? We looked for alternatives for writing Objective-C. Unfortunately, Flash isn’t available for the iPhone (yet?) and <a href="http://monotouch.net/">MonoTouch</a> looked promising but isn’t quite there…       <br />Besides its always better to be developing on the platform most developers are using which means there’s a big community that can help when you get stuck. Being on Apple’s official stack also means we get the latest features without having to wait for a 3rd party to convert them…       <br />To be perfectly honest, I’m not on the iPhone side of the development and did not actually write a single line of Objective-C code but I noticed it took my teammates 1-2 weeks to get the hang of it.       <br />To me, the fact that the iPhone App store is so successful and has so many apps which Objective-C as the development language (which is definitely harder than modern languages – Java etc.) makes Apple’s achievement even more amazing…
<ul>
<li>If you’re beginning iPhone development you have to checkout the Stanford iPhone development class on iTunes University &#8211; <a title="http://www.stanford.edu/class/cs193p/cgi-bin/index.php" href="http://www.stanford.edu/class/cs193p/cgi-bin/index.php">http://www.stanford.edu/class/cs193p/cgi-bin/index.php</a> </li>
</ul>
</li>
<li><a href="http://github.com/blog/389-three20-iphone-ui-goodness"><strong>Three20</strong></a>: Handful of UI extractions from the Facebook iPhone app and open-sourced by the developer – <a href="http://github.com/joehewitt">joehewitt</a>. His <a href="http://joehewitt.com/post/the-three20-project">announcement blog post</a> details the libraries it contains, shows some demos etc.       <br />The source code is also a great learning tool for how stuff is done on the iPhone. </li>
<li><strong><a href="http://code.google.com/p/json-framework/">json-framework</a></strong>: This is a pretty slick JSON parser for the iPhone. Hand parsing JSON in obj-C would not have been fun. This made it easy. I&#8217;m pretty sure I followed <a href="http://www.mobileorchard.com/tutorial-json-over-http-on-the-iphone/">this tutorial</a> to get it up and running. </li>
<li><strong><a href="http://allseeing-i.com/ASIHTTPRequest/">ASIHttpRequest</a></strong>: A Nice Http framework that enabled easily handling asynchronous Http requests. </li>
<li><a href="http://stackoverflow.com"><strong>Stackoverflow</strong></a> is an invaluable resource for asking question and solving all sort of problems. As <a href="http://twitter.com/yosit">Yosi</a>, who’s been concentrating on the iPhone side of our development, puts it “I dont think any iPhone development could be done without StackOverflow” </li>
<li><strong><a href="http://mattgemmell.com/2008/02/22/mgtwitterengine-twitter-from-cocoa">MGTwitterEngine</a>:</strong> an awesome objective-c wrapper for twitter api which we based our api on.</li>
<li><a href="http://code.google.com/apis/analytics/docs/tracking/mobileAppsTracking.html"><strong>Google Analytics SDK</strong></a>: A library enabling sending information to <a href="http://analytics.google.com">Google Analytics</a> from the iPhone. This is important for measuring the ways users interact with certain flows on our program. For example, it helps us measure the conversion on our signup flow – how many users go through the signup flow and finish, and if they dont, what steps makes them go away?      <br />This kind of functionality is essential to measuring and improving UX flows…</li>
<li><a href="http://code.google.com/p/google-toolbox-for-mac/"><strong>Google Toolbox for Mac</strong></a>: A library for working with the different services exposed by Google.</li>
</ul>
<h5>Backend Development</h5>
<p>After playing around with ASP.NET MVC (which we all had background with having come from the Microsoft ecosystem) and Ruby on Rails (because its cheaper to host than ASP.NET and way simple, faster, more fun to use IMHO) we’ve finally settled for Google AppEngine and django (Python).</p>
<p>We made the decision to base our development on django rather than on Google’s own webapp framework for the following reasons:</p>
<ul>
<li>Lots of out of-of-the-box features. django has been out there for quit a while and is bundled with lots of features (like an easy to build admin interface, authentication system, validation system etc.) </li>
<li>Big community. There are lots of people doing django out there lots of open source libraries and samples available. As a rule of thumb its always better to be on the majority side… </li>
<li>Not specific to Google AppEngine. django is a standalone Python web development platform. While some parts of our code has to be AppEngine specific it would still be considerably easier to move away from AppEngine (if we ever decide to do so) than if we were entirely Google specific. </li>
</ul>
<p>Google AppEngine also have Java support. But using Python with django is way easier and has a lot more support when it comes to both AppEngine and web development. Seriously, if you’re thinking of using Java, Don’t! take the leap and go with Python…</p>
<p>Libraries we’ve used:</p>
<ul>
<li><strong><a href="http://code.google.com/p/app-engine-patch/">app-engine-patch</a></strong>: This library is absolutely amazing and a must if you’re using django on AppEngine. Since the AppEngine data store API is not compatible with django’s API, a lot of the really cool time-saving features of django will simply not run on AppEngine (such as the admin UI, authentication and basically anything that requires data access). app-engine-patch loads django and patches it so it is compatible with the AppEngine API making all those cool django features work. This one is <strong>a must</strong>! You just download their project template and start developing your application on top of it. </li>
<li><a href="http://pydev.org/"><strong>PyDev</strong></a>: An Eclipse plugin for editing and debugging Python and AppEngine applications. It might sound obvious but I was using was actually using Notepad++ (on Windows)&#160; for development until I found out there’s a decent IDE I could use… </li>
<li><a href="http://bitbucket.org/jespern/django-piston/wiki/Home"><strong>Piston</strong></a>: a django library for developing REST-APIs. While its not entirely compatible with AppEngine it took a simple forking to edit those parts out… </li>
<li><a href="http://code.google.com/p/geomodel/"><strong>GeoModel</strong></a>: provides basic indexing and querying of geospatial data on Google AppEngine. </li>
</ul>
<p>Also, I would recommend taking the time to learn and understand how the AppEngine datastore works so you’ll understand how to build your datamodel to run efficiently on Google’s platform.   <br />The following two presentations from Google I/O are invaluable:</p>
<ul>
<li><a href="http://code.google.com/events/io/2009/sessions/BuildingScalableComplexApps.html">Building Scalable, Complex Apps on App Engine</a> <a href="http://www.scribd.com/doc/16952419/Building-scalable-complex-apps-on-App-Engine">(pdf</a>)</li>
<li><a href="http://sites.google.com/site/io/under-the-covers-of-the-google-app-engine-datastore">App Engine Datastore Under the Covers</a></li>
<li><a href="http://sites.google.com/site/io/building-scalable-web-applications-with-google-app-engine">Building Scalable Web Applications with Google App Engine</a></li>
<li><a href="http://sites.google.com/site/io/working-with-google-app-engine-models">Working with Google App Engine Models</a></li>
</ul>
<p>So what do <strong>you</strong> think? If you’re developing an iPhone app, I’m very interested to know what were your technology choices and reasoning…</p>
<p>Oh, and if you have an iPhone and you live in Israel (its a local app so we’re limiting our efforts to Israel at the moment) please head over to our <a href="http://fidd.me/signup">beta signup form</a> and signup <img src='http://www.developerzen.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.developerzen.com/2009/12/15/the-new-google-app-engine-blobstore-api-first-thoughts/" rel="bookmark" title="December 15, 2009">The New Google App Engine Blobstore API &#8211; First Thoughts</a></li>
<li><a href="http://www.developerzen.com/2008/10/21/google-chrome-is-a-failure-surprised/" rel="bookmark" title="October 21, 2008">Google Chrome is a Failure&hellip; Surprised?</a></li>
<li><a href="http://www.developerzen.com/2008/12/31/a-years-worth-of-popular-posts/" rel="bookmark" title="December 31, 2008">A Year&rsquo;s Worth of Popular Posts</a></li>
<li><a href="http://www.developerzen.com/2008/10/05/why-coming-up-with-an-iphone-killer-will-be-tough/" rel="bookmark" title="October 5, 2008">Why Coming Up With an iPhone Killer Will Be Tough…</a></li>
<li><a href="http://www.developerzen.com/2008/12/05/99-ways-to-become-a-better-developer/" rel="bookmark" title="December 5, 2008">99 Ways to Become a Better Developer</a></li>
</ul>
<p><!-- Similar Posts took 15.910 ms --></p>

<p><a href="http://feedads.g.doubleclick.net/~a/HyyTBvqgCWSQwvgoAd7f9CxFq5s/0/da"><img src="http://feedads.g.doubleclick.net/~a/HyyTBvqgCWSQwvgoAd7f9CxFq5s/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/HyyTBvqgCWSQwvgoAd7f9CxFq5s/1/da"><img src="http://feedads.g.doubleclick.net/~a/HyyTBvqgCWSQwvgoAd7f9CxFq5s/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EranKampf?a=miblbMjTGMg:Pwv072GxrKk:XQ266DUsA9M"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=XQ266DUsA9M" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=miblbMjTGMg:Pwv072GxrKk:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=miblbMjTGMg:Pwv072GxrKk:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=miblbMjTGMg:Pwv072GxrKk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=miblbMjTGMg:Pwv072GxrKk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=miblbMjTGMg:Pwv072GxrKk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=miblbMjTGMg:Pwv072GxrKk:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=miblbMjTGMg:Pwv072GxrKk:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=miblbMjTGMg:Pwv072GxrKk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=miblbMjTGMg:Pwv072GxrKk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=miblbMjTGMg:Pwv072GxrKk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=miblbMjTGMg:Pwv072GxrKk:i0o2LV1JfPc"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=i0o2LV1JfPc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=miblbMjTGMg:Pwv072GxrKk:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EranKampf/~4/miblbMjTGMg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developerzen.com/2009/10/29/building-an-iphone-application/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://www.developerzen.com/2009/10/29/building-an-iphone-application/</feedburner:origLink></item>
		<item>
		<title>High Performance at Massive Scale – Lessons learned at Facebook</title>
		<link>http://feedproxy.google.com/~r/EranKampf/~3/QfhQbNovBps/</link>
		<comments>http://www.developerzen.com/2009/10/27/high-performance-at-massive-scale-lessons-learned-at-facebook/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 07:39:00 +0000</pubDate>
		<dc:creator>Eran Kampf</dc:creator>
				<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Scalability]]></category>

		<guid isPermaLink="false">http://www.developerzen.com/2009/10/27/high-performance-at-massive-scale-lessons-learned-at-facebook/</guid>
		<description><![CDATA[Jeff Rothschild, Vice President of Technology at Facebook gave a great presentation at UC San Diego on &#34;High Performance at Massive Scale –&#160; Lessons learned at Facebook&#34;. The presentation’s abstract: Facebook has grown into one of the largest sites on the Internet today serving over 200 billion pages per month. The nature of social data [...]]]></description>
			<content:encoded><![CDATA[<p>Jeff Rothschild, Vice President of Technology at Facebook gave a great presentation at UC San Diego on &quot;<a href="http://cns.ucsd.edu/lecturearchive09.shtml#Roth">High Performance at Massive Scale –&#160; Lessons learned at Facebook</a>&quot;. The presentation’s abstract:</p>
<blockquote><p>Facebook has grown into one of the largest sites on the Internet today serving over 200 billion pages per month. The nature of social data makes engineering a site for this level of scale a particularly challenging proposition. In this presentation, I will discuss the aspects of social data that present challenges for scalability and will describe the the core architectural components and design principles that Facebook has used to address these challenges. In addition, I will discuss emerging technologies that offer new opportunities for building cost-effective high performance web architectures.</p>
</blockquote>
<p>I’m halfway through watching it and there are already several interesting point worth a detailed post later on.   <br />If you want to learn how Facebook manages 30K+ machines, 300 million active users, 20 billion photos, and 25TB/day of logging data you should go and watch the talk’s webcast.</p>
<p><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.developerzen.com/2009/06/16/facebook-hadoop-and-hive/" rel="bookmark" title="June 16, 2009">Facebook, Hadoop and Hive</a></li>
<li><a href="http://www.developerzen.com/2010/09/02/what-the-new-apple-tv-is-really-missing/" rel="bookmark" title="September 2, 2010">What the new Apple TV is really missing&hellip;</a></li>
<li><a href="http://www.developerzen.com/2009/08/14/data-mining-handling-missing-values-the-database/" rel="bookmark" title="August 14, 2009">Data Mining &ndash; Handling Missing Values the Database</a></li>
<li><a href="http://www.developerzen.com/2009/04/25/weekend-inspirations-%e2%80%93-big-data-visualizations-innovative-man-machine-interactions/" rel="bookmark" title="April 25, 2009">Weekend Inspirations – Big Data Visualizations,  Innovative Man-Machine Interactions</a></li>
<li><a href="http://www.developerzen.com/2009/05/18/new-features-for-amazon-ec2-%e2%80%93-now-you-can-truly-scale-applications/" rel="bookmark" title="May 18, 2009">New Features for Amazon EC2 – Now You Can Truly Scale Applications</a></li>
</ul>
<p><!-- Similar Posts took 9.567 ms --></p>

<p><a href="http://feedads.g.doubleclick.net/~a/YMFxVMbvj71WXbjKTinHd0JIXJM/0/da"><img src="http://feedads.g.doubleclick.net/~a/YMFxVMbvj71WXbjKTinHd0JIXJM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/YMFxVMbvj71WXbjKTinHd0JIXJM/1/da"><img src="http://feedads.g.doubleclick.net/~a/YMFxVMbvj71WXbjKTinHd0JIXJM/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EranKampf?a=QfhQbNovBps:rYbreXuce3g:XQ266DUsA9M"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=XQ266DUsA9M" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=QfhQbNovBps:rYbreXuce3g:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=QfhQbNovBps:rYbreXuce3g:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=QfhQbNovBps:rYbreXuce3g:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=QfhQbNovBps:rYbreXuce3g:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=QfhQbNovBps:rYbreXuce3g:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=QfhQbNovBps:rYbreXuce3g:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=QfhQbNovBps:rYbreXuce3g:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=QfhQbNovBps:rYbreXuce3g:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=QfhQbNovBps:rYbreXuce3g:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=QfhQbNovBps:rYbreXuce3g:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=QfhQbNovBps:rYbreXuce3g:i0o2LV1JfPc"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=i0o2LV1JfPc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=QfhQbNovBps:rYbreXuce3g:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EranKampf/~4/QfhQbNovBps" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developerzen.com/2009/10/27/high-performance-at-massive-scale-lessons-learned-at-facebook/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.developerzen.com/2009/10/27/high-performance-at-massive-scale-lessons-learned-at-facebook/</feedburner:origLink></item>
		<item>
		<title>What would Twitter do with $100 million?</title>
		<link>http://feedproxy.google.com/~r/EranKampf/~3/VpGIrg8dDuc/</link>
		<comments>http://www.developerzen.com/2009/09/29/what-would-twitter-do-with-100-million/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 21:35:00 +0000</pubDate>
		<dc:creator>Eran Kampf</dc:creator>
				<category><![CDATA[Software Industry]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.developerzen.com/?p=2335</guid>
		<description><![CDATA[Last week the NY Times reported that Twitter has raised about $100 million of new funding, making the company’s value to be $1 billion. Just to put things in perspective, they also provide an example: For context, that is almost double the market capitalization of Domino’s Pizza, which has 10,500 employees and had $1.4 billion [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 10px; display: inline; border-top: 0px; border-right: 0px" title="twitter-money-300x300" border="0" alt="twitter-money-300x300" align="right" src="http://storage.developerzen.com//2009/09/twittermoney300x300.png" width="240" height="240" />Last week the NY Times <a href="http://www.nytimes.com/2009/09/25/technology/internet/25twitter.html?_r=1">reported</a> that Twitter has raised about $100 million of new funding, making the company’s value to be $1 billion. Just to put things in perspective, they also provide an example:</p>
<blockquote><p>For context, that is almost double the market capitalization of <a href="http://topics.nytimes.com/top/news/business/companies/dominos-pizza-inc/index.html?inline=nyt-org">Domino’s Pizza</a>, which has 10,500 employees and had $1.4 billion in sales last year. Twitter has some 60 employees, and although it is experimenting with running advertisements on its Web site, Biz Stone, a Twitter founder, said this week at an industry conference that the company had no plans to begin widely running ads until 2010. </p></blockquote>
<p>Twitter previously raised $55 million and has said it still has $25 million of that in the bank. So the question is, what will it do with these $100 million? Or, as I see it, who will it acquire now?</p>
<p>As part of it efforts to find a business model, Twitter will most likely acquire companies that’ll help it form that model.I’m thinking\betting on two major trends for such a business model:</p>
<h5>Manage Companies Presence on Twitter</h5>
<p>Twitter’s most obvious business model is by helping companies manage their presence on Twitter and monitor how their brands are being discussed.</p>
<p>This makes companies who provide all sort of analytics information, CRM integration and even url-shorteners as potential acquisitions for a future Twitter business package…</p>
<h5>Local Markets, Local Social Network</h5>
<p>The minute I read about Twitter’s $100 million round I thought of companies like <a href="http://foursquare.com/">Foursquare</a>. I wasn’t really surprised when I read today’s Techmeme and noticed Twitter’s co-founder <a href="http://news.cnet.com/8301-13577_3-10362106-36.html">Jack Dorsey invested in Foursquare</a>.     <br />Also, the twitter team has been working very hard lately to <a href="http://blog.twitter.com/2009/08/location-location-location.html">make Twitter location aware</a>, allowing users to share their location via their tweets and browse stuff that is happening around them.</p>
<p>Twitter is great in forming local communities (just checkout the local <a href="http://mashable.com/2009/02/25/tweetup/">tweetups</a> everywhere), gather news and provide all sort of local information. Fouresquare as well as other location based social networks doing can really help twitter tap into the long-tail local businesses market and take on companies such as Yelp.</p>
<p>So, what do you think Twitter’s latest valuation? What will it do with its newly raised $100mil?</p>
<p><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.developerzen.com/2009/02/04/no-hope-for-traditional-media-companies/" rel="bookmark" title="February 4, 2009">No Hope for Traditional Media Companies?</a></li>
<li><a href="http://www.developerzen.com/2009/04/05/microsoft-can-clone-twitter/" rel="bookmark" title="April 5, 2009">Microsoft Can Clone Twitter?!</a></li>
<li><a href="http://www.developerzen.com/2009/02/06/give-up-control-think-distributed-dld-2009-summary/" rel="bookmark" title="February 6, 2009">Give Up Control, Think Distributed &ndash; DLD 2009 Summary</a></li>
<li><a href="http://www.developerzen.com/2010/09/02/what-the-new-apple-tv-is-really-missing/" rel="bookmark" title="September 2, 2010">What the new Apple TV is really missing&hellip;</a></li>
<li><a href="http://www.developerzen.com/2009/04/30/a-visit-to-maraboo-restaurants-as-tribes-in-the-digital-age/" rel="bookmark" title="April 30, 2009">A Visit to Maraboo, Restaurants as Tribes in the Digital Age</a></li>
</ul>
<p><!-- Similar Posts took 20.956 ms --></p>

<p><a href="http://feedads.g.doubleclick.net/~a/ugIUxrMMebV71n7RryWML5F-e08/0/da"><img src="http://feedads.g.doubleclick.net/~a/ugIUxrMMebV71n7RryWML5F-e08/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/ugIUxrMMebV71n7RryWML5F-e08/1/da"><img src="http://feedads.g.doubleclick.net/~a/ugIUxrMMebV71n7RryWML5F-e08/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EranKampf?a=VpGIrg8dDuc:5OE-bjPg0go:XQ266DUsA9M"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=XQ266DUsA9M" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=VpGIrg8dDuc:5OE-bjPg0go:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=VpGIrg8dDuc:5OE-bjPg0go:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=VpGIrg8dDuc:5OE-bjPg0go:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=VpGIrg8dDuc:5OE-bjPg0go:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=VpGIrg8dDuc:5OE-bjPg0go:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=VpGIrg8dDuc:5OE-bjPg0go:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=VpGIrg8dDuc:5OE-bjPg0go:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=VpGIrg8dDuc:5OE-bjPg0go:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=VpGIrg8dDuc:5OE-bjPg0go:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=VpGIrg8dDuc:5OE-bjPg0go:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=VpGIrg8dDuc:5OE-bjPg0go:i0o2LV1JfPc"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=i0o2LV1JfPc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=VpGIrg8dDuc:5OE-bjPg0go:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EranKampf/~4/VpGIrg8dDuc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developerzen.com/2009/09/29/what-would-twitter-do-with-100-million/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.developerzen.com/2009/09/29/what-would-twitter-do-with-100-million/</feedburner:origLink></item>
		<item>
		<title>Data Mining – Handling Missing Values the Database</title>
		<link>http://feedproxy.google.com/~r/EranKampf/~3/-hKMqrGRGtE/</link>
		<comments>http://www.developerzen.com/2009/08/14/data-mining-handling-missing-values-the-database/#comments</comments>
		<pubDate>Fri, 14 Aug 2009 17:50:54 +0000</pubDate>
		<dc:creator>Eran Kampf</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Data Cleaning]]></category>
		<category><![CDATA[Data Mining]]></category>
		<category><![CDATA[Missing Values]]></category>

		<guid isPermaLink="false">http://www.developerzen.com/2009/08/14/data-mining-handling-missing-values-the-database-2/</guid>
		<description><![CDATA[I’ve recently answered Predicting missing data values in a database on StackOverflow and thought it deserved a mention on DeveloperZen. One of the important stages of data mining is preprocessing, where we prepare the data for mining. Real-world data tends to be incomplete, noisy, and inconsistent and an important task when preprocessing the data is [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://storage.developerzen.com//2009/09/DataMiningQuestionsAnswersFigure2.jpg"><img style="border-bottom: 0px; border-left: 0px; margin: 0px 0px 0px 10px; display: inline; border-top: 0px; border-right: 0px" title="DataMiningQuestionsAnswersFigure2" border="0" alt="DataMiningQuestionsAnswersFigure2" align="right" src="http://storage.developerzen.com//2009/09/DataMiningQuestionsAnswersFigure2_thumb.jpg" width="400" height="300" /></a> I’ve recently answered <a href="http://stackoverflow.com/questions/1173239/predicting-missing-data-values-in-a-database">Predicting missing data values in a database</a> on StackOverflow and thought it deserved a mention on DeveloperZen.</p>
<p>One of the important stages of data mining is <em>preprocessing,</em> where we prepare the data for mining. Real-world data tends to be incomplete, noisy, and inconsistent and an important task when preprocessing the data is to fill in missing values, smooth out noise and correct inconsistencies.</p>
<p>If we specifically look at dealing with missing data, there are several techniques that can be used. Choosing the right technique is a choice that depends on the problem domain – the data’s domain (sales data? CRM data? …) and our goal for the data mining process.</p>
<p>So how can you handle missing values in your database?</p>
<h5>1. Ignore the data row</h5>
<p><strong></strong>This is usually done when the <em>class label</em> is missing (assuming you data mining goal is classification), or many attributes are missing from the row (not just one). However you&#8217;ll obviously get poor performance if the percentage of such rows is high.</p>
<p>For example, lets say we have a database of students enrollment data (age, SAT score, state of residence, etc.) and a column classifying their success in college to “Low”, “Medium” and “High”. Lets say our goal is do build a model predicting a student’s success in college. Data rows who are missing the success column are not useful in predicting success so they could very well be ignored and removed before running the algorithm.</p>
<h5>2. Use a global constant to fill in for missing values</h5>
<p>Decide on a new global constant value, like &quot;<em>unknown</em>&quot;, &quot;<em>N/A</em>&quot; or <em>minus infinity</em>, that will be used to fill all the missing values.     <br />This technique is used because sometimes it just doesn’t make sense to try and predict the missing value.</p>
<p>For example, lets look at the students enrollment database again. Assuming the <em>state of residence</em> attribute data is missing for some students. Filling it up with some state doesn’t really makes sense as opposed to using something like “<em>N/A</em>”.</p>
<h5><strong>3. Use attribute mean</strong></h5>
<p>Replace missing values of an attribute with the mean (or median if its discrete) value for that attribute in the database.</p>
<p>For example, in a database of US family incomes, if the average <em>income</em> of a US family is X you can use that value to replace missing income values.</p>
<h5>4. Use attribute mean for all samples belonging to the same class</h5>
<p>Instead of using the mean (or median) of a certain attribute calculated by looking at all the rows in a database, we can limit the calculations to the relevant class to make the value more relevant to the row we’re looking at.</p>
<p>Lets say you have a cars pricing database that, among other things, classifies cars to <em>&quot;Luxury&quot;</em> and <em>&quot;Low budget&quot;</em> and you&#8217;re dealing with missing values in the cost field. Replacing missing cost of a luxury car with the average cost of all luxury cars is probably more accurate then the value you&#8217;d get if you factor in the low budget cars.</p>
<h5>5. Use a data mining algorithm to predict the most probable value</h5>
<p>The value can be determined using regression, inference based tools using Baysian formalism , decision trees, clustering algorithms (K-Mean\Median etc.).</p>
<p>For example, we could use a clustering algorithms to create clusters of rows which will then be used for calculating an attribute mean or median as specified in technique #3.    <br />Another example could be using a decision tree to try and predict the probable value in the missing attribute, according to other attributes in the data.</p>
<p>I&#8217;d suggest looking into regression and decision trees first (ID3 tree generation) as they&#8217;re relatively easy and there are plenty of examples on the net…</p>
<h5>Additional Notes</h5>
<ul>
<li>Note that methods 2-5 bias the data as the filled-in value may not be correct. </li>
<li>Method 5 uses the most information available in the present data to predict the missing value so it has a better chance for generating less bias. </li>
<li>Missing value may not necessarily imply an error in the data! forms may contain optional fields, certain attributes may be in the database for future use. </li>
</ul>
<p><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.developerzen.com/2009/05/06/introduction-to-mapreduce-for-net-developers/" rel="bookmark" title="May 6, 2009">Introduction to MapReduce for .NET Developers</a></li>
<li><a href="http://www.developerzen.com/2008/09/12/bill-gates-and-jerry-seinfeld-take-two/" rel="bookmark" title="September 12, 2008">Bill Gates and Jerry Seinfeld, Take Two</a></li>
<li><a href="http://www.developerzen.com/2009/07/25/moving-your-application-to-amazon-s-cloud/" rel="bookmark" title="July 25, 2009">Moving Your Application to Amazon&rsquo;s Cloud</a></li>
<li><a href="http://www.developerzen.com/2009/06/16/facebook-hadoop-and-hive/" rel="bookmark" title="June 16, 2009">Facebook, Hadoop and Hive</a></li>
<li><a href="http://www.developerzen.com/2008/10/09/amazon-s3-storing-29-billion-objects/" rel="bookmark" title="October 9, 2008">Amazon S3 Storing 29 Billion Objects</a></li>
</ul>
<p><!-- Similar Posts took 20.537 ms --></p>

<p><a href="http://feedads.g.doubleclick.net/~a/G27e89Xk68G2kDhv4FZbH06TVIU/0/da"><img src="http://feedads.g.doubleclick.net/~a/G27e89Xk68G2kDhv4FZbH06TVIU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/G27e89Xk68G2kDhv4FZbH06TVIU/1/da"><img src="http://feedads.g.doubleclick.net/~a/G27e89Xk68G2kDhv4FZbH06TVIU/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EranKampf?a=-hKMqrGRGtE:f-sn03oZX9U:XQ266DUsA9M"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=XQ266DUsA9M" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=-hKMqrGRGtE:f-sn03oZX9U:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=-hKMqrGRGtE:f-sn03oZX9U:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=-hKMqrGRGtE:f-sn03oZX9U:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=-hKMqrGRGtE:f-sn03oZX9U:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=-hKMqrGRGtE:f-sn03oZX9U:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=-hKMqrGRGtE:f-sn03oZX9U:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=-hKMqrGRGtE:f-sn03oZX9U:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=-hKMqrGRGtE:f-sn03oZX9U:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=-hKMqrGRGtE:f-sn03oZX9U:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=-hKMqrGRGtE:f-sn03oZX9U:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=-hKMqrGRGtE:f-sn03oZX9U:i0o2LV1JfPc"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=i0o2LV1JfPc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=-hKMqrGRGtE:f-sn03oZX9U:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EranKampf/~4/-hKMqrGRGtE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developerzen.com/2009/08/14/data-mining-handling-missing-values-the-database/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.developerzen.com/2009/08/14/data-mining-handling-missing-values-the-database/</feedburner:origLink></item>
		<item>
		<title>Moving Your Application to Amazon’s Cloud</title>
		<link>http://feedproxy.google.com/~r/EranKampf/~3/B8UUCT9bvb0/</link>
		<comments>http://www.developerzen.com/2009/07/25/moving-your-application-to-amazon-s-cloud/#comments</comments>
		<pubDate>Sat, 25 Jul 2009 08:02:22 +0000</pubDate>
		<dc:creator>Eran Kampf</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[AWS]]></category>

		<guid isPermaLink="false">http://www.developerzen.com/?p=2328</guid>
		<description><![CDATA[I’ve been dealing a lot with Amazon’s AWS platform lately. Mostly doing offline data processing using Hadoop but the latest load balancing features finally opened the door for frontend applications to take advantage of Amazon’s cloud computing platform – making it easier for developers to make application more cost efficient an scalable. Keeping in mind [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://storage.developerzen.com//2009/07/6a00d8341c534853ef00e54ff18b618833150wi.gif"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="6a00d8341c534853ef00e54ff18b618833-150wi" src="http://storage.developerzen.com//2009/07/6a00d8341c534853ef00e54ff18b618833150wi_thumb.gif" border="0" alt="6a00d8341c534853ef00e54ff18b618833-150wi" width="150" height="60" align="right" /></a> I’ve been dealing a lot with Amazon’s AWS platform lately. Mostly doing offline data processing using Hadoop but the <a href="http://www.cloudave.com/link/new-features-for-amazon-ec2-now-you-can-truly-scale-applications">latest load balancing</a> features finally opened the door for frontend applications to take advantage of Amazon’s cloud computing platform – making it easier for developers to make application more cost efficient an scalable.</p>
<p>Keeping in mind that there are a lot of applications out there who can benefit from moving to the cloud (including my own) I’ve made a list of tasks\considerations to make when preparing for such a move:</p>
<h3>Step One: Move Static Content to S3</h3>
<p>The first and easiest step is to move all your static content – images, CSS, JavaScript files, etc. – to <a href="https://s3.amazonaws.com/">Amazon S3</a>. Let Amazon worry about storage, backups and availability for you.</p>
<p>Things to consider:</p>
<ul>
<li><strong>GZIP content</strong>. S3 does not support serving GZIPed content natively so you’ll have to upload both GZIPed and plaintext version of each file and figure out in code which one to use according to the headers sent by the user’s browser.<br />
The following post describes how its done: <a href="http://clickontyler.com/blog/2008/05/using-amazon-s3-as-a-content-delivery-network/">Using Amazon S3 as a CDN</a></li>
<li><strong>Amazon’s S3 service is “eventually consistent”</strong> which means that files uploaded to S3 may not be immediately available to read.</li>
<li><strong>Use separate sub-domains</strong> for content.</li>
</ul>
<p>Once your content is on S3 you can also use <a href="http://aws.amazon.com/cloudfront/">CloudFront</a>, Amazon’s CDN (Content Delivery Network), to serve the files and improve your application’s performance.</p>
<h3>Step Two:  Move Web Servers and Backend Servers to EC2</h3>
<p>Move your web server code and backend services – database, memcached, etc. – to run on <a href="http://aws.amazon.com/ec2/">Amazon EC2</a> instances.</p>
<p>Consider using Amazon’s availability zones to setup servers in different availability zones. This can help your serve customers at different parts of the worlds better, while making your infrastructure tolerant to the unlikely event of a datacenter failures at Amazon.</p>
<h4>The Web Servers</h4>
<p>Moving your web servers to EC2 should be fairly simple. You can setup EC2 images that are configured exactly the same way your current web servers are.</p>
<p>If you require a queuing service as part of your architecture, consider switching to <a href="http://aws.amazon.com/sqs/">Amazon’s SQS</a> to make administration easier.</p>
<h4>The Database</h4>
<p>Moving your database to EC2 is probably the hardest part of the move to AWS. If you plan on keeping your database (as opposed to migrating to a cloud solution like <a href="http://aws.amazon.com/simpledb/">SimpleDB</a>) you should use EBS (<a href="http://aws.amazon.com/ebs/">Elastic Block Storage</a>) so that your storage is persists independently from the life of your EC2 instance.</p>
<p><strong>Backup.</strong> Figure out how to take scheduled snapshots of your EBS and store them on S3.</p>
<p><strong>Consider replication and sharding. </strong>If you’re using availability zone you should consider sharding your data. For example, store data European accounts data in Europe only. You should also consider replication between the different availability zones to ensure keep your site available even when one of the datacenter is unavailable.</p>
<p>Related Links:</p>
<ul>
<li><a href="http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1663">Running MySQL on EC2 with EBS</a></li>
<li><a href="http://friism.com/ec2-sql-server-backup-strategies-and-tactics">EC2 SQL Server backup strategies and tactics</a></li>
<li><a href="http://support.rightscale.com/1._Tutorials/02-AWS/02-Website_Edition/2.1_MySQL_Setup/Create_a_MySQL-EBS_Database_Setup">Create a MySQL-EBS Database Setup</a></li>
</ul>
<h3>Step Three: Scale. Take advantage of the cloud services</h3>
<p>Now that your application is entirely running on Amazon’s platform it’s time to take the full advantage of the platform and make it scale.</p>
<p>Setup <strong>Monitoring</strong> to keep up with what’s going on on your system. Amazon provides a service called <a href="http://aws.amazon.com/cloudwatch/">CloudWatch</a> that allows you to monitor your machines and applications.</p>
<p>Based on the monitoring metrics you should start using Amazon’s auto-scaling and <a href="http://aws.amazon.com/elasticloadbalancing/">load balancing</a> capabilities to be able to consume and release computing resources according to demand.</p>
<p>At this point you should also investigate reducing your dependency on relational databases (RDMS) as much as possible (as its the most complex, and hardest to scale, component in the system) and try to move as much functionality as possible to S3 and SimpleDB.<br />
S3 is suitable for storing large objects while SimpleDB is ideal for small stubs of data.</p>
<p>Important notes:</p>
<ul>
<li>Amazon’s load balancer <strong>doesn’t support SSL</strong>. This can be a showstopper for some applications…</li>
<li>Simple DB has a max row size limitation. If your data exceeds that limit you should consider using SimpleDB as a metadata store that references the full data stored on S3.</li>
</ul>
<p>Related Links:</p>
<ul>
<li><a href="http://aws.typepad.com/aws/2009/07/elastic-load-balancing-resources.html">Load Balancing, Auto Scaling and CloudWatch resources</a> on the AWS blog.</li>
</ul>
<p><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.developerzen.com/2009/05/18/new-features-for-amazon-ec2-%e2%80%93-now-you-can-truly-scale-applications/" rel="bookmark" title="May 18, 2009">New Features for Amazon EC2 – Now You Can Truly Scale Applications</a></li>
<li><a href="http://www.developerzen.com/2008/10/09/amazon-s3-storing-29-billion-objects/" rel="bookmark" title="October 9, 2008">Amazon S3 Storing 29 Billion Objects</a></li>
<li><a href="http://www.developerzen.com/2008/10/09/microsoft-next-killer-os-is-sharepoint/" rel="bookmark" title="October 9, 2008">Microsoft&#8217;s Next Killer OS is&hellip; SharePoint?</a></li>
<li><a href="http://www.developerzen.com/2009/12/15/the-new-google-app-engine-blobstore-api-first-thoughts/" rel="bookmark" title="December 15, 2009">The New Google App Engine Blobstore API &#8211; First Thoughts</a></li>
<li><a href="http://www.developerzen.com/2008/09/25/cloud-avenue/" rel="bookmark" title="September 25, 2008">Cloud Avenue</a></li>
</ul>
<p><!-- Similar Posts took 14.904 ms --></p>

<p><a href="http://feedads.g.doubleclick.net/~a/jLpnDHTjd35UbytFRZ_IJt19m6Y/0/da"><img src="http://feedads.g.doubleclick.net/~a/jLpnDHTjd35UbytFRZ_IJt19m6Y/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/jLpnDHTjd35UbytFRZ_IJt19m6Y/1/da"><img src="http://feedads.g.doubleclick.net/~a/jLpnDHTjd35UbytFRZ_IJt19m6Y/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EranKampf?a=B8UUCT9bvb0:mZdm0XUI9Tw:XQ266DUsA9M"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=XQ266DUsA9M" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=B8UUCT9bvb0:mZdm0XUI9Tw:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=B8UUCT9bvb0:mZdm0XUI9Tw:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=B8UUCT9bvb0:mZdm0XUI9Tw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=B8UUCT9bvb0:mZdm0XUI9Tw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=B8UUCT9bvb0:mZdm0XUI9Tw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=B8UUCT9bvb0:mZdm0XUI9Tw:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=B8UUCT9bvb0:mZdm0XUI9Tw:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=B8UUCT9bvb0:mZdm0XUI9Tw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=B8UUCT9bvb0:mZdm0XUI9Tw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=B8UUCT9bvb0:mZdm0XUI9Tw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=B8UUCT9bvb0:mZdm0XUI9Tw:i0o2LV1JfPc"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=i0o2LV1JfPc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=B8UUCT9bvb0:mZdm0XUI9Tw:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EranKampf/~4/B8UUCT9bvb0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developerzen.com/2009/07/25/moving-your-application-to-amazon-s-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.developerzen.com/2009/07/25/moving-your-application-to-amazon-s-cloud/</feedburner:origLink></item>
		<item>
		<title>Facebook, Hadoop and Hive</title>
		<link>http://feedproxy.google.com/~r/EranKampf/~3/YuclDFr7Zw0/</link>
		<comments>http://www.developerzen.com/2009/06/16/facebook-hadoop-and-hive/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 04:37:50 +0000</pubDate>
		<dc:creator>Eran Kampf</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Software Architecture]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Hadoop]]></category>
		<category><![CDATA[Hive]]></category>
		<category><![CDATA[Scalability]]></category>
		<category><![CDATA[web scalability]]></category>

		<guid isPermaLink="false">http://www.developerzen.com/2009/06/16/facebook-hadoop-and-hive/</guid>
		<description><![CDATA[Facebook has the second largest installation of Hadoop (a software platform that lets one easily write and run distributed applications that process vast amounts of data), Yahoo being the first. It is also the creator of Hive, a data warehouse infrastructure built on top of Hadoop. The following two posts shed some more light on [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://storage.developerzen.com//2009/06/facebooklogoforwebsite.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="facebook logo for website" border="0" alt="facebook logo for website" align="right" src="http://storage.developerzen.com//2009/06/facebooklogoforwebsite_thumb.jpg" width="240" height="240" /></a> Facebook has the second largest installation of <a href="http://www.developerzen.com/tag/hadoop/">Hadoop</a><acronym></acronym> (a software platform that lets one easily write and run distributed applications that process vast amounts of data), Yahoo <a href="http://www.developerzen.com/?p=2307">being the first</a>. It is also the creator of <a href="http://wiki.apache.org/hadoop/Hive">Hive</a>, a data warehouse infrastructure built on top of Hadoop. </p>
<p>The following two posts shed some more light on why Facebook chose the Hadoop\Hive path, how they’re doing it and the challenges they’re facing:</p>
<p><a href="http://www.dbms2.com/2009/05/11/facebook-hadoop-and-hive/"><strong>Facebook, Hadoop, and Hive on DBMS2</strong></a> by Curt Monash discusses Facebook’s architecture and motivation.</p>
<blockquote><p>Facebook decided in 2007 to move what was then a 15 terabyte big-DBMS-vendor data warehouse to Hadoop — augmented by Hive — rather than to an MPP data warehouse DBMS…</p>
<p>The daily pipeline took more than 24 hours to process. Although aware that its big-DBMS-vendor warehouse could probably be tuned much better, Facebook didn’t see that as a path to growing its warehouse more than 100-fold. </p>
</blockquote>
<p><a href="http://www.facebook.com/note.php?note_id=89508453919"><strong>Hive &#8211; A Petabyte Scale Data Warehouse using Hadoop</strong></a> by <i>Ashish Thusoo</i> from the<em> Data Infrastructure team</em> at Facebook discusses Facebook’s Hive implementation in details. </p>
<blockquote><p>… using Hadoop was not easy for end users, specially for the ones who were not familiar with map/reduce. End users had to write map/reduce programs for simple tasks like getting raw counts or averages. Hadoop lacked the expressibility of popular query languages like SQL and as a result users ended up spending hours (if not days) to write programs for typical analysis. It was very clear to us that in order to really empower the company to analyze this data more productively, we had to improve the query capabilities of Hadoop. Bringing this data closer to users is what inspired us to build Hive.<strong> Our vision was to bring the familiar concepts of tables, columns, partitions and a subset of SQL to the unstructured world of Hadoop</strong>, while still maintaining the extensibility and flexibility that Hadoop enjoyed. </p>
</blockquote>
<p><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.developerzen.com/2009/06/11/yahoo-releases-its-own-hadoop-distribution/" rel="bookmark" title="June 11, 2009">Yahoo Releases Its Own Hadoop Distribution</a></li>
<li><a href="http://www.developerzen.com/2009/10/27/high-performance-at-massive-scale-lessons-learned-at-facebook/" rel="bookmark" title="October 27, 2009">High Performance at Massive Scale &ndash; Lessons learned at Facebook</a></li>
<li><a href="http://www.developerzen.com/2009/05/06/introduction-to-mapreduce-for-net-developers/" rel="bookmark" title="May 6, 2009">Introduction to MapReduce for .NET Developers</a></li>
<li><a href="http://www.developerzen.com/2009/04/25/weekend-inspirations-%e2%80%93-big-data-visualizations-innovative-man-machine-interactions/" rel="bookmark" title="April 25, 2009">Weekend Inspirations – Big Data Visualizations,  Innovative Man-Machine Interactions</a></li>
<li><a href="http://www.developerzen.com/2008/10/30/microsoft-calls-openid-a-de-facto-login-standard/" rel="bookmark" title="October 30, 2008">Microsoft calls OpenID a De Facto Login Standard</a></li>
</ul>
<p><!-- Similar Posts took 20.018 ms --></p>

<p><a href="http://feedads.g.doubleclick.net/~a/T4rJwF4Fw13mchkJaqXqcq172sI/0/da"><img src="http://feedads.g.doubleclick.net/~a/T4rJwF4Fw13mchkJaqXqcq172sI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/T4rJwF4Fw13mchkJaqXqcq172sI/1/da"><img src="http://feedads.g.doubleclick.net/~a/T4rJwF4Fw13mchkJaqXqcq172sI/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EranKampf?a=YuclDFr7Zw0:VcQG6-DUr14:XQ266DUsA9M"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=XQ266DUsA9M" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=YuclDFr7Zw0:VcQG6-DUr14:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=YuclDFr7Zw0:VcQG6-DUr14:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=YuclDFr7Zw0:VcQG6-DUr14:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=YuclDFr7Zw0:VcQG6-DUr14:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=YuclDFr7Zw0:VcQG6-DUr14:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=YuclDFr7Zw0:VcQG6-DUr14:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=YuclDFr7Zw0:VcQG6-DUr14:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=YuclDFr7Zw0:VcQG6-DUr14:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=YuclDFr7Zw0:VcQG6-DUr14:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=YuclDFr7Zw0:VcQG6-DUr14:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=YuclDFr7Zw0:VcQG6-DUr14:i0o2LV1JfPc"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=i0o2LV1JfPc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=YuclDFr7Zw0:VcQG6-DUr14:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EranKampf/~4/YuclDFr7Zw0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developerzen.com/2009/06/16/facebook-hadoop-and-hive/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.developerzen.com/2009/06/16/facebook-hadoop-and-hive/</feedburner:origLink></item>
		<item>
		<title>Yahoo Releases Its Own Hadoop Distribution</title>
		<link>http://feedproxy.google.com/~r/EranKampf/~3/kmGTnpbKuT4/</link>
		<comments>http://www.developerzen.com/2009/06/11/yahoo-releases-its-own-hadoop-distribution/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 22:52:33 +0000</pubDate>
		<dc:creator>Eran Kampf</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Software Industry]]></category>
		<category><![CDATA[Apache Software Foundation]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google Inc.]]></category>
		<category><![CDATA[Grid Technologies]]></category>
		<category><![CDATA[Hadoop]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[web scale]]></category>
		<category><![CDATA[Yahoo]]></category>

		<guid isPermaLink="false">http://www.developerzen.com/?p=2307</guid>
		<description><![CDATA[Yahoo! is releasing its own distribution of Hadoop: Hadoop is a distributed file system and parallel execution environment that enables its users to process massive amounts of data. In response to frequent requests from the Hadoop community, Yahoo! is opening up its investment in Hadoop quality engineering to benefit the larger ecosystem and to increase [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://storage.developerzen.com//2009/06/hadoop.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="hadoop" src="http://storage.developerzen.com//2009/06/hadoop-thumb.jpg" border="0" alt="hadoop" width="240" height="66" align="right" /></a>Yahoo! <a href="http://developer.yahoo.com/blogs/hadoop/2009/06/yahoo_distribution_of_hadoop.html">is releasing</a> its own distribution of <a href="http://developer.yahoo.com/hadoop/distribution/">Hadoop</a>:</p>
<blockquote><p>Hadoop is a distributed file system and parallel execution environment that enables its users to process massive amounts of data.<br />
In response to frequent requests from the Hadoop community, Yahoo! is opening up its investment in Hadoop quality engineering to benefit the larger ecosystem and to increase the pace of innovation around open and collaborative research and development.<br />
The Yahoo! Distribution of Hadoop has been tested and deployed at Yahoo! on the largest Hadoop clusters in the world.</p></blockquote>
<p>Hadoop is free Java software framework born out of an open-source implementation of Google’s published computing infrastructure and fostered within the <a href="http://www.apache.org/">Apache Software Foundation.</a><br />
Yahoo! has been the primary developer and contributor to Apache’s Hadoop.<br />
In 2006, Hadoop founder Doug Cutting joined Yahoo, which provided a dedicated team and resources, to lead the project of developing the open-source software and turn Hadoop into a system that ran at web scale. Today, Yahoo! is running the largest Hadoop cluster in the world, which includes more than 25,000 servers and provides the framework for many Yahoo properties including <a href="http://www.techcrunch.com/2008/02/20/yahoo-search-wants-to-be-more-like-google-embraces-hadoop/">Yahoo Search,</a> Yahoo Mail, and several content and ad services.</p>
<p>Yahoo says its opening up the source code to Hadoop to <em>“benefit the larger ecosystem increase the pace of innovation around open and collaborative research and development.”.<br />
</em>As Nigel Daley, Quality and Release Engineering Manager at Yahoo! Grid Technologies, summarizes:</p>
<blockquote><p>Hadoop is helping us solve key science and research problems in hours or days instead of months. It provides us a platform to solve extreme problems requiring massive amounts of data processing. It underpins major revenue-generating systems. Opening our distribution enables a faster pace of innovation for the entire Hadoop ecosystem and broadens the use — and ultimately the quality — of this key platform across the industry.</p></blockquote>
<p><sup><a href="http://my.safaribooksonline.com/"></a></sup><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.developerzen.com/2009/06/16/facebook-hadoop-and-hive/" rel="bookmark" title="June 16, 2009">Facebook, Hadoop and Hive</a></li>
<li><a href="http://www.developerzen.com/2008/12/05/99-ways-to-become-a-better-developer/" rel="bookmark" title="December 5, 2008">99 Ways to Become a Better Developer</a></li>
<li><a href="http://www.developerzen.com/2008/09/25/cloud-avenue/" rel="bookmark" title="September 25, 2008">Cloud Avenue</a></li>
<li><a href="http://www.developerzen.com/2009/10/27/high-performance-at-massive-scale-lessons-learned-at-facebook/" rel="bookmark" title="October 27, 2009">High Performance at Massive Scale &ndash; Lessons learned at Facebook</a></li>
<li><a href="http://www.developerzen.com/2009/05/06/introduction-to-mapreduce-for-net-developers/" rel="bookmark" title="May 6, 2009">Introduction to MapReduce for .NET Developers</a></li>
</ul>
<p><!-- Similar Posts took 12.548 ms --></p>

<p><a href="http://feedads.g.doubleclick.net/~a/Jts8hRlv82hr2x-WFqfuKVw_xrI/0/da"><img src="http://feedads.g.doubleclick.net/~a/Jts8hRlv82hr2x-WFqfuKVw_xrI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/Jts8hRlv82hr2x-WFqfuKVw_xrI/1/da"><img src="http://feedads.g.doubleclick.net/~a/Jts8hRlv82hr2x-WFqfuKVw_xrI/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EranKampf?a=kmGTnpbKuT4:rcpb5ypGUUo:XQ266DUsA9M"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=XQ266DUsA9M" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=kmGTnpbKuT4:rcpb5ypGUUo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=kmGTnpbKuT4:rcpb5ypGUUo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=kmGTnpbKuT4:rcpb5ypGUUo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=kmGTnpbKuT4:rcpb5ypGUUo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=kmGTnpbKuT4:rcpb5ypGUUo:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=kmGTnpbKuT4:rcpb5ypGUUo:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=kmGTnpbKuT4:rcpb5ypGUUo:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=kmGTnpbKuT4:rcpb5ypGUUo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=kmGTnpbKuT4:rcpb5ypGUUo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=kmGTnpbKuT4:rcpb5ypGUUo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=kmGTnpbKuT4:rcpb5ypGUUo:i0o2LV1JfPc"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=i0o2LV1JfPc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=kmGTnpbKuT4:rcpb5ypGUUo:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EranKampf/~4/kmGTnpbKuT4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developerzen.com/2009/06/11/yahoo-releases-its-own-hadoop-distribution/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.developerzen.com/2009/06/11/yahoo-releases-its-own-hadoop-distribution/</feedburner:origLink></item>
		<item>
		<title>New Features for Amazon EC2 – Now You Can Truly Scale Applications</title>
		<link>http://feedproxy.google.com/~r/EranKampf/~3/DQKvv7vc_Ak/</link>
		<comments>http://www.developerzen.com/2009/05/18/new-features-for-amazon-ec2-%e2%80%93-now-you-can-truly-scale-applications/#comments</comments>
		<pubDate>Mon, 18 May 2009 10:14:40 +0000</pubDate>
		<dc:creator>Eran Kampf</dc:creator>
				<category><![CDATA[Software Industry]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[AMZN]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[EC2]]></category>
		<category><![CDATA[fault-tolerant applications]]></category>
		<category><![CDATA[load balancing]]></category>

		<guid isPermaLink="false">http://www.developerzen.com/?p=2299</guid>
		<description><![CDATA[The Amazon Elastic Compute Cloud (Amazon EC2) allows customers build secure, fault-tolerant applications that can scale up and down with demand, at low cost. One of the core features for achieving this kind of efficiency and fault-tolerant is the ability to acquire and release computing resources in a matter of minutes according to demand. While [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://storage.developerzen.com//2009/05/amlb.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="a-m-lb" border="0" alt="a-m-lb" align="right" src="http://storage.developerzen.com//2009/05/amlb-thumb.jpg" width="240" height="183" /></a>The Amazon Elastic Compute Cloud (<a href="http://aws.amazon.com/ec2">Amazon EC2</a>) allows customers build secure, fault-tolerant applications that can scale up and down with demand, at low cost. One of the core features for achieving this kind of efficiency and fault-tolerant is the ability to acquire and release computing resources in a matter of minutes according to demand.</p>
<p>While Amazon’s EC2 has been great so far in allowing companies to run large, computational-heavy distributed tasks on the background, it has been really lacking on allowing companies to run online services in a manner that’s efficient and reliable.</p>
<p>The reason for this lack of support is basically because there was no way to do <a href="http://en.wikipedia.org/wiki/Load_balancing_(computing)">load balancing</a> on EC2 machines allowing a service to efficiently scale across multiple EC2 instances.</p>
<p>With the launch of Amazon CloudWatch, Auto Scaling and Amazon Elastic Load Balancing, Amazon is effectively making EC2 a viable host for online services, not just background jobs. Using these services you can not only scale a service across machines for reliability, you can also automatically add and remove computing resources as demand increases\decreases driving your operation costs down.</p>
<p>You can find more information at the detail pages for <a href="http://aws.amazon.com/cloudwatch">Amazon CloudWatch</a>, <a href="http://aws.amazon.com/autoscaling">Auto Scaling</a> and <a href="http://aws.amazon.com/elasticloadbalancing">Elastic Load Balancing</a> and on the <a href="http://aws.typepad.com/">AWS developer weblog</a>. Also, check out Werner Vogel’s <a href="http://www.allthingsdistributed.com/2009/05/amazon_cloudwatch.html">blog post</a> for some background on how Amazon is horizontally scaling its services.</p>
<p><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.developerzen.com/2009/07/25/moving-your-application-to-amazon-s-cloud/" rel="bookmark" title="July 25, 2009">Moving Your Application to Amazon&rsquo;s Cloud</a></li>
<li><a href="http://www.developerzen.com/2008/10/09/amazon-s3-storing-29-billion-objects/" rel="bookmark" title="October 9, 2008">Amazon S3 Storing 29 Billion Objects</a></li>
<li><a href="http://www.developerzen.com/2008/11/14/microsoft-updates-its-windows-live-services/" rel="bookmark" title="November 14, 2008">Microsoft Updates Its Windows Live Services</a></li>
<li><a href="http://www.developerzen.com/2009/05/06/introduction-to-mapreduce-for-net-developers/" rel="bookmark" title="May 6, 2009">Introduction to MapReduce for .NET Developers</a></li>
<li><a href="http://www.developerzen.com/2008/10/05/why-coming-up-with-an-iphone-killer-will-be-tough/" rel="bookmark" title="October 5, 2008">Why Coming Up With an iPhone Killer Will Be Tough…</a></li>
</ul>
<p><!-- Similar Posts took 16.456 ms --></p>

<p><a href="http://feedads.g.doubleclick.net/~a/EQt9vqsyDj7uVP6hATep0Fmq9bU/0/da"><img src="http://feedads.g.doubleclick.net/~a/EQt9vqsyDj7uVP6hATep0Fmq9bU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/EQt9vqsyDj7uVP6hATep0Fmq9bU/1/da"><img src="http://feedads.g.doubleclick.net/~a/EQt9vqsyDj7uVP6hATep0Fmq9bU/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EranKampf?a=DQKvv7vc_Ak:Xvn0903n514:XQ266DUsA9M"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=XQ266DUsA9M" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=DQKvv7vc_Ak:Xvn0903n514:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=DQKvv7vc_Ak:Xvn0903n514:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=DQKvv7vc_Ak:Xvn0903n514:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=DQKvv7vc_Ak:Xvn0903n514:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=DQKvv7vc_Ak:Xvn0903n514:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=DQKvv7vc_Ak:Xvn0903n514:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=DQKvv7vc_Ak:Xvn0903n514:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=DQKvv7vc_Ak:Xvn0903n514:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=DQKvv7vc_Ak:Xvn0903n514:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=DQKvv7vc_Ak:Xvn0903n514:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=DQKvv7vc_Ak:Xvn0903n514:i0o2LV1JfPc"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=i0o2LV1JfPc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=DQKvv7vc_Ak:Xvn0903n514:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EranKampf/~4/DQKvv7vc_Ak" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developerzen.com/2009/05/18/new-features-for-amazon-ec2-%e2%80%93-now-you-can-truly-scale-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.developerzen.com/2009/05/18/new-features-for-amazon-ec2-%e2%80%93-now-you-can-truly-scale-applications/</feedburner:origLink></item>
		<item>
		<title>Introduction to MapReduce for .NET Developers</title>
		<link>http://feedproxy.google.com/~r/EranKampf/~3/-Zfj-HsZcxI/</link>
		<comments>http://www.developerzen.com/2009/05/06/introduction-to-mapreduce-for-net-developers/#comments</comments>
		<pubDate>Wed, 06 May 2009 16:08:21 +0000</pubDate>
		<dc:creator>Eran Kampf</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Dryad]]></category>
		<category><![CDATA[Hadoop]]></category>
		<category><![CDATA[MapReduce]]></category>
		<category><![CDATA[Scalability]]></category>
		<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[web scalability]]></category>

		<guid isPermaLink="false">http://www.developerzen.com/?p=2294</guid>
		<description><![CDATA[The basic model for MapReduce derives from the map and reduce concept in functional languages like Lisp. In Lisp, a map takes as input a function and a sequence of values and applies the function to each value in the sequence. A reduce takes as input a sequence of elements and combines all the elements [...]]]></description>
			<content:encoded><![CDATA[<p>The basic model for MapReduce derives from the <em>map</em> and <em>reduce</em> concept in functional languages like <em>Lisp</em>.<br />
In Lisp, a <strong><em>map</em> </strong>takes as input a function and a sequence of values and <strong>applies the function to each value in the sequence</strong>.<br />
A <strong><em>reduce</em></strong> takes as input a sequence of elements and <strong>combines all the elements</strong> using a binary operation (for example, it can use &#8220;+&#8221; to sum all the elements in the sequence).</p>
<p>MapReduce, inspired by these concepts, was developed as a method for writing processing algorithms for large amounts of raw data. The amount of data is so large that it can’t be stored on a single machine and must be distributed across many machines in order to be processed in a reasonable time.<br />
In systems with such data distribution, the traditional central processing algorithms are useless as just getting the data to the centralized CPU running the algorithm implies huge network costs and months (!) spent on transferring data from the distributed machines.<br />
Therefore, processing such massive scales of distributed data implies the need for <em>parallel computing</em> allowing us to run the required computation “close” to where the data is located.<br />
MapReduce is an abstraction that allows engineers to write such processing algorithms in a way that is easy to parallelize while hiding the complexities of parallelization, data distribution, fault tolerance etc.</p>
<p>This value proposition for MapReduce is outlined in <a href="http://labs.google.com/papers/mapreduce.html">a Google research paper on the topic</a>:</p>
<blockquote><p>MapReduce is a programming model and an associated implementation for processing and generating large data sets. Users specify a map function that processes a key/value pair to generate a set of intermediate key/value pairs, and a reduce function that merges all intermediate values associated with the same intermediate key. Many real world tasks are expressible in this model, as shown in the paper.</p>
<p>Programs written in this functional style are automatically parallelized and executed on a large cluster of commodity machines. The run-time system takes care of the details of partitioning the input data, scheduling the program’s execution across a set of machines, handling machine failures, and managing the required inter-machine communication. This allows programmers without any experience with parallel and distributed systems to easily utilize the resources of a large distributed system.</p>
<p>Our implementation of MapReduce runs on a large cluster of commodity machines and is highly scalable: a typical MapReduce computation processes many terabytes of data on thousands of machines. Programmers find the system easy to use: hundreds of MapReduce programs have been implemented and upwards of one thousand MapReduce jobs are executed on Google’s clusters every day.</p></blockquote>
<h3>The MapReduce Programming Model</h3>
<p>As explained earlier, the purpose of MapReduce is to abstract parallel algorithms into a <em>map</em> and <em>reduce</em> functions that can then be executed on a large  scale distributed system.<br />
In order to understand this concept better lets look at a concrete map reduce example &#8211; consider the problem of counting the number of occurrences of each word in a large collection of documents:</p>
<blockquote>
<pre class="code"><strong>map</strong>(String key, String value):
// key: document name
// value: document contents
<span style="color: blue">for each</span> word w <span style="color: blue">in</span> value:
  <span style="color: blue">EmitIntermediate</span>(w, "1"); 

<strong>reduce</strong>(String key, Iterator values):
// key: a word
// values: a list of counts
<span style="color: blue">int</span> result = 0;
<span style="color: blue">for each</span> v <span style="color: blue">in</span> values:
  result += ParseInt(v);
<span style="color: blue">Emit</span>(AsString(result));</pre>
</blockquote>
<p>The <em>map</em> function goes over the document text and emits each word with an associated value of “1”.</p>
<p>The <em>reduce</em> functions sums together all the values for each word producing the number of occurrences for that word as a result.</p>
<p>First we go through the <strong>mapping phase</strong> where we go over the input data and create intermediate values as follows:</p>
<ul>
<li>Records from the data source (lines out of files, rows of a database, etc.) are fed into the <em>map function</em> as <em>&lt;key,value&gt;</em> pairs.For example: <em>&lt;filename, file content&gt;</em></li>
<li>The <em>map function</em> produces one or more intermediate values along with an output key from the input</li>
</ul>
<p>After the mapping phase is over, we go through the <strong>reduce phase </strong>to process the intermediate values:</p>
<ul>
<li>After the map phase is over, all the intermediate values for a given output key are combined together into a list and fed to the <em>reduce function</em>.</li>
<li>The <em>reduce function</em> combines those intermediate values into one or more final values for that same output key</li>
</ul>
<p>Notice that both the <em>map</em> and the <em>reduce</em> functions run on independent set of input data. Each run of the <em>map</em> function process its own data source and each run of the <em>reduce</em> function processes the values of a different intermediate key.</p>
<p>Therefore both phases can be parallelized with the only <em>bottleneck</em> being the fact that the map phase has to finish for the reduce phase to start.</p>
<p>The underlying system running these method is in takes care of:</p>
<ul>
<li>Initialize a set of workers that can run tasks – map or reduce functions.</li>
<li>Take the input data (in our case, lots of document filenames) and send them to the workers to map</li>
<li>Streamline values emitted by <em>map</em> function to the worker (or workers) doing the <em>reduce</em>. Note that we don’t have to wait for a certain <em>map</em> run to finish going over the entire file in order to start sending its emitted values to the reducer, so that the system can prepare the data for the reducer while the map function is running<br />
(In Hadoop &#8211; send the map values to the reducer node and andle grouping by key).</li>
<li>Handle errors – support a reliable, fault tolerant process as workers may fail, network can crush preventing workers from communicating results, etc.</li>
<li>Provides status and monitoring tools.</li>
</ul>
<h3>A Naive Implementation in C#</h3>
<p>Lets see how we can build naive MapReduce implementation in C#.</p>
<p>First, we define a generic class to manage our Map-Reduce process:</p>
<pre class="code"><span style="color: blue">public class </span><span style="color: #2b91af">NaiveMapReduceProgram</span>&lt;K1, V1, K2, V2, V3&gt;</pre>
<p><a href="http://11011.net/software/vspaste"></a></p>
<p>The generic types are used the following way:</p>
<ul>
<li><strong>(K1, V1)</strong> – key-value types for the input data</li>
<li><strong>(K2, V2)</strong> – key value types for the intermediate results (results of our Map function)</li>
<li><strong>V3</strong> – The type of the result for the entire Map-Reduce process</li>
</ul>
<p>Next, we’ll define the <em>delegates</em> of our <em>Map</em> and <em>Reduce</em> functions:</p>
<pre class="code"><span style="color: blue">public delegate </span><span style="color: #2b91af">IEnumerable</span>&lt;<span style="color: #2b91af">KeyValuePair</span>&lt;K2, V2&gt;&gt;   <span style="color: #2b91af">MapFunction</span>(K1 key, V1 value);
<span style="color: blue">public delegate </span><span style="color: #2b91af">IEnumerable</span>&lt;V3&gt;                     <span style="color: #2b91af">ReduceFunction</span>(K2 key, <span style="color: #2b91af">IEnumerable</span>&lt;V2&gt; values);</pre>
<pre class="code"><span style="color: blue">private </span><span style="color: #2b91af">MapFunction </span>_map;
<span style="color: blue">private </span><span style="color: #2b91af">ReduceFunction </span>_reduce;</pre>
<pre class="code"><span style="color: blue">public </span>NaiveMapReduceProgram(<span style="color: #2b91af">MapFunction </span>mapFunction, <span style="color: #2b91af">ReduceFunction </span>reduceFunction)
{
    _map = mapFunction;
    _reduce = reduceFunction;
}</pre>
<p>(Yes, I realize I could use .NET’s <em>Func&lt;T1,T2,TResult&gt;</em> instead but that would just result in horribly long ugly code…)</p>
<p>Now for the actual program execution. The execution flow is as follows: We take the input values, pass them through the map function to get intermediate values, we group those values by key and pass them to the reduce function to get result values.</p>
<p>So first, lets look at the mapping step:</p>
<pre class="code"><span style="color: blue">private </span><span style="color: #2b91af">IEnumerable</span>&lt;<span style="color: #2b91af">KeyValuePair</span>&lt;K2, V2&gt;&gt; Map(<span style="color: #2b91af">IEnumerable</span>&lt;<span style="color: #2b91af">KeyValuePair</span>&lt;K1, V1&gt;&gt; input)
{
    <span style="color: blue">var </span>q = <span style="color: blue">from </span>pair <span style="color: blue">in </span>input
            <span style="color: blue">from </span>mapped <span style="color: blue">in </span>_map(pair.Key, pair.Value)
            <span style="color: blue">select </span>mapped;

    <span style="color: blue">return </span>q;
}</pre>
<p><a href="http://11011.net/software/vspaste"></a></p>
<p>Now after we got the mapped intermediate values we want to reduce them. The <em>Reduce</em> function expects a <em>key</em> and all its mapped values as input so to do that efficiently we want to group the intermediate values by key first and then call the <em>Reduce </em>function for each key.</p>
<p>The output of this process is a <strong><em>V3</em> </strong>value for each of the intermediate <strong><em>K2</em></strong> keys:</p>
<pre class="code"><span style="color: blue">private </span><span style="color: #2b91af">IEnumerable</span>&lt;<span style="color: #2b91af">KeyValuePair</span>&lt;K2, V3&gt;&gt; Reduce(<span style="color: #2b91af">IEnumerable</span>&lt;<span style="color: #2b91af">KeyValuePair</span>&lt;K2, V2&gt;&gt; intermediateValues)
{
    <span style="color: green">// First, group intermediate values by key
    </span><span style="color: blue">var </span>groups = <span style="color: blue">from </span>pair <span style="color: blue">in </span>intermediateValues
                 <span style="color: blue">group </span>pair.Value <span style="color: blue">by </span>pair.Key <span style="color: blue">into </span>g
                 <span style="color: blue">select </span>g;

    <span style="color: green">// Reduce on each group
    </span><span style="color: blue">var </span>reduced = <span style="color: blue">from </span>g <span style="color: blue">in </span>groups
                  <span style="color: blue">let </span>k2 = g.Key
                  <span style="color: blue">from </span>reducedValue <span style="color: blue">in </span>_reduce(k2, g)
                  <span style="color: blue">select new </span><span style="color: #2b91af">KeyValuePair</span>&lt;K2, V3&gt;(k2, reducedValue);

    <span style="color: blue">return </span>reduced;
}</pre>
<p><a href="http://11011.net/software/vspaste"></a></p>
<p>Now that we have the steps code the execution itself is simply defined as <em>Reduce(Map(input))</em> :</p>
<pre class="code"><span style="color: blue">public </span><span style="color: #2b91af">IEnumerable</span>&lt;<span style="color: #2b91af">KeyValuePair</span>&lt;K2, V3&gt;&gt; Execute(<span style="color: #2b91af">IEnumerable</span>&lt;<span style="color: #2b91af">KeyValuePair</span>&lt;K1, V1&gt;&gt; input)
{
    <span style="color: blue">return </span>Reduce(Map(input));
}</pre>
<p>The full source code and tests can be downloaded from here:</p>
<h3>Map-Reduce Word Counting Sample &#8211; Revisited</h3>
<p>Lets go back to the word-counting pseudo code and write it in C#.</p>
<p>The following <em>Map</em> function gets a key and a text value and emits a &lt;word, 1&gt; key-pair for each word in the text:</p>
<pre class="code"><span style="color: blue">public </span><span style="color: #2b91af">IList</span>&lt;<span style="color: #2b91af">KeyValuePair</span>&lt;<span style="color: blue">string</span>, <span style="color: blue">int</span>&gt;&gt; MapFromMem(<span style="color: blue">string </span>key, <span style="color: blue">string </span>value)
{
    <span style="color: #2b91af">List</span>&lt;<span style="color: #2b91af">KeyValuePair</span>&lt;<span style="color: blue">string</span>, <span style="color: blue">int</span>&gt;&gt; result = <span style="color: blue">new </span><span style="color: #2b91af">List</span>&lt;<span style="color: #2b91af">KeyValuePair</span>&lt;<span style="color: blue">string</span>, <span style="color: blue">int</span>&gt;&gt;();
    <span style="color: blue">foreach </span>(<span style="color: blue">var </span>word <span style="color: blue">in </span>value.Split(<span style="color: #a31515">' '</span>))
    {
        result.Add(<span style="color: blue">new </span><span style="color: #2b91af">KeyValuePair</span>&lt;<span style="color: blue">string</span>, <span style="color: blue">int</span>&gt;(word, 1));
    }
    <span style="color: blue">return </span>result;
}</pre>
<p>Having calculated a &lt;word, 1&gt; key-pair for each input source, we can group the results by the <em>word</em> and then our <em>Reduce</em> function can sum the values (which are 1 in this case) for each word:</p>
<pre class="code"><span style="color: blue">public </span><span style="color: #2b91af">IEnumerable</span>&lt;<span style="color: blue">int</span>&gt; Reduce(<span style="color: blue">string </span>key, <span style="color: #2b91af">IEnumerable</span>&lt;<span style="color: blue">int</span>&gt; values)
{
    <span style="color: blue">int </span>sum = 0;
    <span style="color: blue">foreach </span>(<span style="color: blue">int </span>value <span style="color: blue">in </span>values)
    {
        sum += value;
    }

    <span style="color: blue">return new int</span>[1] { sum };
}</pre>
<p><a href="http://11011.net/software/vspaste"></a><a href="http://11011.net/software/vspaste"></a><a href="http://11011.net/software/vspaste"></a><a href="http://11011.net/software/vspaste"></a><a href="http://11011.net/software/vspaste"></a></p>
<p>Our program code looks like this:</p>
<pre class="code"><span style="color: #2b91af">MapReduceProgram</span>&lt;<span style="color: blue">string</span>, <span style="color: blue">string</span>, <span style="color: blue">string</span>, <span style="color: blue">int</span>, <span style="color: blue">int</span>&gt; master = <span style="color: blue">new </span><span style="color: #2b91af">MapReduceProgram</span>&lt;<span style="color: blue">string</span>, <span style="color: blue">string</span>, <span style="color: blue">string</span>, <span style="color: blue">int</span>, <span style="color: blue">int</span>&gt;(MapFromMem, Reduce);
<span style="color: blue">var </span>result = master.Execute(inputData).ToDictionary(key =&gt; key.Key, v =&gt; v.Value);</pre>
<p>The result dictionary contains a &lt;<em>word</em>, <em>number-of-occurrences&gt;</em> pairs.</p>
<h1>Other Examples</h1>
<p><strong>Distributed LINQ Queries. </strong>One of POCs I’m working on using the above naive, LINQ-based implementation, is running a distributed LINQ query. Imagine you have a system where raw data is distributed across several SQL Servers. We can have our <em>map</em> function run a LINQ-to-SQL query on multiple <em>DataContexts</em> in parallel (the value input for the <em>map</em> function – V1 – can be a <em>DataContext</em>) and then reduce it to a single result set. This is probably a naive\simplified implementation of what the guys at <a href="http://research.microsoft.com/en-us/projects/Dryad/">Microsoft’s Dryad team</a> are doing.</p>
<p><strong>Count URL Visits. </strong>Consider you have several web servers and you want to produce the amount of visits for each page on your site. You can produce pretty much the same way the word-counting example works. The <em>map</em> function parses a log file and produce a <em>&lt;URL, 1&gt;</em> intermediate value. The <em>reduce</em> function then sums the values for each URL and emits <em>&lt;URL, number of visits&gt;</em></p>
<p><strong>Distributed Grep. </strong>You can run a grep search on a large amount of files by having the map function emits a line if it matches a given pattern. The reduce function in this case is just an identity function that copies the supplied intermediate data to the output.</p>
<h3>Map-Reduce in the Real World</h3>
<p>The real complexity and sophistication in MapReduce is in the underlying system takes care of running and managing the execution of MapReduce jobs. Real world MapReduce implementations, like <a href="http://labs.google.com/papers/mapreduce.html">Google’s system</a>, <a href="hadoop.apache.org">Hadoop</a> or <a href="http://research.microsoft.com/en-us/projects/Dryad/">Dryad</a> have to go beyond the naive implementation shown here and take care of things like resource monitoring, reliability and fault tolerance (for example, handle cases where nodes running map\reduce jobs crush, or go offline due to network problems).</p>
<p>The following resources are worth checking out:</p>
<ul>
<li><a href="http://www.cloudera.com/hadoop-training">Cloudera’s Hadoop Training</a></li>
<li>Google Code University – <a href="http://code.google.com/edu/parallel/">Distributed Systems</a></li>
</ul>
<p><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.developerzen.com/2009/06/16/facebook-hadoop-and-hive/" rel="bookmark" title="June 16, 2009">Facebook, Hadoop and Hive</a></li>
<li><a href="http://www.developerzen.com/2009/01/11/aspnet-mvc-rss-feed-action-result/" rel="bookmark" title="January 11, 2009">ASP.NET MVC RSS Feed Action Result</a></li>
<li><a href="http://www.developerzen.com/2009/08/14/data-mining-handling-missing-values-the-database/" rel="bookmark" title="August 14, 2009">Data Mining &ndash; Handling Missing Values the Database</a></li>
<li><a href="http://www.developerzen.com/2009/06/11/yahoo-releases-its-own-hadoop-distribution/" rel="bookmark" title="June 11, 2009">Yahoo Releases Its Own Hadoop Distribution</a></li>
<li><a href="http://www.developerzen.com/2009/07/25/moving-your-application-to-amazon-s-cloud/" rel="bookmark" title="July 25, 2009">Moving Your Application to Amazon&rsquo;s Cloud</a></li>
</ul>
<p><!-- Similar Posts took 12.274 ms --></p>

<p><a href="http://feedads.g.doubleclick.net/~a/JQQgd8gdg7ZR-cq1wXBkuLXWNbQ/0/da"><img src="http://feedads.g.doubleclick.net/~a/JQQgd8gdg7ZR-cq1wXBkuLXWNbQ/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/JQQgd8gdg7ZR-cq1wXBkuLXWNbQ/1/da"><img src="http://feedads.g.doubleclick.net/~a/JQQgd8gdg7ZR-cq1wXBkuLXWNbQ/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EranKampf?a=-Zfj-HsZcxI:a6u1TU0BDPc:XQ266DUsA9M"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=XQ266DUsA9M" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=-Zfj-HsZcxI:a6u1TU0BDPc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=-Zfj-HsZcxI:a6u1TU0BDPc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=-Zfj-HsZcxI:a6u1TU0BDPc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=-Zfj-HsZcxI:a6u1TU0BDPc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=-Zfj-HsZcxI:a6u1TU0BDPc:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=-Zfj-HsZcxI:a6u1TU0BDPc:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=-Zfj-HsZcxI:a6u1TU0BDPc:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=-Zfj-HsZcxI:a6u1TU0BDPc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=-Zfj-HsZcxI:a6u1TU0BDPc:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=-Zfj-HsZcxI:a6u1TU0BDPc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=-Zfj-HsZcxI:a6u1TU0BDPc:i0o2LV1JfPc"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=i0o2LV1JfPc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=-Zfj-HsZcxI:a6u1TU0BDPc:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EranKampf/~4/-Zfj-HsZcxI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developerzen.com/2009/05/06/introduction-to-mapreduce-for-net-developers/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		<feedburner:origLink>http://www.developerzen.com/2009/05/06/introduction-to-mapreduce-for-net-developers/</feedburner:origLink></item>
		<item>
		<title>A Visit to Maraboo, Restaurants as Tribes in the Digital Age</title>
		<link>http://feedproxy.google.com/~r/EranKampf/~3/3945yVe1PuQ/</link>
		<comments>http://www.developerzen.com/2009/04/30/a-visit-to-maraboo-restaurants-as-tribes-in-the-digital-age/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 07:34:10 +0000</pubDate>
		<dc:creator>Eran Kampf</dc:creator>
				<category><![CDATA[Finding Inspiration]]></category>
		<category><![CDATA[Fiddme]]></category>
		<category><![CDATA[Maraboo]]></category>

		<guid isPermaLink="false">http://www.developerzen.com/?p=2283</guid>
		<description><![CDATA[Its a rare occasion that I go out of a restaurant (and I go to many) with an absolute feeling of “WOW!”… This Monday was one of these occasions. On the past couple of week we’ve been working on a new, food related venture (more details on that in the very near future).  Apparently, we [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://storage.developerzen.com//2009/04/3486004640-0982dd6589.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="3486004640_0982dd6589" src="http://storage.developerzen.com//2009/04/3486004640-0982dd6589-thumb.jpg" border="0" alt="3486004640_0982dd6589" width="164" height="244" align="right" /></a>Its a rare occasion that I go out of a restaurant (and I go to many) with an absolute feeling of “WOW!”… This Monday was one of these occasions.</p>
<p>On the past couple of week we’ve been working on a <a href="http://search.twitter.com/search?q=fiddme">new, food related venture</a> (more details on that in the very near future).  Apparently, we raised enough twitter noise to get noticed, and thanks to <a href="http://maya567.wordpress.com">Maya</a> we’ve been contacted by Channel 10 and invited to visit <a href="http://www.rest.co.il/sites/Default.asp?txtRestID=9357">Maraboo</a> as part of the promotions for the season finale of <a href="http://food.nana10.co.il/Category/?CategoryID=400268&amp;sid=142&amp;pid=48">the Israeli version of Icon Chef</a> featuring the <a href="http://www.rest.co.il/sites/Default.asp?txtRestID=9357">Maraboo</a> team vs. the <a href="http://www.rest.co.il/sites/Default.asp?txtRestID=9357">Hudson Brasseri</a> – you <strong>should tune in</strong> on <a href="http://food.nana10.co.il/Category/?CategoryID=400268&amp;sid=142&amp;pid=48">Channel10</a> this <em>Thursday</em> (April 30, 2009) at <em>21:00</em>.</p>
<p>At the restaurant we met the owners<em>, </em><a href="http://twitter.com/amshalom"><em>Haim Amshalom</em></a> and Chef <em>Yoav Bar<br />
</em>who showed us around the place and introduced us to each and every dish we got. We had a great time…</p>
<p><a href="http://storage.developerzen.com//2009/04/image-279b6fb5.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image_279B6FB5" src="http://storage.developerzen.com//2009/04/image-279b6fb5-thumb.png" border="0" alt="image_279B6FB5" width="193" height="165" /></a> <a href="http://storage.developerzen.com//2009/04/img-3603-653831a4.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="IMG_3603_653831A4" src="http://storage.developerzen.com//2009/04/img-3603-653831a4-thumb.jpg" border="0" alt="IMG_3603_653831A4" width="244" height="165" /></a><br />
* On the <em>left </em><a href="http://twitter.com/amshalom"><em>Haim Amshalom</em></a> and on the right <em>Chef Yoav Bar</em></p>
<p>The fact that were at Maraboo as <em>bloggers,</em> that Maraboo has its own <a href="http://www.facebook.com/home.php#/group.php?gid=78026636445&amp;ref=mf">group on Facebook</a> and that its owner is <a href="http://twitter.com/amshalom">on Twitter</a> made me think about the <strong>opportunities the web has to offer restaurants</strong>.</p>
<h3>The Web is About Openness… Can Restaurants be Open?</h3>
<p>The Web is about openness, its about empowering online communities and individuals to create, remix, share and make things themselves.<br />
Restaurants are essentially small communities, or <a href="http://www.google.com/url?sa=t&amp;source=web&amp;ct=res&amp;cd=5&amp;url=http%3A%2F%2Fwww.slideshare.net%2Fsethgodin%2Fseth-godin-on-tribes-presentation&amp;ei=r-f4Se-MMJaSsAbxx8GHAg&amp;usg=AFQjCNHZ6g_I9LHolQ-j1YWxfelCuCtSlQ&amp;sig2=7v07WFk76rdIouWr4EeD1g">tribes</a> of people with a common interest (in our case – food) a leader (the Chef) and a platform to communicate (the restaurant). They can use the web as a platform to develop a personal relationship with its customers and the facility itself (the restaurant) as a social hub.</p>
<p>Restaurants, like any other business, can use Twitter or a Facebook group etc. to keep in touch with their diners but what’s more interesting is that they can actually use it to become a platform, or a hub, for its tribe members (diners) to interact and their common interests (food).</p>
<p><strong>The Menu as a Wiki.</strong> Ok, the Chef builds the menu and we wouldn&#8217;t want to change that… that&#8217;s the whole point of the restaurant. But what if he could collaborate or include the diners into that process?</p>
<p>Maybe people think the Calamari dish is lacking? or maybe they just hate Calamari…  wouldn’t you want to know?</p>
<p>It can put recipes online and invite diners to make suggestions. Some users might go through the trouble of preparing the dish at home. They might make all sort of adaptations and report back, discuss them online with their fellow diners (For example, a lot of people tried to make the same wings sauce as <a href="http://www.google.com/url?sa=t&amp;source=web&amp;ct=res&amp;cd=1&amp;url=http%3A%2F%2Fwww.dixie.co.il%2F&amp;ei=Ou34SeieAsuHsAaEu4z_AQ&amp;usg=AFQjCNGtt2AF8OUbQo_2v46kheX4DMHfVQ&amp;sig2=8tPJXeWlk0PMxmhLYmJI9Q">Dixie’s</a> famous sauce and they were discussing it online). Maybe some of these adaptations are actually worth putting in the menu?</p>
<p>In fact, what if browsing a restaurant&#8217;s menu was more like browsing Amazon?<br />
You could see which dishes people like more, what they think of it. You could see what your friends like (or not) or filter dishes by “spec” (like calories intake?).</p>
<p><strong>Restaurants can become the stars. </strong>The popularity of kitchen-based reality shows is soaring (heck, we’re here as a promotion for such a show) because there’s a public interests in restaurants, in chefs, in food making.<br />
Chefs could blog about their taste, inspirations, trends they see, cooking practices and tutorials and become <em>local stars </em>(take <a href="http://www.google.com/url?sa=t&amp;source=web&amp;ct=res&amp;cd=1&amp;url=http%3A%2F%2Fgaryvaynerchuk.com%2F&amp;ei=PfH4Sfr0F8PdsgaG1cSYBg&amp;usg=AFQjCNEN-wJTP99kjsS_gSEothqUrlRoxw&amp;sig2=JLl9WlXrsb8KADC6BZNmpQ">Gary Vaynerchuk’s</a> for example)</p>
<p><strong>Restaurant as a community meeting place.</strong> People in online communities like to meet. Just see all the Tweetup events where communities of people who know each other from talking on Twitter gather to talk offline. As its community members all share a passion for food, a restaurant can organize <em>bakeups</em>- where people could learn about cooking\cook. Maybe even have a community member as Chef for a night…</p>
<h3>Final Thoughts and.. Food Photos!</h3>
<p>As Seth Godin <a href="http://sethgodin.typepad.com/seths_blog/2008/01/tribal-manageme.html">puts it</a>, managing a tribe is a whole different concept than the old way of just managing a brand using traditional PR:</p>
<blockquote><p>Tribe management is a whole different way of looking at the world.</p>
<p>It starts with permission, the understanding that the real asset most organizations can build isn&#8217;t an amorphous brand but is in fact the privilege of delivering anticipated, personal and relevant messages to people who want to get them.</p>
<p>It adds to that the fact that what people really want is the ability to connect to each other, not to companies. So the permission is used to build a tribe, to build people who want to hear from the company because it helps them connect, it helps them find each other, it gives them a story to tell and something to talk about.</p></blockquote>
<p>Anyway, I can’t end this post without some photos of some of the amazing dishes we had at Maraboo:</p>
<p><a href="http://storage.developerzen.com//2009/04/3485103939-bd56f03f3a.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="3485103939_bd56f03f3a" src="http://storage.developerzen.com//2009/04/3485103939-bd56f03f3a-thumb.jpg" border="0" alt="3485103939_bd56f03f3a" width="164" height="244" /></a> <a href="http://storage.developerzen.com//2009/04/3485052589-965193bcc2.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="3485052589_965193bcc2" src="http://storage.developerzen.com//2009/04/3485052589-965193bcc2-thumb.jpg" border="0" alt="3485052589_965193bcc2" width="164" height="244" /></a> <a href="http://storage.developerzen.com//2009/04/3485054547-81f848a2d4.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="3485054547_81f848a2d4" src="http://storage.developerzen.com//2009/04/3485054547-81f848a2d4-thumb.jpg" border="0" alt="3485054547_81f848a2d4" width="164" height="244" /></a> <a href="http://storage.developerzen.com//2009/04/3485163245-980e6d8da4.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="3485163245_980e6d8da4" src="http://storage.developerzen.com//2009/04/3485163245-980e6d8da4-thumb.jpg" border="0" alt="3485163245_980e6d8da4" width="164" height="244" /></a></p>
<p><a href="http://storage.developerzen.com//2009/04/3485923748-e60d2e4378.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="3485923748_e60d2e4378" src="http://storage.developerzen.com//2009/04/3485923748-e60d2e4378-thumb.jpg" border="0" alt="3485923748_e60d2e4378" width="244" height="164" /></a> <a href="http://storage.developerzen.com//2009/04/3299-97101179007-646439007-2503321-1740312-n.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="3299_97101179007_646439007_2503321_1740312_n" src="http://storage.developerzen.com//2009/04/3299-97101179007-646439007-2503321-1740312-n-thumb.jpg" border="0" alt="3299_97101179007_646439007_2503321_1740312_n" width="244" height="164" /></a></p>
<p><a href="http://storage.developerzen.com//2009/04/3485007257-3f098b6303.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="3485007257_3f098b6303" src="http://storage.developerzen.com//2009/04/3485007257-3f098b6303-thumb.jpg" border="0" alt="3485007257_3f098b6303" width="244" height="164" /></a> <a href="http://storage.developerzen.com//2009/04/3485932262-9671e20964.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="3485932262_9671e20964" src="http://storage.developerzen.com//2009/04/3485932262-9671e20964-thumb.jpg" border="0" alt="3485932262_9671e20964" width="244" height="164" /></a></p>
<p><a href="http://storage.developerzen.com//2009/04/3485930412-6f5734e35c.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="3485930412_6f5734e35c" src="http://storage.developerzen.com//2009/04/3485930412-6f5734e35c-thumb.jpg" border="0" alt="3485930412_6f5734e35c" width="244" height="164" /></a> <a href="http://storage.developerzen.com//2009/04/3485946606-f0b0e0d459.jpg"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="3485946606_f0b0e0d459" src="http://storage.developerzen.com//2009/04/3485946606-f0b0e0d459-thumb.jpg" border="0" alt="3485946606_f0b0e0d459" width="244" height="164" /></a></p>
<p><span style="font-family: Trebuchet MS;">And finally, the entire dinning team <img src='http://www.developerzen.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </span></p>
<p><a title="IMG_3800.JPG" href="http://www.flickr.com/photos/41422863@N00/3486294112/"><img src="http://static.flickr.com/3573/3486294112_ef8520b6b2.jpg" border="0" alt="IMG_3800.JPG" /></a><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.developerzen.com/2009/04/05/microsoft-can-clone-twitter/" rel="bookmark" title="April 5, 2009">Microsoft Can Clone Twitter?!</a></li>
<li><a href="http://www.developerzen.com/2009/02/04/no-hope-for-traditional-media-companies/" rel="bookmark" title="February 4, 2009">No Hope for Traditional Media Companies?</a></li>
<li><a href="http://www.developerzen.com/2009/09/29/what-would-twitter-do-with-100-million/" rel="bookmark" title="September 29, 2009">What would Twitter do with $100 million?</a></li>
<li><a href="http://www.developerzen.com/2009/01/05/is-windows-live-still-alive/" rel="bookmark" title="January 5, 2009">Is Windows Live Still Alive?</a></li>
<li><a href="http://www.developerzen.com/2009/02/06/give-up-control-think-distributed-dld-2009-summary/" rel="bookmark" title="February 6, 2009">Give Up Control, Think Distributed &ndash; DLD 2009 Summary</a></li>
</ul>
<p><!-- Similar Posts took 12.876 ms --></p>

<p><a href="http://feedads.g.doubleclick.net/~a/hwrGOlGOUFrKJALjHTyUXDgK0Sc/0/da"><img src="http://feedads.g.doubleclick.net/~a/hwrGOlGOUFrKJALjHTyUXDgK0Sc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/hwrGOlGOUFrKJALjHTyUXDgK0Sc/1/da"><img src="http://feedads.g.doubleclick.net/~a/hwrGOlGOUFrKJALjHTyUXDgK0Sc/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EranKampf?a=3945yVe1PuQ:8GqpRQnTLkI:XQ266DUsA9M"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=XQ266DUsA9M" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=3945yVe1PuQ:8GqpRQnTLkI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=3945yVe1PuQ:8GqpRQnTLkI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=3945yVe1PuQ:8GqpRQnTLkI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=3945yVe1PuQ:8GqpRQnTLkI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=3945yVe1PuQ:8GqpRQnTLkI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=3945yVe1PuQ:8GqpRQnTLkI:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=3945yVe1PuQ:8GqpRQnTLkI:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=3945yVe1PuQ:8GqpRQnTLkI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=3945yVe1PuQ:8GqpRQnTLkI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=3945yVe1PuQ:8GqpRQnTLkI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=3945yVe1PuQ:8GqpRQnTLkI:i0o2LV1JfPc"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=i0o2LV1JfPc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=3945yVe1PuQ:8GqpRQnTLkI:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EranKampf/~4/3945yVe1PuQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developerzen.com/2009/04/30/a-visit-to-maraboo-restaurants-as-tribes-in-the-digital-age/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.developerzen.com/2009/04/30/a-visit-to-maraboo-restaurants-as-tribes-in-the-digital-age/</feedburner:origLink></item>
		<item>
		<title>Weekend Inspirations – Big Data Visualizations,  Innovative Man-Machine Interactions</title>
		<link>http://feedproxy.google.com/~r/EranKampf/~3/JUpHc8op9w8/</link>
		<comments>http://www.developerzen.com/2009/04/25/weekend-inspirations-%e2%80%93-big-data-visualizations-innovative-man-machine-interactions/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 10:54:28 +0000</pubDate>
		<dc:creator>Eran Kampf</dc:creator>
				<category><![CDATA[Finding Inspiration]]></category>
		<category><![CDATA[Innovation]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.developerzen.com/?p=2252</guid>
		<description><![CDATA[A bunch of interesting/inspiring topics for the weekend… Designing “Big Data” Jeff Veen from Small Batch Inc. gave a 20-minutes talk at the Web2.0 Expo at San Francisco. During the talk he focuses on some classic examples for information visualization (John Snow pump, Minard&#8216;s map, the tube map, and so on), the challenge of making [...]]]></description>
			<content:encoded><![CDATA[<p>A bunch of interesting/inspiring topics for the weekend…</p>
<h3>Designing “Big Data”</h3>
<p><a href="http://www.veen.com/jeff/archives/001000.html">Jeff Veen</a> from Small Batch Inc. gave a 20-minutes talk at the <a href="http://www.web2expo.com/">Web2.0 Expo</a> at San Francisco.<br />
During the talk he focuses on some classic examples for information visualization (<a href="http://en.wikipedia.org/wiki/John_Snow_%28physician%29">John Snow</a> pump, <a href="http://en.wikipedia.org/wiki/Charles_Joseph_Minard">Minard</a>&#8216;s map, the <a href="http://infosthetics.com/archives/2008/11/the_london_underground_map_tv_documentary.html">tube map</a>, and so on), the challenge of making data more accessible and understandable vs. just “decorating” it and the emerging challenge in Web 2.0 to empower users to find and create their own stories using the data.</p>
<p><object width="560" height="340" data="http://www.youtube.com/v/NmiUsdn7qRk&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/NmiUsdn7qRk&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /></object></p>
<p>And on the same topic of dealing with “big data”, check out the <a href="http://www.allosphere.ucsb.edu/">AlloSphere</a>. A system developed by scientists and artists at the University of California for exploring huge sets of data as a visual and audible 3D world:</p>
<p><object width="446" height="326" data="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="wmode" value="transparent" /><param name="bgColor" value="#ffffff" /><param name="flashvars" value="vu=http://video.ted.com/talks/embed/JoAnnKuchera-Morin_2009-embed_high.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/JoAnnKuchera-Morin-2009.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=516" /><param name="src" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" /><param name="bgcolor" value="#ffffff" /><param name="allowfullscreen" value="true" /></object></p>
<h3>Cool New Computer Interaction Technology</h3>
<p>I saw this amazing UI concept watching the TED podcast:</p>
<p><object width="446" height="326" data="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="wmode" value="transparent" /><param name="bgColor" value="#ffffff" /><param name="flashvars" value="vu=http://video.ted.com/talks/embed/DavidMerrill_2009-embed_high.flv&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/DavidMerrill-2009.embed_thumbnail.jpg&amp;vw=432&amp;vh=240&amp;ap=0&amp;ti=457" /><param name="src" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" /><param name="bgcolor" value="#ffffff" /><param name="allowfullscreen" value="true" /></object></p>
<p>The concept as computers as tiny blocks that can react to each other is just amazing and the possibilities here, especially in education, are endless…</p>
<h3>Kiva Robots Invade the Warehouse</h3>
<p>If a bunch of tiny computers interacting can change personal computing here’s what it can do in the enterprise – <a href="http://www.businessweek.com/innovate/content/apr2009/id20090415_876420.htm">optimize warehouses supply chain</a>:</p>
<blockquote><p>The servers work in real-time, receiving orders, immediately dispatching robots to bring the required pods to the worker fulfilling the order, and then returning the pods to their storage locations. The robots receive their orders wirelessly, while using cameras to read navigational barcode stickers on the warehouse floor.</p></blockquote>
<p><object width="560" height="340" data="http://www.youtube.com/v/Fdd6sQ8Cbe0&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/Fdd6sQ8Cbe0&amp;hl=en&amp;fs=1" /><param name="allowfullscreen" value="true" /></object></p>
<p>Have a great weekend!<strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.developerzen.com/2009/06/16/facebook-hadoop-and-hive/" rel="bookmark" title="June 16, 2009">Facebook, Hadoop and Hive</a></li>
<li><a href="http://www.developerzen.com/2009/12/14/iphone-vs-droid/" rel="bookmark" title="December 14, 2009">iPhone vs. Droid</a></li>
<li><a href="http://www.developerzen.com/2009/04/15/developing-a-robust-data-driven-ui-using-wpf-an-overdue-summary-and-full-source-code/" rel="bookmark" title="April 15, 2009">Developing a Robust Data Driven UI Using WPF &ndash; An Overdue Summary (and full source code)</a></li>
<li><a href="http://www.developerzen.com/2009/04/30/a-visit-to-maraboo-restaurants-as-tribes-in-the-digital-age/" rel="bookmark" title="April 30, 2009">A Visit to Maraboo, Restaurants as Tribes in the Digital Age</a></li>
<li><a href="http://www.developerzen.com/2009/10/27/high-performance-at-massive-scale-lessons-learned-at-facebook/" rel="bookmark" title="October 27, 2009">High Performance at Massive Scale &ndash; Lessons learned at Facebook</a></li>
</ul>
<p><!-- Similar Posts took 18.775 ms --></p>

<p><a href="http://feedads.g.doubleclick.net/~a/qrHx-ZVXRphvIYOMd_t8zLvp_jE/0/da"><img src="http://feedads.g.doubleclick.net/~a/qrHx-ZVXRphvIYOMd_t8zLvp_jE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/qrHx-ZVXRphvIYOMd_t8zLvp_jE/1/da"><img src="http://feedads.g.doubleclick.net/~a/qrHx-ZVXRphvIYOMd_t8zLvp_jE/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EranKampf?a=JUpHc8op9w8:M8DZnHpVPw0:XQ266DUsA9M"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=XQ266DUsA9M" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=JUpHc8op9w8:M8DZnHpVPw0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=JUpHc8op9w8:M8DZnHpVPw0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=JUpHc8op9w8:M8DZnHpVPw0:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=JUpHc8op9w8:M8DZnHpVPw0:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=JUpHc8op9w8:M8DZnHpVPw0:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=JUpHc8op9w8:M8DZnHpVPw0:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=JUpHc8op9w8:M8DZnHpVPw0:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=JUpHc8op9w8:M8DZnHpVPw0:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=JUpHc8op9w8:M8DZnHpVPw0:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=JUpHc8op9w8:M8DZnHpVPw0:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=JUpHc8op9w8:M8DZnHpVPw0:i0o2LV1JfPc"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=i0o2LV1JfPc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=JUpHc8op9w8:M8DZnHpVPw0:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EranKampf/~4/JUpHc8op9w8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developerzen.com/2009/04/25/weekend-inspirations-%e2%80%93-big-data-visualizations-innovative-man-machine-interactions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.developerzen.com/2009/04/25/weekend-inspirations-%e2%80%93-big-data-visualizations-innovative-man-machine-interactions/</feedburner:origLink></item>
		<item>
		<title>Developing a Robust Data Driven UI Using WPF – An Overdue Summary (and full source code)</title>
		<link>http://feedproxy.google.com/~r/EranKampf/~3/2VfZ9opSk9Y/</link>
		<comments>http://www.developerzen.com/2009/04/15/developing-a-robust-data-driven-ui-using-wpf-an-overdue-summary-and-full-source-code/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 21:48:14 +0000</pubDate>
		<dc:creator>Eran Kampf</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[Data Model]]></category>
		<category><![CDATA[Metadata Driver User Interface]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[Patterns]]></category>

		<guid isPermaLink="false">http://www.developerzen.com/2009/04/15/developing-a-robust-data-driven-ui-using-wpf-an-overdue-summary-and-full-source-code/</guid>
		<description><![CDATA[I wrote the stocky application more than a year ago as a research project aimed at proving that using WPF we can separate presentation metadata (XAML) from program logic. The goal was to provide the Duet team at SAP with a document reference sample for using M-V-VM to achieve this separation. I started documenting the [...]]]></description>
			<content:encoded><![CDATA[<p>I wrote the stocky application more than a year ago as a research project aimed at proving that using WPF we can separate presentation metadata (XAML) from program logic. The goal was to provide the <a href="http://www.developerzen.com/category/sap/sapduetmendocino/">Duet</a> team at SAP with a document reference sample for using M-V-VM to achieve this separation.</p>
<p>I started documenting the proof-of-concept in a series of posts but unfortunately after leaving SAP my interests (and work) shifted away from WPF and I didn’t find the time to finish the series.</p>
<p>I’ve received <a href="http://www.developerzen.com/2008/03/30/developing-a-robust-data-driven-ui-using-wpf-stock-datamodel-sample/#comment-1733">numerous requests</a> to release the source code but I couldn’t do so because it was part of a larger infrastructure code I wrote at SAP which basically ads a lot of noise to the sample (an d probably ads legal issues for me sharing it).     <br />Anyway, I took some time off this afternoon to re-write the sample independently so that I could share it:</p>
<p><a href="http://cid-bf38fd3767396800.skydrive.live.com/self.aspx/Public/WPF%20Data%20Driven%20UI/Stocky.rar">It can be found on my SkyDrive</a></p>
<p>This, I guess is the long overdue ending for the series:</p>
<ul>
<li><a href="http://www.developerzen.com/2008/03/18/developing-a-robust-data-driven-ui-using-wpf-introduction/">Introduction</a> – introduces the concept of M-V-VM and the reasoning behind it. </li>
<li><a href="http://www.developerzen.com/2008/03/24/developing-a-robust-data-driven-ui-using-wpf-the-datamodel/">The DataModel</a> – describes how to write the Model part of our application. </li>
<li><a href="http://www.developerzen.com/2008/03/30/developing-a-robust-data-driven-ui-using-wpf-stock-datamodel-sample/">Stock DataModel Sample</a> – provides a conrete implementation of a Stock model and its view..&#160; </li>
</ul>
<p>However, If you’re interested in M-V-VM in WPF, there are numerous topics worth mentioning that I didn’t get to cover and are definitely worth checking out:</p>
<h3>Unit Testing</h3>
<p>As I said in the <a href="http://www.developerzen.com/2008/03/18/developing-a-robust-data-driven-ui-using-wpf-introduction/">introduction post</a>, one of the most important benefits of seperating the logic code from the presentation (XAML) is that its straightforward to unit test. In fact, my next post following the <a href="http://www.developerzen.com/2008/03/30/developing-a-robust-data-driven-ui-using-wpf-stock-datamodel-sample/">Stock DataModel Sample</a> was going to be about unit testing – specifically, how to test the DataModel its provider which, because of the use of threading, is a bit tricky.</p>
<p>This post is actually 99% done in the comments of the unit test code that’s in <em>DefaultStockQuoteProviderTest.cs</em> in the&#160; provided source code. So do yourself a favor and go over the code. It’s not long and very well documented…</p>
<h3>Using Lambda Expression for DataBinding</h3>
<p>Data-binding is pretty much at the heart of the M-V-VM concept and it makes us write Value Converters which is pretty tedious and annoying.    <br />Wouldn’t it be great if we could replace writing lots of <em>IValueConverter classes like this:</em></p>
<pre class="code"><span style="color: blue">&lt;</span><span style="color: #a31515">TextBlock </span><span style="color: red">Foreground</span><span style="color: blue">=&quot;{</span><span style="color: #a31515">Binding </span><span style="color: red">Change</span><span style="color: blue">, </span><strong><span style="color: red">Converter</span><span style="color: blue">={</span><span style="color: #a31515">StaticResource </span><span style="color: red">StockForegroundConverter</span></strong><span style="color: blue"><strong>}</strong>}&quot; … /&gt;</span></pre>
<p><a href="http://11011.net/software/vspaste"></a></p>
<pre class="code">[<span style="color: #2b91af">ValueConversion</span>(<span style="color: blue">typeof</span>(<span style="color: blue">double</span>), <span style="color: blue">typeof</span>(<span style="color: #2b91af">Brush</span>))]
<span style="color: blue">public class </span><span style="color: #2b91af">StockChangeToBrushConverter </span>: <span style="color: #2b91af">IValueConverter
</span>{
    <span style="color: blue">public object </span>Convert(<span style="color: blue">object </span>value, <span style="color: #2b91af">Type </span>targetType, <span style="color: blue">object </span>parameter, <span style="color: #2b91af">CultureInfo </span>culture)
    {
        <span style="color: blue">double </span>change = (<span style="color: blue">double</span>)value;
        <span style="color: blue">if </span>(change == 0) <span style="color: blue">return </span><span style="color: #2b91af">Brushes</span>.Black;
        <span style="color: blue">return </span>(change &lt; 0) ? <span style="color: #2b91af">Brushes</span>.DarkRed : <span style="color: #2b91af">Brushes</span>.Green;
    }

    <span style="color: blue">public object </span>ConvertBack(<span style="color: blue">object </span>value, <span style="color: #2b91af">Type </span>targetType, <span style="color: blue">object </span>parameter, <span style="color: #2b91af">CultureInfo </span>culture)
    {
        <span style="color: blue">return double</span>.NaN;
    }
}</pre>
<p>To just the following XAML statement that embeds the conversion logic: </p>
<p><span style="color: blue">&lt;</span><span style="color: #a31515">TextBlock </span><span style="color: red">Foreground</span><span style="color: blue">=&quot;{</span><span style="color: #a31515">Binding </span><span style="color: red">Change</span><span style="color: blue">,<br />
    <br /></span><strong><span style="color: red">Converter</span><span style="color: blue">={ change=&gt; </span><span style="color: blue">if </span>(change == 0) <span style="color: blue">return </span><span style="color: #2b91af">Brushes</span>.Black; <span style="color: blue">return </span>(change &lt; 0) ? <span style="color: #2b91af">Brushes</span>.DarkRed : <span style="color: #2b91af">Brushes</span>.Green; </strong><span style="color: blue"><strong>}</strong>}&quot;</span><span style="color: blue"> … /&gt;</span></p>
<p><span style="color: blue"></span><a href="http://www.fikrimvar.net/lestirelim/?author=2">M. Orçun Topdağı</a> wrote an excellent series on using <em>Lambda Expressions</em> for data-binding in WPF to achieve just that:</p>
<ul>
<li><a href="http://www.fikrimvar.net/lestirelim/?p=15">WPFix Part 1 (Lambda Converter Extension)</a> </li>
<li><a href="http://www.fikrimvar.net/lestirelim/?p=18">WPFix Part 2 (Binding Extension)</a> </li>
<li><a href="http://www.fikrimvar.net/lestirelim/?p=23">WPFix Part 3 (Extension Methods)</a> </li>
</ul>
<h3>Reference Applications and Guidance</h3>
<p>I haven’t seen a lot of sample WPF LOB reference applications out there but here are some interesting links for further learning:</p>
<ul>
<li><a href="http://www.codeplex.com/CompositeWPF">Prism: patterns &amp; practices Composite Application Guidance for WPF and Silverlight site</a> </li>
<li><a href="http://www.codeplex.com/mvvmref">M-V-VM Reference Application</a> – A new project that aims to “created reference application for M-V-VM frameworks to use for demonstration purposes, similar in concept to Pet Shop for web frameworks.” </li>
</ul>
<p><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.developerzen.com/2009/01/11/aspnet-mvc-rss-feed-action-result/" rel="bookmark" title="January 11, 2009">ASP.NET MVC RSS Feed Action Result</a></li>
<li><a href="http://www.developerzen.com/2009/05/06/introduction-to-mapreduce-for-net-developers/" rel="bookmark" title="May 6, 2009">Introduction to MapReduce for .NET Developers</a></li>
<li><a href="http://www.developerzen.com/2009/04/25/weekend-inspirations-%e2%80%93-big-data-visualizations-innovative-man-machine-interactions/" rel="bookmark" title="April 25, 2009">Weekend Inspirations – Big Data Visualizations,  Innovative Man-Machine Interactions</a></li>
<li><a href="http://www.developerzen.com/2008/09/25/cloud-avenue/" rel="bookmark" title="September 25, 2008">Cloud Avenue</a></li>
<li><a href="http://www.developerzen.com/2009/04/30/a-visit-to-maraboo-restaurants-as-tribes-in-the-digital-age/" rel="bookmark" title="April 30, 2009">A Visit to Maraboo, Restaurants as Tribes in the Digital Age</a></li>
</ul>
<p><!-- Similar Posts took 16.248 ms --></p>

<p><a href="http://feedads.g.doubleclick.net/~a/UtvbF4LAmNNyzfBPy8n0vmyM4cM/0/da"><img src="http://feedads.g.doubleclick.net/~a/UtvbF4LAmNNyzfBPy8n0vmyM4cM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/UtvbF4LAmNNyzfBPy8n0vmyM4cM/1/da"><img src="http://feedads.g.doubleclick.net/~a/UtvbF4LAmNNyzfBPy8n0vmyM4cM/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EranKampf?a=2VfZ9opSk9Y:2FwqmiKGEaU:XQ266DUsA9M"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=XQ266DUsA9M" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=2VfZ9opSk9Y:2FwqmiKGEaU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=2VfZ9opSk9Y:2FwqmiKGEaU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=2VfZ9opSk9Y:2FwqmiKGEaU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=2VfZ9opSk9Y:2FwqmiKGEaU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=2VfZ9opSk9Y:2FwqmiKGEaU:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=2VfZ9opSk9Y:2FwqmiKGEaU:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=2VfZ9opSk9Y:2FwqmiKGEaU:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=2VfZ9opSk9Y:2FwqmiKGEaU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=2VfZ9opSk9Y:2FwqmiKGEaU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=2VfZ9opSk9Y:2FwqmiKGEaU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=2VfZ9opSk9Y:2FwqmiKGEaU:i0o2LV1JfPc"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=i0o2LV1JfPc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=2VfZ9opSk9Y:2FwqmiKGEaU:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EranKampf/~4/2VfZ9opSk9Y" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developerzen.com/2009/04/15/developing-a-robust-data-driven-ui-using-wpf-an-overdue-summary-and-full-source-code/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.developerzen.com/2009/04/15/developing-a-robust-data-driven-ui-using-wpf-an-overdue-summary-and-full-source-code/</feedburner:origLink></item>
		<item>
		<title>Microsoft Can Clone Twitter?!</title>
		<link>http://feedproxy.google.com/~r/EranKampf/~3/-C-X3DCATDE/</link>
		<comments>http://www.developerzen.com/2009/04/05/microsoft-can-clone-twitter/#comments</comments>
		<pubDate>Sun, 05 Apr 2009 01:03:41 +0000</pubDate>
		<dc:creator>Eran Kampf</dc:creator>
				<category><![CDATA[Software Industry]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[MSFT]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.developerzen.com/2009/04/05/microsoft-can-clone-twitter-so/</guid>
		<description><![CDATA[In a response to Microsoft watcher Todd Bishop’s post saying  Microsoft should buy Twitter, Mary Jo-Foley wrote Microsoft Shouldn’t Buy Twitter saying: …But I’d argue Microsoft could simply do a Twitter clone — the same way that it has built its own Facebook-notification-like news stream into Windows Live — and reap similar results. In fact, [...]]]></description>
			<content:encoded><![CDATA[<p>In a response to Microsoft watcher Todd Bishop’s post saying  <a href="http://www.techflash.com/Showdown_Why_Microsoft_cant_afford_to_lose_Twitter_to_Google_42372107.html">Microsoft should buy Twitter</a>, Mary Jo-Foley wrote <a href="http://blogs.zdnet.com/microsoft/?p=2436">Microsoft Shouldn’t Buy Twitter</a> saying:</p>
<blockquote><p>…But I’d argue Microsoft could simply do a Twitter clone — the same way that it has built <a href="http://blogs.zdnet.com/microsoft/?p=826">its own Facebook-notification-like news stream into Windows Live</a> — and reap similar results. In fact, the Softies are hinting they’ve already been <a href="http://news.cnet.com/8301-17939_109-10209952-2.html">experimenting with adding Twitter-like functionality to its business software</a> (possibly via SharePoint). I’d bet the Xbox and maybe the Pink/Danger mobile teams have been looking at doing their own Twitter-like services too.</p></blockquote>
<p>Seriously?! Microsoft could simply clone Twitter?!</p>
<p>Sure, Microsoft certainly has some brilliant tech folks that can surely implement or clone anything. It also has the resources to do that.<br />
And yet, its mostly following the pack with its online offering pretty stagnant. Last time it tried anything like that was Live Home with its Facebook\FriendFeed like functionality and that’s <a href="http://www.cloudave.com/link/is-windows-live-still-alive">pretty much dead</a>…<br />
It can certainly clone Twitter, probably even do a better job at it than the original, but will anyone bother using it?</p>
<p>Twitter has a fast growing, huge and vibrant community. Its also a well known brand name that&#8217;s getting a huge amount of media attention right now.<br />
It survived its own fail whales, upgrade owls and all sorts of other nasty service downtimes simply because no one else can beat that&#8230;<br />
You can clone technology but you can’t clone a community and brand strength…<strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.developerzen.com/2009/01/05/is-windows-live-still-alive/" rel="bookmark" title="January 5, 2009">Is Windows Live Still Alive?</a></li>
<li><a href="http://www.developerzen.com/2009/09/29/what-would-twitter-do-with-100-million/" rel="bookmark" title="September 29, 2009">What would Twitter do with $100 million?</a></li>
<li><a href="http://www.developerzen.com/2009/04/30/a-visit-to-maraboo-restaurants-as-tribes-in-the-digital-age/" rel="bookmark" title="April 30, 2009">A Visit to Maraboo, Restaurants as Tribes in the Digital Age</a></li>
<li><a href="http://www.developerzen.com/2008/10/19/the-morning-after-stressed-out-blogger-lashes-out-on-twitter/" rel="bookmark" title="October 19, 2008">The Morning After (Stressed Out Blogger Lashes Out On Twitter)</a></li>
<li><a href="http://www.developerzen.com/2008/11/14/microsoft-updates-its-windows-live-services/" rel="bookmark" title="November 14, 2008">Microsoft Updates Its Windows Live Services</a></li>
</ul>
<p><!-- Similar Posts took 12.482 ms --></p>

<p><a href="http://feedads.g.doubleclick.net/~a/rWF48Gks_burvpDldu2xzh7Hg-8/0/da"><img src="http://feedads.g.doubleclick.net/~a/rWF48Gks_burvpDldu2xzh7Hg-8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/rWF48Gks_burvpDldu2xzh7Hg-8/1/da"><img src="http://feedads.g.doubleclick.net/~a/rWF48Gks_burvpDldu2xzh7Hg-8/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EranKampf?a=-C-X3DCATDE:5rSDLbMqTIE:XQ266DUsA9M"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=XQ266DUsA9M" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=-C-X3DCATDE:5rSDLbMqTIE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=-C-X3DCATDE:5rSDLbMqTIE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=-C-X3DCATDE:5rSDLbMqTIE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=-C-X3DCATDE:5rSDLbMqTIE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=-C-X3DCATDE:5rSDLbMqTIE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=-C-X3DCATDE:5rSDLbMqTIE:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=-C-X3DCATDE:5rSDLbMqTIE:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=-C-X3DCATDE:5rSDLbMqTIE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=-C-X3DCATDE:5rSDLbMqTIE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=-C-X3DCATDE:5rSDLbMqTIE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=-C-X3DCATDE:5rSDLbMqTIE:i0o2LV1JfPc"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=i0o2LV1JfPc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=-C-X3DCATDE:5rSDLbMqTIE:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EranKampf/~4/-C-X3DCATDE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developerzen.com/2009/04/05/microsoft-can-clone-twitter/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.developerzen.com/2009/04/05/microsoft-can-clone-twitter/</feedburner:origLink></item>
		<item>
		<title>Google’s New Behavioral Ad Targeting Should be Excellent for All</title>
		<link>http://feedproxy.google.com/~r/EranKampf/~3/q5iZlJKuW4E/</link>
		<comments>http://www.developerzen.com/2009/03/12/google%e2%80%99s-new-behavioral-ad-targeting-should-be-excellent-for-all/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 02:29:47 +0000</pubDate>
		<dc:creator>Eran Kampf</dc:creator>
				<category><![CDATA[Software Business]]></category>
		<category><![CDATA[Advertising]]></category>
		<category><![CDATA[Behavioral Targeting]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[privacy]]></category>

		<guid isPermaLink="false">http://www.developerzen.com/?p=2238</guid>
		<description><![CDATA[The discussion over Google’s latest move into behavioral ad targeting is all over TechMeme. Basically what this means is that Google will start selling users (or more specifically, clusters of users, like football fans for example) in addition to words: Today we are launching “interest-based” advertising as a beta test on our partner sites and [...]]]></description>
			<content:encoded><![CDATA[<p><img style="display: inline; margin-left: 0px; margin-right: 0px" alt="" align="left" src="http://storage.developerzen.com/google.gif" /></p>
<p>The discussion over Google’s <a href="http://googleblog.blogspot.com/2009/03/making-ads-more-interesting.html">latest move into behavioral ad targeting</a> is all over <a href="http://www.techmeme.com/090311/p20#a090311p20">TechMeme</a>. Basically what this means is that Google will start <em>selling users (</em>or more specifically,<em> <a href="http://en.wikipedia.org/wiki/Cluster_analysis">clusters of users</a>, like football fans for example)</em> in addition to <em>words:</em></p>
<blockquote><p>Today we are launching “interest-based” advertising as a beta test on our partner sites and on YouTube. These ads will associate categories of interest – say sports, gardening, cars, pets – with your browser, based on the types of sites you visit and the pages you view. We may then use those interest categories to show you more relevant text and display ads. (&#8230;)      <br />So if you visit an online sports store, you may later be shown ads on other websites offering you a discount on running shoes during that store’s upcoming sale.</p>
</blockquote>
<p><a href="http://storage.developerzen.com//2009/03/googaddinterest.png"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="goog-add-interest" border="0" alt="goog-add-interest" src="http://storage.developerzen.com//2009/03/googaddinterest-thumb.png" width="384" height="251" /></a></p>
<p>Google&#8217; is not the first to embrace behavioral targeting as other companies (including Google’s own DoubleClick) were already offering advertisers these features, but it is certainly the biggest.    <br />Behavioral targeting on Google massive network of sites (just think of anyone who’s using Google Analytics, which is pretty much everyone) is certainly a game changing event to the online advertising industry.</p>
<p>The responses online (and ones I usually get talking to people about the topic as we’re doing stuff in this area at <a href="http://www.nuconomy.com">Nuconomy</a>) range from simple skepticism of behavioral targeting effectiveness (like Google’s own <a href="http://www.mattcutts.com/blog/a-quick-puzzle/">Matt Cutts</a>…) to Big Brother concerns.</p>
<p>To the latter group, concerned with privacy and worried about its actions online being tracked I have to say – NEWS FLASH! <strong>you don’t have privacy on the internet</strong>… everything you do is already being tracked, analyzed and can be linked back to you even if stored anonymously (<a href="http://www.roughtype.com/archives/2006/08/meet_thelma_arn.php">ever heard</a> <a href="http://www.techcrunch.com/2006/08/09/first-person-identified-from-aol-data-thelma-arnold/">of</a> <a href="http://www.nytimes.com/2006/08/09/technology/09aol.html?ex=1312776000">Thelma Arnold</a>?), the only question is what do <strong>you</strong> get out of it?</p>
<p>I hope that with behavioral targeted ads I will see less irrelevant ads offering me low mortgages and seduction courses and more ads geared towards tech gear, maybe even making online ads actually useful (can’t remember the last time I clicked an ad. with time I just learned to automatically ignore these ad banners…). But I think change is not going to hit just the advertising market…</p>
<p>Google’s move can (hopefully) marks the beginning of a <em><strong>personal internet</strong></em> era where sites will customize their entire layout and content based on the preferences, or habits of the browsing users.     <br />My favorite news site <strong>will know</strong> I care about tech and biz. and never read sports news and will modify its homepage layout based on these preferences, the recommendation widget on my blog will show post recommendation <strong>based on the viewers’</strong> recent browsing history rather than based on traffic, and so on…</p>
<p>Behavioral targeting opens the door on a conceptual change, not just in advertising…</p>
<p><strong>Related Resources:</strong></p>
<ul>
<li><a href="http://www.cloudave.com/link/the-borg-google-cookies-are-delicious-indeed">The Borg’s Cookies Are Delicious, Indeed – </a>Zoli discusses privacy concerns over at Cloud Avenue.</li>
<li><a href="http://blogoscoped.com/archive/2009-03-11-n53.html">Google AdSense Starts Behavioral Targeting</a>- Google Blogscoped doesn’t like behavioral targeting…</li>
<li><a href="http://googleblog.blogspot.com/2009/03/making-ads-more-interesting.html">Making ads more interesting</a>– Google’s announcement on their blog.</li>
<li><a href="http://googlesystem.blogspot.com/2009/03/behavioral-targeting-in-google-adsense.html">Behavioral Targeting in Google AdSense</a>&#160;</li>
</ul>
<p><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.developerzen.com/2009/02/04/no-hope-for-traditional-media-companies/" rel="bookmark" title="February 4, 2009">No Hope for Traditional Media Companies?</a></li>
<li><a href="http://www.developerzen.com/2008/11/14/microsoft-updates-its-windows-live-services/" rel="bookmark" title="November 14, 2008">Microsoft Updates Its Windows Live Services</a></li>
<li><a href="http://www.developerzen.com/2008/12/31/a-years-worth-of-popular-posts/" rel="bookmark" title="December 31, 2008">A Year&rsquo;s Worth of Popular Posts</a></li>
<li><a href="http://www.developerzen.com/2009/02/06/give-up-control-think-distributed-dld-2009-summary/" rel="bookmark" title="February 6, 2009">Give Up Control, Think Distributed &ndash; DLD 2009 Summary</a></li>
<li><a href="http://www.developerzen.com/2008/10/21/google-chrome-is-a-failure-surprised/" rel="bookmark" title="October 21, 2008">Google Chrome is a Failure&hellip; Surprised?</a></li>
</ul>
<p><!-- Similar Posts took 13.876 ms --></p>

<p><a href="http://feedads.g.doubleclick.net/~a/QD3Qx5Z57wnfMDYU3YenzQfTY0g/0/da"><img src="http://feedads.g.doubleclick.net/~a/QD3Qx5Z57wnfMDYU3YenzQfTY0g/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/QD3Qx5Z57wnfMDYU3YenzQfTY0g/1/da"><img src="http://feedads.g.doubleclick.net/~a/QD3Qx5Z57wnfMDYU3YenzQfTY0g/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EranKampf?a=q5iZlJKuW4E:LVRRJZvEsS4:XQ266DUsA9M"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=XQ266DUsA9M" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=q5iZlJKuW4E:LVRRJZvEsS4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=q5iZlJKuW4E:LVRRJZvEsS4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=q5iZlJKuW4E:LVRRJZvEsS4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=q5iZlJKuW4E:LVRRJZvEsS4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=q5iZlJKuW4E:LVRRJZvEsS4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=q5iZlJKuW4E:LVRRJZvEsS4:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=q5iZlJKuW4E:LVRRJZvEsS4:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=q5iZlJKuW4E:LVRRJZvEsS4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=q5iZlJKuW4E:LVRRJZvEsS4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=q5iZlJKuW4E:LVRRJZvEsS4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=q5iZlJKuW4E:LVRRJZvEsS4:i0o2LV1JfPc"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=i0o2LV1JfPc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=q5iZlJKuW4E:LVRRJZvEsS4:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EranKampf/~4/q5iZlJKuW4E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developerzen.com/2009/03/12/google%e2%80%99s-new-behavioral-ad-targeting-should-be-excellent-for-all/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.developerzen.com/2009/03/12/google%e2%80%99s-new-behavioral-ad-targeting-should-be-excellent-for-all/</feedburner:origLink></item>
		<item>
		<title>Playing with the Windows 7 Fish</title>
		<link>http://feedproxy.google.com/~r/EranKampf/~3/9d0CbBnLf28/</link>
		<comments>http://www.developerzen.com/2009/02/07/playing-with-the-windows-7-fish/#comments</comments>
		<pubDate>Sat, 07 Feb 2009 18:24:00 +0000</pubDate>
		<dc:creator>Eran Kampf</dc:creator>
				<category><![CDATA[Humor]]></category>
		<category><![CDATA[Software Industry]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[Betta Fish]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[MSFT]]></category>
		<category><![CDATA[Windows 7]]></category>

		<guid isPermaLink="false">http://www.developerzen.com/2009/02/07/playing-with-the-windows-7-fish/</guid>
		<description><![CDATA[I just finished installing Windows 7 Beta on my home machine to find a fish swimming on my desktop: But not just any fish, its a Siamese fighting fish, also knows a “betta fish” (or just “betta”). A subtle Microsoft joke? Hope it does a better job selectively breeding this one (and get rid of [...]]]></description>
			<content:encoded><![CDATA[<p>I just finished installing Windows 7 Beta on my home machine to find a fish swimming on my desktop:</p>
<p><a href="http://storage.developerzen.com//2009/02/windows7bettafish1.jpg"><img style="border-right-width: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto" title="Windows 7 Beta Default Desktop" border="0" alt="Windows 7 Beta Default Desktop" src="http://storage.developerzen.com//2009/02/windows7bettafish1-thumb.jpg" width="644" height="404" /></a></p>
<p>But not just any fish, its a <a href="http://en.wikipedia.org/wiki/Siamese_fighting_fish">Siamese fighting fish</a>, also knows a “betta fish” (or just “betta”).     <br />A subtle Microsoft joke? Hope it does a better job selectively breeding this one (and get rid of some mutations… err… SKUs) …</p>
<p><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.developerzen.com/2009/01/05/is-windows-live-still-alive/" rel="bookmark" title="January 5, 2009">Is Windows Live Still Alive?</a></li>
<li><a href="http://www.developerzen.com/2008/10/30/office-web-applications/" rel="bookmark" title="October 30, 2008">Office Web Applications</a></li>
<li><a href="http://www.developerzen.com/2008/11/14/microsoft-updates-its-windows-live-services/" rel="bookmark" title="November 14, 2008">Microsoft Updates Its Windows Live Services</a></li>
<li><a href="http://www.developerzen.com/2008/10/21/google-chrome-is-a-failure-surprised/" rel="bookmark" title="October 21, 2008">Google Chrome is a Failure&hellip; Surprised?</a></li>
<li><a href="http://www.developerzen.com/2009/04/05/microsoft-can-clone-twitter/" rel="bookmark" title="April 5, 2009">Microsoft Can Clone Twitter?!</a></li>
</ul>
<p><!-- Similar Posts took 9.491 ms --></p>

<p><a href="http://feedads.g.doubleclick.net/~a/RF6_h2m7GF9eFBzNTA73nGHJP_M/0/da"><img src="http://feedads.g.doubleclick.net/~a/RF6_h2m7GF9eFBzNTA73nGHJP_M/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/RF6_h2m7GF9eFBzNTA73nGHJP_M/1/da"><img src="http://feedads.g.doubleclick.net/~a/RF6_h2m7GF9eFBzNTA73nGHJP_M/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EranKampf?a=9d0CbBnLf28:UEW89GfeSKM:XQ266DUsA9M"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=XQ266DUsA9M" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=9d0CbBnLf28:UEW89GfeSKM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=9d0CbBnLf28:UEW89GfeSKM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=9d0CbBnLf28:UEW89GfeSKM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=9d0CbBnLf28:UEW89GfeSKM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=9d0CbBnLf28:UEW89GfeSKM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=9d0CbBnLf28:UEW89GfeSKM:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=9d0CbBnLf28:UEW89GfeSKM:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=9d0CbBnLf28:UEW89GfeSKM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=9d0CbBnLf28:UEW89GfeSKM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=9d0CbBnLf28:UEW89GfeSKM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=9d0CbBnLf28:UEW89GfeSKM:i0o2LV1JfPc"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=i0o2LV1JfPc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=9d0CbBnLf28:UEW89GfeSKM:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EranKampf/~4/9d0CbBnLf28" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developerzen.com/2009/02/07/playing-with-the-windows-7-fish/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.developerzen.com/2009/02/07/playing-with-the-windows-7-fish/</feedburner:origLink></item>
		<item>
		<title>Give Up Control, Think Distributed – DLD 2009 Summary</title>
		<link>http://feedproxy.google.com/~r/EranKampf/~3/IVwyaHQ9nZI/</link>
		<comments>http://www.developerzen.com/2009/02/06/give-up-control-think-distributed-dld-2009-summary/#comments</comments>
		<pubDate>Fri, 06 Feb 2009 11:19:00 +0000</pubDate>
		<dc:creator>Eran Kampf</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Software Business]]></category>
		<category><![CDATA[DLD]]></category>
		<category><![CDATA[DLD09]]></category>

		<guid isPermaLink="false">http://www.developerzen.com/?p=2209</guid>
		<description><![CDATA[I&#160; was very fortunate to get invited to the 2009 DLD Conference as a participant (Thanks to Yossi Vardi!). This was my first time at DLD and I can definitely say it has been the most amazing conference I have been to so far. As defined by Steffi Czerny &#34;DLD is interdisciplinary, creating interfaces and [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://storage.developerzen.com//2009/01/dld09-new-realities.jpg"><img style="border-right-width: 0px; margin: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="DLD09_New_Realities" border="0" alt="DLD09_New_Realities" align="right" src="http://storage.developerzen.com//2009/01/dld09-new-realities-thumb.jpg" width="260" height="160" /></a>I&#160; was very fortunate to get invited to the <a href="http://www.dld-conference.com/">2009 DLD Conference</a> as a participant (Thanks to <a href="http://www.dld-conference.com/2008/05/joseph_yossi_vardi.php">Yossi Vardi</a>!). This was my first time at DLD and I can definitely say it has been the most amazing conference I have been to so far.</p>
<p>As defined by <a href="http://www.dld-conference.com/2008/05/stephanie-czerny-2.php">Steffi Czerny</a> <em>&quot;DLD is interdisciplinary, creating interfaces and connecting people from the most different worlds.&quot;</em> the conference’s <em>“New Realities”</em> theme encourages participants to discuss and formulates perspectives on markets following an eventful year, setting the agenda for 2009.</p>
<p>Or as <em>Yossi Vardi</em> defines it:</p>
<blockquote><p>I told people that of my generation no one will understand instant messaging. And I was told my generation was already dead. But our generation has experiences the new generation does not have: real handshakes and real warmth of the hand. This still has to&#160; move into social networks. And this is what we provide here: This old style feeling.      <br />…       <br />We invite you for 4 things:</p>
<ul>
<li>to get food for thought </li>
<li>to make new friends </li>
<li>to play </li>
<li>to laugh </li>
</ul>
</blockquote>
<h3>Think Distributed</h3>
<p>So what is the new reality we’re living in? the repeating theme in most panels I’ve been to was the same:    <br />We’re going through a fundamental change from centralized control (over content, decision making, …) to a <strong>distributed structure</strong>.</p>
<p>This change becomes very clear when you go over the following panels (and most other panels too):</p>
<ul>
<li><a href="http://video.dld-conference.com/watch/USUcypb">100 Million Uniques</a> </li>
<li><a href="http://video.dld-conference.com/watch/aj4OXAW">New Media Models</a> </li>
<li><a href="http://video.dld-conference.com/watch/pLtsDAl">On Leadership</a> </li>
<li><a href="http://video.dld-conference.com/watch/aj4OXjC">Cloud Computing</a> </li>
</ul>
<p>All these panels talk about a new reality where, in order to survive, you have to give up on centralized control and go distributed.    <br />On the <em>100 Million Uniques</em> and <em>New Media Models</em> we hear about new distributed media networks that distribute information rather than creating and controlling it. On <em>cloud computing</em> we learn about technologies allowing companies to lose control over infrastructure for increased agility and lower costs, and on <em>On Leadership</em> we have the story of Best Buy that transformed its culture from “communicating <em>at</em> employees” to empowering their employees using social media tools.</p>
<h4>Distributed Media</h4>
<p><a href="http://storage.developerzen.com//2009/01/dld09newmediamodelspanel1.jpg"><img style="border-right-width: 0px; margin: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="DLD09-NewMediaModelsPanel" border="0" alt="DLD09-NewMediaModelsPanel" align="right" src="http://storage.developerzen.com//2009/01/dld09newmediamodelspanel-thumb1.jpg" width="260" height="173" /></a>On <em>New Media Models</em> we’ve heard from Jeff Jarvis who says that the future of media distributed – aggregating content from a lot of independent sources rather than controlling the creation of content in-house.     <br />On his latest book, “What Would Google Do?” (which I got signed at the event. Thanks Jeff! <img src='http://www.developerzen.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> )&#160; discusses the importance of building a platform for content, handing over control to users to build and distribute content, making your distributed network larger.</p>
<p>Traditional media companies think centralized. They create and control content and then spend a fortune on advertising in order to try and attract us, the consumers, to their content. This worked pretty well for big online media companies, like Yahoo for example, so far.    <br />However, consumer today are relying more and more on social, self organization tools, to collect, sort, filter and rate content. Tools like Digg, Twitter, delicious and Facebook replace the functions that content portals used to provide.</p>
<p>In this new reality media companies need to stop thinking of themselves as an end – a closed content site (or portal) users come to in order to find content – and start distributing themselves.    <br />Google distributes itself. It has its widgets, ads, maps and videos embedded in millions of web pages that it doesn’t own and it is making its profit of this vast distribution network.     <br />Another example for distributed content is Glam. On <em>100 Million Uniques</em>, <em>Samir Arora</em>, CEO of Glam described his company the following way:</p>
<blockquote><p>“Glam is a distributed network that recognizes the fact that people go to many sites as opposed to a few, and that is the fundamental change that is happening today. So instead of bringing people to one place, we find out where people go and are there.”</p>
<p>“with every day that was passing, fueled by Google, its easier to find more sites, as opposed to one portal.</p>
</blockquote>
<p>Instead of producing women targeted content and competing with all the other women content producers out there, Glam finds the best women content producers out there (some are lone bloggers and other can be bigger media companies) and invites them to join its network. It then sells ads on those sites and shares it revenue with them. It also aggregates the best content of its network to Glam.com, where it sells ads at a higher rate and shares its revenues too.    <br />Glam helps sites on its network by sharing technology and content, and delivering traffic (and advertisers) to its member sites.</p>
<h4>Distributed Leadership</h4>
<p><a href="http://storage.developerzen.com//2009/01/dld09onleadership.jpg"><img style="border-right-width: 0px; margin: 0px 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="DLD09-OnLeadership" border="0" alt="DLD09-OnLeadership" align="right" src="http://storage.developerzen.com//2009/01/dld09onleadership-thumb.jpg" width="260" height="173" /></a> Changing from centralized control to a distributed structure is not limited to the media and advertising world.     <br />On the <em>On Leadership</em> panel we see how Best Buy<strong> </strong>made a strategic decision to distributing control to its employees allowing them to self organize and interact using social Web 2.0 tools.     <br />By changing the company culture&#160; “Less control from the top, more taking responsibility” the role of the CEO changes from&#160; to defining a common goal, not way to get there, and relying the companies human capital to do what it takes to get there.     <br />So some control over what’s going on is lost, but according to Best Buy CEO Brad Anderson, <em>“this stuff builds energy. if people have self accountability and can do something that they helped created and love they got more energy. what a customer would get when he gets into that store is that he could tell whether that store has got energy and engaged employees serving him or not”.</em></p>
<p>So if there’s one thing I have to take from my&#160; time at DLD 2009 its this:<strong> <em>give up control, think distributed</em></strong>.</p>
<p><strong>More on DLD:</strong></p>
<ul>
<li><a href="http://www.developerzen.com/2009/02/04/no-hope-for-traditional-media-companies/">No Hope for Traditional Media Companies?</a> </li>
<li><a href="http://www.developerzen.com/2009/02/02/creating-an-attractive-internet-company-its-all-about-emotions/">Creating an Attractive Internet Company &#8211; It&#8217;s All About Emotions</a> </li>
</ul>
<p><strong>Recommended session videos:</strong></p>
<ul>
<li><a href="http://video.dld-conference.com/watch/USUcypb">100 Million Uniques</a> </li>
<li><a href="http://www.dld-conference.com/2009/01/reflections-on-a-crisis.php">Reflections on a Crisis</a> </li>
<li><a href="http://www.dld-conference.com/2009/01/predictably-irrational.php">Predictably Irrational</a> </li>
<li><a href="http://video.dld-conference.com/watch/pLtsDAl">On Leadership</a> </li>
<li><a href="http://video.dld-conference.com/watch/aj4OXAW">New Media Models</a> </li>
<li><a href="http://video.dld-conference.com/watch/Q1G0GQR">Software</a> </li>
</ul>
<p><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.developerzen.com/2009/02/04/no-hope-for-traditional-media-companies/" rel="bookmark" title="February 4, 2009">No Hope for Traditional Media Companies?</a></li>
<li><a href="http://www.developerzen.com/2009/09/29/what-would-twitter-do-with-100-million/" rel="bookmark" title="September 29, 2009">What would Twitter do with $100 million?</a></li>
<li><a href="http://www.developerzen.com/2009/02/02/creating-an-attractive-internet-company-its-all-about-emotions/" rel="bookmark" title="February 2, 2009">Creating an Attractive Internet Company &ndash; It&rsquo;s All About Emotions</a></li>
<li><a href="http://www.developerzen.com/2009/01/05/is-windows-live-still-alive/" rel="bookmark" title="January 5, 2009">Is Windows Live Still Alive?</a></li>
<li><a href="http://www.developerzen.com/2010/09/02/what-the-new-apple-tv-is-really-missing/" rel="bookmark" title="September 2, 2010">What the new Apple TV is really missing&hellip;</a></li>
</ul>
<p><!-- Similar Posts took 10.153 ms --></p>

<p><a href="http://feedads.g.doubleclick.net/~a/qmJjZcefVT6dPSssjd8zRdr2Kws/0/da"><img src="http://feedads.g.doubleclick.net/~a/qmJjZcefVT6dPSssjd8zRdr2Kws/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/qmJjZcefVT6dPSssjd8zRdr2Kws/1/da"><img src="http://feedads.g.doubleclick.net/~a/qmJjZcefVT6dPSssjd8zRdr2Kws/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EranKampf?a=IVwyaHQ9nZI:IlPpNRdVN6w:XQ266DUsA9M"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=XQ266DUsA9M" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=IVwyaHQ9nZI:IlPpNRdVN6w:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=IVwyaHQ9nZI:IlPpNRdVN6w:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=IVwyaHQ9nZI:IlPpNRdVN6w:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=IVwyaHQ9nZI:IlPpNRdVN6w:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=IVwyaHQ9nZI:IlPpNRdVN6w:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=IVwyaHQ9nZI:IlPpNRdVN6w:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=IVwyaHQ9nZI:IlPpNRdVN6w:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=IVwyaHQ9nZI:IlPpNRdVN6w:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=IVwyaHQ9nZI:IlPpNRdVN6w:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=IVwyaHQ9nZI:IlPpNRdVN6w:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=IVwyaHQ9nZI:IlPpNRdVN6w:i0o2LV1JfPc"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=i0o2LV1JfPc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=IVwyaHQ9nZI:IlPpNRdVN6w:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EranKampf/~4/IVwyaHQ9nZI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developerzen.com/2009/02/06/give-up-control-think-distributed-dld-2009-summary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.developerzen.com/2009/02/06/give-up-control-think-distributed-dld-2009-summary/</feedburner:origLink></item>
		<item>
		<title>No Hope for Traditional Media Companies?</title>
		<link>http://feedproxy.google.com/~r/EranKampf/~3/AeKrV1U-4hc/</link>
		<comments>http://www.developerzen.com/2009/02/04/no-hope-for-traditional-media-companies/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 16:01:00 +0000</pubDate>
		<dc:creator>Eran Kampf</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Software Business]]></category>
		<category><![CDATA[Carolyn McCall]]></category>
		<category><![CDATA[DLD]]></category>
		<category><![CDATA[DLD09]]></category>
		<category><![CDATA[Glam]]></category>
		<category><![CDATA[Guardian Media Group]]></category>
		<category><![CDATA[Jeff Jarvis]]></category>
		<category><![CDATA[Michael Arrington]]></category>
		<category><![CDATA[TechCrunch]]></category>

		<guid isPermaLink="false">http://www.developerzen.com/?p=2198</guid>
		<description><![CDATA[The Internet is a media platform based on content from traditional media companies (Times Magazine, etc.) as well as content produced by its users – blogs, forums and other social communication platforms. This vast new world of content is taking the lead from traditional media. Newspapers, Magazines and TV Channels are all loosing their audience [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://storage.developerzen.com//2009/01/dld09newmediamodelspanel.jpg"><img style="border-right-width: 0px; margin: 0px 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="DLD09-NewMediaModelsPanel" border="0" alt="DLD09-NewMediaModelsPanel" align="right" src="http://storage.developerzen.com//2009/01/dld09newmediamodelspanel-thumb.jpg" width="336" height="224" /></a> The Internet is a media platform based on content from traditional media companies (Times Magazine, etc.) as well as content produced by its users – blogs, forums and other social communication platforms.</p>
<p>This vast new world of content is taking the lead from traditional media. Newspapers, Magazines and TV Channels are all loosing their audience in favor of the internet. Those traditional media companies who do develop strong internet presence are still having troubles as income from online advertising does not cover the decrease in income from traditional advertising and subscription fees.</p>
<p>The <em>New Media Models (</em><a href="http://video.dld-conference.com/watch/aj4OXAW"><em>video</em></a><em>)</em> panel, on last week’s <a href="http://www.dld-conference.com/">DLD conference</a>, tries to deal with the question of business models that media companies can use to profit on the web.</p>
<p>When asked about what kind of new media outlet they’d start today, non of the panel’s participants would start a print newspaper or a magazine.</p>
<p><em>“I wouldn’t start a newspaper. There might be a place for a magazine to sit on my coffee table, but not for a NewsWeek or a BusinessWeek or a daily newspaper I think its absurd… I understand why the do it, revenues on print are so great vs. online but it has to go way”</em> said <em>Michael Arrington</em>. According to <em>Arrington </em>we’re going to be consuming our news and other content online or on digital devices and once a certain threshold is reached it’ll no longer be profitable to print. <em>“It doesn&#8217;t make any sense for news to be on paper because of its just the cost structure”</em> he summarizes.</p>
<p><em>Jeff Jarvis</em> said he would start a distributed content network, like Glam. According to Jeff not owning and controlling the data is what allowed Glam to literally explode to more than 110 Million unique users in 3 years. While content owners have to spend a fortune advertising to bring people in, distributed networks just go to where the people are. People today reach content via rating sites like DIGG or Twitter messages and no longer require central content portals to collect, sort, filter and rate content them. <em>Jeff</em> says that media companies need to start asking “How can we build platforms on which others succeed?”, they have to become platforms for content distributed around the web (like YouTube for example) rather than producing and controlling their own content.</p>
<p>On that same note, <em>Arrington</em> added that traditional media sites, who’s cost structure includes all kinds of expenses that do not produce content – like programmers, office space – can’t compete with an army of bloggers who blog from their home using their laptop and free software.</p>
<p><em>Carolyn McCall</em>, who is the CEO of Guardian Media Group (representing the “traditional” media companies) confirmed the fact that income from the printing business is going down while internet income, even for a huge company like the Guardian Group, do not compensate for these losses. However, she also mentions that 25 million users use the Guardian&#8217;s web and that its income is 300 million dollars a year and that both numbers continue growing.</p>
<p>The panelist could not explain why advertising budget that are taken from the print versions of the media do not move in their entirety to the online advertising world, and they could also not find a definite business model to run media company online (even Jeff’s example for a distributed network – Glam – is still not profitable and taking VC money) but they all agree that print is phasing out and that there’s a need for a new model for online media and journalism.</p>
<p><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.developerzen.com/2009/02/06/give-up-control-think-distributed-dld-2009-summary/" rel="bookmark" title="February 6, 2009">Give Up Control, Think Distributed &ndash; DLD 2009 Summary</a></li>
<li><a href="http://www.developerzen.com/2009/02/02/creating-an-attractive-internet-company-its-all-about-emotions/" rel="bookmark" title="February 2, 2009">Creating an Attractive Internet Company &ndash; It&rsquo;s All About Emotions</a></li>
<li><a href="http://www.developerzen.com/2009/03/12/google%e2%80%99s-new-behavioral-ad-targeting-should-be-excellent-for-all/" rel="bookmark" title="March 12, 2009">Google&rsquo;s New Behavioral Ad Targeting Should be Excellent for All</a></li>
<li><a href="http://www.developerzen.com/2010/01/28/3-takeaways-from-the-apple-ipad-launch/" rel="bookmark" title="January 28, 2010">3 Takeaways from the Apple iPad Launch</a></li>
<li><a href="http://www.developerzen.com/2009/09/29/what-would-twitter-do-with-100-million/" rel="bookmark" title="September 29, 2009">What would Twitter do with $100 million?</a></li>
</ul>
<p><!-- Similar Posts took 13.205 ms --></p>

<p><a href="http://feedads.g.doubleclick.net/~a/-d79O7n8VwsL9CTUvsvzX1qJLXw/0/da"><img src="http://feedads.g.doubleclick.net/~a/-d79O7n8VwsL9CTUvsvzX1qJLXw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/-d79O7n8VwsL9CTUvsvzX1qJLXw/1/da"><img src="http://feedads.g.doubleclick.net/~a/-d79O7n8VwsL9CTUvsvzX1qJLXw/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EranKampf?a=AeKrV1U-4hc:IaltEd5cjfM:XQ266DUsA9M"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=XQ266DUsA9M" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=AeKrV1U-4hc:IaltEd5cjfM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=AeKrV1U-4hc:IaltEd5cjfM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=AeKrV1U-4hc:IaltEd5cjfM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=AeKrV1U-4hc:IaltEd5cjfM:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=AeKrV1U-4hc:IaltEd5cjfM:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=AeKrV1U-4hc:IaltEd5cjfM:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=AeKrV1U-4hc:IaltEd5cjfM:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=AeKrV1U-4hc:IaltEd5cjfM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=AeKrV1U-4hc:IaltEd5cjfM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=AeKrV1U-4hc:IaltEd5cjfM:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=AeKrV1U-4hc:IaltEd5cjfM:i0o2LV1JfPc"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=i0o2LV1JfPc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=AeKrV1U-4hc:IaltEd5cjfM:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EranKampf/~4/AeKrV1U-4hc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developerzen.com/2009/02/04/no-hope-for-traditional-media-companies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.developerzen.com/2009/02/04/no-hope-for-traditional-media-companies/</feedburner:origLink></item>
		<item>
		<title>Creating an Attractive Internet Company – It’s All About Emotions</title>
		<link>http://feedproxy.google.com/~r/EranKampf/~3/bIqZGa5YHEY/</link>
		<comments>http://www.developerzen.com/2009/02/02/creating-an-attractive-internet-company-its-all-about-emotions/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 13:33:00 +0000</pubDate>
		<dc:creator>Eran Kampf</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Software Business]]></category>
		<category><![CDATA[Chad Hurely]]></category>
		<category><![CDATA[DLD]]></category>
		<category><![CDATA[DLD09]]></category>
		<category><![CDATA[Glam]]></category>
		<category><![CDATA[Mitchel Baker]]></category>
		<category><![CDATA[Mozilla Foundation]]></category>
		<category><![CDATA[Samir Arora]]></category>
		<category><![CDATA[Toby Coppel]]></category>
		<category><![CDATA[Yahoo]]></category>
		<category><![CDATA[Yossi Vardi]]></category>
		<category><![CDATA[YouTube]]></category>

		<guid isPermaLink="false">http://www.developerzen.com/?p=2195</guid>
		<description><![CDATA[How do you create an internet company\product that can get the attention of more than 100 million unique viewers a month? That’s the tough question that Yossi Vardi’s was trying to find an answer to on his panel at this year&#8217;s DLD conference &#8211; 100,000 Million Uniques (video) – together with Glam’s co-founder Samir Arora, [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-right-width: 0px; margin: 0px 0px 0px 5px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="DLD09_New_Realities" border="0" alt="DLD09_New_Realities" align="right" src="http://storage.developerzen.com//2009/02/dld09-new-realities-thumb.jpg" width="260" height="160" /> How do you create an internet company\product that can get the attention of more than 100 million unique viewers a month?</p>
<p>That’s the tough question that <span style="font-style: italic">Yossi Vardi’s </span>was trying to find an answer to on his panel at this year&#8217;s <span><a title="http://www.dld-conference.com/" href="http://www.dld-conference.com/" rel="" target="">DLD conference</a></span> &#8211; <strong><em>100,000 Million Uniques (</em></strong><a href="http://video.dld-conference.com/watch/USUcypb"><strong><em>video</em></strong></a><strong><em>) – </em></strong>together with Glam’s co-founder <em>Samir Arora,</em> YouTube’s co-founder and CEO <em>Chad Hurley</em>, CEO of the Mozilla Foundation <em>Mitchell Baker </em>and <em>Toby Coppel<strong> </strong></em>who is a VP at Yahoo!.</p>
<p>The answer, according to <span style="font-style: italic">Yossi</span> and the panel speakers, who all run companies with over 100 million users, is that having a good product is not enough; there has to be an emotional connection between the product and its users.</p>
<p>After discussing the process of starting, marketing and improving their products the panel’s conclusion was that users engagement is the result of an emotional involvement between the users and the product and others users and a feeling of participating in creation of something new.</p>
<p>A good example for that is Yahoo’s Q&amp;A service that, according to <em>Coppel,</em> has more than 140 million users a month. Although most users are passive and only read the questions and answers, 5%-7% of the users write answers, and they do so without getting paid – they share their knowledge with the world.     <br />According to <em>Coppel</em>, the emotional connection to a product is achieved by providing a <strong>platform to self organize</strong> allowing people to create and share knowledge and experiences and find other like minded people.</p>
<p>Baker explained that Firefox&#8217;s success is based on the sense of mission – to build a piece of the internet that is a public assert – which turns out to be an emotional goal for a lot of people.</p>
<p>And what about YouTube? <em>Chad Hurley</em> explains its success on the focus on creating a simple-as-possible user experience and allowing people to <strong>distribute content</strong> by embedding videos&#160; &#8211; <em>“We try to associate our easy to use service with our brand – YouTube – and to allow people to take that experience, take that video code to embed and place on their own websites and blogs so that people can experience it there as well and drive traffic back to our service. Beyond creating a service that adds value people need to connect emotionally to the brand that you’re creating”</em>.</p>
<p>To demonstrate the importance of emotion, Yossi Vardi showed two YouTube videos of the aria <em>Nessum Dorma</em>. The <a href="http://il.youtube.com/watch?v=VATmgtmR5o4">first video</a>, sang by Pavarotti only received about 9 million views while the <a href="http://il.youtube.com/watch?v=1k08yxu57NA">second video</a>, sang by Paul Potts, a hobbyist opera singer, received well over 40 million views.</p>
<p><em>Vardi</em> later asked <em>Hurley</em> why the second video was so popular. “Well he’s good” was <span style="font-style: italic">Hurley’s</span> answer.</p>
<p align="center"><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/1k08yxu57NA&amp;hl=en&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/1k08yxu57NA&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
<p><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.developerzen.com/2009/02/06/give-up-control-think-distributed-dld-2009-summary/" rel="bookmark" title="February 6, 2009">Give Up Control, Think Distributed &ndash; DLD 2009 Summary</a></li>
<li><a href="http://www.developerzen.com/2008/11/14/microsoft-updates-its-windows-live-services/" rel="bookmark" title="November 14, 2008">Microsoft Updates Its Windows Live Services</a></li>
<li><a href="http://www.developerzen.com/2009/02/04/no-hope-for-traditional-media-companies/" rel="bookmark" title="February 4, 2009">No Hope for Traditional Media Companies?</a></li>
<li><a href="http://www.developerzen.com/2009/09/29/what-would-twitter-do-with-100-million/" rel="bookmark" title="September 29, 2009">What would Twitter do with $100 million?</a></li>
<li><a href="http://www.developerzen.com/2009/04/30/a-visit-to-maraboo-restaurants-as-tribes-in-the-digital-age/" rel="bookmark" title="April 30, 2009">A Visit to Maraboo, Restaurants as Tribes in the Digital Age</a></li>
</ul>
<p><!-- Similar Posts took 13.850 ms --></p>

<p><a href="http://feedads.g.doubleclick.net/~a/GDqpgyS78BUReIOVLre5Smn7ZeM/0/da"><img src="http://feedads.g.doubleclick.net/~a/GDqpgyS78BUReIOVLre5Smn7ZeM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/GDqpgyS78BUReIOVLre5Smn7ZeM/1/da"><img src="http://feedads.g.doubleclick.net/~a/GDqpgyS78BUReIOVLre5Smn7ZeM/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EranKampf?a=bIqZGa5YHEY:2BHES6E_MLI:XQ266DUsA9M"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=XQ266DUsA9M" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=bIqZGa5YHEY:2BHES6E_MLI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=bIqZGa5YHEY:2BHES6E_MLI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=bIqZGa5YHEY:2BHES6E_MLI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=bIqZGa5YHEY:2BHES6E_MLI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=bIqZGa5YHEY:2BHES6E_MLI:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=bIqZGa5YHEY:2BHES6E_MLI:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=bIqZGa5YHEY:2BHES6E_MLI:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=bIqZGa5YHEY:2BHES6E_MLI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=bIqZGa5YHEY:2BHES6E_MLI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=bIqZGa5YHEY:2BHES6E_MLI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=bIqZGa5YHEY:2BHES6E_MLI:i0o2LV1JfPc"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=i0o2LV1JfPc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=bIqZGa5YHEY:2BHES6E_MLI:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EranKampf/~4/bIqZGa5YHEY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developerzen.com/2009/02/02/creating-an-attractive-internet-company-its-all-about-emotions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.developerzen.com/2009/02/02/creating-an-attractive-internet-company-its-all-about-emotions/</feedburner:origLink></item>
		<item>
		<title>ASP.NET MVC RSS Feed Action Result</title>
		<link>http://feedproxy.google.com/~r/EranKampf/~3/Z942OQ9RV28/</link>
		<comments>http://www.developerzen.com/2009/01/11/aspnet-mvc-rss-feed-action-result/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 15:41:25 +0000</pubDate>
		<dc:creator>Eran Kampf</dc:creator>
				<category><![CDATA[Software Development]]></category>
		<category><![CDATA[ActionResult]]></category>
		<category><![CDATA[aspnetmvc]]></category>
		<category><![CDATA[RssActionResult]]></category>

		<guid isPermaLink="false">http://www.developerzen.com/?p=2187</guid>
		<description><![CDATA[Guy wrote a post about rendering an RSS feed on ASP.NET MVC using custom feed model classes and a view that renders the feed XML. There’s a better (shorter) way for achieving the same result while leveraging on the Syndication mechanism built into .NET’s WCF. WCF exposes the SyndicationFeed, SyndicationItem, SyndicationPerson classes which represent our [...]]]></description>
			<content:encoded><![CDATA[<p><img style="display: inline; margin-left: 0px; margin-right: 0px" src="http://storage.developerzen.com/aspnetlogo.jpg" alt="" align="right" /> Guy <a href="http://blogs.microsoft.co.il/blogs/bursteg/archive/2009/01/11/asp-net-mvc-rss-feed-action-result.aspx">wrote</a> a post about rendering an RSS feed on ASP.NET MVC using custom feed model classes and a view that renders the feed XML.</p>
<p>There’s a better (shorter) way for achieving the same result while leveraging on the <a href="http://msdn.microsoft.com/en-us/library/bb412195.aspx">Syndication mechanism built into .NET’s WCF</a>.<br />
WCF exposes the <a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.syndication.syndicationfeed.aspx">SyndicationFeed</a>, <a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.syndication.syndicationitem.aspx">SyndicationItem</a>, <a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.syndication.syndicationperson.aspx">SyndicationPerson</a> classes which represent our data model.<br />
In order to render this model WCF also exposes the <a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.syndication.atom10feedformatter.aspx">Atom10FeedFormatter</a>, and <a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.syndication.rss20feedformatter.aspx">RSS20FeedFormatter</a> classes that can render the feed to a stream, so all we need to do is integrate that into the ASP.NET MVC pipeline.</p>
<p>The <strong>ASP.NET MVC</strong> framework introduces a concept of returning an <strong>ActionResult</strong> instance as the result of Controller Actions.<br />
This <strong>ActionResult</strong> object indicates the result from an action (a view to render, a URL to redirect to, another action/route to execute, etc).</p>
<p>ASP.NET MVC ships with several Action Results:</p>
<ul>
<li><strong>ContentResult</strong> – Simply writes the returned data to the response.</li>
<li><strong>EmptyResult</strong> – Returns an empty response.</li>
<li><strong>HttpUnauthorizedResult</strong> – Returns Http 401 code for non authorized access.</li>
<li><strong>JsonResult</strong> – Serializes the response to Json.</li>
<li><strong>RedirectResult</strong> – Redirects to another Url.</li>
<li><strong>RedirectToRouteResult</strong> – Redirects to another controller action.</li>
<li><strong>ViewResultBase</strong> (abstract) – Renders an HTML content as a result.
<ul>
<li><strong>PartialViewResult</strong> (inherits from <strong>ViewResultBase</strong>) – Renders a partial HTML response.</li>
</ul>
</li>
<li><strong>BinaryResult</strong> (abstract) – Returns a binary response.
<ul>
<li><strong>BinaryStreamResult</strong> (inherits from BinaryResult) – Writes a binary stream as a result.</li>
</ul>
</li>
</ul>
<p>So basically, to return a feed result all we need to do is define our own ActionResult implementation by deriving from ActionResult:</p>
<pre class="code"><span style="color: blue">public abstract class </span><span style="color: #2b91af">ActionResult
</span>{
    <span style="color: blue">protected </span>ActionResult();

    <span style="color: blue">public abstract void </span>ExecuteResult(<span style="color: #2b91af">ControllerContext </span>context);
}</pre>
<p>All we need to do is override the <strong>ExecuteResult</strong> method and write our data model to the output http stream using <a href="http://msdn.microsoft.com/en-us/library/system.servicemodel.syndication.rss20feedformatter.aspx">RSS20FeedFormatter</a>:</p>
<pre class="code"><span style="color: blue">public class </span><span style="color: #2b91af">RssActionResult </span>: <span style="color: #2b91af">ActionResult
</span>{
    <span style="color: blue">public </span><span style="color: #2b91af">SyndicationFeed </span>Feed { <span style="color: blue">get</span>; <span style="color: blue">set</span>; }

    <span style="color: blue">public override void </span>ExecuteResult(<span style="color: #2b91af">ControllerContext </span>context)
    {
        context.HttpContext.Response.ContentType = <span style="color: #a31515">"application/rss+xml"</span>;

        <span style="color: #2b91af">Rss20FeedFormatter </span>rssFormatter = <span style="color: blue">new </span><span style="color: #2b91af">Rss20FeedFormatter</span>(Feed);
        <span style="color: blue">using </span>(<span style="color: #2b91af">XmlWriter </span>writer = <span style="color: #2b91af">XmlWriter</span>.Create(context.HttpContext.Response.Output))
        {
            rssFormatter.WriteTo(writer);
        }
    }
}</pre>
<p>Now we can simply return <strong>RssActionResult</strong> as a result of our controller’s action.</p>
<p>Here’s a simple example:</p>
<pre class="code"><span style="color: blue">public </span><span style="color: #2b91af">ActionResult </span>Feed()
{
    <span style="color: #2b91af">SyndicationFeed </span>feed =
        <span style="color: blue">new </span><span style="color: #2b91af">SyndicationFeed</span>(<span style="color: #a31515">"Test Feed"</span>,
                            <span style="color: #a31515">"This is a test feed"</span>,
                            <span style="color: blue">new </span><span style="color: #2b91af">Uri</span>(<span style="color: #a31515">"http://Contoso/testfeed"</span>),
                            <span style="color: #a31515">"TestFeedID"</span>,
                            <span style="color: #2b91af">DateTime</span>.Now);

    <span style="color: #2b91af">SyndicationItem </span>item =
        <span style="color: blue">new </span><span style="color: #2b91af">SyndicationItem</span>(<span style="color: #a31515">"Test Item"</span>,
                            <span style="color: #a31515">"This is the content for Test Item"</span>,
                            <span style="color: blue">new </span><span style="color: #2b91af">Uri</span>(<span style="color: #a31515">"http://Contoso/ItemOne"</span>),
                            <span style="color: #a31515">"TestItemID"</span>,
                            <span style="color: #2b91af">DateTime</span>.Now);

    <span style="color: #2b91af">List</span>&lt;<span style="color: #2b91af">SyndicationItem</span>&gt; items = <span style="color: blue">new </span><span style="color: #2b91af">List</span>&lt;<span style="color: #2b91af">SyndicationItem</span>&gt;();
    items.Add(item);
    feed.Items = items;

    <span style="color: blue">return new </span><span style="color: #2b91af">RssActionResult</span>() { Feed = feed };
}</pre>
<p><a href="http://11011.net/software/vspaste"></a>… and that’s it!</p>
<p>A more elegant solution that leverages existing framework capabilities.</p>
<h3>Related Posts</h3>
<ul>
<li><a href="http://blogs.msdn.com/brada/archive/2007/11/14/rss-feed-with-the-new-asp-net-mvc-framework.aspx">RSS Feed with the new ASP.NET MVC Framework</a> (Brad Abrams)</li>
<li><a href="http://blogs.microsoft.co.il/blogs/bursteg/archive/2009/01/11/asp-net-mvc-rss-feed-action-result.aspx">ASP.NET MVC RSS Feed Action Result</a> (Guy Burstein)</li>
<li><a href="http://stackoverflow.com/questions/11915/rss-feeds-in-asp-net-mvc">RSS Feeds in ASP.NET MVC</a> &#8211; StackOverflow</li>
</ul>
<p><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.developerzen.com/2009/01/05/is-windows-live-still-alive/" rel="bookmark" title="January 5, 2009">Is Windows Live Still Alive?</a></li>
<li><a href="http://www.developerzen.com/2009/04/15/developing-a-robust-data-driven-ui-using-wpf-an-overdue-summary-and-full-source-code/" rel="bookmark" title="April 15, 2009">Developing a Robust Data Driven UI Using WPF &ndash; An Overdue Summary (and full source code)</a></li>
<li><a href="http://www.developerzen.com/2009/12/15/the-new-google-app-engine-blobstore-api-first-thoughts/" rel="bookmark" title="December 15, 2009">The New Google App Engine Blobstore API &#8211; First Thoughts</a></li>
<li><a href="http://www.developerzen.com/2009/05/06/introduction-to-mapreduce-for-net-developers/" rel="bookmark" title="May 6, 2009">Introduction to MapReduce for .NET Developers</a></li>
<li><a href="http://www.developerzen.com/2009/09/29/what-would-twitter-do-with-100-million/" rel="bookmark" title="September 29, 2009">What would Twitter do with $100 million?</a></li>
</ul>
<p><!-- Similar Posts took 16.254 ms --></p>

<p><a href="http://feedads.g.doubleclick.net/~a/CXECCsvZ8T54TlJMkVcFf3rn2Ps/0/da"><img src="http://feedads.g.doubleclick.net/~a/CXECCsvZ8T54TlJMkVcFf3rn2Ps/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/CXECCsvZ8T54TlJMkVcFf3rn2Ps/1/da"><img src="http://feedads.g.doubleclick.net/~a/CXECCsvZ8T54TlJMkVcFf3rn2Ps/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/EranKampf?a=Z942OQ9RV28:K2qnWBPkY0c:XQ266DUsA9M"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=XQ266DUsA9M" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=Z942OQ9RV28:K2qnWBPkY0c:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=Z942OQ9RV28:K2qnWBPkY0c:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=Z942OQ9RV28:K2qnWBPkY0c:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=Z942OQ9RV28:K2qnWBPkY0c:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=Z942OQ9RV28:K2qnWBPkY0c:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=Z942OQ9RV28:K2qnWBPkY0c:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=Z942OQ9RV28:K2qnWBPkY0c:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=Z942OQ9RV28:K2qnWBPkY0c:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/EranKampf?i=Z942OQ9RV28:K2qnWBPkY0c:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=Z942OQ9RV28:K2qnWBPkY0c:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=Z942OQ9RV28:K2qnWBPkY0c:i0o2LV1JfPc"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=i0o2LV1JfPc" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/EranKampf?a=Z942OQ9RV28:K2qnWBPkY0c:I9og5sOYxJI"><img src="http://feeds.feedburner.com/~ff/EranKampf?d=I9og5sOYxJI" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/EranKampf/~4/Z942OQ9RV28" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.developerzen.com/2009/01/11/aspnet-mvc-rss-feed-action-result/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		<feedburner:origLink>http://www.developerzen.com/2009/01/11/aspnet-mvc-rss-feed-action-result/</feedburner:origLink></item>
	</channel>
</rss>
