After the Deadline

A Guide to the AtD Project(s)

Posted in Talking to myself by rsmudge on March 25, 2010

I was cleaning up tickets on the AtD TRAC today and noticed a lot of sub-projects. If I were new, I’d be a little confused. I’m writing this post to clarify what projects exist under the AtD umbrella and how they fit together. I’ll end this post with resources related to these projects and let you know how you can get involved.

This diagram shows some of the projects and how they relate:

The Server Side

The heart of AtD is the server software. This is where the proofreading happens. The software is written in a mix of Sleep and Java. Applications are welcome to communicate with it through an XML protocol. It’s released under the GNU General Public License. There is a treasure trove of natural language processing [1, 2, 3, 4] code here.

Front-End Plugins

Of course a server is no good without a client. After writing a plugin for TinyMCE and later jQuery, I noticed duplicate functionality. To ease my burden fixing bugs in both and make it easier to port AtD to other applications, the AtD core library was born. This library has functions to parse the AtD XML protocol into a data structure that it uses to highlight errors in a DOM. It’s also capable of resolving the correct suggestions for an error (given its context). This library is the foundation of AtD’s front-end. One change to it immediately benefits the WordPress plugin, the Firefox add-on, the TinyMCE plugin, and the jQuery plugin. This is why you will often see me announce multiple things at once.

TinyMCE is a WYSIWYG editor used in many applications including WordPress. It was the first editor I supported with After the Deadline. This plugin makes it possible to add AtD to any application that already has TinyMCE installed. Some things like persisting settings for “Ignore Always” are left to the developer. For the most part though, this is a complete package.

jQuery is a JavaScript library that makes life easier in so many ways. Our jQuery plugin makes it easy to add After the Deadline functionality to any DIV (and TEXTAREA). I first wrote this to offer After the Deadline as a plugin for the IntenseDebate comment system.

Missing from this diagram is the CKEditor plugin. I made an After the Deadline CKEditor plugin in 8 hours to prove the utility of the AtD Core library. It’s missing some of the polished functionality that the TinyMCE and jQuery plugins have. As none of our projects use CKEditor I haven’t had a need to update it. It’s looking for a maintainer.

These building blocks are released under the GNU LGPL license.

Applications

The pieces I’ve written about so far are merely building blocks. They’re useless unless they’re applied somewhere. The WordPress plugin is built on the TinyMCE and jQuery plugins. Through these plugins I’m able to offer AtD support in both the visual and HTML editor. Thanks to AtD core, I’m able to make sure both editors (mis)behave in the same way.

The Firefox add-on was the first Automattic project to use the AtD core library directly. With it, Mitcho was able to talk to start highlighting errors as soon as he got the add-on talking to the AtD server. This was pretty exciting as it meant we had a lot of functionality right away.

The building blocks are nice as they also make it possible for others to contribute plugins for other applications. For example, Gautam maintains a bbPress plugin using these building blocks.

And of course having these building blocks also means you’re able to add After the Deadline to your application.

Project Resources

And finally, there are the project resources. As much as it seems like things are scattered around, it’s not really that bad.

We use a single TRAC instance for all AtD projects maintained by Automattic. You can report any issues there directly, you just need a WordPress.org account to login.

Most of the AtD code maintained by Automattic is maintained in a common subversion repository as well.

This is the official After the Deadline blog for all the AtD projects maintained by Automattic.

Anything related to the front-end is hosted on the AtD developer’s page.

Information about the NLP research and the proofreading software service are kept at: http://open.afterthedeadline.com

It’s not very active, but there is a mailing list on Google Groups for all AtD related projects.

And we’re using GlotPress to make it easy to translate the AtD projects to other languages.

Getting Involved

That’s it, don’t forget to read our getting involved guide. One of the easiest ways to contribute is to file bugs in TRAC or contribute translations.

If you develop an After the Deadline plugin for an application, let me know. I’ll gladly link to it.

Hopefully this post helps lay out the landscape of the AtD project and some of the sub-projects involved with it.

Comments Off on A Guide to the AtD Project(s)

%d