<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>visophyte: shiny? shiny. &#187; Uncategorized</title>
	<atom:link href="http://www.visophyte.org/blog/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.visophyte.org/blog</link>
	<description>Andrew Sutherland writes things but (almost) always includes pictures to look at.</description>
	<lastBuildDate>Thu, 29 Sep 2011 02:22:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>test-case-mode support for jetpack unit tests in emacs</title>
		<link>http://www.visophyte.org/blog/2010/08/13/test-case-mode-support-for-jetpack-unit-tests-in-emacs/</link>
		<comments>http://www.visophyte.org/blog/2010/08/13/test-case-mode-support-for-jetpack-unit-tests-in-emacs/#comments</comments>
		<pubDate>Fri, 13 Aug 2010 17:03:49 +0000</pubDate>
		<dc:creator>Andrew Sutherland</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[jetpack]]></category>
		<category><![CDATA[test-case-mode]]></category>

		<guid isPermaLink="false">http://www.visophyte.org/blog/?p=557</guid>
		<description><![CDATA[Use Jetpack?  Occasionally write unit tests so you won&#8217;t be a complete hypocrite when criticizing other people&#8217;s code?  Think that picture up above looks more useful than this?: error: fail: list contents ("4,5,6,7" != "3,4,5,6,7") info: Traceback (most recent call last): File "resource://wmsy-jetpack-core-lib/timer.js", line 57, in notify this._callback.apply(null, []); File "resource://wmsy-jetpack-core-lib/unit-test.js", line 257, in anonymous [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-558" title="jetpack-test-case-mode" src="http://www.visophyte.org/blog/wp-content/uploads/2010/08/jetpack-test-case-mode.png" alt="" width="521" height="221" /></p>
<p>Use Jetpack?  Occasionally write unit tests so you won&#8217;t be a complete hypocrite when criticizing other people&#8217;s code?  Think that picture up above looks more useful than this?:</p>
<pre>error: fail: list contents ("4,5,6,7" != "3,4,5,6,7")
info: Traceback (most recent call last):
  File "resource://wmsy-jetpack-core-lib/timer.js", line 57, in notify
    this._callback.apply(null, []);
  File "resource://wmsy-jetpack-core-lib/unit-test.js", line 257, in anonymous
    timer.setTimeout(function() { onDone(self); }, 0);
  File "resource://wmsy-jetpack-core-lib/unit-test.js", line 282, in runNextTest
    self.start({test: test, onDone: runNextTest});
  File "resource://wmsy-jetpack-core-lib/unit-test.js", line 300, in start
    this.test.testFunction(this);
  File "resource://wmsy-jetpack-core-lib/unit-test.js", line 57, in runTest
    test(runner);
  File "resource://wmsy-wmsy-tests/test-vs-static.js", line 37, in anonymous
    slice.seek(6, 2, 2);
  File "resource://wmsy-wmsy-lib/wmsy/viewslice-static.js", line 51, in anonymous
    this._list.slice(this.bufLow, this.bufHigh));
  File "resource://wmsy-wmsy-tests/test-vs-static.js", line 31, in anonymous
    "list contents");
  File "resource://wmsy-jetpack-core-lib/unit-test.js", line 229, in assertEqual
    this.fail(message);
  File "resource://wmsy-jetpack-core-lib/unit-test.js", line 147, in fail
    console.trace();
