I'm a developer of the Greasemonkey Firefox Addon that lets people customize the web by installing user scripts. If you having any idea what I'm talking about, please ask me anything.

For proof, send an email to the address on my GitHub user page and I'll fire back and message.

Edit: Some additional clarification. Greasemonkey is developed by a community. The original author is Aaron Boodman, and he left the project several years ago to go work for Google. He gave control of the project to Anthony Lieuallen and Johan Sundström. Anyone can volunteer their time to contribute to Greasemonkey, but the two maintainers ultimately have the say on what will be included in Greasemonkey. I'm a developer who has made a number of contributions and also had my fair share of ideas shot down. I'd be more than willing to go into specifics if anyone cares.

Comments: 77 • Responses: 30  • Date: 

Mobile_Artillery11 karma

As someone who knows decent javascript I'd just like to thank you for this, it's made using the web a TON more customizable! Thanks!

For the question part, what are your favorite types of scripts to use?

sizzlemctwizzle5 karma

I'd just like to thank you for this, it's made using the web a TON more customizable!

You can thank the original creator, Aaron Boodman (who currently works for Google) for that. I was writing user scripts long before I decided to try my hand at Greasemonkey.

what are your favorite types of scripts to use?

I use scripts that fix how I think a site should function (often removing unnecessary page loads or dumb restrictions). That said, the majority of scripts I use were written by me.

Mobile_Artillery4 karma

Sweet! Thanks for the response! Do you submit any of your scripts to userscript?

sizzlemctwizzle3 karma

https://userscripts.org/users/27715/scripts

Although, most are out-dated and not likely of much use to anyone (unless you frequent userscripts.org in which case this one is pretty damn useful).

callidusnihi6 karma

any plans to make GM available for Firefox Mobile (android)?

sizzlemctwizzle10 karma

Actually yes. This is what I'm currently working on. I have an android phone and I really want to install user scripts on it. The main obstacle is figuring out how to integrate with addons manager on FX mobile.

Mena9474 karma

Please explain what GM does to me like I'm 5. i really have no idea what it does but am completely interested in it.

sizzlemctwizzle5 karma

You install a script and it changes how a particular website looks or works. For instance, surely you've heard of the Reddit Enhancement Suite. Well that is really just a user script. Sure they wrap it up so you can install it alone in your browser, but I just install it directly using Greasemonkey apparently the user script is no longer maintained. User scripts are like light browser extensions that only modify websites (rather than add menus, toolbars, and do intense shit).

honestbleeps5 karma

yikes! for the sake of me and my tech support helpers:

if you install RES via Greasemonkey instead of as a native browser extension, it's going to be broken in various places...

RES abandoned Greasemonkey support a while back because it sort of outgrew Greasemonkey...

That said: Greasemonkey is a completely awesome tool and everyone should have/use it. It's both a great tool and a great way to learn about javascript! RES has just become too big and complicated a behemoth to efficiently maintain as a Greasemonkey script anymore.

sizzlemctwizzle1 karma

RES abandoned Greasemonkey support a while back because it sort of outgrew Greasemonkey..

Oh, I wasn't aware of that. Thanks for the heads up.

sizzlemctwizzle1 karma

Also, as the co-author of GM_config, your settings console makes me envious.

honestbleeps0 karma

I am thinking about making my console more widely usable / extensible / generic and packaging it in with BabelExt actually for exactly that reason :-)

(sorry, BabelExt is kind of a gateway for people to "move beyond Greasemonkey" in order to do things across 4 browsers instead of just 1 - but I truly do love Greasemonkey!)

sizzlemctwizzle1 karma

I took a look at the code for your console. What you're doing is a lot like how GM_config works (only your's is much prettier and fancy). GM_config only uses GM_setValue/GM_getValue in Greasemonkey and works in all other browsers using localStorage (see live demo).

As far BabelExt goes, that is a great idea. I'll definitely be using that if/when I decide to make a user script into a cross-browser extension.

honestbleeps0 karma

yeah the main difference is really that even as useful as GM_config is, I needed something that worked in other browsers, and I need some more complicated "option types", like the tables (filteReddit options, etc)...

it's tricky stuff to handle, for sure. I want to add even more functionality for it before moving it in to BabelExt.

sizzlemctwizzle1 karma

I need some more complicated "option types", like the tables (filteReddit options, etc)

Just a heads up, GM_config v3 has support for custom types.

mozza52 karma

What would your death row meal be?

sizzlemctwizzle19 karma

At least three Crunchwrap Supremes (because they give me horrible diarrhea) and four NOS energy drinks because I would want to make a huge mess.

Sophira2 karma

