{"id":311,"date":"2009-05-28T03:19:36","date_gmt":"2009-05-28T11:19:36","guid":{"rendered":"http:\/\/www.visophyte.org\/blog\/?p=311"},"modified":"2009-06-06T22:17:43","modified_gmt":"2009-06-07T06:17:43","slug":"bugxhibit-exhibit-on-bugzilla-results","status":"publish","type":"post","link":"https:\/\/www.visophyte.org\/blog\/2009\/05\/28\/bugxhibit-exhibit-on-bugzilla-results\/","title":{"rendered":"BugXhibit: Exhibit on Bugzilla results"},"content":{"rendered":"<p><a href=\"http:\/\/www.visophyte.org\/blog\/wp-content\/uploads\/2009\/05\/bugxhibit-timeline.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-thumbnail wp-image-312\" title=\"bugxhibit-timeline\" src=\"http:\/\/www.visophyte.org\/blog\/wp-content\/uploads\/2009\/05\/bugxhibit-timeline-600x380.png\" alt=\"bugxhibit-timeline\" width=\"600\" height=\"380\" srcset=\"https:\/\/www.visophyte.org\/blog\/wp-content\/uploads\/2009\/05\/bugxhibit-timeline-600x380.png 600w, https:\/\/www.visophyte.org\/blog\/wp-content\/uploads\/2009\/05\/bugxhibit-timeline-300x190.png 300w, https:\/\/www.visophyte.org\/blog\/wp-content\/uploads\/2009\/05\/bugxhibit-timeline-1024x648.png 1024w, https:\/\/www.visophyte.org\/blog\/wp-content\/uploads\/2009\/05\/bugxhibit-timeline.png 1334w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/p>\n<p>I know it has <a href=\"https:\/\/people.mozilla.com\/~mconnor\/PRD.html\">sorta been done before<\/a> (found via <a href=\"https:\/\/wiki.mozilla.org\/Bugzilla_Fixup\">Bugzilla Fixup Wiki Page<\/a> on a comment by faaborg), and I feel like there has to be another live version somewhere, but here we are.\u00a0 BugXhibit is an <a href=\"http:\/\/web.mit.edu\/\">MIT<\/a> <a href=\"http:\/\/simile.mit.edu\/\">SIMILE<\/a> <a href=\"http:\/\/www.simile-widgets.org\/exhibit\/\">Exhibit<\/a> widget fronting a bugzilla.mozilla.org quicksearch query.<\/p>\n<p><a href=\"http:\/\/clicky.visophyte.org\/tools\/bugxhibit\/bugxhibit.html\">Click here to go to a BugXhibit page where you can enter your own query<\/a>.\u00a0 Enter &#8220;gloda&#8221; if you want to see what the screenshots are based on.\u00a0 I feel like it would be improper of me to provide a link with a live query though.<\/p>\n<p>Go visit the <a href=\"http:\/\/hg.mozilla.org\/users\/bugmail_asutherland.org\/bugxhibit\/\">hg repo<\/a>.\u00a0 Or just download the source from the previous link.\u00a0 Please improve!\u00a0 (See the SIMILE Exhibit <a href=\"http:\/\/simile.mit.edu\/wiki\/Exhibit\/For_Authors\">docs<\/a> for how to do that.\u00a0 It&#8217;s all really easy.)<\/p>\n<p><a href=\"http:\/\/www.visophyte.org\/blog\/wp-content\/uploads\/2009\/05\/bugxhibit-tile-view.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-thumbnail wp-image-313\" title=\"bugxhibit-tile-view\" src=\"http:\/\/www.visophyte.org\/blog\/wp-content\/uploads\/2009\/05\/bugxhibit-tile-view-600x414.png\" alt=\"bugxhibit-tile-view\" width=\"600\" height=\"414\" srcset=\"https:\/\/www.visophyte.org\/blog\/wp-content\/uploads\/2009\/05\/bugxhibit-tile-view-600x414.png 600w, https:\/\/www.visophyte.org\/blog\/wp-content\/uploads\/2009\/05\/bugxhibit-tile-view-300x207.png 300w, https:\/\/www.visophyte.org\/blog\/wp-content\/uploads\/2009\/05\/bugxhibit-tile-view-1024x708.png 1024w, https:\/\/www.visophyte.org\/blog\/wp-content\/uploads\/2009\/05\/bugxhibit-tile-view.png 1206w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/p>\n<p>Notes:<\/p>\n<ul>\n<li>This uses bugzilla&#8217;s ctype=js for buglist.cgi.\u00a0 It apparently has been around since 2003 (<a href=\"https:\/\/bugzilla.mozilla.org\/show_bug.cgi?id=195530\">bug<\/a>)!\u00a0 And thanks to <a href=\"http:\/\/weblogs.mozillazine.org\/gerv\/\">Gerv<\/a>!\u00a0 Perhaps not too surprisingly, the format of the results is not inert JSON but live JS code that builds a would-be-Array where each bug&#8217;s info is stored in an array.\u00a0 What each element in the array stands for cannot be known from the results.\u00a0 I find that using ctype=csv is a good way to get the headers.\u00a0 Rather than doing that every time (cost concerns on the redundant query), I did it once for columnlist=all (which we always use) and stashed it in bugxhibit.js.\u00a0 This is dangerous because it is brittle; if you try and use bugxhibit against a saved search someone made public, I at least got many fewer columns (despite columnlist=all), and things just don&#8217;t match.\u00a0 Not to mention there is a &#8220;cf_blocking_fennec&#8221; flag in there that I feel like should not be there.<\/li>\n<li>It looks pretty easy to have bugzilla produce more sane JSON output via a template (although the security code that logs you out for a js request still should run, so don&#8217;t forget buglist.cgi.)<\/li>\n<li>Even with all columns exposed when using buglist.cgi, there are lots of interesting things that are not exposed.\u00a0 For example, flags are not exposed via buglist.cgi, so faceting on whether things are blockers or wanted can&#8217;t be done.\u00a0 Once you know the bug numbers from the query, you can obviously go fetch additional information, though I think that currently still needs to be XML format, but that&#8217;s not that hard.<\/li>\n<li>The code is friendly and splits up the whiteboard and keyword things so it does what you would expect and is not stupid.<\/li>\n<li>I made sliders for patch count and votes.\u00a0 They don&#8217;t work for me anymore, and I see XUL wrapper anger (on Firefox 3.0.x), so, uh, don&#8217;t be surprised if they fall down.<\/li>\n<li>The UI obviously sucks.\u00a0 But it&#8217;s a proof of concept, and you are the internet!\u00a0 You can do anything!<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>I know it has sorta been done before (found via Bugzilla Fixup Wiki Page on a comment by faaborg), and I feel like there has to be another live version somewhere, but here we are.\u00a0 BugXhibit is an MIT SIMILE &hellip; <a href=\"https:\/\/www.visophyte.org\/blog\/2009\/05\/28\/bugxhibit-exhibit-on-bugzilla-results\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[3],"tags":[63,34,61,60,59],"class_list":["post-311","post","type-post","status-publish","format-standard","hentry","category-mozilla","tag-bugxhibit","tag-bugzilla","tag-exhibit","tag-simile","tag-timeline"],"_links":{"self":[{"href":"https:\/\/www.visophyte.org\/blog\/wp-json\/wp\/v2\/posts\/311","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.visophyte.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.visophyte.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.visophyte.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.visophyte.org\/blog\/wp-json\/wp\/v2\/comments?post=311"}],"version-history":[{"count":5,"href":"https:\/\/www.visophyte.org\/blog\/wp-json\/wp\/v2\/posts\/311\/revisions"}],"predecessor-version":[{"id":317,"href":"https:\/\/www.visophyte.org\/blog\/wp-json\/wp\/v2\/posts\/311\/revisions\/317"}],"wp:attachment":[{"href":"https:\/\/www.visophyte.org\/blog\/wp-json\/wp\/v2\/media?parent=311"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.visophyte.org\/blog\/wp-json\/wp\/v2\/categories?post=311"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.visophyte.org\/blog\/wp-json\/wp\/v2\/tags?post=311"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}