Loading…

WMD Editor Reverse Engineered

Remember that WMD reverse engineering project we reluctantly undertook? Check out the current state of the Git repository:

git-wmd-reverse-engineering-timeline

This is a major milestone -- we've essentially de-obfuscated the WMD code, which was my #1 goal! A few thanks are in order:

  1. Chris Jester-Young for getting the ball rolling, doing quite a bit of de-obfuscation, and setting up the initial repository.
  2. Shawn for contributing versions and setting up a stack overflow "question" on this topic.
  3. Dana for doing the lion's share of the de-obfuscation work and getting us to that magical 1.0, completely de-obfuscated milestone.

Also, cbguder, dbr, and zacherates -- we appreciate you jumping in early as well. Hopefully you'll keep going and help us on the 1.0 stuff! It turns out Dana is a huge fan of fake plastic rock, just like me, so I was happy to reward him for his work with one of my customized Les Paul guitars:

blood-voodoo-red-metallic-guitar

(ok, it's not exactly this one, but it's very similar -- silver metallic instead of red metallic faceplate!) Now that we've gotten the painful de-obfuscation / un-minification out of the way, it's time to begin improving our WMD editor:

  1. Arrow keys don't work in Firefox 3 on questions/answer pages
  2. Make ctrl-delete work like a normal text editor (WMD keyboard shortcuts should be configurable and/or disable-able)
  3. Several Problems with international keyboards -- all related to keyboard shortcuts
  4. General WMD performance concerns. We believe WMD could do with some optimization, particularly for the "idle" case.
  5. I'd like to see us use CSS image sprites for the toolbar buttons rather than downloading 6-8 individual button graphics in 6-8 HTTP requests.

Anyway, if you have JavaScript chops and want to dive in, I encourage you to grab the repository and go for it! Your hard work could be rewarded in your job search. Check out these Javascript job listings.

Add to the discussion

Login with your stackoverflow.com account to take part in the discussion.