Hello World

I’m Bernie. I’m a software developer and amateur photographer, and this is where I put my assorted articles, tutorials, opinion pieces, software release announcements and miscellany. I also have a portfolio website at berniesumption.com and a travel blog at bernieandju.de.

If you’d like to contact me for any reason, please do so: [email protected] or leave a comment on an article.

Making DNArtwork #6: the first art print, hot off the press

This article available in Danish thanks to Mille Eriksen.

It took a while (to wit: 3 years of idle sketching in notebooks, 2 months of coding and 100 hours of image rendering from my poor little laptop with its cooling fans constantly blowing like so many tiny hairdryers) but the visual part of the DNArtwork project is complete.

Continue reading Making DNArtwork #6: the first art print, hot off the press

Making DNArtwork #5: drinking the Microsoft Kool-Aid

This post is part of a series in which I explore the building of DNArtwork.com. It’s about how I’ve decided to use Microsoft .NET and Azure as the infrastructure that supports the website because they’re cheaper and better than other technologies. There you go, that’s the conclusion of this article. If you’re reading this series for the DNA and the artwork, you can move along now.

If you’re interested in why this is surprising, then I’ll tell you a story about the computer industry. Not all that many years ago I was personally committed to fighting against Microsoft, which I and many others saw as a corrupting force in that industry. Now I’m actually quite excited about using their new software. This is quite surprising to me, and this article is my way of figuring out how this happened.

By the way, this is one of my occasional long rambling posts. You have been warned :o)

Continue reading Making DNArtwork #5: drinking the Microsoft Kool-Aid

Making DNArtwork #4: the pre-launch page

Since my last post where I decided that my DNArtwork prints should look somewhat like Kandinsky paintings, I’ve been busily coding away, making a computer program that can generate the individual shapes from which a composition can be built up. I’m still near the start of a long road that will hopefully end with a fully functional product later in 2016. But one modern trend in startups that I fully agree with is that its never too early to start selling, and to that end I’ve put a up pre-launch page at dnartwork.com to introduce the product and collect email addresses.

Continue reading Making DNArtwork #4: the pre-launch page

Making DNArtwork #2: competitor analysis

There are quite a few companies offering artwork generated from DNA. This is a good thing – unique ideas are overrated, and if you come up with an idea that nobody else seems to have tried yet, it’s less likely that you’re a special genius that had the idea first and more likely that the idea doesn’t work!

Here’s a tour of the currently available offerings, during which I’ll analyse the pros and cons of each and build up a wish list of features for the perfect DNA-based artwork.

Continue reading Making DNArtwork #2: competitor analysis

The non-programmer’s explanation to the Java deserialisation bug

In the last year we’ve had several serious and well publicised software vulnerabilities like heartbleed and shellshock that set the whole tech press chattering and even made the national news. But not all vulnerabilities are as well marketed. One particular bug has been around for years, has been publicly known for over 9 months, but is only recently getting attention due to a report by Foxglove Security and a corresponding Slashdot article. As Foxglove say, “no one gave it a fancy name, there were no press releases” but “this bug is unlikely to go away soon”.

The report by Foxglove is a fascinating read if you’re a Java programmer, but it is very long and deeply technical. My goal is to explain what’s happening in enough detail that everyone else can understand how this bug got there, and why it’s not simple to get rid of. I do assume you are at least a little bit technical. You are reading an article about a software vulnerability after all.

Continue reading The non-programmer’s explanation to the Java deserialisation bug

JavaScript Computer Vision – detecting waves

I have a fun little problem in my current project. Given a video of a person, detect whether the person is waving at the camera.

This is an early prototype that should work on modern versions of Chrome and Firefox.

It’s not perfect and there are many little tweaks that could be done to remove some of the false positives it generates. Still, 10 years ago I’d never have guessed that one day we’d be prototyping computer vision algorithms in JavaScript. Thanks Moore’s Law!

How to make Karma / Jasmine tests fail on console errors

I had a good google for this problem, and couldn’t find a solution, so I though I’d put my own here.

I’m running Jasmine tests through Karma. One of the components I’m testing logs error messages to the console, which is the desired behaviour in production but makes testing hard because methods fail silently.

This code snippet causes any calls to console.error(message) to throw an exception, ensuring that any tests that trigger errors will fail.

Continue reading How to make Karma / Jasmine tests fail on console errors