Future-proofing Python 2 code

Let's say you've inherited a Python 2 web app. You've already tried Python 3 and you know it's better than nutella on oreos. You know you need to switch. You already have that on your roadmap. But before that happens, there's this task that requires you to build a fresh new module and deploy it to your existing servers.

Deploying both Python versions to production is not...

What git I do last month?

We're trying out this new process at work where employee evaluation is a continuous process rather than a once or twice a year event. In order to facilitate this, we need to keep track of our monthly performance. And while I do agree that keeping an eye on what you're doing is a great source of insight (see my other post about the money)...

The burden of work

About a year ago, my life took a turn for the weird and I ended up getting a stable, go to the office, work in a team type of job. Sure, I had been working for some years prior to that, but it had almost always been along the lines of working from home and working on my own terms. I was excited and somewhat worried. I remembered my first office job: I was for the most part...

Clicking a Flash object with Selenium

The problem: the internet connection back home keeps dropping. Stone the ISP or burn the router? The solution: write a Selenium script to run a speed test every 15 minutes and save the results as screenshots.

Should be done in 15 minutes, right? Wrong! Apparently, this is 2004, and my ISP's speed test page still uses Flash...

JavaScript terminal simulator

A few days ago I received a call from Marius Corîci of CTF365.com, who had just run into hackertyper.com and, being rather amused and excited by what he saw, asked me to come up with a similar concept for their sign-up page.

After a bit of fumbling around the jQuery API, I gathered all the event handlers that I needed and got...

Converting SVG fonts to... SVG

If you've ever had to deal with Bootstrap, chances are you've run into the glyphicons-halflings-regular.svg file. If not, let me sum things up: web fonts can be served to the browser in different formats, SVG being one of them. Now, you might expect this to be a run of the mill, ordinary SVG file, but if you try and open it in Inkscape or Google Chrome, it just renders as a...

The ghosts of WordPress past

To me, WordPress is like a puppy. I don't really need one, but it's nice to have one around and it does make life a bit more pleasant. Until, of course, it shits itself in the middle of the room on your favorite carpet.

After redesigning my website and moving it from WordPress to a static site generator, I took to Google's Webmaster Tools to ask the almighty Googlebot to...

Where does the money go?

Like most people, I dream of a magical time when I am blessed with a passive monthly income that allows me to spend approximately zero amount of time working. Like most people again, I have done absolutely nothing to make this happen. Well, except for one thing.

Starting from the 18th of June, 2013, I have kept track of more or less every ounce of currency leaving my pocket....

Mandatory new website post

It's been 3 years, 3 months and 28 days since this site first went online on 8 Oct 2011. But until today, you couldn't have told by looking at it. 92,191 pageviews later and my website was still the same old badly put together WordPress powered fart.

I knew I had to update it. I had started working on it at least 3 times in...

HTML password manager

If you spend a lot of time online, and since you even managed to end up on this page, I'm assuming you do, you've surely had this problem before: a freaking gazillion usernames and passwords to keep track of. Sure there's a remember password option in most browsers, and sure there are browser extensions like RoboForm and stand-alone password managers...