Dev(st)Ops: a rant

DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes. This speed enables organizations to better serve their customers and compete more effectively in the market.https://aws.amazon.com/devops/what-is-devops/

Yes, that’s an outhouse

This post is about DevOps. It begins in Africa.

Burkina Faso is a land-locked country in West Africa on the southern edge of the Sahara. It is a very poor country. After graduating college with a B.S. in general science, which basically meant I had no job prospects but maybe could have gone to medical school if I had better grades, I found myself in Burkina Faso as a Peace Corps volunteer, teaching science. I vividly remember flying into the country for the first time. It was nighttime, and as we felt our jet start the final descent, I looked out the window and saw an enormous patchwork of fires. They were campfire-style fires, not forest fires, and especially not electric city lights as you would expect to see from a plane about to land in the United States. Although dark, it was still early in the evening (Burkina Faso is close to the equator and the sun goes down early), and people were cooking dinner. That’s how poor Burkina Faso is.

After landing, I vividly remember getting off the plane (via stairs), and almost being bowled over by stifling the heat, and wondering if it was from the jet engine next to us. It wasn’t. That’s how hot Burkina Faso is.

There are many stories I could tell about how the heat made life miserable, but one stands out for the purpose of this post. Malaria is a huge problem in West Africa. Mosquito nets are supposed to be able to cheaply prevent malaria. Have you tried to sleep under a net when the temperature is over 100°F? It’s horrible. You need all the air circulation you can get. That’s why mosquito nets haven’t solved malaria.

Everyone in Burkina Faso had a mosquito net, of course, which they never used because they were too hot top sleep under. Bill Gates or some other charitable entity had kindly bought a net for everyone. Charity has spent vast amounts of money in Burkina Faso.

Another item charity bought was speed bumps. With poorly maintained vehicles, no rules to speak of, and nonexistent medical care, the mortality rate due to traffic accidents was quite high. Therefore, at some point before I arrived in country, vast strips of speed bumps were installed on the major thoroughfares leading into the capital city of Ouagadougou with charity dollars. Like, hundreds of yards of speed bumps, and they were very sharp, axle breaking bumps. Anecdotes are not data, but I saw multiple accidents at these speed bumps. There were no signs to mark when they started, and of course there were no street lights. Another item charity dollars bought in Burkina Faso was outhouses.

Today I work for a very large company that has been around for quite some time. I work with ‘big data’ for online marketing. As a marketer, I am not considered to be in a very technical role – we have a DevOps team to help with the technical stuff. What does DevOps do for us marketers? In my opinion, they provide the mosquito nets, speed bumps, and outhouses.

It makes sense to start with the outhouse analogy. I’m not talking about a honeypot to catch hackers. Burkina Faso has next to no portable water or plumbing, and sanitation is an enormous issue. Outhouses really do have the potential to vastly increase the quality of life for people living there. Vast amounts of outhouses were paid for and built by charity dollars. There was one major problem with the implementation: after the contractors that built all of these extremely nice outhouses left, the locals in charge immediately went to each and every one and slapped a padlock on it. They didn’t want the pristine outhouses to be ruined by use.

At work, IT has been building on-prem servers for 50 years and spawned DevOps sometime in the last two decades. But now we have the cloud. A few months ago I provisioned a private Factorio server for my son and myself to play on AWS. It took about 20 minutes to set up and it costs $9 per month, billed to my credit card. At work, it takes about 3 months to get a cloud resource up and running. We aren’t allowed to just do it ourselves – we open a ticket and submit an architecture diagram and then escalate the ticket after it doesn’t get a response in 5 business days and then amend the architecture diagram 5 times and then we do a security review and revise some more, and then finally we get the resource. Guess what happens when the project requirements inevitably change.

So I would argue that in my situation DevOps has put the lock on the proverbial outhouse, and prevents me from doing something I know how to do. I have the DevOps counterparts in my head for speed bumps (obvious) and mosquito nets (maybe slightly less obvious?) but that would take another post. Oh and about DevOps and security? Let’s just say that would be yet another separate blog post, but I’m probably not allowed to post that one.

To be continued . . .

I was a cheat

* but not in the way that violates the OSU Code of Conduct

My best friend Steven got the original Nintendo system first, basically when it became available in the United States. The NES was groundbreaking – no kid had ever had something that offered this level of gameplay before. When I went over to Steven’s house (and when we weren’t forbidden from being inside), we would play Contra, that game where you would jump through the jungle shooting evil commandos and weird aliens with swinging tentacles. I think we were seven.

