JavaScript base64_encode

This is where all the trouble began. Back on July 19th this year I commented on the base64_encode function over at phpjs.org letting them know about a bug in their function whereby they were encoding as UTF-8 (whatever that means) prior to doing the Base64 encoding, which is a bug. Anyway, I had to patch the code myself for its use in pccipher and after several months no-one at phpjs has fixed up the implementation. So, that makes me mad, and when I’m mad, I fork!

I forked ProgSoc into ProgClub, and now I’m forking phpjs.org into jsphp.co. Both times it was because there was something going on that gave me the shits and I felt as if I could do a better job. So far I’m really pleased with my results. One great thing about forking is that it encourages the other party to lift their game. I wouldn’t be surprised to see phpjs.org improve its features after they see what I’ve done with jsphp.co.

Update: I ended up fixing that base64_encode function. My notes are in the comments.

jsphp.co developments

I’m working on my jsphp.co web-site. I haven’t deployed my latest changes yet, so there’s nothing there on the main web-site just now, except if you head over to checkout the development area which has all my latest changes. Basically over the last couple of days I’ve added support for:

  • Home page
  • Category listing
  • Function listing
    • View function, tests and benchmark with linkable line numbers
    • Edit function, tests and benchmark with summary
    • Test the code using QUnit
    • Benchmark code and compare versions
    • List revisions and view, edit or change the release status
    • List developers including local and upstream contributors
    • Comments on functions or tests (incomplete)
    • Link to features, such as code downloads or the phpjs.org implementation
    • Administer the function
  • Contributor listing
    • Lists local contributors
    • Lists upstream contributors
  • Licensing info
  • Downloads
  • Links to other web-sites
  • Contact information
  • System administration
    • Manage categories
    • Manage functions
    • Manage users
    • Manage upstream developers
    • View errors

There’s still a little bit to do. Basically I need to review the entire code base for HTML injection and XSS vulnerabilities, I need to fix up the commenting subsystem to allow for editing and creation of comments, I need to protect from some changes (e.g. only administrators can release a function version), many of the forms need better/reviewed workflow for errors and omissions, there needs to be a facility for adding and removing upstream developers, and that’s about it. Once I’ve got those planned changes done I’ll release the latest version of the site and begin the process of importing the phpjs.org code base.

Programmers’ Club

Due to my blatant SEO hacking ProgClub has finally made it to page 3 of search results for programmers’ club. Go team! :)

ProgClub aspires to be *the* Programmers’ Club. So first we get page 3, then we get page 1, then we get first result. Sound like a good plan?

You can help by blogging about ProgClub or linking to our Programmers’ Club page from your blog or your web-site. The text of your link should be “Programmers’ Club”, and you should link to the http://www.progclub.org/wiki/Programmers’_Club page.

p.s. We’re on page 2 for good programmers’ club and we’re on page 2 for the programmers’ club (page 1 in Australia: the programmers’ club).

p.p.s. I posted some more information on how I went about the SEO process.

p.p.p.s. I followed up with some more commentary about the best way to link to ProgClub.

Advice From An Old Programmer

Just recently I read Zed Shaw’s Advice From An Old Programmer, and in it he says:

I’ve been programming for a very long time. So long that it’s incredibly boring to me.

That’s been in the back of my mind for a few days, and something I’ve been thinking about as I hope for people to join ProgClub. It seems to me that the longer you program the less you are interested in programming. But, it takes time to be a good programmer, so the better you get, the less interested you become. ProgClub wants first and foremost people who are *interested* in programming, and secondly it wants people who are *good* at programming. Though it doesn’t seem like there are going to be that many good programmers out there who are going to have the time or the interest for ProgClub. Which means that ProgClub’s best bet is probably to encourage participation from enthusiastic beginners.