Cube Drone


Cyberpunk 2016

single image


Cyberpunk 2016 Guy: I’ve got to VR into the Cyberverse before the deckers can crypto through my firewall!
Actual 2016 Guy: Damn these Chinese IPs and their automated vulnerability scanning, they’re filling my logs with garbage!
Actual 2016 Guy: Also I think someone on the bus is doing some kind of Shadowrun cosplay.
Cyberpunk 2016 Guy: I’m gonna hack the Gibson!


The Long, Long Con

single image


Step 1: Invent an as-yet unheard of Unix variant from the 1960’s.
Melissa: I shall call it… Mel-OS
Step 2: Go to a university website and select a particularly crusty old computing science professor. Generate a GitHub profile using this professor’s name.
Step 3: Using a combination of Photoshop and some basic web publishing tools, fabricate an elaborate backstory for this OS, including fake academic research papers, under the professor’s name.
Step 4: Issue dozens of pull requests to high-profile open-source projects claiming to add Mel-OS compatibility. Each pull request one more link in an elaborate chain that, when invoked together, finally activates the viral payload.
Times Square, New Years’ Eve: A giant banner is displayed with a picture of Milo, reading “I slept with your wife. Call me. I fight you. 1-788-555-9831”
Milo, to Melissa: Why?
Melissa: You didn’t refill the coffee after you poured the last cup.
Milo: This is not a proportionate response!


HTTP Status Codes

I’m really looking to corner the market on HTTP status code based humor, but I’m not the only game in town.

single image


200 OK
271 Great!
2.99 Hot Dog w/ Relish

301 Moved permanently
302 See 303
303 See 301
307 Moved temporarily
309 Relocated to San Jose
311 Moved emotionally

304 Cached
344 The real HTTP response was friendship all along
348 Hidden, but badly enough to find easily
350 Purchased by Google in 2012. Purpose unknown.
372 Purchased by Yahoo in 2003. Mismanaged into obscurity.

400 You dun’ fucked up.
401 Credentials missing
403 No, dammit
404 Not found
405 Method not allowed
406 Unacceptable!
410 Just went out for a bit to buy smokes - back any day now
418 Teapot (self-explanatory)
429 Cool your jets
431 Your request is too damn big!
451 Your government has deemed this resource a threat to security.
458 Request too sexy

500 Something bad and unexpected happened.
501 Didn’t finish building this bit.
502 NGINX broke
503 Servers currently very on fire
504 Not sure if 502 or 503
505+ Programmers broken


Bug Bestiary

single image


Bug Types: Beezlebug

The greatest trick the Beezlebug ever pulled was convincing the world it didn’t exist.

Notes: While our users are certain the Beezlebug exists, they are unable to provide proof. May be imaginary, like the SaaSquatch or the Deadlock-ness Monster.

Mating Habits: Can not reproduce.


How it Feels to Learn Cookery in 10,000 BCE

You might consider this a rebuttal to a previous comic I did, although it’s also about an article which makes fun of Javascript and references an earlier article that made fun of Docker.

single image


Og: Og want to eat meat. Just put in mouth, right?
Uk: No! Use fire! Cook meat!
Og: Fire hot! How I not burn hands?
Uk: Use pointy stick! Or use hot rock! Or keep fire in box!
Og: Too many choices! How I pick?
Uk: Dunno
Og: Ok, meat on fire! Now eat, right?
Uk: No! Wait! Let cook! Then add salt rock and flavor leaf!
Og: So in order to eat meat, I need fire and stick and wait and rock and leaf? I just eat meat raw, stupid. Mmmf!
An Og-Like Man, 12016 years later: And that’s why I think that modern Javascript is too complicated.


Social Media Math

So, there is this stupid Social Media Math Horse Algebra thing going around, where hundreds of people all fail at a very simple math problem, because the problem contains not one but three different sneaky tricks - one trick that requires knowledge of correct order of operations, and two tricks that involve varying the number of symbols (horseshoe-horseshoe presumably being double the value of simply horseshoe and boot-boot being double the value of just boot).

What’s interesting is not the math puzzle. What’s interesting is the virality of it.

The social media trick at play is that each person who looks at the puzzle figures out one of the tricks, or maybe two of the tricks, and then notices how many people got a different answer from theirs (everyone else, presumably), and wants to post, crowing about their superiority, to the channel. Hilariously, this has led to over 500,000 comments, the bulk of which are “you are all idiots”, and the bulk of which are wrong. It’s viral in the same way as those people who repeatedly post “everybody stop hitting reply-all” to an overcrowded mailing list.

