Congratulations!

[Valid RSS] This is a valid RSS feed.

Recommendations

This feed is valid, but interoperability with the widest range of feed readers could be improved by implementing the following recommendations.

Source: http://blog.chrissaari.com/feed/

  1. <?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
  2. xmlns:content="http://purl.org/rss/1.0/modules/content/"
  3. xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  4. xmlns:dc="http://purl.org/dc/elements/1.1/"
  5. xmlns:atom="http://www.w3.org/2005/Atom"
  6. xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
  7. xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
  8. >
  9.  
  10. <channel>
  11. <title>Saari blog</title>
  12. <atom:link href="http://blog.chrissaari.com/feed/" rel="self" type="application/rss+xml" />
  13. <link>http://blog.chrissaari.com</link>
  14. <description>I drank what?</description>
  15. <lastBuildDate>Fri, 05 Apr 2013 03:48:24 +0000</lastBuildDate>
  16. <language>en-US</language>
  17. <sy:updatePeriod>
  18. hourly </sy:updatePeriod>
  19. <sy:updateFrequency>
  20. 1 </sy:updateFrequency>
  21. <generator>https://wordpress.org/?v=6.5.2</generator>
  22. <item>
  23. <title>More on proactive computing</title>
  24. <link>http://blog.chrissaari.com/2013/04/04/more-on-proactive-computing/</link>
  25. <comments>http://blog.chrissaari.com/2013/04/04/more-on-proactive-computing/#respond</comments>
  26. <dc:creator><![CDATA[saari]]></dc:creator>
  27. <pubDate>Fri, 05 Apr 2013 03:47:22 +0000</pubDate>
  28. <category><![CDATA[Uncategorized]]></category>
  29. <guid isPermaLink="false">http://blog.chrissaari.com/?p=118</guid>
  30.  
  31. <description><![CDATA[Thad Starner was working on proactive computing a long time ago, being able to build this kind of interaction is why I moved to Android http://www.cc.gatech.edu/~thad/v/12_dps_uist2004_video.avi http://www.cc.gatech.edu/~thad/v/12_innov-with.mov]]></description>
  32. <content:encoded><![CDATA[<p>Thad Starner was working on proactive computing a long time ago, being able to build this kind of interaction is why I moved to Android</p>
  33. <p><a href="http://www.cc.gatech.edu/~thad/v/12_dps_uist2004_video.avi">http://www.cc.gatech.edu/~thad/v/12_dps_uist2004_video.avi</a></p>
  34. <p><a href="http://www.cc.gatech.edu/~thad/v/12_innov-with.mov">http://www.cc.gatech.edu/~thad/v/12_innov-with.mov</a></p>
  35. ]]></content:encoded>
  36. <wfw:commentRss>http://blog.chrissaari.com/2013/04/04/more-on-proactive-computing/feed/</wfw:commentRss>
  37. <slash:comments>0</slash:comments>
  38. <enclosure url="http://www.cc.gatech.edu/~thad/v/12_dps_uist2004_video.avi" length="17467392" type="video/avi" />
  39. <enclosure url="http://www.cc.gatech.edu/~thad/v/12_innov-with.mov" length="6658981" type="video/quicktime" />
  40.  
  41. </item>
  42. <item>
  43. <title>DIY Glass lives on Android!</title>
  44. <link>http://blog.chrissaari.com/2013/03/03/diy-glass-lives-on-android/</link>
  45. <comments>http://blog.chrissaari.com/2013/03/03/diy-glass-lives-on-android/#respond</comments>
  46. <dc:creator><![CDATA[saari]]></dc:creator>
  47. <pubDate>Sun, 03 Mar 2013 23:06:01 +0000</pubDate>
  48. <category><![CDATA[Uncategorized]]></category>
  49. <category><![CDATA[Glass EyeTap]]></category>
  50. <guid isPermaLink="false">http://blog.chrissaari.com/?p=116</guid>
  51.  
  52. <description><![CDATA[The port to Android is now over the hump and the new rig is MUCH smaller and more tractable as a daily wearable. OpenCV facial detection working, recognition is working (but I haven&#8217;t hooked up training and proper set selection based on context yet, hopefully tonight), and voice recognition is working for control. Have to [&#8230;]]]></description>
  53. <content:encoded><![CDATA[<p>The port to Android is now over the hump and the new rig is MUCH smaller and more tractable as a daily wearable. OpenCV facial detection working, recognition is working (but I haven&#8217;t hooked up training and proper set selection based on context yet, hopefully tonight), and voice recognition is working for control. Have to hook up the WiMM One again for the touch screen control. We&#8217;ll see how far I can get tonight!</p>
  54. <p><a href="http://blog.chrissaari.com/wp-content/uploads/2013/03/DIY-Glass.jpg"><img fetchpriority="high" decoding="async" class="alignnone size-medium wp-image-119" alt="DIY Glass" src="http://blog.chrissaari.com/wp-content/uploads/2013/03/DIY-Glass-225x300.jpg" width="225" height="300" srcset="http://blog.chrissaari.com/wp-content/uploads/2013/03/DIY-Glass-225x300.jpg 225w, http://blog.chrissaari.com/wp-content/uploads/2013/03/DIY-Glass-112x150.jpg 112w, http://blog.chrissaari.com/wp-content/uploads/2013/03/DIY-Glass.jpg 540w" sizes="(max-width: 225px) 100vw, 225px" /></a><a href="http://blog.chrissaari.com/wp-content/uploads/2013/03/DIY-Glass-2.jpg"><img decoding="async" class="alignnone size-medium wp-image-122" alt="DIY Glass 2" src="http://blog.chrissaari.com/wp-content/uploads/2013/03/DIY-Glass-2-300x225.jpg" width="300" height="225" srcset="http://blog.chrissaari.com/wp-content/uploads/2013/03/DIY-Glass-2-300x225.jpg 300w, http://blog.chrissaari.com/wp-content/uploads/2013/03/DIY-Glass-2-1024x768.jpg 1024w, http://blog.chrissaari.com/wp-content/uploads/2013/03/DIY-Glass-2-150x112.jpg 150w, http://blog.chrissaari.com/wp-content/uploads/2013/03/DIY-Glass-2.jpg 1632w" sizes="(max-width: 300px) 100vw, 300px" /></a> <a href="http://blog.chrissaari.com/wp-content/uploads/2013/03/DIY-Glass-3.jpg"><img decoding="async" class="alignnone size-medium wp-image-123" alt="DIY Glass 3" src="http://blog.chrissaari.com/wp-content/uploads/2013/03/DIY-Glass-3-300x225.jpg" width="300" height="225" srcset="http://blog.chrissaari.com/wp-content/uploads/2013/03/DIY-Glass-3-300x225.jpg 300w, http://blog.chrissaari.com/wp-content/uploads/2013/03/DIY-Glass-3-1024x768.jpg 1024w, http://blog.chrissaari.com/wp-content/uploads/2013/03/DIY-Glass-3-150x112.jpg 150w, http://blog.chrissaari.com/wp-content/uploads/2013/03/DIY-Glass-3.jpg 1632w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
  55. ]]></content:encoded>
  56. <wfw:commentRss>http://blog.chrissaari.com/2013/03/03/diy-glass-lives-on-android/feed/</wfw:commentRss>
  57. <slash:comments>0</slash:comments>
  58. </item>
  59. <item>
  60. <title>Proactive Computing</title>
  61. <link>http://blog.chrissaari.com/2013/02/02/proactive-computing/</link>
  62. <comments>http://blog.chrissaari.com/2013/02/02/proactive-computing/#respond</comments>
  63. <dc:creator><![CDATA[saari]]></dc:creator>
  64. <pubDate>Sat, 02 Feb 2013 23:22:20 +0000</pubDate>
  65. <category><![CDATA[Uncategorized]]></category>
  66. <guid isPermaLink="false">http://blog.chrissaari.com/?p=111</guid>
  67.  
  68. <description><![CDATA[There are two guiding principals I’m using for building wearable computer applications (Google Glass, EyeTap, etc.): Focus on applications where the machine’s strengths can play in concert with the human’s strengths, or conversely, where each is filling in for the other’s weaknesses. Perfect memory, perfect recall, perfect computation, precise sensors, and 24/7 real time communication [&#8230;]]]></description>
  69. <content:encoded><![CDATA[<p>There are two guiding principals I’m using for building wearable computer applications (Google Glass, EyeTap, etc.):</p>
  70. <ol>
  71. <li>Focus on applications where the machine’s strengths can play in concert with the human’s strengths, or conversely, where each is filling in for the other’s weaknesses. Perfect memory, perfect recall, perfect computation, precise sensors, and 24/7 real time communication with rest of the world are a few examples of the machine’s strengths.</li>
  72. <li>Many things can be achieved with a smart phone, but it usually requires user initiated action, and with push notifications it at least requires pulling the phone out of the pocket and looking at it. I’m focusing on applying the above strengths proactively without making the user have to pull out the phone. The challenge is determining what information is needed, and when, while not being overwhelming.</li>
  73. </ol>
  74. <p>I’m calling this pattern proactive computing, and I see it starting to appear more often. The Washington Post launched <a title="TruthTeller" href="http://truthteller.washingtonpost.com/">TruthTeller</a>, a real time video analysis doing speech to text and searching for known fallacies in political videos. <a title="Truth Goggles" href="http://slifty.com/2011/08/introducing-truth-goggles/">Truth Goggles</a> does a similar trick as a browser plugin that leverages PolitiFact data. <a title="LazyTruth" href="http://www.lazytruth.com">LazyTruth</a> does the same as a Gmail plugin. These three examples monitor what the user is doing and apply data to inform the user proactively. The Google Glass concept video is of course full of proactive computing, schedule reminders, weather updates, public transit updates, etc.</p>
  75. <p>For someone that has been building GUI apps for a long time the verb and noun UX approach is all wrong, or at least it may as well be done on a phone. Proactive computing is more like building a spell checker or the Awesome Bar in Firefox where the goal is to watch the user, attempt to figure out what the user is trying to do and then see how you can help them. This is half of the problem that search engines must solve, so it should come as no surprise that Glass is coming out of Google.</p>
  76. <p>&nbsp;</p>
  77. ]]></content:encoded>
  78. <wfw:commentRss>http://blog.chrissaari.com/2013/02/02/proactive-computing/feed/</wfw:commentRss>
  79. <slash:comments>0</slash:comments>
  80. </item>
  81. <item>
  82. <title>EyeTap 4th of July</title>
  83. <link>http://blog.chrissaari.com/2012/07/08/eyetap-4th-of-july/</link>
  84. <comments>http://blog.chrissaari.com/2012/07/08/eyetap-4th-of-july/#respond</comments>
  85. <dc:creator><![CDATA[saari]]></dc:creator>
  86. <pubDate>Sun, 08 Jul 2012 21:57:07 +0000</pubDate>
  87. <category><![CDATA[Uncategorized]]></category>
  88. <category><![CDATA[EyeTap Google Glass]]></category>
  89. <guid isPermaLink="false">http://blog.chrissaari.com/?p=95</guid>
  90.  
  91. <description><![CDATA[Brought out the EyeTap / Google Glass I built in 2006 again for the 4th of July. More tearing in the video as I&#8217;m messing with the software to increase frame rate, should be better in next version. I&#8217;m also updating the CPU to something newer for performance and improved connectivity (Bluetooth)]]></description>
  92. <content:encoded><![CDATA[<p>Brought out the EyeTap / Google Glass I built in 2006 again for the 4th of July. More tearing in the video as I&#8217;m messing with the software to increase frame rate, should be better in next version. I&#8217;m also updating the CPU to something newer for performance and improved connectivity (Bluetooth)</p>
  93. <p><iframe loading="lazy" width="420" height="315" src="http://www.youtube.com/embed/s2-Y6Z8Qu-s" frameborder="0" allowfullscreen></iframe></p>
  94. ]]></content:encoded>
  95. <wfw:commentRss>http://blog.chrissaari.com/2012/07/08/eyetap-4th-of-july/feed/</wfw:commentRss>
  96. <slash:comments>0</slash:comments>
  97. </item>
  98. <item>
  99. <title>Google Glass circa 2006</title>
  100. <link>http://blog.chrissaari.com/2012/06/28/google-glass-circa-2006/</link>
  101. <comments>http://blog.chrissaari.com/2012/06/28/google-glass-circa-2006/#comments</comments>
  102. <dc:creator><![CDATA[saari]]></dc:creator>
  103. <pubDate>Fri, 29 Jun 2012 03:40:16 +0000</pubDate>
  104. <category><![CDATA[Uncategorized]]></category>
  105. <category><![CDATA[Google Glass]]></category>
  106. <category><![CDATA[Google I/O 2012]]></category>
  107. <guid isPermaLink="false">http://blog.chrissaari.com/?p=91</guid>
  108.  
  109. <description><![CDATA[In 2006 I built an EyeTap which is essentially Google Glass but with 2006 level technology. After the Google I/O 2012 keynote it was clear I needed to wear it to the second day of the conference so I rewrote the software stack in about 24 hours on OpenCV (not an option in 2006). It [&#8230;]]]></description>
  110. <content:encoded><![CDATA[<p>In 2006 I built an EyeTap which is essentially Google Glass but with 2006 level technology. After the Google I/O 2012 keynote it was clear I needed to wear it to the second day of the conference so I rewrote the software stack in about 24 hours on OpenCV (not an option in 2006). It now does facial detection and records every face I see&#8230; more on that later. A video composed of samples of what I saw in the display:<br />
  111. <iframe loading="lazy" title="EyeTap (aka my 2006 era Glass) at Google I/O 2012" width="500" height="375" src="https://www.youtube.com/embed/tCYAbitwr8k?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
  112.  
  113. <a href='http://blog.chrissaari.com/2012/06/28/google-glass-circa-2006/photo3/'><img loading="lazy" decoding="async" width="150" height="150" src="http://blog.chrissaari.com/wp-content/uploads/2012/06/photo3-e1340940871241-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a>
  114. <a href='http://blog.chrissaari.com/2012/06/28/google-glass-circa-2006/photo1/'><img loading="lazy" decoding="async" width="150" height="150" src="http://blog.chrissaari.com/wp-content/uploads/2012/06/photo1-e1340940927918-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a>
  115. <a href='http://blog.chrissaari.com/2012/06/28/google-glass-circa-2006/cyberheadshot/'><img loading="lazy" decoding="async" width="150" height="150" src="http://blog.chrissaari.com/wp-content/uploads/2012/06/cyberheadshot-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" srcset="http://blog.chrissaari.com/wp-content/uploads/2012/06/cyberheadshot-150x150.jpg 150w, http://blog.chrissaari.com/wp-content/uploads/2012/06/cyberheadshot-300x300.jpg 300w, http://blog.chrissaari.com/wp-content/uploads/2012/06/cyberheadshot.jpg 1020w" sizes="(max-width: 150px) 100vw, 150px" /></a>
  116. <a href='http://blog.chrissaari.com/2012/06/28/google-glass-circa-2006/badass/'><img loading="lazy" decoding="async" width="150" height="150" src="http://blog.chrissaari.com/wp-content/uploads/2012/06/badass-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" /></a>
  117.  
  118. ]]></content:encoded>
  119. <wfw:commentRss>http://blog.chrissaari.com/2012/06/28/google-glass-circa-2006/feed/</wfw:commentRss>
  120. <slash:comments>2</slash:comments>
  121. </item>
  122. <item>
  123. <title>Bran Ferren talk from leadership speaker series</title>
  124. <link>http://blog.chrissaari.com/2012/03/18/bran-ferren-talk-from-leadership-speaker-series/</link>
  125. <comments>http://blog.chrissaari.com/2012/03/18/bran-ferren-talk-from-leadership-speaker-series/#respond</comments>
  126. <dc:creator><![CDATA[saari]]></dc:creator>
  127. <pubDate>Sun, 18 Mar 2012 19:11:03 +0000</pubDate>
  128. <category><![CDATA[Uncategorized]]></category>
  129. <guid isPermaLink="false">http://blog.chrissaari.com/?p=89</guid>
  130.  
  131. <description><![CDATA[http://www.youtube.com/watch?v=GxbB18QoYO4 Much of this talk has resonated with me in the past and now again as I find myself once again thinking about Applied Minds, various types of organizations and how to build them, and how Bran approaches product development. His discussion of requirements driven organizations is particularly interesting.]]></description>
  132. <content:encoded><![CDATA[<p><a title="http://www.youtube.com/watch?v=GxbB18QoYO4" href="http://www.youtube.com/watch?v=GxbB18QoYO4">http://www.youtube.com/watch?v=GxbB18QoYO4</a></p>
  133. <p>Much of this talk has resonated with me in the past and now again as I find myself once again thinking about Applied Minds, various types of organizations and how to build them, and how Bran approaches product development. His discussion of requirements driven organizations is particularly interesting.</p>
  134. ]]></content:encoded>
  135. <wfw:commentRss>http://blog.chrissaari.com/2012/03/18/bran-ferren-talk-from-leadership-speaker-series/feed/</wfw:commentRss>
  136. <slash:comments>0</slash:comments>
  137. </item>
  138. <item>
  139. <title>Taming the latency long tail</title>
  140. <link>http://blog.chrissaari.com/2012/03/18/taming-the-latency-long-tail/</link>
  141. <comments>http://blog.chrissaari.com/2012/03/18/taming-the-latency-long-tail/#respond</comments>
  142. <dc:creator><![CDATA[saari]]></dc:creator>
  143. <pubDate>Sun, 18 Mar 2012 18:59:34 +0000</pubDate>
  144. <category><![CDATA[Uncategorized]]></category>
  145. <guid isPermaLink="false">http://blog.chrissaari.com/?p=87</guid>
  146.  
  147. <description><![CDATA[http://highscalability.com/blog/2012/3/12/google-taming-the-long-latency-tail-when-more-machines-equal.html The effects of latency variability across a horizontally scaled service.]]></description>
  148. <content:encoded><![CDATA[<p><a title="http://highscalability.com/blog/2012/3/12/google-taming-the-long-latency-tail-when-more-machines-equal.html" href="http://highscalability.com/blog/2012/3/12/google-taming-the-long-latency-tail-when-more-machines-equal.html">http://highscalability.com/blog/2012/3/12/google-taming-the-long-latency-tail-when-more-machines-equal.html</a></p>
  149. <p>The effects of latency variability across a horizontally scaled service.</p>
  150. ]]></content:encoded>
  151. <wfw:commentRss>http://blog.chrissaari.com/2012/03/18/taming-the-latency-long-tail/feed/</wfw:commentRss>
  152. <slash:comments>0</slash:comments>
  153. </item>
  154. <item>
  155. <title>libeblob</title>
  156. <link>http://blog.chrissaari.com/2011/03/27/libeblob/</link>
  157. <comments>http://blog.chrissaari.com/2011/03/27/libeblob/#respond</comments>
  158. <dc:creator><![CDATA[saari]]></dc:creator>
  159. <pubDate>Sun, 27 Mar 2011 20:01:23 +0000</pubDate>
  160. <category><![CDATA[Uncategorized]]></category>
  161. <guid isPermaLink="false">http://blog.chrissaari.com/?p=81</guid>
  162.  
  163. <description><![CDATA[http://www.ioremap.net/projects/libeblob libeblob is an append-only low-level IO library, which saves data in blob files. Following features are already supported: fast append-only updates which do not require disk seeks compact index to populate lookup information from disk multi-threaded index reading during startup O(1) data location lookup time ability to lock in-memory lookup index (hash table) to [&#8230;]]]></description>
  164. <content:encoded><![CDATA[<p><a title="http://www.ioremap.net/projects/libeblob" href="http://www.ioremap.net/projects/libeblob">http://www.ioremap.net/projects/libeblob</a></p>
  165. <p>libeblob is an append-only low-level IO library, which saves data in blob files.</p>
  166. <p>Following features are already supported:</p>
  167. <ul>
  168. <li> fast append-only updates which do not require disk seeks</li>
  169. <li>compact index to populate lookup information from disk</li>
  170. <li>multi-threaded index reading during startup</li>
  171. <li>O(1) data location lookup time</li>
  172. <li>ability to lock in-memory lookup index (hash table) to eliminate memory swap</li>
  173. <li>readahead games with data and index blobs for maximum performance</li>
  174. <li>multiple blob files support (tested with single blob file on block device too)</li>
  175. <li>optional sha256 on-disk checksumming</li>
  176. <li>2-stage write: prepare (which reserves the space) and commit (which calculates checksum and update in-memory and on-disk indexes). One can (re)write data using pwrite() in between without locks<br />
  177. usuall 1-stage write interface</li>
  178. <li>flexible configuration of hash table size, flags, alignment</li>
  179. <li>defragmentation tool: entries to be deleted are only marked as removed, eblob_check will iterate over specified blob files and actually remove those blocks</li>
  180. <li>off-line blob consistency checker: eblob_check can verify checksums for all records which have them enabled</li>
  181. <li>run-time sync support &#8211; dedicated thread runs fsync in background on all files on timed base</li>
  182. </ul>
  183. ]]></content:encoded>
  184. <wfw:commentRss>http://blog.chrissaari.com/2011/03/27/libeblob/feed/</wfw:commentRss>
  185. <slash:comments>0</slash:comments>
  186. </item>
  187. <item>
  188. <title>one more lib for dealing with asynchrony</title>
  189. <link>http://blog.chrissaari.com/2011/03/12/one-more-lib-for-dealing-with-asynchrony/</link>
  190. <comments>http://blog.chrissaari.com/2011/03/12/one-more-lib-for-dealing-with-asynchrony/#respond</comments>
  191. <dc:creator><![CDATA[saari]]></dc:creator>
  192. <pubDate>Sat, 12 Mar 2011 21:07:56 +0000</pubDate>
  193. <category><![CDATA[Uncategorized]]></category>
  194. <guid isPermaLink="false">http://blog.chrissaari.com/?p=76</guid>
  195.  
  196. <description><![CDATA[http://substack.net/posts/e0741f]]></description>
  197. <content:encoded><![CDATA[<p><a href="http://substack.net/posts/e0741f">http://substack.net/posts/e0741f</a></p>
  198. ]]></content:encoded>
  199. <wfw:commentRss>http://blog.chrissaari.com/2011/03/12/one-more-lib-for-dealing-with-asynchrony/feed/</wfw:commentRss>
  200. <slash:comments>0</slash:comments>
  201. </item>
  202. <item>
  203. <title>Reactive Extensions (Rx) links</title>
  204. <link>http://blog.chrissaari.com/2011/03/12/reactive-extensions-rx-links/</link>
  205. <comments>http://blog.chrissaari.com/2011/03/12/reactive-extensions-rx-links/#respond</comments>
  206. <dc:creator><![CDATA[saari]]></dc:creator>
  207. <pubDate>Sat, 12 Mar 2011 18:09:30 +0000</pubDate>
  208. <category><![CDATA[Uncategorized]]></category>
  209. <guid isPermaLink="false">http://blog.chrissaari.com/?p=70</guid>
  210.  
  211. <description><![CDATA[http://codebetter.com/matthewpodwysocki/2010/02/16/introduction-to-the-reactive-extensions-to-javascript/ http://codebetter.com/matthewpodwysocki/2010/02/23/introduction-to-the-reactive-extensions-for-javascript-creating-observables/ http://codebetter.com/matthewpodwysocki/2010/02/27/introduction-to-the-reactive-extensions-for-javascript-creating-observers/ http://codebetter.com/matthewpodwysocki/2010/03/05/introduction-to-the-reactive-extensions-for-javascript-jquery-integration/ http://codebetter.com/matthewpodwysocki/2010/03/11/introduction-to-the-reactive-extensions-for-javascript-composing-callbacks/ http://codebetter.com/matthewpodwysocki/2010/03/12/introduction-to-the-reactive-extensions-for-javascript-from-blocking-to-async/ http://codebetter.com/matthewpodwysocki/2010/03/15/introduction-to-the-reactive-extensions-for-javascript-wikipedia-lookup/ http://codebetter.com/matthewpodwysocki/2010/03/16/introduction-to-the-reactive-extensions-for-javascript-composing-deeper/ http://codebetter.com/matthewpodwysocki/2010/03/17/the-reactive-extensions-for-javascript-released/ http://codebetter.com/matthewpodwysocki/2010/03/19/introduction-to-the-reactive-extensions-for-javascript-drag-and-drop/ http://codebetter.com/matthewpodwysocki/2010/03/21/introduction-to-the-reactive-extensions-for-javascript-jquery-live-event-integration/ http://codebetter.com/matthewpodwysocki/2010/04/02/introduction-to-the-reactive-extensions-for-javascript-extending-jquery-ajax/ http://codebetter.com/matthewpodwysocki/2010/04/09/introduction-to-the-reactive-extensions-for-javascript-a-separation-of-concerns/ http://codebetter.com/matthewpodwysocki/2010/04/14/introduction-to-the-reactive-extensions-for-javascript-aggregation-part-1 http://codebetter.com/matthewpodwysocki/2010/04/15/introduction-to-the-reactive-extensions-for-javascript-aggregation-part-2/ http://codebetter.com/matthewpodwysocki/2010/04/19/introduction-to-the-reactive-extensions-for-javascript-new-release-and-joins/ http://codebetter.com/matthewpodwysocki/2010/04/23/introduction-to-the-reactive-extensions-for-javascript-going-parallel-with-forkjoin/ http://codebetter.com/matthewpodwysocki/2010/05/04/introduction-to-the-reactive-extensions-for-javascript-refactoring-a-game/ http://codebetter.com/matthewpodwysocki/2010/05/11/introduction-to-the-reactive-extensions-for-javascript-async-method-chaining/ http://codebetter.com/matthewpodwysocki/2010/05/12/introduction-to-the-reactive-extensions-for-javascript-custom-schedulers/ http://codebetter.com/matthewpodwysocki/2010/05/17/introduction-to-the-reactive-extensions-for-javascript-the-final-countdown-timer/ http://codebetter.com/matthewpodwysocki/2010/05/28/introduction-to-the-reactive-extensions-for-javascript-wrapping-the-dojo-api/ http://codebetter.com/matthewpodwysocki/2010/06/16/introduction-to-the-reactive-extensions-for-javascript-conditionals/ http://codebetter.com/matthewpodwysocki/2010/06/24/introduction-to-the-reactive-extensions-for-javascript-looping-operators/ http://codebetter.com/matthewpodwysocki/2010/07/20/introduction-to-the-reactive-extensions-for-javascript-error-handling-part-i/ http://codebetter.com/matthewpodwysocki/2010/08/02/introduction-to-the-reactive-extensions-for-javascript-error-handling-part-ii/ http://codebetter.com/matthewpodwysocki/2010/08/12/dojo-deferred-and-the-reactive-extensions-for-javascript/ http://codebetter.com/matthewpodwysocki/2010/08/25/introduction-to-the-reactive-extensions-for-javascript-buffering/]]></description>
  212. <content:encoded><![CDATA[<p><a href="http://codebetter.com/matthewpodwysocki/2010/02/16/introduction-to-the-reactive-extensions-to-javascript/">http://codebetter.com/matthewpodwysocki/2010/02/16/introduction-to-the-reactive-extensions-to-javascript/</a></p>
  213. <p><a href="http://codebetter.com/matthewpodwysocki/2010/02/23/introduction-to-the-reactive-extensions-for-javascript-creating-observables/">http://codebetter.com/matthewpodwysocki/2010/02/23/introduction-to-the-reactive-extensions-for-javascript-creating-observables/</a></p>
  214. <p><a href="http://codebetter.com/matthewpodwysocki/2010/02/27/introduction-to-the-reactive-extensions-for-javascript-creating-observers/">http://codebetter.com/matthewpodwysocki/2010/02/27/introduction-to-the-reactive-extensions-for-javascript-creating-observers/</a></p>
  215. <p><a href="http://codebetter.com/matthewpodwysocki/2010/03/05/introduction-to-the-reactive-extensions-for-javascript-jquery-integration/">http://codebetter.com/matthewpodwysocki/2010/03/05/introduction-to-the-reactive-extensions-for-javascript-jquery-integration/</a></p>
  216. <p><a href="http://codebetter.com/matthewpodwysocki/2010/03/11/introduction-to-the-reactive-extensions-for-javascript-composing-callbacks/">http://codebetter.com/matthewpodwysocki/2010/03/11/introduction-to-the-reactive-extensions-for-javascript-composing-callbacks/</a></p>
  217. <p><a href="http://codebetter.com/matthewpodwysocki/2010/03/12/introduction-to-the-reactive-extensions-for-javascript-from-blocking-to-async/">http://codebetter.com/matthewpodwysocki/2010/03/12/introduction-to-the-reactive-extensions-for-javascript-from-blocking-to-async/</a></p>
  218. <p><a href="http://codebetter.com/matthewpodwysocki/2010/03/15/introduction-to-the-reactive-extensions-for-javascript-wikipedia-lookup/">http://codebetter.com/matthewpodwysocki/2010/03/15/introduction-to-the-reactive-extensions-for-javascript-wikipedia-lookup/</a></p>
  219. <p><a href="http://codebetter.com/matthewpodwysocki/2010/03/16/introduction-to-the-reactive-extensions-for-javascript-composing-deeper/">http://codebetter.com/matthewpodwysocki/2010/03/16/introduction-to-the-reactive-extensions-for-javascript-composing-deeper/</a></p>
  220. <p><a href="http://codebetter.com/matthewpodwysocki/2010/03/17/the-reactive-extensions-for-javascript-released/">http://codebetter.com/matthewpodwysocki/2010/03/17/the-reactive-extensions-for-javascript-released/</a></p>
  221. <p><a href="http://codebetter.com/matthewpodwysocki/2010/03/19/introduction-to-the-reactive-extensions-for-javascript-drag-and-drop/">http://codebetter.com/matthewpodwysocki/2010/03/19/introduction-to-the-reactive-extensions-for-javascript-drag-and-drop/</a></p>
  222. <p><a href="http://codebetter.com/matthewpodwysocki/2010/03/21/introduction-to-the-reactive-extensions-for-javascript-jquery-live-event-integration/">http://codebetter.com/matthewpodwysocki/2010/03/21/introduction-to-the-reactive-extensions-for-javascript-jquery-live-event-integration/</a></p>
  223. <p><a href="http://codebetter.com/matthewpodwysocki/2010/04/02/introduction-to-the-reactive-extensions-for-javascript-extending-jquery-ajax/">http://codebetter.com/matthewpodwysocki/2010/04/02/introduction-to-the-reactive-extensions-for-javascript-extending-jquery-ajax/</a></p>
  224. <p><a href="http://codebetter.com/matthewpodwysocki/2010/04/09/introduction-to-the-reactive-extensions-for-javascript-a-separation-of-concerns/">http://codebetter.com/matthewpodwysocki/2010/04/09/introduction-to-the-reactive-extensions-for-javascript-a-separation-of-concerns/</a></p>
  225. <p><a href="http://codebetter.com/matthewpodwysocki/2010/04/14/introduction-to-the-reactive-extensions-for-javascript-aggregation-part-1">http://codebetter.com/matthewpodwysocki/2010/04/14/introduction-to-the-reactive-extensions-for-javascript-aggregation-part-1</a></p>
  226. <p><a href="http://codebetter.com/matthewpodwysocki/2010/04/15/introduction-to-the-reactive-extensions-for-javascript-aggregation-part-2/">http://codebetter.com/matthewpodwysocki/2010/04/15/introduction-to-the-reactive-extensions-for-javascript-aggregation-part-2/</a></p>
  227. <p><a href="http://codebetter.com/matthewpodwysocki/2010/04/19/introduction-to-the-reactive-extensions-for-javascript-new-release-and-joins/">http://codebetter.com/matthewpodwysocki/2010/04/19/introduction-to-the-reactive-extensions-for-javascript-new-release-and-joins/</a></p>
  228. <p><a href="http://codebetter.com/matthewpodwysocki/2010/04/23/introduction-to-the-reactive-extensions-for-javascript-going-parallel-with-forkjoin/">http://codebetter.com/matthewpodwysocki/2010/04/23/introduction-to-the-reactive-extensions-for-javascript-going-parallel-with-forkjoin/</a></p>
  229. <p><a href="http://codebetter.com/matthewpodwysocki/2010/05/04/introduction-to-the-reactive-extensions-for-javascript-refactoring-a-game/">http://codebetter.com/matthewpodwysocki/2010/05/04/introduction-to-the-reactive-extensions-for-javascript-refactoring-a-game/</a></p>
  230. <p><a href="http://codebetter.com/matthewpodwysocki/2010/05/11/introduction-to-the-reactive-extensions-for-javascript-async-method-chaining/">http://codebetter.com/matthewpodwysocki/2010/05/11/introduction-to-the-reactive-extensions-for-javascript-async-method-chaining/</a></p>
  231. <p><a href="http://codebetter.com/matthewpodwysocki/2010/05/12/introduction-to-the-reactive-extensions-for-javascript-custom-schedulers/">http://codebetter.com/matthewpodwysocki/2010/05/12/introduction-to-the-reactive-extensions-for-javascript-custom-schedulers/</a></p>
  232. <p><a href="http://codebetter.com/matthewpodwysocki/2010/05/17/introduction-to-the-reactive-extensions-for-javascript-the-final-countdown-timer/">http://codebetter.com/matthewpodwysocki/2010/05/17/introduction-to-the-reactive-extensions-for-javascript-the-final-countdown-timer/</a></p>
  233. <p><a href="http://codebetter.com/matthewpodwysocki/2010/05/28/introduction-to-the-reactive-extensions-for-javascript-wrapping-the-dojo-api/">http://codebetter.com/matthewpodwysocki/2010/05/28/introduction-to-the-reactive-extensions-for-javascript-wrapping-the-dojo-api/</a></p>
  234. <p><a href="http://codebetter.com/matthewpodwysocki/2010/06/16/introduction-to-the-reactive-extensions-for-javascript-conditionals/">http://codebetter.com/matthewpodwysocki/2010/06/16/introduction-to-the-reactive-extensions-for-javascript-conditionals/</a></p>
  235. <p><a href="http://codebetter.com/matthewpodwysocki/2010/06/24/introduction-to-the-reactive-extensions-for-javascript-looping-operators/">http://codebetter.com/matthewpodwysocki/2010/06/24/introduction-to-the-reactive-extensions-for-javascript-looping-operators/</a></p>
  236. <p><a href="http://codebetter.com/matthewpodwysocki/2010/07/20/introduction-to-the-reactive-extensions-for-javascript-error-handling-part-i/">http://codebetter.com/matthewpodwysocki/2010/07/20/introduction-to-the-reactive-extensions-for-javascript-error-handling-part-i/</a></p>
  237. <p><a href="http://codebetter.com/matthewpodwysocki/2010/08/02/introduction-to-the-reactive-extensions-for-javascript-error-handling-part-ii/">http://codebetter.com/matthewpodwysocki/2010/08/02/introduction-to-the-reactive-extensions-for-javascript-error-handling-part-ii/</a></p>
  238. <p><a href="http://codebetter.com/matthewpodwysocki/2010/08/12/dojo-deferred-and-the-reactive-extensions-for-javascript/">http://codebetter.com/matthewpodwysocki/2010/08/12/dojo-deferred-and-the-reactive-extensions-for-javascript/</a></p>
  239. <p><a href="http://codebetter.com/matthewpodwysocki/2010/08/25/introduction-to-the-reactive-extensions-for-javascript-buffering/">http://codebetter.com/matthewpodwysocki/2010/08/25/introduction-to-the-reactive-extensions-for-javascript-buffering/</a></p>
  240. ]]></content:encoded>
  241. <wfw:commentRss>http://blog.chrissaari.com/2011/03/12/reactive-extensions-rx-links/feed/</wfw:commentRss>
  242. <slash:comments>0</slash:comments>
  243. </item>
  244. </channel>
  245. </rss>
  246.  

If you would like to create a banner that links to this page (i.e. this validation result), do the following:

  1. Download the "valid RSS" banner.

  2. Upload the image to your own server. (This step is important. Please do not link directly to the image on this server.)

  3. Add this HTML to your page (change the image src attribute if necessary):

If you would like to create a text link instead, here is the URL you can use:

http://www.feedvalidator.org/check.cgi?url=http%3A//blog.chrissaari.com/feed/

Copyright © 2002-9 Sam Ruby, Mark Pilgrim, Joseph Walton, and Phil Ringnalda