up, up, down, down, left, right, left, right, a, b… how does it go again?

One great thing about Contra was that two players could cooperatively play at the same time, which made it that much more awesome. But even with a buddy helping you, there is one thing that still sticks in my mind – Contra was hard. You didn’t have any of these gentle-making modern inventions like ‘HP’. No, take one single pixel bullet to your character’s hit box and you are out one of your three lives. And did I mention this game was a bullet hell? Certainly no first-grader in today’s more gentle generation of gamers would last more than a minute in that environment, and Steven and I probably shouldn’t have been able to either, except for one thing: Steven knew the Konami code.

The Konami code was a combination of inputs that you had to enter in the short time the intro screen was sliding in that would give you 30 lives. It was also more than that – the Konami code was my first lesson that the mode of operation of a program could be changed in inobvious ways. It was definitely a cheat, it might be sort of a hack (although in those pre-internet days these codes were also revenue generators that helped sell gaming magazines), and it definitely wasn’t coding, but it got me into coding, sort of, eventually.

After discovering the Konami code it was only a matter of time for me to start looking for hidden ways to gain forbidden power in every video or computer game. In middle school we discovered Doom, and not long after someone was told by some else to type in ‘IDDQD’ to get immortality. Not long after we found out about ‘IDKFA’ which gave some other upgrades, and then suddenly we were actually trying to hack the game by typing in random codes to see what we could do. I hadn’t taken CS 225 at that point so the idea that I just had to systematically try 26^5 combinations permutations didn’t come up. I don’t think we ever discovered any new codes ourselves.

By that time the internet was a thing, and with the power of search engines we were soon using hex editors to give our saved games infinite money in games like Sim City and Civilization. We had leveled up our cheating, and doing things that I would not understand until I took CS 271.

It’s a mob!

It wasn’t long until the untold of power that was the hex editor actually made gaming way less fun. Everything was too cheap and easy – even a 7th grader could tell that dominating the simple AI with 8K RAM using the hex editor was pretty lame. I might have actually played a game without cheating a few times.

Luckily the rest of the world was marching on in gaming technology, and we got internet multiplayer games in the form of text-based role playing games (Multi-User Dungeons, MUDs) that normally had anywhere from 1 to 200 players pressing ‘n’,’e’,’s’, or ‘w’, to navigate between text-paragraph-rooms, kill other players and also non-player characters, which were actually called mobs which was short for mobile objects, and did I mention that when my son got into Minecraft and starting talking about ‘mobs’ for the same reason I almost fainted . . . and I digress.

The point about multiplayer games is that cheating was definitely back on the table. It was way more fun to dominate another human being using fair or unfair methods than the stupid local AI. In my defense, most MUDs, and definitely the only ones I played, were created and run by unpaid volunteers (the ‘Immortals’ or ‘Imms’) whose primary compensation was the ability to program their cheat characters so they could slaughter the rest of us that were merely playing the game. However, because the implementation team was somewhat amateurish (or didn’t care), there were always tons of probably unintended exploits in these games to, well, exploit.

My MUD of choice was called SneezyMUD, and I played it for a few years and might have had some lower grades in college than I should have had due to that game. SneezyMUD eventually shut down due to a huge fight among the staff and player base over, you guessed it, a massive cheating scandal (I had nothing to do with it I swear), and my grades picked up and I graduated with a chemistry degree. A while later, the head Imm open-sourced the code onto Bitbucket, and another fan of the game fixed up the code, opened up a new server, and also kept the development open-source on Github (https://www.github.com/sneezymud/sneezymud). I found out, started playing the game again, realized the code base was an interesting source of cheat potential fun history, and started delving into the spaghetti of C++ that had been written over 25 years.

To jump to the end of the story, using the source code of SneezyMUD to my advantage was fun, but much like in the days of using a hex editor on save files, it became unsatisfying. I actually became annoyed with some of the exploits I discovered, and with a lot of help from the current SneezyMUD staff I managed to submit some pull requests to the project to fix things up. Simple fixes turned evolved into feature additions, and I wound up learning a lot about open source software development to my surprise. That led me to me leaving my chemistry job to work for a friend who had a web app startup, enrolling in the OSU online CS program, and it seems like all of a sudden I’m in my last class, CS 467, capstone.

My capstone project? An online multiplayer game (definitely not a MUD). Right now I’m obviously not sure how it will turn out, but I really hope that someone will like it enough to try to cheat on it.