The Design of a Proofreading Software Service
I spent Sunday at the Computational Linguistics and Writing Workshop on Writing Processes and Authoring Aids held at NAACL-HLT 2010. There I presented After the Deadline. After the Deadline is an open source proofreading software service. If you’re curious about how contextual grammar and spell checkers work, then you’ll want to read on. Here are the materials:
Presentation
Slides
Paper
More Depth
If you want more depth, I write about AtD quite often. Here are a few related blog posts that may interest you:
- AtD Source Code and Bootstrap Data – the server side heart of AtD is available under the GNU GPL
- Measuring the Misused Word Corrector – data / code to replicate the experiment used to measure AtD’s real-word error detection abilities
- How I Trie to Capture Mistakes – The paper glosses over the use of a Trie to generate a pool of suggestions. There just wasn’t enough space to explain it. This blog post covers it in detail.
One year of After the Deadline
Wow, I almost missed it. On 1 Jun 09, I launched After the Deadline. The first review of After the Deadline (AtD) came from w-shadow.com. There were also discussions on CMSReport.com and Hacker News.
Acquisition
It’s been an exciting year. On 21 Jul 09, I started with Automattic. Matt and I had worked out the deal several weeks earlier. We announced the acquisition of After the Deadline in Sept 09 and also made AtD available on WordPress.com.
I remember I was a little nervous about going live on WordPress.com. AtD is written in my language Sleep. I’ve used Sleep for a lot of things but not for the back-end of a web-scale project before. I was afraid of a memory leak or a freak concurrency issue. Fortunately, neither of these issues came up.
Open Source NLP R&D
Shortly after that, we open sourced the After the Deadline service. This is something that will take time to have its impact, but make no mistake, it’s significant.
Using statistics to provide better proofreading is nothing new. Researchers pursued the topic in the 90s and during the earlier part of the last decade. Production tools are starting to use statistical language models to provide smarter suggestions and even correct harder errors like misused homophones. Microsoft Word 2007 has a contextual spell checker that looks for misused words. Microsoft Research is developing ESL Assistant, a tool that uses a statistical language model to filter incorrect grammar suggestions. There are also new tools like Ginger and Ghotit that use statistical techniques to deliver smarter results for writers with learning disabilities. I believe cheap and powerful hardware, lots of available data, and persistent internet connectivity made these smarter, data driven, writing tools practical for production use. We’re riding the same wave of “now possible”.
I’m excited about After the Deadline’s place in this period of change. After the Deadline is simultaneously a production system and a research system. The code is available for researchers and students to tinker with and learn from. Let’s not forget, this also means that you can run your own AtD server and add AtD to your application.
Recently, this project produced its first academic paper. Sunday (6 Jun 10), I will present After the Deadline at the Workshop on Computational Linguistics and Writing taking place at the 2010 North American Association of Computational Linguistics Human Language Technologies Conference.
More Languages
After the Deadline went from one to five languages in the past year. We’ve released preliminary support for French, German, Portuguese, and Spanish. We offer contextual spell checking in these languages. We also use our language model to make the Language Tool grammar checker smarter. There is still much work to be done to bring our misused word detection to more languages.
Community Contributions
At WordCamp NYC, someone approached me with “I love After the Deadline but I always forget to run it”. He suggested we add a feature to automatically proofread posts on submit. No good idea should get lost, so I posted this to the ideas page. Later, I received an email from Mohammad Jangda, who offered to implement this feature. I first made his patch live on WordPress.com. Without an announcement, 500 people were enabling it each day. Over time, auto-proofread doubled the use of After the Deadline on WordPress.com. This same feature has made it into our other platforms as well.
Our wish is to see AtD help people write better in as many places as possible. We put a lot of effort into making high quality plugins, it’s nice when we get help. Gautam Gupta is a great example of such help. He created After the Deadline for bbPress. He and I release updates around the same time and he usually beats me to the punch. My favorite is when he announced AtD/bbPress with support for French, German, Portuguese, and Spanish before I had an updated WordPress plugin out the door.
More Places
As I mentioned in the last paragraph, After the Deadline is now available in a lot more places. We have stable plugins for jQuery and TinyMCE. The AtD Core library has allowed us to reuse the protocol parsing and error highlighting logic in many projects.
We now have After the Deadline for Firefox and Google Chrome. I’m amazed at how well these add-ons work. I didn’t believe they were possible. Mitcho Erlewine took on the initial challenge and worked with us to make After the Deadline for Firefox a reality.
We continue to experiment with other applications too. Who knows where you might see AtD next.
Lots of Proofreading
Last month, our AtD servers processed 3.5 million blog posts, emails, tweets, status updates, and who knows what else.
That’s a lot of proofreading. Not bad for a first year.
Can we use crowd sourcing to improve AtD?
I’ve written about learning from AtD use in the past. The main ideas I had back then were to bring more data into AtD’s corpus and analyze ignored phrases to find gaps in AtD’s dictionary. I put some time into these ideas but the initial results didn’t look too promising, so I backed off.
Recently, the operator of Online Rechtschreibprüfung 24/7 contacted me. His website offers German spell and grammar checking services (with a beta version using AtD). Neat stuff. Being the nice guy that he is, he is also giving back. His users have the option of marking a spelling mistake as false. He has collected this data and made it available to improve the German After the Deadline dictionary.
This got me to thinking. What could I do to PolishMyWriting.com to help you, help me, improve After the Deadline‘s English checking.
Here are some ideas:
- Add a “Not Misspelled?” menu item for spelling errors. This could collect a list of words that are candidates to be added to AtD’s dictionary, similar to what Online Rechtschreibprüfung 24/7 does.
- Add a “Not an error?” menu item for grammar and style errors. This could collect the error and the context around it.
- Add a “Better suggestion?” menu item for grammar, style, and misused word errors. Here you could input a better suggestion for an error.
These three things are pretty trivial to do. I’d also like to find a way to let users highlight errors that aren’t caught. I don’t have any ideas for magically learning from these suggestions. Right now I’d have to analyze each of them and develop rules to catch these errors.
Maybe an option to highlight some text, click Suggest an Error, and complete a short survey about what type of error the text contains.