</pre>
<p>Then do I have an .el for you!  <a href="http://hg.mozilla.org/users/bugmail_asutherland.org/tb-test-help/raw-file/5123bcb60766/jetpack-test-case-support.el">This</a> lives <a href="http://hg.mozilla.org/users/bugmail_asutherland.org/tb-test-help/">here</a>.  You mileage may vary and may involve things catching on fire which can, in turn, affect your mileage.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.visophyte.org/blog/2010/08/13/test-case-mode-support-for-jetpack-unit-tests-in-emacs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>emacs compilation-mode support for reviewboard</title>
		<link>http://www.visophyte.org/blog/2010/03/09/emacs-compilation-mode-support-for-reviewboard/</link>
		<comments>http://www.visophyte.org/blog/2010/03/09/emacs-compilation-mode-support-for-reviewboard/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 12:33:18 +0000</pubDate>
		<dc:creator>Andrew Sutherland</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[emacs]]></category>
		<category><![CDATA[review board]]></category>

		<guid isPermaLink="false">http://www.visophyte.org/blog/?p=447</guid>
		<description><![CDATA[Let&#8217;s say you&#8217;ve suckered someone into performing their review in my review board install (more info).  It looks pretty, no?  As the Amish say: &#8216;Tis a fine web page, but sure &#8217;tis no emacs buffer, English. Get your reviewboard-viewer.el here (repo here).  It basically just wgets the review with paths in a format the GNU [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.visophyte.org/blog/wp-content/uploads/2010/03/the-review.png"><img class="alignnone size-thumbnail wp-image-448" title="the-review" src="http://www.visophyte.org/blog/wp-content/uploads/2010/03/the-review-600x219.png" alt="" width="600" height="219" /></a></p>
<p>Let&#8217;s say you&#8217;ve suckered someone into <a href="http://reviews.visophyte.org/r/430009/">performing their review</a> in my <a href="http://www.reviewboard.org/">review board</a> install (<a href="http://www.visophyte.org/blog/tag/review-board/">more info</a>).  It looks pretty, no?  As <a href="http://www.imdb.com/title/tt0763026/quotes?qt0298485">the Amish say</a>: &#8216;Tis a fine web page, but sure &#8217;tis no emacs buffer, English.</p>
<p><a href="http://www.visophyte.org/blog/wp-content/uploads/2010/03/the-emacs-buffers.png"><img class="alignnone size-thumbnail wp-image-449" title="the-emacs-buffers" src="http://www.visophyte.org/blog/wp-content/uploads/2010/03/the-emacs-buffers-600x183.png" alt="" width="600" height="183" /></a></p>
<p>Get your <a href="http://hg.mozilla.org/users/bugmail_asutherland.org/reviewboard-emacs/raw-file/tip/reviewboard-viewer.el">reviewboard-viewer.el</a> here (<a href="http://hg.mozilla.org/users/bugmail_asutherland.org/reviewboard-emacs/">repo here</a>).  It basically just wgets the review with paths in a format the GNU regex will recognize and tells the temporary file to be a compilation-mode buffer with a little help in setting up the file search path.  There are instructions in the file, but the key non-intuitive things that are going to trip you up:</p>
<ul>
<li>You really want to invoke <em>reviewboard-viewer-view-review</em> from a dired buffer showing the root directory of what the patch is against.  This lets us set up the search path to be exactly correct with no heuristics.</li>
<li>The argument the above wants is the id that you will see in the &#8220;bugzilla-style export&#8221; link on the review page.  For example, I had to type the number 72 above.</li>
</ul>
<p>Other notes to people who are interested/care:</p>
<ul>
<li>There was a dumb bug in the bugzilla export code involving caching.  Previous bugzilla exports likely only showed the selected hunk for the first comment on the file.  I fixed this.</li>
<li>OpenID snafus:
<ul>
<li>Weave OpenID support via the <a href="https://wiki.mozilla.org/Labs/Weave/Identity/Account_Manager">Accout Manager</a> doesn&#8217;t work.  (Account Manager is where it got refactored to after it got dropped from Weave core).  I feel like it worked recently with 0.0.2, but just now when I tried (with 0.0.2) it pretended it was going to work and then failed to do so.  When I upgraded to 0.0.10 it decided to not even do that.  This is sad because Weave was the whole reason I went with OpenID; I wanted to make it easier than creating another throwaway account for people.</li>
<li>I hear that whatever Google OpenID-ish thing exists, it apparently does not work either.  This was not surprising since it was my understanding Google made their implementation correct but not interoperable without some extra work.</li>
<li><a href="https://pip.verisignlabs.com/">Verisign&#8217;s freebie OpenID thing</a> does work!</li>
<li>If someone knows of a django auth-compatible OpenID/OAuth/whatever implementation that will at least fix the Google situation and requires practically no work on my part, I would be happy to change to using that.  Right now I am using django-openid-auth which is old but works.  My <a href="http://hg.mozilla.org/users/bugmail_asutherland.org/opc-reviewboard/">reviewboard repo</a> is here if you are feeling especially generous about fixing things.</li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.visophyte.org/blog/2010/03/09/emacs-compilation-mode-support-for-reviewboard/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Doccelerator: JavaScript documentation via JSHydra into CouchDB with an AJAX UI</title>
		<link>http://www.visophyte.org/blog/2009/07/20/doccelerator-javascript-documentation-via-jshydra-into-couchdb-with-an-ajax-ui/</link>
		<comments>http://www.visophyte.org/blog/2009/07/20/doccelerator-javascript-documentation-via-jshydra-into-couchdb-with-an-ajax-ui/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 05:09:04 +0000</pubDate>
		<dc:creator>Andrew Sutherland</dc:creator>
				<category><![CDATA[CouchDB]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[doccelerator]]></category>
		<category><![CDATA[docs]]></category>
		<category><![CDATA[jshydra]]></category>

		<guid isPermaLink="false">http://www.visophyte.org/blog/?p=343</guid>
		<description><![CDATA[About the name.  David Ascher picked it.  My choice was flamboydoc in recognition of my love of angry fruit salad color themes and because every remotely sane name has already been used by the 10 million other documentation tools out there.  Regrettably not only have we lost the excellent name, but the color scheme is [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.visophyte.org/blog/wp-content/uploads/2009/07/doccelerator-1.png"><img class="alignnone size-thumbnail wp-image-346" title="doccelerator-1" src="http://www.visophyte.org/blog/wp-content/uploads/2009/07/doccelerator-1-600x371.png" alt="doccelerator-1" width="600" height="371" /></a></p>
<p>About the name.  <a href="http://ascher.ca/blog/">David Ascher</a> picked it.  My choice was flamboydoc in recognition of my love of <a href="http://www.emacswiki.org/emacs/AngryFruitSalad">angry fruit salad</a> color themes and because every remotely sane name has already been used by the 10 million other documentation tools out there.  Regrettably not only have we lost the excellent name, but the color scheme is at best mildly irritated at this point.</p>
<p>So why yet another JavaScript documentation tool:</p>
<ul>
<li>JavaScript 1.8 support.  <a href="http://quetzalcoatal.blogspot.com/2009/01/jshydra.html">JSHydra</a> (thanks <a href="http://quetzalcoatal.blogspot.com/">jcranmer</a>!) is built on spidermonkey.  In terms of existing JS documentation tools out there, they can be briefly lumped into &#8220;doesn&#8217;t even both attempting to parse JavaScript&#8221; and &#8220;parses it to some degree, but gets really confused by JavaScript 1.8 syntax&#8221;.  By having the parser be the parser of our  JS engine, parsing success is guaranteed.  And non-parsing tools tend to require too much hand labeling to be practical.</li>
<li>Docceleterator is not intended to be <em>just</em> a documentation tool.  While JSHydra is still in its infancy, it promises the ability to extract information from function bodies.  Its namesake, <a href="https://developer.mozilla.org/en/Dehydra">Dehydra</a>, is a static analysis tool for C++ and has already given us <a href="http://vocamus.net/dave/?p=557">great things</a> (dxr, also in its infancy).</li>
</ul>
<p><a href="http://www.visophyte.org/blog/wp-content/uploads/2009/07/doccelerator-comment.png"><img class="alignnone size-thumbnail wp-image-347" title="doccelerator-comment" src="http://www.visophyte.org/blog/wp-content/uploads/2009/07/doccelerator-comment-600x202.png" alt="doccelerator-comment" width="600" height="202" /></a></p>
<ul>
<li>Support community API docs contributions without forking the API docs or requiring source patches.  <a href="https://developer.mozilla.org/">DevMo</a> is a great place for documentation, but it is an iffy place for doxygen-style API docs.  Short of an exceedingly elaborate tool that round-trips doxygen/JSDoc comments to the wiki and user modifications back again, the documentation is bound to diverge.  By supporting comments directly on the semantic objects themselves[1], we eliminate having to try and determine what a given wiki change corresponds to.  (This would be annoying even if you could force the wiki users to obey a strict formatting pattern.)  This enables automatic patch generation, etc.</li>
<li>Mashable.  You post the JavaScript source file to a server running the doccelerator parser.  You get back a JSON set of documents.  You post those into a <a href="http://couchdb.org/">CouchDB</a> couch.  The UI is a <a href="http://github.com/jchris/couchapp/tree/master">CouchApp</a>; you can modify it.  Don&#8217;t like the UI, just want a service?  You can query the couch for things and get back JSON documents.  Want custom (CouchDB) views but are not in control of a documentation couch?  Replicate the couch to your own local couch and add some views.</li>
<li>Able to leverage data from dehydra/dxr.  Mozilla JS code lives in a world of XPCOM objects and their XPIDL-defined interfaces.  We want the JS documentation to be able to interact with that world.  Obviously, this raises some issues of where the boundary lies between dxr and Doccelerator.  I don&#8217;t think it matters at this point; we just need internal and API documentation for Thunderbird 3 now-ish.</li>
<li>A more &#8216;dynamic&#8217; UI.  The UI is inspired by <a href="http://www.tiddlywiki.com/">TiddlyWiki</a>&#8216;s interface where all wiki &#8220;pages&#8221; open in the same document.  I often find myself only caring about a few methods of a class at any given time.  Documentation is generally either organized in monolithic pages or single pages per function.  Either way, I tend to end up with a separate tab for each thing of interest.  This usually ends in both confusion and way too many tabs.</li>
</ul>
<p>1: Right now I only support commenting at the documentation display granularity which means you cannot comment on arguments individually, just the function/method/class/etc.</p>
<p>Example links which will eventually die because I&#8217;m not guaranteeing this couch instance will stay up forever:</p>
<ul>
<li><a href="http://clicky.visophyte.org/examples/live/doccelerator/_design/doccelerator/index.html#f=comm-central/mail/base/content/folderDisplay.js&amp;t=FolderDisplayWidget">Live version of the first screen shot of folderDisplay.js and FolderDisplayWidget</a></li>
<li><a href="http://clicky.visophyte.org/examples/live/doccelerator/_design/doccelerator/index.html#n=FTBO_stubOutAttributes">Live version of the second screen shot of comments on FTBO_stubOutAttributes.  Feel free to add your own.</a></li>
<li><a href="http://clicky.visophyte.org/examples/live/doccelerator/_design/doccelerator/index.html">Live version with nothing up.  Click on some files, explore!</a></li>
</ul>
<p>The hg repo is <a href="http://hg.mozilla.org/users/bugmail_asutherland.org/doccelerator/">here</a>.  I tried to code the JS against the 1.5 standard and generally be cross-browser compatible, but I know at least Konqueror seems to get upset when it comes time to post (modified) comments.  I&#8217;m not sure what&#8217;s up with that.</p>
<p>Exciting potential taglines:</p>
<ul>
<li>Doccelerator: Documentation from the future, because the documentation was doccelerated past the speed of light, and we all know how that turns out.</li>
<li>Doccelerator: It sounds like an extra pedal for your car and it&#8217;s just as easy to use&#8230; unless we&#8217;re talking about the clutch.</li>
<li>Doccelerator: Thankfully the name doesn&#8217;t demand confusingly named classes in the service of a stretched metaphor.  That&#8217;s good, right?</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.visophyte.org/blog/2009/07/20/doccelerator-javascript-documentation-via-jshydra-into-couchdb-with-an-ajax-ui/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>support your neighborhood Thunderbird global database</title>
		<link>http://www.visophyte.org/blog/2009/03/25/support-your-neighborhood-thunderbird-global-database/</link>
		<comments>http://www.visophyte.org/blog/2009/03/25/support-your-neighborhood-thunderbird-global-database/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 05:09:43 +0000</pubDate>
		<dc:creator>Andrew Sutherland</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[gloda]]></category>
		<category><![CDATA[pleas]]></category>
		<category><![CDATA[Thunderbird]]></category>

		<guid isPermaLink="false">http://www.visophyte.org/blog/?p=219</guid>
		<description><![CDATA[Do you know JavaScript?  Would you like to help improve Thunderbird and its exciting global database, gloda?  Now is your chance!  Check out these exciting bugs that are reasonably sized and independent tasks: Index non-offline messages.  Currently, gloda only indexes messages that are available offline. Show indexing status in the activity manager.  Is gloda indexing [...]]]></description>
			<content:encoded><![CDATA[<p>Do you know JavaScript?  Would you like to help improve Thunderbird and its exciting global database, gloda?  Now is your chance!  Check out these exciting bugs that are reasonably sized and independent tasks:</p>
<ul>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=466227">Index non-offline messages</a>.  Currently, gloda only indexes messages that are available offline.</li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=469051">Show indexing status in the activity manager</a>.  Is gloda indexing your messages?  No way to know*&#8230; if only we showed things in the activity manager&#8230;</li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=484639">Do not index junk messages</a>.  Gloda currently indexes your junk mail.  It should not.  Thunderbird knows when a message has been marked as junk, and knows who is a junk folder.  Help gloda give up spam cold turkey.</li>
<li><a href="https://bugzilla.mozilla.org/show_bug.cgi?id=480841">Implement a memory reporter for gloda</a>. This would help us debug things.  The follow-on would be to write something that actually outputs the information.</li>
</ul>
<p>Exciting? Exciting!</p>
<p>I don&#8217;t know much about psychology, but I have heard that people on the internet see a call-to-arms like this and say &#8220;I&#8217;m sure someone else better qualified will step up, maybe even hundreds of them&#8230; I&#8217;ll just let them take care of it.&#8221;  I have news for you, people on the internet are lazy!  Oh, so lazy!  (I am reasonably confident that won&#8217;t happen.  If it does happen, I will find enough work for everyone to do while I retire to a life of luxury funded by my ability to inexplicably motivate large swathes of the internet to do my bidding.)</p>
<p>Important steps!</p>
<ol>
<li><a href="https://developer.mozilla.org/en/Comm-central_source_code_(Mercurial)">Get yourself a copy of the comm-central codebase.</a></li>
<li>Build thunderbird! (Actually, that above link covers it, but you might also want to check out the <a href="https://developer.mozilla.org/en/Build_Documentation">general building info page</a>.)</li>
<li>Dance a victory jig!</li>
<li>Leave a note on one of those bugs saying that you are interested.  Or just e-mail me at <a href="mailto:asuth@mozillamessaging.com">asuth@mozillamessaging.com</a>!</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.visophyte.org/blog/2009/03/25/support-your-neighborhood-thunderbird-global-database/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

