(X)HTML5 validation results for http://intertwingly.net/blog/index.html5

Validator Input

The document is valid XHTML5 + ARIA + SVG 1.1 + MathML 2.0 (subject to the utter previewness of this service).

Source

  1. <!DOCTYPE html>
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
  3. <head>
  4. <title>Sam Ruby</title>
  5. <link rel="alternate" type="application/atom+xml" title="It&#8217;s just data" href="http://intertwingly.net/blog/index.atom"/>
  6. <link rel="openid.server" href="http://intertwingly.net/id/"/>
  7. <link rel="search" type="application/opensearchdescription+xml" href="http://intertwingly.net/search/" title="intertwingly blog search"/>
  8. <link rel="stylesheet" href="/css/blog5.css" type="text/css" media="screen"/>
  9. <link rel="stylesheet" href="/css/print.css" type="text/css" media="print"/>
  10. <link rel="shortcut icon" href="/favicon.ico"/>
  11. <meta name="ICBM" content="35.708298,-78.695515"/>
  12. <script type="text/javascript" src="/js/localize_dates.js"></script>
  13. </head>
  14. <body>
  15. <header>
  16. <h1><a href="http://intertwingly.net/blog/">intertwingly</a></h1>
  17. <form method="get" action="http://intertwingly.net/blog/">
  18. <div>
  19. <label for="q">Search</label>
  20. <input type="text" id="q" name="q" value=""/>
  21. </div>
  22. </form>
  23. <p>It&#8217;s just data</p>
  24. </header>
  25. <article>
  26. <header>
  27. <h3><a rel="bookmark" href="http://intertwingly.net/blog/2009/07/13/Editors-Draft-of-HTML5-RDFa">Editors Draft of HTML5+RDFa</a></h3>
  28. <hr/><div><time title="GMT" datetime="2009-07-13T17:51:00Z">Mon 13 Jul 2009 at 17:51</time></div>
  29. </header>
  30. <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100" height="100" viewBox="0 0 100 100">
  31. <defs>
  32. <g id="node" stroke="none">
  33. <circle r="18" fill="#149"></circle>
  34. <path d="M-14,7a16,16,0,0,1,22-21a15,15,0,0,0-14,2a3,3,0,1,1-5,5a15,15,0,0,0-3,14" fill="#fff"></path>
  35. </g>
  36. <path d="M-14-6a44,62,0,0,0,28,0l0,12a44,62,0,0,0-28,0z" fill="#149" id="arc"></path>
  37. </defs>
  38. <use xlink:href="#arc" transform="translate(76,50) rotate(90)"></use>
  39. <use xlink:href="#arc" transform="translate(50,35) rotate(-30)"></use>
  40. <use xlink:href="#arc" transform="translate(50,65) rotate(30)"></use>
  41. <use xlink:href="#node" transform="translate(24,50)"></use>
  42. <use xlink:href="#node" transform="translate(76,80)"></use>
  43. <use xlink:href="#node" transform="translate(76,20)"></use>
  44. </svg>
  45. <p><a href="http://blog.digitalbazaar.com/2009/07/13/html5rdfa/">Manu Sporny</a>: <em>The first public Editors Draft of RDFa for HTML5 was published earlier today.</em></p>
  46. <footer>
  47. <a title="Editors Draft of HTML5+RDFa" href="http://intertwingly.net/blog/2009/07/13/Editors-Draft-of-HTML5-RDFa#comments">3 comments</a>
  48. </footer>
  49. </article>
  50. <article>
  51. <header>
  52. <h3><a rel="bookmark" href="http://intertwingly.net/blog/2009/07/11/Vendor-Veto">Vendor Veto</a></h3>
  53. <hr/><div><time title="GMT" datetime="2009-07-11T19:42:07Z">Sat 11 Jul 2009 at 19:42</time></div>
  54. </header>
  55. <svg xmlns='http://www.w3.org/2000/svg' width="131" height="76" viewBox="0 0 131 76">
  56. <path d="M36,5l12,41l12-41h33v4l-13,21c30,10,2,69-21,28l7-2c15,27,33,-22,3,-19v-4l12-20h-15l-17,59h-1l-13-42l-12,42h-1l-20-67h9l12,41l8-28l-4-13h9" fill='#005A9C'></path>
  57. <path d="M94,53c15,32,30,14,35,7l-1-7c-16,26-32,3-34,0M122,16c-10-21-34,0-21,30c-5-30 16,-38 23,-21l5-10l-2-9"></path>
  58. </svg><p>Shelley Powers recently made a good faith effort to create a <a href="http://lists.w3.org/Archives/Public/www-archive/2009Jul/0075.html">Formal Objection</a>; however, to date I have not found a way to treat it as such.&#160; The concern is certainly valid, but we need to find a process for dealing with the issue, and this post is a part of the process for determining the process.</p>
  59. <p>The concern is that <a href="http://lists.whatwg.org/pipermail/whatwg-whatwg.org/2009-June/020620.html">Ian made a decision to remove two subsections</a> in his draft HTML5 spec in which codecs would have been required and that such a decision was widely viewed as a decision by the W3C.&#160; It was not, in fact, a decision by the W3C, and as such it is not a subject to a Formal Objection.&#160; But I can&#8217;t escape the fact that the perception exists, and is <a href="http://tech.slashdot.org/story/09/07/02/184251/Browser-Vendors-Force-W3C-To-Scrap-HTML-5-Codecs">widely held</a>.</p>
  60. <p><a href="http://intertwingly.net/blog/2009/07/11/Vendor-Veto">...</a></p>
  61. <footer>
  62. <a title="Vendor Veto" href="http://intertwingly.net/blog/2009/07/11/Vendor-Veto#comments">17 comments</a>
  63. </footer>
  64. </article>
  65. <article>
  66. <header>
  67. <h3><a rel="bookmark" href="http://intertwingly.net/blog/2009/07/09/Agile-Web-Development-with-Rack">Agile Web Development with... Rack</a></h3>
  68. <hr/><div><time title="GMT" datetime="2009-07-09T13:49:35Z">Thu 09 Jul 2009 at 13:49</time></div>
  69. </header>
  70. <svg xmlns="http://www.w3.org/2000/svg" width="90" height="111" viewBox="0 0 90 111">
  71. <g stroke-linejoin="bevel" stroke-linecap="square" fill="none" stroke="#000">
  72. <path d="M6,15l30-10l49,11v82v-82l-24,8v83v-83l-55-9v83l56,8l23-8" stroke-width="4"></path>
  73. <path d="M6,98l27-9v-13l-26-4l27-8v-20l-27-5l28-8v-11v11l49,10l-24,8l-26-5v20l50,8l-24,9l-27-5v13l51,8" stroke-width="2"></path>
  74. </g>
  75. </svg><p>I believe that test-first and continuous-deployment are important characteristics of Agile Web Development.&#160; That&#8217;s why it bothers me that Testing isn&#8217;t properly introduced until page 205 of <a href="http://www.pragprog.com/titles/rails3/agile-web-development-with-rails-third-edition">AWDwR3</a>, and deployment until page 651.&#160; I am also aware that not everybody who comes to this book has the same background and experience.</p>
  76. <p>I&#8217;m experimenting with a number of ways to address this, and <a href="http://intertwingly.net/stories/2009/07/09/insideout.html">this</a> is my current iteration.</p>
  77. <p>Feedback welcome.</p>
  78. <p><a href="http://intertwingly.net/blog/2009/07/09/Agile-Web-Development-with-Rack">...</a></p>
  79. <footer>
  80. <a title="Agile Web Development with... Rack" href="http://intertwingly.net/blog/2009/07/09/Agile-Web-Development-with-Rack#comments">4 comments</a>
  81. </footer>
  82. </article>
  83. <article>
  84. <header>
  85. <h3><a rel="bookmark" href="http://intertwingly.net/blog/2009/07/03/XHML-2-Charter-Set-To-Expire">XHML 2 Charter Set To Expire</a></h3>
  86. <hr/><div><time title="GMT" datetime="2009-07-03T09:40:39Z">Fri 03 Jul 2009 at 09:40</time></div>
  87. </header>
  88. <svg xmlns='http://www.w3.org/2000/svg' width="131" height="76" viewBox="0 0 131 76">
  89. <path d="M36,5l12,41l12-41h33v4l-13,21c30,10,2,69-21,28l7-2c15,27,33,-22,3,-19v-4l12-20h-15l-17,59h-1l-13-42l-12,42h-1l-20-67h9l12,41l8-28l-4-13h9" fill='#005A9C'></path>
  90. <path d="M94,53c15,32,30,14,35,7l-1-7c-16,26-32,3-34,0M122,16c-10-21-34,0-21,30c-5-30 16,-38 23,-21l5-10l-2-9"></path>
  91. </svg>
  92. <p><a href="http://www.w3.org/2009/06/xhtml-faq">Philippe Le Hegaret and Ian Jacobs</a>: <em>W3C management has decided to allow the <a href="http://www.w3.org/2007/03/XHTML2-WG-charter">Working Group&#8217;s charter</a> to expire at the end of 2009 and not to renew it ... we expect the next generation XML serialization of HTML to be defined in the HTML 5 specification.</em></p>
  93. <footer>
  94. <a title="XHML 2 Charter Set To Expire" href="http://intertwingly.net/blog/2009/07/03/XHML-2-Charter-Set-To-Expire#comments">4 comments</a>
  95. </footer>
  96. </article>
  97. <article>
  98. <header>
  99. <h3><a rel="bookmark" href="http://intertwingly.net/blog/2009/07/02/Media-Dependent-Styling">Media Dependent Styling</a></h3>
  100. <hr/><div><time title="GMT" datetime="2009-07-02T10:50:45Z">Thu 02 Jul 2009 at 10:50</time></div>
  101. </header>
  102. <svg xmlns='http://www.w3.org/2000/svg' width="100" height="100" viewBox="0 0 100 100">
  103. <path d='M39,40a4,4,0,1,1,0,1M52,36h3v27h7v3h-10v-3zM80,50h-18v4h17c-1,13-12,23-26,23c-14,0-26-11-26-26c0-13,12-25,26-25h2v-4h-2c-17,0-30,13-30,29c0,17,13,30,30,30c17,0,31-13,31-30v-1zM53,87c20,0,37-16,37-36c0-19-17-35-37-35c-20,0-36,16-36,35c0,20,16,36,36,36' fill='#CB2846' fill-rule='evenodd'></path>
  104. </svg><p>I <b>finally</b> decided to upgrade my cell phone to one that supports the web and email.&#160; I settled on an LG enV3 in slate blue.&#160; One of the pages I frequently check is my <a href="http://intertwingly.net/blog/comments.html">comments page</a>, and as I had taken care to ensure that the markup degraded gracefully, the page displays adequately on my mobile device &#8212; with one obvious annoyance that surprised me.</p>
  105. <p>To read the comments, I have to horizontally scroll.</p>
  106. <p><a href="http://intertwingly.net/blog/2009/07/02/Media-Dependent-Styling">...</a></p>
  107. <footer>
  108. <a title="Media Dependent Styling" href="http://intertwingly.net/blog/2009/07/02/Media-Dependent-Styling#comments">16 comments</a>
  109. </footer>
  110. </article>
  111. <article>
  112. <header>
  113. <h3><a rel="bookmark" href="http://intertwingly.net/blog/2009/07/01/Rails-Book-Update-and-Outlook">Rails Book Update and Outlook</a></h3>
  114. <hr/><div><time title="GMT" datetime="2009-07-01T15:52:27Z">Wed 01 Jul 2009 at 15:52</time></div>
  115. </header>
  116. <svg xmlns='http://www.w3.org/2000/svg' width="100" height="100" viewBox="0 0 100 100">
  117. <path d='M1,12c0-7,4-11,11-11h87v87c0,5-5,11-11,11h-87z' fill='#723' stroke='#712' stroke-width='2'></path>
  118. <path d='M13,22h80v60l-40,15l-39-16z' fill='#a33'></path>
  119. <path d='M25,2l27,18l28,11l18,48v-77z' fill='#a54'></path>
  120. <path d='M80,31l19,8l-9,20z' fill='#d5a67c'></path>
  121. <path d='M78,2l2,29l19,8z' fill='#c98'></path>
  122. <path d='M53,20l25-18l2,29z' fill='#b76'></path>
  123. <path d='M90,58l8,20l-20,7z' fill='#b65'></path>
  124. <path d='M98,78l-47,18l2,2h36zM25,2l28,18l-27,10l-12,27l-11-19z' fill='#a72d3a'></path>
  125. <path d='M14,56l-11,23l26,6z' fill='#924'></path>
  126. <path d='M93,23c-38-35-78,17-77,69h41c-17-52,7-81,35-67zM62,80l-7-1l2,5h7zM15,72l-7-1l-2,7l8,1zM58,62l-5-3v5l6,3zM22,47l-7-3l-2,6l7,3zM59,48l-4-4l-1,4l4,4zM62,31l-2,4l3,3l1-3zM34,26l-4-3l-4,4l5,4zM73,25h-4l1,4l3-1zM86,24h-4v2h4zM87,14l-4-3v3l4,2zM50,13l-3-4l-4,3l3,4zM68,10l-2-4h-5l2,4z' fill='#FFF'></path>
  127. </svg>
  128. <p>Agile Web Development with Rails, 3rd Edition is about to have its third printing.&#160; Translations are under way for Chinese, Japanese, Korean, and Spanish.&#160; One thing I wasn&#8217;t aware of before participating in the development of this book is that printers have an opportunity to address errata in each printing.&#160; Other changes are fodder for a new edition (or possibly even a new title).&#160; What would I like to see in a follow-on to this book?</p>
  129. <p><a href="http://intertwingly.net/blog/2009/07/01/Rails-Book-Update-and-Outlook">...</a></p>
  130. <footer>
  131. <a title="Rails Book Update and Outlook" href="http://intertwingly.net/blog/2009/07/01/Rails-Book-Update-and-Outlook#comments">2 comments</a>
  132. </footer>
  133. </article>
  134. <article>
  135. <header>
  136. <h3><a rel="bookmark" href="http://intertwingly.net/blog/2009/06/29/ECMAScript-5-Test-Suites">ECMAScript 5 Test Suites</a></h3>
  137. <hr/><div><time title="GMT" datetime="2009-06-29T21:29:17Z">Mon 29 Jun 2009 at 21:29</time></div>
  138. </header>
  139. <svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100">
  140. <circle r="25" cx="43" cy="49" fill="#6bb8ff" opacity="0.7"></circle>
  141. <path fill="#86c5ff" fill-opacity="0.8" d="M32,94L60,94L38,49ZM74,85L92,61L33,35ZM95,53L93,24L24,46zM78,16L62,4L42,46Z"></path>
  142. <circle r="15" cx="40" cy="43" fill="#FFF"></circle>
  143. <circle r="12" cx="40" cy="42" fill="#9ed9ff"></circle>
  144. </svg>
  145. <p><a href="http://blog.chromium.org/2009/06/launching-sputnik-into-orbit.html">Christian Plesner Hansen</a>: <em>Today we&#8217;re releasing the <a href="http://code.google.com/p/sputniktests/">Sputnik</a> JavaScript test suite. Sputnik is a comprehensive set of more than 5000 tests that touch all aspects of the JavaScript language as defined in the ECMA-262 standard.</em></p>
  146. <p><a href="http://blogs.msdn.com/jscript/archive/2009/06/30/steps-toward-creating-compatible-ecmascript-5-implementations.aspx">Allen Wirfs-Brock</a>: <em>Anyone who has the interest and skills for developing individual ECMAScript conformance tests are invited to participate in the project. If you&#8217;re interested check out the <a href="http://es5conform.codeplex.com/">Codeplex site</a> and get involved.</em></p>
  147. <footer>
  148. <a title="ECMAScript 5 Test Suites" href="http://intertwingly.net/blog/2009/06/29/ECMAScript-5-Test-Suites#comments">Add comment</a>
  149. </footer>
  150. </article>
  151. <article>
  152. <header>
  153. <h3><a rel="bookmark" href="http://intertwingly.net/blog/2009/06/28/Test-Notifications">Test Notifications</a></h3>
  154. <hr/><div><time title="GMT" datetime="2009-06-28T11:46:10Z">Sun 28 Jun 2009 at 11:46</time></div>
  155. </header>
  156. <svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100">
  157. <path d="M43,90c-88,-16,-21,-86,41,-51l9,-6v17h-26l8,-5c-55,-25,-86,29,-32,36z" fill="#ccc"></path>
  158. <path d="M43,90v-75l14,-9v75z" fill="#f60"></path>
  159. </svg><p><a href="http://yehudakatz.com/2009/06/20/on-rails-testing/">Yehuda Katz</a>: <em>Last week, Carl and I started digging into the Rails initializer, and the tests in the initializer (railties) are more mock-based and less reliable than the tests in ActionPack (which we&#8217;ve been working with so far). They&#8217;re pretty reasonable unit tests for individual components, but getting all of the tests to pass did not result in an (even close) bootable Rails app.</em></p>
  160. <p>To help with spreading the word, I&#8217;ve created a <a href="http://rails.intertwingly.net/registry/awdwr">registration page</a> where those with an interest in doing so can sign up for IM notification on test results.</p>
  161. <p><a href="http://intertwingly.net/blog/2009/06/28/Test-Notifications">...</a></p>
  162. <footer>
  163. <a title="Test Notifications" href="http://intertwingly.net/blog/2009/06/28/Test-Notifications#comments">4 comments</a>
  164. </footer>
  165. </article>
  166. <article>
  167. <header>
  168. <h3><a rel="bookmark" href="http://intertwingly.net/blog/2009/06/23/Validator-Nu-on-GCJ-Update">Validator.Nu on GCJ Update</a></h3>
  169. <hr/><div><time title="GMT" datetime="2009-06-23T19:48:44Z">Tue 23 Jun 2009 at 19:48</time></div>
  170. </header>
  171. <svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100">
  172. <g stroke-linecap="round" stroke-linejoin="round">
  173. <path d="M15,68v-29c27-1,26,0,26,29M86,39v29c-27,1-26,0-26-29" stroke="#000" stroke-width="20" opacity="0.5"></path>
  174. <path d="M8,10h15c26,97,26,97,52,0h15c-32,115-50,115-82,0z" fill="#2a2863" stroke-width="4" stroke="#2a2863" stroke-opacity="0.5"></path>
  175. <path d="M15,68v-29c27-1,26,0,26,29M86,39v29c-27,1-26,0-26-29" stroke="#FFF" stroke-width="8" fill="none"></path>
  176. </g>
  177. </svg><pre class="code">ruby test/<a href="http://intertwingly.net/stories/2009/06/23/fonts.rb">fonts.rb</a> test/<a href="http://intertwingly.net/stories/2009/06/23/google.html">google.html</a>
  178. size =&gt; -1
  179. size =&gt; -1
  180. size =&gt; -2
  181. size =&gt; -2</pre>
  182. <p>I jotted down a few notes.</p>
  183. <p><a href="http://intertwingly.net/blog/2009/06/23/Validator-Nu-on-GCJ-Update">...</a></p>
  184. <footer>
  185. <a title="Validator.Nu on GCJ Update" href="http://intertwingly.net/blog/2009/06/23/Validator-Nu-on-GCJ-Update#comments">Add comment</a>
  186. </footer>
  187. </article>
  188. <article>
  189. <header>
  190. <h3><a rel="bookmark" href="http://intertwingly.net/blog/2009/06/22/Revisiting-RedHat">Revisiting RedHat</a></h3>
  191. <hr/><div><time title="GMT" datetime="2009-06-22T15:49:49Z">Mon 22 Jun 2009 at 15:49</time></div>
  192. </header>
  193. <svg xmlns='http://www.w3.org/2000/svg' width="100" height="100" viewBox="0 0 100 100">
  194. <path d='M98,50c0-27-22-49-48-49c-27,0-49,22-49,49v37c0,6,5,11,11,11h38c26,0,48-21,48-48' fill='#072b61'></path>
  195. <path d='M64,13c-13,0-23,10-23,23v12h-12c-12,0-22,10-22,22c0,13,10,23,22,23c13,0,23-10,23-23v-12h12c13,0,23-10,23-22c0-13-10-23-23-23M64,24c7,0,12,5,12,12c0,6-5,12-12,12h-10c-1,0-2-1-2-2v-10c0-7,5-12,12-12M29,58h11l1,2v10c0,7-5,12-12,12c-6,0-12-5-12-12c0-6,6-12,12-12' fill='#0a57a4'></path>
  196. <path d='M41,48v-12c0-13,10-23,23-23h2c6,1,8,3,8,6c0,3-3,5-6,5h-4c-7,0-12,5-12,12v10c0,1,1,2,2,2h8c2,0,5,2,5,5c0,3-3,5-5,5h-10v12c0,13-10,23-22,23c-2,0-3,0-6-1c-3-1-4-3-4-5c0-3,2-5,5-5h4c7,0,12-5,12-12v-10c0-1-1-2-2-2h-7c-3,0-6-2-6-5c0-3,3-5,6-5z' fill='#fff'></path>
  197. </svg><p>I <a href="http://intertwingly.net/blog/2003/11/24/apt-get-upgrade">switched to Debian in 2003</a> given the <a href="http://www.redhat.com/archives/rhl-list/2003-September/msg00064.html">uncertainty at the time</a> for RedHat.&#160; Eighteen months later, I <a href="http://www.intertwingly.net/blog/2005/05/04/Ubuntu-Update">switched to Ubuntu</a> as I found the unpredictable release cycle of Debian to be an issue.</p>
  198. <p>I had occasion to try Fedora again yesterday when debugging a <a href="http://gcc.gnu.org/ml/java/2009-06/msg00049.html">GCP/JAXP issue</a>.&#160; I was curious to see what had changed since I had last looked into a RPM based distribution over five years ago, and the answer in retrospect was totally obvious.&#160; The difference between two 2009 vintage Linux distributions is much smaller than the difference between a 2009 vintage distribution and a 2003 vintage distribution, even of those distributions came from the same place.</p>
  199. <p><a href="http://intertwingly.net/blog/2009/06/22/Revisiting-RedHat">...</a></p>
  200. <footer>
  201. <a title="Revisiting RedHat" href="http://intertwingly.net/blog/2009/06/22/Revisiting-RedHat#comments">6 comments</a>
  202. </footer>
  203. </article>
  204. <article>
  205. <header>
  206. <h3><a rel="bookmark" href="http://intertwingly.net/blog/2009/06/17/Calling-JAXP-from-Ruby">Calling JAXP from Ruby</a></h3>
  207. <hr/><div><time title="GMT" datetime="2009-06-18T00:38:11Z">Thu 18 Jun 2009 at 00:38</time></div>
  208. </header>
  209. <svg xmlns="http://www.w3.org/2000/svg" width="75" height="136" viewBox="0 0 75 136">
  210. <path d="M1190 2982 c-38-31-31-179 17-347 14-49-50 34-89 115-59 126
  211. -75 138-139 104-89-45-31-286 106-438 37-41 37-56 2-56-64-1-147
  212. -63-147-111 0-68 36-95 107-78 72 17 110 12 162-18 59-36 99-53 121
  213. -53 70 0 98-274 36-339-77-80-124-64-211 69-235 363-871 1021-794
  214. 823 6-16 15-109 21-208 8-154 7-237-7-510-1-22-5-71-9-110-3
  215. -38-8-99-11-135-16-193-59-311-172-463-89-120-103-199-62-333
  216. 46-147 32-217-65-342-86-110-34-240 74-182 15 8 16-2 16-118-1
  217. -208 99-262 252-137 459 378 583 383 820 37 106-155 165-182 267-123 179
  218. 103 150 755-55 1272-72 180-71 272 6 419 l38 71-1 147 c0 177 4 192 76
  219. 262 82 80 99 158 65 300-25 105-22 166 16 269 47 130 23 186-68 161-65
  220. -17-142-154-142-253 0-42-37 30-49 96-23 120-43 186-61 202-30 27
  221. -91 31-120 7z m-342-1094 c74-22 122-90 122-170 0-77-7-87-54-86-83
  222. 2-183-78-173-139 14-82-172-40-237 54-127 183 105 413 342 341z m315
  223. -214 c237-426 341-786 342-1179 0-460-61-531-239-277-251 358-453
  224. 367-824 35-124-110-190-136-208-80-7 22-7 235 0 272 2 11 7 45 10 75
  225. 4 30 8 66 11 80 2 14 9 52 14 85 109 661 160 849 214 789 199-228 612 2 545
  226. 303-6 28-4 32 15 36 38 7 40 4 120-139z m-900-522 c3-4-5-61-18-127
  227. -13-66-25-131-27-145-6-36-39 38-46 101-7 76 66 213 91 171z"
  228. transform="translate(0,136) scale(0.045181,-0.045181)"></path>
  229. <ellipse rx="12" ry="10" transform="rotate(-24) translate(5.4,68.3)"
  230. fill="#F00" opacity="0.7"></ellipse>
  231. <ellipse rx="3.5" ry="2" transform="rotate(-33) translate(-9,61)" fill="#FFF"
  232. opacity="0.7"></ellipse>
  233. </svg>
  234. <p>I&#8217;ve now got a Ruby module that calls into the JAXP API.&#160; Why is this a big deal?&#160; Validator.nu has a <a href="http://about.validator.nu/htmlparser/apidocs/nu/validator/htmlparser/dom/HtmlDocumentBuilder.html">HtmlDocumentBuilder</a> that complies with HTML 5.&#160; Furthermore, <a href="http://xml.apache.org/xalan-j/xpath_apis.html">JAXP has full support for XPath</a> and Nokogiri has the ability to convert CSS into XPath.&#160; This may seem like going the long way around, but my intuition is that the expensive parts will be transferring data across the language boundary (especially strings).&#160; Having a DOM entirely on the Java side, probed via CSS selectors and/or XPath expressions and only retrieving the specific nodes across the Java/Ruby boundary for further processing should minimize this issue.&#160; And the end result should be able to pass all of the Nokogiri and Validator.nu tests.</p>
  235. <p><a href="http://intertwingly.net/blog/2009/06/17/Calling-JAXP-from-Ruby">...</a></p>
  236. <footer>
  237. <a title="Calling JAXP from Ruby" href="http://intertwingly.net/blog/2009/06/17/Calling-JAXP-from-Ruby#comments">2 comments</a>
  238. </footer>
  239. </article>
  240. <article>
  241. <header>
  242. <h3><a rel="bookmark" href="http://intertwingly.net/blog/2009/06/15/Invoking-HtmlParser-from-C">Invoking HtmlParser from C++</a></h3>
  243. <hr/><div><time title="GMT" datetime="2009-06-15T19:03:47Z">Mon 15 Jun 2009 at 19:03</time></div>
  244. </header>
  245. <svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100">
  246. <g stroke-linecap="round" stroke-linejoin="round">
  247. <path d="M15,68v-29c27-1,26,0,26,29M86,39v29c-27,1-26,0-26-29" stroke="#000" stroke-width="20" opacity="0.5"></path>
  248. <path d="M8,10h15c26,97,26,97,52,0h15c-32,115-50,115-82,0z" fill="#2a2863" stroke-width="4" stroke="#2a2863" stroke-opacity="0.5"></path>
  249. <path d="M15,68v-29c27-1,26,0,26,29M86,39v29c-27,1-26,0-26-29" stroke="#FFF" stroke-width="8" fill="none"></path>
  250. </g>
  251. </svg>
  252. <p>On <a href="http://intertwingly.net/blog/2009/06/12/Validator-Nu-on-GCJ">Friday</a>, I said <em>Next task is to repackage the htmlparser as a library, and to reimplement the HTML2XML tool itself in C++</em>.&#160; This is now <a href="http://intertwingly.net/stories/2009/06/15/">done</a>.&#160; In the process, I also converted a <code>SystemErrErrorHandler</code> class into C++ so that I could be sure that I was able to do both Java=&gt;C++ and C++=&gt;Java calls.</p>
  253. <p><a href="http://intertwingly.net/blog/2009/06/15/Invoking-HtmlParser-from-C">...</a></p>
  254. <footer>
  255. <a title="Invoking HtmlParser from C++" href="http://intertwingly.net/blog/2009/06/15/Invoking-HtmlParser-from-C#comments">2 comments</a>
  256. </footer>
  257. </article>
  258. <article>
  259. <header>
  260. <h3><a rel="bookmark" href="http://intertwingly.net/blog/2009/06/14/Rest-In-Place">Rest In Place</a></h3>
  261. <hr/><div><time title="GMT" datetime="2009-06-14T10:54:28Z">Sun 14 Jun 2009 at 10:54</time></div>
  262. </header>
  263. <svg xmlns='http://www.w3.org/2000/svg' width="100" height="100" viewBox="0 0 100 100">
  264. <path d='M1,12c0-7,4-11,11-11h87v87c0,5-5,11-11,11h-87z' fill='#723' stroke='#712' stroke-width='2'></path>
  265. <path d='M13,22h80v60l-40,15l-39-16z' fill='#a33'></path>
  266. <path d='M25,2l27,18l28,11l18,48v-77z' fill='#a54'></path>
  267. <path d='M80,31l19,8l-9,20z' fill='#d5a67c'></path>
  268. <path d='M78,2l2,29l19,8z' fill='#c98'></path>
  269. <path d='M53,20l25-18l2,29z' fill='#b76'></path>
  270. <path d='M90,58l8,20l-20,7z' fill='#b65'></path>
  271. <path d='M98,78l-47,18l2,2h36zM25,2l28,18l-27,10l-12,27l-11-19z' fill='#a72d3a'></path>
  272. <path d='M14,56l-11,23l26,6z' fill='#924'></path>
  273. <path d='M93,23c-38-35-78,17-77,69h41c-17-52,7-81,35-67zM62,80l-7-1l2,5h7zM15,72l-7-1l-2,7l8,1zM58,62l-5-3v5l6,3zM22,47l-7-3l-2,6l7,3zM59,48l-4-4l-1,4l4,4zM62,31l-2,4l3,3l1-3zM34,26l-4-3l-4,4l5,4zM73,25h-4l1,4l3-1zM86,24h-4v2h4zM87,14l-4-3v3l4,2zM50,13l-3-4l-4,3l3,4zM68,10l-2-4h-5l2,4z' fill='#FFF'></path>
  274. </svg>
  275. <p><a href="http://24ways.org/2005/edit-in-place-with-ajax">Edit in place</a> is a handy feature where clicking on an area of a web page replaces that portion of the page with a form which will enable the user to update that information.&#160; At one time, this was a part of Rails, but in 2007 it moved out to a <a href="http://github.com/rails/in_place_editing/tree/master">plugin</a>, and <a href="http://github.com/nakajima/better-edit-in-place/tree/master">improved upon</a>.&#160; The one that looked like it most closely matched my needs was <a href="http://jan.varwig.org/projects/rest-in-place">REST in Place</a>.&#160; It comes in <a href="http://github.com/janv/rest_in_place/tree/21b0fae04e34ee8e7f962559c572896e6a79726f/javascripts">three flavors</a>, I picked JQuery.</p>
  276. <p><a href="http://intertwingly.net/blog/2009/06/14/Rest-In-Place">...</a></p>
  277. <footer>
  278. <a title="Rest In Place" href="http://intertwingly.net/blog/2009/06/14/Rest-In-Place#comments">11 comments</a>
  279. </footer>
  280. </article>
  281. <article>
  282. <header>
  283. <h3><a rel="bookmark" href="http://intertwingly.net/blog/2009/06/13/Rails-Edge-Very-Stable-Lately">Rails Edge - Very Stable Lately</a></h3>
  284. <hr/><div><time title="GMT" datetime="2009-06-13T10:04:01Z">Sat 13 Jun 2009 at 10:04</time></div>
  285. </header>
  286. <svg xmlns='http://www.w3.org/2000/svg' width="100" height="100" viewBox="0 0 100 100">
  287. <path d='M1,12c0-7,4-11,11-11h87v87c0,5-5,11-11,11h-87z' fill='#723' stroke='#712' stroke-width='2'></path>
  288. <path d='M13,22h80v60l-40,15l-39-16z' fill='#a33'></path>
  289. <path d='M25,2l27,18l28,11l18,48v-77z' fill='#a54'></path>
  290. <path d='M80,31l19,8l-9,20z' fill='#d5a67c'></path>
  291. <path d='M78,2l2,29l19,8z' fill='#c98'></path>
  292. <path d='M53,20l25-18l2,29z' fill='#b76'></path>
  293. <path d='M90,58l8,20l-20,7z' fill='#b65'></path>
  294. <path d='M98,78l-47,18l2,2h36zM25,2l28,18l-27,10l-12,27l-11-19z' fill='#a72d3a'></path>
  295. <path d='M14,56l-11,23l26,6z' fill='#924'></path>
  296. <path d='M93,23c-38-35-78,17-77,69h41c-17-52,7-81,35-67zM62,80l-7-1l2,5h7zM15,72l-7-1l-2,7l8,1zM58,62l-5-3v5l6,3zM22,47l-7-3l-2,6l7,3zM59,48l-4-4l-1,4l4,4zM62,31l-2,4l3,3l1-3zM34,26l-4-3l-4,4l5,4zM73,25h-4l1,4l3-1zM86,24h-4v2h4zM87,14l-4-3v3l4,2zM50,13l-3-4l-4,3l3,4zM68,10l-2-4h-5l2,4z' fill='#FFF'></path>
  297. </svg><p><a href="http://yehudakatz.com/2009/06/11/rails-edge-architecture/">Yehuda Katz</a>: ... <em>have focused quite a bit on maintaining backward compatibility (for the user-facing API) with Rails 2.3. If you try edge and find that we&#8217;ve broken something, definitely let us know.</em></p>
  298. <p>I&#8217;ve been running automated tests on Rails, focusing on edge, for about a month now.&#160; Four problems were found during the process.</p>
  299. <p><a href="http://intertwingly.net/blog/2009/06/13/Rails-Edge-Very-Stable-Lately">...</a></p>
  300. <footer>
  301. <a title="Rails Edge - Very Stable Lately" href="http://intertwingly.net/blog/2009/06/13/Rails-Edge-Very-Stable-Lately#comments">3 comments</a>
  302. </footer>
  303. </article>
  304. <article>
  305. <header>
  306. <h3><a rel="bookmark" href="http://intertwingly.net/blog/2009/06/12/Validator-Nu-on-GCJ">Validator.Nu on GCJ</a></h3>
  307. <hr/><div><time title="GMT" datetime="2009-06-12T10:49:23Z">Fri 12 Jun 2009 at 10:49</time></div>
  308. </header>
  309. <svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100">
  310. <g stroke-linecap="round" stroke-linejoin="round">
  311. <path d="M15,68v-29c27-1,26,0,26,29M86,39v29c-27,1-26,0-26-29" stroke="#000" stroke-width="20" opacity="0.5"></path>
  312. <path d="M8,10h15c26,97,26,97,52,0h15c-32,115-50,115-82,0z" fill="#2a2863" stroke-width="4" stroke="#2a2863" stroke-opacity="0.5"></path>
  313. <path d="M15,68v-29c27-1,26,0,26,29M86,39v29c-27,1-26,0-26-29" stroke="#FFF" stroke-width="8" fill="none"></path>
  314. </g>
  315. </svg><p>This turned out to be much easier than I thought.&#160; The tool I chose to focus on itself isn&#8217;t very important, it simply converts HTML5 into XHTML5.&#160; But for it to work at all essentially requires the whole of the htmlparser library to be functional, as well as its dependencies (namely chardet and icu4j).</p>
  316. <p>Next steps are to rewrite the tool itself in C++ and generate bindings for a <a href="http://www.swig.org/compat.html#SupportedLanguages">host of other languages</a>.</p>
  317. <p><a href="http://intertwingly.net/blog/2009/06/12/Validator-Nu-on-GCJ">...</a></p>
  318. <footer>
  319. <a title="Validator.Nu on GCJ" href="http://intertwingly.net/blog/2009/06/12/Validator-Nu-on-GCJ#comments">2 comments</a>
  320. </footer>
  321. </article>
  322. <article>
  323. <header>
  324. <h3><a rel="bookmark" href="http://intertwingly.net/blog/2009/06/09/Whenever">Whenever</a></h3>
  325. <hr/><div><time title="GMT" datetime="2009-06-09T13:58:09Z">Tue 09 Jun 2009 at 13:58</time></div>
  326. </header>
  327. <svg xmlns='http://www.w3.org/2000/svg' width="78" height="129" viewBox="0 0 78 129">
  328. <path d='M2,11c0,40,34,34,34,54c0,17-34,10-34,53h74c0-43-35-35-35-53c0-20,35-20,35-54z' stroke='#000' fill='#DDD'></path>
  329. <path d='M5,115h68c0-1,0-10-4-19h-60c-4,9-4,19-4,19M12,36c14,1,36,1,50,0c-1,5-23,14-24,25c0-11-24-19-26-25' fill='#B5AB93'></path>
  330. <path d="M1,1h76v10h-76zM1,117h76v10h-76z" stroke='#000' fill='#663624'></path>
  331. <path d='M10,15h16c0,28,12,29,13,45c-5-19-27-19-29-45M10,116h15c-4-29,12-28,13-47c-5,19-31,13-28,47' fill='#FFF' opacity='0.6'></path>
  332. </svg>
  333. <p><a href="http://railscasts.com/episodes/164-cron-in-ruby">Ryan Bates</a>: <em>Cron is great for handling recurring tasks, but it is an external dependency with a crazy syntax. In this episode I show you how to use Whenever to create cron jobs with Ruby.</em></p>
  334. <p>In all of my <a href="http://intertwingly.net/blog/2009/05/26/Provisioning-a-New-Machine">re-provisioning</a> activities, updating cron was the one piece that I didn&#8217;t automate.&#160; <a href="http://github.com/javan/whenever/tree/master">Whenever</a> does fill this need quite nicely.&#160; In converting over existing applications, the only issue I encountered is that some of my tasks were executed at times that didn&#8217;t match the much simpler syntax that Whenever provides, so I <a href="http://github.com/rubys/whenever/blob/08e8a2fd2c8c89676e0477477bdeddb086eb7c20/test/output_at_test.rb">added a few tests</a> and <a href="http://github.com/rubys/whenever/tree/master">made a fork</a>.&#160; I created a pull request, so hopefully this change (or at least the tests) will be pulled into <a href="http://github.com/javan">javan&#8217;s</a> tree shortly.</p>
  335. <footer>
  336. <a title="Whenever" href="http://intertwingly.net/blog/2009/06/09/Whenever#comments">4 comments</a>
  337. </footer>
  338. </article>
  339. <article>
  340. <header>
  341. <h3><a rel="bookmark" href="http://intertwingly.net/blog/2009/06/08/Google-Chrome-on-Linux-First-Impressions">Google Chrome on Linux First Impressions</a></h3>
  342. <hr/><div><time title="GMT" datetime="2009-06-08T14:50:44Z">Mon 08 Jun 2009 at 14:50</time></div>
  343. </header>
  344. <svg xmlns='http://www.w3.org/2000/svg' width="100" height="100" viewBox="0 0 100 100">
  345. <circle cx='50' cy='50' r='44' fill='#666'></circle>
  346. <path d='M48,95c-8-1-15-7-18-11s-6-6-2-11s17-12,17-12c-9-2-15-10-15-19v-5c0-1-1-3-4-6c-8-9-4-13-4-17a47,45,0,0,0,28,81' fill='#2A2'></path>
  347. <path d='M32,33c4-11,25-18,36-1h4c3,0,13,2,21,4a45,51,0,0,0-67-24c0,0-1,4,0,7s4,9,5,12' fill='#C11'></path>
  348. <path d='M34,75c0,0-4,3-2,6c3,3,12,12,22,14a47,45,0,0,0,34-72c0,0,6,9,6,17c-5-1-13-6-24-5c6,18-9,27-19,26' fill='#FD0'></path>
  349. <path d='M45,61c-9-2-16-9-15-24c0,0,0-2-2-4a24,23,0,0,0,13,30M72,32a24,23,0,0,0-42-4l2,5c5-12,26-17,36-1M70,36c5,13-3,26-19,26l-5,4a24,23,0,0,0,28-28M28,23c3-1,1-6-2-6zM34,13a3,1-30,1,0,0,1M20,18c-19,26-15,43,3,60c7,6,2,6-1,3c-17-13-24-38-2-63M25,30l-3-1c-3,1-9-2-1-7' fill='#FFF' opacity='.4'></path>
  350. <radialGradient id='gcb' cx='50' cy='39' r='20' gradientUnits='userSpaceOnUse'>
  351. <stop offset='0' stop-color='#BDF'></stop>
  352. <stop offset='.5' stop-color='#18C'></stop>
  353. <stop offset='1' stop-color='#333'></stop>
  354. </radialGradient>
  355. <circle cx='50' cy='42' r='18' fill='url(#gcb) #37C'></circle>
  356. <path d='M74,88c0,0,1-3-3-7c14-8,19-22,20-33c0,0,5-1,6,7M62,93c0,0-3-2-5-7c0,0,6-1,10-3c0,0,4,3,3,8' stroke='#EC0' fill='none'></path>
  357. </svg><p>I took the <a href="http://dev.chromium.org/getting-involved/dev-channel#TOC-For-Linux">Early Access version of Google Chrome for Linux</a> for a spin.</p>
  358. <p>I don&#8217;t see me changing my usage on my desktop as I don&#8217;t currently have any &#8220;pain points&#8221; with Firefox, but I can definitely see me switching on my NetBook later this year if Chrome continues to be appreciably faster that the version of the browser that ships with Karmic Koala.</p>
  359. <p><a href="http://intertwingly.net/blog/2009/06/08/Google-Chrome-on-Linux-First-Impressions">...</a></p>
  360. <footer>
  361. <a title="Google Chrome on Linux First Impressions" href="http://intertwingly.net/blog/2009/06/08/Google-Chrome-on-Linux-First-Impressions#comments">6 comments</a>
  362. </footer>
  363. </article>
  364. <article>
  365. <header>
  366. <h3><a rel="bookmark" href="http://intertwingly.net/blog/2009/06/07/Google-Wave-Robot-w-Sinatra-JRuby-AppEngine">Google Wave Robot w/Sinatra+JRuby+AppEngine</a></h3>
  367. <hr/><div><time title="GMT" datetime="2009-06-07T19:18:12Z">Sun 07 Jun 2009 at 19:18</time></div>
  368. </header>
  369. <svg xmlns='http://www.w3.org/2000/svg' width="100" height="90" viewBox="0 0 100 90">
  370. <defs>
  371. <linearGradient id="wave1" gradientTransform="rotate(70)">
  372. <stop stop-color="#F10" offset=".7"></stop><stop stop-color="#710" offset="1"></stop>
  373. </linearGradient>
  374. <linearGradient id="wave2">
  375. <stop stop-color="#B81" offset="0"></stop><stop stop-color="#FD6" offset=".5"></stop>
  376. </linearGradient>
  377. <filter id="wave3">
  378. <feGaussianBlur stdDeviation="2"></feGaussianBlur>
  379. </filter>
  380. </defs>
  381. <path d='M2,31c2-27,11-24,15,2z' fill='#0991ec'></path>
  382. <path d='M11,12c2,3,2,2,3,5l10,42c4,16,11,12,13,0l10-41l-3,8l-4,16c-2,8-4,8-6,0l-4-14z' fill='url(#wave1)'></path>
  383. <path d='M46,27c2,0,3,4,3,5l3,16l18,18l-10-39c-3-19-12-19-14,0' fill='url(#wave2)'></path>
  384. <path d='M66,44l4-18c1-3,3-5,6-6l20-8s-2,1-3,4l-11,47c-4,9-8,9-12,0z' fill='#5bb753'></path>
  385. <path d='M16,82l15-5l32-3l30,12h-55z' fill='#ddd' filter="url(#wave3)"></path>
  386. </svg><p><a href="http://blog.inigral.com/2009/06/07/a-google-wave-robot-container-in-sinatra/">Mike Sofaer</a>: <em>Since I got a Google Wave account at Google IO, I felt like I should try to do something Ruby-ish in it.&#160; I got talking to Charles Nutter, and he suggested a Sinatra template for Wave Robots.&#160; So here it is.</em></p>
  387. <p>Good job!&#160; I&#8217;m jealous.&#160; Not havinging the foresight to go to Google I/O, I can&#8217;t play yet.</p>
  388. <p><a href="http://intertwingly.net/blog/2009/06/07/Google-Wave-Robot-w-Sinatra-JRuby-AppEngine">...</a></p>
  389. <footer>
  390. <a title="Google Wave Robot w/Sinatra+JRuby+AppEngine" href="http://intertwingly.net/blog/2009/06/07/Google-Wave-Robot-w-Sinatra-JRuby-AppEngine#comments">3 comments</a>
  391. </footer>
  392. </article>
  393. <article>
  394. <header>
  395. <h3><a rel="bookmark" href="http://intertwingly.net/blog/2009/06/01/Wave-Robot-Ruby-Client">Wave Robot Ruby Client</a></h3>
  396. <hr/><div><time title="GMT" datetime="2009-06-01T22:08:50Z">Mon 01 Jun 2009 at 22:08</time></div>
  397. </header>
  398. <svg xmlns='http://www.w3.org/2000/svg' width="100" height="90" viewBox="0 0 100 90">
  399. <defs>
  400. <linearGradient id="wave1_2" gradientTransform="rotate(70)">
  401. <stop stop-color="#F10" offset=".7"></stop><stop stop-color="#710" offset="1"></stop>
  402. </linearGradient>
  403. <linearGradient id="wave2_2">
  404. <stop stop-color="#B81" offset="0"></stop><stop stop-color="#FD6" offset=".5"></stop>
  405. </linearGradient>
  406. <filter id="wave3_2">
  407. <feGaussianBlur stdDeviation="2"></feGaussianBlur>
  408. </filter>
  409. </defs>
  410. <path d='M2,31c2-27,11-24,15,2z' fill='#0991ec'></path>
  411. <path d='M11,12c2,3,2,2,3,5l10,42c4,16,11,12,13,0l10-41l-3,8l-4,16c-2,8-4,8-6,0l-4-14z' fill='url(#wave1_2)'></path>
  412. <path d='M46,27c2,0,3,4,3,5l3,16l18,18l-10-39c-3-19-12-19-14,0' fill='url(#wave2_2)'></path>
  413. <path d='M66,44l4-18c1-3,3-5,6-6l20-8s-2,1-3,4l-11,47c-4,9-8,9-12,0z' fill='#5bb753'></path>
  414. <path d='M16,82l15-5l32-3l30,12h-55z' fill='#ddd' filter="url(#wave3_2)"></path>
  415. </svg><p>Wanting to learn more about Google Wave, I ported the <a href="http://code.google.com/p/wave-robot-python-client/">Wave Robot Python Client library</a> to <a href="http://github.com/rubys/wave-robot-ruby-client/tree/master">Ruby</a>, mainly because I wanted to understand the protocol.&#160; The current protocol is tightly coupled to the Java server implementation.</p>
  416. <p>Overall, I feel that this Google Wave could benefit from earlier and wider reviews.&#160; In particular, the whole approach to JSON generation should be rethought.&#160; I look forward to testing interop with a live server, in particular one that I can self host.</p>
  417. <p><a href="http://intertwingly.net/blog/2009/06/01/Wave-Robot-Ruby-Client">...</a></p>
  418. <footer>
  419. <a title="Wave Robot Ruby Client" href="http://intertwingly.net/blog/2009/06/01/Wave-Robot-Ruby-Client#comments">9 comments</a>
  420. </footer>
  421. </article>
  422. <article>
  423. <header>
  424. <h3><a rel="bookmark" href="http://intertwingly.net/blog/2009/05/31/Google-Wave">Google Wave</a></h3>
  425. <hr/><div><time title="GMT" datetime="2009-05-31T19:06:35Z">Sun 31 May 2009 at 19:06</time></div>
  426. </header>
  427. <svg xmlns='http://www.w3.org/2000/svg' width="100" height="90" viewBox="0 0 100 90">
  428. <defs>
  429. <linearGradient id="wave1_3" gradientTransform="rotate(70)">
  430. <stop stop-color="#F10" offset=".7"></stop><stop stop-color="#710" offset="1"></stop>
  431. </linearGradient>
  432. <linearGradient id="wave2_3">
  433. <stop stop-color="#B81" offset="0"></stop><stop stop-color="#FD6" offset=".5"></stop>
  434. </linearGradient>
  435. <filter id="wave3_3">
  436. <feGaussianBlur stdDeviation="2"></feGaussianBlur>
  437. </filter>
  438. </defs>
  439. <path d='M2,31c2-27,11-24,15,2z' fill='#0991ec'></path>
  440. <path d='M11,12c2,3,2,2,3,5l10,42c4,16,11,12,13,0l10-41l-3,8l-4,16c-2,8-4,8-6,0l-4-14z' fill='url(#wave1_3)'></path>
  441. <path d='M46,27c2,0,3,4,3,5l3,16l18,18l-10-39c-3-19-12-19-14,0' fill='url(#wave2_3)'></path>
  442. <path d='M66,44l4-18c1-3,3-5,6-6l20-8s-2,1-3,4l-11,47c-4,9-8,9-12,0z' fill='#5bb753'></path>
  443. <path d='M16,82l15-5l32-3l30,12h-55z' fill='#ddd' filter="url(#wave3_3)"></path>
  444. </svg><p><a href="http://wave.google.com/">Google Wave</a> is clearly a <a href="http://agylen.com/2009/05/28/bullshit-graphs/">bold statement</a> that &#8220;this is the type of application that every browser should be able to run natively without needing to resort to a plugin&#8221;.</p>
  445. <p>Working on such a Ruby library, a Rails generator for Robots, and ultimately a Ruby implementation of the XMPP server itself would be of interest to me, once the project is <a href="http://www.waveprotocol.org/get-involved">open to outside participants</a>.</p>
  446. <p><a href="http://intertwingly.net/blog/2009/05/31/Google-Wave">...</a></p>
  447. <footer>
  448. <a title="Google Wave" href="http://intertwingly.net/blog/2009/05/31/Google-Wave#comments">14 comments</a>
  449. </footer>
  450. </article>
  451. <aside>
  452. <h2>Nav Bar</h2>
  453. <nav>
  454. <ul>
  455. <li><a href="http://en.wikipedia.org/wiki/Sam_Ruby">About</a></li>
  456. <li><a href="http://twitter.com/samruby">Twitter</a></li>
  457. <li><a href="/blog/comments.html">Comments</a></li>
  458. <li><a id="navbar_register" href="/blog/registry/">Register</a></li>
  459. <li><a href="/stats/">Statistics</a></li>
  460. <li><a href="/blog/archives/">Archives</a></li>
  461. <li><a href="http://planet.intertwingly.net/">Planet</a></li>
  462. <li><a href="http://code.intertwingly.net/public/">Code</a></li>
  463. <li><a href="http://www.pragprog.com/titles/rails3/agile-web-development-with-rails-third-edition">Rails</a></li>
  464. <li><a href="http://www.oreilly.com/catalog/9780596529260/">RESTful</a></li>
  465. <li><a href="/blog/2005/05/16/Disclaim-This">Disclaimer</a></li>
  466. </ul>
  467. </nav>
  468. </aside>
  469. </body>
  470. </html>

Total execution time 599 milliseconds.


About this ServiceMore options