What are your thoughts?
A More Secure AtD Experience for the Browser
We’ve been hard at work and now AtD for Google Chrome 1.1 and AtD for Firefox 1.3 are now available. These updates feature an important addition for your security and privacy.
AtD started as a plugin for WordPress and everything it checked was going to be posted on a public blog anyways. Now that AtD is in the browser this has changed. To protect your information, both AtD/Chrome and AtD/Firefox now use SSL to communicate with the AtD service. This means your data is now encrypted when it’s sent to our service for proofreading.
If you’d like to know what else is new, you can read the change logs:
How to Update:
To update to the latest After the Deadline for Google Chrome, visit chrome://extensions and click Update Extensions Now. This will automatically download and install the update for you. No restart required.
To update to the latest After the Deadline for Firefox, visit Tools -> Add-ons and click Find Updates. This will download and install the update for you. Firefox will ask you to restart your browser.
How to Jump Through Hoops and Make a Chrome Extension
Last week, we released After the Deadline for Google Chrome. I like Chrome. It’s low on UI clutter and it’s very fast.
Chrome for the extension developer is a rapidly changing world. I wanted After the Deadline for Google Chrome to match our Firefox add-on feature for feature. I hit and overcame a few road blocks meeting this goal.
This blog post is highly technical and deals with some of the innards of writing Chrome extensions. If you’re not interested in this kind of stuff, then take note that I like Chrome, it’s not done yet, and this makes things hard at times. I’m working to bring the best possible proofreading experience to Google Chrome. You may stop reading now.
If you’re still here, that means you’re a developer. I hope this information helps you in your Chrome extension development adventure.
How to refer to internal images in CSS
Google Chrome, like Firefox, makes extension resources available via a special URL. In Firefox, you set the identifier for your extension and can reference images and other resources using this URL. In Google Chrome this URL depends on your extension’s ID. This extension ID changes depending on whether the extension is loaded as loose files or packaged. Because of this, you should not hard code the URL to an extension resource in your CSS file.
So how can one refer to internal images or other resources in a CSS file?
One option is to avoid referring to internal images or resources at all. You can set CSS properties using JavaScript and chrome.extension.getUrl(‘resource.ext’). This is kind of hacky and I didn’t want to set and unset hover listeners just to do something CSS already gives me for free.
Another option, discovered in this thread, is to convert your images to base64 and embed them as data URLs in your CSS file. It’s an extra step in the beginning but it solves the problem of referring to internal images.
div.afterthedeadline-button
{
background: url(data:image/png;base64,data goes here) transparent no-repeat top left !important;
Once this hack is in place, you won’t have to worry about extension IDs in your CSS files again.
Good luck with those IFRAMEs
Content scripts (Chrome JS extensions) run in a sandbox separate of the environment scripts attached to a page see. This is good as it reduces the possibility of extensions conflicting with web applications. Content scripts see the same DOM that user scripts see. It is possible to make changes to the DOM and inspect it. I recommend that you read the Chrome extension tutorial and watch Google’s video to understand content scripts.
Unfortunately, Google left a few toys out of the sandbox. It’s nearly impossible to work with an IFRAME. The contentWindow property of any IFRAME DOM element is null. Also window.frames is empty. This is a known bug.
Thankfully, the contentDocument.documentElement property does exist. Through this I can set and get the contents of an IFRAME. That’s close to what I want, but not exact. To proofread an editor, After the Deadline creates an editable DIV and copies style information from the editor to this new DIV. To make this convincing for IFRAMES, I have a need to access style information from the contentWindow property.
I tried to make a content script that figures out if it’s attached to an IFRAME. If it is, the script could communicate the needed information to the extension background script via Chrome’s message passing mechanism.
Unfortunately this didn’t work because Chrome only allows scripts to attach to URLs that have an http:// or https:// scheme. Dynamically generated IFRAMEs used by WYSIWYG editors usually have an empty source attribute which does not match an http:// or https:// scheme.
This thread suggests adding a SCRIPT tag to the DOM to execute a script outside the Chrome extension sandbox. However this isn’t necessarily a straight forward process either.
Execute a Script Outside the Chrome Sandbox
The Chrome extension sandbox exists to protect user scripts from extension scripts and vice versa. It would also be dangerous if a malicious user-land script could get into the Chrome sandbox and manipulate the Chrome extension APIs. For these reasons, it’s natural that Google Chrome would discourage extensions from running scripts outside the sandbox. I tried to insert a SCRIPT tag with a SRC attribute into the site’s DOM using jQuery. This didn’t work.
What did work was injecting inline JavaScript that constructs a SCRIPT tag with a SRC attribute from the site’s DOM. Here is the code:
jQuery('body').append('<script type="text/javascript">(function(l) {
var res = document.createElement('SCRIPT');
res.type = 'text/javascript';
res.src = l;
document.getElementsByTagName('head')[0].appendChild(res);
})('"+chrome.extension.getURL("scripts/inherit-style.js");</script>');
You’ll want to replace chrome.extension.getURL('scripts/inherit-style.js') with your resource. This is a convenient way to execute code outside of the extension sandbox.
Beware of WebKit Specific Styles
To make my proofreader look pretty, I inherit as many style properties as I can from the original editor. Mitcho showed me this great trick to copy the styles of one element to another:
var css = node.defaultView.getComputedStyle(node, null);
for (var i = 0; i < css.length; i++) {
var property = css.item(i);
/* note that I'm assuming jQuery here, proofreader is the note inheriting the property */
proofreader.css(property, css.getPropertyValue(property));
}
This trick works fine in Chrome, except I found myself scratching my head when some DIVs were editable even though their contentEditable attribute was undefined. The opposite also held true, sometimes my DIV was not editable even though I defined the contentEditable attribute as true. I learned that WebKit has a CSS property -webkit-user-modify that trumps this attribute.
It’s unlikely you’ll ever encounter this, but one day, someone will do a google search, find this post, and I’ll have given them three hours of life they would have lost otherwise.
Final Thoughts
I like Chrome. It’s a good browser. The world of Chrome extensions is changing and expanding rapidly. On one hand, extensions can’t do simple stuff yet, like add items to the context menu. On the other hand, this is being worked on.
Now for the final hoop. There are three distributions of Google Chrome. These are the stable channel, beta channel, and the developer channel. I started out developing in the developer channel and later downgraded to the beta channel as I continued my development. This was a mistake. There are big differences between the stable channel and beta channels. For example, browser actions (toolbar buttons) are allowed to have popup menus. These popups work in the beta channel (5.x) but not in the stable channel (4.x).
Before you release, be aware of these differences. I recommend developing against the stable channel. If you rely on features from a new version, implement them and then verify that your extension degrades nicely on the old version of Chrome. That’s it.
If you’re willing to jump through some hoops you can make a great Chrome extension. I found the Chrome extension mailing list very helpful.
Thanks to Google and the Chromium community for developing a great browser. I’m ok with jumping through a few hoops.
After the Deadline for Google Chrome
The number one search term on this blog is “After the Deadline Chrome”. You’d think some people wanted to see After the Deadline on Google Chrome.
Chrome users, you know who you are, we have something special for you today. We’ve released After the Deadline for Google Chrome.
After the Deadline is a powerful proofreading technology, that’s also available for Firefox. If you haven’t used After the Deadline before, check out our demonstrations. Now you can feel safe when you push send, tweet without alerting the writing police, and get your status updates correct on Facebook.

