NewsBlur/blog/_site/page10/index.html

730 lines
43 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en"><head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="shortcut icon" href="https://newsblur.com/media/img/favicon.ico" type="image/png" />
<link rel="icon" href="https://newsblur.com/media/img/favicon_32.png" sizes="32x32"/>
<link rel="icon" href="https://newsblur.com/media/img/favicon_64.png" sizes="64x64"/><!-- Begin Jekyll SEO tag v2.7.1 -->
<title>Page 10 of 11 for The NewsBlur Blog | A new sound of an old instrument</title>
<meta name="generator" content="Jekyll v4.2.0" />
<meta property="og:title" content="The NewsBlur Blog" />
<meta property="og:locale" content="en_US" />
<meta name="description" content="NewsBlur is a personal news reader that brings people together to talk about the world. A new sound of an old instrument." />
<meta property="og:description" content="NewsBlur is a personal news reader that brings people together to talk about the world. A new sound of an old instrument." />
<link rel="canonical" href="https://blog2.newsblur.com/page10/" />
<meta property="og:url" content="https://blog2.newsblur.com/page10/" />
<meta property="og:site_name" content="The NewsBlur Blog" />
<link rel="prev" href="https://blog2.newsblur.com/page9" />
<link rel="next" href="https://blog2.newsblur.com/page11" />
<meta name="twitter:card" content="summary" />
<meta property="twitter:title" content="The NewsBlur Blog" />
<script type="application/ld+json">
{"description":"NewsBlur is a personal news reader that brings people together to talk about the world. A new sound of an old instrument.","publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://blog2.newsblur.com/assets/newsblur_logo_512.png"}},"url":"https://blog2.newsblur.com/page10/","headline":"The NewsBlur Blog","@type":"WebPage","@context":"https://schema.org"}</script>
<!-- End Jekyll SEO tag -->
<link rel="stylesheet" href="/assets/main.css">
<link rel="stylesheet" type="text/css" href="https://cloud.typography.com/6565292/711824/css/fonts.css" />
<link rel="stylesheet" type="text/css" href="https://cloud.typography.com/6565292/731824/css/fonts.css" /><link type="application/atom+xml" rel="alternate" href="https://blog2.newsblur.com/feed.xml" title="The NewsBlur Blog" /></head>
<body><header class="site-header" role="banner">
<div class="wrapper"><a class="site-title" rel="author" href="/">
<div class="site-title-image">
<img src="/assets/newsblur_logo_512.png">
</div>
<div class="site-title-text">The NewsBlur Blog</div>
</a><nav class="site-nav">
<input type="checkbox" id="nav-trigger" class="nav-trigger" />
<label for="nav-trigger">
<span class="menu-icon">
<svg viewBox="0 0 18 15" width="18px" height="15px">
<path d="M18,1.484c0,0.82-0.665,1.484-1.484,1.484H1.484C0.665,2.969,0,2.304,0,1.484l0,0C0,0.665,0.665,0,1.484,0 h15.032C17.335,0,18,0.665,18,1.484L18,1.484z M18,7.516C18,8.335,17.335,9,16.516,9H1.484C0.665,9,0,8.335,0,7.516l0,0 c0-0.82,0.665-1.484,1.484-1.484h15.032C17.335,6.031,18,6.696,18,7.516L18,7.516z M18,13.516C18,14.335,17.335,15,16.516,15H1.484 C0.665,15,0,14.335,0,13.516l0,0c0-0.82,0.665-1.483,1.484-1.483h15.032C17.335,12.031,18,12.695,18,13.516L18,13.516z"/>
</svg>
</span>
</label>
<div class="trigger"><a class="page-link" href="https://www.newsblur.com">Visit NewsBlur ➤</a></div>
</nav></div>
</header>
<header class="site-subheader" role="banner">
<div class="wrapper">
<div class="top">
NewsBlur is a personal news reader that brings people together to talk about the world.
</div>
<div class="bottom">
A new sound of an old instrument.
</div>
</div>
</header>
<main class="page-content" aria-label="Content">
<div class="wrapper">
<div class="home">
<ul class="post-list"><li><span class="post-meta">Mar 14, 2012</span>
<h3>
<a class="post-link" href="/2012/03/14/mobile-app-web-feeds-nokia-meego/">
New mobile app for NewsBlur: Web Feeds for Nokia MeeGo
</a>
</h3>
<div class="post-content e-content" itemprop="articleBody">
<p>And what a gorgeous mobile app it is. App developer Róbert Márki just released <a href="http://store.ovi.com/content/261063">Web Feeds</a>, the first NewsBlur app for Nokia MeeGo. Take a look at these screenshots:</p>
<style>
.nokia td img {
width: 280px;
margin-right: 24px;
}
</style>
<p>&lt;table class=”nokia”&gt;&lt;tr&gt;&lt;td&gt;</p>
<h3 id="feed-list">Feed list</h3>
<p><img src="http://projects.developer.nokia.com/feed_reader/files/newsblur_view.png" alt="" />&lt;/td&gt; &lt;td&gt;</p>
<h3 id="story-list">Story list</h3>
<p><img src="http://projects.developer.nokia.com/feed_reader/files/feed_view.png" alt="" />&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;&lt;td&gt;</p>
<h3 id="story-view">Story view</h3>
<p><img src="http://projects.developer.nokia.com/feed_reader/files/story_view_large_image2.png" alt="" />&lt;/td&gt; &lt;td&gt;</p>
<h3 id="intelligence-training">Intelligence training</h3>
<p><img src="http://projects.developer.nokia.com/feed_reader/files/inteligence_trainer_feed_view.png" alt="" />&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;&lt;td&gt;</p>
<h3 id="adding-a-site">Adding a site</h3>
<p><img src="http://projects.developer.nokia.com/feed_reader/files/add_feed_sheet.png" alt="" />&lt;/td&gt; &lt;td&gt;</p>
<h3 id="intelligence-control">Intelligence control</h3>
<p><img src="http://projects.developer.nokia.com/feed_reader/files/filter_dialog.png" alt="" />&lt;/td&gt; &lt;/tr&gt;&lt;/table&gt;</p>
<p>Just stellar work and it has all the features of the website. Web Feeds is free and <a href="http://store.ovi.com/content/261063">available from the Nokia Store</a>.</p>
</div>
</li><li><span class="post-meta">Mar 1, 2012</span>
<h3>
<a class="post-link" href="/2012/03/01/going-full-time/">
From project to profession: going indie on NewsBlur
</a>
</h3>
<div class="post-content e-content" itemprop="articleBody">
<p>Exactly four months ago, Jason Kottke found my project, <a href="http://www.newsblur.com">NewsBlur</a>, and tweeted:</p>
<blockquote>
<p>Looking like @<a href="https://twitter.com/newsblur">newsblur</a> is the @<a href="https://twitter.com/pinboard">pinboard</a> of Googles deliciousing of Reader.</p>
<p>— Jason Kottke (@jkottke) <a href="https://twitter.com/jkottke/status/131434505947979776">November 1, 2011</a></p>
</blockquote>
<script src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
<p>In that time, every measure of traffic, paid subscriptions, and community feedback has cleared new heights on my revered munin charts. But I kept my full-time job and only worked on NewsBlur as a side-project, as I have been doing for the past two years.</p>
<p>Im at a slow but steady trickle of users, enough of whom convert into paying premium subscribers to pay for the increasing number of servers (now costing almost $800/month!). But a vocal support forum and an ever-increasing trickle of payments arent what convinced me to dedicate myself full-time to my humble project.</p>
<p>What convinced me is that lifes too short.</p>
<h2 id="the-only-way-to-do-great-work-is-to-love-what-you-do">The only way to do great work is to love what you do</h2>
<blockquote>
<p>Yesterday was my last day at Tasty Labs. Today is my first day as a full-time indie developer.</p>
<p>— Samuel Clay (@samuelclay) <a href="https://twitter.com/samuelclay/status/172737665182076928">February 23, 2012</a></p>
</blockquote>
<script src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
<p>Im following the better-half of my inner-Jobs and choosing to follow the path of doing what I love to do.<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> Its going to be expensive on my part. There will be no paycheck, health insurance runs out in a few months, and even on an exceptionally good day, premium subscriptions bring in only about half of my former salary.</p>
<h2 id="paying-customers-are-keeping-things-afloat">Paying customers are keeping things afloat</h2>
<p>Its not that big a risk. Users are choosing to pay and choosing how much to pay. Some users opt to pay a $12/year at a buck a month, while some choose to pay $36/year at $3/month. The servers cost roughly .75x what premium subscriptions bring in. That gap between cost and revenue is growing steadily, as the servers I have are running at 25% capacity.</p>
<p>Maciej Ceglowski, of Pinboard fame, has written extensively about the scourge of free services not taking payments from users. From a recent February 2012 presentation, he <a href="http://pinboard.in/talks/biz.pdf">writes of the three types of services</a> [pdf]:</p>
<blockquote>
<h3 id="business-model-1-charge-money">Business Model #1: Charge Money</h3>
<p>This is a groundbreaking new approach where a site accepts fungible tokens of value in return for a product or service.</p>
<h3 id="business-model-2-burn-money">Business Model #2: Burn Money</h3>
<p>Find a sponsor with deep pockets and run at a loss indefinitely.</p>
<h3 id="business-model-3-offer-a-free-service-and-fail">Business Model #3: Offer a Free Service and Fail</h3>
<p>The most popular business model has been to offer a free service and then shut down (or transition to model #1).</p>
</blockquote>
<p>You can look forward to new features, bug fixes, and an unending stream of progress, all because youre paying me for the work I do. Its a simple setup that helps me sleep at night. Im building an honest product. You know what youre paying for. And NewsBlur will continue to be ad-free, because ads are not part of the product that I want to use myself.</p>
<h2 id="so-much-time-so-little-to-do-strike-that-reverse-it">So much time, so little to do. Strike that! Reverse it.</h2>
<p>In what I can only consider a bizarrely wonderful coincidence, I see this the morning after I declared freedom:</p>
<blockquote>
<p>@<a href="https://twitter.com/samuelclay">samuelclay</a> Good luck!</p>
<p>— Google Reader (@googlereader) <a href="https://twitter.com/googlereader/status/173084829880037376">February 24, 2012</a></p>
</blockquote>
<script src="//platform.twitter.com/widgets.js" charset="utf-8"></script>
<p>The winds at my back, and Im feeling pretty good about this.<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup></p>
<hr />
<ol>
<li></li>
</ol>
<p>The worse-half of my inner-Jobs insists on perfection and never gets anything shipped. The balancing act between better and done is about the only constant in this crazy dream to be a self-sustaining indie dev. <a href="#fnref:1">↩︎</a></p>
<ol>
<li></li>
</ol>
<p>You should <a href="https://github.com/samuelclay">follow NewsBlurs development on Github</a>. I live on props, so thatd make me feel even better. <a href="#fnref:2">↩︎</a></p>
</div>
</li><li><span class="post-meta">Feb 29, 2012</span>
<h3>
<a class="post-link" href="/2012/02/29/ssl-stripejs/">
SSL &amp; Stripe.js
</a>
</h3>
<div class="post-content e-content" itemprop="articleBody">
<p>Two big announcements today:</p>
<ol>
<li>SSL is now available. You can use <a href="https://www.newsblur.com"><strong>https</strong> ://www.newsblur.com</a> if thats your thing.</li>
<li>Stripe.js integration means you can use a credit card to pay for a premium account.</li>
</ol>
<p>In order to integrate <a href="http://www.stripe.com">Stripe.js</a> into NewsBlur, I had to add SSL support, which was not the easiest task. Generating signing requests, signing certifications, and providing additional security is no basic task.</p>
<p>Since youre reading this, it would be a safe assumption that you have already gone premium. To which, firstly, I thank you. And secondly, if youre invested in the success of a product, you want to watch it grow. But that means you also will not have a chance to see the new payment form, so heres the new premium upsell:</p>
<p><img src="http://f.cl.ly/items/39232n0X213R0v241e3q/Premium%20Upsell.png" alt="" /></p>
<p>And the new payment form:</p>
<p><img src="http://f.cl.ly/items/0Y1v1X060i453A1z2o2Q/Stripe%20Payment%20Form.png" alt="" /></p>
<p>Im extraordinarily pleased with how much easier this was relative to setting up PayPal about a year ago for recurring payments. Thanks to Stripe.js for being such a hassle-free payment provider.</p>
</div>
</li><li><span class="post-meta">Jan 16, 2012</span>
<h3>
<a class="post-link" href="/2012/01/16/2011-year-in-review/">
2011: Year in Review
</a>
</h3>
<div class="post-content e-content" itemprop="articleBody">
<p>Twelve months can be a quick flyby if you dont stop to write everything down. Luckily, a habit Ive kept since July 2009, when I started recording monthly goals for my project, is still going strong.</p>
<p>This gives me the opportunity to review everything that weve accomplished in the past year. There were numerous new features, about half of which were created as a result of feedback from the community. You asked for it, I found the time.</p>
<p>Its been a pretty good cycle that looks like its going to keep going for years.</p>
<h2 id="premium-accounts-are-keeping-newsblur-alive">Premium accounts are keeping NewsBlur alive</h2>
<p>At only a $1/month, nearly 800 people have subscribed to NewsBlur. Not much of it goes back to me, since the servers, between the eight of them, cost $650 every month. But that gap is increasing and my prediction is that these servers should be good for more than a doubling of traffic.</p>
<h2 id="social-is-coming">Social is coming</h2>
<p>In October Google Reader dropped its social features and there was an enormous influx of new users. Unfortunately, NewsBlur doesnt have any social features that could be considered a replacement for the community lost in the Reader sunsetting.</p>
<p>But thats changing soon. Theres only a couple more weeks of development needed before the Social branch is ready for beta testers. And Ill be taking feedback on the changes, iterating until sharebro communities are able to form. Itll be a great time, watching a favorite service evolve into a social community.</p>
<p>If youre a developer, you might enjoy watching the development of <a href="http://github.com/samuelclay">NewsBlur on GitHub</a>.</p>
<h2 id="2011-calendar">2011 Calendar</h2>
<p>The biggest features built this year were the River of News, the iPhone app, and the API. There were tons of other big features, but these three top the list for their importance.</p>
<h3 id="january-2011">January 2011</h3>
<ul>
<li>River of News - read all stories in a folder</li>
<li>“Show N hidden stories” button</li>
<li><a href="http://www.newsblur.com/?next=goodies">Bookmarklet</a> - browser bookmark that allows you to subscribe to a site from the site itself</li>
<li>Favicon fetching and color decomposing - the color gradient that matches the sites favicon.</li>
</ul>
<h3 id="february-2011">February 2011</h3>
<ul>
<li>New dashboard</li>
<li>Replicated PostgreSQL - a slave relational DB for redundancy</li>
<li><a href="http://www.newsblur.com/?next=goodies">Firefox browser extension</a> - handles RSS feeds by forwarding them to NewsBlur</li>
<li><a href="http://github.com/samuelclay/NewsBlur/tree/master/fabfile.py">Fabric scripts</a> - bootstrapping new servers now takes 5 minutes vs. 3 hours</li>
<li>Hiding the sidebar - hit the <code class="language-plaintext highlighter-rouge">u</code> key</li>
</ul>
<h3 id="march-2011">March 2011</h3>
<ul>
<li>Recommended sites - built entirely to be able to link to the hilarious <a href="http://www.tensexyladies.com">Ten Sexy Ladies</a></li>
<li><a href="http://www.newsblur.com/press">New logo</a> - actually, a logo, period.</li>
<li>Inline classifiers - click on an author or tag in the Feed view</li>
<li>Create a new folder directly from the bookmarklet</li>
</ul>
<h3 id="april-2011">April 2011</h3>
<ul>
<li><a href="http://www.newsblur.com/api">The NewsBlur API</a></li>
<li>Hide and show story changes - see the story being modified after being published</li>
<li>Graphs on the dashboard</li>
<li>Upgraded to Django 1.3</li>
<li>Feed fetch histories in Site Statistics</li>
</ul>
<h3 id="may-2011">May 2011</h3>
<ul>
<li>Send story by email - the original social network</li>
<li>Community feedback on the dashboard</li>
<li>The tutorial - built because blogger Louis Gray didnt easily grasp how to get started with NewsBlur, and hes an early adopter, so good luck to any regular users without the help of a tutorial</li>
</ul>
<h3 id="june-2011">June 2011</h3>
<ul>
<li>Prototype mobile site - using jQuery UI, was a disaster in terms of performance</li>
<li>Took a 2 week long vacation to the <a href="http://www.flickr.com/photos/conesus/sets/72157626885528004/">Yucatan</a></li>
</ul>
<h3 id="july-2011">July 2011</h3>
<ul>
<li>Account dialog</li>
<li>Major work on the iPhone app</li>
</ul>
<h3 id="august-2011">August 2011</h3>
<ul>
<li>the iPhone app work continues</li>
<li><a href="https://github.com/samuelclay/NewsBlur/blob/master/api/newsblur.py">Python API</a></li>
<li>Major speed-ups in feed loading and fetching</li>
</ul>
<h3 id="september-2011">September 2011</h3>
<ul>
<li>Submit the iPhone app to the App Store - still version 1.0, not polished enough to launch</li>
<li>New users and new premium users now get emailed a pretty template</li>
<li>Allowing the moving of the story titles pane - <a href="http://blog.newsblur.com/2021/06/21/2011-09-30-customizing-the-reader-step-1-story-titles.html">detailed on the blog</a></li>
</ul>
<h3 id="october-2011">October 2011</h3>
<ul>
<li>iPhone App version 1.1 - adding sites from the app</li>
<li>Planning out Social - <a href="http://blog.newsblur.com/2021/06/21/2011-10-26-a-social-feed-reader.html">see the blog post</a></li>
</ul>
<h3 id="november-2011">November 2011</h3>
<ul>
<li>Mark story as unread - #1 feature request since 2010</li>
<li>Move to folder - moving folders and sites to other folders without having to drag-and-drop.</li>
<li>Sharing stories - added Pinboard and Google+</li>
<li>Site settings - change a sites feed address</li>
</ul>
<h3 id="december-2011">December 2011</h3>
<ul>
<li><a href="http://www.newsblur.com/iphone">Launched the iPhone App</a> - polished enough at version 1.2</li>
<li>MongoDB is now replicated - for higher availability</li>
<li>Lots of backend changes to account for increased load - increased speed with more load using better code</li>
</ul>
<p>You can follow updates in real-time on Twitter by following both <a href="http://twitter.com/samuelclay">@samuelclay</a> and <a href="http://twitter.com/newsblur">@newsblur</a>. Lots more to come.</p>
<p>Keep the feedback, ideas, praise, and bugs coming. I couldnt do this without the external motivation coming from dozens of your voices talking about NewsBlur.</p>
</div>
</li><li><span class="post-meta">Oct 26, 2011</span>
<h3>
<a class="post-link" href="/2011/10/26/a-social-feed-reader/">
A Social Feed Reader
</a>
</h3>
<div class="post-content e-content" itemprop="articleBody">
<p>NewsBlur was released exactly one year ago. You can read the initial reaction on Hacker News: <a href="http://news.ycombinator.com/item?id=1834305.">http://news.ycombinator.com/item?id=1834305.</a> Since then, so much has changed and all for the better. Usage is up—way, way up. Premium users are helping the site run. Load times are approaching the goal of less than 100 ms (0.10 sec) per page. In short, things couldnt be better.</p>
<p>Recently, my main competitor, Google Reader, announced plans to decommission the social features of the site and integrate them into Google+. While Google is busy refocusing on whats important to them, many users feel left behind. My goal with NewsBlur is to make a better, complete experience for reading sites. This includes social features that make reading a social experience.</p>
<p>Social is a major planned feature. Its highly prioritized right after I build two other big ticket items: mobile and search. The mobile iPhone app is wrapping up and is already at version 1.1 on the App Store, although I have not publicly launched it because it still needs a few more features (specifically, training and the river of news) to be considered feature-complete.</p>
<p>Once thats out the door, I have to build search to be able to support social. Search wont be impossible, since the UI design decisions are fairly straight-foward, and the backend is a no-brainer in terms of design. But itll take some time to get right, make fast, and get integrated into the massive database that is quickly accumulating.</p>
<p>After that, I have so many social ideas swimming in my head that Im ready to drown. Ive had these social features planned since day one. But I never built them because I needed to make a proof-of-concept first, to be sure that social features would be even feasible.</p>
<p>Also, you cant discount the immense network effort that building social features would bring. Im a solo indie developer working on this part-time. Having social features would crush my servers if used as much as I think they would. But know that I am planning some wonderful features to be released as soon as the pieces are in place. Look for the first inkling in the new year.</p>
<p>Let me know on Twitter what your ideas of a good social experience are: <a href="http://twitter.com/samuelclay">@samuelclay</a>.</p>
<p>Sam Clay</p>
</div>
</li><li><span class="post-meta">Sep 30, 2011</span>
<h3>
<a class="post-link" href="/2011/09/30/customizing-the-reader-step-1-story-titles/">
Customizing the reader, step 1: story titles
</a>
</h3>
<div class="post-content e-content" itemprop="articleBody">
<p>The iPhone app is now only a few days away from launching. But it took 3 weeks of sitting around in the App Store approval queue before getting here. During that time, I started working on the new customizations that folks have been asking for.</p>
<p>The first of these customizations is the story title pane. Most other readers allow you to position it wherever you like, and NewsBlur is now joining them in giving you that freedom.</p>
<p>You can change the positioning under Manage &gt; Preferences.</p>
<p><img src="http://cl.ly/AZwr/story_titles_pane_1.png" alt="" /></p>
<h2 id="left-positioning">Left positioning</h2>
<p><img src="http://cl.ly/AYS0/story_titles_pane_2.png" alt="" /></p>
<h2 id="top-positioning">Top positioning</h2>
<p><img src="http://cl.ly/AZ2J/story_titles_pane_3.png" alt="" /></p>
<h2 id="bottom-positioning">Bottom positioning</h2>
<p>The old tried and true, this is the default and what youre already used to.</p>
<p><img src="http://cl.ly/AZ3q/story_titles_pane_4.png" alt="" /></p>
<p>I hope you like these new positions. There are a few other niceties in this release, namely that resizing window panes is now a live operation, showing you the content stretching in realtime.</p>
<p>Theres a lot more customizations coming out soon. Follow me on GitHub to watch them happen: <a href="http://github.com/samuelclay">http://github.com/samuelclay</a>.</p>
</div>
</li><li><span class="post-meta">Aug 9, 2011</span>
<h3>
<a class="post-link" href="/2011/08/09/blar-a-new-android-app-for-newsblur/">
Blar: A new Android app for NewsBlur
</a>
</h3>
<div class="post-content e-content" itemprop="articleBody">
<p>This Summer is shaping up to be the season for mobile apps. Blar, a new Android client for NewsBlur, has just been released. Its available on the Android Market here: <a href="https://market.android.com/details?id=bitwrit.Blar">https://market.android.com/details?id=bitwrit.Blar</a>. It is created by Harris Munir, who you can contact <a href="http://harrism.com/">through his site</a>.</p>
<figure class="tmblr-full" data-orig-height="700" data-orig-width="420"><img src="https://64.media.tumblr.com/5022e90b07be6d54d1798dc7036e72fa/e520a0dc9c3b17fb-4e/s540x810/11513499eba16ad5eb2bc3af9dc6e36b853218ae.png" data-orig-height="700" data-orig-width="420" /></figure>
<p>The source code to Blar is also released under <a href="https://bitbucket.org/harris/blar/src/f9f8458a73c6/license.txt">a fair license</a> on Bitbucket: <a href="https://bitbucket.org/harris/blar/">https://bitbucket.org/harris/blar/</a>.</p>
<p>In other news, the official NewsBlur iPhone app is nearly finished and is ready to be beta tested. If you are a premium user, <a href="mailto:samuel@ofbrooklyn.com">email me your UUID and username</a> and I will send you your own free copy of the NewsBlur iPhone app. Just know that it is under heavy development and might change for the better in the near-term future.</p>
<p>Blar was created using the just released <a href="http://www.newbslur.com/api">NewsBlur API</a>. If you create your own mobile app, bookmarklet, browser extension, or even desktop client, Ill feature it either on the dashboard of every user or the Goodies section. Im also happy to assist you in making the app, and even making new API endpoints for you if you wish. Just let me know and keep the NewsBlur apps rolling.</p>
</div>
</li><li><span class="post-meta">Apr 26, 2011</span>
<h3>
<a class="post-link" href="/2011/04/26/make-your-own-feed-reader-with-newsblurs-new-api/">
Make your own feed reader with NewsBlur&#39;s new API
</a>
</h3>
<div class="post-content e-content" itemprop="articleBody">
<p><em>Please vote for this blog post on Hacker News: <a href="http://news.ycombinator.com/item?id=2485377">http://news.ycombinator.com/item?id=2485377</a>.</em></p>
<p>Its a big news day here at NewsBlur HQ. For those of you who dont know, NewsBlur HQ is a comfy seat on the A train, part of the NYC subway system, since thats where most of the code gets written anyhow.</p>
<p>Im happy to announce <a href="http://www.newsblur.com/api">NewsBlurs brand-spanking-new API</a>. Its free, it comes with tons of juicy data, and it can be used to create your own feed reader. Lets look at what this all means.</p>
<p><a href="http://www.newsblur.com">NewsBlur</a> is a visual feed reader with intelligence. This API gives you access to all the moving parts that make up the flagship newsblur.com site. This includes the original site, stories, intelligence classifiers, statistics, and a really neat River of News view that aggregates multiple feeds into a single view.</p>
<h2 id="juicy-data-from-the-api">Juicy Data from the API</h2>
<p>Lets take a quick look at a visualization of the data you can get out of the API. This is a screenshot from the Statistics dialog from a single feed:</p>
<p><img src="http://cl.ly/6FN3/statistics.png" alt="" /></p>
<p>To get this data, you would need to make two calls:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ curl http://www.newsblur.com/rss_feeds/search_feed?address=techcrunch
{
"feed_address": "http://feeds.feedburner.com/TechCrunch",
"updated": "4 minutes",
"subs": 2514,
"feed_link": "http://techcrunch.com",
"favicon_fetching": false,
"feed_title": "TechCrunch",
"favicon": "[BASE64 FAVICON GOODNESS DATA]",
"favicon_color": "90b490",
"id": 12,
"result": "ok"
}
$ curl http://www.newsblur.com/rss_feeds/statistics/12
{
"premium_subscribers": 66,
"average_stories_per_month": 490.33333333333331,
"subscriber_count": 2514,
"last_load_time": 40,
"update_interval_minutes": 4,
"last_update": "5 minutes",
"feed_fetch_history": [...],
"result": "ok",
"stories_last_month": 501,
"active_subscribers": 43,
"story_count_history": [["2010-11", 455.0], ["2010-12", 500.0],
["2011-1", 500.0], ["2011-2", 500.0],
["2011-3", 487.0], ["2011-4", 500.0]],
"next_update": "3 minutes",
"classifier_counts": {
"feed": [{
"neg": 5,
"feed_id": 12,
"pos": 40
}],
"title": [
{
"neg": 4,
"tag": "techcrunch tv",
"pos": 14
},
{
"neg": 3,
"tag": "iphone 4",
"pos": 11
}
...
],
"author": [{
"neg": 2,
"pos": 24,
"author": "MG Siegler"
},
{
"neg": 3,
"pos": 25,
"author": "Michael Arrington"
},
{
"neg": 4,
"pos": 13,
"author": "Paul Carr"
}
...
]
}
}
</code></pre></div></div>
<p>How about the intelligence classifiers for a site?</p>
<p><img src="http://f.cl.ly/items/1o3V3D2K1u1Q1P2N2B42/Screen%20shot%202011-04-26%20at%2010.09.33%20AM.png" alt="" /></p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ curl http://www.newsblur.com/rss_feeds/search_feed?address=louisgray
{
"feed_address": "http://blog.louisgray.com/feeds/posts/default?alt=rss",
"updated": "2 minutes",
"subs": 130,
"feed_link": "http://blog.louisgray.com/",
"favicon_fetching": false,
"feed_title": "louisgray.com",
"favicon": "[FAVICON GOES HERE]",
"favicon_color": "f96402",
"id": 172,
"result": "ok"
}
$ curl http://www.newsblur.com/reader/feeds_trainer?feed_id=172
[{
"stories_last_month": 24,
"feed_id": 172,
"feed_tags": [["android", 13.0], ["google", 12.0], ["apple", 12.0],
["iphone", 9.0], ["twitter", 7.0], ["facebook", 5.0],
["sxsw", 5.0], ["media", 5.0], ["spotify", 4.0],
["itunes", 4.0], ["ipad", 4.0], ["silicon valley", 4.0],
["personal", 3.0], ["apple tv", 3.0], ["quora", 3.0],
["social networking", 3.0], ["yobongo", 3.0],
["entertainment", 3.0], ["seesmic", 3.0], ["search", 3.0],
["music", 3.0], ["beluga", 3.0], ["work", 3.0],
["chat", 3.0], ["samsung", 3.0]],
"classifiers": {
"authors": {},
"feeds": {},
"titles": {},
"tags": {
"personal": 1,
"android": -1,
"facebook": -1,
"twitter": 1,
"rss": 1
}
},
"feed_authors": [["louisgray@gmail.com (Louis Gray)", 62]]
}]
</code></pre></div></div>
<p>Without going too deep into explaining various parts of the API, you can dive right into it by viewing the various API endpoints at <a href="http://www.newsblur.com/api">http://www.newsblur.com/api</a>. The API is meant to be used with an authenticated account, which can be created directly from the API. I spent a lot of time polishing the look and readability of the API, so I hope you like it, since if youre going to be developing on top of it, you will probably spend a looong time working with the 30 endpoints.</p>
<p>Id like to briefly note that I work on NewsBlur in my free time, and its entirely open-source on GitHub: <a href="http://github.com/samuelclay">http://github.com/samuelclay</a>. This API is the result of 22 months of work and thought. But its not corporate, not funded, and certainly not battle-tested. Go easy on it for the time being. And <a href="http://twitter.com/samuelclay">offer feedback on Twitter</a>.</p>
<h2 id="is-making-a-newsblur-client-cannibalism">Is making a NewsBlur client cannibalism?</h2>
<p>Woah! How does that even work? Theres no endpoint for <em>cannibalism</em>. (OK, there is, its <code class="language-plaintext highlighter-rouge">/reader/delete_feed</code>.) But what does this API mean for you?</p>
<p>Twitter has a web client, but the real iceberg is the ecosystem built on their API. Google Reader has a website, but more than a handful of enormous venture-engorged companies make their living by using the Reader API.</p>
<p>If you choose to use the NewsBlur API, you are building complements to the website. You can mix-and-mash data as you please. But more importantly, you can use NewsBlur data in ways that are not even possible on the website today.</p>
<p>Want to mix up a social layer with the subscriptions in your NewsBlur account? Just use <code class="language-plaintext highlighter-rouge">/reader/feeds</code>, <code class="language-plaintext highlighter-rouge">/reader/feed/:id</code>, and <code class="language-plaintext highlighter-rouge">/rss_feeds/statistics</code>. Got an Android device and want to make a mobile client that you can <em>charge money</em> for and make a profit? The NewsBlur API supports that.</p>
<p>What you cant do is wrap advertisements around NewsBlur data. Why? Because NewsBlur preserves the original site, so there are already ads on the page if the publisher chooses to have them. Additionally, ads degrade the NewsBlur experience. NewsBlur is not some fly-by-night air-ride-equipped service out to make a buck. NewsBlur is built to make life better, a small net-enabled reading experience at a time. Profit is great, but not at the cost of ads.</p>
<h2 id="if-you-build-it-they-will-come-and-theres-no-hard-scaling-part">If you build it, they will come, and theres no hard scaling part</h2>
<p>Youre building on an API, not a service end-to-end. If you want to handle the scaling part, use the raw NewsBlur code on GitHub: <a href="http://github.com/samuelclay">http://github.com/samuelclay</a>. NewsBlur.com will take care of the scaling and infrastructure, and you can take care of building a new layer that might make you famous/well-off/existentially-happy.</p>
<p>The API is ready for you at <a href="http://www.newsblur.com/api">http://www.newsblur.com/api</a>.</p>
<p>Questions? Feedback? Want to stay up to date when I drive cross country and take photos of the beautiful countryside between New York and California? Follow <a href="http://twitter.com/samuelclay">@samuelclay on Twitter</a>.</p>
<ul>
<li>Samuel Clay, innocent Founder of NewsBlur</li>
</ul>
</div>
</li><li><span class="post-meta">Apr 23, 2011</span>
<h3>
<a class="post-link" href="/2011/04/23/where-we-are-in-april/">
Where We Are in April
</a>
</h3>
<div class="post-content e-content" itemprop="articleBody">
<p>Hi readers, I want to take a moment to share what Im working on for the month of April:</p>
<ul>
<li>The API: This is the biggest and baddest update since the River of News and premium accounts. The API includes some lightweight rewrites of how NewsBlur communicates to the back-end server. Its going smoothly, and you can watch the progress on the less-than-aptly named branch <a href="https://github.com/samuelclay/NewsBlur/commits/dashboard_tweaks">dashboard_tweaks on GitHub</a>.</li>
</ul>
<p>The goal for the API is to have users build Android and iPhone apps on top of NewsBlur. Heck, even web apps which use NewsBlur data sound just fine. Whatever it is, I want to support it. </p>
<ul>
<li>Graphs on the Dashboard: I want to add some transparency to how the NewsBlur service is doing, both in terms of user growth and server status. I am adding a few graphs and numbers to the dashboard to show off how many premium and standard users have logged in during the past day, as well as how many feeds have been loaded, the response time for those feeds, and if there is a backlog for feed fetching.</li>
<li>Bug fixes: If you watch how often Im committing to NewsBlur on GitHub, you may notice that a handful of bugs are fixed every single day. If you see a bug and it hasnt been fixed, let me know on Twitter at <a href="http://twitter.com/samuelclay">@samuelclay</a>, or email me at <a href="mailto:samuel@ofbrooklyn.com">samuel@ofbrooklyn.com</a>.</li>
<li>Press page: Along with the API there will be a press page to showcase the nearly 40 articles and reviews written about NewsBlur. This page will also have a press kit, since one of the easiest ways to get reviewed is to have a number of materials at the ready.</li>
<li>Publisher information: If youre a publisher and you want to make sure the NewsBlur experience is tip-top for your readers, this new page will highlight how to make the Original view work best.</li>
</ul>
<p>The work is progressing and it wont be long now until everything above is ready for you to use and enjoy. There are a few other features that may make it out if I find myself working through everything else quickly enough.</p>
<p>I recently launched a feature to show an aggregation of the intelligence classifiers that users are using on their sites. Soon, this data may come back to implicitly recommend stories for you. But in order for there to be enough data to make recommendations useful, more users needs to classify stories they like and dislike.</p>
<p>The chart below shows the growth of different intelligence classifiers. The trend is up for tags, authors, feeds, and titles. Thats very good news.</p>
<p><img src="http://cl.ly/6D0o/classifiers.png" alt="" /></p>
<p>Im also happy to say that as NewsBlur continues to grow, and with a few hundred premium users, it is becoming quite a big network of readers.</p>
</div>
</li><li><span class="post-meta">Apr 1, 2011</span>
<h3>
<a class="post-link" href="/2011/04/01/explaining-intelligence/">
Explaining Intelligence
</a>
</h3>
<div class="post-content e-content" itemprop="articleBody">
<p>If youre not using intelligence classifiers, youre only getting half the value out of NewsBlur. </p>
<p>Intelligence classifiers are the phrases, tags, and authors that you like and dislike. Training your sites by choosing classifiers for each feed will automatically highlight the stories you want to read and hide the stories you dont want to see.</p>
<figure class="tmblr-full" data-orig-height="298" data-orig-width="600" data-orig-src="http://f.cl.ly/items/1J1N2e2Q0E133N3R0r3m/slider_states.png"><img data-orig-height="298" data-orig-width="600" src="http://f.cl.ly/items/1J1N2e2Q0E133N3R0r3m/slider_states.png" /></figure>
<h2 id="how-to-train-intelligence">How to train intelligence</h2>
<p>To train your feeds, you have four options:</p>
<p>1) Train everything at once using the intelligence trainer, linked to from the Dashboard:</p>
<figure class="tmblr-full" data-orig-height="95" data-orig-width="471"><img src="https://64.media.tumblr.com/cd8ffc2728c10f595c7fac06ce4f42b4/1a17e4479e9a96eb-0d/s540x810/d068b09f480a0052176b5a146e87761b13e08489.png" data-orig-height="95" data-orig-width="471" /></figure>
<p>2) Train a feed individually:</p>
<figure data-orig-height="272" data-orig-width="266"><img src="https://64.media.tumblr.com/32a74af0de7004dbfceee0632e014f35/1a17e4479e9a96eb-62/s540x810/c27823f31bb1d19c39d9a1a05fdffa8a54958ca1.png" align="middle" data-orig-height="272" data-orig-width="266" /></figure>
<p>  <figure data-orig-height="71" data-orig-width="264"><img src="https://64.media.tumblr.com/6cdfff509662b28d905a2b9d59c07b43/1a17e4479e9a96eb-f6/s540x810/878ded95af12fc01e5c699422bb64bdc04aae1e3.png" align="middle" data-orig-height="71" data-orig-width="264" /></figure></p>
<p>3) Train a story:</p>
<p><img src="http://f.cl.ly/items/3G1w0X3P2i0T2J1L2D2K/story_trainer.png" alt="" /></p>
<p>4) Choose tags and authors in the Feed view:</p>
<p><img src="http://f.cl.ly/items/2o2x0b1E3I0F2Z273i0F/story_tags.png" alt="" /></p>
<h2 id="whats-happening-under-the-hood">Whats happening under the hood</h2>
<p>To get a better picture of how stories are being classified into the red, yellow, and green states, we need to take a look at how NewsBlur is using your intelligence classifiers and applying them to stories.</p>
<p>When you select a tag, author, or phrase, NewsBlur looks for an exact match in all other stories in the same feed. Its a very simple match, and nothing mysterious is happening without you being explicit about what you want to see.</p>
<p>Green always wins. If you have 2 green classifiers and 3 red classifiers on a single story, the story will show up green, since its clear there is at least *something* you like about the story.</p>
<p>However, classifying the publisher (i.e. the feed itself) works slightly differently. If you specify that you like or dislike the feed, all stories are automatically classified according to this preference, unless there is a tag, author, or title phrase that is classified, in which case it wins over the feeds classification.</p>
<p>This offers a neat trick to hide most stories from a feed, even in the yellow intelligence state, except for the few stories that you want to watch. Simply train the feed to dislike the feed itself, but give a thumbs up to the tags/authors/phrases in the stories you want to read. This will result in all stories being either red or green, which keeps the site out of your yellow intelligence setting.</p>
<h2 id="whats-in-store-for-the-future">Whats in store for the future</h2>
<p>Right now the intelligence classifiers are pretty naive. But the impetus for building NewsBlur was to passively train your feeds, just based on your implicit preferences. Theres a lot of work to be done to make this happen, and you can follow NewsBlurs progress over on GitHub at <a href="http://github.com/samuelclay">http://github.com/samuelclay</a>.</p>
</div>
</li></ul>
<!-- Pagination links -->
<div class="pagination">
<a href="/page9" class="previous">
Previous
</a>
<span class="page_number ">
Page: 10 of 11
</span>
<a href="/page11" class="next">Next</a>
</div>
<p class="rss-subscribe">subscribe <a href="/feed.xml">via RSS</a></p></div>
</div>
</main><footer class="site-footer h-card">
<data class="u-url" href="/"></data>
<div class="wrapper">
<h2 class="footer-heading">The NewsBlur Blog</h2>
<div class="footer-col-wrapper">
<div class="footer-col footer-col-1"><ul class="social-media-list"><li><a href="https://github.com/samuelclay"><svg class="svg-icon"><use xlink:href="/assets/minima-social-icons.svg#github"></use></svg> <span class="username">samuelclay</span></a></li><li><a href="https://www.twitter.com/newsblur"><svg class="svg-icon"><use xlink:href="/assets/minima-social-icons.svg#twitter"></use></svg> <span class="username">newsblur</span></a></li><li><a href="mailto:blog@newsblur.com?subject=Hello from the NewsBlur blog"><svg class="svg-icon"><use xlink:href="/assets/minima-social-icons.svg#email"></use></svg> <span class="username">blog@newsblur.com</span></a></li></ul>
</div>
<div class="footer-col footer-col-3">
<p>NewsBlur is a personal news reader that brings people together to talk about the world.<br />
A new sound of an old instrument.<br />
</p>
</div>
</div>
</div>
</footer>
</body>
</html>