When You Might Have Too Many Message Queues


Peter Bolton is the author of Blowing the Bridge: A Software Story and has also been known to be a grumpy bastard on occasion.

Quotes from an Outdated, Ignorant DBA

“I started to learn about MySQL, but I stopped. Somebody told me that it had been ruined by some chick developer named Maria. Are there any pictures of her out there? I heard that she’s hotter than Cassandra.”

“NoSQL, huh? How does that work? Can I just plug my Kinect into my computer and create some tables by waving my arms?”

“Finally! They’re releasing version 11.0.1 of Paradox. I’m gonna be at the launch party at my friend’s house. It’s gonna rock so hard.”

“Yeah, I’ve had some problems with sharding myself. Luckily, whenever they’ve popped up, there’s always been a McDonald’s or a public bathroom nearby.”

“Should I start getting into MySQL or PosterOgreSQL? I’ve heard that both are pretty good. What’s with the name of the latter? Was it used inside World of Warcraft?”

“Some of the suits asked me to start looking into this Memcached stuff. I don’t see what the big fuss is about. I can’t even create a schema in it with a DDL file.”

“I heard that the other departments in the company are starting to use MongoDB. They keep talking about storing the data with some dude named Jason. You know him?”

“I want to put my databases in the cloud. So, I got them all wrapped up in boxes and ready to ship. What’s the address for the Azure building?”

“Everyone talks about Javascript, so I’m gonna give it a try. I’m having a hard time connecting to a database. Are there some drivers that I need to install?”

“One of the brass keeps insisting that we use open source software for our infrastructure. I keep telling him that we already do. They’ve opened the codebase for Btrieve, right? What do you mean ‘what’s Btrieve’, you stupid punk?!?”

Peter Bolton is the author of Blowing the Bridge: A Software Story and has also been known to be a grumpy bastard on occasion.

When API Documentation Is So Bad that It’s Good, Part 3

Web Method

Apparently, for some of you out there, it was not simply enough that you could just save data as a record with a provided ID. No…that wasn’t enough. Some of you bastards have insisted on moving data from one record to another. Who would need to do such a thing?!? Personally, you make me sick…but since you’re our special client, we have implemented the precious functionality that you need from us.

Request URL


Required Level Name Type Description
Required SourceID String The ID of the record from which data is being moved.
Required TargetID String The ID of the record to which data is being moved.

And there you go…happy, assholes? Oh, but I forgot…there are a few more additional steps after you call the method…

1.) The return value of this method is a string (which we will refer to as your TrouserKey); you will want to hold onto this for future use.

2.) Since the method is asynchronous, you will need to wait an undetermined amount of time before the data is actually moved. Usually, depending on the weather, this interregnum is somewhere between several minutes and a couple of days. However, you are allowed to occasionally (occasionally!) call our “hasBeenMoved” method, using your TrouserKey to see if the data has been moved yet.

3.) After repeatedly poking us with your TrouserKey and finally getting a Success from the “hasBeenMoved” method, you should get ready to call the “getMovedStatus” method. Since your data is important to us, we do provide two-factor authentication when getting the status of your data. So, at this point, we will wardial your company’s location and send you a fax with a PIN number. (Not to worry…if you don’t own a fax machine, we will send you a FedEx package with the PIN number in it.)

4.) Finally, after receiving your PIN number, you can use your TrouserKey and PIN number to call the “getMovedStatus” method, and then…voilà! We will return a formatted URL with embedded JSON in it…which, when you think about it as a smart person, makes sense. It will look something like this:


I don’t often say this…but that’s just beautiful, plain and simple. And it totally makes sense to do it that way. Totally.

5.) After calling the URL, we will return a simple text page that will have either a “Success” or “Failure” in big, bold letters. If you wish to know the reason for the failure, you’ll need to call our support number and be ready to communicate in Swahili.

It’s that easy! And if you don’t like it…? Go suck it! I ain’t breakin’ my back for you, asshat.

Peter Bolton is the author of Blowing the Bridge: A Software Story and has also been known to be a grumpy bastard on occasion.

What a Developer Says Vs. What a Manager Hears

Developer Says: Based on our design, I could have a MVP done in a week. Afterwards, we can go over that, pivot the design, and then build a more substantial iteration by the end of the following week.
Manager Hears: The whole thing will be done in two weeks.

Developer Says: Yeah, with my limited knowledge and a few of my favorite tools, I can build some web services that can allow fellow company programmers to interact with our system.
Manager Hears: By myself, I can construct a load-balanced Web site that will accommodate millions of global users per minute.

Developer Says: We should have a meeting with release engineering and stress that we can’t meet deadlines without proper build and deployment machines.
Manager Hears: Waaaaaaah…[cry tear, emit snot bubble from nose, kick legs while in diaper] Waaaaaaahhhh…

Developer Says: We need to establish ownership of our various software projects, so that people can be held accountable.
Manager Hears: I am willing to take full ownership of all software projects, and I volunteer to be the official company scapegoat.

Developer Says: When you write a web method with HTTP GET, it should generally only return data. With a web method that writes data, it should really use either POST or PUT.
Manager Hears: Blah, blah, blah…I’m a flaming, anal-retentive nerd who has to have everything in a certain way, because getting things right is as important as my Tolkien underwear….blah, blah, blah…

Developer Says: Dinesh and Gilfoyle have reverse-engineered some of the legacy programs, and they’ve found inconsistencies with some of your old specs.
Manager Hears: We should fire Dinesh and Gilfoyle.

Developer Says: Since we’re in a crunch period, I guess that I can remote onto my dev machine from home this weekend, in order to get some work done and to get us a little ahead of the curve.
Manager Hears: I will gladly blow the bridge and die smiling in an attempt to save this impossible project…and even if my near-future reincarnation is about to be aborted in a clinic, my bloody fetus of a body will jump out and crawl back here, so that I can once more be a martyr for your noble cause. Please use me as you see fit.

Peter Bolton is the author of Blowing the Bridge: A Software Story and has also been known to be a grumpy bastard on occasion.