New Bugzilla Todos Features

A few months ago I created Bugzilla Todos out of a need to see all the Bugzilla-related things I had to do in one place, and also quickly see what other people had to do (for example, when picking someone to review a patch).

It’s a basic UI that shows your review and flag requests, patches to check in, unfulfilled requests you made of other people, and assigned bugs. I just added a few features that I desperately wanted for it:

Live Updates: Bztodos now checks Bugzilla periodically for any new requests, and shows notifications of these new requests:

Favicon counter

Screen Shot 2013-05-02 at 9.18.01 AM

It shows the count of the new requests in the favicon (thanks to the tinycon library), and highlights new items in the list. It checks every 15 mintues. I hope that’s okay with Mozilla’s Bugzilla.

Remember Last Tab: When you visit the page again, the last tab you had selected will be open by default.

Keyboard shortcuts: Visit the ‘Review’ tab by simply typing ‘r’ when the page is focused. The shortcuts are based on the first letter of the tab, and ‘p’ for the ‘Respond’ tab.

Suggestions?

The Bugzilla queries used to fetch these queues are always in need of tweaking for unforseen situations. Please file an issue if the wrong items are showing up in a tab, and especially if something is missing. Also file if there are any suggestions at all.

 

 

 

Open Source Rocks – Follow Up

My last blog post was quite a downer, so I want to do a short follow up for posterity.

First of all, there were some nice responses to it from Steve Klabnik and especially Corey Haines, who gave a sincere straight-up apology. Several people have told me they are usually very nice, so keep that in mind.

The emails I got really stuck out to me. Some people had their own stories that were way worse than mine. Sadly, several said that this is why they’d never open sourced anything.

But I also got emails with people telling me how useful they’d found some of my open source projects. That right there makes it all worth it. Make sure you let people know when you appreciate their work, it might help balance out some of the bad.

I want to make it clear that you should definitely still open source your code. I still wouldn’t hesitate to open source something if I thought it could be useful to someone.

Being Ridiculed for My Open Source Project

Yesterday my colleague mentioned that a script I wrote was getting a lot of attention on Twitter. This particular project was something I wrote a couple years ago to help me out with a workflow. I had a lot of fun writing it and have gotten a ton of use out of it, and several people have expressed that they have too. I’d put it up on Github, so that others could potentially use it or use the code.

So I went to see what people were saying about this project. I searched Twitter and several tweets came up. One of them, I guess the original one, was basically like “hey, this is cool”, but then the rest went like this:

1 2 3

At this point, all I know is that by creating this project I’ve done something very wrong. It seemed liked I’d done something fundamentally wrong, so stupid that it flabbergasts someone. So wrong that it doesn’t even need to be explained.  And my code is so bad it makes people’s eyes bleed. So of course I start sobbing.

Then I see these people’s follower count, and I sob harder. I can’t help but think of potential future employers that are no longer potential. My name and avatar are part of its identity, and it’s just one step for a slightly curious person to see the idiot behind this project.

I queried some tweeters for more information on why exactly it was so bothersome. I didn’t get apologies from these tweeters.

The response to this from other people was overwhelmingly reassuring. The tweets were called out by several people, and I got a bunch of reassurance and support. I’m lucky to have friends in this industry that know me in person and through my work, and thus feel more compelled to speak up.

I evangelize open source whenever I meet new coders or go to meetups. I tell them to make something that they would find useful and put it out there. Can you imagine if one of these new open sourcerers took my advice and got this response, without the support I had. Can you imagine?

Update:

I got some apologies: http://programmingtour.blogspot.com/2013/01/im-sorry.htmlhttp://blog.steveklabnik.com/posts/2013-01-23-node, and I wrote a follow up post here: https://harthur.wordpress.com/2013/02/01/open-source-rocks-follow-up/

Also, it was hard for me to convey this, but the snarkiness of the tweets really made it so much worse. I wish I could explain why.

 

.

Filing Bugs in Bugzilla Components

I’m always filing bugs, and I usually know the Bugzilla component they’re supposed to go in. So I made a shortcut to get around the hoops of picking a component on the Bugzilla form. It’ll autocomplete on product and component name for faster filing:

Image

I also often search for bugs by summary in a component, so I made a shortcut for that too. You can search for open, closed, or both:

