QA Testing

As a software developer I spend a lot of time writing defensive code: routines to check user input and handle it when it isn't what's expected. This blog post by Bill Sempf illustrates the kind of absurd lengths we sometimes have to go to if we want our software to be secure. I've reproduced some of the best responses here. A Quality Assurance engineer walks into a bar... orders a beer. orders 0 beers. orders 99999999 beers. orders a lizard. orders -1 beers. orders a sdhgahfgasjfasd. unhooks the tap and orders a beer. breaks all the glassware and orders a »

Overcoming Guild Wars 2 screenshot limitations

As mentioned in a previous post, I play Guild Wars 2, and like to take a lot of screenshots. The game client has a few annoying limitations though. First off, it can only output JPEG or Windows Bitmap (BMP) format; I've set it to BMP for highest quality, but Capture One 9, which I use for editing, doesn't support this format, necessitating a conversion to something more suitable. The second problem is that the client can only write 999 files to a single folder (named gw001.bmp ... gw999.bmp). When it gets to 999, it won't write any more, and »

JavaScript: getting started with RequireJS

Until recently, I'd mostly avoided RequireJS under the mistaken impression that it was overly complicated for my needs and only useful for large-scale applications. I was mistaken: it's actually a fairly straightforward thing that can work just fine for small apps, and more importantly it encourages an organised and structured approach to JavaScript code. The RequireJS documentation is not, in my opinion, super helpful for beginners. It feels like it's written for really smart people who can infer everything from minimal information, and doesn't do a great job of explaining the basic concepts behind RequireJS, AMD etc. Who knows, maybe »

[WoW] Tracking Buff Power With WeakAuras2 Progress Bars

NOTE: this was written in 2015, so it's probably out of date now. Several classes in World of Warcraft have a buff or debuff they can apply, of which it would be useful to know the power. For example, fire mages have their Ignite debuff, which determines how much damage Combustion will do when cast, so it's important to keep track of the current Ignite damage in order to make best use of Combustion. Possibly there are dedicated addons for tracking this, but I'd already done some experimenting with WeakAuras2 anyway on my blood spec death knight, to track Blood »

Adding typographic quotes to Ghost

As I write this, Ghost is at version 0.4.1 and does not include the ability to convert straight ' and " quotes to their proper typographic equivalents of ‘ ’ and “ ”, nor does it convert hyphens into en– or em— dashes. Since I'd fiddled with an automatic converter for another project that also used the Showdown converter, I decided to try adding it to Ghost. It wasn't as straightforward as I expected, but even so it's not super complicated. Back up! Just in case something goes wrong, make a copy of any file you edit! So warned, let's begin. The »