How To Survive The Future Part 1: DRONES!?

Some may tell you the world is getting safer all the time, and although they are right, it makes for an uninteresting blog post.

Instead we shall focus on our feared impending demise from the madness of technological advancement.

The oncoming storm.

The buzzing sound that heralds our doom.

The four spinning rotors of the apocalypse.

They do not know fear.

They do not know conversational english.

They sometimes know their relative position in a 3 dimensional space.

The Drone

Webster’s Online Dictionary defines the word drone as “The greatest threat mankind has ever faced” if you squint and read between the lines. Wink wink nudge nudge, Webster. I’m picking up what you’re laying down: Trust no one.

Drones have been compared to flying grizzly bears by industry experts, their rotors like thin aerodynamic lift producing claws, their plastic shells like matted fur, their stabilizing gyroscopes like a Grizzly Bears inner ear canal.  But, don’t be fooled, unlike Grizzly Bears drones don’t sequester themselves in forests, nor do they mostly torment Canadians.  Drones are a global threat.

As an American I know a global threat requires an immediate misguided show of overwhelming force and large no-bid government contracts for companies owned by my friends.  But, in a diversion from American foreign policy, we will seek to know our enemy first.

The Pack Hunters

No one knows who invented drones, but we do know the depraved lunatics taught some of them to hunt in packs and coordinate their movements.  You can easily spot them if you know the common signs of bee swarms, but instead of bees you imagine drones instead.

The Mules, Wolves, and Mulewolves… or WereMules

To destroy humanity, Drones must first understand humanity. To understand humanity they must master the art of really awkward hopscotch four legged running.  Bad news, friends: They’ve already cracked it.

Already the machines have specialized into weird mule like all terrain forms, as well as smaller more dangerous and equally awkward variants.  Note in this field recon footage that the drones are already mastering the art of hallway traversal, and very light grassy inclines.  Terrifying.

Sea Serpents

Even decades of preventative ocean pollution has not stopped the drones from seeking to claim our waters.  Robotic serpents already train in secretive suburban swimming pools across this great nation, just biding their time.

Sky Jellies

Its always the most innocent looking ones that pose the greatest threat, this friendly and serene drone is no different.  Fear its pleasantness.

Stay Paranoid

This country was built on a strong foundation of paranoia, industrialization of specialized tradecraft, and moon worship, but you’ll only need the former to prepare yourself for what’s to come.  I’ve shown you the enemy, and now its up to you to sit paralyzed in fear in your living rooms, waiting for the sweet embrace of the rotor blades.

Listen for that humming sound, friends… and when it gets close? Just close your door.  They haven’t all mastered that doorknob bit yet.

– Johann Out

Quick Test Automation with CasperJS

I find myself as the sole QA Engineer at a rapidly changing startup needing to automate integration tests.  There are legacy Capybara tests in our large Sinatra app, some javascript unit tests, and a bevy of test suites for the remainder of the stack. But, like any software product, its codebase grows faster than the test suite.

In looking for a quick way to get repeatable manual tests of the web application front end I settled on CasperJS.  Partly because of the speed of implementation, and the familiarity of Javascript and some robust features like great command line tools.

npm install casperjs --devel

And you’re on your way!

A great use i’ve found for casper scripts is to quickly hit all of the accessible dynamic FE page types we have and check for a 200 status to help regression test very quickly.

casper.test.begin('johanncodes.com returns an OK status', 1, function(test) {
    casper.start('https://johanncodes.com/', function() {
        test.assertHttpStatus(200);
    }).run(function() {
        test.done();
    });
});

Another great feature i’ve made use of is CasperJS’ great form fill and submission ability, which lets me easily work through tasks like user account creation, user profile changes, navigation through checkout flows and other fun things.

Even with very rudimentary javascript knowledge you can start to build very powerful tests and scripts almost immediately.  If you’re looking to automate very rote parts of your QA flow that have a binary success/fail state you can check for CasperJS is worth a look.

Check out the docs and installation instructions.

Happy testing!