Wizz Extension Developer says:
“Extension Creation is serious business”
Hey BabelZillian translators, ever wonder who is behind those extensions you spend your time so kindly translating? Well, look no further!
We got the opportunity to interview MASA, the creator of the celebrated Thunderbrowse extension, which is in the top five of the AMO recommended extensions for Thunderbird…
Hello MASA would you please introduce yourself?
Hey, my name’s Jake; I’m 18 year old student working for GameSpotting! Networks, a small independent contracting firm that I started.
My work day is spent writing and reviewing code, writing bug fixes, dealing with users and some PR work. My programming time is spent mostly in coding time in XUL and JS, but I also do a bit of PHP, HTML and the like (it’s a fairly long list). I’ve done C++ work before (not so much now) and I aspire to earn my degree for a career as a Video Game developer.
As for hobbies: I like hanging out, talking, coding, building, playing with my buds on Xbox Live, writing scripts, acting, and doing work on my machinima* series, Mindless Intentions.
*For those playing at home, machinima is a corruption (or a portmanteau) between the words machine and cinema. It means to use video game characters instead of live actors to make movies.
You are the developer of various extensions, how did it all begin ?
Well, I tried Firefox after a debate at the old NSider forums (Nintendo of America’s Official Forums) and I liked how I could block ads and edit pages (before Greasemonkey there was an extension called R.I.P [I used that]).
I first started coding (I guess you can call it that) was when I wanted a feature in Firefox that wasn’t available for Windows machines (but it was on Linux). The feature I wanted so badly was to be able to middle click the Go button and have the url load in a tab, coincidentally, I called it Go Middle Click to New Tab (yes, the name is pretty ugly). I never released it (because it never worked) and stopped developing extensions for awhile.
Much much much later, I got a contract with OpenDNS (via a blog post looking for Firefox developers) to make PhishTank SiteChecker (I actually came up with this name). It was my first serious (ie: not something simple like a sidebar) extension and I did okay on it, finishing a working beta in less than 4 hours (THAT’S RIGHT: 4 HOURS [I work fast]).
The job got me a couple more contracts from KarmaSphere, Ratepoint and a few others. As well as the CEO of OpenDNS offered me a job at one point.
What made you start developing for Thunderbird?
Much later, I started using Thunderbird because Outlook stopped working and I didn’t want to bother fixing it. I had used Thunderbird before and thought it looked bad (because then, I thought everything that didn’t look like Outlook was bad) and uninstalled it. I had no idea I could use other themes (like the awesome own theme) instead of the default.
When I started using Thunderbird, I was pretty disappointed with both Thunderbird’s poor web handling when used with RSS feeds. But that’s where ThunderBrowse comes in.
ThunderBrowse (originally called URLBar for Thunderbird) started out as a crude elementary extension that I made (to be first) after I read a post on LifeHacker about changing your start page in Thunderbird. I played around with the concept and made an extension do the same. I believe the very first version (not released) actually loaded pages by changing the start page url back and forth (not a good idea). The whole backstory to ThunderBrowse can be easily found via GS! Networks case study (http://gamespottingnetworks.com/thunderbrowse).
Do you consider extension creation as a “funny playground” or do you consider extensions should be treated with as much seriousness (clean and smart code, usability, etc…) as the apps themselves ?
Extension creation is serious business! Very few extensions that were made to be funny have lasted very long. I make my extensions normally for some profit involved or because I wanted something and no one else has made it yet.
To me, extensions must provide something helpful or meaningful to a user. Usability is a huge benefit to an addon and can bring the author great success.
What would you say about the problem of beginning extension development? Did you find tools or code snippets or tutorials that helped? What would you suggest to a beginner?
Near the beginning of development, I’ll create a subfolder in my main “widgets” folder on my desktop. Inside the folder is an extension “template” that includes a few tools I wrote for easier testing and deployment. My most important advice to a beginner is to ask questions. To ask is to learn. MozillaZine and the official Mozilla IRC channels are a great place for this.
However, sometimes people won’t be able to answer your question. This means you either need to rephrase that question, or no one has even thought of trying it before (as was the case with ThunderBrowse).
Your Thunderbrowse extension can be seen as a kind of bridge between Thunderbird and the Web, which is more than a funny extension but somewhat of an evolution for the app itself. Don’t you consider that the ability to browse from inside Thunderbird should be a feature available as native in the application ? Do you have contacts with Thunderbird (or Messaging) development team ? What is their policy towards extensions ? (do they consider they want to have a sleeker and lighter application, so leave extra features to extensions, or do they intend to include some of the most useful bits ?)
That’s because it is a bridge between Thunderbird and websites 😀
To the surprise of most users, I actually don’t believe browsing should be a part of Thunderbird. As much as it would be a cool feature, I don’t think it should be added. We would just be getting another SeaMonkey. Except it’s prettier and not as outdated (last time I used SeaMonkey was in 2007). A lot of users love ThunderBrowse for two reasons:
- It greatly improves the RSS features in Thunderbird (something that has been lacking since Thunderbird started)
- It’s also a great browser to check up on websites, activate accounts, post comments, whatever within your mail client.
I actually don’t use the RSS features in Thunderbird (I did at one point but stopped). I prefer FeedDemon but that’s a different story.
Quite a few people on the Thunderbird Development team are aware of ThunderBrowse and I think a few actually use it. I do get to talk to them a lot over IRC about some bugs that would benefit extension developers (Message to all Thunderbird extension developers: Guess what? The Thunderbird dev team is actually REALLY interested in what other devs think, so if you are having problems with development or have an idea to make it easier, tell it to them).
A couple of times I’ve been asked my opinion on a few ideas by the dev team, some of which have influenced some key development points. People are starting to accept the fact that browsing can be done in Thunderbird.
It used to be that I would go into the IRC room and say: “I’m having a problem with meta redirects (this is just an example). They don’t go where they are supposed to.” The response would typically be: “Thunderbird doesn’t do browsing.” Now they respond: “Well, you made the browser, figure it out.”
I laugh every time.
Do you feel the whole localization process as a boring waste of time for developers who are more busy and excited with code development?
While localization is important, it does bring up quite a few issues that look better in a list:
- Support: Many users will have some problem with some software at some point. There really isn’t much of a fix here other than to make the software as simplistic as possible. If a user has a problem, they will likely tell you in their native language (this used to happen a lot) and as much as I would like to help, I can’t get any further than what google translate tells me.
- Testing: Before release, I have to cycle through every locale to make sure it works. I have to do this now ever since we had a problem with a few locales losing encoding
- Releasing: Because everyone obviously have some sort of life outside of translating, you have to wait for each and every person to be done with their locales until you can release.
However, localization does outweigh the points above:
- Usability: Everything is easier when it’s in your language. Localizing pretty much does this for you.
- Success: Mozilla actually prefers extensions that have a lot/fair amount of locales (if you wanna get recommended, there’s a protip)
- Cleaner: code won’t be cluttered with lots of string lines
- It shows class: Personally, I think that an extension is better if it supports other languages. It shows to me that you are determined to help the user in anyway that you can. I respect that.
Best thing to do? Have all your strings in your file to begin with, then one by one, move them over (this way you don’t run into any problems). There are a couple of extensions that are supposed to help out with this, but I’ve yet to use them.
What is your personal appreciation of what BabelZilla can bring to the localization process?
The best part of BabelZilla is that I can upload my extensions, write a new post in the forum thread, and somewhat forget about it until the locales are done. Some of my translators point out bugs that I’ve missed too, saving me the trouble of having to fix them in a later release. So that’s cool. If you are busy like I am, BabelZilla is a LIFE SAVER.
Can you tell us what extensions you have in store for the future? Got anything cooking back at the Lab?
Other than delicious food, no not really. I’ve been spending most of my time on ThunderBrowse, trying to make it the best it can be so I can use it for my high school graduation requirements.
But if I were to tell you my secret development projects, they wouldn’t be secret, would they?
I guess not…
Glad we agree. 😀
Thank you for your time.
Hey, no problem.