I’m interested in the common fields other people use when searching for bugs, so if you have any insight leave a comment.

 

 

Rainbow Update

A new version of Rainbow is out. This new version contains a bunch of tiny fixes that make it 10x more useful I think:

Extract color schemes from images

Extract the color scheme from any image on the page by right-clicking the image and selecting “Extract Color Scheme”:

Preview element colors

There’s now a “Preview Element Color” context menu item that will let you quickly inspect the background/text colors of any element in Rainbow’s color picker:

View last color

View whatever color was last copied/saved from the inspector with the “View Last Color” shortcut in Rainbow’s main menu:

This version also adds a French localization courtesy of Alain Besancon and some much-needed bug fixes.

Anyways, the real news is that 1.4 is the last version I’ll release on this code base barring any new locales or bugs. Soon I’ll be starting a complete re-write that might take awhile. The current code is written by a total JavaScript and programming n00b (me, four years ago) and uses XUL (thus can’t use Jquery or any nice new HTML features).

I’ll be converting it to HTML, modularizing it (starting with https://github.com/harthur/color), and making it a Addon-SDK-based addon and creating a Chrome extension if all goes well.

replace

I just published replace, a find-and-replace command line utility that others might find useful. I’m always wanting to replace strings spread throughout my code, and never found an easy way to do it. `find` + `sed` can do it, but the syntax is hard to remember and you don’t get easy-to-read feedback on what replacements are made. It’d be cooler if there were a tool devoted to this.

Replace takes a regular expression string (in JavaScript syntax), a replacement string, and files to search (or directories to search recursively when `-r` is specified). It will print out the lines that have been replaced:

screenshot of replace

There are quite a few other options and output choices, check out the GitHub for more information. It requires installing node.js and its package manager npm if you don’t already have them. Then you can install with:

npm install replace -g

Side note: It’s true that JavaScript is still quite a bit slower than bash/C, so it’s good to question why you’d write something like this in Javascript. I blame how nice it is to write programs in node, how nice it is to handle dependencies and distribute programs with npm, and all the really well-done node libraries out there (like colors for coloring console output). This is something I wouldn’t have taken my free time to write in any other environment.

Nightly Tester Tools Update

Nightly Tester Tools 3.0 has been released, containing some new features. Among the added features are Crashme functionality, copying about:support to pastebin, and viewing the pushlog of changes since the last nightly.

Since the update about the future of Nightly Tester Tools, there’s been some discussion around the addon compatibility feature. We decided to take out addon compatibility fixing for individual addons, but left in a checkbox that overrides compatibility checking for all addons. It works in the same way Addon Compatibility Reporter does, but everyone’s encouraged to install ACR to help report compatibility issues to addon authors.

Screenshot of Nightly Tester Tools Firefox menu

Mobile version

Aakash has been working on a mobile version of NTT, with a few of of the same features of the desktop version and a few mobile-specific ones. Nightly Tester Tools 3.0 for mobile has also been released.

Screenshot of mobile Nightly Tester Tools

You can request a feature by filing an NTT bug. Check out the code on Github (mobile code here).

Nightly Tester Tools Resurrection

Some of you may have noticed that the aptly named Nightly Tester Tools addon doesn’t work on nightly builds at the moment. A few months ago Dave Townsend mentioned that the popular Nightly Tester Tools extension was in need of some new owners and an update. A couple of people that work on automation have decided to lead an effort to revive Nightly Tester Tools and make it even better.

You can check out the list of current and proposed features on the wiki. We’re planning on removing a couple features, some of which have been superseded by Firefox features, including: crash report sidebar, session restore, and leak log analysis. Let us know if you use any of these features. In addition, we’re thinking about taking out the extension compatibility fixing. Extension compatibility is the main(/only) reason many people use Nightly Tester Tools, but now there’s the Addon Compatibility Reporter that keeps up to date with the extension compatibility changes (EDIT: many people have protested this and given some good reasoning, so it’s likely this will stay in).

A couple people already working on the effort are harth, jhammel, and aakashd on #qa on irc.mozilla.org. If you have any features you’d like to see in NTT you can of course comment on this blog post, or file a bug in the Nightly Tester Tools component.

If you’d like to contribute code, fork the Github repo. We’re sticking with the old code base for now but are keeping an eye on the Jetpack SDK for a switch at some point.