<?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>bunnyhero dev &#187; Social media</title>
	<atom:link href="http://www.bunnyhero.org/category/social-media/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bunnyhero.org</link>
	<description>Notes on iPhone, Flash and Web development</description>
	<lastBuildDate>Fri, 23 Jul 2010 18:00:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Twitter follower tracker</title>
		<link>http://www.bunnyhero.org/2009/09/18/twitter-follower-tracker/</link>
		<comments>http://www.bunnyhero.org/2009/09/18/twitter-follower-tracker/#comments</comments>
		<pubDate>Sat, 19 Sep 2009 03:42:16 +0000</pubDate>
		<dc:creator>bunnyhero</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Social media]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://www.bunnyhero.org/?p=232</guid>
		<description><![CDATA[There are a number of services out there that are supposed to notify you of when people follow or unfollow you on Twitter. I&#8217;ve tried a few and most of them seem mostly broken. The best one out there, formerly at joule.marnanel.org, is currently down and its creator doesn&#8217;t know when it&#8217;s coming back, alas. The problem with running a service like that is scaling when huge numbers of people join. It always struck me that something like this might be better handled on the client side. It&#8217;s such a conceptually simple operation (fetch followers list, do a diff with the last time you checked), and each person/computer only has to worry about their own accounts. I&#8217;m surprised that Twitter clients don&#8217;t have functionality for this built in (that I know of). I&#8217;ve been wanting to play with the Twitter API for a while, and I&#8217;ve also wanted to delve a little bit into some of the newer features that modern web browsers have to offer, so I&#8217;ve created a simple Twitter follower tracker proof of concept in JavaScript. It&#8217;s a very crude app. It doesn&#8217;t update automatically&#8212;you have to manually refresh the data when you want to check to [...]]]></description>
			<content:encoded><![CDATA[<p>There are a number of services out there that are supposed to notify you of when people follow or unfollow you on <a href="http://twitter.com/">Twitter</a>. I&#8217;ve tried a few and most of them seem mostly broken. The best one out there, formerly at <strong>joule.marnanel.org</strong>, is currently down and <a href="http://marnanel.livejournal.com/1280059.html">its creator doesn&#8217;t know when it&#8217;s coming back</a>, alas.</p>
<p>The problem with running a service like that is scaling when huge numbers of people join. It always struck me that something like this <strong>might be better handled on the client side</strong>. It&#8217;s such a conceptually simple operation (fetch followers list, do a diff with the last time you checked), and each person/computer only has to worry about their own accounts. I&#8217;m surprised that Twitter clients don&#8217;t have functionality for this built in (that I know of).</p>
<p>I&#8217;ve been wanting to play with the <a href="http://apiwiki.twitter.com/">Twitter API</a> for a while, and I&#8217;ve also wanted to delve a little bit into some of the newer features that modern web browsers have to offer, so I&#8217;ve created a simple <a href="http://bunnyherolabs.com/follow/">Twitter follower tracker</a> proof of concept in JavaScript.</p>
<p><a href="http://www.bunnyhero.org/wp-content/uploads/2009/09/Picture-48.png"><img class="aligncenter size-medium wp-image-236" title="Twitter follower tracker in action" src="http://www.bunnyhero.org/wp-content/uploads/2009/09/Picture-48-300x169.png" alt="Twitter follower tracker in action" width="300" height="169" /></a><br />
It&#8217;s a very crude app. It doesn&#8217;t update automatically&mdash;you have to manually refresh the data when you want to check to see if your follower list has changed. Also, the new and lost followers are shown only with their numeric user IDs. Each ID is a link, however&mdash;clicking on the link will fetch that user&#8217;s information and convert the number into a username. Clicking again will take you to that user&#8217;s profile. I did this to minimize the quantity of Twitter API calls.</p>
<p>Yes, the page is hosted on my site, but <strong>all of the work is done by the browser</strong>. It uses <a href="http://jquery.com/">jQuery</a> to fetch the data from Twitter; thanks to Twitter&#8217;s handy <a href="http://apiwiki.twitter.com/Things-Every-Developer-Should-Know#5Parametershavecertainexpectations">&#8220;callback&#8221; parameter</a> in JSON responses, I don&#8217;t have to worry about having a proxy on my server handle any cross-domain requests. I use the <a href="http://hacks.mozilla.org/2009/06/localstorage/"><code>localStorage</code></a> property, supported in some modern browsers, to remember the user&#8217;s follower history. LocalStorage is interesting and easy to use. It&#8217;s like a giant browser cookie, except that its contents don&#8217;t get sent to the server.</p>
<p><strong>Caveats:</strong> it&#8217;s just a proof of concept. I&#8217;ve only tested it (minimally) on a <a href="http://www.apple.com/safari/">couple</a> of <a href="http://www.getfirefox.com/">browsers</a>, on Mac OS X. <strong>It doesn&#8217;t do <em>any</em> error checking</strong>. I&#8217;m sure it will break if you have a lot of followers. I&#8217;m sure it may break if you look at it funny. It may well have security issues. I&#8217;m not sure what the storage limits are for <code>localStorage</code>, but if you hit the limit, I have no idea what will happen. Since <code>localStorage</code> is in the browser, you won&#8217;t be able to see your follower history if you move to a different machine or even to a different browser on the same machine.</p>
<p>If you want to look under the hood, all the real work is done in <a href="http://bunnyherolabs.com/follow/follow.js"><code>follow.js</code></a>. It&#8217;s not well-commented at this point&mdash;it&#8217;s kind of a mess. I might put it under some sort of open source licence, although I&#8217;m not really sure if it&#8217;s worth it for something so simple.</p>
<p>Give it a shot and let me know what you think :)</p>
<p><a href="http://bunnyherolabs.com/follow/"><strong>Twitter follower tracker.</strong></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.bunnyhero.org/2009/09/18/twitter-follower-tracker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The 4 things about UserVoice that drive me @#$%! insane</title>
		<link>http://www.bunnyhero.org/2009/01/26/the-4-things-about-uservoice-that-drive-me-insane/</link>
		<comments>http://www.bunnyhero.org/2009/01/26/the-4-things-about-uservoice-that-drive-me-insane/#comments</comments>
		<pubDate>Mon, 26 Jan 2009 05:24:54 +0000</pubDate>
		<dc:creator>bunnyhero</dc:creator>
				<category><![CDATA[Social media]]></category>
		<category><![CDATA[getsatisfaction]]></category>
		<category><![CDATA[tweetdeck]]></category>
		<category><![CDATA[twhirl]]></category>
		<category><![CDATA[uservoice]]></category>

		<guid isPermaLink="false">http://www.bunnyhero.org/?p=101</guid>
		<description><![CDATA[I don&#8217;t normally blog about sites that I find frustrating&#8211;it&#8217;s generally not worth the effort. But since both TweetDeck and Twhirl use UserVoice for customer feedback, I end up using it far more than I want to, and thus the frustrations build. I must vent! I will be making a lot of comparisons to GetSatisfaction, a somewhat similar customer feedback site. Both Twitter and Plurk use GetSatisfaction, and I&#8217;ve generally been quite happy using it. It is in comparison to GetSatisfaction that UserVoice looks especially bad. Ten-vote limit. Each user on a UserVoice board has a limit of 10 votes which they can distribute between issues as they see fit. The issues/ideas with the highest votes float to the top of the board&#8217;s home page. I understand the reasoning behind this, but I still find it frustrating. I think makes sense to limit votes for things like new features, but when the board is also used to report bugs and shortcomings, I find that I will hit the limit too quickly. In constrast, GetSatisfaction allows you to click &#8220;I have this problem too&#8221; or &#8220;I have this question too&#8221; on as many issues as you like. New suggestions/issues don&#8217;t get [...]]]></description>
			<content:encoded><![CDATA[<p>I don&#8217;t normally blog about sites that I find frustrating&#8211;it&#8217;s generally not worth the effort. But since both <a href="http://www.tweetdeck.com">TweetDeck</a> and <a href="http://www.twhirl.com/">Twhirl</a> use <a href="http://uservoice.com"><strong>UserVoice</strong></a> for customer feedback, I end up using it far more than I want to, and thus the frustrations build. I must vent!<br />
<span id="more-101"></span><br />
I will be making a lot of comparisons to <a href="http://www.getsatisfaction.com/">GetSatisfaction</a>, a somewhat similar customer feedback site. Both <a href="http://www.twitter.com/">Twitter</a> and <a href="http://www.plurk.com/">Plurk</a> use GetSatisfaction, and I&#8217;ve generally been quite happy using it. It is in comparison to GetSatisfaction that UserVoice looks especially bad.</p>
<ol>
<li><strong>Ten-vote limit.</strong> Each user on a UserVoice board has a limit of 10 votes which they can distribute between issues as they see fit. The issues/ideas with the highest votes float to the top of the board&#8217;s home page. I understand the reasoning behind this, but I still find it frustrating. I think makes sense to limit votes for things like new features, but when the board is also used to <strong>report bugs and shortcomings</strong>, I find that I will hit the limit too quickly. In constrast, <strong>GetSatisfaction allows you to click &#8220;I have this problem too&#8221; or &#8220;I have this question too&#8221; on as many issues as you like</strong>.</li>
<li><strong>New suggestions/issues don&#8217;t get enough visibility</strong> because each board&#8217;s home page shows the items with the most votes, and since new users are more likely to vote for the first ones they see, the more popular items just get more popular. There is a separate tab for &#8220;new&#8221; items, but it&#8217;s an extra click away.</li>
<li><strong>Sixty-character subject line limits.</strong> UserVoice allows only 60 characters in the subject line. I understand the need for a limit, but sixty? That&#8217;s not even a full line on an old 80-character-wide terminal. Sometimes 60 characters is just too short to even concisely express an issue.</li>
<li><strong>Loss of user data.</strong> This is the one that made me want to throw my laptop through a wall. As mentioned above, each user gets 10 votes which they can distribute among the issues they feel are most important. <strong>You must have at least 1 vote to create a new idea</strong>. So far so good. But even if you have no votes left, <strong>the user interface still allows you to create a new issue and completely populate the form</strong>, which could include a considerably long description.
<p><strong>It is only <em>after</em> you submit the form</strong> that the site tells you that you must have at least one vote left to create a new idea&#8230; but by that time <em><strong>it has completely thrown away everything you&#8217;ve written!</strong></em> And since the form is a fancy JavaScript overlay, <strong>you can&#8217;t even use the back button to reclaim your lost words</strong>. I can&#8217;t believe this made it through testing and that they still haven&#8217;t fixed it.</li>
</ol>
<p>I think that UserVoice has a lot of potential, but as it is I see no reason why anyone would choose it over GetSatisfaction.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bunnyhero.org/2009/01/26/the-4-things-about-uservoice-that-drive-me-insane/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The magic of TinEye</title>
		<link>http://www.bunnyhero.org/2009/01/13/the-magic-of-tineye/</link>
		<comments>http://www.bunnyhero.org/2009/01/13/the-magic-of-tineye/#comments</comments>
		<pubDate>Tue, 13 Jan 2009 17:38:56 +0000</pubDate>
		<dc:creator>bunnyhero</dc:creator>
				<category><![CDATA[Social media]]></category>
		<category><![CDATA[image search]]></category>
		<category><![CDATA[tineye]]></category>

		<guid isPermaLink="false">http://www.bunnyhero.org/?p=94</guid>
		<description><![CDATA[[This post is a bit off-topic compared to the rest of the blog but I didn't think it made sense to start a whole new blog just for one entry ;) ] TinEye is an image search engine. But it&#8217;s not like Google Image Search: rather than searching for images by keyword, it searches for images based on an image you provide. It&#8217;s smart enough that it will find cropped, resized and otherwise modified versions of the original image. I have gotten into the habit of using TinEye whenever someone passes along an interesting image without any source information. Here&#8217;s an example: Just today I saw this photo album posted in my Facebook newsfeed (link requires Facebook login to view). Such a beautiful and powerful image, but it lacked a photo credit. I fed the image into TinEye. Out popped a couple of pages of results, mostly blogs and forums in various forms (some were cropped differently, others had text overlaid on it like &#8220;We can coexist&#8230;&#8221;). One result in particular caught my eye: an Amazon.com link. The image was used on the cover of the book Christians And a Land Called Holy by Charles P. Lutz and Robert O. [...]]]></description>
			<content:encoded><![CDATA[<p><em>[This post is a bit off-topic compared to the rest of the blog but I didn't think it made sense to start a whole new blog just for one entry ;) ]</em></p>
<p><a href="http://www.tineye.com/">TinEye</a> is an image search engine. But it&#8217;s not like Google Image Search: rather than searching for images by keyword, it searches for images based on an image you provide. It&#8217;s smart enough that it will find cropped, resized and otherwise modified versions of the original image.</p>
<p>I have gotten into the habit of using TinEye whenever someone passes along an interesting image without any source information. Here&#8217;s an example:</p>
<p>Just today I saw this <a href="http://www.facebook.com/album.php?aid=80680&#038;id=501452194">photo album</a> posted in my Facebook newsfeed (link requires Facebook login to view). Such a beautiful and powerful image, but it lacked a photo credit.</p>
<p><img src="http://www.bunnyhero.org/wp-content/uploads/2009/01/blog-n501452194_1901878_2483.jpg" alt="arm in arm" title="mystery image" width="160" height="160" class="size-full wp-image-95" /></p>
<p>I fed the image into TinEye. Out popped a couple of pages of results, mostly  blogs and forums in various forms (some were cropped differently, others had text overlaid on it like &#8220;We can coexist&#8230;&#8221;). One result in particular caught my eye: an Amazon.com link. The image was used on the cover of the book <a href="http://www.amazon.com/o/ASIN/0800637844"><em><strong>Christians And a Land Called Holy</strong></em></a> by Charles P. Lutz and Robert O. Smith.</p>
<p>Following the link, I noticed the &#8220;LOOK INSIDE&#8221; button. A couple of clicks took me to the copyright page, which said &#8220;<strong>Cover photo &copy; Ricki Rosen/Corbis</strong>&#8220;. Bingo!</p>
<p>After that it was quick to determine via Google searches that Ricki Rosen is a renowned photojournalist, and a search on Corbis located <a href="http://pro.corbis.com/popup/Enlargement.aspx?mediauids={626f8ecb-1350-429e-92d9-3f7e7c57d8ee}|{ffffffff-ffff-ffff-ffff-ffffffffffff}">the original image, available for licensing</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bunnyhero.org/2009/01/13/the-magic-of-tineye/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
