Almost two years ago, I wrote a little tool for creating interlinear texts1 in the browser. My idea was to annotate translations for unknown words between the lines in my intensive reading sessions to have them available when I reread the text later and to keep track of my language learning progress (possibly extracting vocabulary lists and some statistics). Previously, I had created interlinear texts automatically using Wiktionary, but I think the manual process with a bit of friction is much better for learning. It's a lot of work, but actually quite satisfying, and you end up with a nice visual indicator of your language proficiency. Compare, for example, this Russian text with this French text. My Russian sucks.
Of course, I didn't stick to the plan and stopped using the tool after a few texts. As the year comes to an end, I'm thinking about continuing where I left off. Maybe this will be one of my New Year's resolutions.
1 In case you're wondering how the tool works: it's a snippet of JavaScript that replaces selected text with a contenteditable Ruby element. Once you entered your annotation text, the script sends the updated HTML to a tiny Python server, which simply overwrites the source file.