My puzzle is much simpler and a lot less viral. The solution is a PUN, obviously.



single image


Walt: There need to be professional associations for software developers - like doctors, lawyers, and engineers have. We could keep frauds and incompetents out and build trust in our professionalism and skill.
Milo: The word does not need more walls, my friend. Code is for everyone.
An explosion happens behind the two of them.
Sparky: Guys, I’m not sure what a fork bomb is, but I can tell you that our microwave is broken and we need new forks.
Milo: Almost everyone.


The Many Songs of Programming

single image


let arr = [];
arr.push(‘it good’);
arr.push(‘it real good’);

float ON;

let blondie = {}; = () => {};;

repeat 100 [fd 100 bk 100]

vowels = [‘a’, ‘e’, ‘i’, ‘o’]
def compare_vowels(str, compare):
for char in str:
for vowel in vowels:
yield compare(char, vowel)

def war():

public class Mine { … }
public class Sweet extends Mine {…}

char* bird;
bird = (char*) malloc(8);

def recursive_walk(sides, fin):
for side in sides:
if side.status == ‘wild’:
recursive_walk(side.children, fn)

catch ValueError:

def getDay(n)
puts getDay(1)


Many-Factor Authentication

I used these same guys to demonstrate Tuckman’s Stages of Group Development some time ago.

single image


Introducing our exciting new nine-factor auth!

To log in, you need:

  • something you know
  • something you have
  • something old
  • something new
  • something borrowed
  • something blue
  • somebody that you used to know
  • but you didn’t have to cut me off
  • make out like it never happened and that we were nothing


Yes Ok Yes

single image


Alexa, wake me up at 3AM, yes, ok, yes
Alexa, turn off the lights, yes, ok, yes
Ok Google Text Mom butthole butthole butthole, yes, ok, yes
Xbox bing anal fissure, yes, ok, yes
Alexa play “Melissa’s Cool Hacking Song”, yes, ok, yes
Alexa buy this song, yes, ok, yes
Alexa turn the volume up!
Alexa turn the volume up!
Alexa turn the volume up!
Alexa turn the volume up!

Cube Drone Patreon

Razzle Dazzle

This art project is pretty neat.

single image


Lain: And with a few minor modifications to my hair and make-up, I render myself invisible to face detection algorithms like openCV.
Lain has a brightly colored hair poof and has arranged blue lines of make-up on her face.
Lain: Oh, I see you’re already on board the privacy train.
Milo is wearing a giant orange-and-red striped collar and he has an orange-and-teal lightning bolt painted on his face.
Milo: Hm?
Milo: David Bowie died one year ago today. January 10 is a dark day for music.


Various Sorting Algorithms

single image


Quicksort: An O(nlogn) sorting algorithm that recursively contains itself, making it really easy to implement. Only seen in classrooms or whiteboard interviews.
Sort Sort: An O(n*i O(n)) algorithm that can only be used to sort other sorting algorithms.
Dictator Sort: O(n), destructive algorithm that simply removes elements that haven’t already sorted themselves.


Additional Sorting Algorithms

single image


Open-Minded Sort: Doesn’t sort at all. The variables are fine just the way that they are. Who are you to judge? (A bunch of numbers holding up signs with slogans like “!=”, “don’t label us”, and “free your memory”)
Libertarian Sort: Every number is made responsible for sorting itself. Note: no working implementations. (An unsorted list with a 3 at the end. “I’m pretty sure I deserve to be here.”)
Rush-Hour Merge Sort: It’s like normal merge sort, but one asshole variable refuses to merge and another one shows up driving on the shoulder.


Airing of Grievances

Raspberry PI units are cheap, incredibly powerful little computers. $50CDN each, although the full kit required to get one up-and-running wanders into the $100CDN territory - but that is for an entire computer, one capable of running basically anything that the world of computing came up with before 2005, including Asterisk, the powerful, open-source telephony suite.

Although, if you’re going to buy a Pi, obviously the first thing you should build is a RetroPie.

single image


Melissa: Each one of these Raspberry Pi units is running Asterisk and some autodialer code that I wrote, and I’ve been sneaking them on to unattended phone lines around the city.
Lain: What do they do?
Melissa: They call every nine minutes and play a sound that is my best approximation of Gilbert Gottfried making tender yet passionate love to a set of off-key bagpipes.
Lain: Dang, Mel, who could possibly deserve that?
Melissa: Let’s see… Trump hotels, landlords who’ve kept my security deposit, CANIPRE, Patent Trolls, Steve, Oracle, people who use single character variable names, teenager with luxury sports cars, and anybody who’s ever used the term “alpha” unironically to describe themselves.