<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Laughing Meme &#187; flickr</title>
	<atom:link href="http://laughingmeme.org/tag/flickr/feed/" rel="self" type="application/rss+xml" />
	<link>http://laughingmeme.org</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Sun, 29 Jan 2012 21:54:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Tip: Flickr standard photo response as slideshow</title>
		<link>http://laughingmeme.org/2011/01/24/tip-flickr-standard-photo-response-as-slideshow/</link>
		<comments>http://laughingmeme.org/2011/01/24/tip-flickr-standard-photo-response-as-slideshow/#comments</comments>
		<pubDate>Tue, 25 Jan 2011 02:44:56 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[flickr]]></category>

		<guid isPermaLink="false">http://laughingmeme.org/?p=4791</guid>
		<description><![CDATA[We&#8217;ve been doing a ton of hacking recently on our Taste Test experiment, which in turn reminds me a lot of an ill-fated Flickr project, &#8220;Top Explorers&#8221;. (to anyone who still has Flickr SVN access the code should still be there) Computers have made dumb consensus and simple popularity so trivially simple to implement, that [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve been doing a ton of hacking recently on our <a href="http://tastetest.etsy.com">Taste Test</a> experiment, which in turn reminds me a lot of an ill-fated Flickr project, &#8220;Top Explorers&#8221;. (to anyone who still has Flickr SVN access the code should still be there) Computers have made dumb consensus and simple popularity so trivially simple to implement, that projects to explicit hilight individual voice really intrigue me. </p>

<p>Anyway I got inspired last weekend to spend a little while coding up a primitive Top Explorers implementation that would run over the API and on top of <a href="http://pig.apache.org/">Pig</a>.  And as part of that I resorted to one of my favorite hacks for visualizing Flickr API results, the &#8220;<a href="http://code.flickr.com/blog/2008/08/19/standard-photos-response-apis-for-civilized-age/">standard photo response</a> as slideshow&#8221; hack.</p>

<p>Not sure it was ever documented, but you can call it with the form:</p>

<pre><code>http://www.flickr.com/show.gne?api_method=$method_name&amp;method_params=param1|paramvalue1;param2|paramvalue2
</code></pre>

<p>The canonical example of this is <a href="http://www.flickr.com/show.gne?api_method=flickr.photos.search&amp;method_params=in_gallery|1;text|kittens">kittens from galleries</a>, but I was just using it to help visualize variations on <a href="http://www.flickr.com/show.gne?api_method=flickr.photos.search&amp;method_params=min_taken_date|1295664643;max_taken_date|1295758800;sort|interestingness-desc;safe_search|1">recent photos sorted by interestingness</a>.</p>

<p>With any luck I&#8217;ll actually have some interesting Top Explorers results soon as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2011/01/24/tip-flickr-standard-photo-response-as-slideshow/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>There&#8217;s a feed for that</title>
		<link>http://laughingmeme.org/2011/01/19/theres-a-feed-for-that/</link>
		<comments>http://laughingmeme.org/2011/01/19/theres-a-feed-for-that/#comments</comments>
		<pubDate>Wed, 19 Jan 2011 14:08:03 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[geo]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://laughingmeme.org/?p=4767</guid>
		<description><![CDATA[tl;dr photosnearme I recently was added to a &#8220;People like John Resig&#8221; Twitter list. I am nothing like John Resig. In particular I suck at Javascript. However, given the annoyance of properly constructing a Flickr geo feed URL (admittedly linked to from the bottom of every places page, but whose counting), I decided to make [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://laughingmeme.org/img/photosnearwburg.png"></p>

<h2>tl;dr <a href="http://laughingmeme.org/code/photosnearme">photosnearme</a></h2>

<p>I recently was added to a <a href="http://twitter.com/#!/MetaThis/people-like-jeresig">&#8220;People like John Resig&#8221; Twitter list</a>.  I am nothing like <a href="http://ejohn.org/">John Resig</a>.  In particular I suck at Javascript.  </p>

<p>However, given the annoyance of properly constructing a Flickr geo feed URL (admittedly linked to from the bottom of every <a href="http://flickr.com/places/">places page</a>, but whose counting), I decided to make a script for it while waiting for the kettle this morning.</p>

<p>I broke out the <a href="http://jquery.com">jQuery</a> (thanks John!) and some code from <a href="http://weathernear.me">Weather Near Me</a>, and now there is <a href="http://laughingmeme.org/code/photosnearme">photosnearme</a> for finding the feed of photos for the neighborhood you&#8217;re in.  YMMV.</p>

<p>ps.  I keep forgetting and having to remind myself, Chrome&#8217;s ridiculous over aggressive caching makes it totally unsuitable for development purposes.  That was probably the hardest part of the script.</p>

<p>pps. I don&#8217;t care that RSS is dead, I still like it.</p>

<p>see also: <a href="http://laughingmeme.org/2004/12/04/the-kettle-dilemma-and-growl/">other waiting for the kettle scripts</a></p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2011/01/19/theres-a-feed-for-that/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>You and …</title>
		<link>http://laughingmeme.org/2010/11/13/you-and-%e2%80%a6/</link>
		<comments>http://laughingmeme.org/2010/11/13/you-and-%e2%80%a6/#comments</comments>
		<pubDate>Sat, 13 Nov 2010 12:02:23 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[codepiction]]></category>
		<category><![CDATA[easter egg]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[photos]]></category>

		<guid isPermaLink="false">http://laughingmeme.org/?p=4750</guid>
		<description><![CDATA[The &#8220;You and X&#8221; pages are my favorite Facebook feature I&#8217;ve seen in a long time. (I&#8217;ll admit I&#8217;m a pretty limited user of &#8220;the Book&#8221; so the bar is low, though a new feature we launched adminonly yesterday on Etsy is making me think about bulking up on &#8216;Book friends). Also reminded me of [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://flickr.com/gp/kellan/6ACD61" title="Screen shot 2010-11-13 at 6.52.52 AM by kellan, on Flickr"><img src="http://farm5.static.flickr.com/4001/5171713198_d57182ba79.jpg" alt="Screen shot 2010-11-13 at 6.52.52 AM" /></a></p>

<p>The <a href="http://news.cnet.com/8301-13577_3-20021068-36.html?part=rss&amp;tag=feed&amp;subj=TheSocial">&#8220;You and X&#8221;</a> pages are my favorite Facebook feature I&#8217;ve seen in a long time. (I&#8217;ll admit I&#8217;m a pretty limited user of &#8220;the Book&#8221; so the bar is low, though a new feature we launched adminonly yesterday on Etsy is making me think about bulking up on &#8216;Book friends).</p>

<p>Also reminded me of my favorite semi-secret feature of <a href="http://blog.flickr.net/en/2009/10/21/people-in-photos/">Flickr people tagging</a>: the &#8220;You + X&#8221; pages. </p>

<p>If you visit the <a href="http://flickr.com/photosof/kellan">&#8220;/photosof/kellan&#8221;</a> style people URLs you&#8217;ll get prompted &#8220;Anyone ever snapped a picture of the two of you?&#8221; and if you click on the link you can see pictures of the two of you. (us?)  You can also hack the URL to string together a <a href="http://www.flickr.com/photosof/murphy_slaw+hitherto+brevity+ashot+dunstan+shanan+bees+joemud+judemat+allspaw+heydrienne+revdancatt+rossharmes+mannyv+kakul+avatara+andthemonkey+kellan+mylesdgrant+ahmany">longer list of folks</a>.</p>

<p><a href="http://www.flickr.com/photos/kellan/5171731016/" title="Screen shot 2010-11-13 at 7.05.19 AM by kellan, on Flickr"><img src="http://farm5.static.flickr.com/4110/5171731016_13aaef0fc1.jpg" width="500" height="144" alt="Screen shot 2010-11-13 at 7.05.19 AM" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2010/11/13/you-and-%e2%80%a6/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Minimal Competence: Data Access, Data Ownership, and Sharecropping.</title>
		<link>http://laughingmeme.org/2010/05/18/minimal-competence-data-access-data-ownership-and-sharecropping/</link>
		<comments>http://laughingmeme.org/2010/05/18/minimal-competence-data-access-data-ownership-and-sharecropping/#comments</comments>
		<pubDate>Tue, 18 May 2010 15:59:51 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[minimal competence]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://laughingmeme.org/?p=4617</guid>
		<description><![CDATA[A friend (from Google) recently trolled me, asking, &#8220;What&#8217;s up with the data lock-in at Flickr?&#8221;. Got me thinking about standards. I wrote back a rant to a mailing list of fellow senior hacker, and coders types. Below I&#8217;ve included that rant, largely verbatim. I&#8217;d been meaning to turn it into a more reasoned blog [...]]]></description>
			<content:encoded><![CDATA[<p>A friend (from Google) recently trolled me, asking, &#8220;What&#8217;s up with the data lock-in at Flickr?&#8221;.  </p>

<p>Got me thinking about standards.  I wrote back a rant to a mailing list of fellow senior hacker, and coders types. Below I&#8217;ve included that rant, largely verbatim.  I&#8217;d been meaning to turn it into a more reasoned blog post, maybe something suitable for posting on a more official outlet, but life is short, and <a href="http://groovymother.com/2010/may/16/importance-api/">Rod&#8217;s post about Quora</a> reminded me to get on it.</p>

<p>As software engineers, as <strong>social</strong> software engineers, it&#8217;s important to have standards.  You can debate the how much of what we do can be called engineering, even charitably, but the code we write determines the rules that govern the spaces more and more people spend time in, and while &#8220;First, do no harm&#8221; might be reaching, a few standards that you should be embarrassed to not meet seem appropriate. </p>

<p>One of those is around data access, data ownership, and sharecropping.  This is something Flickr takes very seriously.  </p>

<h3>The Minimum</h3>

<p>With Flickr you can get out, <a href="http://www.flickr.com/services/api/">via the API</a>, every single piece of information you put into the system.</p>

<p>Every photo, in every size, plus the completely untouched original. (which we store for you indefinitely, whether or not you pay us) Every tag, every comment, every note, every people tag, every fave. Also your stats, view counts, and referers. </p>

<p>Not the most recent <em>N</em>, not a subset of the data.  All of it.</p>

<p>It&#8217;s your data, and you&#8217;ve granted us a limited license to use it.</p>

<p>Additionally we provide a moderately competently built API that allows you to access your data at rates roughly 500x faster then the rate that will get you banned from Twitter. </p>

<p>Asking people to accept anything else is sharecropping.  It&#8217;s a bad deal.  Flickr helped pioneer &#8220;Web 2.0&#8243;, and personal data ownership is a key piece of that vision.   Just because the wider public hasn&#8217;t caught on yet to all the nuances around data access, data privacy, data ownership, and data fidelity, doesn&#8217;t mean you shouldn&#8217;t be embarrassed to be failing to deliver a quality product.</p>

<p>The ability to get out the data you put in is the bare minimum.  All of it, at high fidelity, in a reasonable amount of time.  </p>

<p>The bare minimum that you should be building, bare minimum that you should be using, and absolutely the bare minimum you should be looking for in tools you allow and encourage people who aren&#8217;t builders to use.  </p>

<h3>A Reasonable Exchange of Value</h3>

<p>Flickr actually goes a bit farther, not only can you get your data out, but it gets enriched as it passes through the system.</p>

<p>If you use the geotagging feature, you don&#8217;t just get the lat/long out you put in, but your photo comes back with a whole hierarchy of geographic descriptors, that are
pointers into a publicly available gazetteer (<a href="http://developer.yahoo.com/geo/geoplanet/">Y! GeoPlanet</a>).  It would be good if there were pointers into other publicly available gazetteers (if for example Google ever released one) but there isn&#8217;t a good concordance service yet (but it&#8217;s being worked on)</p>

<p>You get structured access to all the metadata that people have added to your photos, with proper attribution available. (of course there is a <em>working</em> privacy model, so your &#8220;friends&#8221; aren&#8217;t getting data they aren&#8217;t supposed to, like your friend requests, and chat logs)</p>

<p>If you used our <a href="http://code.flickr.com/blog/2009/07/06/extraextraextra/">machine tags vocab</a>, you get extra information pulled in from 3rd party APIs like <a href="http://www.flickr.com/photos/tags/osm:*=">Open Street Maps</a>, <a href="http://www.flickr.com/photos/tags/openlibrary:*=">Open Library</a>, <a href="http://www.flickr.com/photos/tags/lastfm:*=">Last.fm</a>, <a href="http://fakesubwayapis.appspot.com/">various transit administrations</a>, and <a href="http://www.flickr.com/photos/tags/foursquare:*=">Foursquare</a>.</p>

<p>Additionally you also have access to the data that was created in aggregate using the data you shared with us, like <a href="http://www.flickr.com/photos/tags/open/clusters/">tag clusters</a>, and the Creative Commons licensed <a href="http://code.flickr.com/blog/2009/05/21/flickr-shapefiles-public-dataset-10/">neighborhood shape boundaries</a>.</p>

<p>This isn&#8217;t the exhaustive list, just a few of the things Flickr does to respect, and collaborate with the people who share their time and data with us.</p>

<p>I&#8217;d certainly <em>love</em> to get a fraction of this data back from other services I use.  Imagine getting access to all the data Google has about you, and everything they&#8217;ve learned partially based on observing you.  I&#8217;ve gotten used to being disappointed by most of my fellow practitioners, but I still dream about using good tools that treat me with respect and want to collaborate.</p>

<p>Thanks go to <a href="http://www.fsck.com/">Jesse Vincent</a>, for the useful <a href="http://www.slideshare.net/IgniteBoston/12-jesse-vincent">sharecropping metaphor</a>.</p>

<p>(and I&#8217;ll state the obvious this is my <strong>personal</strong> blog, nothing I post here should be taken as official Flickr or Yahoo communication or policy, unless otherwise noted, that isn&#8217;t what they pay me to do.)</p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2010/05/18/minimal-competence-data-access-data-ownership-and-sharecropping/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>geobloggers: Flickr Photos now in Bing Maps</title>
		<link>http://laughingmeme.org/2010/02/12/flickr-photos-now-in-bing-maps-%e2%80%a6-%c2%ab-geobloggers/</link>
		<comments>http://laughingmeme.org/2010/02/12/flickr-photos-now-in-bing-maps-%e2%80%a6-%c2%ab-geobloggers/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 12:30:40 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[augmented reality]]></category>
		<category><![CDATA[bing]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[geo]]></category>
		<category><![CDATA[location]]></category>
		<category><![CDATA[research]]></category>

		<guid isPermaLink="false">http://laughingmeme.org/?p=4506</guid>
		<description><![CDATA[&#8220;This, is what geotagging photos is all about, it’s about having enough of them, millions and millions, so that they can be thrown through complex analysis, allowing them to be matched up, combined, calculated and computed into a geo-spatal context. It’s also about people sharing the world about them. Start of mini rant: You’ll see [...]]]></description>
			<content:encoded><![CDATA[<blockquote>
  <p>&#8220;This, is what geotagging photos is all about, it’s about having enough of them, millions and millions, so that they can be thrown through complex analysis, allowing them to be matched up, combined, calculated and computed into a geo-spatal context. It’s also about people sharing the world about them. Start of mini rant: You’ll see that all these advances are made by Google and Microsoft &#8230;&#8221; &#8211; <a href="http://geobloggers.com/2010/02/12/flickr-photos-now-in-bing-maps/">Rev. Dan Catt</a>. </p>
</blockquote>

<p>I try not to let it get to me anymore that we&#8217;ve been actively de-prioritizing geo as an axis of understanding the human experience as everyone else has been <a href="http://twitter.com/kellan/status/8978944599">spinning it up.</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2010/02/12/flickr-photos-now-in-bing-maps-%e2%80%a6-%c2%ab-geobloggers/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>A Whole Lotta Nothing: Skinner Boxes</title>
		<link>http://laughingmeme.org/2010/02/11/a-whole-lotta-nothing-my-personal-feedback-loops/</link>
		<comments>http://laughingmeme.org/2010/02/11/a-whole-lotta-nothing-my-personal-feedback-loops/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 15:10:48 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[activity]]></category>
		<category><![CDATA[feedback]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[loops]]></category>
		<category><![CDATA[personal informatics]]></category>

		<guid isPermaLink="false">http://laughingmeme.org/?p=4495</guid>
		<description><![CDATA[&#8220;Flickr offers the wonderful Recent Activity page that I loved so much I copied it for MetaFilter. It&#39;s pretty much the ultimate tool for finding what has happened with your content on the network and I hope other services are watching and following suit. I would love to see an internet-wide tool that worked like [...]]]></description>
			<content:encoded><![CDATA[<blockquote>
  <p>&#8220;<strong>Flickr</strong> offers the wonderful <a href="http://www.flickr.com/activity/">Recent Activity page</a> that I loved so much I copied it for MetaFilter. It&#39;s pretty much the ultimate tool for finding what has happened with your content on the network and I hope other services are watching and following suit. I would love to see an internet-wide tool that worked like this to track stuff people have said about my writing/photos as well as any followups on comments I left on any other blog. Many companies have tried, no one has succeeded yet.&#8221; &#8211; 
  <a href="http://a.wholelottanothing.org/2010/02/my-personal-feedback-loops.html">Matt Haughey</a></p>
</blockquote>

<p>Yay!  That almost makes it worth how much pain it was to build that page.  The <a href="http://a.wholelottanothing.org/2010/02/my-personal-feedback-loops.html">whole post</a> is good, a couple of neat tricks I&#8217;d missed for tracking the conversations.</p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2010/02/11/a-whole-lotta-nothing-my-personal-feedback-loops/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flickr Developer Blog: 5 Questions for Simon Willison</title>
		<link>http://laughingmeme.org/2010/02/10/flickr-developer-blog-5-questions-for-simon-willison/</link>
		<comments>http://laughingmeme.org/2010/02/10/flickr-developer-blog-5-questions-for-simon-willison/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 12:38:35 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[machine tags]]></category>
		<category><![CDATA[simon willison]]></category>

		<guid isPermaLink="false">http://laughingmeme.org/?p=4487</guid>
		<description><![CDATA[My interview with Simon is up, and full of wildlife, machine tag goodness, and a couple of easter eggs as well.]]></description>
			<content:encoded><![CDATA[<p>My interview with Simon is up, and full of wildlife, machine tag goodness, and a couple of easter eggs as well.</p>
<p><a href='http://code.flickr.com/blog/2010/02/10/5-questions-for-simon-willison/'>http://code.flickr.com/blog/2010/02/10/5-questions-for-simon-willison/</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2010/02/10/flickr-developer-blog-5-questions-for-simon-willison/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook: &#8220;our engineering team is relatively small — there are over one million users to every engineer&#8221;</title>
		<link>http://laughingmeme.org/2010/02/02/facebook-our-engineering-team-is-relatively-small-%e2%80%94-there-are-over-one-million-users-to-every-engineer/</link>
		<comments>http://laughingmeme.org/2010/02/02/facebook-our-engineering-team-is-relatively-small-%e2%80%94-there-are-over-one-million-users-to-every-engineer/#comments</comments>
		<pubDate>Tue, 02 Feb 2010 20:38:58 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[engineering]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[rpe]]></category>
		<category><![CDATA[scaling]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[teams]]></category>

		<guid isPermaLink="false">http://laughingmeme.org/?p=4455</guid>
		<description><![CDATA[Throw away line in the Facebook HipHop post gives us the Facebook RPE, 1mil vs Flickr&#8217;s 2.5mil.]]></description>
			<content:encoded><![CDATA[<p>Throw away line in the Facebook HipHop post gives us the <a href="http://laughingmeme.org/2010/01/22/counting-things-and-rpes/">Facebook RPE</a>, 1mil vs Flickr&#8217;s 2.5mil.</p>
<p><a href='http://developers.facebook.com/news.php?blog=1&amp;story=358'>http://developers.facebook.com/news.php?blog=1&amp;story=358</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2010/02/02/facebook-our-engineering-team-is-relatively-small-%e2%80%94-there-are-over-one-million-users-to-every-engineer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Normalization is for sissies&#8221; will never work!</title>
		<link>http://laughingmeme.org/2010/01/30/normalization-is-for-sissies-will-never-work/</link>
		<comments>http://laughingmeme.org/2010/01/30/normalization-is-for-sissies-will-never-work/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 04:54:34 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[conventional wisdom]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[normalization]]></category>
		<category><![CDATA[nosql]]></category>

		<guid isPermaLink="false">http://laughingmeme.org/?p=4449</guid>
		<description><![CDATA[Found this Kottke post from 2004, quoting Cal&#8217;s original (I think) &#8220;normalization is for sisses&#8221; talk. Love reading through the comments on that post patiently explaining how it will never work!]]></description>
			<content:encoded><![CDATA[<p>Found this Kottke post from 2004, quoting Cal&#8217;s original (I think) &#8220;normalization is for sisses&#8221; talk.  Love reading through the comments on that post patiently explaining how it will never work!</p>
<p><a href='http://kottke.org/04/10/normalized-data'>http://kottke.org/04/10/normalized-data</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2010/01/30/normalization-is-for-sissies-will-never-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flickr Blog:  Fence Friday</title>
		<link>http://laughingmeme.org/2010/01/29/flickr-blog-fence-friday/</link>
		<comments>http://laughingmeme.org/2010/01/29/flickr-blog-fence-friday/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 19:03:41 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[easy group forming]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[groups]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://laughingmeme.org/?p=4447</guid>
		<description><![CDATA[Twitter has #followfriday. If I were ever to rebuild Flickr from the ground up, I&#8217;d collapse the distinction between tags and groups for thematic collaboration. Explicit grouping is useful only when you need to create a sense of place, a trick most easily accomplished in virtual environment by articulating a membership, and a history. Collaboration [...]]]></description>
			<content:encoded><![CDATA[<p>Twitter has <a href="http://twitter.com/#search?q=followfriday">#followfriday</a>. If I were ever to rebuild Flickr from the ground up, I&#8217;d collapse the distinction between tags and groups for thematic collaboration.  Explicit grouping is useful only when you need to create a sense of place, a trick most easily accomplished in virtual environment by articulating a membership, and a history.  Collaboration does not need place, it needs energy.</p>
<p><a href='http://blog.flickr.net/en/2010/01/29/fence-friday-2/'>http://blog.flickr.net/en/2010/01/29/fence-friday-2/</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2010/01/29/flickr-blog-fence-friday/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>4294967295 and MySQL INT(20) Syntax Blows</title>
		<link>http://laughingmeme.org/2010/01/24/4294967295-and-mysql-int20-syntax-blows/</link>
		<comments>http://laughingmeme.org/2010/01/24/4294967295-and-mysql-int20-syntax-blows/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 06:01:39 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[big numbers]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://laughingmeme.org/?p=4412</guid>
		<description><![CDATA[When you&#8217;ve been working with a technology for a long time, it&#8217;s difficult not to develop Stockholm syndrome. Not sure when I started using MySQL, but I bought my first license in 1998. I think it wasn&#8217;t until mid-to-late &#8217;98 when we had to call Monty long distance to Sweden to get help with some [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/pjern/1339311643/"><img src="http://farm2.static.flickr.com/1156/1339311643_3acb54e40a.jpg" alt="Big Numbers 2 by pjern." title="" width="500" height="332" border="0"></a></p>

<p>When you&#8217;ve been working with a technology for a long time, it&#8217;s difficult not to develop Stockholm syndrome.  Not sure when I started using MySQL, but I bought my first license in 1998.   I think it wasn&#8217;t until mid-to-late &#8217;98 when we had to call <a href="http://monty-says.blogspot.com/">Monty</a> long distance to Sweden to get help with some tricky issues.  Which is to say its been a long time since I thought about how confusing MySQL&#8217;s CREATE TABLE syntax can be.</p>

<p>Which is not to say that the documentation isn&#8217;t clear:</p>

<blockquote>
  <p><em class="replaceable"><code>M</code></em> indicates the maximum display width for integer types. The maximum legal display width is 255.
  Display width is unrelated to the range of values a type can contain, as described in <a href="http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html" title="10.2. Numeric Types">Section 10.2, “Numeric Types”</a>. For floating-point and fixed-point types, <em class="replaceable"><code>M</code></em> is the total number of digits that can be stored.</p>
</blockquote>

<p>But last week Flickr had a hiccup.  We hit <a href="http://www.flickr.com/photos/oming91745/4294967295/">4,294,967,295</a> photos. Or as a geek might say it, the largest number that can be represented by a 32-bit unsigned integer.  This didn&#8217;t exactly catch us by surprise.  We&#8217;d switched to using 64-bit ids for some things January, Friday the 13th, 2006.  That and we got bit a few years ago when we hit 2,147,483,647 photos (that&#8217;d be the max signed 32 bit integer).  Shortly after that we did a full audit of our tables.</p>

<p>But somehow we went on writing code after that, and we managed to slip a couple of new tables into the mix.  And some of those tables ended up with <code>INT(20)</code> columns.  Which simply mean we were adding some non-significant zeros to pad the display but truncating photo ids over 4294967295.</p>

<p>INT(5), INT(10), INT(20), and INT(255) all store the same amount of data.</p>

<p>Funny thing is, when I told this story to folks last week, this caught them by surprise.  Sophisticated engineers, some of whom had deployed quite large MySQL backed sites. Because they were right, that syntax is dumb. And confusing.  And I&#8217;d been taking it for granted so long I hadn&#8217;t thought about it in a decade.  Which is why I&#8217;d bother to write a blog post about a popular piece of software, behaving exactly as it&#8217;s extensively documented to work. </p>

<p>Also, it&#8217;s interesting to note how if you keep making the same mistakes they become easier and easier to fix.</p>

<p>If you&#8217;re ever debugging a problem and you see the number 42-mumble-mumble-mumble-7295 you&#8217;ve run out of 32-bit storage.
If you see 2-mumble-mumble-mumble-647 (2147483647) you&#8217;ve run out of signed 32-bit storage.
167-mumble-mumble-15 (16777215) you&#8217;ve run out of 24-bits
and 65-mumble-mumble-35 (65535) you&#8217;ve run out of 16-bits of integers.</p>

<p>Somehow those numbers just jump out at me after all this time, you ignore the numbers in the middle, and notice the significant bits at the front and the end.</p>

<p>Photo from <a href="http://www.flickr.com/photos/pjern/">pjern</a></p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2010/01/24/4294967295-and-mysql-int20-syntax-blows/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Counting Things, and RPEs</title>
		<link>http://laughingmeme.org/2010/01/22/counting-things-and-rpes/</link>
		<comments>http://laughingmeme.org/2010/01/22/counting-things-and-rpes/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 07:35:28 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[rpe]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[teams]]></category>

		<guid isPermaLink="false">http://laughingmeme.org/?p=4394</guid>
		<description><![CDATA[On an unrelated email thread this morning I got to thinking about how I quantify the Flickr engineering team, and counting things in general. Depending on how I&#8217;m counting I tend to place the Flickr engineering team at ~20 people. In that group I include everyone on our team who writes code (including HTML, CSS, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/siliconmonkey/3371542499/" title="306 Million And Counting by siliconmonkey, on Flickr"><img src="http://farm4.static.flickr.com/3606/3371542499_420680b533.jpg" width="500" height="338" alt="306 Million And Counting" /></a></p>

<p>On an unrelated email thread this morning I got to thinking about how I quantify the <a href="http://flickr.com/about/">Flickr engineering team</a>, and counting things in general.</p>

<p>Depending on how I&#8217;m counting I tend to place the Flickr engineering team at ~20 people.  In that group I include everyone on our team who writes code (including HTML, CSS, Javascript, PHP, Java, Perl, Python, C, C++, XUL, or Objective-C).  Additionally I include our operations team (aka sysadmins aka &#8220;service engineering&#8221;), our &#8220;tech support&#8221; team (technical customer care/qa/researchers), and various folks with &#8220;manager&#8221; in their title.</p>

<p>(a more traditional count would probably put the Flickr engineering team at 5 application/backend engineers, 4 front-end engineers, and 4 technical manager types.)</p>

<p>Which got me thinking about a new metric, the RPE or &#8220;roughly per engineer&#8221;.  Mostly it&#8217;s a useful thought tool (for me) to think about what sorts of things scale up with economies of scale, and what doesn&#8217;t. Here are a couple of quick RPE metrics I pulled tonight.</p>

<ul>
<li>We&#8217;ve got roughly 2.5 million Flickr members per engineer.</li>
<li>Roughly <a href="http://www.flickr.com/photos/">200 million photos</a> per engineer.</li>
<li>28 user facing pages. </li>
<li>23 administrative pages.</li>
<li>20 <a href="http://flickr.com/services/api">API methods</a>, though only 7.5 public API methods.</li>
<li>80 API calls per second.</li>
<li>250 CPUs.</li>
<li>850 <a href="http://code.flickr.com/#foot-search">annual deploys</a>.</li>
<li>16 <a href="http://code.flickr.com/blog/2009/12/02/flipping-out/">feature flags</a>.</li>
</ul>

<p>Photo from <a href="http://www.flickr.com/photos/siliconmonkey/">siliconmonkey</a></p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2010/01/22/counting-things-and-rpes/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>When I say &#8220;FUD&#8221; &#8230;</title>
		<link>http://laughingmeme.org/2009/10/22/when-i-say-fud/</link>
		<comments>http://laughingmeme.org/2009/10/22/when-i-say-fud/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 16:02:55 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA["long form twittering"]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[del.icio.us]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[history]]></category>
		<category><![CDATA[long fo]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[social]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[upcoming]]></category>

		<guid isPermaLink="false">http://laughingmeme.org/?p=4318</guid>
		<description><![CDATA[&#8230; I mean Flickr/Upcoming/Delicious. In particular, I mean that brief moment of optimism in the Spring of &#8217;06, on the roof of the Iron Cactus, at the Spread the FUD party, when it looked like Yahoo! had a wedge and the will to solve the social search problem, and magically, I might even get to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/janbrasna/112342941/" title="&quot;Flicker upcoming&quot;? WTF? :) by Jan Brašna, on Flickr"><img src="http://farm1.static.flickr.com/43/112342941_cb37d1b62f.jpg" width="500" height="372" alt="&quot;Flicker upcoming&quot;? WTF? :)" /></a></p>

<p>&#8230; I mean Flickr/Upcoming/Delicious.  In particular, I mean that brief moment of optimism in the Spring of &#8217;06, on the roof of the Iron Cactus, at the <a href="http://blog.flickr.net/en/2006/02/24/spread-the-fud-party-with-flickr-upcomingorg-and-delicious/">Spread the FUD party</a>, when it looked like Yahoo! had a wedge and the will to solve the social search problem, and magically, I might even get to be a part of that.  I said in my cover letter (in silly flowery, cover letter speak)</p>

<blockquote>&#8220;The next round of innovation will be about building connections.  The explosion of voices, information and ideas is currently outpacing our techniques for coping with them.  We need to be helping people and communities find new ways to connect, interact, and work together to make sense of this accelerating decentralization.  Innovation has been blossoming at the edges of the Net since the beginning, but innovation is also moving back to the connecting nodes, like Yahoo.&#8221;</blockquote>

<p>Which is much on my mind when I hear about Marissa demo&#8217;ing social search yesterday.  </p>

<p>And I&#8217;m deeply puzzled (and not a little disappointed) that anyone would care if Bing or Google can search the public status timelines, if it doesn&#8217;t come with social context.</p>

<p>Now the question is can Goog shake their historied failure at all things social.</p>

<p><em>Photo from <a href="http://www.flickr.com/photos/janbrasna/112342941/" title="&quot;Flicker upcoming&quot;? WTF? :) by Jan Brašna, on Flickr">Jan Brašna</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2009/10/22/when-i-say-fud/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>photosthatmatter &amp; FlickrApp</title>
		<link>http://laughingmeme.org/2009/07/22/photosthatmatter-flickrapp/</link>
		<comments>http://laughingmeme.org/2009/07/22/photosthatmatter-flickrapp/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 20:27:37 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[appengine]]></category>
		<category><![CDATA[Code]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://laughingmeme.org/?p=4254</guid>
		<description><![CDATA[Aaron&#8217;s FlickrApp is a brain dead easy to use subclass of webapp.RequestHandler that turns Flickr into an single-sign on service for Google AppEngine. As a bonus, you get a valid Flickr auth_token for every signed in user. This makes writing Flickr API apps about the simplest thing ever. Case in point, I wrote the largely [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://photosthatmatter.appspot.com"><img src="http://farm3.static.flickr.com/2667/3747384500_dacdd8c86e.jpg" width="500" height="251" alt="Picture 53" border="0" /></a></p>

<p>Aaron&#8217;s <a href="http://github.com/straup/gae-flickrapp/tree/master">FlickrApp</a> is a brain dead easy to use subclass of <a href="http://code.google.com/appengine/docs/python/gettingstarted/handlingforms.html">webapp.RequestHandler</a> that turns <a href="http://flickr.com">Flickr</a> into an single-sign on service for <a href="http://code.google.com/appengine/">Google AppEngine</a>.</p>

<p>As a bonus, you get a valid Flickr auth_token for every signed in user.   This makes writing <a href="http://flickr.com/services/api">Flickr API apps</a> about the simplest thing ever.</p>

<p>Case in point, I wrote the largely mis-named <a href="http://photosthatmatter.appspot.com">photosthatmatter</a> app last night in slightly less then 20 minutes, while waiting for dinner to simmer.   Shows the most interesting photo from each for your contact in a given time period.  Great for catching up on things you missed  as they flowed by the first time.</p>

<p>YMMV, but it works for me.</p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2009/07/22/photosthatmatter-flickrapp/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Flickr, Twitter, OAuth: A Secret History</title>
		<link>http://laughingmeme.org/2009/07/01/flickr-twitter-oauth-a-secret-history/</link>
		<comments>http://laughingmeme.org/2009/07/01/flickr-twitter-oauth-a-secret-history/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 16:42:54 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[history]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://laughingmeme.org/?p=4235</guid>
		<description><![CDATA[I remember it as a dark and stormy night, that seems unlikely, but I&#8217;m sure it was late and chilly and damp. I remember being tired from a long day in the salt mines; that was during a period when I was always tired after work. I remember there being whiskey, and knowing @maureen, that [...]]]></description>
			<content:encoded><![CDATA[<p>I remember it as a dark and stormy night, that seems unlikely, but I&#8217;m sure it was late and chilly and damp.  </p>

<p>I remember being tired from a long day in the <a href="http://flickr.com">salt mines</a>; that was during a period when I was always tired after work.  </p>

<p>I remember there being whiskey, and knowing <a href="http://twitter.com/maureen">@maureen</a>, that seems likely.</p>

<p>I&#8217;d just won some <a href="http://yahoo.com">internal</a> battles regarding delegated auth, and implemented Google AuthSub for the new Blogger Beta, as well as Amazon auth for a side project.  So when I wanted to share photos from Flickr to Twitter, I knew it wasn&#8217;t going to be over HTTP Basic Auth.</p>

<p>A few weeks earlier <a href="http://twitter.com/blaine">@blaine</a> and <a href="http://twitter.com/factoryjoe">@factoryjoe</a> had pulled me a into a project called OpenAuth that they&#8217;d been talking about for a couple of months &#8212; an alternative to yet another auth standard, and a solution for authenticating sites using OpenID.</p>

<p>So one late, damp night along <a href="http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=409+Laguna+St.,+San+Francisco,+CA&amp;sll=37.77493,-122.42574&amp;sspn=0.004766,0.009109&amp;ie=UTF8&amp;hq=&amp;hnear=409+Laguna+St,+San+Francisco,+California+94102&amp;z=16">Laguna St.</a> with whiskey, we did a pattern extraction, identifying the minimal possible set of features to offer compatibility against existing best practice API authorization protocols. And wrote down the half pager that became the very first draft of the <a href="http://oauth.net">OAuth</a> spec.</p>

<p>That spec wasn&#8217;t the final draft.  That came later, after an open community standardization process allowing experts from the security, web, and usability community to weigh in and iterate on the design.  But many of those decisions (and some of the mistakes) from that night made it into the final version.</p>

<p>Yesterday, a little over two years later,  we finally shipped <a href="http://blog.flickr.net/en/2009/06/30/twitter-your-flickr/">Flickr2Twitter</a>.</p>

<p>So it was nice yesterday when people commented on the integration:</p>

<blockquote>
  <p>&#8220;Uses OAuth!&#8221;
   &#8220;Doesn&#8217;t ask for your Twitter password&#8221;
  &#8220;Great use of OAuth&#8221;. </p>
</blockquote>

<p>And I thought to myself, &#8220;It better be, this is what OAuth was invented for &#8212; literally&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2009/07/01/flickr-twitter-oauth-a-secret-history/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>#2 Every Building with a Shoebox in it’s Basement</title>
		<link>http://laughingmeme.org/2009/04/17/2-every-building-with-a-shoebox-in-it%e2%80%99s-basement/</link>
		<comments>http://laughingmeme.org/2009/04/17/2-every-building-with-a-shoebox-in-it%e2%80%99s-basement/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 14:00:00 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Aside]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[fluffy clouds]]></category>
		<category><![CDATA[new cities]]></category>
		<category><![CDATA[photography]]></category>

		<guid isPermaLink="false">http://laughingmeme.org/?p=4230</guid>
		<description><![CDATA[&#8220;Buildings could offer WiFi photo uploading service, in return for keeping the photos taken of them&#8230;.… what if Cloudgate were built with servers and wireless inside, right from the start, offering to consume the photos taken of it. You take a shot with a wireless enabled camera and it could store a copy for you. [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;Buildings could offer WiFi photo uploading service, in return for keeping the photos taken of them&#8230;.… what if <a href="http://www.flickr.com/search/?q=cloudgate&#038;l=cc&#038;ct=6">Cloudgate</a> were built with servers and wireless inside, right from the start, offering to consume the photos taken of it. You take a shot with a wireless enabled camera and it could store a copy for you. It’s building up a library of itself, in all seasons, in all weather. Meanwhile you, have a backup, findable by time and browsing, stored safely in the Cloud!&#8221;</p>
<p><a href='http://geobloggers.com/2009/04/17/2-every-building-with-a-shoebox-in-its-basement/'>http://geobloggers.com/2009/04/17/2-every-building-with-a-shoebox-in-its-basement/</a></p>]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2009/04/17/2-every-building-with-a-shoebox-in-it%e2%80%99s-basement/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>No, really</title>
		<link>http://laughingmeme.org/2009/03/19/no-really/</link>
		<comments>http://laughingmeme.org/2009/03/19/no-really/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 14:30:31 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[flickrhq]]></category>

		<guid isPermaLink="false">http://laughingmeme.org/2009/03/19/no-really/</guid>
		<description><![CDATA[Uploaded by straup on 12 Mar 09, 1.49PM EDT.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/straup/3349742276/" title="photo sharing"><img src="http://farm4.static.flickr.com/3625/3349742276_9147e0726b.jpg" class="flickr-photo" alt="" /></a>
<p>Uploaded by <a href="/photos/straup/">straup</a> on 12 Mar 09, 1.49PM EDT. </p>              </p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2009/03/19/no-really/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flickr wins Classic award at SxSW</title>
		<link>http://laughingmeme.org/2009/03/16/flickr-wins-classic-award-at-sxsw/</link>
		<comments>http://laughingmeme.org/2009/03/16/flickr-wins-classic-award-at-sxsw/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 18:21:49 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[flickr]]></category>

		<guid isPermaLink="false">http://laughingmeme.org/2009/03/16/flickr-wins-classic-award-at-sxsw/</guid>
		<description><![CDATA[by Kent Brewster]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/kentbrew/3359766295/" title="photo sharing"><img src="http://farm4.static.flickr.com/3181/3359766295_3f33d378dc.jpg" class="flickr-photo" alt="" /></a> by <a href="http://flickr.com/photos/kentbrew">Kent Brewster</a></p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2009/03/16/flickr-wins-classic-award-at-sxsw/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Is a Firehose of Snowflakes a Nor&#8217;easter?</title>
		<link>http://laughingmeme.org/2009/03/04/is-a-firehose-of-snowflakes-a-noreaster/</link>
		<comments>http://laughingmeme.org/2009/03/04/is-a-firehose-of-snowflakes-a-noreaster/#comments</comments>
		<pubDate>Wed, 04 Mar 2009 18:05:20 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[real time]]></category>
		<category><![CDATA[social software for robots]]></category>
		<category><![CDATA[xmpp]]></category>

		<guid isPermaLink="false">http://laughingmeme.org/?p=4189</guid>
		<description><![CDATA[I tried explaining the title of this blog post to Jasmine this morning. Suffice to say my explanation needed a bit of practice. And more than 140 characters. Or it might just be I&#8217;m a bit stir crazy from Winter returning with a vengeance in these here parts. But I wanted to call out a [...]]]></description>
			<content:encoded><![CDATA[<p>I tried explaining the title of this blog post to Jasmine this morning.  Suffice to say my explanation needed a bit of practice.  And more than 140 characters.  Or it might just be I&#8217;m a bit stir crazy from Winter returning with a vengeance in these here parts.  But I wanted to call out a couple of points that might have gotten overshadowed in the good Reverend&#8217;s <a href="http://code.flickr.com/blog/2009/03/03/panda-tuesday-the-history-of-the-panda-new-apis-explore-and-you/">recent post on the Flickr Panda APIs</a>.</p>

<h3>NewsWire API</h3>

<p><a href="http://twitter.com/kellan/status/1231156302"><img src="http://farm4.static.flickr.com/3375/3328143847_b2882436aa.jpg" width="500" height="200" alt="Picture 21" /></a></p>

<p>The <a href="http://nytimes.com">NY Times</a> at their great <a href="http://open.nytimes.com/">Times Open</a> event announced their Newswire API, which is a real time stream of their content.  Stories, and blog posts, and what not.  More interestingly was their discussion about how they&#8217;ve built a backend &#8220;pinging service&#8221; that makes it easy for them to add new types of data to their stream.  I&#8217;m a dork enough that a <a href="http://open.blogs.nytimes.com/2009/02/25/announcing-the-times-newswire-api/">Grey Lady firehose</a> sounds pretty awesome.</p>

<p>But they got some flack for it being a <a href="http://www.dehora.net/journal/2009/01/09/snowflake-apis/">snowflake API</a>.  From where I sit snowflake APIs look like opening up your data as fast as possible, along any means necessary, and trying not to pre-judge how people will use it, but I&#8217;m thankful for the metaphor, as it allowed me to spend the morning envisioning fire hoses of snowflakes.</p>

<p>Still I spent 2007, and 2008 talking about how XMPP was going to be a key piece of <a href="http://blog.twitter.com/2008/07/twitter-and-xmpp-drinking-from-fire.html">building firehoses</a> standardizing and enabling the real time Web, so its a criticism I&#8217;m sensitive to. (and I&#8217;ve already been skipping conferences in 2009 in the hopes of actually having some time to <strong>build</strong> it, though thankfully minor details like time haven&#8217;t stopped my colleagues at Fire Eagle from <a href="http://feblog.yahoo.net/2009/02/19/fire-eagle-location-streams/">launching theirs</a>) </p>

<h3>Pandas</h3>

<p><a href="http://www.flickr.com/photos/psd/2913831391/" title="Flickr Panda! by psd, on Flickr"><img src="http://farm4.static.flickr.com/3070/2913831391_7abfb85d94.jpg" width="500" height="341" alt="Flickr Panda!" /></a></p>

<p>Which is all apropos of saying, <a href="http://flickr.com">we</a> launched our own &#8220;snowflake&#8221; realtime API yesterday. (though actually its just a slight modification of our standard photo response format).  And its <a href="http://code.flickr.com/blog/2009/03/03/panda-tuesday-the-history-of-the-panda-new-apis-explore-and-you/">Panda-shaped</a>.  And it is awesome.</p>

<h3>Near Real-Time, Every Minute, up to 120 Events</h3>

<p>But because the documentation is quirky, I think people missed the significance.  These are Flickr real time data APIs.</p>

<p>We&#8217;re building streams of photos in real time.  Examining the huge stream of data events that happen on Flickr, the social activity, the searching, the meta-data creation, and fishing from that stream to build 3 real time streams.  We&#8217;re then exposing those streams via a near real time polling based API.  </p>

<p>The API pattern is specifically structured around making it easy to call from client side scripting, and the data streams are structured around discovery rather then guided search, but we&#8217;re pushing up to 120 discovered photos down these streams each minutes, every minute.  Two streams of real-time interestingness, and 1 of lightly interestingnessed geotagged photos.</p>

<p>And they&#8217;re named after famous pandas.  Really what more do you want?</p>

<h3>Whither XMPP</h3>

<p>So what&#8217;s up with the blossoming real time data APIs? And where is our promised standardization?  They&#8217;re coming.  There has always been a tricky chicken and egg problem.  There is so little data out there that is appropriate to expose in a real time fashion, that there is little demand to consume it, so the tools fail to evolve.  But I&#8217;m seeing tons of work, great toolkits from like <a href="http://github.com/mojodna/fire-hydrant/tree/master">Fire Hydrant from FireEagle</a> and <a href="http://github.com/julien51/babylon/tree/master">Babylon from notifixio.us</a>, and Google&#8217;s decision to make <a href="http://googleappengine.blogspot.com/2009/02/roadmap-update.html">XMPP a standard part of their AppEngine toolkit</a> are just I&#8217;ve been most excited about recently.</p>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2009/03/04/is-a-firehose-of-snowflakes-a-noreaster/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Flickr Trends</title>
		<link>http://laughingmeme.org/2009/03/03/flickr-trends/</link>
		<comments>http://laughingmeme.org/2009/03/03/flickr-trends/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 14:54:29 +0000</pubDate>
		<dc:creator>Kellan</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[appengine]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[hacking]]></category>

		<guid isPermaLink="false">http://laughingmeme.org/?p=4180</guid>
		<description><![CDATA[Based on Derek&#8217;s NYT Trender and some APIs we haven&#8217;t gotten around to releasing, I spent 20 minutes whipping up Flickr Trends yesterday morning. App Engine is awesome for this kind of stuff. Favorite&#8217;s I&#8217;ve found so far: snow vs flowers party vs wedding jumping vs hdr (oooh, 365 vs hdr is more fun.)]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/kellan/3325192577/" title="snow vs flowers by kellan, on Flickr"><img src="http://farm4.static.flickr.com/3538/3325192577_eb3b6fc1a9.jpg" width="500" height="424" alt="snow vs flowers" /></a></p>

<p>Based on Derek&#8217;s <a href="http://tyn-search.appspot.com/?query1=twitter&#038;query2=facebook&#038;Trend=Trend">NYT Trender</a> and some APIs we haven&#8217;t gotten around to releasing, I spent 20 minutes whipping up <a href="http://flickrtrends.appspot.com/?query1=snow&#038;query2=flowers&#038;Trend=Trend">Flickr Trends</a> yesterday morning.</p>

<p>App Engine is awesome for this kind of stuff.</p>

<p>Favorite&#8217;s I&#8217;ve found so far:</p>

<ul>
<li><a href="http://flickrtrends.appspot.com/?query1=snow&#038;query2=flowers&#038;Trend=Trend">snow vs flowers</a></li>
<li><a href="http://flickrtrends.appspot.com/?query1=party&#038;query2=wedding&#038;Trend=Trend">party vs wedding</a></li>
<li><a href="http://flickrtrends.appspot.com/?query1=jumping&#038;query2=hdr&#038;Trend=Trend">jumping vs hdr</a> (oooh, <a href="http://flickrtrends.appspot.com/?query1=365&#038;query2=hdr&#038;Trend=Trend">365 vs hdr</a> is more fun.)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://laughingmeme.org/2009/03/03/flickr-trends/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

