Archive for the ‘browser extensions’ Category

Posted by Matt at 29 July 2010

Category: Programming, browser extensions, facebook, javascript, utils, web

Background

On July 28 2010, Apple officially released a new version of Safari, and along with it the Extension Gallery. A few weeks before the release, I received an email from Apple requesting that developers submit their extensions for consideration to be included in the gallery when it was released. I was happy that Better Facebook, my browser/script extension that I have been working on for almost a year, worked great in Safari and that I had previously figured out how to package an official Safari Extension. So I filled out the form and submitted Better Facebook to the gallery.

On the morning of July 28, I got an Google Alert email with a new match for the term "Better Facebook" (I am a self-stalker!). It pointed me to the Safari Extension Gallery, and I knew that I could expect a bump in traffic for the day.

Thankfully, Better Facebook is prominently featured in the gallery, near the top of the listings, and the first extension to be listed in the "Social Networking" category:

bfb_gallery

Impact On Site Traffic

Previously, my site got around 1,000 hits a day – sometimes more, which I was always pretty happy with. But you can see the history compared to July 28!

bfb_stats_long

Looking closer at just the one day of traffic, I found that I got over 16,000 hits to the site itself!

bfb_stats_day

Looking at the referers, I found that over 10,000 of those hits came directly from the Safari Extension Gallery:

bfb_stats_referers

I was happy to see that Better Facebook was mentioned in other stories about the Extension Gallery also, including ZDNet and Lifehacker.

I haven’t totaled up the number of actual downloads yet, but I did exceed my bandwidth limitations yesterday. I might need to increase my hosting capabilities if this continues.

Impact On Facebook Page

Better Facebook also has an official Page on Facebook, and the impact on the number of people who "Like" it was dramatic!

The history of "Likes" of the page looks like this:

bfb_stats_fan_history

A slow, steady growth pattern to what I considered to be a pretty impressive number – 8,500 fans before July 28th. But on the day itself, I saw an impressive growth of almost 2,000 new fans! That put the page over 10,000 fans, which is a number that many companies and pages would envy. As I write this, the page stands at 10,691 fans and it just keeps going up. It will be interesting to see the historical graph once it is updated in Facebook Insights.

Conclusion

I have put many hours of work into Better Facebook, and I’ve been happy to see it grow and its popularity slowly increase. I find it incredibly useful for myself, and most users seem enthusiastic about what it does also. The problem has always been how to get it to "explode" and really take off and find a wider userbase. Being listed in the Extension Gallery has finally been the spark that made this happen, and I’m very happy about it! It’s a fun, interesting experience and I get to learn a lot from it. It helps me create better software and learn new ways to share information and interact with users in the social space. I’m grateful for the exposure, and humbled by the positive reactions of thousands of users.

Now… can I somehow profit a little from this? Heh. We’ll see…

Posted by Matt at 26 March 2010

Category: GreaseMonkey, Programming, browser extensions, facebook, javascript

I had a number of users report problems with my Better Facebook! Firefox Add-on. The error was always with JSON.parse(), and it only happened with the Add-on, not the Greasemonkey version of the script. I was stumped for over a month. Couldn’t figure it out.

Finally, I found the root cause and solution.

The problem was unicode strings being passed into JSON.stringify(). This sometimes resulted in an invalid JSON structure, which then failed when passed to JSON.parse(). The root cause was not within my code, but within the Greasemonkey User Script Compiler that I used to create the Add-on.

The problem was that the script was not being read in using UTF-8, so when executed it didn’t properly handle UTF-8. In the script-compiler.js file, line 22 (for me) I found this:

var channel=ioService.newChannel(aUrl, null, null);

I simply had to change the line to this instead:

var channel=ioService.newChannel(aUrl, "UTF-8", null);

I re-packaged the add-on and the problem disappeared! Hopefully it anyone else runs into this, a quick Google search will find this page. In all my searching, I hadn’t come across anyone else talking about this specific issue. But solving a very needle-in-a-haystack problem is very rewarding, and I’ll be glad to stop getting error reports!

Posted by Matt at 10 February 2010

Category: GreaseMonkey, Programming, browser extensions, facebook, javascript, web

better_facebook_large I have officially released BetterFacebook.net to house my "Better Facebook" greasemonkey script and Firefox add-on.

The script has been updated to work with the new Facebook layout, and also now supports Chrome!