I love Greasemonkey! I personally have a ton of scripts I wrote for various things.

One thing does bug me, though - the decision that was made to use the Add-On Manager rather than the nice dialog it used to use for listing scripts and adding exceptions. Why was that done, and is there any way to revert back to the old behaviour?

sizzlemctwizzle1 karma

Why was that done,

The old manager was crappy (ever install a lot of script and try to scroll?) and hard to maintain. It just seemed like a better idea make user scripts more like extensions. I'm not the one who made the decision so I can't give you all the answers.

and is there any way to revert back to the old behaviour?

Install an old version.

horror_fan1 karma

Thanks for your contribution to the interwebs. I used a greasemonkey addon to fill-in my timesheets at work cos they were repetitive and boring. :)

Noob question: I want to write a script, which will take a file containing movie names, goto imdb and provide me with rating,length,genre etc. What language can i do this in and how do i get started with it?

sizzlemctwizzle1 karma

I used a greasemonkey addon to fill-in my timesheets at work cos they were repetitive and boring. :)

haha I've totally done this too.

which will take a file containing movie names, goto imdb and provide me with rating,length,genre etc. What language can i do this in and how do i get started with it?

I'd probably do this using Node.js (and therefore JavaScript). Read the file, get the imdb page, parse the response with regular expressions, and then write a file with the parsed info. This would have been easier (since you could use DOM functions on the response instead of RegExp) if we had implemented file i/o in GM but they ultimately turned that idea down (well it wasn't entirely turned down but the requirements for it to be added would mean a lot of work that I didn't really want to do). You could probably also build this a restartless Firefox extension.

Hapistoric1 karma

Do you earn any money with GreaseMonkey ?

sizzlemctwizzle1 karma

No, I'm a volunteer.

csolisr1 karma

Donations box? Paypal, Flattr, Bitcoin/Litecoin/Assortedcryptocoin?

schulz1 karma

Is Greasemonkey tightly tied in to how firefox works? Or is it possible a Greasemonkey for chrome could happen?

Sophira2 karma

Google Chrome supports userscripts natively! Just go to install the userscript as normal and Chrome will install it without any further extensions required.

sizzlemctwizzle1 karma

See other reply.

sizzlemctwizzle1 karma

Is Greasemonkey tightly tied in to how firefox works?

They have a strong bond, but the code has gotten a little modularized lately so it might not be as tight.

Or is it possible a Greasemonkey for chrome could happen?

Somebody would need to get the motivation for this undertaking.

Sophira1 karma

Since Chrome supports userscripts natively anyway, I doubt a specific Greasemonkey extension would get much traction!

sizzlemctwizzle2 karma

Since Chrome supports userscripts natively anyway

Actually, they don't anymore. They recently dropped support for installing user scripts directly from the web (you can still install via an annoying workaround of downloading the script and installing it locally). If you want user scripts in Chrome, use Tampermonkey.

Sophira1 karma

Huh. Given how popular userscripts are, that seems like an odd decision on Google's part.

sizzlemctwizzle1 karma

Not really. They wanted to nudge people towards making an extension.

shogun3331 karma

How much of the web is in clear sight? By that, I mean things like the HTML or Javascript that controls paywalls, the client side of Google's web apps, the code that runs the client side of Youtube. I guess the other side of this is how much is obfuscated, is it easy to deobfuscate?

sizzlemctwizzle1 karma

How much of the web is in clear sight?

It really depends on the site.

fantasmaformaggino1 karma

What are your favourite scripts?

sizzlemctwizzle2 karma

RES is pretty sweet, but in general my favourite scripts are the ones I write. Although my favourite script of all time was actually able to solve Megaupload captchas (the original script has been deleted but a script using the code can be seen here) using a neural net, it was fucking badass.

ledmik1 karma

I love Greasemonkey. Thank you for all you work.

The only problem I have is that there isn't a way to sync my scripts. It would be nice if I could change the script location and/or if they were just included in Firefox Sync. I would also like to implement company wide scripts easily.

I've got it kind of working right now by having Greasemonkey just append a remote script to all pages. That remote script runs various other js based on the current URL. It isn't as clean and I have to disable everything if one part is interfering with a page.

sizzlemctwizzle1 karma

It would be nice if I could change the script location and/or if they were just included in Firefox Sync.

Just wanted to let you know, there is an open issue for this.

ledmik1 karma

Thank you!

Looks like you are considering only syncing the URLs of the downloaded scripts. All of my scripts are custom.

I wish that you would just allow me to change the folder for my script storage. Then I could just change that to a Dropbox folder and be done.

