Dan Vanderkam, a software engineer, writes about projects such as the Dygraphs charting library, OCR, Boggle solving, and the OldNYC photo map.
HN commenters link his Dygraphs interactive charts, his Ocropus OCR training posts, and his Nebulabrot post as an example suited to mapreduce.
Yep. Back when I was at NYPL Labs[0], we developed a bit of an obsession with OCR. It turns out that so much of it depends on the context of the documents, original scan quality (unpaper and deskewing be damned), typography, how much handwriting you're willing to suffer (can someone please pick up the work of applying Convnets to large handwriting corpora that aren't just MNIST?).
A lot of this comes down to how much time you're willing to put into it to get it up and running and if you're willing to put in any effort to additionally train/refine a model.
(ps all the elements I'm about to mention here have been mentioned throughout this thread. I'm just providing a bit more context and bringing what I know together).
_________________
Gotta have something now: Tesseract
Not saying it's "bad" but it ain't as great as you want. Bindings for every language, lots of configs, documented well enough that it's 80% of the suggestions here. For what it is, it's a damn miracle. Most languages and alphabets and lots of kinds of fonts likely start giving you results somewhere between 80% and the Uncanny Valley immediately. You also get a pretty good Layout Analysis engine [1] for if you're working with complete pages of text. The existing models it ships with are robust, but if you want to get better outputs, retraining it is a real pain (you have to segment on a character-by-character basis). You're better off trying to apply a general preprocessing to clean the image…
His blog post announcing it: https://www.danvk.org/2025/04/23/boggle-solved.html
FT article: https://archive.ph/siaAO
His blog: https://www.danvk.org/blog.html
> Driven “by the thrill of discovery”, Vanderkam has searched for this board, essentially alone, since 2004. He would scrape together computing time on Google’s hardware for heavy Boggle computation, all along documenting his efforts on his blog.
> “As far as I can tell, I’m the only person who is actually interested in this problem,” Vanderkam said.
Hot :
Dashboard: http://your.gridspy.co.nz/powertech/
Jquery sparklines: http://omnipotent.net/jquery.sparkline/
Google visualisation: http://code.google.com/apis/visualization/documentation/gallery.html
Annotated timeline (the flash one): http://code.google.com/apis/visualization/documentation/gallery/annotatedtimeline.html <-- Should I use this?
DyGraphs: http://danvk.org/dygraphs
Sounds like a combination of 'can it be geocoded?' and 'is their location precise enough?' There is some progress on resolving human-written locations in cities ( https://www.danvk.org/2026/03/08/oldnyc-updates.html ) but I imagine once you lose reference points, '100 feet into Golden Gate Park...' would be interpretable but not possible to fix to one point.
I too would recommend you use client side. For client side, you can use
http://code.google.com/p/flot/
http://code.google.com/apis/visualization/ < what google analytics uses
http://www.simile-widgets.org/
http://www.danvk.org/dygraphs/
http://highcharts.com/ < looks awesome
http://www.maani.us/
http://teethgrinder.co.uk/open-flash-chart/
Have you looked into ocropy[0]?
Here's a nice intro[1] that later talks about how it achieves higher accuracy using an LSTM model[2].
[0] https://github.com/tmbdev/ocropy
[1] http://www.danvk.org/2015/01/09/extracting-text-from-an-image-using-ocropus.html
[2] http://www.danvk.org/2015/01/11/training-an-ocropus-ocr-model.html