openssl_seal in Python

When life gives you lemons, you make lemonade, no surprise there, but what about when life gives you a X509 certificate, some PHP code and you have to encrypt XMLs with the public key to integrate a payment provider? ...

Google AdSense ad sizes

Sometimes, you find yourself in the middle of nowhere, and sometimes, in the middle of nowhere, you find yourself... trying to fit ads into your website. Sure, Google offers a list of AdSense ad sizes, but unless you're some sort of...

Speeding up Selenium

Web testing automation is probably the use case Selenium has become most known for. And for good reason. It allows you to take full control of the browser of your choice and interact with the underlying web page in very reliable ways (think document.querySelector('h1') versus parsing out the page's HTML).

But what if you want to use Selenium for something... a little less...

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