Check out the site and the script. I hope you find it useful!

BetterFacebook.net

Posted by Matt at 19 January 2010

Category: browser extensions, web

better_facebook_large Today my Better Facebook Firefox Add-On was approved to go public. It took a while (feels like the Apple App Store!) but after a few revisions it was finally put through the process.

This is just a re-packaging of my Better Facebook Greasemonkey Script that does the same thing.

The functionality includes:

  • Mark your Live Feed as "read" so old posts are hidden by default. Quickly and easily only see new posts
  • If new comments are found on old posts, they will be shown and highlighted for you
  • Hide or minimize by story type. For example, stop seeing all notifications about who your friends became friends with!
  • Pin the notifications panel to the upper right, so it is always easily visible
  • Track your friends, and if someone unfriends you it will automatically tell you who it was!

This script and add-on will continue to improve as I add more features. Enjoy!

Better Facebook Firefox Add-On

Posted by Matt at 7 October 2009

Category: GreaseMonkey, Programming, browser extensions, javascript

Example

This script was born out of a simple problem: I wanted to find out which movies have been released to theaters or DVD lately, and add them to my Netflix queue. Unfortunately, Netflix doesn’t provide an easy way to browse "major" movie releases by release date. However, IMDB always has a nice interface for this. Further, I’ve found myself at IMDB before, looking at a movie that I would like to add to my Netflix queue, but I had to go to Netflix, search, find the movie, then add it.

Solution? A new GreaseMonkey script!: Netflix Links on IMDB

I created this simple GreaseMonkey script, which adds a little red "+" next to movie titles on imdb.com. Clicking the image pops up a new window that searches on the movie name, usually finding the movie you want as the first match.

Easy! Hope it helps!

Posted by Matt at 10 June 2009

Category: browser extensions, web

collections

The Mozilla add-ons site has been re-designed, and we finally get the ability to group add-ons together into Collections, which can be installed all at once. Share all your add-ons with others, or make your own Collection to easily install your tools to new instances of the browser.

Now if they would only add automatic sync with my add-ons and settings.

By the way, if you aren’t using FEBE, you should. I have it back up all my Firefox settings nightly to box.net, so if my computer ever crashes I can quickly and easily get everything back. These days, a ton of my stuff is actually stored in the browser, so losing it is quite a hassle.

Posted by Matt at 13 April 2009

Category: browser extensions, web

firefox Like many Firefox users, I have a number of add-ons installed that customize the browser and make my work/browsing easier. Since these are very useful to me, I thought I would share my list in case anyone is interested in trying them out.

I’ve used an add-on called "Extension List Dumper" that makes it simple to dump a list of all installed add-ons. Enjoy.

Posted by Matt at 9 April 2009

Category: Programming, browser extensions, javascript, web

greasemonkey-logo GreaseMonkey is a Firefox extension that allows you to insert javascript into any web site you browse to in order to customize the interface or add/remove/change functionality.

I’ve known of its existence for a long time, but I’ve never used it, despite my interest and experience with javascript.  A recent change in iGoogle gadget functionality made me take another look, and now I’m hooked.

GreaseMonkey is not complicated, like I assumed. It’s simple. Very few API functions to learn, and you don’t even need to learn them to do most things. If you know enough about javascript, you can be up and running in no time.

Once its installed, I found the GreaseFire extension is also useful. It keeps a local database of GreaseMonkey scripts from userscripts.org and lets you know if there are any existing scripts available for the sites you are viewing.

For my first proof of concept, I created a user script for Facebook that will pin the notifications window to the upper right corner for easy access. No need to go down and click on it when it’s red. The script can be accessed here:

http://userscripts.org/scripts/show/46272

Most scripts out there are primitive, from what I can tell. The first thing I looked for was an existing library to easily manage user preferences, so a single script could offer the user multiple options. For example, what to hide, what to show, colors to use, etc. Unfortunately I couldn’t find anything that already existed, so I guess I’ll have to build my own. Maybe.

I also assumed there would be an easy way to upload and maintain scripts on userscripts.org, but it doesn’t look like that’s the case. It’s manual upload, so if I update my local version I have to go in and manually update the site. What a pain! Hopefully someone will improve this so updates to local scripts can be mirrored to the repository quickly and easily.

I’ll post more as I create them, I assume. I have more ideas for Facebook and for iGoogle, for sure…