An open letter to advertisers who target millennials

That is, my age group. Everyone’s trying to sell stuff to 20-year-olds. Seems like they think we’re easy to sell to.

…We are not. We’re broke. But if you still want to, here’s what you’re doing wrong.

It’s been said over and over again that millennials hate ads. I’m going to argue with that a little bit. Everyone’s been freaking out that “traditional advertising” no longer works,  but they haven’t actually bothered to figure out why, and instead they’ve jumped into wild guesswork about what these young whipper-snappers will respond to (read: fork over money for) instead.

Here’s what we actually don’t like: being manipulated. Apparently many advertisers have forgotten that ads don’t have to be manipulative, so they’ve come to the conclusion that they don’t work at all, instead of considering that their favorite tactics are actually counterproductive.

(And yes, this seems a little tangential for this blog, and a little ranty, but it’s important because programmers often rely on advertising as a sole or main source of revenue for websites and mobile ads–and we sometimes have to advertise our own products as well. So, this post is for anyone purchasing advertising, in the hopes that they’ll end up making a better revenue source for programmers. We both profit if you guys get this right.)


Have you ever heard of a game called Choices? Or Episode? (I’m not totally clear on the difference, if there is one. I’ve never played either.) If you haven’t, you’re almost certainly not a 13-30 year old girl, or at least you haven’t been revealed as such to advertisers. Even people outside this demographic probably remember at least one ad, because they’re among the most obnoxious I’ve ever seen. Usually they’re about people cheating on each other, but sometimes they feature people breaking up with each other, interactions at a party (usually involving making out with a stranger), or a woman getting pregnant. They’re always demeaning and ridiculous.



Yeah, that kind of ridiculous.

I’ve seen these mocked endlessly by people who use the platforms they advertise on. You’d think this attention would be good for circulation, but instead it’s become the app you don’t want people to find on your phone, ever. I’m sure some people played it to find out just how ridiculous it was, but with a free-to-play, you’re only going to get money from people if they’re actually invested in your game. Mockery is not investment.

Or take the ads for The Walking Dead, which are so prevalent on Tumblr that they were turned into a meme, which then spread to Walking Dead ads which didn’t feature this scenario, and then to just about any ad on Tumblr users considered annoying enough.

First they came out with this one:

One meal, two lives. It’s the zombie apocalypse. What’s your choice? Feed yourself or feed this starving child?

At first the ads were ignored. But they became so prevalent and so obnoxious that you’d run into one after every five posts (on mobile, at least–that was my experience). Eventually users got (heh) fed up with them, and started responding.

But not in the way the advertisers wanted.

With comments like, “that is the ugliest kid I’ve ever seen” and “why can’t they split the meal again???” the ad was… less than successful. But, figuring out that gamers actually care a lot more about virtual dogs than kids, they tweaked the ad to manipulate a better response, and replaced the kid with a dog.

That’s when this happened.

Feed yourself or feed the dog? Well… at least the dog won’t starve one way or another.

If you can’t read this, it’s the same picture but with a dog as the second option. The first comment is a more genuine response, “feed the dog” (I’ll spare you the all-caps on these), but the rest urge the suggested action to either feed the child from the previous ad to the dog, or cannibalize the child yourself and let the dog have your TV dinner.

And thus, Eat The Child became a meme. No Tumblr ad was safe, at least if they left the comments or reblogs on. If users don’t like your ad, they’ll spam it with Eat The Child in any way they can, or ignore you, or even block you (sometimes this is possible on Tumblr). After all, from their point of view, what you’re sending them is spam.

So how do you become not-spam? Why are advertisements so reviled? I think the main problem comes down to this.

This is what your ad looks like when we’ve seen it ONCE.

Have you heard about our product? (showcases product)

See, this is good! Business philosophy should be based around, “We’re making something you want. Will you trade us money for it? It might be a good deal for you.”

This is what an obnoxious ad looks like around the thirtieth time we’ve seen it that week:

