thingsinjars

  • 17 Jul 2008

    Extension building is complicated

    With Firefox releasing version 3.0.1 yesterday, I spent a chunk of last night trying to update the noodle extension. I decided it would probably be a good idea to enable automatic updates so keen users would be able to take advantage of the latest features immediately (or some such marketing gubbins).

    Basic extension building itself is unnecessarily complicated in my opinion. For a start, XUL is an extremely clever and powerful tool but has abysmal documentation. I've now done two sizeable projects using it and I still don't have a clue how it works. Once you've got that bit sorted, however, you then need to package up your extension in a very particular way taking care not to forget updating all of the required versioning bits.

    If you want to enable automatic updating, you now need to digitally sign it. Not a bad idea, really. It just makes the whole process even more complicated.

    My process roughly goes as follows:


    • Update Extension

    • Update install.rdf with the new version number

    • On the terminal, run './build.sh' (automatic shell script to package, zip, remove hidden files, copy, paste, resequence, etc)

    • Upload noodle.xpi to this server

    • On the terminal, run 'md5 noodle.xpi' (to calculate one of the application hashes)

    • copy key to noodle extension post for in-browser installation

    • update update.rdf with the new version number

    • run 'openssl sha1 noodle.xpi' to generate another application hash)

    • update update.rdf with new update hash

    • resign update.rdf with McCoy (embeds another application hash)

    • upload update.rdf to server

    • cross fingers

    This process is somewhat more complicated the first time you do it as you also have to use McCoy to digitally sign the install.rdf before you build your extension. McCoy itself is also password-protected.

    In total, you have 1 password to run McCoy, 1 extension signature, 1 md5 hash to allow in-browser installation, 1 sha1 hash to allow add-ons menu automatic updating and 1 signed update.rdf. I'm sure I've missed one.

    Geek

  • 13 Jun 2008

    Noodle Firefox Extension

    You can either download the Noodle Firefox extension from the Mozilla Addons Site (recommended but requires registration) or below.

    Noodle Firefox extension [1.0.5].

    If you download from the Mozilla site, you can leave a review and increase the chance it'll get accepted into the public area (no registration required).

    It has been tested with Firefox 2 and 3. Surprisingly, it also works fine with both of them, too.

    Geek

  • 11 May 2008

    Comments

    I've removed the comment form from below each post here and replaced it with a Noodle button. I figured there's no sense in making a website devoted to instant commenting if I'm not going to use it myself.

    This does coincide with the evil evil spambots cracking my (previously thought to be impregnable) anti-spam system earlier this week but it isn't related. Honest. Darned spam. So it may not have been impregnable but it had a fairly decent run. It lasted seven months and several tens of thousands of attempts to bypass it. Oh well.

    At least Noodle uses Google Accounts. If spam starts to come through on it, I'll just remove the ability to post anonymously so everyone will need a google account. I'd rather not do that unless I really have to, though.

    Geek

  • 18 Apr 2008

    Language

    My latest pointless programming project is just about finished. There's just one little bit left to figure out and then it's done.

    I'm building this using the new Google AppEngine system (mostly because I needed an excuse to learn python) but there seems to be a bit of a problem with the User object. They haven't finished the User nickname bit yet so when you sign into an AppEngine application or site using a standard Google Account, it uses the bit of your e-mail address that comes before the '@' and, although Google accounts can use any e-mail address, the majority of them will be gmail.com or googlemail.com. This means that if you want to make any kind of public forum, you have to do one of the following:


    • Implement your own nickname system (not really in the spirit of a unified User object)

    • Obfuscate the nickname before displaying

    • Display the nickname and open users up to spam or other unwanted e-mail

    None of these are particularly great. If it were even possible to access the user's first name, that'd solve the problem but, until the nickname functionality is finished, it's not as useful as it could be.


    As an aside, doing a project in python means that I've written code in pretty much every mainstream (i.e. not esoteric) programming language except COBOL.

    Geek

  • newer posts
  • older posts

Categories

Toys, Guides, Opinion, Geek, Non-geek, Development, Design, CSS, JS, Open-source Ideas, Cartoons, Photos

Shop

Colourful clothes for colourful kids

I'm currently reading

Projects

  • Awsm Street – Kid's clothing
  • Stickture
  • Explanating
  • Open Source Snacks
  • My life in sans-serif
  • My life in monospace
Simon Madine (thingsinjars)

@thingsinjars.com

Hi, I’m Simon Madine and I make music, write books and code.

I’m the Engineering Lead for komment.

© 2025 Simon Madine