isn't quite ashamed enough to present

jr conlin's ink stained banana

2008-08-13

::Spelunking on Fire

Well, the good news of the day is that i believe i got my Firefox Extension working. Granted, it's useful (well, i like to think it is) and it only took me a week and a half to write it. Which is really sad when you see just how little code there is to it.

You see, much like any other experiment such as this, what you're seeing is the near skeletal remains of the vast sums of code that once filled it. Anyone who's written more than one program knows how that goes so i won't bother with that part.

No, instead i'll talk about why i could remove huge tracts of code. i am absolutely gob-smacked about how much function there is buried inside of Firefox. Honestly, folks have scratched the surface, but once you really dig into things, it's astounding. That bit about "Hey, here's an extension that lets you drag files from your desktop and have them load up to a website"? Yeah, well, that doesn't seem like such an amazing feat of engineering when you find out that most of those services already exist inside of firefox and all they've done is string a few bits together.

Much like emacs, somewhere very recently Firefox went from being a program that did one thing, to a full blown operating system.

The only problem is that much of that joy is hidden away.

Ok, it's not completely hidden. i mean there's developer.mozilla.org that pretty much lays out most of it, but then you realize: "Holy cow! ALL THAT STUFF IS IN THE BROWSER!" And then you start poking around at various internals and realize that a fair bit of it is written in Javascript. Sure, there are bits squirreled away in XPCOM classes but the bits responsible for orchestrating all of that are stored inside the renamed Zip archives that have ".jar" at the end of them. What's more all those files are human readable, non-minimized with lots of spiffy comments.

Give you an idea, crack open browser.jar and you'll see it's 2 MBs of 131 files showing you pretty much how everything from bookmarks to search to personal history is stored and used inside of Firefox. What's more, install a plugin, and all that wonderfulness is yours to do with as you please.

Wanna scan the loaded pages? Sure, go for it. Reorganize the bookmark? Why here's some handy tools to do that! Want to phone in the browser history and passwords? Right, best have a look at the global-history and login-manager services for that.

(i'll tell you this, i'm taking a far harder look at the plugins i'm going to be installing in the future.)

Granted, one of the current benefits is that the documents i pointed to earlier are a complete mess. The problem is that they're moving from one, elder and historical documentation site to a new one, but they haven't quite worked out all the wiring yet. i've jumped back and forth between the sites dozens of times while tracking down the simplest things. A good many of those extensions and plug-ins are mostly either copied from existing services or cobbled together by pure chance.

i'm not worried about a virus so much as someone coming up with an unsigned trojan that they somehow convince lots of people to install, but that's a fear with anything.

i guess in many respects, i kinda like that things are wide open right now. It's really astounding what sort of stuff one can pull off with a fairly minimal amount of effort. (It's almost like someone over in Mozilla World remembered what made Unix so damn effective. Small, highly efficient tools that do single tasks and can be easily strung together.)

Now i'm kinda bummed that the extension is written and i have to leave that particularly pretty (albeit unkempt) cave. i get the feeling that i'm probably going to be spending more time there again, though.

DaveP
2008-08-14 - 02:21:54

Next time bring some glow-sticks?


Hey, delicious user, Save This Page
Blogs of note
personal that's my blog
(The Official Blog of the Internet)
memoirs of hydrogen guy matthew shepherd (quebec) rhapsodic.org j$ (right) Henriette's Herbal Blog fanatical apathy lynne ydw i iconophobia slumbering lungfish
geek Y!Cool Thing michael j radwin jeremy z
(The Official Website of the Internet)
dave's picks ultramookie Josh Woodward derek balling j$ (left) simon willison Yahoo! Search Blog
news ars technica search engine watch webmaster world.com
forums uh.net man-man killroy & tina

experimental

Firefox search plugins for Yahoo!

My Living Room media box config

The Official "Official" Registry of the Internet

Powered by WordPress
Hosted on Dreamhost.
And Steveo's page is Totally Fucking Awsome.