You may also want to consider Dropbox and/or Google Drive for script sync. That would eliminate the concern over size.

sizzlemctwizzle1 karma

I wish that you would just allow me to change the folder for my script storage.

Symlink?

[deleted]1 karma

[deleted]

sizzlemctwizzle3 karma

I didn't personally make it. I'm a developer, not the developer. It is a community based project. When I come up with an idea I have to consult the community, and ultimately the current maintainers (Anthony Lieuallen (who is the top contributor) and Johan Sundström) have the final say in what direction GM takes (as one of my failed proposals will illustrate). That said, fixing bugs is pretty straight forward.

harris20041 karma

I remember devloping my first script for Greasemonkey to extract data for a MMORPG game I used to play. great memmories.

How's the devlopment community for greasemoney now?

sizzlemctwizzle1 karma

How's the devlopment community for greasemoney now?

When I first decided to contribute to Greasemonkey, development was at a complete standstill. There were only a few new versions released each year and they were just bugfixes. But since Aaron Boodman handed over the reigns to Anthony Lieuallen (and yes Johan Sundström too) and the source was moved to GitHub, development has been very rapid. I'd give most of the credit to Anthony Lieuallen who has really been kicking ass. He makes sure shit gets done and does a lot of the work personally.

vnkatesh1 karma

  • How frequently does Mozilla absorb great addons into core Firefox codebase?

  • What's the worst greasemonkey-based script you've seen? [Malicious?]

  • How did you come up with the name?

sizzlemctwizzle3 karma

How frequently does Mozilla absorb great addons into core Firefox codebase?

I have no idea how frequently they do this for other addons, but they basically tried to duplicate what Greasemonkey provides (easy modifications of websites) with the Jetpack Project (because creating a Firefox addon use to be such a pain in the ass).

What's the worst greasemonkey-based script you've seen? [Malicious?]

Any script that tries to modify the page by parsing (regular expressions) the HTML as text (you need to use DOM functions, that's why they're there). I've seen a few nasty cookie stealing scripts in my time but they get caught and removed pretty quickly.

How did you come up with the name?

I'm not the creator, that's Aaron Boodman, and he works for Google now and no longer contributes. But the name is a play on the name of the Firefox JavaScript engine: Spidermonkey.

concerned_citizen2 karma

I'm not the creator, that's Aaron Boodman, and he works for Google now and no longer contributes. But the name is a play on the name of the Firefox JavaScript engine: Spidermonkey.

Actually, it was a reference to the slang term 'grease monkey', for an auto mechanic.

Source: I'm Aaron Boodman, I named it. I think there might have also been a nod toward Spidermonkey, but I can't remember for sure.

sizzlemctwizzle3 karma

Source: I'm Aaron Boodman, I named it.

Oh, hey Aaron!

Actually, it was a reference to the slang term 'grease monkey', for an auto mechanic.

Yeah I knew that (I thought it was obvious). I also thought it was a dual reference to Spidermonkey. Otherwise you would have just have pulled the name out of thin air.

remixie1 karma

I am a huge fan of Greasemonkey. I used JavaScript to rework the CSS of a dynamic HTML website and made it so it has now 20%-ish more content. My question is what language was Greasemonkey written in? Also, if you can answer please, how does it exactly override basically everything from how a webpage looks to the content that's on it?

sizzlemctwizzle1 karma

My question is what language was Greasemonkey written in? Also, if you can answer please, how does it exactly override basically everything from how a webpage looks to the content that's on it?

JavaScript.

brandonderrick-2 karma

[deleted]

sizzlemctwizzle5 karma

I'm strictly a Firefox user, but there is Tampermonkey which provides similar features as Greasemonkey.

[deleted]1 karma

[deleted]

sizzlemctwizzle6 karma

I initially thought about trying to port Greasemonkey to Chrome, but by the time I had looked into it, Tampermonkey already existed. It would take a lot of work to port Greasemonkey. I'm not even sure how much of GM could be used (essentially it might require an almost complete rewrite). Why duplicate the effort when an alternative already exists? Plus, I just don't use Chrome. I'm a Firefox user, and spending my time and energy on something I'd never use doesn't sound appealing. I'm a volunteer. Also remember that I'm just a developer, not the maintainer of the project.

csolisr1 karma

Any particular reason to stick to Firefox? Mine are the assorted addons in comparison with Chrome, its nondependency in a megacorporation to deal with such things as bookmark syncing, and their stronger compromise with free software.

sizzlemctwizzle1 karma

I've just always used Firefox and Chrome hasn't provided me with a truly compelling reason to switch.

SamF1sh-4 karma

Hi

sizzlemctwizzle4 karma

Hey