This extension is built to put you in control of the proofreading experience. You can disable AtD on certain sites, ignore phrases, enable more proofreading features, control auto-proofread, and set a keyboard shortcut.
Read the documentation to learn more or download it from the Google Chrome Extensions repository.
For the best user experience, we recommend the latest beta channel of Chrome. The browser is constantly evolving and we took advantage of new features to bring the AtD experience to Chrome.
Measuring the Real Word Error Corrector
Before we begin: Did you notice my fancy and SEO friendly post title? Linguists refer to misused words as real word errors. When I write about real word errors in this post, I’m really referring to the misused word detector in After the Deadline.
One of my favorite features in After the Deadline is the real word error corrector. In this post, I’ll talk about this feature and how it works. I will also present an evaluation of this tool compared to Microsoft Word 2007 for Windows which has a similar feature, one they call a contextual spelling checker.
Confusion Sets
After the Deadline has a list of 1,603 words it looks at. In this list, words are grouped into confusion sets. A confusion set is two or more words that may be misused during the act of writing. Some surprise me, for example I saw someone write portrait on Hacker News when they meant portray. The words portrait and portray are an example of a confusion set.
Confusion sets are a band-aid and a limitation but they have their place for now. In an ideal program, the software would look at any word you use and try to decide if you meant some other word using various criteria at its disposal. After the Deadline doesn’t do this because it would mean storing more information about every word and how it’s used than my humble server could handle. Because of memory (and CPU constraints), I limit the words I check based on these fixed confusion sets.
Finding Errors
To detect real word errors, After the Deadline scans your document looking for any words in that potentially misused word list. When AtD encounters one of these words, it looks at the word’s confusion set and checks if any other word is a better fit.
How does this happen? It’s pretty simple. AtD looks two words to the left and two words to the right of the potentially misused word and tries to decide which of the words from the confusion set are the best fit. This looks like:
I’ll admit, the site does portrait credibility.
Here, After the Deadline uses the following statistical features to decide which word W (portrait or portray) you want:
P(W | site, does)
P(W | credibility, END)
P(W | does)
P(W | credibility)
P(W)
The probability of a word given the previous two words is calculated using a trigram. When After the Deadline learns a language, it stores every sequence of two words it finds and sequences of three words that begin or end with a confusion set. To calculate the probability of a word given the next two words requires trigrams and a little algebra using Bayes’ Theorem. I wrote a post on language models earlier. To bring all this together, After the Deadline uses a neural network to combine these statistical features into one score between 0.0 and 1.0. The word with the highest score, wins. To bias against false positives, the current word is multiplied by 10 to make sure it wins in ambiguous cases.
Let’s Measure It
Ok, so the natural question is, how well does this work? Every time I rebuild After the Deadline, I run a series of tests that check the neural network scoring function and tell me how often it’s correct and how often it’s wrong. This kind of evaluation serves as a good unit test but it’s hard to approximate real word world performance from it.
Fortunately, Dr. Jennifer Pedler’s PhD thesis has us covered. In her thesis she developed and evaluated techniques for detecting real word errors to help writers with dyslexia. Part of her research consisted of collecting writing samples from writer’s with dyslexia and annotating the errors along with the expected corrections. I took a look at her data and found that 97.8% of the 835 errors are real word errors. Perfect for an evaluation of a real word error corrector.
Many things we consider the realm of the grammar checker are actually real word errors. Errors that involve the wrong verb tense (e.g., built and build), indefinite articles (a and an), and wrong determiners (the, their, etc.) are real word errors. You may ask, can real word error detection be applied to grammar checking? Yes, others are working on it. It makes sense to test how well After the Deadline as a complete system (grammar checker, misused word detector, etc.) performs correcting these errors.
To test After the Deadline, I wrote a Sleep script to compare a corrected version of Dr. Pedler’s error corpus to the original corpus with errors. The software measures how many errors were found and changed to something (the recall) and how often these changes were correct (the precision). This test does not measure the number of elements outside the annotated errors that were changed correctly or incorrectly.
To run it:
grep -v ‘\-\-\-\-’ corrected.txt >corrected.clean.txt
java -jar sleep.jar measure.sl corrected.clean.txt
Now we can compare one writing system to another using Dr. Pedler’s data. All we need to do is paste the error corpus into a system, accept every suggestion, and run the measure script against it. To generate the error file, I wrote another script that reads in Dr. Pedler’s data and removes the annotations:
java -jar sleep.jar errors.sl > errors.txt
Now we’re ready. Here are the numbers comparing After the Deadline to Microsoft Word 2007 on Windows, Microsoft Word 2008 on the Mac, and Apple’s Grammar and Spell checker built into MacOS X 10.6. I include Microsoft Word 2008 and the Apple software because neither of these have a contextual spell checker. They still correct some real word errors with grammar checking technology.
| System | Precision | Recall |
|---|---|---|
| MS Word 2007 – Windows | 90.0% | 40.8% |
| After the Deadline | 89.4% | 27.1% |
| MS Word 2008 – MacOS X | 79.7% | 17.7% |
| MacOS X Spell and Grammar Checker | 88.5% | 9.3% |
As you can see, Microsoft Word 2007 on Windows performs well in the recall department. Every error in the dyslexic corpus that is not in After the Deadline’s confusion sets is an automatic hit against recall. Still, the precision for both systems are similar.
You can try this experiment yourself. The code and data are available. I also created a page where you can paste in a document and accept all suggestions with one click.
Another Evaluation
Another evaluation of MS Word 2007′s real-word error detection was published by Graeme Hirst, University of Toronto in 2008. He found that MS Word has lower recall on errors. To evaluate MS Word, he randomly inserted (1:200 words) real-word errors into the Wall Street Journal corpus, and then measured the system performance. It would be a benefit to the research community (especially *cough*those of us outside of universities*cough*) if such tests were conducted on data that one could redistribute.
Final Thoughts
After running this experiment, I added the syntactically distinct words from Dr. Pedler’s confusion sets to AtD’s existing confusion sets, pushed the magical button to rebuild models, and reran these tests. I saw AtD’s recall rise to 33.9% with a precision of 86.6%. Expanding the confusion sets used in AtD will improve AtD’s real-word error correction performance.
I’ll continue to work on expanding the number of confusion sets in After the Deadline. One challenge to whole-sale importing several words is that some words create more false positives than others when checked using the method described here (hence the precision drop when adding several unevaluated new words to the misused word detector).
If you’re using Microsoft Word 2007 on Windows, you’re in good hands. Still, After the Deadline is comparable in the real-word error detection department when MS Word 2007 isn’t available.
If you’re using a Mac, you should use After the Deadline.
Two Resources on Innovation
I’m a firm believer that the opportunity for innovation happens when suddenly the right pieces become available and someone puts them together.
If you consider AtD innovative, know that I didn’t invent anything crazy and new with After the Deadline. I applied simple algorithms to a lot of data and achieved good results. The availability of data, cheap CPU power, and a cultural readiness to accept a software feature that depends on a remote server made After the Deadline possible. I simply put the pieces together (and spent some sweat trying lots of simple algorithm/data combinations that didn’t work) and voilà, a proofreading system.
I’d like to share with you two resources that helped me appreciate the innovation process.
The first is the Myths of Innovation by Scott Berkun. Scott talked to the Automattic crew during our October meetup and I really enjoyed the time we had with him. I read his book and found the historical examples relevant. It’s easy for us to think that innovation happens in a vacuüm with one lone hero pulling it all together at the magic moment. Innovation is a lot of iteration and only becomes a magical moment when enough iteration has happened that others notice.
The other resource is the Connections documentary series by James Burke. I’m on my third time watching. It’s an amazing journey through history. The series is from the 70s and has a lot of speculation about the future and where technology may take us. James Burke speculates about the threat computers present to privacy and how technology might connect us in a way that folks couldn’t even imagine then. The series discusses history in terms of problems and the inventions they led to that later led to other problems and inventions. For example, the Faith in Numbers episode charts a historical journey from the Jacquard Loom, to the United States census, and finally to computers programmed with punch cards.
The message in Scott’s book and Burke’s series are the same. If you look at them, you won’t think about innovation the same way again.
A Guide to the AtD Project(s)
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.
AtD Updates (Lots of them)
I have a bag of goodies for you today.
WordPress Plugin
Thanks to the help of wonderful volunteers, our WordPress plugin has been updated with translations for German, Spanish, Italian, Japanese, Polish, and Russian. It also includes updated translations for Portuguese and French.
This update also fixes several bugs related to finding and highlighting errors. I recommend this update for all AtD users.
You can get the latest from the WordPress plugin repository.
Firefox Add-on
If you use After the Deadline for Firefox, the 1.2 release is available on the early access page. The early access release exists because it takes time for the volunteer editors to review the release. An approval is necessary for it to show up as an automatic update.
I like to think of it as a free code review from an experienced developer, just for participating in the Mozilla community. You can wait for the automatic update or get the early access release now. Don’t you want to be the first on your block to run the latest AtD for Firefox?
This release fixes several bugs and improves the appearance of proofreading mode in WYSIWYG editors. Take a look at the screenshots of Google Docs and Zoho Writer. Beautiful.
bbPress
Gaut.am just released AtD/bbPress 1.6. I think he knows more about my release schedule than I do. We’re always releasing updates at the same time.
The latest bbPress plugin adds an auto-proofread option, the ability to select which errors you see, and an ignore always option.
Development Libraries
If you’re a developer using AtD, don’t worry–I haven’t left you out. Our TinyMCE plugin is up to date with the latest bug fixes. Also if you’re using the jQuery plugin, the cross-domain AJAX calls now support all the languages AtD supports.
The AtD core library (the foundation of AtD’s front-end) has several bug fixes as well.
Also, I don’t think I announced this yet, but last month M. Sepcot released an AtD API for Ruby.
You can always find the latest AtD libraries on our Developer Resources page.

1 comment