<?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>The Imgur Blog</title>
	
	<link>http://imgur.com/blog</link>
	<description />
	<lastBuildDate>Tue, 18 Jun 2013 19:55:54 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/TheImgurBlog" /><feedburner:info uri="theimgurblog" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Tech Tuesday: Running HBase on EC2</title>
		<link>http://feedproxy.google.com/~r/TheImgurBlog/~3/S-B8v7GPerM/</link>
		<comments>http://imgur.com/blog/2013/06/18/tech-tuesday-running-hbase-on-ec2/#comments</comments>
		<pubDate>Tue, 18 Jun 2013 19:55:54 +0000</pubDate>
		<dc:creator>Sarah</dc:creator>
				<category><![CDATA[Tech Tuesday]]></category>

		<guid isPermaLink="false">http://imgur.com/blog/?p=2761</guid>
		<description><![CDATA[Since our last post about HBase, we&#8217;ve been doing a lot of experimentation on EC2. We&#8217;ve learned so many things about how to run HBase in an elastic environment. You run into many of the same issues that you do on dedicated hardware, but you deal with them differently in many cases. If you search [...]]]></description>
				<content:encoded><![CDATA[<p>Since our last post about HBase, we&#8217;ve been doing a lot of experimentation on EC2. We&#8217;ve learned so many things about how to run HBase in an elastic environment. You run into many of the same issues that you do on dedicated hardware, but you deal with them differently in many cases. If you search online, you may read that running Hadoop and HBase on EC2 is a bad idea, but that is no longer the case. Companies like Pinterest have been doing so successfully, and it&#8217;s an inspiration for us to do well. There was a lot of research on our part, and I&#8217;d like to share some of our findings in hopes that it will help others trying to work on EC2.</p>
<p><strong>Storage volumes for DataNodes</strong></p>
<p>AWS provides two types of storage: instance store (ephemeral) volumes and EBS volumes. In addition, EBS volumes can be optimized by using provisioned IOPS. We&#8217;ve played around with both types, and run numerous tests using Linux tools like fio and dd. This was to determine the type of storage that would be best for our DataNodes.</p>
<p>We found that instance stores outperform EBS volumes when it comes to sequential I/O, while EBS drives are better at random access patterns when using provisioned IOPS of 200 and above.</p>
<p><center><img src="http://i.imgur.com/n2CA4.gif" alt="" /></center></p>
<p>What does this tell us? HDFS is designed for sequential I/O. If we can minimize the number of disk seeks then we can probably get some good performance using instance store volumes.</p>
<p>We like EBS with provisioned IOPS volumes because of their various beneficial properties. They can be as big as a 1TB, and data in them will persist after the instance is restarted. You can mount many of them on an instance to spread the I/O and adding more EBS drives increases write performance. They are expensive, however, so we discarded this approach. We also discarded standard EBS because it cannot deliver consistent performance.</p>
<p>Needless to say, our DataNodes use instance store volumes. If we run out of space or if we need more I/O, we&#8217;ll add more instances to the cluster. Easy enough with EC2.</p>
<p><strong>Instance types and root volume</strong></p>
<p>There are a few options for this. We chose m1.xlarge instances. The reason is that it provides a good balance of resources. 1.6TB of storage distributed among four volumes and 15 GB of RAM to feed a memory-hungry HBase. Another option could have been m1.large, but it only supports 7.5 GB of RAM and 2x420GB volumes (the <a href="http://wiki.apache.org/hadoop/DiskSetup">HBase experts recommend</a> &#8216;a lot&#8217; of disks per server). For clusters that are CPU bound c1.xlarge instances might be appropriate. I&#8217;ve also heard of cases where SSD storage is used. This is probably for clusters that require very high write throughput.</p>
<p>We&#8217;ll try m1.xlarge instances for now and see how that works in production. We can always change instance types if we need to. Lastly, all our instances are EBS-backed. Definitely something worth doing. The cost difference is minimal, and it is much easier to work with if we need to make changes to the root device.</p>
<p><strong>MapReduce</strong></p>
<p>Initially, I thought we would use the HBase cluster to run MapReduce jobs, but then I remembered that Amazon EMR exists! It&#8217;s cool if you can run MapReduce jobs in your own HBase cluster, but then you introduce a new class of problems. For instance, HBase could take a performance hit if a running job is competing for CPU and I/O resources. You&#8217;d have to configure your cluster such that it takes HBase and MR into account. Still, there are reasons for why you might run jobs in your HBase cluster. Data locality is the best one I can think of: you reduce network activity and increase job performance.</p>
<p>With that said, we have &#8216;light&#8217; and &#8216;heavy&#8217; jobs. Light jobs are run in the HBase cluster. The idea is that such jobs will have a minimal effect on performance. Heavy jobs will be run on EMR and insert data into HBase if they need to. We don&#8217;t have many jobs yet, but as we write more, this is what we&#8217;ll try.</p>
<p><strong>Rack awareness</strong></p>
<p>Hadoop can be configured for rack awareness. This means that HFile blocks can be replicated on different racks for higher failure-tolerance. On EC2, you can treat availability-zones as racks. If one availability-zone goes down, we can count on the data being in another availability-zone.</p>
<p><center><img src="http://i.imgur.com/i9fPA.gif" alt="" /></center></p>
<p>There were concerns that cross-AZ traffic would be slow. We ran some tests to know exactly how much, and we found that response time is unaffected, and that latency increased by a negligible amount. Thus, performance was good. Another concern is the cost to send data from one AZ to another which is $0.01/GB. It doesn&#8217;t sound like much, but at scale it can add up pretty quickly. Our cluster is small so the extra cost is acceptable, and in production it&#8217;s always nice to have another layer of failure-tolerance.</p>
<p><strong>HBase Backups</strong></p>
<p>We are lucky to be in a time where <a href="http://hbase.apache.org/book/ops.snapshots.html">HBase Snapshots</a> are a thing. Previously, and this was only about three months ago, backups had to be done by dumping a table on a row by row basis, or by copying the underlying HFiles while HBase was actively making changes to the file system. A year ago, I wrote <a href="https://github.com/oclc/HBase-Backup">a tool</a> that did the latter, but it meant that performance could be affected since I/O and network activity would increase during the backup stage. With built-in HBase Snapshots, there is minimal impact on the cluster because there is no need to copy any HFiles, and the snapshots are generated very quickly.</p>
<p><center><img src="http://i.imgur.com/Ie17FZ6.gif" alt="" /></center></p>
<p>If we need to restore a table, it can also be done with minimal effect on the cluster. Soon we will be exporting those snapshots to S3 for safekeeping. We&#8217;ve already tested this approach and it works well. The only issue we see is the increased I/O at the HDFS level while we copy files in and out of S3.</p>
<p>There are many other aspects of the HBase cluster that we have not mentioned here. It&#8217;s a lot to cover, but these were some of the topics that we initially explored when we started this project. We&#8217;ve made a lot of progress. Our goal is to have HBase in production in the next few weeks serving real time requests.</p>
<p>Carlos<br />
Software Engineer<br />
<centeR><img src="http://i.imgur.com/9DsgeAAl.jpg" alt="" /><center></p>
]]></content:encoded>
			<wfw:commentRss>http://imgur.com/blog/2013/06/18/tech-tuesday-running-hbase-on-ec2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://imgur.com/blog/2013/06/18/tech-tuesday-running-hbase-on-ec2/</feedburner:origLink></item>
		<item>
		<title>Recreate the Awkwardness Contest Winners</title>
		<link>http://feedproxy.google.com/~r/TheImgurBlog/~3/m9cfIOElmQA/</link>
		<comments>http://imgur.com/blog/2013/06/18/recreate-the-awkwardness-winners/#comments</comments>
		<pubDate>Tue, 18 Jun 2013 16:53:12 +0000</pubDate>
		<dc:creator>Sarah</dc:creator>
				<category><![CDATA[Contests]]></category>

		<guid isPermaLink="false">http://imgur.com/blog/?p=2633</guid>
		<description><![CDATA[Thanks to all who entered the Recreate the Awkwardness Contest for the cringe-worthy outfits, haunting expressions and uncomfortable poses. Somehow these recreations managed to be even more awkward than the originals. Special thanks to our friends at Awkward Family Photos for the original images used for this contest and great prizes. Without further ado, the [...]]]></description>
				<content:encoded><![CDATA[<p>Thanks to all who entered the Recreate the Awkwardness Contest for the cringe-worthy outfits, haunting expressions and uncomfortable poses. Somehow these recreations managed to be even more awkward than the originals.</p>
<p>Special thanks to our friends at <a href="http://awkwardfamilyphotos.com">Awkward Family Photos</a> for the <a href="http://imgur.com/a/OOFji">original images</a> used for this contest and great prizes.</p>
<p>Without further ado, the winners!</p>
<h2 class="center">First place</h2>
<div class="center">
<a href="http://imgur.com/g/awkward/anwvz5C"><img alt="" src="http://i.imgur.com/rMpbooCl.jpg" /></a><br />
submitted by <a href="http://imgur.com/user/laece">laece</a>
</div>
<p></p>
<h2 class="center">Second place</h2>
<div class="center">
<a href="http://imgur.com/g/awkward/PP8P87r"><img alt="" src="http://i.imgur.com/aF7uit9l.jpg" /></a><br />
Submitted by <a href="http://imgur.com/user/otfbeacon">otfbeacon</a>
</div>
<p></p>
<h2 class="center">Third place</h2>
<div class="center">
<a href="http://imgur.com/g/awkward/tL7U51V"><img alt="" src="http://i.imgur.com/nYgoMWLl.jpg" /></a><br />
Submitted by <a href="http://imgur.com/user/ChrissyJustian">ChrissyJustian</a>
</div>
<p style="margin-top:20px">
Don&#8217;t stop the weirdness now! Check out the full album, including all winners and entries:<br />
<iframe src="http://imgur.com/a/8pZFl/embed" height="550" width="100%" frameborder="0"></iframe>
</p>
<p>Shower your favorites in upvotes by visiting the <a href="http://imgur.com/g/awkward">Recreate the Awkwardness Gallery</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://imgur.com/blog/2013/06/18/recreate-the-awkwardness-winners/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://imgur.com/blog/2013/06/18/recreate-the-awkwardness-winners/</feedburner:origLink></item>
		<item>
		<title>Tech Tuesday: Real Time Messaging</title>
		<link>http://feedproxy.google.com/~r/TheImgurBlog/~3/p-4f00WUFxI/</link>
		<comments>http://imgur.com/blog/2013/06/11/tech-tuesday-real-time-messaging/#comments</comments>
		<pubDate>Tue, 11 Jun 2013 17:54:33 +0000</pubDate>
		<dc:creator>Brian</dc:creator>
				<category><![CDATA[Tech Tuesday]]></category>

		<guid isPermaLink="false">http://imgur.com/blog/?p=2546</guid>
		<description><![CDATA[Almost a year ago, we released the Imgur messaging system. When the messaging system was first developed, we had no data on how it would be used, how much users would be communicating, or how long conversations would last. In designing the feature, we chose to go with a more email-like interface and functionality. This [...]]]></description>
				<content:encoded><![CDATA[<p>Almost a year ago, we released the Imgur <a href="http://imgur.com/blog/2012/06/19/new-gallery-features/">messaging system</a>. When the messaging system was first developed, we had no data on how it would be used, how much users would be communicating, or how long conversations would last. In designing the feature, we chose to go with a more email-like interface and functionality. This worked wonderfully for a long time, but recently we have found that Imgurians have been creating friendships via messaging and continuing conversations for longer. This left the messages page cluttered and your scrolling finger tired, leading us to re-think this feature set.</p>
<p>The new design:<br />
<a href="http://i.imgur.com/phuvRhJ.png"><br />
<img src="http://i.imgur.com/phuvRhJ.png" alt="" /><br />
</a></p>
<p>We are now in the later stages of development on the new messaging system. The chat style layout allows conversations of any size to be manageable.  On the right is the list of users with whom you currently have conversations. Clicking on these loads the conversation into the left panel. It also includes the number of messages in that conversation and whether or not it&#8217;s unread. The plus sign allows you to create a new conversation with a user. The left panel contains the actual conversation, starting with the newest message on the bottom. You can use the refresh button to refresh the conversation or the gear menu to delete, block or report a conversation.</p>
<p>This new conversation-based design updates in real time as new messages come in. In the past, developers had to rely on polling to the database every so often to see changes; <a href="http://en.wikipedia.org/wiki/WebSocket">websockets</a> have changed that. They allow push notification to happen in real time. I am currently in the experimental stages of setting up a <a href="http://nodejs.org/">node.js</a> cluster to handle real-time notifications and messages. Node allows you to write lightweight web servers that can handle many data-intensive tasks while allowing a large number of concurrent users. This is perfect for Imgur, since at peak times we have over 150,000 users on the site.  </p>
<p>Our preliminary cluster design looks something like this (check out <a href="http://imgur.com/blog/2013/06/04/tech-tuesday-our-technology-stack/#comments">last week&#8217;s Tech Tuesday</a> to see our full stack):</p>
<div class="center">
<img src="http://i.imgur.com/jxHmedM.png?1" alt="" />
</div>
<p><a href="http://en.wikipedia.org/wiki/WebSocket">Websockets</a> will connect to the Proxy Cluster then be routed to the node cluster where they will execute a handshake and be stored in Redis memory store. Using Redis as our memory store allows the Node cluster to scale up to meet our traffic needs without having to keep track of which server a user originally hit. When User A sends a message to User B the request will hit our WWW server and do a <a href="http://redis.io/topics/pubsub">Redis publish</a>.  Meanwhile, the node servers are subscribed to that channel and will get an event fired when the publish is executed.  When that happens, it will search Redis for User B’s socket and use that to emit a notification to User B. The result? User B is instantly notified when someone sends him a message or replies to one of his comments. </p>
<div class="center">
<img src="http://i.imgur.com/tPRVcLb.gif" alt="" />
</div>
<p>Our hope is that by offloading as much of the memory management as possible to Redis, we will take strain off our node servers and be able to still run the notoriously high memory socket.io plugin. Since this is just a preliminary infrastructure design and no benchmarking has taken place, I’d love to hear any suggestions or thoughts you guys might have.  What has worked for you and what hasn’t? </p>
<p>Brian<br />
Front End Engineer<br />
<img src="http://i.imgur.com/fJFOfIDl.jpg?1" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://imgur.com/blog/2013/06/11/tech-tuesday-real-time-messaging/feed/</wfw:commentRss>
		<slash:comments>35</slash:comments>
		<feedburner:origLink>http://imgur.com/blog/2013/06/11/tech-tuesday-real-time-messaging/</feedburner:origLink></item>
		<item>
		<title>Imgur &amp; Awkward Family Photos present the Recreate the Awkwardness Contest!</title>
		<link>http://feedproxy.google.com/~r/TheImgurBlog/~3/PZdHR0y7Ge4/</link>
		<comments>http://imgur.com/blog/2013/06/10/imgur-awkward-family-photos-present-the-recreate-the-awkwardness-contest/#comments</comments>
		<pubDate>Mon, 10 Jun 2013 14:42:36 +0000</pubDate>
		<dc:creator>Sarah</dc:creator>
				<category><![CDATA[Contests]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://imgur.com/blog/?p=2306</guid>
		<description><![CDATA[Your chance has come to re-enact the matching outfits, uncomfortable poses, and unexplainable images of awkward family photos. Stay true to the originals or add your own touch of cringe-worthiness. The winner receives a Nikon D3100 14.2MP Digital SLR Camera plus a lifetime pro account, and more prizes from Imgur and Awkward Family Photos! Here&#8217;s [...]]]></description>
				<content:encoded><![CDATA[<p>Your chance has come to re-enact the matching outfits, uncomfortable poses, and unexplainable images of awkward family photos. Stay true to the originals or add your own touch of cringe-worthiness.</p>
<p>The winner receives a <a href="http://www.amazon.com/Nikon-14-2MP-Digital-18-55mm-3-5-5-6/dp/B003ZYF3LO">Nikon D3100 14.2MP Digital SLR Camera</a> plus a lifetime pro account, and more prizes from Imgur and <a href="http://awkwardfamilyphotos.com">Awkward Family Photos</a>!</p>
<p><strong>Here&#8217;s how it works:</strong><br />
Recreate one of the below Awkward Family Photos</p>
<p><iframe class="imgur-album" width="100%" height="550" frameborder="0" src="http://imgur.com/a/OOFji/embed"></iframe></p>
<p>Must be:<br />
-An original creation made by you<br />
-Submitted to the <a href="http://imgur.com/g/awkward">Recreate the Awkwardness Gallery</a> (<a href="http://imgur.com/g/awkward">imgur.com/g/awkward</a>) by 11:59PM PST on June 16, 2013.<br />
-Adhering to the Contest Rules (below)</p>
<p><strong>GRAND PRIZE: </strong></p>
<ul>
<li><a href="http://www.amazon.com/Nikon-14-2MP-Digital-18-55mm-3-5-5-6/dp/B003ZYF3LO/ref=sr_1_1?ie=UTF8&#038;qid=1368648768&#038;sr=8-1&#038;keywords=nikon+d3100">Nikon D3100 14.2MP Digital SLR Camera with 18-55mm f/3.5-5.6 AF-S DX VR Nikkor Zoom Lens </a></li>
<li>$100 store credit to the <a href="http://store.imgur.com">Imgur store</a></li>
<li><a href="http://www.amazon.com/Awkward-Family-Photos-Mike-Bender/dp/0307592294/ref=sr_1_1?ie=UTF8&#038;qid=1368486685&#038;sr=8-1&#038;keywords=awkward+family+photos">Signed Awkward Family Photos book</a></li>
<li><a href="http://www.amazon.com/All-Things-Equal-Inc-7111/dp/B004W280V8/ref=sr_1_1?s=toys-and-games&#038;ie=UTF8&#038;qid=1368486728&#038;sr=1-1&#038;keywords=awkward+family+photos+board+game">Awkward Family Photos board game</a></li>
<li><a href="http://www.amazon.com/Awkward-Family-Photos-Picture-Frame/dp/B00BCMDWXM/ref=sr_1_1?ie=UTF8&#038;qid=1368486779&#038;sr=8-1&#038;keywords=awkward+family+photos+picture+frame+kit">Awkward Family Photos Picture Frame Kit</a></li>
<li>Lifetime <a href="http://imgur.com/register/upgrade">Pro Account</a></li>
<li><a href="http://www.amazon.com/Awkward-Family-Photos-Christmas-Puzzle/dp/B007VTW0WO/ref=sr_1_1?s=toys-and-games&#038;ie=UTF8&#038;qid=1368486847&#038;sr=1-1&#038;keywords=awkward+family+photos+puzzle">Awkward Family Photos Christmas Puzzle</a></li>
<li>Your Recreation featured in the Most Viral Gallery (yes, you will keep all the reputation points you earn from this contest)</li>
</ul>
<p><strong>SECOND PRIZE:</strong></p>
<ul>
<li>$75 to the <a href="http://store.imgur.com">Imgur store</a></li>
<li><a href="http://www.amazon.com/Awkward-Family-Photos-Mike-Bender/dp/0307592294/ref=sr_1_1?ie=UTF8&#038;qid=1368486685&#038;sr=8-1&#038;keywords=awkward+family+photos">2 Signed Awkward Family Photos books</a></li>
<li><a href="http://www.amazon.com/All-Things-Equal-Inc-7111/dp/B004W280V8/ref=sr_1_1?s=toys-and-games&#038;ie=UTF8&#038;qid=1368486728&#038;sr=1-1&#038;keywords=awkward+family+photos+board+game">Awkward Family Photos board game</a></li>
<li>Lifetime <a href="http://imgur.com/register/upgrade">Pro Account</a></li>
</ul>
<p><strong>THIRD PRIZE:</strong></p>
<ul>
<li>$50 to the <a href="http://store.imgur.com">Imgur store</a></li>
<li><a href="http://www.amazon.com/Awkward-Family-Photos-Picture-Frame/dp/B00BCMDWXM/ref=sr_1_1?ie=UTF8&#038;qid=1368486779&#038;sr=8-1&#038;keywords=awkward+family+photos+picture+frame+kit">Awkward Family Photos Picture Frame Kit</a></li>
<li><a href="http://www.amazon.com/Awkward-Family-Photos-Christmas-Puzzle/dp/B007VTW0WO/ref=sr_1_1?s=toys-and-games&#038;ie=UTF8&#038;qid=1368486847&#038;sr=1-1&#038;keywords=awkward+family+photos+puzzle">Awkward Family Photos Christmas Puzzle</a></li>
<li>1 Year <a href="http://imgur.com/register/upgrade">Pro Account</a></li>
</ul>
<p><strong>RULES AND FINE PRINT</strong><br />
By entering the Recreate the Awkwardness Contest, you agree to the following Rules. </p>
<p>CONTEST PERIOD: Contest begins on June 10, 2013 at 12:01AM PST and ends on June 16, 2013 at 11:59PM PST.</p>
<p>HOW TO ENTER: NO PURCHASE NECESSARY TO ENTER OR WIN. To enter the Contest, visit the gallery located at <a href="http://imgur.com/g/awkward">imgur.com/g/awkward</a> during the contest period and upload your image directly into that gallery. Make sure you are on the Recreate the Awkwardness Gallery page while uploading. Select &#8220;add to gallery&#8221; and ensure the message &#8220;you are adding _ image(s) to the recreate the awkwardness gallery&#8221; appears. Help on uploading an image can be found here: <a href="http://imgur.com/help">imgur.com/help</a>. Your entry is accepted when it appears on the Recreate the Awkwardness Gallery.</p>
<p>AWKWARD REQUIREMENTS:<br />
(a) Submissions are subject to all normal <a href="http://imgur.com/help/galleryrules">gallery rules</a> and <a href="http://imgur.com/tos">terms of service</a>. Imgur reserves the right, in its sole discretion, to disqualify any Entrant who submits an Awkward Recreation not complying with these site wide regulations.</p>
<p>(b) Entries must be original, unpublished works.</p>
<p>(c) In the form of PNG, JPG or GIF.</p>
<p>(d) Only one entry per user will be accepted.</p>
<p>JUDGING: Each Awkward Recreation will be judged by members of the Imgur and Awkward Family Photos staff on creativity, originality, and adherence to the theme of the contest. Score and comments by users will be taken into account, but winners will be chosen solely by Imgur and Awkward Family Photos.</p>
<p>ELIGIBILITY: Contest is open to any account holder on Imgur. If you’re under 18, ask your parents for permission before entering this contest or recreating awkward situations.</p>
<p>Email sarah@imgur.com with any questions! </p>
<p>Brought to you by Imgur and our friends at<br />
<a href="http://awkwardfamilyphotos.com"><img src="http://i.imgur.com/EfBD0ofm.jpg" alt="" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://imgur.com/blog/2013/06/10/imgur-awkward-family-photos-present-the-recreate-the-awkwardness-contest/feed/</wfw:commentRss>
		<slash:comments>46</slash:comments>
		<feedburner:origLink>http://imgur.com/blog/2013/06/10/imgur-awkward-family-photos-present-the-recreate-the-awkwardness-contest/</feedburner:origLink></item>
		<item>
		<title>Tech Tuesday: Our Technology Stack</title>
		<link>http://feedproxy.google.com/~r/TheImgurBlog/~3/kgEaHkEXZGQ/</link>
		<comments>http://imgur.com/blog/2013/06/04/tech-tuesday-our-technology-stack/#comments</comments>
		<pubDate>Tue, 04 Jun 2013 21:25:27 +0000</pubDate>
		<dc:creator>Alan</dc:creator>
				<category><![CDATA[Tech Tuesday]]></category>

		<guid isPermaLink="false">http://imgur.com/blog/?p=2417</guid>
		<description><![CDATA[About a year and a half ago we moved from dedicated servers over to AWS. Since then, a lot has changed in how we think about servers and what goes on behind the scenes. This Tech Tuesday is dedicated to revealing the magic behind how the site operates in the cloud. Clusters and Instances: Thanks [...]]]></description>
				<content:encoded><![CDATA[<p>About a year and a half ago we moved from dedicated servers over to <a href="http://aws.amazon.com/">AWS</a>. Since then, a lot has changed in how we think about servers and what goes on behind the scenes. This Tech Tuesday is dedicated to revealing the magic behind how the site operates in the cloud.</p>
<p><strong>Clusters and Instances:</strong><br />
Thanks to AWS, we no longer have to think on a server level. Instead, we think of everything as a cluster of <a href="http://aws.amazon.com/ec2/#instance">instances</a>, and an instance is essentially a virtual server where we don&#8217;t have to worry about the hardware. We never have less than two instances per cluster (in case one goes down), and some clusters can have as many as 50 during peak times. Each instance in a cluster is the same as the rest in the cluster, and every cluster is spanned across at least two availability zones in case one has an outage. We&#8217;re also able to shutdown any instance at any time (even randomly if we feel like it) because when an instance goes down another takes its place within a few minutes.</p>
<p>It&#8217;s a relief to not have to worry about the hardware behind the instances. If one instance becomes unresponsive, then it&#8217;s automatically terminated and a new one is spawned. As long as the instances aren&#8217;t regularly becoming unresponsive, we generally don&#8217;t care what happened to it because by the time we even notice, the new instance has already taken over. There&#8217;s no impact to the end users because the load balancers are smart enough to automatically route traffic away from problematic instances before they&#8217;re even terminated.</p>
<div style="margin-top: 5px">
<div class="left" style="width: 300px; margin-left: 5px">
Every cluster has <a href="http://aws.amazon.com/autoscaling/">AWS AutoScaling</a> configured for it. This lets us start up more instances automatically if we have spikes in traffic. Additionally, if we have too many instances and not enough traffic, then automatically shut some down to save a few dollars on our AWS bill. Autoscaling is arguably the best feature AWS has to offer, and if you&#8217;re not using it than you better have a good reason as to why not.
</div>
<div class="right"><img src="http://i.imgur.com/yBIuOXw.png" width="300" /></div>
<div class="clear"></div>
</div>
<p>The clusters we have are: WWW, API, Upload, <a href="http://haproxy.1wt.eu/">HAProxy</a>, <a href="http://hbase.apache.org/">HBase</a>, <a href="http://dev.mysql.com/">MySQL</a>, <a href="http://memcached.org/">Memcached</a>, <a href="http://redis.io/">Redis</a>, and <a href="http://www.elasticsearch.org/">ElasticSearch</a>, for an average total of 80 instances. Each cluster handles the job that its name describes, all working together for the common goal of giving you your daily (hourly?) dose of image entertainment.</p>
<p><strong>A walk through the typical Imgur request:</strong><br />
Every request for Imgur first has to go through the HAProxy cluster. The first thing that happens when it reaches this cluster is Nginx checks if it already has a cached version of the response available. Every single page on Imgur is cached for 5 seconds, a technique commonly called <a href="http://www.howtoforge.com/why-you-should-always-use-nginx-with-microcaching">microcaching</a>. If you&#8217;re not signed into Imgur and you&#8217;re accessing a popular page, then chances are this is where your request will end. If no cached version of the page is available, then the request goes to HAProxy which decides which cluster will handle the rest of it. If you&#8217;re accessing imgur.com then you&#8217;ll go to the WWW cluster, api.imgur.com will go to the API cluster, and if you&#8217;re uploading or editing an image, you&#8217;ll go to the Upload cluster.</p>
<p>When you hit the WWW cluster you&#8217;ll be round-robin&#8217;d to an instance which will handle the request. This cluster is hooked up to the Memcached, Redis, MySQL, HBase, and ElasticSearch clusters. Since the site is coded in PHP, you&#8217;ll first reach Nginx which will send you off to php-fpm. Unless all the data for the page is cached in Memcached (highly likely), then you&#8217;ll probably be getting the data from the MySQL cluster. If your request is for a gallery search, then you&#8217;ll get the data from the ElasticSearch cluster, and some specific data is also stored in Redis and HBase. By this time, the request should have has everything it needs to form the page. It pieces it all together, travels back out to the HAProxy cluster, is microcached by Nginx, and your browser renders the page. All of this happens in mere milliseconds.</p>
<div class="center"><img src="http://i.imgur.com/10gvO.gif" /></div>
<p>Requests to serve direct images are much different. The first thing you should do when your website starts receiving lots of traffic is leverage a Content Delivery Network (CDN). The point of a CDN is to offload all requests to static files, such as images, css, and js files, to a faster network. CDNs are optimized to serve static content as fast as possible and will be much faster than anything you can hope to achieve with your own servers. All requests to images go to our CDN, which will check if a cached version of that image already exists on their servers. If it does, then the request never hits our infrastructure at all and the CDN displays the image. If no cached version of the image exists for them, for example if the image was just uploaded and is brand new, then the CDN grabs the image from Imgur and displays it. At this point, every subsequent request for that image will be cached on the CDN and Imgur is no longer responsible to displaying it.</p>
<p>Below is a diagram of how they all work together:<br />
<a href="http://i.imgur.com/GiBQsmf.png" target="_blank"><br />
<img src="http://i.imgur.com/GiBQsmf.png" /><br />
</a></p>
<p>That&#8217;s about it for this Tech Tuesday. Questions are welcomed in the comments!</p>
<p>Alan Schaaf<br />
Founder &#038; CEO<br />
<img src="http://i.imgur.com/zPyauGUl.jpg" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://imgur.com/blog/2013/06/04/tech-tuesday-our-technology-stack/feed/</wfw:commentRss>
		<slash:comments>54</slash:comments>
		<feedburner:origLink>http://imgur.com/blog/2013/06/04/tech-tuesday-our-technology-stack/</feedburner:origLink></item>
		<item>
		<title>Recreate the Awkwardness Contest!</title>
		<link>http://feedproxy.google.com/~r/TheImgurBlog/~3/3wygyl3IDSU/</link>
		<comments>http://imgur.com/blog/2013/06/03/recreate-the-awkwardness-contest/#comments</comments>
		<pubDate>Mon, 03 Jun 2013 19:24:13 +0000</pubDate>
		<dc:creator>Sarah</dc:creator>
				<category><![CDATA[Contests]]></category>

		<guid isPermaLink="false">http://imgur.com/blog/?p=2407</guid>
		<description><![CDATA[Imgur and Awkward Family Photos are proud to present the Recreate the Awkwardness Contest. Follow the lead of Danny McBride and Maya Rudolph above and recreate one of these awkward family photos: http://imgur.com/a/OOFji. Stay true to the originals or add your own touch of cringe-worthiness. The winner receives a Nikon D3100 14.2MP Digital SLR Camera [...]]]></description>
				<content:encoded><![CDATA[<p><img src="http://i.imgur.com/PwmmFh7.png" alt="" /></p>
<p>Imgur and <a href="http://awkwardfamilyphotos.com">Awkward Family Photos</a> are proud to present the Recreate the Awkwardness Contest. Follow the lead of Danny McBride and Maya Rudolph above and recreate one of these awkward family photos: <a href="http://imgur.com/a/OOFji">http://imgur.com/a/OOFji</a>. Stay true to the originals or add your own touch of cringe-worthiness. </p>
<p>The winner receives a <a href="http://www.amazon.com/Nikon-14-2MP-Digital-18-55mm-3-5-5-6/dp/B003ZYF3LO">Nikon D3100 14.2MP Digital SLR Camera</a> plus a lifetime pro account, and more prizes from Imgur and Awkward Family Photos!</p>
<p>Check back on June 10 for instructions on how to submit your awkward photo recreation.</p>
]]></content:encoded>
			<wfw:commentRss>http://imgur.com/blog/2013/06/03/recreate-the-awkwardness-contest/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://imgur.com/blog/2013/06/03/recreate-the-awkwardness-contest/</feedburner:origLink></item>
		<item>
		<title>Our Favorite Images from May 2013</title>
		<link>http://feedproxy.google.com/~r/TheImgurBlog/~3/3c_0zfn5mQc/</link>
		<comments>http://imgur.com/blog/2013/06/01/our-favorite-images-from-may-2013/#comments</comments>
		<pubDate>Sat, 01 Jun 2013 16:11:29 +0000</pubDate>
		<dc:creator>Sarah</dc:creator>
				<category><![CDATA[Featured Images]]></category>

		<guid isPermaLink="false">http://imgur.com/blog/?p=2369</guid>
		<description><![CDATA[Welcome, summer! We&#8217;re glad you&#8217;re here, but first we have to pay homage to the month that came before. There were so many phenomenal images this month that it took days to narrow down to these ten gems. We hope you&#8217;re more excited about them than Armind was about his National Spelling Bee win. Eyebrows [...]]]></description>
				<content:encoded><![CDATA[<p class=green>Welcome, summer! We&#8217;re glad you&#8217;re here, but first we have to pay homage to the month that came before. There were so many phenomenal images this month that it took days to narrow down to these ten gems. We hope you&#8217;re more excited about them than <a href="http://imgur.com/gallery/vIf0lAD">Armind was</a> about his National Spelling Bee win. </p>
<p><strong>Eyebrows &#038; Mustache</strong></p>
<p>Favorite comment by <a href="http://imgur.com/user/MyBrotherIsLuigi">MyBrotherIsLuigi</a>: Ladies, this is what happens when you leave your child alone with their father.</p>
<p><a href="http://imgur.com/gallery/erFmkT9"><img src="http://i.imgur.com/erFmkT9l.jpg" alt="" /></a></p>
<p>&nbsp;</p>
<p><strong>My typical day at work.</strong></p>
<p>Favorite comment by <a href="http://imgur.com/user/MetaphoricalFox">MetaphoricalFox</a>: The right amount of mayhem.</p>
<p><a href="http://imgur.com/gallery/8oSxs25"><img src="http://i.imgur.com/8oSxs25l.jpg" alt="" /></a></p>
<p>&nbsp;</p>
<p><strong>Google Streetview captures the glorious moment when my buddy kicks his now ex-gf out of his house</strong></p>
<p>Favorite comment by <a href="http://imgur.com/user/Idonteatenoughfruit">Idonteatenoughfruit</a>: Revenge is a dish best served at the side of a road.</p>
<p><a href="http://imgur.com/gallery/2Mfqm5H"><img src="http://i.imgur.com/2Mfqm5Hl.jpg" alt="" /></a></p>
<p>&nbsp;</p>
<p><strong>What I saw when I finished mowing the lawn yesterday</strong> </p>
<p>Favorite comment by <a href="http://imgur.com/user/MichaelMendez">MichaelMendez</a>: sir i believe your dog is spoiling.</p>
<p><a href="http://imgur.com/gallery/XlSNPAq"><img src="http://i.imgur.com/XlSNPAql.jpg" alt="" /></a></p>
<p>&nbsp;</p>
<p><strong>Comedian Kurt Braunohler hired a sky writer to do this over LA</strong> </p>
<p>Favorite comment by <a href="http://imgur.com/user/FalseOasis">FalseOasis</a>: I NEED MORE FUE</p>
<p><a href="http://imgur.com/gallery/rI6o1rH"><img src="http://i.imgur.com/rI6o1rHl.jpg" alt="" /></a></p>
<p>&nbsp;</p>
<p><strong>Khaleesi</strong> </p>
<p>Favorite comment by <a href="http://imgur.com/user/ImTheSwanQueen">ImTheSwanQueen</a>: &#8220;Touch my beard, and we will burn you first!&#8221;</p>
<p><a href="http://imgur.com/gallery/wBYRtZz"><img src="http://i.imgur.com/wBYRtZzl.jpg" alt="" /></a></p>
<p>&nbsp;</p>
<p><strong>Summer is Coming</strong> </p>
<p>Favorite comment by <a href="http://imgur.com/user/RobbStarkKingOfTheNorth">RobbStarkKingOfTheNorth</a>: What do we say about sunscreen? Not today.</p>
<p><a href="http://imgur.com/gallery/oljUbOw"><img src="http://i.imgur.com/oljUbOwl.jpg" alt="" /></a></p>
<p>&nbsp;</p>
<p><strong>6th grader advice to next years 6th grader; surprisingly deep.</strong> </p>
<p>Favorite comment by <a href="http://imgur.com/user/Caniewak">Caniewak</a>: Rivaled only by &#8220;Be excellent to each other.&#8221;</p>
<p><a href="http://imgur.com/gallery/IqptUsL"><img src="http://i.imgur.com/IqptUsLl.jpg" alt="" /></a></p>
<p>&nbsp;</p>
<p><strong>The ritual is COMPLETE</strong> </p>
<p>Favorite comment by <a href="http://imgur.com/user/TheyStoleMyPrecious">TheyStoleMyPrecious</a>: He&#8217;s trying to summon Cathulu</p>
<p><a href="http://imgur.com/gallery/zP9kTfe"><img src="http://i.imgur.com/zP9kTfel.jpg" alt="" /></a></p>
<p>&nbsp;</p>
<p><strong>So close</strong> </p>
<p>Favorite comment by <a href="http://imgur.com/user/creatingusernamesgivesmeanxiety">creatingusernamesgivesmeanxiety</a>: My dog waited at the door for 10 minutes to come in&#8230;all while the door was open. <a href="http://imgur.com/upN8XbT">http://imgur.com/upN8XbT</a></p>
<p><a href="http://imgur.com/gallery/qbdKyMC"><img src="http://i.imgur.com/qbdKyMC.jpg" alt="" /></a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://imgur.com/blog/2013/06/01/our-favorite-images-from-may-2013/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		<feedburner:origLink>http://imgur.com/blog/2013/06/01/our-favorite-images-from-may-2013/</feedburner:origLink></item>
		<item>
		<title>Tech Tuesday Takeover: Self-Serve Ads</title>
		<link>http://feedproxy.google.com/~r/TheImgurBlog/~3/SO6QgzAeBKQ/</link>
		<comments>http://imgur.com/blog/2013/05/28/tech-tuesday-takeover-self-serve-ads/#comments</comments>
		<pubDate>Tue, 28 May 2013 22:26:44 +0000</pubDate>
		<dc:creator>Sarah</dc:creator>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Tech Tuesday]]></category>

		<guid isPermaLink="false">http://imgur.com/blog/?p=2344</guid>
		<description><![CDATA[Oh no! The Imgur sales guys have hijacked Tech Tuesday! Today we are going to talk a little about how we handle our advertising business. Don’t panic, this post will cover some new ad technology that we are implementing today in the hope of improving the overall role that ads have on our site. As [...]]]></description>
				<content:encoded><![CDATA[<p>Oh no! The Imgur sales guys have hijacked Tech Tuesday! Today we are going to talk a little about how we handle our advertising business. Don’t panic, this post will cover some new ad technology that we are implementing today in the hope of improving the overall role that ads have on our site. </p>
<p>As many of you know, we are an independent bootstrapped company.  Since we offer a free service, understandably, people always want to know how we keep the lights on, pay our ginormous hosting bills and still manage to keep the Imguraffe well fed. </p>
<p>We are able to support the company with revenue generated from ad sales, <a href="https://imgur.com/register/upgrade">Pro accounts</a>, <a href="https://www.mashape.com/imgur/apiv3#!documentation">commercial hosting</a> and schwag from <a href="http://store.imgur.com/">the store</a>.  A sincere thanks to all of you that support us through these paid products or decide to not use Adblock while browsing Imgur! </p>
<p>On the ad sales side, we work with large branded advertisers as well as ad networks. Ad networks are third-party companies that work with thousands of websites and hundreds of advertisers. They act as the middleman, bringing Imgur ad campaigns from advertisers we don’t work with directly. Although we have very strict guidelines for the types of ads we accept (only two formats, no auto-sound ads, no auto-expanding ads, no pop-overs or unders), we can’t always identify every campaign that’s running. Even with a ton of screening mechanisms in place, sometimes bad ads sneak through. Please know we hate these ads, too! We use every report we get through support@imgur.com to track down the offending networks and campaigns and squash them as soon as we can.   </p>
<p>Ads play an important role in supporting the site, but we would prefer that they add value, or at least not detract from your experience.  As part of our ongoing effort to maintain better control of our ads and to improve our ad quality, we are looking to develop direct relationships with our advertisers. To forward that goal we are excited to announce a new self-serve ad platform. This new system will allow you (or your company) to easily setup an ad campaign that will be displayed to your fellow Imgurians. </p>
<p>How does it work? Easy.</p>
<p>1.	Visit our <a href="http://imgur.com/advertise/selfservicedisplay">self-service page</a><br />
2.	Choose to target US only or the entire world<br />
3.	Select your budget<br />
4.	Upload your ad (or you can create one on the platform)<br />
5.	Enter payment details and submit</p>
<p><img src="http://i.imgur.com/XmFHBsbl.png" alt="" /></p>
<p>After a quick review to ensure that the creative looks good and your landing page is working, we will set the campaign live, typically the same day. </p>
<p>Aside from knowing that our community is full of awesome, funny, good-natured folks that love cat GIFs, we have also provided a few quick stats about our audience. If you are interested in targeting a specific geography (city or country) or if have any other questions about display ads or sponsored image ads please email us at sales@imgur.com. </p>
<p>75M+ unique visitors (almost 50M from US)<br />
340M total visits per month<br />
4.1B page views per month<br />
70% Male<br />
Over 50% Ages 18-34</p>
<p>Matt<br />
Chief Operating Officer, Imgur<br />
<img src="http://i.imgur.com/QMht5M2l.jpg" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://imgur.com/blog/2013/05/28/tech-tuesday-takeover-self-serve-ads/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		<feedburner:origLink>http://imgur.com/blog/2013/05/28/tech-tuesday-takeover-self-serve-ads/</feedburner:origLink></item>
		<item>
		<title>Tech Tuesday: jQuery DOM performance</title>
		<link>http://feedproxy.google.com/~r/TheImgurBlog/~3/rOjK0cQnMKk/</link>
		<comments>http://imgur.com/blog/2013/05/21/tech-tuesday-jquery-dom-performance/#comments</comments>
		<pubDate>Tue, 21 May 2013 16:41:35 +0000</pubDate>
		<dc:creator>Sarah</dc:creator>
				<category><![CDATA[Tech Tuesday]]></category>

		<guid isPermaLink="false">http://imgur.com/blog/?p=2288</guid>
		<description><![CDATA[jQuery is called the “write less, do more” JavaScript framework. Invented by a fellow alumnus of RIT John Resig in 2006, it has changed the face of JavaScript development forever. Here at Imgur we use a lot of jQuery because it really does accomplish its aims and makes a lot of things pretty simple. The [...]]]></description>
				<content:encoded><![CDATA[<p>jQuery is called the “write less, do more” JavaScript framework. Invented by a fellow alumnus of RIT John Resig in 2006, it has changed the face of JavaScript development forever. Here at Imgur we use a lot of jQuery because it really does accomplish its aims and makes a lot of things pretty simple. The simplicity comes at a cost, however. jQuery is not <em>nearly</em> as fast as native DOM. Because it is a library sitting on top of the native DOM, it can never be as fast, and in certain contexts the performance penalty can become quite burdensome. We’ll examine one such context here.</p>
<p>If you’ve ever loaded a page on Imgur with a lot of comments, you’ll notice that it’s quite slow right now. We’re working to fix that, and part of that solution is sending comment data to the web browser to build the tree of comments rather than building it on our servers and sending out the result to you. By doing that, we off load a lot of the processing power to the web browser and also can utilize caching to make it even faster. Some pages can have a lot of comments to lay out &#8211; thousands <a href="http://imgur.com/gallery/bdBoa">in some cases</a>, and each comment contains at least 19 elements, so we could be laying out around ~19,000 elements. Whether we do that in jQuery or native DOM is a choice: is the benefit of jQuery (“write less”) worth the performance penalty? Let’s examine the performance penalty to decide.</p>
<p>I wrote a small library called <a href="https://github.com/jacobgreenleaf/ThinDOM">ThinDOM</a> that sits on top of the native DOM methods and lets you do fancy chaining like jQuery. I’ve written a <a href="http://jsfiddle.net/rRFgz/12/">test suite</a> to examine the performance characteristics of jQuery vs. using innerHTML vs. ThinDOM, and through the wonder of technology you too can replicate my results! Science!<br />
<center><br />
<img src="http://i.imgur.com/Jl3kpm.jpg" alt="" /><br />
</center><br />
The test page simulates very closely the actual process involved in building each caption. The results, though not expected, are a bit shocking in the differential.<br />
<center><br />
<img src="http://i.imgur.com/nFw39JPl.png" alt="" /><br />
</center><br />
Happily jQuery is getting better over time, but its performance is still lacking. The InnerHTML method, though fast, is not quite as fast as using the native DOM methods, and the difference is statistically significant (p < 2.2 E-16). ThinDOM is about twelve times faster than jQuery 2.0 edge. </p>
<p>jQuery, like all abstractions, <a href="http://www.joelonsoftware.com/articles/LeakyAbstractions.html">leaks</a>. The promise of jQuery is that you don’t need to know about DOM, you just need to know about HTML and JavaScript, but it leaks because, if I know a bit about DOM, I can write a library that is an order of magnitude faster, and, if I don’t know about DOM, then my code is going to be awfully slow. Knowing when to use jQuery is knowing when you aren’t going to be blindsided by these performance issues, or when the performance penalty is less than the cost in developer time &#8211; time spent writing the code. </p>
<p>On a site like Imgur with sometimes hundreds of thousands of people hitting images with hundreds of comments, even a small performance gain can be “worth it” since developer time is averaged out over every user. As we implement this feature over the next few weeks we hope this should make captions feel much more responsive, especially on more popular images. </p>
<p>I ran all tests on a machine with a Core i5 760, 16 GB of RAM, on Windows 7 SP1 on Google Chrome 26.0.1410.64 m. </p>
<p>Jake<br />
Front End Engineer, Imgur<br />
<img src="http://i.imgur.com/iA5SsHCl.jpg?1" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://imgur.com/blog/2013/05/21/tech-tuesday-jquery-dom-performance/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
		<feedburner:origLink>http://imgur.com/blog/2013/05/21/tech-tuesday-jquery-dom-performance/</feedburner:origLink></item>
		<item>
		<title>Alan takes over the Imgur Twitter!</title>
		<link>http://feedproxy.google.com/~r/TheImgurBlog/~3/ZQ53FtfB9m4/</link>
		<comments>http://imgur.com/blog/2013/05/20/alan-takes-over-the-imgur-twitter/#comments</comments>
		<pubDate>Mon, 20 May 2013 22:14:12 +0000</pubDate>
		<dc:creator>Sarah</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://imgur.com/blog/?p=2273</guid>
		<description><![CDATA[Join Alan Schaaf, Founder of Imgur, this Wednesday (5/22) at 4PM PST for an ask me anything&#8211;Twitter style! Alan will be taking over the official Imgur twitter (@Imgur) to answer your questions about Imgur, bombard you with cat GIFs, give you relationship advice, or tell you about his favorite images. The choice is yours. Follow [...]]]></description>
				<content:encoded><![CDATA[<p>Join Alan Schaaf, Founder of Imgur, this Wednesday (5/22) at 4PM PST for an ask me anything&#8211;Twitter style! Alan will be taking over the official Imgur twitter (<a href="http://twitter.com/imgur">@Imgur</a>) to answer your questions about Imgur, bombard you with cat GIFs, give you relationship advice, or tell you about his favorite images. The choice is yours. </p>
<p>Follow the conversation by using #AskImgur.</p>
<p><a href="https://twitter.com/imgur" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @imgur</a><br />
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script></p>
<p>Now, here&#8217;s a cute sloth:<br />
<img src="http://i.imgur.com/Es9Bmgyl.jpg" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://imgur.com/blog/2013/05/20/alan-takes-over-the-imgur-twitter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://imgur.com/blog/2013/05/20/alan-takes-over-the-imgur-twitter/</feedburner:origLink></item>
	</channel>
</rss>
