Master-slave is not a good naming scheme.
Cube Drone: Look, Master-Slave is still a shitty naming scheme for distributed systems that makes light of some very real horrors.
Miloslav: That is the way it has always been. Why make waves?
Cube Drone: Let's imagine that instead of a garbage collector, we had a process called "brutal dictator" and it rounded up all of your program's unfit memory to be shot. Would that be okay?
Miloslav: In this situation it is best to keep your mouth shut, convert your hryvnia into rubles, and flee the country.
Cube Drone: We are still talking about programming!
Free the slaves!
Hey, you get away from our production servers.
There are only three kinds of virtual reality game.
Every Kind of VR Game:
1. Stuff that would be boring in real life.
Cube Drone: Wow! It's like I'm really playing Billiards!
2. Weird fetish stuff
Cube Drone, standing next to a man wearing a cat head and leather gimp suit.
Cube Drone: I'm not sure what 'cat-kin group cuddles' means, but I feel like I have made a mistake in coming here.
3. Games with motion
A space ship: Space, the final BLEUUUGH
I get sick easily in VR.
This is going to be the best game ever.
Sparky: You have to check out this sweet game I built!
Sparky: It's called The Copyright Violatrix! You and Mickey Mouse fight off the cast of Friends while Beatles songs play.
Sparky: This is going to be so popular! I wonder why more people haven't thought of this!
Cube Drone is rolling his eyes
I'm going to see about doing a press junket! NBC is going to be super interested in what's going on here.
It's a thrill a minute around here.
Cube Drone does nothing for three panels.
"The exciting world of startups".
If Silicon Valley was like this, nobody would watch it.
Docker containers take up a lot of space.
Melissa: Each Docker container should just run one process.
Cube Drone: But these containers are hundreds of megabytes each! We'll run out of disk space before long!
Melissa: Now you understand why the Docker logo is a whale that is also a cargo ship.
Docker containers are big. That's the joke.
Right now, I'm using Vagrant, VirtualBox, Docker, and npm...
Morpheus: npm installs per-project dependencies, isolating environments.
Morpheus: in order to deploy in a reproducible way, we use Docker containers, which load the environment into a chrooted virtual environment that simulates an operating system.
Morpheus: Docker must be run from a Linux distribution, so we run it from Vagrant and VirtualBox, which wraps our Docker containers in another virtual operating system when running on non-Linux operating systems, including Os X.
Morpheus: This is your last chance. After this there is no going back.
(Morpheus holds out two pills, one red, one blue.)
Morpheus: You take the red pill and you stay in Wonderland and I show you how deep the virtualization rabbit hole goes.
Morpheus: You take the blue pi-hey!
(Cube Drone has already taken the blue pill.)
Cube Drone eats the blue pill.
Cube Drone makes a rude gesture.
Cube Drone fades away, while still making the rude gesture.
"Nobody's ever taken the blue pill before. What do we do? He's unconscious."
"I don't know. Cut out his kidneys."
The trick is to take team-building seriously but not TOO seriously
Cube Drone: Our team building exercise is just a picnic? Laaame.
Sparky: Oh - I guess you wouldn't know - Walt can get a bit ... uh... competitive.
Laser Tag - Winter 2015: Walt has his foot on Sparky's chest, a laser tag gun pointed right between his eyes.
Walt: You feel lucky, punk?
Go Karts - Summer 2015: Walt has spraypainted his mouth silver.
Walt: Witness Me!
A lot of my recent comics have had violence as the punchline. I'm going to try to tone that down a little and focus more on hijinx. Lojinx. Various jinxes.
Slack is nothing new, really
cube drone: ha ha lol butts
sparky: peach emoji
miloslav: off topic, you guys - take it to #random
cube drone: hey, this is a #marketing level discussion at least
lain: I bet that people have been arguing about topic relevance for eons
lain: uploaded an image: a Roman senator saying "by Jupiter! This belongs in the Democracy forum, not in the Justice forum!"
cube drone: what about #random, did the ancient romans have something like that?
lain: uploaded an image: the Roman coliseum
#random is the /dev/null of Slack channels
My Vive finally arrived, and it was pretty easy to set up
For room scale VR with the Vive, you will need a space at least two metres wide.
Place the lighthouses 5 meters apart, pointed at 35 degrees. Your GPU shader buffer must be set from "anisotropic" to "apocrypha".
The headset unit will blink white if the setup ritual has succeeded, at which point it will pulsate with maddening intensity.
You will need to update the firmware. Use the enclosed packet of goat's blood to paint a sigil to Ha'Atu the all-seeing.
Cube Drone, his eyes bleeding, with a VR headset on: It's... so beautiful.
HTC accepts no responsibility should you accidentally summon an intra-dimensional chaos god, ushering in a new dark age for humanity.
YAML stands for "YAML is not a programming language god dammit"
Look, Spring and XSLT have gone a long way to show that programming in XML is a nightmare.
So then Ansible comes along and asks us to configure our servers using Yet Another Markup Language, even though Ansible is just Python, under the hood. The problem with XML wasn't that it was too verbose. It was that it was a markup language!
The minute you find yourself writing a loop, or - heaven forfend - a conditional in a markup language, that's it. Game over. It's time to give up and become a remote mountain hermit.
You want programming words? Here's a whole armload of them! Suck on it, programmers!
Milo: After last week's breach, we're switching to biometric security. Fingerprints. One thumb for auth, and also pressing spacebar. For redundancy other thumb is amputated and kept in cold storage.
Cube Drone: That's insane! You can't have my thumb.
Milo: Ha ha. Just joking. You can all keep your thumbs.
Milo is holding a cooler marked "Thumbs"
It's important to implement digital security.
Google Fit on my Android Watch keeps telling me that I'm "Halfway There"
Cube Drone is walking. His watch alerts: "Halfway there!"
Cube Drone: Hm.
Cube Drone in full Bon Jovi hair and fringed leather jacket: Whoooah-ooh! LIvin' on a prayer!
I'm only 29, watch. Rude.
Where is Milo from, anyways?
Walt: Ok, what are the odds on Ukraine?
Milo: What are you people doing?
Walt is standing in front of a board labelled "Where is Milo from?" with odds on Ukraine, Russia, Uganda, Survivor, Ancient Babylon, Blurgoslavia, and Alternate Universe
Walt covers the board with his body.
Walt: Uh... sprint stuff.
Cube Drone: Burndown.
Walt: Agile processes.
Walt squeaks his body across the board, wiping it off.
If you hold an agile event in the desert, do you call it "Burndown Man"?
Bash launches on Windows!
Finally: Windows 10 will ship with an embedded Linux translation layer - like Wine in reverse.
On top of that, a complete Ubuntu distro - so that you can now run bash natively. And apt. And vim. And emacs. And git.
Of course you can improve Windows by emulating a better operating system! Have you been able to do this all along? HAVE YOU?
Like, if you went into a Subway and they provided a better sandwich experience by also having a miniature Quiznos RIGHT THERE IN THE BUILDING.
Hit by a bus
Cube Drone: Whenever you warn us about losing a developer, you say "Imagine they were hit by a bus." Why is it always a bus?
Milo: Shhh... they'll hear you.
A bus smashes through the whiteboard.
Walt: They've found us! Scatter!
Milo, holding a large steel pipe: Not today, bus! Not today.
this summer... UNIVERSAL SERIAL BUS
Binary search your feelings. You know it to be true.
(The crucial scene from The Empire Strikes Back)
JIRA: If you only knew the power of the GANTT chart. Walt never told you what happened to your project.
Cube Drone: He told me enough. He told me YOU killed it.
JIRA: No. I am your project!
Cube Drone: No... no... that's not true. That's impossible!
JIRA: Search your feelings! You know it to be true.
Cube Drone: NOOOOOOO!
JIRA: You can destroy the CEO. He has foreseen this in his spreadsheets. It is your destiny. Join me, and together we can rule the company as project and project manager!
JIRA: Come with me. It is the only way.
Some of our meeting rooms have creative names.
Cube Drone: How did your one-on-one with Milo go?
Sparky: Intense. I need to get a drink.
Cube Drone: Hm. The sweat lodge. That's a curious name for a meeting room.
(Milo is sitting in a hot, wet sauna.)
It was hot in the box with Milo
Sometimes when you're hazing the co-op, the joke can go too far
Sparky (to Cube Drone and Milo): Hey, guys, mail started arriving at my apartment addressed to "Sparky". Are you behind this?
Cube Drone: Ha ha, yeah! Milo has some contacts, we got your name changed from Wen Zhang to Sparky in a few databases.
Sparky: This is from the government.
Cube Drone: Milo has a lot of contacts.
Cube Drone: Oh, Wen Zhang might also be on the no-fly list, now.
Milo: I wouldn't use your passport.
Cube Drone: Don't worry, we made you a new one.
Milo hands over a crudely made passport made with crayon and glitter.
Cube Drone's coffee mug vanishes a lot when I make comics. Gotta watch out for that.
It's wise to nickname your interns
Cube Drone: Hey, Sparky!
Sparky: Could you stop calling me Sparky? I've been here for six months!
Cube Drone: (touching Sparky's face) Sparky, the time has not yet come. One day you will earn your true name.
Until he has a name, our tax return lists Sparky as office furniture.
This enthusiasm was for something else
Milo (holding a pile of cash): Everybody get your bets in for the CEO Kickoff Keynote Betting Pool.
At the keynote:
CEO: This is the year that our product finally earns its first nine of reliability, so say goodbye to your evenings, weekends, and any non-ops loved ones.
CEO: Innovation. Velocity. Profit. Opportunity. Profitunity. Enterprise. Scalability. 100%. Thought leader.
Cube Drone is holding on to a laptop, which has displayed on it: Miloslav Betting Website: Cube Drone, for $100 - CEO's Keynote will contain Bad News, Buzzwords, and Profit
CEO: Here is a number. That number could be the amount of money our shareholders will make in 2017! Woo! Yeah!
Cube Drone: Yeah!
CEO: I like your enthusiasm.
They say the first nine is the hardest, but also they say that the last nine is the hardest. Also I am not sure if they are talking about reliability or golf.
The winds of reorganization.
CEO: Thanks for attending this year's kickoff, everyone! This year, we're gearing up to deliver a lot more process. I plan to increase story production by 100%!
CEO: In order to look busy, we've been working hard on a departmental reorganization, so if the devs could come up to the podium one at a time for the sorting ceremony...
Soon: Cube Drone is wearing a Harry Potter Sorting Hat. It says "Product".
We put it on Lain's head and it said secretary, so now we're also trying to recruit a less sexist hat. We're avoiding trilbys just on principle.
Our CEO bought us a book...
The crew are carrying travel gear like backpacks and bags.
Walt: Man, this kickoff is going to be great! Did you all read that book the CEO bought us? I hear he's lined up a talk from the author!
Cube Drone: The one with the graph on the cover that looked like a butt?
Cube Drone: Oh yeah! I totally read it. I am going to agile managementize the hell out of my paradigms.
Lain: I actually read it and it was hot garbage from end to end.
Milo: I found the book very useful. It is cold in my cabin this time of year.
Sparky: We got a book?
Windy Pillows is talking in front of a crowd.
Windy: I am being paid handsomely to be here. Let's look at some stock photography while I read to you from my book.
A Venn Diagram that looks like a butt.
A series of arrows that look like a butt.
A slide selling his next book, "Agile Software Systems" with another butt on the cover.
Windy: As you can see, I spend a lot of my time thinking about Agile.
I chose the name Windy Pillows because it evokes a windbag, and also because it is a fart joke, and also a good name for a man secretly obsessed with butts.
Sometimes an executive will buy everybody in the department a book.
CEO: I've generously purchased each of you a copy of a book. I'd like to ask you to read it before our meeting on Friday.
Cube Drone looks disapprovingly at a book.
The cover: "Leading from Behind, Crack the Management Code", with a chart that looks suspiciously like a butt. |
The same set-up again, but this time with a different book as the punchline:
The cover: "Fifty Shades of Grey - E L James" |
The same set-up again, but this time with a different book as the punchline:
The cover: "Leo Tolstoy - War and Peace" |
The same set-up again, but this time with a different book as the punchline:
The cover: "Toyota Corolla Tercel 1980 thru 1982 Automotive Repair Manual" |
The same set-up again, but this time with a different book as the punchline:
The cover: A cheap looking screenplay. "Addiction to Danger. Screenplay by: CEO" |
And finally the same set-up one more time, this time with a cut-out so the reader can put their own punchline in.
I couldn't decide on which punchline I liked the most for this comic so I just drew all of them. And then I left one where you could add your own punchlines if you would like.
Netflix is now blocking proxy traffic.
A panicked looking developer: This service just isn't scaling properly. We're already way over capacity. If we take on any more load before we get the next patch out, it could bring the whole site to its knees!
A suit: Don't worry. I have an idea.
Developer: Huh? |
Cube Drone, reading off of his screen: In the coming weeks, those using proxies or unblockers to view geographically restricted content will no longer be able to do so. Oh come on!
Filename '200.png'. There we go, I did it. Guess I can go home, now.
Back to work. Zug zug.
Tiffany and Curtis are lying together on a couch.
Tiffany: It's nice to have time off together.
Curtis: Yeah, really nice.
Tiffany: It's too bad you have to go back to work.
Curtis: Wait - what time is it? |
Tiffany disappears. POOF! Curtis falls off the couch.
Cube-Drone sits up: God dammit.
To hell with this, I'm going back on vacation.
Sometimes it is difficult to chill effectively during the holidays
Cube Drone: Hoo. Finally home for the holidays. I don't have to deal with the family until tomorrow. Time to relax.
Cube Drone: Yup. Relaxing. Relaxation. |
Soon: Cube Drone is writing a comment on reddit: look, pickle in python is a bad long-term serialization solution for the following reasons: reason the first
This is a true story.
My boss's boss used the term "tiger team" a little while ago
Email from CEO to Dev:
I want to assure you that we're taking the problems with the vendors' software seriously.
I've asked Walt to form a tiger team to start gathering feedback that we can use to ... |
Cube Drone, looking at his phone: Ha ha. Tiger team! I remember that from old Dilbert cartoons. Does anybody even know what a tiger team is? |
Cube Drone, looking around an empty office, with blood on the floor: Um... guys?
I don't think that Walt knew what a tiger team was supposed to be, either.
Come on build, you can do it!
Cube Drone: Come on, build, no whammies, no whammies, you can do it. |
Melissa: Wait, shouldn't you be able to run the whole build locally and know that your build passes before you commit anything? |
Cube Drone: Hey, do I tell you how to do *your* job?
Melissa: Yes. Constantly.
I'm working on rebuilding the backgrounds using a little thing called "perspective". It makes me uncomfortable.
Sparky can't stop telling people that he's doing Crossfit
Lain: Have you noticed that Sparky's been going out of his way to mention he's doing Crossfit, like, all the time?
Cube Drone: Uh... no? |
Sparky: Guys - I have to skip team building. I have another team to work with. My sweet delts. *shoulder flex* |
Cube Drone is reading a text from Sparky: p.s. crossfit btw
Wait, we weren't doing any team building today. Dammit, Sparky.
Sometimes software can be frustrating.
Cube Drone is working on a project. Attempt 3: Fail. Attempt 14: Fail.
Cube Drone: Breathe deeply. You are getting paid. Calm down. You must not get frustrated. Frustration is the mind killer. You can't tie your self-worthto the success of your software career. Adequate documentation is unreasonable to expect from internally developed software. Exercise your calm.
Attemps 36, 37, and 38: Fail, fail, fail.
Walt: Hey there, buddy. Where's your laptop?
Cube Drone: Oh, hey there, Walt! Definitely I didn't smash it with a hammer. Not me. No sirree.
You're also in a comic that nobody reads!
Native mobile app development might not be the future for indie devs.
Cube Drone: We're not doing native app development anymore?
Walt: It's just too expensive! |
Walt: Development costs are high, getting users to install our app is almost impractically difficult and expensive, and once we have those users, converting them into paying customers is nigh impossible! |
Cube Drone: So what are we selling now?
Walt: STICKERS! (Walt is holding up a sign that says 'store.cube-drone.com buy now!')
Patreon subscribers get stickers too!
How should I manage all of my e-mail?
Cube Drone (holding a magic eight ball): Magic Eight Ball - how should I manage all of my e-mail? |
Cube Drone shakes the ball |
Cube Drone: Wow! Thanks!
Magic Eight Ball: Outlook Not So Good
Also Lotus Notes is pretty bad.
Software developers are like this in real life, I promise
Cube Drone: Hey, if we put an IoT Lightbulb inside the bathroom, we can check whether it's on or off from a web interface. No more wasted bathroom trips when the can is occupied! |
Melissa: Nah - what if someone leaves the light on? We'd need a microphone in there.
Warbeard: Or some biometrics! Lots of people have heart attacks on the john. |
Several revisions later: Milo is wearing a large, clunky "Poop Helmet v7.4".
This is based closely on a very real conversation that we had at work.
Comics are back!
Cube Drone: Hey guys! I'm back from vacation, rested, and ready for action! |
Cube Drone: I hope you didn't miss me too much.
Milo: You left? |
Cube Drone looks crestfallen.
I think I caught a cold while I was in Paris. I can tell because I've been coughing up entire croissants.
Enclosed is a picture
Melissa: Hey, what's that you're working on?
Cube Drone: Letter to Oracle. |
enclosed is a picture of my butt.
While I'm in Europe, my comics will be 100-percent post-consumer recycled content.
I'm headed to Berlin for JSConf EU
Walt: Hey, Cubes, I hear you're going to Berlin to deliver a talk at JSConf EU. What's going up on the site while you're gone for three weeks? |
Cube Drone: Dunno lol
This is what you get today!
I'm not going to be charging the Patreon subscribers for this comic. :)
Vancouver Startup Week WOO
September 21 to 27, 2015
Vancouver Startup Week
Fellating Angel Investors: Your Guide to the Shaft of Modern Venture Capital
Free Labor: Hackathons and You
0 to 10: Making Numbers go Up
VR! Unstable! Experimental! Cool as Shit! |
Walt: Let's see... meaningless awards, crowdfunding: an intro to making videos with soft timpani music, the internet of things: gateway to a horrible future...
Cube Drone: Jeez, they're going super honest this year.
I was genuinely surprised by how much bile I have for events of this nature.
The promo for this comic is super easy to write: sex robot.
The BBC just ran a story about how a prominent roboethicist is calling for a ban on sex robots, like the Roxxxy. |
Or a Roomba with googly eyes and a fleshlight taped to the top. |
Lain: I feel like the BBC is not taking this seriously. |
Cube Drone: Of course not. Nobody considers a "roboethicist" to be a real thing.
That Sex Roomba is great. I want a sticker of THAT.
Jetbrains recently introduced a subscription model:
Melissa: Hey. What's that you're working on?
Cube Drone: Letter to JetBrains. |
Having introduced a new subscription model for your code editing tools, I'd like to suggest some compelling new features to help get developers on board with subscription fees:
* PyCharm allows developers to charm real snakes
* IntelliJ softly sings code to sleep
* ReSharper writes your code for you
* hold StackOverflow hostage somehow
* arrange an "accident" for Vim and Emacs
* PHPStorm intelligently replaces all PHP with code from randomly selected better language
* All clever puns removed from product names
This is a mean thing to do to your co-workers
Code. The top comment is "this code was generated by a tool." |
Cube Drone frowns. |
Cube Drone (angrily): Who keeps adding mean comments to my code?
Smart and Gets Things Done are not the only hiring guidelines
Walt: We're hiring for Smart and Gets Things Done. |
Lain: I feel like those shouldn't be our only criteria.
Walt: What are we missing? |
Lain: How about "not likely to burn the company to the ground in a fit of rage", "hygienic", and "able to communicate without accidentally cramming both hands in their mouth".
I keep trying to communicate without accidentally cramming both my hands in my mouth but it keeps MRRPFH MMPH MRPFH
With everything in the cloud, the server room can be repurposed.
Cube Drone walks by a server room that's whirring and gurgling. |
Cube Drone: Hey, Walt, I didn't know we had a server room. Aren't we entirely on cloud services?
Walt: Yeah, but Milo says there's still equipment we need in there. |
Milo is operating a moonshine still out of the server room.
My friends and I wrote this joke about two years ago and it's been sitting in my joke bin ever since. Waiting. For the right moment.
Coding while you're sick has some challenges
When you're sick, you genuinely want to help your team. Cube Drone: Sure, I'll look at the admin module! |
But your reserves of focus and mental acuity drain quickly. (Cube Drone is sleeping under a duck blanket) |
Which can make status updates difficult. Miloslav: What's your status on the admin module? Cube Drone: I sweated through my jeans and managed to eat a whole piece of toast.
What's your status on that alt text?
Be careful with conference calls...
CEO: It's important! Our competition is coming. Our competition is coming hard... |
<the CEO on a conference call with the Cube team>: And our competition is coming fast.
Cube Drone: Oh god not in my face! |
Walt angrily mutes the conference call.
Getting the visual language for this joke right was surprisingly difficult. It involves a lot of cutting from place to place. I hope it comes together.
Solution: Thousands of community-supported libraries of wildly varying quality.
Solution: Asynchronous programming, node.js
Problem: Callback Hell
Problem: The DOM is too slow for video games.
Problem: asm.js is basically unwritable by humans.
Problem: Prototypal Inheritance is pants-on-head stupid. (That's right, I said it)
Problem: Web resources need to be minified and zipped for performance.
Solutions: Hundreds of community supported build tools of wildly varying quality.
Problem: Machine-generated code is more difficult to debug.
Problem: Async is still a nightmare, huh?
Problem: Ballooning project size and complexity.
Problem: Output runs very slowly on mobile devices.
Solution: Electron, PhoneGap, FireFoxOS
Cube Drone and Miloslav are digging in a giant hole.
Cube Drone: How is digging going to get us out of this hole?
Miloslav: Where I am from, the point of digging is not freedom from digging.
Problem: Compiled code isn't interpreted code, even if it compiles to interpreted code.
Solution: Grunt watch
It's time for a company all-hands
Cube Drone checks his watch: Company standup in five minutes! Ugh. |
CEO, on a video feed: Let's talk about the meaning of the word "vision".|
CEO: SWOT analysis key partner value-add directionality funding round valuation opportunity market position strategic IPO commoditification sales deck-measuring contest money VP of marketing the board wants money money dollars money
Cube Drone: Uuuuuuugh.
All corporate meetings appearing in this work are fictitious. Any resemblance to real meetings, living or dead, is purely coincidental.
Have you ever heard of synesthesia?
Walt: Have you ever heard of synesthesia? |
Cube Drone: The lost Russian princess?
Melissa: The person who does my hair and nails? |
Walt: Wait, what?
Cube Drone: The stuff they use to knock you out during surgery?
No, that's Anastasia.
No, that's an aesthetician.
No, that's anaesthetic.
How to decipher dress codes. Hammer pants optional.
How Formal is Formal? A guide for confused programmers who plan to dress like traditional businessmen. |
Casual: Wear whatever your damaged mind desired. Beach jorts! |
Business-Casual: Like "office", but you can trade out any single item for a casual item. (Miloslav is wearing a collared shirt, nice shoes, and hammer pants.) |
Office: Collared shirt. Slacks. Leather shoes. Argyle optional but encouraged. |
Informal/Business: Surprisingly, suit and tie. |
Semiformal/Wedding: Suit and tie or tuxedo. You decide! |
Black Tie/Formal: Full tuxedo. Cufflinks. Cummerbuns. Bo-tie. |
Creative Black Tie: Tuxedo, but also a dinosaur hoodie that covers your face. |
White Tie: Tuxedo with top hat and tails. (Xyzzy: I feel like a circus ringleader.) |
Ceremonial: Maximum fanciness levels achieved. (The President of the Internet wearing a crown, cape, and medals on top of a three-piece suit. )
PAX: Steven Universe costume.
It's been just over a year since the last team portrait.
It's a picture of the whole team. Nobody says anything.
It's been just over a year since the last team portrait. Nobody has grown or changed, but they got everybody in the picture this time, and there's a new hire!
I tried to draw every GitHub red flag I could think of.
Sparky: So, what do you think of my new project? Pretty sweet, huh? |
A github repository: sparkyzhang/awesome_cms. Description: 'finally, a CMS that rocks."
39 commits, 1 branch. Most recent commit: ASDFJKL;A. Folders include 'node_modules', 'file___0_split', '.idea', and 'midi_files'.
Files include 'index.js', 'misc.js', 'stuff.js', 'utils.js', 'things.js', and '.DS_Store'.
There is no readme. |
Cube Drone: Yeah, it's ... great. Good effort.
Developer Pro-Tip: When you read 'utils', mentally substitute it with 'things n' stuff' or 'misc'. Then don't name it any of those things.
Here are some of my thoughts on hiring...
So, lately, I've been reading a lot about how traditional culture-fit and whiteboard interviews tend to produce monocultures, very little useful data, and often choose confident air-bags, people who are great at "gotcha" puzzles and language minutiae, and great culture fits over shy-but-awesome people.
So here's a process that might work. Take with a grain of salt.
Create a list of skills that you feel would be valuable to the team. ("Android Development", "Conflict Resolution", "Ability To Eat Many Hot Dogs") For each skill, decide which member of your team would be best equipped to evaluate that skill.
For each skill, have the subject-matter-expert on your team prepare two to three open-ended non-trivia questions about that skill. ("How many hot dogs would you say that you can eat?" "Describe a time when you have eaten many hot dogs.")
Prepare a five-point scale for every skill, with a loose definition of what a person should be expected to know for each point on the scale.
Pick a language that nobody has ever programmed in, ever, like Rust, Eiffel, O'Caml, or M.
Choose a trivial problem space that is very well defined, like "Scoring Poker Hands", or "Scoring Yahzee".
Think of a single thing to change about the problem space, after the fact. "2s are now wild".
Let your prospective candidate know every step in the hiring process from the get-go, with a friendly chat with the team lead that lasts at least 30 minutes.
Have the candidate take home a copy of every open-ended question, as well as a description of the problem space. Ask them to produce a library, with documentation, in Obscure Language, that allows users to solve problems in that space. Try not to allow the candidate more than one day to work on the library.
Have every member of your team look at the library. Score each library on how easy it is to learn to use, how flexible it is, how easy it would be to adapt the code to account for the change in the problem space, and how easy the code itself is to understand.
If the library meets the criteria, bring the candidate in for the interview. Grouping by team-mate, have the subject-matter-experts ask their prepared questions. Estimate their skill using the rubrics.
Have two team-mates ask the candidate questions about their library, asking how they would change the single thing about their problem space, and to talk about any technical decisions that they made.
To get a lot of useful baseline data, perform this series of steps on all of the people in your current team (making sure to ensure them that their jobs aren't at risk).
That opening is the longest run-on sentence I've included in a comic in ever. Yugh. I apologize, everyone. Doubly for the "scare quotes". Yeesh.
I love doing this to marketing surveys.
Marketing Survey on a website.
1. Salary Range: $150,000 or more.
2. Gender: Female,
3. How Did You Hear About Us: Radio Ad. |
Cube Drone is frantically clicking the "Submit" button on a website. |
A board room. A CEO is addressing a board meeting. CEO: "This very troubling demographic data shows that over 80% of our userbase are wealthy, radio-loving women who love artesanal cheeses and automotive magazines."
I love including the phrase "artesanal cheeses" in things.
Cube Drone, showing Milo his watch: It has so many cool features - Tweets, calendaring - it can even tell my heart rate! |
Milo: Wait, that's your heart rate?
Cube Drone: Yeah?
Milo: Your resting heart rate? |
Cube Drone, looking concerned, sitting in a doctor's office.
stupid android, stupid heart rate monitor, stupid heart
Lain: Yeah! I did it!
| Cube Drone: That's just an error message.
| Lain: Yes, but it is a different one! That's progress!
All programming is like this.
Cube Drone: Hooray! It's that special time of year when social media teams
try to awkwardly shoehorn their products into Mother's Day!
Dell: This Mother's Day, give her the gift she's always wanted - a
Dell PowerEdge M630 Blade Server! #rackmountyourlove2015
Starbucks: Nothing says love like a frank, open discussion about diversity
in the workplace #starbucks #racetogether
PBR: We know you're going to need some #PBR this #mothersday. Family, amirite?
Wizards of the Coast: Seriously, we have a quota to meet, but nobody
thinks you should get your mother a #D&DPlayersGuide
MOUNTAIN DEW! RIDE THE MOTHERWAVE!
Walt is looking at his phone.
Cube Drone: Hey, Walt - why did we take a telecom contract?
| Walt: When a lioness chases a herd of antelopes, she doesn't
chase the strong ones - she chases the slow, weak, old ones
who are no longer useful to the pack.
| Cube Drone: So we're the lionesses?
Walt: What? I was just watching Animal Planet on my phone.
We're really more like hyenas.
*fweep* Cube Drone: Oh, that must be an incoming tweet!
| *boo dweep* Cube Drone: I must have an email!
| *BWAAAAAAAAAMP* Cube Drone: And that's JIRA.
BWAAAAAAMP is a great sound effect
Walt (to team): We're all on time for standup, except for Cube Drone. He's late.
| Cube Drone parachutes in: Ha ha! Parachute!
| Meanwhile, in reality: Cube Drone looking depressed on a city bus.
It would also be fun to get a big wrestling-intro style entrance to a standup.
Walt: However, we do have a new client to announce! We're going to be
developing a new cel-phone support portal for Bellcomcasprint.
Meet your new product manager, Patrick Wendt!
| Patrick Wendt has a pyramidal head. He's surrounded by a cloud of
enterprise words: "SOAP, JIRA, JBOSS, Enterprise, JavaBeans, Ticketing,
GANTT, Waterfall, Eclipse, Factory, Application, Bus Factor, SourceSafe,
WebSphere, Spring, Aspect-Oriented Programming, Inversion of Control Framework,
Centralized, Risk Management, Oracle, JAR, Rational Unified Process, ISO9001,
| Lain: Hey, Cubes, do you know this guy?
Cube Drone: I've never met him. But yes.
Bellcomcasprint: Embracing The Future From Behind
Walt: After numerous texts, messages, emails, and phone calls from one concerned
employee, I'd just like to assure you all that we are not being bought out by a telecom.
| Cube Drone: Yay!
| Miloslav: What? I have stock options.
also one concerned fax, and a few concerned singing telegrams
Post Move, Task 1: Cube Drone is in a messy, box crowded environment. "I know it's here somewhere!"
| Cube Drone: Ha ha! Laptop!
| (From offscreen): Have you found the toilet paper yet? It's urgent!
| Cube Drone (distracted by his laptop): Yeah, I'm on it.
So, I moved on up, to the east side of downtown Vancouver. A dee-luxe apartment in the sky.
Cube Drone: Are those... telecom people?
| Cube Drone backs away slowly. Cube Drone: oh shit oh shit oh shit
| Two men with polygonal heads walk by, one, with a pyramid head,
wearing a blazer and red shirt, the other, with an extruded octagonal head,
wearing a polo shirt with an ID tag.
Apparently, anybody who works in a telecom? Geometric head. Who would have guessed?
Miloslav: Hey, Cubes, have you noticed that ever since the company
has started paying for our lunches, we are way more productive?
| Cube Drone: Yes.
| they both look at the fourth wall
Send this to your team lead.
Cube Drone: Did you hear? They're shutting down Google Code.
| Sparky: Oh no! My Subversion projects!
| Cube Drone: <exasperated> God dammit, Sparky.
| Sparky: Aaaaaaaa!
Don't worry, we'll just move everything to SourceForge, or - I guess maybe BitBucket.
Re: Working from home; Cube Drone: What is this, 1992? I can be productive from home without a needless commute.
Also, think of all of the talent you could miss out on by only hiring locally.
| Re: Outsourcing; Cube Drone: The communication gap is just too big. You'll never get the software quality that you
would with local employees.
| Re: Contradictions; Cube Drone: ...
Hiring employees from Vancouver is good for your business, and hiring employees from anywhere else? Bad for your business.
(Cube Drone and Lain are sitting in a park) Cube Drone: "I want to like the Apple Watch, but I'm afraid it's going to be another Google Glass or Segway. |
Miloslav cruises up on a Segway, wearing a Google Glass, leaning on a Nintendo Power Glove: "Y'all just jealous". |
Miloslav rolls off into the sunset. |
Cube Drone: Huh.
It's the Apple Watch, not the iWatch.
<Suit is standing in front of a chart, on a Google Hangout> Suit: This quarter, we're seeing increases in our KPI, our ARPU, our CAPEX and our WAGYU. |
Suit: Money is up, anti-money is down, and we are on track to make a lot of money next quarter. |
Cube Drone: Oh wow. Inspiring.
Lain: Do you think if we worked harder we could make them even _more_ money?
It's nice to know the company is doing well, but at some point you're just gloating.
Resume: Bradley Dongcaptain,
* Myriad and Mysterious
* Ham Foundry (the rest of the resume is blocked out)
Cube Drone: This is terrible! At least he could have spellchecked. |
Miloslav: You're one to judge. Your resume was just scribbled on a napkin. |
Walt: You just breathed your name into a jar and sent us the jar.
Also 'resume' probably shouldn't be the largest word on your resume.
ALTER TABLE | DROP TABLE (Oh shiiiiit) | FLIP TABLE (Cube Drone flips his table over in anger)
Okay, so, the joke is, 'Alter Table' and 'Drop Table' are SQL commands, whereas 'Flip Table' is an expression of anger that you might experience after accidentally Dropping a table, which deletes all of the data contained within.
Cube drone sitting at his desk, typing.
| Cube drone sitting at his desk, typing. The desk is a bit higher.
| Cube drone sitting at his desk, typing. The desk is much higher and Cubes is
visibly uncomfortable. "Guys, I think my standing desk is broken."
HACK THE PLANET
Cube Drone: XYZZY, do you think we're ready to launch?
XYZZY: I'm not sure about internationalization.
Cube Drone: For an image widget?
XYZZY: I agree.
XYZZY: Have you talked to ops?
Cube Drone: Yeah, I have.
XYZZY: I'm not sure about internationalization.
Cube Drone: Wait a minute.
| (XYZZY is asleep in his own apartment)
And you would have got away with it, too, if you did a random selection _without_ replacement!
Assembly is still the only option in some environments. It's also popular with some hobbyists for the romance and difficulty of it. Horse.
| C# is like a really nice car that's tied to an enormous, unwieldy anchor.
| *Walt shakes Cube Drone awake* Walt: Wake up, you fell asleep watching conference videos again.
| Cube Drone *obviously groggy*: Perl is like getting hit by a truck.
Look, sometimes it's okay to fall asleep at work. I hope.
A screenshot of a very depressing Google Analytics page, with one lonely user visiting cube-drone.com
| Cube Drone: Come on, man! Share the website with your friends! No, don't go! Nooooooo!
| Soon: Walt: So, we're cancelling the Office Move storyline.
And we're going to really ramp up the pandering. Next week, we're just going to make fun of PHP and Haskell.
Meta comics are not funny.
Red-Haired Woman: So, based on your appearance, I assume you're looking for some sort of... dank pit, or dungeon?
| (Milo, Cube-Drone, and Walt look unimpressed) Walt: I'm not sure if that's really the image we're looking for.
| Red-Haired Woman: But, like, *really* fast internet, right?
| Walt: Oh definitely.
Some of the assumptions you make about programmers are hurtful and wrong and mean. And some of them are correct.
In the office:
Lain: These commercial property websites are terrible. We might need...
Cube Drone: Don't say it!
Lain: A property developer.
| Elsewhere, a red-haired woman with a blazer and leather boots.
| She looks up. "I'm needed somewhere. I can smell it."
It smells like money.
Walt: Before we start searching for a new office, let's write down some priorities.
| 15 Minutes Later: A whiteboard filled with options.
* Quiet: 7 pts
* Coffee: 5 pts
* Don't Want to Sit Next to Sparky: 3 pts
* Fortifiable (In Case of Zombies): 1 pt
* Hot Tub: 2 pts
* Treehouse: 1 pt
| Walt: I think we can work with this.
They can't work above a Pinkberry anymore. It's distracting.
Happy New Year!
The whole team is standing around on a roof. Walt is holding champagne.
Walt: A toast!
| Walt: To a team who can handle just about anything!
| Xyzzy (remoting in, on a phone): To working from home!
| Lain: To long life and short line lengths!
| Miloslav: To failing fast while you can
| Warbeard: And failing gracefully at 3AM
| Cube-Drone: And to never hardcoding the year into anything!
| Everyone but Sparky: Cheers!
| Sparky: shit.
Sparky hardcoded the year into something. The joke has now been explained.
Cube Drone: Can I get a couple of days off around Christmas?
| Walt: Sure. Truth be told, this place is a total ghost town on the 24th. Except for Milo. God knows what he gets up to.
| Christmas Eve: Milo is sitting in his office, with a tiny tree and
lights strung up.
Milo: Finally, peace and quiet. I'm gonna get so much work done.
Alternate third panel: Milo Dance Party
Walt: Gentlemen, we had an hour-long service outage last night,
and I want to know why.
| Warbeard: It was dev!
| Cube Drone: It was QA!
| Sparky: It was OPS!
| Warbeard, Sparky, and Cube Drone are all pointing at one another.
| Cube Drone: It would appear we have a mexican standup on our hands.
I'm not sure if the term 'Mexican Standoff' is really super appropriate.
First frame: Cube Drone, to Sparky: Sparky, you've never been to Revolver? Trendy coffee-shop in Vancouver?
| Second frame: It's a magical place where you pay an exorbitant fee to have a coffee slowly poured for you.
| Third frame: And all this in a cafe so small, you'll have to fight for space while they gently caress your coffee to life.
And I said 'dammit, Revolver, get off my lawn, I ain't givin you no tree fiddy'
First frame: Walt, texting to Cube Drone: How is the conference going? Are you guys having fun?
| Second frame: Cube drone, in the rain: Agh, this capacitative touch screen is not handling the rain well.
| Third frame: Walt, reading the response from Cube Drone: Yeah its totalln awesomr wert having a grrr flrgmbbbbb
lkoioik, sokmetimes phoness dsomnt weoirkn ther wayt ygiou wantr trhem tio. this ios a triue styopry of som,ething tyhat hsappened to ,me ion a raionstoir,m
First frame: (Cube Drone is giving a presentation)
| Cube Drone: Before I begin my talk, I'd like to draw some attention to the gentleman with the red hat in the third row, who was right in front of me at lunch.
| Second frame: (On the presentation screen is a picture of a man in a red hat, holding a shrimp with some tongs.)
| Cube Drone: Pictured here, carefully, with surgical precision, taking every last shrimp from the shrimp and noodle tray.
| Third frame: (Cube drone is visibly angry)
| Cube Drone: You violated a social contract and left naught but a bereft, shrimpless mass of noodles in your wake. For shame.
This is my 100th Cube Drone!
Frame 1: Cube Drone is talking to Milo
| Cube Drone: Yeah, Netflix's Chaos Monkey concept - killing services at random to test your distributed systems - it's a cool idea.
| Frame 2: Milo: And that's why we have a co-op student.
| Frame 3: Sparky enters the frame.
| Sparky: Guys, I'm not sure how a DELETE statement works in SQL, but I think I did something bad.
I had a window open on dev and another window open on prod, and I think I entered this command in the wrong one
Frame 1: Cube Drone is sitting in his office.
| Cube Drone: It's so dreary in here. I should go outside more.
| Frame 2: Vancouver, in all of its dark, rainy glory.
| Frame 3: Cube Drone in office again.
| Cube Drone: Actually, no.
I spent a lot of time on this drawing. I think of them as 'Sets' and reuse them whenever I can.
Walt: Attention, everyone! Word around the office is that you guys want some kind of trendy coffee solution, like a pourover or espresso machine. |
Walt: Of course, this company isn't just about chasing trends - it's also about predicting them - which is why what I bought you is great! It has all of the old-fashioned charm of a pourover and the great taste of well-made joe. |
Cube-Drone: He bought us a percolator?
Miloslav: Almost certainly.
We've combined the romance of a pourover with an advanced integrated circuit, providing... okay, it's a coffee maker from 1987
Miloslav (singing): Nothing's fine I'm torn. I'm cold and I'm ashamed, lying naked on the floor. |
Miloslav: Illusion never changed - into something real - I'm wide awake and I can see the perfect sky is torn. |
Cube-Drone: Why is Miloslav singing Natalie Imbruglia songs?
Walt: Don't worry, this happens any time I put him on more than one project.
This is a very strange comic.
Lain: My new markers arrived in the mail! |
Lain: Marker dance party! |
Cube Drone: The things that make artists happy never cease to amaze me.
Immediately after this, Cube Drone was delighted to receive 32 gigabytes of RAM in the mail.
Cube Drone (on his laptop): I need the build to finish so that I can push my changes! |
Cube Drone: Gah! Someone else pushed their changes first! Uuuuugh! |
Cube Drone pulls a fire alarm
Desperate times call for desperate measures.
Cube Drone: So, Warbeard, I notice you're not on Facebook or Twitter. |
Warbeard: Yeah, I used this old, reliable set of technologies - you know, email, irc... |
Cube Drone: How do you send your friends pictures of your food before you eat?
Warbeard: I... dont?
I even sent a fax, once.
Cube Drone typing into a terminal: tail --literal |
looking behind his computer, he notices that his computer has grown a raccoon tail |
kill --literal is banned in 38 states
Cube Drone: Ha ha! I've spent a month completely rewriting my site renderer in Gulp! It's done! |
Lain: This is even uglier than the old site! |
Cube Drone: Yes, but it renders 50% faster!
Lain: *sigh*... developers.
I will get around to making it look good eventually.
(In a pub)
Walt: All of the game ideas that this generator comes up with are terrible. "An indie game where you fight dragons with a truck." "A tycoon game where you draw horses indefinitely." |
Cube Drone: That sounds like an amazing game. And I shall build it. |
1 Week Later, Cube Drone is looking at a completed first draft of the game. Cube Drone: I am not sure exactly where commitment to the joke has gone too far.
but I suspect that it was at least a few days ago.
Cube Drone is angrily eating a pinkberry iced-cream.
The CEO is talking, but all anybody hears is empty platitudes, like 'growth hack the enterprise stack - maximize our clickstream revenue - disruptive entrepreneur - funnel engagement' |
Cube Drone: I didn't understand a word of that.
Lain: Get Walt.
Only Walt can decipher this demon language.
Cube Drone holds his hand to his ear. He hears 'clack clack clack clack clack margins'. |
'clack clack clack ROI'. Miloslav: They're coming! |
Cube Drone: Suits! Run!
They are coming.
Cube Drone: Hey, that must be XYZZY! |
Cube Drone: I thought you only worked from home? What emergency brings you to the office? |
XYZZY: It is so hot in my apartment.
Everybody in the office goes by their IRC screen name, except for Walter, who has the screen name WALT_ROCK, and Miloslav, who has the screen name Miloslav.
Milo: It should be in arial! Is good font.
Walt: Oh, and the presentation should be a Powerpoint so that I can edit it. |
Cube Drone: Animations! We should draw the eye with animations!
Sparky: Ooh - big, punch, two-word slides. |
Everybody: 36 pt! I can't remember the words, can we put them all on the slide? Needs more zazz. Like, 20% cooler. I ahve this photo of a baby on an iPhone.
Lain, looking anguished: Aaaaaa
The terrible burden of the designer.
It's just a picture of the team.
I havent forgotten that I have a comic, i've just been distracted by animated shorts
Cube Drone: I have this super nice microphone, but the sound quality in my animated shorts is terrible. |
Walt: Are you sure you're recording from your nice microphone and not some other mic?
Cube Drone: Yeah, I'm sure. I mean, what else would I be recording from, the laptop... mic? |
A lock of shock and horror from Cube Drone
A TERRIBLE REALIZATION STRIKES. also a full month between comics is totally appropriate shut up
Lain: Aw no. I just learned backbone.
Cube Drone: Again?
Sparky: Damn. |
Walt, pressing the button, which resets the clock to '00:00:00': I know, I know, it sucks to start over.
Oop, everything changed again. Hold on to your pants.
Cube Drone, standing in front of a time machine. (You can tell that it is a time machine because it is labelled as such. ) |
Cube Drone, wearing a red shirt and coding. A blue-shirted Cube Drone wearing an eyepatch appears behind him. 'pop! |
Cube Drone 2, angrily: "sfjlasdf" is a terrible commit message!
Why are you wearing an eye patch? Time travel. Time travel is why.
Headphones: Lose yourself to dance!
Cube Drone: Man, this Daft Punk album is great! |
Headphones: c'mon c'mon c'mon c'mon Lose yourself to dance! c'mon c'mon
Cube Drone: Hmm... now what was the Linux command for creating a file, again? |
Headphones: Touch... touch... I remember touch...
Cube Drone: Oh! Thanks Daft Punk!
Thanks also, Stan Bush!
Cube Drone is sitting at his laptop. Laptop: Error, logger cannot be resolved to a type. |
A logger is in the office. Logger: It's right you know. |
Logger: I do yoga, I work at a soup kitchen, and my line of hand-knit cozies is taking Etsy by storm.
Bingo: Software Developer Edition: go, ember.js, dart, rails, zeromq, noSQL, node.js, nmp, SOA, REST, Free space, LESS, Vagrant, Docker... |
Warbeard, to Cube Drone: Yeah, this is pretty funny, but have you seen the system administrator's version? |
Bingo: Ops Edition: fuck, fuck, fuck, fuck, FUCK, fuck, fuck, fuck, fuck, free space, fuck, fuuuuck, fuck!!, fuck
I am really starting to miss physical media. Maybe I could make a pencil drawing that is a little more coherent than this. I hate this art and everything in the world.
Cube Drone: I've been thinking of getting a code tattoo. |
Milo, pulling up his sleeve: Be careful, our industry is trend driven and trends can be fickle. |
Milo's tattoo: Lotus Notes 4 Lyfe, with a nautical anchor
Cube Drone: Would you mind if I tried on your google goggles?
Lain: Go ahead! |
Cube Drone, wearing the Google Glass: oooooooh |
Lain: Take it off.
Cube Drone: Why?
Lain: You have an erection.
Yes, I tried it on _over_ my glasses.
Cube Drone: Now to install all the apps I need to be productive. |
Cube Drone: Hmm... Final Fantasy XIV couldn't hurt... |
Spoiler: It could.
Aaaand that is why I missed a whole week of comics.
Cube Drone, at his laptop: Wait - what's this? A conduit toolbar? |
Laptop: Vegas sluts! Cash $! 512 Viruses! Different search bar! |
Cube Drone, dropping his laptop into a vat of acid while wearing protective gear: sigh.
And family members were never again allowed to touch my laptop.
Cube Drone, wearing full battle gear and with an armed contingent: Semicolons! |
Milo, wearing full battle gear and also with an armed contingent: No semicolons! |
Rule of development #134a. The more trivial a topic, the more passionate developers will be about it.
THE POSITION OF THE CURLY BRACE IS SO IMPORTANT
As Cube Drone stares at his computer screen, the code morphs until it looks like a pleasant beach.
Cube Drone: It is so hard to concentrate on work right after a vacation.
All I hear are marimbas wait that is my phone
Lain: God, I'm trying to play online pong but there's so much lag! Would you look at this! |
Cube Drone: What am I looking at, here? |
Pong ping! Yes, bad joke Saturdays are back!
Hurr hurr hurr
Cube Drone is sitting in a pile of boxes: compression. |
Cube Drone is hauling things to the curb: garbage collection. |
Cube Drone is putting books away in an IKEA shelf: sorting
These skills are universal.
Cube Drone: I'm moving out! I want the world to know, I want to let it show. |
Cube Drone, holding a tape gun: You know what? |
Cube Drone: Fuck this thing.
Seriously. Fuck this thing.
Cube Drone: Morning, Lain! |
Lain: Morning! (This text is in a serif font) |
Cube Drone: You've been hanging out with your graphic design friends again.
Either that or you have developed an accent.
Cube Drone, to an interviewee: So, thanks for interviewing with us! For our first question, could you tell us how 'this' works? |
Interviewee: How... what works? |
Cube Drone: This!
Interviewee: I can't tell you how it works until you tell me what it is!
Lain and Cube Drone are buying iced cream. Lain: Large? That thing is huge. |
Lain: Seriously, how do you even fit that in your mouth?
Cube Drone: Snrk. |
Lain: You'd have to take it home and share it with a friend.
Cube Drone: pfffft.
Sometimes when you let a Thats What She Said ride, it just gets funnier and funnier.
Cube Drone walks into the office. Ah, back from Vacation! His laptop reports 132 e-mails. |
Cube Drone cracks his knuckles. |
Cube Drone: boop!
His laptop now reports 0 e-mails.
Have you heard of RSS? It is incredible.
Cube Drone (singing Vacation by the Go Go's and driving a Toyota Matrix): Vacation all I ever wanted... |
Warbeard: Welcome to the cabin. Did you pack anything even remotely appropriate for the outdoors? |
Cube Drone (happily clutching an armload of electronics): Not even a little bit.
I am at a cabin, I do not have time to write alt text.
Cube Drone: Ooh, a new Civilization V expansion is out! |
(the rest of the comic is left incomplete)
Trade routes! Expanded diplomacy options! Tourism! I am sorry, guys, it is busy times.
Cube Drone: Java. Unreadable.
Lain: Perl |
Cube Drone: Lisp. Closures.
Walt: What are they doing?
Milo: Programmer Password.
Cube Drone: Shit show!
Ha ha! Making fun of PHP.
Lain: Hey, could you maybe not call me paranoid just for wanting to encrypt my communications?
Cube Drone: Wait, how did you know that I called you paranoid? |
Lain: You posted it on a publicly logged IRC channel.
Cube Drone: Whoa, whoa, not cool. That channel is private. |
Lain: Oh, man. If only there was some software you could use to protect your privacy. Oh wait.
I AM WATCHING YOU, CHRIS.
Cube Drone: Sparky, explain this code to me. |
Sparky: Okay, this object is the 111th level loader, and this variable is the 11-layer load linker. |
Cube Drone: So you named them 111ll and 11lll?
ll1ll = ll11l.ll(ll111)
Cube Drone: Which K-Cup should I pick today? Donut Shop or Brazilian Rainforest? Decisions, decisions... |
Meanwhile, at the Keurig Factory, a whistling worker in safety gear oversees a machine that just dumps the same beans into both cups.
Except when they are filling the Brazilian Rainforest K-Cups, a cheery bossa nova tune plays on the radio.
Cube Drone: What's this?
Sparky: I successfully attached a Raspberry Pi to a Bosc Pear! |
Cube Drone: Why?
Sparky: I wanted to be more agile. |
Cube Drone (agitated): wha
Sparky: Pear programming!
There is really not much more I can say about this. This is an awful joke and I am sorry.
Cube Drone: Hm. Should I use su or sudo to escalate privilege in Linux? Oh, I have an idea! |
terminal: su su sudo |
Laptop: Phil Collins mode activated!
This is my favourite dumb technology joke.
Cube Drone is reading news on his laptop: Whistleblower reveals monstrous extent of NSA citizen surveillance. |
Cube Drone, enraged: What an injustice! I'm going to encrypt all my e-mails and engage in citizen activism and (something) mail to my... |
Not 10 Minutes Later: Cube Drone, calm as ever, reading news on his laptop: Ooh! WWDC news! Look at that new Mac Pro!
It's like a sexy wastebasket!
Milo: The client wants us to use Hungarian Notation for any new variables we add to their codebase. |
Sparky: Hungarian notation. Gotcha! |
Later, in Code Review: Cube Drone: Sparky, why did you name this variable Szamlalo?
Wait, is this unicode? How did you even get it to compile?
Cube Drone: Check this out! I built a file encoding program that uses markov chains to convert files into seemingly random paragraphs so that I can use blog comments as a free online file storage system! |
Blog Comments: Enough of that, the restaurant is going to be free, and very powerful. I suspect that my credit card numbers have no card at all. What a waste! I won't even mention the wanton spread of nicknames across America. Now I'm free, free as a big pile of... |
Cube Drone: I... don't know.
George Mallory is famously quoted as answering the question 'Why do you want to climb Mount Everest?' with the retort 'Because its there'.
Cube Drone is sitting at his desk, coding. As he does, more and more coffee cups start forming a grand tower at his desk.
Walls of coffee containers and spent cola receptacles seem to follow in my wake.
tweetron twitter client:
Wololo: @jsconf rocks the hizzouse!
BorneoPete: beach party time @jsconf
BIFFY: CHECK OUT MAH SLIDES @jsconf !!! |
Cube Drone is watching this, indoors, on his laptop. Hm. |
Cube Drone puts a festive umbrella in his coffee mug.
JS Conf seems like fun, is what im sayin'.
Lain: It was wonderful. What did you do with your long weekend?
Cube Drone: Oh, not much. I bought a bunch of Kool Aid, a big red shirt, and I rented a bulldozer. |
Lain: Wait, what? |
Cube Drone: Oh yeah.
I initially planned for the third frame to be a big-action punchline with Cube Drone breaking through a wall, but I think it might be funnier if the weekend is just implied.
Cube Drone is standing at an open mic. Cube Drone: Hey! |
Cube Drone: I have a special way to handle multithreaded programming! The trick is to be authoritative and just tell the computer what to do. It's called fiat concurrency! |
Comedy Shack. A man is putting up a sign that says 'no programmers'.
Behind every rule is a story.
Cube Drone, with Lain in a drugstore: Why are we here? Shouldn't we be at the conference - you know - learning stuff? |
Lain: Tradition. Whenever we're out of town, we buy unusual dollar store items to hide in the hotel rooms. |
In a drawer: Guess who's turning 8! Trojan unlubricated condoms. Gideon Bible: Extra Shame Edition. Clown Makeup!
We have also helpfully circled all of the dirty parts in the bible.
Milo: Look, you can't just check in code like that. You have to go through code review process first. First, you have to run it by lead developer, cardinal (baseball, catholic, or bird), and live unicorn, and get unanimous approval. Then, your code is sent to egyptian underworld. If code is heavier than feather of Ma'at, it is consumed by dread god Ammut for eternity. |
Cube Drone: Come on.
Milo: Okay, but run code by two team members before check-in, okay?
Before it goes into the codebase, it must fight for its life... in the THUNDERDOME.
Milo: So, because you broke the build, you're going to have to wear the sombrero of shame. |
Cube Drone: That's not so bad.
Milo: And the sandwich board of repentance. And... |
20 minutes later:
Cube Drone, wearing a sombrero, a clown wig, clown pants, clown shoes, and a sandwich board reading 'I broke the build.': I feel like this may have gone too far.
Before you fix the broken build, you have to do the 15 minute apology dance, then sing the Sorry Song.
Cube Drone, at his laptop: Okay, checked out, made a change. Time to push it back to the server. Done. |
Alarms blare. Woop! Woop! |
P.A. system: The build has been broken! Alert! Woop!
Cube Drone: Poop.
Moving to a company with automated builds, TDD culture, and mandatory code review is a big step for a lot of cowboy coders.
step 1: git clone |
step 0: learn git
step 1: git clone |
step -1: install IRC
step 0: learn git
step 1: git clone
Cube Drone, on IRC: hey, guys!
Step -2: Firefox/Chrome.
Cube Drone: It looks like Reddit has fallen in love with this 'Forever Project' idea.
Lain: Forever project? |
Cube Drone: Yeah, some Redditors have found projects that are truly special to them. They only need that one project - forever. |
Cube Drone: Although it looks like most of them are just procrastinating so much they'll never finish.
I mean, that is what reddit is for, right?
Warbeard: Look, you network-operating centre sons of bitches, If I don't see a working virtual machine in thirty... |
Warbeard: *expletive* your nagios with a heaping does of *expletive*
An arrow saying Dev-Ops is pointing at Warbeard. |
Warbeard: mother<expletive> and your stupid
Cube Drone walks away, whistling.
The swearing continues for at least another 15 minutes, and 5 of those minutes are in fluent Hindi.
Milo: New guy, huh? |
Milo: You're on my team. Miloslav. Git checkout. Pub at 4:00, ok. |
Cube Drone: Whoa. That was..
Sparky: Terse? Yeah, English is like his eighth language. He's efficient.
Cube Drone: I was going to say intense.
Sparky: Oh yes. Very.
Step one at any new job is checking the codebase out of source control.
Lain: Okay, Sherlock. It's my turn. You're an ex-Java developer, you're kinda lazy, and you're a bit depressed.
Cube Drone: How'd you guess? |
Lain: I read your resume, dummy. Your last job was as a Java developer for a big telecom. Ex-Java because you work here, now. Lazy because the end-game for everybody I've ever talked to in telecoms is to find a position where they don't have to code that much and retire at 55. |
Cube Drone: And the depression?
Lain: You heard me say Java Developer, right?
When in doubt? Helvetica.
Cube Drone <shaking hands>: Hey, I'm Cube Drone.
Cube Drone: UI Developer? |
Lain: How'd you know? |
Cube Drone <holding a Sherlock pipe>: Elementary. |
Cube Drone: You have a framed t-shirt at your desk. Simple deduction, really.
The T-Shirt says "Powered By Unicorn Farts" and has a rainbow on it.
I must make that shirt real someday.
Lain is writing an e-mail to her co-workers; Lain: "It looks like the new guy has arrived." |
Cube Drone is very gradually peeking over the cubicle wall |
Lain: "He is very strange."
Cube Drone: Hey, Free Geek, are you still selling those laptops for charity? |
Cube Drone is surrounded by dozens of laptops, all plugged in. "I am the king of laptops!"
Sure, you could accomplish the same thing much more efficiently with one very powerful workstation running dozens of virtual machines. But this is way cooler.
Cube Drone is thinking. "$3500 budget." "Set up your own office." |
Cube Drone, with a massive cheshire grin, and the idea light-bulb above his head.
Then he got an idea. An awful idea. The Cube Drone got a wonderful, awful idea.
Walt: And this'll be your computer! |
Cube Drone: ... |
The computer is a very old single-unit computer from 1978
ISTC 5500! Clavier alphanumérique et numérique!
Walt: You'll be sitting next to Sparky.
Cube Drone: Sparky? |
Walt: He's our co-op. We call him Sparky because he blew up our file server on his first day. |
Cube Drone: And you kept him on?
Walt: He's a co-op. Whatcha gonna do?
All characters appearing in this work are fictitious. Any resemblance to real persons, living or dead, is purely coincidental.
New Job, Day 1: Cube Drone is standing in an elevator, surrounded by men in suits. |
It's pretty clear that we share the building with accountants and lawyers. Whenever I see someone in a suit, I'm a little happier with my career choice.
It is good to be the only one in the elevator wearing a Mario t-shirt.
Cube Drone and the Fine Art of Meeting Sabotage
Every efficient meeting has three demons that you must slay.
An agenda is a magical document that tells people in a meeting what they should be doing. It must be stopped.
If this dreaded document does exist, you have to derail it. A good way to do this is to introduce tangentially related topics to the conversation.
Office Drone: "So we're agreed, the product will be am..."
Cube Drone: "Yes, but what color should it be?"
Pro Tip: Inconsequential details, personal details, anecdotes, even things that are project-related but off-agenda are great for this!
If you're lucky enough to be the one calling the meeting, do your best to ensure that nobody knows why they are there or how to proceed.
Cube Drone writing an e-mail: Meeting request. Subject: Everyone. Subject: Morgan Account. Just want to gather everyone's input wrt the Morgan Account...
Once a topic has been decided on, the person discussing the topic needs to have the focus of the room.
Fiddle with the projector. Fiddle with the bridge. If at all possible, work with people who are very far away - that way you can do both.
Present with a device from inside a moving vehicle.
Use powerpoint, whenever you can. There's nothing quite like slides and bullets to hide how bad your presentation is.
Hold the meeting right after or before lunch.
Ignore the meeting: fiddle with your mobile device.
There are lots of ways to ensure a meeting goes more smoothly. Most of these techniques require foresight and effort.
Setting up the equipment before the meeting.
Taking and distributing minutes.
Practicing your presentations.
Making sure everybody is prepared for the meeting.
To sap everybody's effort for this kind of thing, it's best to cull keen employees from the herd. ("Oh my god, somebody's killed Jenkins with some kind of poison-tipped blowdart!")
That concludes the lesson on meeting sabotage.
This is the very first comic to ever have Cube Drone in it!
I wrote it after a particularly long meeting, shortly after buying a Cintiq 12WX.