(advertiser's face pressed up against screen) HAVE WE WORN DOWN YOUR WILLPOWER YET???

This business philosophy says, “We’re going to ask again and again until you give in and hand us money. We’re trying to psychologically manipulate you.”

Yes, manipulate. We all know about the theory of ego depletion, we know you’re trying to use it against us, and it pisses us off.

Now, how much control do you have over this? I’m not entirely sure, as I’ve never bought ad space, but I think it’s a fair amount considering that I see some ads WAY more frequently than others. Apps and so on may be offering bulk deals where your ad gets way more screen time. Don’t take them. They’re counterproductive.

Also, the more narrowly you target your ads, the less likely it’ll be that that exact audience has a lot of other advertisers after them. So those users won’t see as wide a variety of ads, and every slot will be filled by yours. This is not a good thing. You have to strike a balance.

Users seeing your ad once a day is a good thing. Users seeing your ad once every twenty minutes is a bad thing. It doesn’t scale the way you think it does. Ego depletion only works if the prospect is actually tempting. (Even then, the theory seems to be under dispute. Psychology is a very young field and it’s hard to draw firm conclusions quickly.)

Once your ad becomes overexposed, you’re also about to hit a wall with word-of-mouth. Say a user does give in to the ad they’ve seen twenty times, and they actually do like your product. Are they going to tell their friends about it, and give it a good recommendation? No! They’ll assume their friends have already seen the ads, far too many times. Not only will bringing it up be considered annoying, but you’ve done all the selling already–and less effectively than your user would have.

It’s cool to find something that not everybody has seen, and introduce it to your friends. It’s not at all cool to introduce something your friends are already sick of seeing.

Now that I’ve hashed out why overexposure is bad, let’s talk about audio.


There’s some Harry Potter game that came out in the last two weeks. I already hate the ad. It barges in with “YOUR LETTER HAS ARRIVED!”

First of all. No it hasn’t. I’m twenty years old. Yes, I grew up with Harry Potter. Yes, I like the story a lot. No, I don’t want to play your Sparklypoo game. (Seriously, the protagonist of the ad and the comic look identical.) You should be marketing to 13-year-olds, or focusing on the story in the game rather than the appeal of YOU GET TO GO TO HOGWARTS IN A DUMB PHONE GAME, WOWWW.

I recommend instead that you put instrumental music in the background.

Why? That doesn’t say anything about what my product is.

Exactly. Users who have put down their phone to listen to something on YouTube (this is where a lot of these ads live, that and Instagram) have to pick their phone up to figure out what the music is. It’s an instinctual compulsion, but not one that will make people mad if you use it. It’s called curiosity. Instrumental music is kind of like clickbait, but way less annoying. And if they’re already holding their phone anyway, the music is less likely than other audio to be irritating, or worse, embarrassing if there are other people around.

But only if the music itself isn’t annoying. How do you know? Make a playlist on your phone and make the music you’re thinking of using come on every two or three songs. Just the clip you want to use, not the whole song. Keep your headphones in all day. If you don’t hate the music by the end of the day, if it’s still inoffensive, then it’s probably fine.


“But I like classical music, and my target audience is teenagers, so I should use pop music.”

Please don’t. This line of thought is condescending. Classical music is inoffensive to most people, including teenagers, and pop music (or what you might think of as pop music) is irritating to many people, also including teenagers.

This ruins a lot of ads.

Also, I can’t remember where I heard/read it, but it’s accurate if you pay attention: ads targeted towards men center around the message, “you’re awesome, and so is this product!” while ads targeting women focus on the premise, “you’re not good enough, and this product will fix you!”

This isn’t a millennial thing specifically. It’s just really annoying and manipulative in general, and people are picking up on it. Millennials don’t like manipulation. Cut it out.


The above point, condescension, is closely related to the clumsy use by advertisers of memes. Done right, memes can be effective advertising. Done wrong, they make you look like you’re trying really hard to “Relate.”

The thing is, memes are jokes, and even trickier, they’re in-jokes. If you’re actually in on the joke, then they’re awesome. Take the Denny’s Tumblr account. They’re not paying for ad space. It’s a normal Tumblr account. Which people willingly follow. Why? Because it’s actually hilarious, for a bizarre surrealist form of hilarious. Like, what the heck is this?

The exfoliating properties of the meat loofah and marinara soap are ideal for body and facial cleansing.
I’m… not entirely sure what they’re trying to say here. It’s pretty gross.

But I follow them for that grossness. It’s weird and kind of off-putting, but that’s what makes it so great. And they can get by with this while selling food.

If you’re not one of the people who inhabits memeing spaces enough to find them funny, you’re probably going to get memes wrong by imitating what you think is the joke, and getting it wrong or overdoing it.

There’s a very delicate balance you have to strike to get it right, and a lot of components.

The graphics and editing you use should often be kind of crappy, but not so bad you can’t read them or you look like you’re trying too hard, and even then there are lots of exceptions. If you use the wrong font, it’ll be obvious–some memes use Impact, others use Comic Sans, others use something entirely different or you have to actually alter the words themselves in Photoshop to make them look worse. Many memes are self-deprecating or look intentionally bad, but you can’t go too far in that direction either.

If you try to imitate an existing meme, you run up against its lifespan. Often by the time an advertising committee hears about a meme, it’s kind of old, and they tend to have a half-life of about six weeks. Let’s say you have your ear to the ground and you hear about it in two. Next month, it’s going to get kind of stale. Are you willing to change your advertisements that often?

And if you get it wrong, you end up with this steaming dog turd:


We didn’t take kindly to this. Let’s dissect it.

  1. Colored Comic Sans. Would be fine under some circumstances, but not these; the third line isn’t easily legible because of contrast issues.
  2. Awful stereotypical girl names.
  3. Nobody talks like that. Not even groups of interchangeable high school girls in push-up bras.
  4. This isn’t remotely close to how you use “wow I cannot even”. Slang has rules which are just as strict as normal grammar.
  5. Why are they drinking out of mugs? What is that, black coffee? Or are they drinking Sprite or milk out of a mug like someone’s dad?
  6. You can’t see it in this image, but they usually tag their own posts with things like #lol and #dank memes and #fun. Nobody browses those tags, except maybe other 40-year-old advertisers who are “trying to figure out what the kids are into.”
  7. People only use the phrase “dank memes” ironically, and ironic usage is a whole other pot of “you’re gonna screw this up.”

People REALLY hate Totino’s ads. The responses can get pretty hilarious.

Names and avatars blocked out to protect the guilty. 🙂 Also a few words, to keep things PG-13.

This response isn’t universal across all of Totinos’s ads, though. Sometimes–more often recently–they get it right and people remark how they’re “getting closer to Denny’s.” This is because anyone, of any age, who hangs around memeing communities long enough will pick up the aesthetic and the sense of humor. But it takes a while.


The easiest way to go about it is to hire some college grad who needs to pay off student loans, and have them turn out memes for you. You don’t need to have a degree to be good at this job, but it helps your chances of snagging one if they’re a little desperate to find work because they have bills to pay. Don’t go straight for the marketing majors, they’ll demand more salary than… let’s say, a half-stunned English major who walks into your interview with a brown belt and black shoes and dark circles under his eyes. If he responds to an awkward silence by giving you finger guns and a worried smile, that’s the kind of person you’re looking for.

That brings me to my last point.


If you’re trying to appeal to the 18-24 year old audience, hire some. At least several of them. There’s probably a college or two nearby, just go grab as much of an assortment as you can by bribing them with money and donuts. There’s always some department in every college that’s trying to get the students hired, so just find yourself a few interns and ask them to improve your targeted ads. And then let them.

You folks could be doing so much better, in terms of quality and in terms of the response you’re receiving. No, your old tactics aren’t working any more. But you’re adaptable. I know you can do better.


Your targeted customer



Cheap book alert!

Humble Bundle has an O’Reilly ebook bundle on functional programming and you can get 15 books for $15! It’s not just Clojure, there’s JS, Scala, Haskell, Rust, Erlang, and what looks like some general purpose functional books.

Not an affiliate link, this is just an insta-buy for me 😮

It’s always worth supporting Humble Bundle. Every purchase donates to charity. Usually you can choose either which charity, or how much is donated, or I think sometimes both. Depends on the deal but they’re good charities and the default is at least 10% donated. You can sometimes knock it down to 5% if you want to keep the other 5 for yourself as store credit.

Remember they’re ebooks, not print. So you can read them on your phone or computer or Kindle or whatever. Much lighter than normal textbooks. But if you’re hoping to make a bookshelf look impressive it’s not the deal for you.

Anyway, go learn functional programming! It’s survived for like 66 years, it’s not going away.

On Debian and Mint, and why I like them

I got carried away answering a comment again, but I’m going to leave my reply intact and just make it a post, because I think this question and answer are addressing a barrier to entry point in the Linux world–namely, choosing a distro. This isn’t an attempt to actually answer the whole question, it just explains some opinions.

TL;DR: If you’re new and you’re picking your first distro, I suggest Ubuntu-based Mint (not Debian-based because you have to pick through a lot of Ubuntu Mint docs for it to find the right stuff). Debian is well-loved by a lot of programmers because the design is clean and easy to build on and customize until you’ve worn your own groove into it, so if you’re not new and you’re playing around with distros, try Debian if you haven’t already–it’s a classic.


kirisky asked:

Hi, Rebekah!
May I know why you like Debian?

Sure thing! Debian is well-loved because it’s solid. It’s sensible. It doesn’t include weird design decisions (unless you count the more recent versions of GNOME, the window manager, which some people don’t like–but you can always just install Cinnamon instead and use that. More on window managers in a minute). Both Debian and my other favorite, Mint, have good package managers, they run a lot of stuff natively, they’re easy to debug, they’re comfy to code on, they’re well maintained and documented… just overall they’re well kept and pleasant to use.

To a geek, Debian is the epitome of “we’re just gonna let you do your own thing.” Debian provides a solid base for whatever workflow customization you like. Even if you don’t care to change things, Debian has this clean, restrained design that’s pleasant to use. I’m using language that sounds like graphic design, because I’ve been hanging around designers lately, but I’m actually not talking about visual design.

I’d describe Mint as “friendly.” It’s a comfortable operating system. It’s like the friend who, you show up at their house and they’re wearing a clean but well-loved pair of jeans and an old band T-shirt, and they have chocolate chip cookies. Maybe the house is a little cluttered, but it feels lived-in.

If you’re asking because you want to try Linux for the first time, I’d recommend Mint. Debian is a very geek-oriented system, and sometimes Mint can be a little easier to handle because it’s specifically designed for its user friendliness. Debian is really nice for programmers though.

I’ll also warn you that there’s a third operating system called Debian Mint. Most people, when they talk about “Mint,” mean Ubuntu-based Mint. Debian Mint is a hybrid kind of system where people have taken Mint and tried to take it back to its Debian roots. I know, sounds confusing. Here’s the history.

Ubuntu is based off Debian. It was, and is, a very successful effort to make Debian more approachable to total newbies. Some of the design decisions in Ubuntu weren’t too well liked by the older programmers (well, you can’t please everyone), so they kept using Debian, which is of course still maintained as its own thing. Mint is based off Ubuntu, and it’s just generally well-loved–I’ve never heard anyone rag on Mint. But people have tried to scale back some of the design characteristics it inherited from Ubuntu. Personally, I’m not exactly clear what those are, but it resulted in Debian Mint. From what I understand, it’s stable, and I think I tried it on a VM at one point? But I wouldn’t recommend it as your first, for the simple reason that trying to find *Debian* Mint documentation among all the *Ubuntu* Mint stuff is kind of a pain when you’re trying to set things up. Sure, some of the Ubuntu Mint stuff will work for Debian Mint, but it’s hard to tell the difference between the stuff that will and won’t work immediately, especially if you’re new.

If you’re confused about the term “window manager,” let me clear it up here. The window manager is basically every part of the Linux user interface that ISN’T the command line. Linux can totally be run just via the command line, and you can do some basic stuff like edit text files and change configuration settings and even write programs without ever booting up to a graphic interface. This is because, unlike Windows, the window manager is a totally separate program! So you can pick one you like. There are window managers that put everything in tiles, so instead of a desktop you have to learn to use some keyboard commands to bring up and position stuff. There are window managers that look basically like Windows 7 but cleaner; Cinnamon is one of the nicer ones. Here’s what it looks like as of May 2017 (image is a link to the post it came from). Isn’t it nice looking? It’s got a search bar. Those buttons on the side of the menu are customizable, if I remember right; you can put your favorite stuff in there.

Ugh, I’m drooling, this is making me want to go back to Mint. I wonder if it’d handle my stupid NVIDIA graphics card better than Debian did? Maybe. (Long story. Not really Debian’s fault it can’t handle the extremely odd hoops NVIDIA makes you jump through to make its proprietary drivers work. I bought too new of a card, so the open source drivers were still crappy. Anyway.)

So, I hope that answers your question, kirisky, and hopefully someone else’s too.

Happy hacking!


Some of you dropped a line over here, and I’d like to respond somewhere where it’ll be easier to read than the little comments section, because there are some very good questions and I like to answer completely.

For these first two commenters, I have a long and hopefully not boring story in answer/return comment. I wasn’t sure where to break it–merby would mostly be interested in the latter half–but it doesn’t separate nicely, so I’ll leave it as one piece.

Tally said:

Hi, I’m Tally!
Just wanted to share how glad I am to have found your blog, it’s gotten me interested in making my own page to document my experiences with tech, too. You seem brilliant and really knowledgeable about hacker culture; forgive me for asking if this is already stated on your blog, as I’ve just discovered it, but I’m curious to know what about programming inspired you to study it and tech? Did it have anything to do with the O’Reilly book?

Hope you keep on writing, all the best!

merby said:

Hi Rebekah,

I discovered your blog a few days ago via ESR’s website; I’ve read through several of your posts and I just wanted to drop you a line and say how helpful they’ve been to me. I too started programming with HTML fairly young (I was 15 or so) and then went to college to study computer science. By the time I was a junior, the structure of school, even though it’s a good program at my university, had essentially killed any desire I had to work with computers. It was kind of a rough time for me in general, and I think I might just be better suited to learning this stuff outside a classroom setting. Anyway, I just graduated (NOT with a CS degree), and now, ironically, I seem to have rediscovered my once compelling urge to hack stuff. Your blog has been very encouraging and motivating for me to get back in the saddle, not to mention informative as I take the plunge into Linux. So thanks!

Also, I can totally relate to being the only girl in the CS classes and the occasional target of sexist pigs. So irritating. Good luck at the new school!

Awgh compliments ^^; Thank you! I like to think I’m pretty smart, but I’d say the people who are most knowledgeable on what I’m writing about are the people who are on GitHub doing it way more than I am, instead of writing about it. I’m kind of a n00b actually. I think basically everyone feels like a n00b for a long time in this field. It takes a lot of time and effort to become competent! But the payoff of building things is worth it.

Don’t feel shy about asking questions. Questions are the best!


Technology has been a big thing in my household for as long as I can remember. When I was really little, I used to sit over the shoulder of my older brother Tim as he took apart, repaired, and reassembled computers. He had kind of a little business going with it! He also, if I remember right, built me my first computer–a desktop box with a CRT monitor that sat in the living room, its main purpose serving the Hamster Dance web page to me on a regular basis, because I was three at the time.

When I was ten I took up writing long stories on the computer. It started off as kind of a little ambition–I wanted to write fairy tales and publish them for other kids to read. I wanted to send them off to a publishing agent and everything, and I did all this research and stuff. By the time I was finished with my first batch, it was a year later and 35,000 words long, if I remember right. But by then I’d just finished it so I could focus on the next project I had in mind–one I’d already begun–which took another year and another 56,000 words  (I looked it up) plus a bunch of rewriting (I was never satisfied with it).

By this point, Tim had gotten used to my habit of emailing him the latest chapters. In an effort to make this process more efficient (or perhaps in the hope of distracting me with a project and maybe even a different audience), he created a WordPress blog for me. It’s still up, but I don’t think I’ll tell you exactly where it is unless I get it into my head to revamp it and post my current writing. There’s really nothing there worth reading, just bad fantasy and high school angst. I did eventually get better, but I also stopped publishing online because I was hoping to publish my next project. Then my focus shifted to coding and interrupted its progress. My mom’s really hoping I’ll go back and finish it though.

Probably a wise move on Tim’s part, because the next two were 45K (…per revision, of which there were three–I didn’t like that one much either after I’d finished it) and 69K. My mom used to comment on the way I’d go on writing for months and months, then decide it wasn’t good enough and just about start over with the same story.

I comment on this because of two things: one, that writing fantasy novels shares a lot with writing software (remembering little details and logic and characters and motivations and items and rules of magic and making the whole thing make sense and be beautiful and entertaining to a reader–and also that length sounded impressive, but when it came to quality it just meant you had more to rewrite), and two, because my WordPress blog was my introduction to the idea that I could manipulate computers beyond just using software. (Yeah, I know, WP is software I was manipulating. Occasionally I had to look at HTML code. When you’re twelve, though, that’s kind of important. Links took me altogether too long to figure out.) But I didn’t know anyone who had a blog, and that set working with computers, in my mind, as a kind of Thing I Could Do.

Later that year, I found a program called RPG Maker XP. It was a game engine designed to make those old-looking grid RPGs–you know, they look kinda like this:

rpg screenshot

(That’s from a RPGVX game, but they’re very similar–it’s the same idea)

I found RPG Maker XP on sale for $30 once, and convinced my mom to pay for half of it. So I spent hours poring over a screen that basically looked like this:

RPG Maker XP screenshot

Once you made a “map,” as pictured above, you could double-click the little squares and create “events.” These drove gameplay–you couldn’t really do anything without them. And they were basically programming.

Each event has a “trigger” that sets it off. The one above (a screenshot from a tutorial for the more recent engine VX Ace) is for character naming, and triggers automatically. But you can also make them happen only when the player character walks up and presses Enter, or walks onto a certain square, or merely touches the event. You can choose graphics for the event–for instance, it could look like a person walking around, and the thing it does is the person talking to you. Or they might give you an item. Or open a shop menu. Or attack you.

Each of those actions would have to be programmed in. You technically didn’t have to write code. …Technically. You had to generate code using the tools. Line by line. Basically, it typed the code for you, and the whole thing ran on this big game engine that was already in place. I think it ran Ruby? But I didn’t know that then.

I did, however, think it was extremely cool, and spent many hours in front of a CRT monitor making my eyesight worse because of it. I tried to find documentation for it, but I couldn’t, and there was none (or none worth reading) in the program itself, and it wasn’t the most user-friendly, so I figured out a great many basic programming concepts on my own by trial and error. Variables. Loops. Coordinates. Timing. I learned you couldn’t have too many events on one page, or it would run really slowly (these were the Windows XP days–Vista was out I think, but we hadn’t downgraded).

That is where I learned programming concepts. That was one of the periods when I was really, truly excited about programming. So far, those periods have come to me only when I was working outside class on a project I was excited about, and I’ve never gotten that engaged in school. It’s kind of why I feel less excited about going to UNI than I think I should be.

The next year, Tim would get me a book called Head First HTML with CSS & XHTML for my birthday. I was really pleased with it–my mom half-joked that only Tim would know that what I really wanted for my birthday was a textbook. He started to go through it with me, and he’s a pretty good teacher–but I think he thought I wasn’t excited about it when he started to carefully, thoroughly explain the basics and try to make me not afraid of code. I wasn’t uninterested. I was just past the point when that level of fix was enough. By then, it took a much stronger dose to satisfy me.

I ditched RPGXP after a couple months, though. After I’d figured out the basics, I tried to do things with them–that meant trying to make the fantasy novel of that time period into a game. It didn’t work too well. I tried to write something else, but it got abandoned too.

I didn’t worry too much about this. I had lots of dud stories on my hard drive. But it was more work to abandon games. I left it alone, and started making web sites instead.

A year after that, I would take my first formal college class on coding–web design, specifically–and find out that they were getting basically everything wrong. We spent a third of the class on Flash, which I hated to the core of my being. The next third was spent learning to manually code HTML and CSS… to a far outdated standard, including scrolling marquees and gratuitous use of clipart as project requirements, and we weren’t being taught to use validators (the HTML version of a debugger; when you’re learning, it’s almost essential for catching your mistakes). The last third of the class was on the use of DreamWeaver, which at the time was just as bad as Flash. (I understand it’s grown up considerably since.)

After that, classes on VB and so forth kind of made sure my attention stayed on writing, art, and psychology rather than coding. I still enjoyed the idea of making things and the cool image of having coding skills, but it felt like work far more than play. I’m still trying to reclaim my enthusiasm. Sometimes it comes back, but… not for school stuff. Even if I liked the teacher.

DaniS said:

You ever read a blog and really empathise with a person? Virtual supportive and encouragement vibes, or something. Badly engineered education + sensitive engineering design sense + depression is not a fun combo. But it sounds like you’ve gotten through the really bad bit, at least.

And let me know, once you get back to coding, whether you ever want someone to rant at or work with. I’m still learning, but damn if it isn’t easier to do that when you’ve got something to make.

I’m working on this right now:

It’s part of my “legacy” that I’m wrapping up. Not because I like the project, but because I promised to do it. I’m going to have the design docs up soon. It doesn’t have an open source license on it because it’s for an organization, and my communication with them on this particular topic was kind of vague. I’m really just building up the codebase so it’s worth it for someone else to inherit.

That’s boring though. So for you, I updated my idea file. Here you go! I’m seriously considering that bill-splitting app, but someone might have already done it.

Jan Coetsee said:

Send me an email and I will send you a link to some very cool stuff

Keep up the spirit!

Convince me you aren’t an email address harvester first. I won’t snub you if you’re a real reader, but this is the sort of generic message I’d normally stick in spam. So, if you recommend your favorite Jargon File entry, or remind me of the three virtues of a great programmer as told by Larry Wall, or tell me a very short story about a goat named Jerry, I’ll totally talk with you over email. 🙂

Or, if your links aren’t private material, feel free to post them here. 😀

Optimizing algorithms has never been so fun

I’m here to talk about a programming game called Human Resource Machine. It was recommended on Coding Horror, so when I found it in the latest Humble Bundle, I grabbed it immediately.

There’s no minimum price to get it, so even if you’re kinda broke you can still grab it.

And dude. It is _so fun._ It’s difficult enough to be kinda confusing and difficult but still doable–the game uses really, really simple commands and the closest thing to recursion/looping are conditional GOTOs. You only get a couple options for the conditions, too. It seems like the best algorithms are either beautiful or mind-bendingly crazy. Readability? Who cares about that stuff? Just stick some masking tape on it. If you’re used to sane code that’s written for humans to read and only incidentally for compilers to execute, prepare to rearrange your priorities in the most fun mad-scientist way possible, pushing the system and making it your plaything.

I’m on level 18 or something after about two hours (according to Steam), and so far I’ve gotten at least one of the optimization challenges on each level that has them. You often can’t get both the speed and size challenges done at once, so they need different approaches, and it’s really difficult to figure out how to change tactics when one solution comes naturally. I seem to get into a mental groove of optimizing for one or the other at a time.

It also has a sense of humor. Instructions from management can get pretty silly. Um, but not sillier than real life–does that still count?

Anyway. Grab the game, support charity, maybe get a game about metro stations along with it (I did, haven’t tried it yet though).

I claim no responsibility for your lost productivity. You have been warned.

Belated Merry Christmas!

I don’t know about the lights. Unless they’re LEDs, they’re kind of a fire hazard. But Pinterest doesn’t follow the normal laws of physics.

(Note: I started writing this on Dec. 19. It’s late, but it’s here.)

Wow, I think this is the blog’s first Christmas! To celebrate, here’s a payload of some great stuff from my bookmark stash. This is all silly stuff really, nothing terribly on topic. Basically, it’s a collection of nerd clickbait. Did I promise anything else?


Silly/interesting lists

Shooting yourself in the foot in various programming languages

Personality types of developers

Know Your Sysadmin

Github Octodex

100 Rules of Anime (text only, but not something your kid/boss should read over your shoulder)

Harry Potter theories (these are good)

Evil Overlord Rules (this is a classic, so if you haven’t seen it already, you need to)

Things to do with Command hooks

Design Fails (blatantly pulled from Reddit, but whatever)

Things Mr. Welch can no longer do in an RPG


48. The elf is restricted to decaf for the rest of the adventure.

74. My thief’s battle cry is not “Run And Live”

163. Not allowed to try and make a dire version of any dog of the toy breeds.

313. My British Superspy does not get a reroll on his seduction check if his shirt gets ripped off.

330. The Halfling Paladin does not represent the Lollipop Guild.

Useless entertaining/relaxing websites


Neon Flames

This Is Sand

What color is it?

Weird art websites (epilepsy warning on some of those, use caution)


My favorite chocolate cake recipe

My favorite sugar cookie recipe

Dilbert the animated cartoon (AFAIK, there isn’t another way to watch this)

All the Pokemon episodes you could ever care to watch (and then some) (like, a lot more)

The Secret Life of Dolls (a silly fanfic sort of thing)

Character name generator

A whole slew of random generators (site also has a bunch of articles about writing. Its colors change every couple months so if you have trouble reading them at one point, check back later. Usually not a problem but the theme right now is really bright)

White/pink/brown noise generator, and corresponding rain generator

Another one of these lists (!)

ThinkGeek fortunes

This rant about programming I think is hilarious

Museum of Bad Art

there has to be at one brainless Buzzfeed post in this list


This is called a “chimera” cat

Cats napping in pots

Cats napping in pots, part two, on a different site, cause they’re just that adorable

Cats wearing sweaters (I guess that makes two from Buzzfeed)

This cat snuggling with a bunny


I saved this for last because of how long the list is. I like web comics. No particular order.

xkcd (duh!)

Homestuck (if you want to take a while–I read most of it when I got mono a few years ago, its wordcount surpassed that of War and Peace a long time ago and it’s like eight thousand pages but it’s really funny and involved and makes you think too hard about time travel shenanigans and punch card based alchemy)

Rice Boy (surrealist adventure for a cold winter’s evening)

Beyond the Canopy (silly fantasy)

Cucumber Quest (extra silly fantasy plus cute rabbit people)

Bardsworth (story about a guy going to a parallel dimension through his closet to attend bard/wizard college, shenanigans ensue)

Monster Pulse (more serious fantasy)

Monsterkind (some kind of political commentary, if my memory serves; I liked it enough to bookmark it)

Hark! A Vagrant (mostly silly historical comics, but I bookmarked the weird Shetland pony thing… well, one of the weird Shetland pony things)

Alby (I actually never finished this, I should get around to it)

Questionable Content

PHD Comics (this one is my favorite)

Bug Bash (developer team shenanigans)

Geek Hero (ditto)

Dilbert (obligatory)

Foxtrot (ditto)

User Friendly (goes straight to the ESR as Obi-Wan arc)

Poorly Drawn Lines (just silly)