<?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>Denby</title>
	<atom:link href="http://www.hellodenby.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hellodenby.com</link>
	<description>A delightful web-based Twitter client. Discerning and distinctive.</description>
	<lastBuildDate>Mon, 21 Feb 2011 13:26:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<atom:link rel='hub' href='http://www.hellodenby.com/?pushpress=hub'/>
		<item>
		<title>URL shortening library split off, now more spiffy</title>
		<link>http://www.hellodenby.com/2011/02/url-shortening-library-split-off-now-more-spiffy/</link>
		<comments>http://www.hellodenby.com/2011/02/url-shortening-library-split-off-now-more-spiffy/#comments</comments>
		<pubDate>Sun, 06 Feb 2011 01:46:08 +0000</pubDate>
		<dc:creator>Jeff Waugh</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.hellodenby.com/?p=135</guid>
		<description><![CDATA[Tearing code out of a project is immensely satisfying. Yesterday, I tossed out Denby&#8217;s ugly URL shortening mess in order to create a (much nicer!) library version: node-shorturl. The screenshot below illustrates how Denby uses it in the most simple &#8230; <a href="http://www.hellodenby.com/2011/02/url-shortening-library-split-off-now-more-spiffy/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Tearing code out of a project is immensely satisfying. Yesterday, I tossed out Denby&#8217;s ugly URL shortening mess in order to create a (much nicer!) library version: <a title="Simple URL shortener client library for node.js" href="https://github.com/jdub/node-shorturl">node-shorturl</a>.</p>
<p>The screenshot below illustrates how Denby uses it in the most simple case &#8212; passing a link without choosing a particular service &#8212; and a more complex case, using bit.ly with login/key authentication.</p>
<p><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-136" title="Denby, now using node-shorturl" src="http://www.hellodenby.com/wp-content/uploads/2011/02/denby-shorturl-bitly.png" alt="" width="634" height="520" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hellodenby.com/2011/02/url-shortening-library-split-off-now-more-spiffy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What do you need to use Denby full time?</title>
		<link>http://www.hellodenby.com/2011/01/what-do-you-need-to-use-denby-full-time/</link>
		<comments>http://www.hellodenby.com/2011/01/what-do-you-need-to-use-denby-full-time/#comments</comments>
		<pubDate>Thu, 13 Jan 2011 15:00:38 +0000</pubDate>
		<dc:creator>Jeff Waugh</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.hellodenby.com/?p=126</guid>
		<description><![CDATA[As Denby is adopted beyond our cadre of keenly interested alpha testers, users are less likely to be forgiving of faults or crucial feature absence, so I&#8217;d like to see how much of the low-hanging fruit I can pick off before &#8230; <a href="http://www.hellodenby.com/2011/01/what-do-you-need-to-use-denby-full-time/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/x-ray_delta_one/3928200642/"><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-127" title="1947 ... ConVairCar by x-ray delta one" src="http://www.hellodenby.com/wp-content/uploads/2011/01/3928200642_aedd0d323c_o.jpg" alt="" width="750" height="446" /></a></p>
<p>As Denby is adopted beyond our cadre of keenly interested alpha testers, users are less likely to be forgiving of faults or crucial feature absence, so I&#8217;d like to see how much of the low-hanging fruit I can pick off before our next big leap in usage. (Which, by the way, is likely to be this weekend, soon after the new site streams based server goes live!)</p>
<p>To do that, I need your help.</p>
<p>A deceptively simple question for current and aspiring alpha testers: What do you need to use Denby full-time? Which absent feature has you regularly resorting to the Twitter website? What&#8217;s <em>missing?</em></p>
<p>I&#8217;ll start!</p>
<p>The two main things for which I regularly visit the website are:</p>
<ol>
<li>Viewing user profile information, especially of recent followers, retweeters or favor&#8211;*ahem*&#8230; favoriters.</li>
<li>Twitter history backfill, most obviously and inconveniently absent when I start Denby.</li>
</ol>
<p><span style="font-family: Georgia, 'Bitstream Charter', serif; line-height: 24px;">I&#8217;ll be working on both of these today&#8230; and I&#8217;m sure I&#8217;ll be pleasantly distracted by your great suggestions too. <img width='16' height='16' src='http://www.hellodenby.com/wp-content/plugins/tango-smilies/tango/face-smile.png' alt=':-)' class='wp-smiley' /> </span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hellodenby.com/2011/01/what-do-you-need-to-use-denby-full-time/feed/</wfw:commentRss>
		<slash:comments>43</slash:comments>
		</item>
		<item>
		<title>The tidied-up twitbox, animated</title>
		<link>http://www.hellodenby.com/2011/01/tidied-up-twitbox-animated/</link>
		<comments>http://www.hellodenby.com/2011/01/tidied-up-twitbox-animated/#comments</comments>
		<pubDate>Thu, 13 Jan 2011 04:53:49 +0000</pubDate>
		<dc:creator>Jeff Waugh</dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.hellodenby.com/?p=120</guid>
		<description><![CDATA[And for amusement value, here&#8217;s an early twitbox prototype:]]></description>
			<content:encoded><![CDATA[<p><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-121" title="Twitbox Animation" src="http://www.hellodenby.com/wp-content/uploads/2011/01/denby-20110113-twitbox-anim.gif" alt="" width="500" height="200" /></p>
<p>And for amusement value, here&#8217;s an early twitbox prototype:</p>
<p><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-28" title="Input widget" src="http://www.hellodenby.com/wp-content/uploads/2010/08/denby-20100828-input-mockup.png" alt="" width="441" height="180" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hellodenby.com/2011/01/tidied-up-twitbox-animated/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Denby command line&#8230; what-the-what?!</title>
		<link>http://www.hellodenby.com/2011/01/denby-command-line/</link>
		<comments>http://www.hellodenby.com/2011/01/denby-command-line/#comments</comments>
		<pubDate>Tue, 11 Jan 2011 18:57:23 +0000</pubDate>
		<dc:creator>Jeff Waugh</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.hellodenby.com/?p=115</guid>
		<description><![CDATA[Yes, Denby has a command line. No, you don&#8217;t have to use it. But it&#8217;s incredibly quick and convenient for development&#8230; which is still ultimately a win for users who don&#8217;t (want or need to) care about it! The client &#8230; <a href="http://www.hellodenby.com/2011/01/denby-command-line/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Yes, Denby has a command line. No, you don&#8217;t have to use it. But it&#8217;s incredibly quick and convenient for development&#8230; which is still ultimately a win for users who don&#8217;t (want or need to) care about it!</p>
<p>The client side of Denby is split into two pieces: the core communications module, which provides a programming interface to the Denby server; and the user interface module, which howitzers the awesome straight at your face.</p>
<p>As you can tell from previous posts, my focus right now is a multi-column, &#8220;death star console&#8221; user interface, but I do plan for more (single-column, mobile, etc). So in a way, the command line in your browser console is just another user interface profile. <img width='16' height='16' src='http://www.hellodenby.com/wp-content/plugins/tango-smilies/tango/face-smile.png' alt=':-)' class='wp-smiley' /> </p>
<p>Now for some technical details.</p>
<p>A set of functions on the server side is exposed to the client via <a href="http://en.wikipedia.org/wiki/JSON-RPC">JSON-RPC</a> over the same <a href="http://socket.io/">Socket.IO</a> pipe from which all your streaming tweets arrive. In the optimal case, this is a websocket or flashsocket, so it&#8217;s designed for bidirectional chatter.</p>
<p>When you <code>Denby.send()</code>, a JSON-RPC packet with a unique ID is sent to the server, which does whatever you&#8217;ve requested and sends back a response with the same ID attached. That way, the client can keep track of requests and responses.</p>
<p>I have tried to make this as seamless as possible, though I&#8217;m still cheating a bit. Surely it would be nicer to call, say, <code>Denby.updateStatus()</code> versus <code>Denby.send('updateStatus')</code>? I will eventually get there, but am also striving to get the balance right between getting out of alpha mode, surfacing features and gold-plating the infrastructure. <img width='16' height='16' src='http://www.hellodenby.com/wp-content/plugins/tango-smilies/tango/face-wink.png' alt=';-)' class='wp-smiley' /> </p>
<p>The example below shows one of the simplest functions, <code>updateStatus(text, [params])</code>, called on the server by <code>Denby.send(method, [arg1], [arg2], [argN], callback)</code>. I made it accept an arbitrary number of arguments before the callback just to make things a bit easier. The callback is of course a local function, remembered by the JSON-RPC client and called when the server responds.</p>
<p style="text-align: center;"><a href="http://www.hellodenby.com/wp-content/uploads/2011/01/denby-20110112-console.png"><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-medium wp-image-116" title="Denby command line" src="http://www.hellodenby.com/wp-content/uploads/2011/01/denby-20110112-console-640x268.png" alt="May contain traces of Fixedsys." width="640" height="268" /></a></p>
<p>For the curious, here&#8217;s what it looks like in JSON-RPC. First, the client:</p>
<pre>{
  "jsonrpc": "2.0",
  "method": "updateStatus",
  "id": 1294764619011,
  "params": [
    "Showing off the @hellodenby \"command line\" for a screenshot. #denby"
  ]
}</pre>
<p>Then hopefully pretty soon after, the server:</p>
<pre>{
  "jsonrpc": "2.0"
  "id": 1294764619011,
  "result": {
    "created_at": "Tue Jan 11 17:08:34 +0000 2011",
    "id": 24875324479115264,
    "id_str": "24875324479115264",
    "source": "&lt;a href=\"http://www.hellodenby.com/\" rel=\"nofollow\"&gt;Denby DEVEL&lt;/a&gt;"
    "text": "Showing off the @hellodenby \"command line\" for a screenshot. #denby",
    "user": { ... }
  }
}</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.hellodenby.com/2011/01/denby-command-line/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Showing off the tweetbox (screencast)</title>
		<link>http://www.hellodenby.com/2011/01/showing-off-the-tweetbox/</link>
		<comments>http://www.hellodenby.com/2011/01/showing-off-the-tweetbox/#comments</comments>
		<pubDate>Sun, 02 Jan 2011 19:09:20 +0000</pubDate>
		<dc:creator>Jeff Waugh</dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.hellodenby.com/?p=110</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[
]]></content:encoded>
			<wfw:commentRss>http://www.hellodenby.com/2011/01/showing-off-the-tweetbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.hellodenby.com/wp-content/uploads/2011/01/tweetbox.flv" length="27389828" type="video/x-flv" />
		</item>
		<item>
		<title>Silly dashstats feature (with working screencast!)</title>
		<link>http://www.hellodenby.com/2011/01/silly-dashstats-feature/</link>
		<comments>http://www.hellodenby.com/2011/01/silly-dashstats-feature/#comments</comments>
		<pubDate>Sun, 02 Jan 2011 01:46:12 +0000</pubDate>
		<dc:creator>Jeff Waugh</dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.hellodenby.com/?p=93</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[
]]></content:encoded>
			<wfw:commentRss>http://www.hellodenby.com/2011/01/silly-dashstats-feature/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.hellodenby.com/wp-content/uploads/2011/01/dashstats.flv" length="4788995" type="video/x-flv" />
<enclosure url="http://www.hellodenby.com/wp-content/uploads/2011/01/dashstats.flv" length="4788995" type="video/x-flv" />
		</item>
		<item>
		<title>Post-hiatus update screencast</title>
		<link>http://www.hellodenby.com/2011/01/post-hiatus-update-screencast/</link>
		<comments>http://www.hellodenby.com/2011/01/post-hiatus-update-screencast/#comments</comments>
		<pubDate>Sat, 01 Jan 2011 14:32:46 +0000</pubDate>
		<dc:creator>Jeff Waugh</dc:creator>
				<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.hellodenby.com/?p=70</guid>
		<description><![CDATA[Icky, sticky, yucky Flash because I having trouble getting WebM to work here. Download the WebM version of the screencast if you&#8217;d prefer not to use Flash. (Crap, looks like both the Flash and WebM versions cut out after about 7 &#8230; <a href="http://www.hellodenby.com/2011/01/post-hiatus-update-screencast/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Icky, sticky, yucky Flash because I having trouble getting WebM to work here. Download the <a href="http://www.hellodenby.com/wp-content/uploads/2011/01/hiatus.webm">WebM version of the screencast</a> if you&#8217;d prefer not to use Flash.</p>
<p>(Crap, looks like both the Flash and WebM versions cut out after about 7 minutes, right in the middle of things&#8230; sorry about that. I will have to improve my screencast workflow again!)</p>

]]></content:encoded>
			<wfw:commentRss>http://www.hellodenby.com/2011/01/post-hiatus-update-screencast/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
<enclosure url="http://www.hellodenby.com/wp-content/uploads/2011/01/hiatus.flv" length="14387413" type="video/x-flv" />
<enclosure url="http://www.hellodenby.com/wp-content/uploads/2011/01/hiatus.webm" length="6569389" type="video/webm" />
		</item>
		<item>
		<title>Check out my live, bleeding-edge, read-only demo!</title>
		<link>http://www.hellodenby.com/2010/08/live-bleeding-edge-denby-twitter-demo/</link>
		<comments>http://www.hellodenby.com/2010/08/live-bleeding-edge-denby-twitter-demo/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 06:01:18 +0000</pubDate>
		<dc:creator>Jeff Waugh</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.hellodenby.com/?p=1</guid>
		<description><![CDATA[While I&#8217;m doing a bunch of plumbing deep down in Denby&#8217;s infrastructural guts &#8212; much of it involving contributions to the Node libraries we rely on &#8212; you should check out the live, bleeding-edge, read-only demo: https://app.hellodenby.com/ ← early prototype &#8230; <a href="http://www.hellodenby.com/2010/08/live-bleeding-edge-denby-twitter-demo/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>While I&#8217;m doing a bunch of plumbing deep down in Denby&#8217;s infrastructural guts &#8212; much of it involving contributions to the <a href="http://nodejs.org/">Node</a> libraries we rely on &#8212; you should check out the live, bleeding-edge, read-only demo:</p>
<p style="text-align: center;"><a href="https://app.hellodenby.com/"><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-64" title="Denby for Twitter" src="http://www.hellodenby.com/wp-content/uploads/2010/08/vault-boy-splash-320.png" alt="" width="320" height="181" /></a></p>
<p style="text-align: center;"><a title="Denby for Twitter" href="https://app.hellodenby.com/">https://app.hellodenby.com/</a> ← early prototype user interface action here!</p>
<p>Some notes for intrepid testers:</p>
<ul>
<li>This is a live, unmolested stream of the @<a href="http://twitter.com/hellodenby">hellodenby</a> Twitter account, including a search feed for a few things Denby likes. <img width='16' height='16' src='http://www.hellodenby.com/wp-content/plugins/tango-smilies/tango/face-smile.png' alt=':-)' class='wp-smiley' /> </li>
<li>Denby isn&#8217;t following too many people at this point, so you&#8217;ll probably only see <a href="http://twitter.com/jdub">my tweets</a> in the &#8220;Home&#8221; column.</li>
<li>If you mention or direct message @hellodenby, your tweet will appear in the &#8220;Me&#8221; column, and you&#8217;ll hear a notification sound &#8212; <code>&lt;audio&gt;</code> for the win!</li>
<li>The &#8220;Debug&#8221; column shows the JSON blobs coming in from the Denby server. These are slightly trimmed from what Twitter developers will be used to seeing &#8212; I dump a bunch of the unnecessary gunk to avoid wasting bandwidth.</li>
<li>Although multiple clients can connect to the Denby demo, only a single stream is maintained to the Twitter servers.</li>
<li>Watch the &#8220;Debug&#8221; column for HELLO and GOODBYE events, letting you know when other viewers are checking out the demo&#8230; and how many!</li>
<li>Minor UX features to enjoy: You can mark individual tweets as read (click on them), you can mark an entire column as read (click on the check mark), and you can clear read tweets (click on the trash can).</li>
<li>All of the links in the Denby interface will open in a new browser window or tab, so don&#8217;t be concerned about the app disappearing when you find something cool to read. <img width='16' height='16' src='http://www.hellodenby.com/wp-content/plugins/tango-smilies/tango/face-smile.png' alt=':-)' class='wp-smiley' /> </li>
</ul>
<p>Your thoughts and suggestions are always welcome &#8212; please add a comment to this post. Enjoy!</p>
<p><strong>Update:</strong> What&#8217;s with <a href="http://fallout.wikia.com/wiki/Vault_Boy">Vault Boy</a>? He&#8217;s our chipper, unflappable development mascot. At some point, we&#8217;ll need a real logo. <img width='16' height='16' src='http://www.hellodenby.com/wp-content/plugins/tango-smilies/tango/face-wink.png' alt=';-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.hellodenby.com/2010/08/live-bleeding-edge-denby-twitter-demo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Korean and Japanese tweets in Denby</title>
		<link>http://www.hellodenby.com/2010/08/korean-and-japanese-tweets-in-denby/</link>
		<comments>http://www.hellodenby.com/2010/08/korean-and-japanese-tweets-in-denby/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 06:04:00 +0000</pubDate>
		<dc:creator>Jeff Waugh</dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.hellodenby.com/?p=46</guid>
		<description><![CDATA[Korean and Japanese popping up in the search column, beautifully rendered.]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.hellodenby.com/2010/08/korean-and-japanese-tweets-in-denby/"><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-52" title="Korean and Japanese tweets in Denby" src="http://www.hellodenby.com/wp-content/uploads/2010/08/denby-20100828-web-i18n2.png" alt="" width="640" height="484" /></a></p>
<p>Korean and Japanese popping up in the search column, beautifully rendered. <img width='16' height='16' src='http://www.hellodenby.com/wp-content/plugins/tango-smilies/tango/face-smile.png' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.hellodenby.com/2010/08/korean-and-japanese-tweets-in-denby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Early work on the input widget</title>
		<link>http://www.hellodenby.com/2010/08/early-work-on-the-input-widget/</link>
		<comments>http://www.hellodenby.com/2010/08/early-work-on-the-input-widget/#comments</comments>
		<pubDate>Fri, 27 Aug 2010 15:16:57 +0000</pubDate>
		<dc:creator>Jeff Waugh</dc:creator>
				<category><![CDATA[Asides]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.hellodenby.com/?p=27</guid>
		<description><![CDATA[The surrounding border is actually a &#60;fieldset&#62;, so the whole widget looks ripe for text entry (and accepts clicks to focus the &#60;textarea&#62;)&#8230; the only remaining hint that this is not true? The resize grabby at the bottom right of the &#8230; <a href="http://www.hellodenby.com/2010/08/early-work-on-the-input-widget/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.hellodenby.com/2010/08/early-work-on-the-input-widget/"><img style=' display: block; margin-right: auto; margin-left: auto;'  class="size-full wp-image-28 aligncenter" title="Input widget" src="http://www.hellodenby.com/wp-content/uploads/2010/08/denby-20100828-input-mockup.png" alt="" width="441" height="180" /></a></p>
<p>The surrounding border is actually a <code>&lt;fieldset&gt;</code>, so the whole widget looks ripe for text entry (and accepts clicks to focus the <code>&lt;textarea&gt;</code>)&#8230; the only remaining hint that this is not true? The resize grabby at the bottom right of the <code>&lt;textarea&gt;</code>. Which <em>will</em> go away. <img width='16' height='16' src='http://www.hellodenby.com/wp-content/plugins/tango-smilies/tango/face-smile.png' alt=':-)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.hellodenby.com/2010/08/early-work-on-the-input-widget/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

