ijson 1.0



I've finally scraped some time to finish and release a new version of ijson — 1.0. New stuff: support for YAJL 2 pure Python parser compatibility with Python 2 and Python 3 Parsing improvements On this I have already posted in details not that long ago. To summarize, ijson now ...

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 ...

ijson on PyPy, Episode 3: New parsing



It's a funny thing when after neglecting your project for a year you get a question on whether it's orphaned and then suddenly you find yourself hacking on it for few days straight… Knowing that your work is needed and appreciated is the greatest motivator! Anyway… The news I wanted ...

Dark corners of JavaScript prototypes



So I have this syntax highlighter written in JavaScript that uses a stack of parsing modes for its job. This is just a plain Array named modes, and the most common operation in my code is accessing the top element: modes[modes.length - 1] … which is kinda ugly, right? So ...

Scientists, engineers and teachers



While working with people who write code I keep noticing three vaguely defined but nonetheless distinct "roles", or "styles of thinking", or "behavioral patterns", or "skill sets" — I don't really know how to call this classification per se, but I came up with a descriptive name for each class. ...

Where's that future everyone is talking about?



I'm guilty of it myself… But sometimes I feel this supposed "future" is a little bit farther than I'd like it to be. I can't tell any device to remind me to turn on my noisy dishwasher when I finished watching TV. Nothing is going to boil my kettle 5 ...

OAuth is not a protocol


Web, OAuth

Though this post is obviously triggered by the recent damnation of OAuth 2.0 by the (former) spec editor Eran Hammer, it's not directly related to it. These are my thoughts about the technical role of OAuth that I wanted to blog about a year ago but couldn't force myself to ...

Hiring: you're doing it wrong


Hiring software engineers, that is… I remember exactly one time in my career when I successfully passed a technical interview, in 2002, two years after my graduation. After that I failed every time I tried to do it "properly" and all my eventual employment came to be due to people ...

When to use decorators in Python



The @decorator syntax in Python is easy to abuse. After all, it's simply a syntactic sugar for: obj = decorator(obj) The obj must be a function or a class but Python doesn't care about the output value that is then assigned to the same name. It may be, quite literally, ...

Fighting procrastination



It's been a while since I stopped going regularly to work. And while I really needed this break it also had its negative consequences, I forgot how to work using my brains. Many, surely, know this state of mind when all the good intentions and wonderful ideas are stopped dead ...

virtualenv: solved



My problem with virtualenv is solved. Great thanks to Malcolm Tredinnick for taking the time to understand it and pushing me into the right direction. As I said in the previous post, I didn't really need the isolation feature of virtualenv with my single-user, single-codebase site. What I really needed ...

SM.Org software update 2012


Python, Ubuntu, Django

Over the course of a few recent weeks I updated this site to a more modern software and revised some previously made choices. This one was loooong overdue considering that I still ran Ubuntu 9.10 before the update meaning that the system was almost 3 years old. Here are some ...

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. ...




This blog was pretty quiet for the past year, so instead of having a proper anniversary post consider this a mere technical announcement that today this blog has passed its seventh year. Yay! I'm pretty content with the situation of having a place where I can publish something whenever I ...

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 ...

Hacked retweet spam



This morning I woke up to find that someone or something has retweeted spam messages on behalf of my Twitter account. Some of my followers alerted me about it (thank you!) and here are my thoughts on suggestions as to what might be the reason: This is not a personal ...

Lumix GH2



As a birthday present this year I upgraded my old and proven G1 to the new and powerful GH2. I've got the G1 3 years ago (also as a birthday present from my wife) and it was the first µ4/3 camera on the market. Though it was a promising system ...