My software, Rust

When last time I lamented the unoriginality of my tool nfp I also entertained the idea of salvaging some value from it by extracting the event debouncing part into a stand-alone tool. So that's what I did. Meet debounce, a Rust library and a prototype command-line tool. Rust In all ...

New pet project


My software

So anyway, I'm making a shopping list app for Android. As I understand, "shopping list" is something of a hello-world exercise of Android development, which may explain why there are so many rudimentary ones in Google Play. Only in my case I actually need one, and I know exactly what ...

Misconception about OSS support


My software

You wouldn't think a free syntax highlighting library would be a strong dependency for the development process of a business, and yet I'm waking up on a Monday to a flurry of comments and even one personal email from engineers eager to ask me to work for free for their ...

highlight.js turns 10


My software

Almost exactly ten years ago on August 14 I wrote on this very blog (albeit in a different language): So on yesterday's night I got worked up and decided to try and write [it]. But on a condition of not dragging it on for many days if it didn't work ...

Cadence for highlight.js


My software

We're now doing releases of highlight.js on a cadence of 6 weeks. The latest release 8.8 was the second in a row (which is what technically allows me to write "are now doing"). The reason for that is we (well, mostly me) had a certain difficulty deciding when to actually ...

Styles unification: first results


My software

Yesterday I gathered some willpower and began working on a long awaited (by myself, at the least) style unification in highlight.js. Here's the first taste of why I think it is important. Let's take one of the recently added style — the "Android Studio" — and see how it displays ...

I learned C# in 4 days!

You know those crazy books, "Learn whatever programming in 21 days"? I mean, who can afford spending that much time, right? Some background I have a friend who employs a very particular workflow for dealing with his digital photos. It often involves renaming and merging files from different cameras into ...

ijson 2.0


Python, My software

Yesterday I released version 2.0 of the streaming JSON parser ijson. It mostly includes bug fixes accumulated over the last year and the only reason to change the major part of the version number was that import ijson doesn't do any discovery magic anymore. Import Previously, when you did import ...

highlight.js: what's next


My software

This is a loosely ordered dump of ideas about the future of highlight.js presented for purposes of information and discussion. The project is already big enough that the best I can do for it is not writing code but trying to get people interested in joining in. Let's see if ...

New life of Marcus


My software

A while ago I reported on switching this blog to a custom software named Marcus. Despite its source code being available in the open I didn't intend developing it into a full-blown project for two reasons: a) maintaining it would have taken much more time than I could afford and ...

HTTP and JSON in highlight.js


My software

Fresh from the oven, highlight.js now has a pretty cool feature that, to the best of my knowledge, is not supported by any other syntax highlighter. Namely, we can now recognize and highlight HTTP request headers and its body if it happens to be code in a language we know. ...

Sponsoring in highlight.js


My software

I want to draw your attention to an interesting offer made by Adam Kennedy from Kaggle to sponsor the development of syntax highlighting for the R language: highlight.js came to our attention with the addition of MATLAB support, as it is one of the two dominant languages used by our ...

Rainbow.js — a new kid on the highlighters' block


My software, Web

There was a small spike in my referrers stats that led me to a new JavaScript highlighting library — rainbow.js. And since I love bashing other highlighters I couldn't resist this time too :-). Oh, but be sure that all of this is intended of course as a constructive criticism ...

Completely unfair comparison of Javascript syntax highlighters


My software

During the time before latest release of highlight.js 6.0 I decided — for the first time in more than 4 years — to actually look at other highlighting libraries. Sure I knew of their existence before but nonetheless never felt compelled to do any serious comparison because highlight.js is a ...

highlight.js 6.0 beta


My software

Trying to fight procrastination I've got myself busy with a long delayed task — refactoring language definition in highlight.js to a new syntax. This turned out so well that I've also managed to resolve other tasks that were planned for version 6.0. So without further ado I'm hereby introducing a ...

highlight.js opens up


My software

Though the code of highlight.js was always open the library was never a real project. There wasn't a place for development discussions, no documentation wiki and no bug tracker. Instead I was just accepting new languages and patches and answered occasional question by mail. Nonetheless the highlighter has somehow managed ...

Hosted version of highlight.js


My software

From now on highlight.js is hosted at Yandex and can be linked directly at instead of downloading. This package however doesn't contain all the languages since it would become embarrassingly big otherwise. So I looked at the top downloaded languages and selected those of them so the final package ...

highlight.js 5.9


My software

It's better late than never. Last night I finally released the next version of highlight.js contaning many nice additions, some of which were ready and waiting for as long as half a year. New languages Andrew Fedorov made a definition for Lua a long-time highlight.js contributor Peter Leonov made a ...