An environmentalist.
Tutorial, Tools March 10th, 2007Today is a lazy Saturday and I’ve decided it’s a perfect day to start writing this extension. Luckily I don’t actually have to do that much to start. It’s all getting the file structure right and configuring the dev environment. Admin stuff really (the exciting stuff was getting the server to work for this website - you missed it).
Dev environment
I’m a Java developer by day (now working at an investment bank in London), so I have ways I like to do things that come from my Java life. You’ll find this in everything I do. It’s just how I am. I’d like to get into other languages (Ruby) but scripting languages don’t have the amazing refactoring tools that I love from Java. When they do, I’m there!
- I use Eclipse. It’s a choice and it’s probably overkill for extension development, but it’s what I use.
- I use the JSEclipse plugin to get semi-decent JavaScript development going from within Eclipse.
- I use Subversion to hold all of my stuff in source-control (normally on my local machine, but for this I’ll put it up on the website).
- I build my extensions using Ant. I have a script that works and I use it.
The SVN connection url is http://getbooksmarts.org/svn/booksmarts/. Anonymouse access is enabled. If anyone wants to contribute get in touch and we’ll see what we can do. You’d have to write about how you’re doing stuff on here too.
If you ever checkout the SVN repository, you’ll have my source, project and Ant scripts. It’ll all work without Eclipse, but it’s all integrated in there so I like it.
JSEclipse was recently bought by Adobe, so I don’t know what they’re going to do with it. Hopefully it means money will be there and they can make it REALLY good. Refactoring support for JavaScript would be really hard and REALLY awesome.
Firefox (post 1.5) lets you work on extensions in place, and tell it where to find the source using a pointer file in your profile. This is probably the most useful thing they added for extension developers. The only thing it requires is a special testing format chrome.manifest file. I use the testing chrome.manifest and then produce the package format (using Ant substitutions) when building a deployable. You shouldn’t have to think about it if you use my script.
There’s always a better way to do stuff. I just do what seems best and stick with it. Tell me if I’m being dumb.