community January 10, 2009

WMD Editor Reverse Engineered

Remember that WMD reverse engineering project we reluctantly undertook? Check out the current state of the Git repository: This is a major milestone — we’ve essentially de-obfuscated the WMD code, which was my #1 goal! A few thanks are in order: Chris Jester-Young for getting the ball rolling, doing quite a bit of de-obfuscation, and…
Avatar for Jeff Atwood
Co-Founder (Former)

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.

Podcast logo The Stack Overflow Podcast is a weekly conversation about working in software development, learning to code, and the art and culture of computer programming.

Related

code-for-a-living July 28, 2021

700,000 lines of code, 20 years, and one developer: How Dwarf Fortress is built

Dwarf Fortress is one of those oddball passion projects that’s broken into Internet consciousness. It’s a free game where you play either an adventurer or a fortress full of dwarves in a randomly generated fantasy world. The simulation runs deep, with new games creating multiple civilizations with histories, mythologies, and artifacts. I reached out to him to see how he’s managed a single, growing codebase over 15+ years, the perils of pathing, and debugging dead cats. Our conversation below has been edited for clarity.