<?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"
	>

<channel>
	<title>much ado about something</title>
	<atom:link href="http://www.rictus.com/muchado/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rictus.com/muchado</link>
	<description>nj on Flex design and development</description>
	<pubDate>Tue, 22 Jul 2008 15:00:25 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
	<language>en</language>
			<item>
		<title>Snackr v0.38 TEST: Google Reader integration is here!</title>
		<link>http://www.rictus.com/muchado/2008/07/22/snackr-v038-test-google-reader-integration-is-here/</link>
		<comments>http://www.rictus.com/muchado/2008/07/22/snackr-v038-test-google-reader-integration-is-here/#comments</comments>
		<pubDate>Tue, 22 Jul 2008 15:00:25 +0000</pubDate>
		<dc:creator>nj</dc:creator>
		
		<category><![CDATA[Snackr]]></category>

		<guid isPermaLink="false">http://www.rictus.com/muchado/?p=59</guid>
		<description><![CDATA[It looks like we&#8217;ve had over 20,000 downloads of Snackr so far, which is pretty amazing to me. I suspect the number of regular users is much lower&#8211;taking a look at my server logs, it&#8217;s probably on the order of a thousand or so&#8211;but still, not bad for a little side project!
It&#8217;s been awhile since [...]]]></description>
			<content:encoded><![CDATA[<p>It looks like we&#8217;ve had over 20,000 downloads of Snackr so far, which is pretty amazing to me. I suspect the number of regular users is much lower&#8211;taking a look at my server logs, it&#8217;s probably on the order of a thousand or so&#8211;but still, not bad for a little side project!</p>
<p>It&#8217;s been awhile since the last test build, but hopefully the new one is worth the wait&#8211;thanks to <a href="http://usereccentric.org" onclick="javascript:pageTracker._trackPageview('/usereccentric.org');">Rob Adams</a>, Snackr v0.38 TEST has an early version of Google Reader integration! If you hook up Snackr to Google Reader, your feed list and read items will be synchronized both ways between the two.</p>
<p>Even if you don&#8217;t normally use Google Reader, if you use Snackr on multiple computers (e.g. home and work), it&#8217;s handy to sync all of them to Google Reader, so all your feed lists and read items stay in sync across your machines (that&#8217;s actually mostly what I use the integration for).</p>
<p>To set up the integration, just go to the Options popup and click on the Google Reader tab, check the checkbox, and enter your Google Reader username and password. You&#8217;ll get an option to choose whether you want to use Reader&#8217;s feed list or Snackr&#8217;s, or merge the two. Once you connect, if you have a lot of feeds in Reader, the ticker might stutter a bit as everything gets synchronized (we hope to improve this in future versions), but after a couple minutes it should clear up.</p>
<p>One important thing to note is that because the feed lists are synchronized, <strong>if you delete a feed in Snackr, it will be deleted in Google Reader.</strong> We&#8217;re hoping to make this optional in the future (so you can choose when deleting a feed in Snackr whether to also delete it in Reader), but for now be aware of this behavior.</p>
<p>Another new feature in this version is a set of helpful tools in the item popup, letting you email the item, post it to del.icio.us/digg, and more. I&#8217;m planning to make this extensible in the future, so you can add new tools from the Options popup.</p>
<p>As usual, because this is an early test build, there may be bugs lurking. So:</p>
<ol>
<li><a href="http://code.google.com/p/snackr/wiki/TestBuildInfo">Back up your Snackr database AND your Google Reader feed list first!<br />
</a></li>
<li><a href="http://code.google.com/p/snackr/wiki/ReleaseNotes_0_38_TEST" onclick="javascript:pageTracker._trackPageview('/code.google.com');">Read the release notes</a></li>
<li><a href="http://code.google.com/p/snackr/downloads/detail?name=Snackr-v0.38-TEST.air" onclick="javascript:pageTracker._trackPageview('/code.google.com');">Download the v0.38 build!</a></li>
</ol>
<p>And, of course, send us feedback! You can post bugs/feature requests in the <a href="http://code.google.com/p/snackr/issues/list" onclick="javascript:pageTracker._trackPageview('/code.google.com');">issues list</a>, comment here, or <a href="mailto:nj@snackr.net">send me email</a>. Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rictus.com/muchado/2008/07/22/snackr-v038-test-google-reader-integration-is-here/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Snackr v0.35 TEST released: better non-Western language support</title>
		<link>http://www.rictus.com/muchado/2008/06/13/snackr-v035-test-released-better-non-western-language-support/</link>
		<comments>http://www.rictus.com/muchado/2008/06/13/snackr-v035-test-released-better-non-western-language-support/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 07:27:10 +0000</pubDate>
		<dc:creator>nj</dc:creator>
		
		<category><![CDATA[Snackr]]></category>

		<guid isPermaLink="false">http://www.rictus.com/muchado/?p=58</guid>
		<description><![CDATA[There&#8217;s a new test build of Snackr, v0.35, up on Google Code. This version adds much better support for non-Western language feeds (in particular, feeds with encodings other than UTF-8). If you had trouble with Chinese, Japanese, Russian, Turkish, or other languages in previous versions of Snackr, please check this version out and let me [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a <a href="http://snackr.googlecode.com/files/Snackr-v0.35-TEST.air" onclick="javascript:pageTracker._trackPageview('/snackr.googlecode.com');">new test build</a> of Snackr, v0.35, up on Google Code. This version adds much better support for non-Western language feeds (in particular, feeds with encodings other than UTF-8). If you had trouble with Chinese, Japanese, Russian, Turkish, or other languages in previous versions of Snackr, please check this version out and let me know if it works for you.</p>
<p>This version also adds a much-requested feature: the ability to only show items within the last N hours (in previous versions, you could only set this to a number of days). To set this, just go to the Preferences tab of the Options popup, go to &#8220;Don&#8217;t show items older than&#8221;, type the number of hours you want, and choose &#8220;hours&#8221; instead of &#8220;days&#8221; from the dropdown.</p>
<p>Finally, this should fix a major bug I introduced in v0.34, where the ticker would permanently freeze after collapsing and re-expanding it in some situations. If you saw this bug before, please let me know if you still see it in this version.</p>
<p>As always, you can leave bug reports/feature requests in comments here, <a href="mailto:nj@snackr.net">send me email</a>, or file them in the Google Code <a href="http://code.google.com/p/snackr/issues/list" onclick="javascript:pageTracker._trackPageview('/code.google.com');">issue tracker</a>. Thanks!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rictus.com/muchado/2008/06/13/snackr-v035-test-released-better-non-western-language-support/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Snackr v0.34 TEST build released</title>
		<link>http://www.rictus.com/muchado/2008/06/09/snackr-v034-test-build-released/</link>
		<comments>http://www.rictus.com/muchado/2008/06/09/snackr-v034-test-build-released/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 06:56:15 +0000</pubDate>
		<dc:creator>nj</dc:creator>
		
		<category><![CDATA[Snackr]]></category>

		<guid isPermaLink="false">http://www.rictus.com/muchado/?p=57</guid>
		<description><![CDATA[I&#8217;m starting to post interim test builds of Snackr on Google Code for people to try out. Since I don&#8217;t have a QA staff, I&#8217;d like brave souls to try them out before I put them up as official releases. They won&#8217;t be pushed out through autoupdate, so you&#8217;ll need to download them manually.
The first [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m starting to post interim test builds of <a href="http://snackr.net/" onclick="javascript:pageTracker._trackPageview('/snackr.net');">Snackr</a> on <a href="http://snackr.googlecode.com/" onclick="javascript:pageTracker._trackPageview('/snackr.googlecode.com');">Google Code</a> for people to try out. Since I don&#8217;t have a QA staff, I&#8217;d like brave souls to try them out before I put them up as official releases. They won&#8217;t be pushed out through autoupdate, so you&#8217;ll need to download them manually.</p>
<p>The first test build, <a href="http://snackr.googlecode.com/files/Snackr-v0.34-TEST.air" onclick="javascript:pageTracker._trackPageview('/snackr.googlecode.com');">0.34 TEST</a>, has a few new features and a number of bug fixes. (Sorry, Google Reader integration isn&#8217;t in yet, but we&#8217;re working on it!) The new features are:</p>
<ul>
<li>Implemented ability to &#8220;star&#8221; items so you can read them later. Click the star icon in the item popup to star an item, then read starred items by clicking the star icon in the ticker tab.</li>
<li>Added option to configure feed fetch interval globally. This is at the bottom of the Feeds tab in the Options popup. You can also force all feeds to get refreshed here.</li>
<li>Added option to set transparency of ticker window. This is in the Preferences tab of the Options popup.</li>
</ul>
<p>The list of bugfixes is detailed in the <a href="http://code.google.com/p/snackr/wiki/ReleaseNotes_0_34_TEST" onclick="javascript:pageTracker._trackPageview('/code.google.com');">release notes</a> on the wiki at Google Code. Before installing a test build, you might want to <a href="http://code.google.com/p/snackr/wiki/TestBuildInfo" onclick="javascript:pageTracker._trackPageview('/code.google.com');">back up your feed database</a>.</p>
<p>If you find any problems, or have thoughts on the new features, please <a href="http://code.google.com/p/snackr/issues/entry" onclick="javascript:pageTracker._trackPageview('/code.google.com');">file a bug</a> and note which version you found the bug in. Thanks!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rictus.com/muchado/2008/06/09/snackr-v034-test-build-released/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Snackr is now open source!</title>
		<link>http://www.rictus.com/muchado/2008/06/05/snackr-is-now-open-source/</link>
		<comments>http://www.rictus.com/muchado/2008/06/05/snackr-is-now-open-source/#comments</comments>
		<pubDate>Thu, 05 Jun 2008 06:01:52 +0000</pubDate>
		<dc:creator>nj</dc:creator>
		
		<category><![CDATA[AIR]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Snackr]]></category>

		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://www.rictus.com/muchado/?p=56</guid>
		<description><![CDATA[The flood of Snackr downloads has finally slowed down to about 150 a day. Over 13,000 people have downloaded it so far; it looks like maybe about 500-600 people are running it daily&#8211;not bad for a little side project  
Various people have requested the source code, so I&#8217;ve decided to host it on Google [...]]]></description>
			<content:encoded><![CDATA[<p>The flood of <a href="http://snackr.net/" onclick="javascript:pageTracker._trackPageview('/snackr.net');">Snackr</a> downloads has finally slowed down to about 150 a day. Over 13,000 people have downloaded it so far; it looks like maybe about 500-600 people are running it daily&#8211;not bad for a little side project <img src='http://www.rictus.com/muchado/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Various people have requested the source code, so I&#8217;ve decided to host it on Google Code at <a href="http://snackr.googlecode.com/" onclick="javascript:pageTracker._trackPageview('/snackr.googlecode.com');">http://snackr.googlecode.com/</a>. You can file bugs/enhancement requests on the <a href="http://code.google.com/p/snackr/issues/list" onclick="javascript:pageTracker._trackPageview('/code.google.com');">Issues tab</a> there (the issues and wish list items from snackr.net have been migrated there), and check out the source anonymously using Subversion (instructions are on the <a href="http://code.google.com/p/snackr/source/checkout" onclick="javascript:pageTracker._trackPageview('/code.google.com');">Source tab</a>).</p>
<p>The source is currently in an interim state&#8211;there are a couple of half-implemented features (the ability to &#8220;star&#8221; items to read later, and the Google Reader integration that <a href="http://usereccentric.com" onclick="javascript:pageTracker._trackPageview('/usereccentric.com');">Rob</a> is working on)&#8211;but you should be able to run what&#8217;s there (the GR stuff isn&#8217;t hooked up at all to the UI yet, and the &#8220;star&#8221; functionality works but the UI is slightly broken). I&#8217;m planning to post interim test builds there once in awhile as well.</p>
<p>The source also probably isn&#8217;t the prettiest code ever :), and I haven&#8217;t finished commenting it, but I&#8217;m hoping to continue cleaning it up and refactoring over time. Feel free to check it out, and let me know if you have suggestions&#8211;or, better yet, patches you&#8217;d like to submit!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rictus.com/muchado/2008/06/05/snackr-is-now-open-source/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Snackr: Randomness goes viral</title>
		<link>http://www.rictus.com/muchado/2008/05/19/snackr-randomness-goes-viral/</link>
		<comments>http://www.rictus.com/muchado/2008/05/19/snackr-randomness-goes-viral/#comments</comments>
		<pubDate>Mon, 19 May 2008 05:26:22 +0000</pubDate>
		<dc:creator>nj</dc:creator>
		
		<category><![CDATA[Snackr]]></category>

		<guid isPermaLink="false">http://www.rictus.com/muchado/?p=55</guid>
		<description><![CDATA[The frenzy of Snackr downloading seems to be slowing down at last, but with more than 5250 downloads (and 500 mostly positive tweets on Twitter, including a plug by @scobleizer), I have to admit that I&#8217;m greatly surprised at how much interest there&#8217;s been. Frankly, I assumed Snackr would only appeal to a very small [...]]]></description>
			<content:encoded><![CDATA[<p>The frenzy of Snackr downloading seems to be slowing down at last, but with more than 5250 downloads (and 500 mostly positive tweets on Twitter, including a plug by <a href="http://twitter.com/scobleizer" onclick="javascript:pageTracker._trackPageview('/twitter.com');">@scobleizer</a>), I have to admit that I&#8217;m greatly surprised at how much interest there&#8217;s been. Frankly, I assumed Snackr would only appeal to a very small number of people; I figured most people would look at it and say &#8220;Huh? Why would I want this thing crawling across my screen?&#8221; (as, indeed, a number of people have).</p>
<p>After reading through a lot of the tweets and blog posts about Snackr, it seems to me that different people like different things about it. Some people like the design; others like the &#8220;up-to-the-minute&#8221; feel it gives (somewhat illusory, since it currently only updates each feed every 45 minutes for politeness); others are simply mesmerized by the crawl.</p>
<p>But I think the core of what a lot of people like about it is the same reason I built it originally: the randomness factor. It&#8217;s the idea that you don&#8217;t have to actually force yourself to keep up with every single thing on every feed, because you don&#8217;t have time to do that anyway; you can just sample. It&#8217;s very liberating, and it leads you to read items from feeds you don&#8217;t normally look at that often.</p>
<p>(Not everybody agrees with this idea; I&#8217;ve seen a number of tweets from people saying they didn&#8217;t think Snackr would work well if you have a lot of feeds, suggesting that they really want to read everything. In my view, Snackr doesn&#8217;t work well <em>unless</em> you have a lot of feeds; if you don&#8217;t have much to read, it would just scroll the same stuff by over and over again. But some people do seem to be interested in using it that way.)</p>
<p>Of course, the randomness could be decoupled from the ticker-style presentation; normal blog readers could easily implement a &#8220;pick random recent stuff for me&#8221; as well (in fact, I&#8217;m kind of surprised that popular readers like Google Reader and Bloglines don&#8217;t already have this). One of the early tweets about Snackr said &#8220;it&#8217;s almost what I want: a twhirl-like RSS reader&#8221; (twhirl is a popular Twitter client, also built with AIR). I didn&#8217;t quite get that at first&#8211;wouldn&#8217;t that just be like a normal blog reader? But it occurred to me that what he meant was that it would always feel like a mix of new stuff was showing up on top.</p>
<p>That idea, combined with the fact that there are definitely a lot of people turned off by the constant crawl of the ticker (and the lack of ability to control it directly), made me think that it would be worth adding a non-ticker mode to Snackr&#8211;a manually-scrollable list of items that would update itself every few minutes. It would still randomly sample feeds the same way the ticker does; it just wouldn&#8217;t distract you with constant motion.</p>
<p>This mode would probably be useful for other reasons as well. For example, I&#8217;ve started implementing a &#8220;star&#8221; button on items, so you can mark items you want to keep around to read later. I was originally thinking that when you wanted to read your starred items, Snackr would just switch to showing only starred items in the ticker. But it occurred to me that you might also just want a list of all your starred items that you could manually scroll through. Having a non-ticker mode would fulfill that need.</p>
<p>Anyway, since I have an actual day job (remember Thermo?), I probably won&#8217;t get to this immediately. (Not to mention the tons of other <a href="http://snackr.net/future.html" onclick="javascript:pageTracker._trackPageview('/snackr.net');">great suggestions</a> and <a href="http://snackr.net/issues.html" onclick="javascript:pageTracker._trackPageview('/snackr.net');">bug reports</a> I&#8217;ve been getting.) But now that so many people are using it, I have a lot of incentive to keep improving it! Of course, people might tire of it quickly&#8211;it&#8217;ll be interesting to see how many people are still running Snackr a month down the road.</p>
<p>Now, if I&#8217;d only figured out a way to get ads into it&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rictus.com/muchado/2008/05/19/snackr-randomness-goes-viral/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Snackr v0.33 released!</title>
		<link>http://www.rictus.com/muchado/2008/05/17/snackr-v033-released/</link>
		<comments>http://www.rictus.com/muchado/2008/05/17/snackr-v033-released/#comments</comments>
		<pubDate>Sat, 17 May 2008 08:38:25 +0000</pubDate>
		<dc:creator>nj</dc:creator>
		
		<category><![CDATA[Snackr]]></category>

		<guid isPermaLink="false">http://www.rictus.com/muchado/?p=54</guid>
		<description><![CDATA[This is basically just an official repost of the test build I posted earlier, with better support for non-Western character sets and multiple select in the feed list so you can delete a bunch of feeds at once; see the release notes for more detail. Snackr should automatically offer to download the update next time [...]]]></description>
			<content:encoded><![CDATA[<p>This is basically just an official repost of the test build I posted earlier, with better support for non-Western character sets and multiple select in the feed list so you can delete a bunch of feeds at once; see the <a href="http://snackr.net/releaseNotes.html" onclick="javascript:pageTracker._trackPageview('/snackr.net');">release notes</a> for more detail. Snackr should automatically offer to download the update next time you run it (or if you leave it running long enough); if that doesn&#8217;t seem to work, download it directly from <a href="http://snackr.net/" onclick="javascript:pageTracker._trackPageview('/snackr.net');">http://snackr.net/</a>. Please let me know if you have any problems!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rictus.com/muchado/2008/05/17/snackr-v033-released/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Snackr on twitter; new test version for non-Western languages</title>
		<link>http://www.rictus.com/muchado/2008/05/17/snackr-on-twitter-new-test-version-for-non-western-languages/</link>
		<comments>http://www.rictus.com/muchado/2008/05/17/snackr-on-twitter-new-test-version-for-non-western-languages/#comments</comments>
		<pubDate>Sat, 17 May 2008 05:26:38 +0000</pubDate>
		<dc:creator>nj</dc:creator>
		
		<category><![CDATA[Snackr]]></category>

		<guid isPermaLink="false">http://www.rictus.com/muchado/?p=53</guid>
		<description><![CDATA[2500 downloads and counting! The Power of the Intar-Webz[tm] never ceases to amaze me. I remember way back in the Old Days, when freeware was only to be had by floppy disk or modem; back then, it was difficult to imagine a few dozen people, let alone thousands, using some random software you&#8217;d put out. [...]]]></description>
			<content:encoded><![CDATA[<p>2500 downloads and counting! The Power of the Intar-Webz[tm] never ceases to amaze me. I remember way back in the Old Days, when freeware was only to be had by floppy disk or modem; back then, it was difficult to imagine a few dozen people, let alone thousands, using some random software you&#8217;d put out. Nowadays, between <a href="http://www.readwriteweb.com/archives/snackr_is_an_rss_addicts_dream.php" onclick="javascript:pageTracker._trackPageview('/www.readwriteweb.com');">blogs</a> and <a href="http://tweetscan.com/index.php?s=snackr&amp;u=&amp;d=" onclick="javascript:pageTracker._trackPageview('/tweetscan.com');">twitter</a>, word seems to spread like wildfire.</p>
<p>So, just for grins, I decided to start a Snackr twitter account. Follow <a href="http://twitter.com/snackr" onclick="javascript:pageTracker._trackPageview('/twitter.com');">snackr</a> on twitter to get up-to-the-minute news about test builds, new releases, and what I&#8217;m having for lunch.</p>
<p>Web 2.0-ness aside, I&#8217;ve also put up a test build of Snackr, <a href="http://snackr.net/prerelease/Snackr-0.31.air" onclick="javascript:pageTracker._trackPageview('/snackr.net');">version 0.31</a>, that should properly display non-Western characters, and fixes a couple of other bugs (including adding multi-select in the feed list, so you can delete a bunch of feeds at once). If you read this post, I&#8217;d appreciate it if you&#8217;d install it and try it out, and let me know if it seems to be working for you.</p>
<p>I&#8217;ll probably fix a few more bugs before making a new official build, which will arrive through the standard autoupdate mechanism; if you install this test build manually, you should still get the next official build when I put it up.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rictus.com/muchado/2008/05/17/snackr-on-twitter-new-test-version-for-non-western-languages/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Snackr is everywhere!</title>
		<link>http://www.rictus.com/muchado/2008/05/14/snackr-is-everywhere/</link>
		<comments>http://www.rictus.com/muchado/2008/05/14/snackr-is-everywhere/#comments</comments>
		<pubDate>Wed, 14 May 2008 06:56:26 +0000</pubDate>
		<dc:creator>nj</dc:creator>
		
		<category><![CDATA[AIR]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Snackr]]></category>

		<category><![CDATA[design]]></category>

		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://www.rictus.com/muchado/?p=52</guid>
		<description><![CDATA[Wow&#8211;nearly 600 people have downloaded Snackr in the last two days! Thanks to everyone who&#8217;s sent mail or posted comments; it&#8217;s great to know people like it. The most common requests so far seem to be:

Allow multiple selection in the feed list, so you can delete a bunch of feeds at once. It seems like [...]]]></description>
			<content:encoded><![CDATA[<p>Wow&#8211;nearly 600 people have downloaded <a href="http://snackr.net" onclick="javascript:pageTracker._trackPageview('/snackr.net');">Snackr</a> in the last two days! Thanks to everyone who&#8217;s sent mail or posted comments; it&#8217;s great to know people like it. The most common requests so far seem to be:</p>
<ul>
<li>Allow multiple selection in the feed list, so you can delete a bunch of feeds at once. It seems like a lot of people imported large feed lists from their existing blog readers, then realized they didn&#8217;t want to actually see all of those feeds in Snackr.</li>
<li>Support Asian language characters. Currently, Snackr uses Myriad Web, and the font is embedded in order to make fade animations work properly for text, but that font only has Latin characters. I&#8217;ll either need to add an option to use the system font (and turn off fade animations), or maybe build a version that embeds a font with Asian characters in it (though that would probably lead to a huge installer).</li>
<li>Ability to keep a list of items to read later (e.g. by starring them). I&#8217;ve been wanting this for awhile but haven&#8217;t gotten around to implementing it yet&#8211;now I have some incentive!</li>
<li>Posting the source. I do really want to do this, but I need to set aside some time to make the code slightly less embarrassing <img src='http://www.rictus.com/muchado/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
<p>I also noticed today as I was using it on my machine that for some short posts, the popup seems to &#8220;bobble around&#8221; a bit and end up at a very thin size (it&#8217;s different from the jittery animation on Vista/Linux; this is happening even on OS X). It&#8217;s intermittent, but it reproduces pretty regularly on certain kinds of posts. Has anybody else seen this? I&#8217;ll have to look into it&#8211;it must be a recent injection, as I never noticed it before.</p>
<p>I&#8217;m planning to make regular updates to Snackr, though things are pretty busy; I&#8217;m hoping I can carve out enough time to release a new version in a couple of weeks. Snackr should automatically notify you when an update is available.</p>
<p>Keep those cards and letters coming!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rictus.com/muchado/2008/05/14/snackr-is-everywhere/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Snackr, an RSS ticker built using AIR and Flex</title>
		<link>http://www.rictus.com/muchado/2008/05/12/snackr-an-rss-ticker-built-using-air-and-flex/</link>
		<comments>http://www.rictus.com/muchado/2008/05/12/snackr-an-rss-ticker-built-using-air-and-flex/#comments</comments>
		<pubDate>Mon, 12 May 2008 08:00:28 +0000</pubDate>
		<dc:creator>nj</dc:creator>
		
		<category><![CDATA[AIR]]></category>

		<category><![CDATA[Flex]]></category>

		<category><![CDATA[Snackr]]></category>

		<category><![CDATA[design]]></category>

		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://www.rictus.com/muchado/?p=45</guid>
		<description><![CDATA[I realized a few months ago that, unlike pretty much everyone else I know, I don&#8217;t regularly use an RSS reader. Not that I haven&#8217;t tried—I used FeedDemon early on, and more recently tried out Google Reader—but never managed to form the habit of checking them regularly. Both of them are fine apps; the problem [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.rictus.com/muchado/wp-content/uploads/2008/05/snackr-icon-flat-64.png" ><img class="alignleft alignnone size-medium wp-image-49" style="float: left; padding-right: 10px" title="snackr-icon-flat-64" src="http://www.rictus.com/muchado/wp-content/uploads/2008/05/snackr-icon-flat-64.png" alt="" width="64" height="64" /></a>I realized a few months ago that, unlike pretty much everyone else I know, I don&#8217;t regularly use an RSS reader. Not that I haven&#8217;t tried—I used <a href="http://www.feeddemon.com/" onclick="javascript:pageTracker._trackPageview('/www.feeddemon.com');">FeedDemon</a> early on, and more recently tried out <a href="http://www.google.com/reader/" onclick="javascript:pageTracker._trackPageview('/www.google.com');">Google Reader</a>—but never managed to form the habit of checking them regularly. Both of them are fine apps; the problem was with me. Every time I sat down and saw that I had a gazillion unread items in my hundreds of feeds, I didn&#8217;t know where to start. Eventually I just gave up trying to keep up.</p>
<p>Around the same time I came to this realization, <a href="http://www.adobe.com/products/air/" onclick="javascript:pageTracker._trackPageview('/www.adobe.com');">Adobe AIR 1.0</a> was publicly released. I wanted to try to write an AIR app just for fun, and it occurred to me that I might be able to make something that would solve my RSS problem.</p>
<p>The result is <a href="http://snackr.net/" onclick="javascript:pageTracker._trackPageview('/snackr.net');">Snackr</a>, a ticker-like widget that lives on the bottom (or side) of your screen and scrolls random items from your RSS feeds. (It&#8217;s called &#8220;Snackr&#8221; because it lets you nibble on your feeds. Guffaw.) Here&#8217;s what it looks like on my desktop:</p>
<p style="text-align: left;"><a href="http://www.rictus.com/muchado/wp-content/uploads/2008/05/screenshot-bottom-full.jpg" ><img class="alignnone size-full wp-image-51" title="screenshot-bottom-full" src="http://www.rictus.com/muchado/wp-content/uploads/2008/05/screenshot-bottom-full.jpg" alt="" width="500" height="312" /></a></p>
<p style="text-align: left;">I&#8217;m actually finding Snackr really useful—it helps me keep up with blogs I want to keep up with, and also gives me a great smattering of items from sources I wouldn&#8217;t normally read regularly. Please try it out and let me know if you like it! (Of course, it&#8217;s still an alpha, so please expect bugs; there&#8217;s a list of <a href="http://snackr.net/issues.html" onclick="javascript:pageTracker._trackPageview('/snackr.net');">known issues</a> on the Snackr website.)</p>
<p style="text-align: left;">Snackr has also been really fun to write, and along the way I figured out some tips and tricks for doing various things with Flex and AIR. Some notes on that after the jump.</p>
<p style="text-align: left;"><span id="more-45"></span></p>
<p style="text-align: left;">Snackr is written in Flex 3 (and, of course, AIR). I hadn&#8217;t done any AIR development when I started writing it, and it&#8217;s a testament to how well AIR is designed that I got the basic thing up and running in a weekend. Of course, most of that was due to my familiarity with Flex, but the fact that AIR makes it trivially easy to package up a normal Flex app as a desktop app is easy to take for granted. With almost no work, I went from being a Flex developer to a cross-platform desktop app developer.</p>
<p style="text-align: left;">Once I got the basic ticker UI up and running, I started exercising more AIR-specific functionality. Initially, I kept all the feed items in memory, but decided to try out AIR&#8217;s local database capability to improve Snackr&#8217;s memory footprint. Like a lot of other things in AIR, it was dead easy to set this up; I&#8217;m not a database/SQL guru, but it was very straightforward to build out the database code. (I used synchronous mode for simplicity; it would have been much more complex had I tried to do it in asynchronous mode—as with all other Flash/Flex/AJAX programming, asynchronicity is one of the toughest things to manage cleanly, especially if you have a chain of things you want to happen in sequence.)</p>
<p style="text-align: left;">The next thing I did was build the animation for the popup windows. I ran into a couple of little snags here. I started by trying to just animate the Flex Window component using standard Flex effects, but that didn&#8217;t seem to work, probably because setting (say) the x and y of the window component doesn&#8217;t actually set the position of the underlying AIR NativeWindow. So, to get it to work correctly, I directly animated the &#8220;bounds&#8221; property of the underlying AIR NativeWindow class. In order to keep both the position and size of the bounds in sync as I animated, I wrote my own AnimateBounds effect—this was easy to achieve by subclassing TweenEffect and just converting the bounds property of NativeWindow to an array of numbers as TweenEffect expects.</p>
<p style="text-align: left;">I also had to be careful when drawing the &#8220;bubble&#8221; background in my popup window&#8217;s updateDisplayList() function. Before I added the animation, the background drew fine, but I found that during the animation it didn&#8217;t seem to redraw at the right size at each step. I discovered that I had to ignore the standard unscaledWidth/unscaledHeight being passed into updateDisplayList(), and (once again) just look directly at the AIR NativeWindow bounds to get the width and height to use. I&#8217;m guessing that during fast animations, the bounds of the Flex Window component don&#8217;t update synchronously with the NativeWindow bounds.</p>
<p style="text-align: left;">Around the time I was finishing up the animation stuff, we released the alpha version of AIR for Linux. Just for grins, I installed Ubuntu in VMWare on my Mac and tried it out—and amazingly enough, it worked! Well, with one snag. As Linux folks know, window transparency is something that&#8217;s only recently been supported in Linux, and not all window managers have it. I couldn&#8217;t figure out how to get a transparency-supporting window manager set up, so I just punted; the popups look okay without it (though they look like rectangles rather than bubbles).</p>
<p style="text-align: left;">There was a bigger issue, though. I noticed that unlike on Mac OS X and Windows XP, the popup animation was really jittery on Linux. Later on, when I tried Snackr out on Windows Vista, I noticed some jitter there too (although it&#8217;s not nearly as bad as on Linux). I haven&#8217;t yet figured out exactly what causes this—I filed a bug with the AIR team—but I&#8217;m guessing that on Vista and Linux, even when I set both the position and size of the popup at the same time, the OS either (1) processes them separately, so they get out of sync, or (2) processes the move immediately by directly blitting the window at its current size before I get a chance to redraw it on the resize event. (This mostly comes into play because I&#8217;m actually animating the popups upwards, so both the position and size have to change at the same time. It wouldn&#8217;t be an issue if you&#8217;re just growing a window larger or smaller but keeping it at the same position.)</p>
<p style="text-align: left;">The final issue, and probably the biggest one, is that there&#8217;s no way currently to have Snackr act like a true docking window—it can&#8217;t tell the OS to reduce the available space of the desktop, so if you maximize a window, the window will overlap Snackr. There isn&#8217;t currently an API for this in AIR, so there&#8217;s no real way to work around this for now. To compensate, I&#8217;ve added a bunch of convenient ways to get Snackr out of your way; you can toss it around the screen to different sides, put it on a second monitor, or collapse it temporarily.</p>
<p style="text-align: left;">Other than that, all the functionality I&#8217;ve put in Snackr has been really easy to implement. AIR makes it really simple to support multiple monitors, for example. And it&#8217;s also pretty easy to implement auto-update—you have to set up whatever logic you want to figure out when a new version is available (e.g. by downloading an XML file from a website), but once you retrieve a newer installer it&#8217;s a single function call to run the updater to install it.</p>
<p style="text-align: left;">I&#8217;m planning to put up the source somewhere eventually, but I want to clean it up a bit first (yes, my coding habits are sloppier at home than at work). I definitely plan to continue to add features to it—since I&#8217;m using it myself, I have a lot of incentive to keep it up. Also, my colleague <a href="http://usereccentric.com" onclick="javascript:pageTracker._trackPageview('/usereccentric.com');">Rob Adams</a> (who was the first person to use Snackr besides myself, and has given me lots of great feedback) is planning to add some features to it as well—notably, making it synchronize the feed list and read items with Google Reader, so you can use it as an adjunct to your normal blog reading habits instead of a replacement. (Please feel free to bug him if you want this feature.)</p>
<p style="text-align: left;">Enjoy Snackr—I&#8217;d love to get your feedback!</p>
<p style="text-align: left;">
]]></content:encoded>
			<wfw:commentRss>http://www.rictus.com/muchado/2008/05/12/snackr-an-rss-ticker-built-using-air-and-flex/feed/</wfw:commentRss>
		</item>
		<item>
		<title>BEST. UI. EVAR.</title>
		<link>http://www.rictus.com/muchado/2008/05/08/best-ui-evar/</link>
		<comments>http://www.rictus.com/muchado/2008/05/08/best-ui-evar/#comments</comments>
		<pubDate>Thu, 08 May 2008 00:42:47 +0000</pubDate>
		<dc:creator>nj</dc:creator>
		
		<category><![CDATA[design]]></category>

		<guid isPermaLink="false">http://www.rictus.com/muchado/?p=40</guid>
		<description><![CDATA[From a web application I recently used that shall remain nameless:

]]></description>
			<content:encoded><![CDATA[<p>From a web application I recently used that shall remain nameless:</p>
<p><a href="http://www.rictus.com/muchado/wp-content/uploads/2008/05/best-checkbox-ever1.jpg" ><img class="alignnone size-medium wp-image-42" title="best-checkbox-ever1" src="http://www.rictus.com/muchado/wp-content/uploads/2008/05/best-checkbox-ever1.jpg" alt="" width="193" height="29" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rictus.com/muchado/2008/05/08/best-ui-evar/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
