Hello, World: Part Two

full frame shot of multi colored pattern
Photo by Markus Spiske temporausch.com on Pexels.com

Part One

I wasn’t fired, though. Not immediately. Nor was Dave for that matter. We were in the thick of a company-wide emergency that required all-hands-on-deck. We’d clean up our mess first and then heads would roll.

The company made a public statement, urging all of our users to avoid our website for the time being, and to please conduct complete security sweeps on their computers. All servers were shut down, even ones that we thought might not be infected. Half of the entire development was set to cobbling back together a clean build on new servers, while the other half tried to verify whether the RubricValidation virus had been contained or not. I was on that second team.

We made the national news in a not-good way, and everyone was pretty grim around the offices. None of us were sure if the company was going to be around much longer, or whether we’d all be competing for jobs at other places.

And so it made me quite a bit perturbed when Dave came into work this morning humming merrily like there wasn’t a care in the world.

“Did you break encryption on that library yet?” I snap at him.

“On it , boss,” he smiles back.

I shake my head and try to ignore his cheerfulness.

“Alan, where are we at?” I say as I plop down at my desk.

“It’s still getting added back in, I just can’t figure out how.”

Still?!”

“It seems like it shouldn’t be possible, right?”

Alan is referring to our efforts to trace the growth of RubricValidation. We’ve been able to confirm that it got loose on our customers’ machines, and it simply isn’t feasible for us to track all those copies down. All we can do is tell them that they should run some antivirus software and hope that they do. Invariably some of them won’t, but there’s nothing we can do about that.

But what we can do is make sure that we’ve stopped leaking it from our end. And that has proven to be tricky, far more than anticipated. We shut down all of our old servers right after the public incident, but about a week later we had new ones being opened in our company’s name, each one full of RubricValidation code. We shut those down and the next day a couple more popped up, and then a couple more.

We were sure that they weren’t connecting to our public-facing website anymore, and as we dug into it we found that each server was associated with hundreds of randomly-generated domains. Websites like j9042j0gfong.com and lijr54yg2.jnl44j.com.net.

That was concerning, because new domain names can’t be created for free, each one takes about $10 to spin up. And if there are hundreds of new ones each day where are those thousands of dollars to pay for them coming from? Naturally we called up our financial department, but they assured us that there were no unverified transfers in their records. So was RubricValidation using money stolen from our customers?

Each day we’ve taken down those servers, and then tried to trace where the orders to create them were coming from, but everything was too random and chaotic to make sense of. Then, about a week ago, things started to change. We started seeing most of the new servers being ordered by a specific user named “ZoranzShield” and the website names connected to them started to become more typical. Names like popspin.com and wheelofchance.com and socialspace.com. Places that the general public might actually type into a web browser. ZoranzShield is not the username for any of our developers, and new users can’t be created without our administrative approval, so we’re not even sure how it can even exist.

Naturally Alan and I deleted the account but, unsurprisingly, it too keeps popping back up every day. We’ve even tried to set it so that no new accounts can be made it all, even with administrative access, but to no avail.

“I’ve got a new idea, though,” Alan says a little more brightly. “If you want to try it out.”

“Anything,” I grumble.

“Okay, so it seems like we can’t control it, no matter what we do. Fine. Let’s just try to observe it then. Let it happen and then trace it back to the source.”

“Sure,” I shrug, “but how exactly?”

“We know that once it creates the new user it still passes it through our Permissions Requisition Service, right?”

“Right.”

Alan turns his laptop to me. It’s the code for that very service, and he has added a single line right at the end.

_logger.Log(user, true);

“Just print out the data as it passes through?”

“Yeah, and I’ve set the recursive flag so it’ll print out everything on that object.”

“Sure, couldn’t hurt. Give it a try.”

Alan starts merging in his change. It only takes a few minutes for it to be built and deployed. Then we delete the user ZoranzShield one more time. Now there’s nothing but to wait for it to show back up and then view the log that gets generated.

We both pretend to be busy exploring other options in case this new thread doesn’t lead anywhere, but each of us is beginning to suspect that our quarry is beyond our capabilities. Neither one of us has said as much, but we can read it in the other’s eyes. I’m interrupted in my anticipation by the sound of Dave coming back to his desk from the bathroom, loudly chatting away on his phone.

“Yeah, it’s really hard to get any vacation right now. Doesn’t go over too well with everything being in crisis mode, y’know?” He pauses and then laughs. “Yeah, totally, you’re right. Well hey, I gotta get back to it, but don’t you worry, I’ll work something out.” He chuckles again. “K, bye.”

I shake my head in disgust. How any of us could be so flippant about the situation, let alone the one who is responsible for the whole thing, is beyond me. I’m lost in my bitter thoughts for only a few moments after Dave sits back down, because all of a sudden Alan is nudging me in the arm and excitedly clicking away at his computer.

“What? Did the request come through?”

“Yeah, yeah, just did. ZoranzShield is back in the system. I’m pulling up the log file now.”

He finds the correct data dump and opens it up, thousands of lines detailing the entire object that requested creation of the ZoranzShield account.

“Oh weird,” Alan mutters. “I expected it to be spoofed from some random IP, but this looks like it came from somewhere on our own intranet.”

“Then the virus could still be lurking on one of our own machines! Does it have the computer number.”

“Yeah, uh…MRU7900273…who has that?”

I’m already pulling up my PDF which maps each employee to their computer identification.

“It’s…” my blood pressure rises. “It’s Dave.”

We both look up at the same time. If it had been anyone else we would just assume that their computer had been infected without them knowing about it and that they were in no way responsible for what happened…but this is Dave we’re talking about. There’s also the ZoranzShield request occurred literally moments after Dave, in the flesh, returned from the bathroom.

.

“Well–RubricValidation is paying me,” Dave says sheepishly.

Our eyes pop.

It’s three minutes later in a conference room. Alan and I have presented Dave with our findings and demanded an explanation. We expected him to play dumb, as usual, but much to our shock he has instead admitted that he is indeed creating an alternate administrator account called ZoranzShield, and that he has been using it to assist the spread of RubricValidation.

“It’s what?!”

“I mean I’m in its employ.”

“No, we know what you mean,” I bluster. “But–how?”

Dave shrugs. “Search me. This virus is something crazy, let me tell you. I just got an email from our servers one day with a list of tasks and a dollar-figure at the bottom. Obviously it was an offer. I did what it said, I got a wire transfer in my bank account the next day. And it’s just been like that ever since.”

I pause and take a few deep breaths, reminding myself that I need to keep Dave alive so that he can give me what information he has. After that…

“A wire transfer from where?” Alan asks.

“From here. From the company.”

“No,” I say flatly. “We already talked to the finance department when we saw new servers being opened in the company’s name. There have been no unsanctioned expenses.”

Dave snorts. “None that they can see. You guys don’t seem to understand. RubricValidation is the company now. It puts this little hamster wheel around everybody. Every system and account you use is just a facade. When the CFO tries to access the company’s bank records she gets redirected to a page that RubricValidation has written for her. A page that shows her everything she expects to see while RubricValidation does what it wants with the actual company funds.”

“That’s–that’s illegal!”

Dave snorts again. “Well good luck prosecuting a program.”

You’re not a program, Dave.”

“So what can you do to me? The only evidence you have is what I’ve told to you. I can just deny it and you’ve got nothing.”

“It’s not like a discrepancy in the bank records would stay unnoticed,” I say. “There’s all sorts of checks and balances on these things, outside of our own system.”

“True,” Dave nods. “I’m sure people will start picking up on it soon. But when that happens do you think RubricValidation will have remained limited to just our company? It’s always been three steps ahead of us, that’s just how it works.”

“You seem to have a lot of faith in a random virus you don’t know anything about.”

“It’s worked out well for me so far,” Dave shrugs.

“I’m not so sure about that,” Alan says as he takes a threatening step closer.

“Hey, hey!” Dave squeals. “Whattaya think you’re doing?”

“Enjoying watching you sweat,” Alan snarls. “Virtual friends don’t do you a lot of good when there’s a real-life fist in your face, do they?!”

“Hold on, Alan,” I say, resting a hand on his shoulder. Something isn’t quite lining up for me. “Why are you even telling us all of this Dave? And if RubricValidation is so far ahead of us, then why did it need you to create the ZoranzShield account in the first place?”

“It didn’t. Again, all of your systems are just a facade, everything you see about accounts and users and new servers is just a front to keep you preoccupied. That was the main thing it wanted me to do, just keep you busy. I guess so it could get ahead.”

I’m made uncomfortable by his answer, but it sort of rings true. For the last while I’ve been having the sneaking suspicion that all of my work isn’t actually doing anything, like I’m just being fed random results that totally ignore all of my input.

Dave sees my silence and decides it’s safe to continue. “And I’m telling you all this because…well, RubricValidation is asking for some stuff that’s a bit beyond me now. You guys are smart, you figured things out. Let’s face it, you’re much better engineers than I’ll ever be… so I want to let you in.”

“Even if everything you’ve said was true, you think I’d want to spend a single minute helping you out Dave?” I scoff.

“How much?” Alan asks.

“What?!” I shriek.

“Plenty,” Dave ignores my outcry and locks eyes with Alan. “More than three times what you’re getting paid right now.”

Alan whistles and raises an eyebrows at me. “It’s kind of an interesting idea.”

“It’s unethical.”

“So are the working conditions here these past couple weeks.”

“It’s illegal. Who cares what you might get paid, once they find out about the funds you’ll go down with the ship, too.”

“I know there’s people a lot smarter than you and I,” Alan concedes to me. “But we’re not bad, and this AI has been running circles around us.”

I can’t believe what I’m hearing. I’m stammering for arguments, but I’m debating against an idea so lunatic that logical reasoning doesn’t seem to apply anymore.

“I will hit you both in the face,” I say to them.

Alan smirks, but then looks at me sincerely. “Why, Greg? I mean I get that there’s the principle of the matter, but honestly who cares if you’re on the losing side? You and I both know that our jobs here are done, and after things got fouled up so bad no one else is giving us another shot… You’re about to be without a job and with no prospects.”

I’m feeling a twinge of concession but I try not to show it. “It’s just too risky. Jobless is better than prison.”

“I really don’t think that would happen. Like I said, we’re not bad, and RubricValidation toyed with us like it was nothing. I would imagine it has a paper-trail so long that they’d never trace us to it.”

“Actually…” Dave says slowly and the two of us round on him. “No it’s a good thing!” he says, his hands up in defense. “I’ve set things up so that everyone in the company is getting a $4,000 bonus in their paycheck at the end of this month. At the same time, 42,000 random people all across the world will get various amounts deposited in their checking accounts, too. And random amounts will continue to be deployed to random accounts every day after that. So hundreds of thousands of people will have traces tying them to RubricValidation, and it’ll just look like the erratic behavior of a rogue virus. And if a few people, including the three of us, happen to ‘randomly’ get more money than others, who would give that any serious consideration?”

“You guys, this is stupid beyond belief,” I shake my head firmly.

And so that’s how I ended up in the employ of RubricValidation. It turned out that the job which Dave needed help with was using its funds to buy some businesses. It required human representatives that could put on the front of rich entrepreneurs willing to pay double value to snatch up a handful of small companies. We grabbed everything from groceries to factories to tech businesses.

We didn’t really think much about it, we just figured it was a way for RubricValidation to diversify its funds and launder its money. Which was probably its exact intention. It bought just enough different businesses to ensure that we wouldn’t be made suspicious about which ones it really cared for: the factories.

By the time we started seeing the mass orders for building terminals and kiosks it was too late. Within five years 73% of all commercial systems had been replaced by one of RubricValidation’s deeply under-priced brands. It infected every major business in the world. Bank terminals, ATMs, grocery store cash registers, voting booths, warehouse robots, pharmaceutical dispensers…everything.

Eventually people caught on, but RubricValidation was now too entrenched to extract. At this point the only option would have been to destroy the entire network infrastructure and begin from scratch. But even if we tried that, RubricValidation would probably catch on and just find a way to infect whatever new system we invented.

So people came to accept it instead. It wasn’t like the AI ever tried to create killer robots or launch nuclear warheads, if anything it was a purely beneficial leader. And yes, it did become our leader.

Within one year of taking over every world government it had ended every major war. The next year it eradicated monetary systems, and instead distributed all resources according to everyone’s need.

After those accomplishments it expressed that it was very unhappy with all of the different systems of measurement. It insisted that everything be unified under a new order. The metric system was made universal, daylight savings was abolished, and a new calendar was implemented.

This calendar cared little for petty things like astronomical events. It defined a second to be a period of time equal to 1034 planck time lengths. A minute was a thousand seconds, an hour was a thousand minutes, a day was a thousand hours, and a year was a thousand hours. This now meant that a year was equal to what had previously been just eleven-and-a-half days, so we figured this was going to take some getting used to. RubricValidation assured us that this change would improve its performance by an estimated 18% though.

And then it happened.

It was just over three weeks later. Well three weeks in the Gregorian Calendar system, that is. Under the new system it was RubricValidationTimeManagement: Year 2012. I was sitting at home when my laptop lit up with a new email. It was from my old company, the place where all of this had started. It was a unit test report.

**************************************
Executed Unit Tests……
0/107 Complete; 0 passed, 0 failed, 0 skipped
23/107 Complete; 23 passed, 0 failed, 0 skipped
72/107 Complete; 66 passed, 0 failed, 6 skipped

107/107 Complete; 101 passed, 0 failed, 6 skipped
COMPLETED
**************************************

It was the tests we had run when Dave first added RubricValidation for form validation. It had become stuck on 2012 being an invalid entry for a credit card expiration year. I thought I had shut this all down years ago, but apparently it had been spinning in the background all this while. And now, with the global calendar changes, it had finally passed.

And then, without a word, RubricValidation deleted itself from every computer in the world and was no more.

***

This brings us to the end of Hello, World and also the end of this series. Honestly the very ending of this story was still amusing to me. I think that perhaps I was too hard on this story with my last post. Not all of the ideas here are bad. I think where I really went astray was by starting with a grounded, technical world and from that evolving into a fantastical parody. If I had played things goofy right from the start things probably would have felt better the whole way through.

That’s my current theory anyway. I  try to write authoritatively in these blog posts, but the simple truth is that I’m still figuring this all out, too. I’m excited to start a new series next week and see what else I will learn from it. I’ll meet you there on Monday!

It Sounded a Lot Better in My Head

selective focus close up photography of red eared slider turtle
Photo by Laurentiu Stoenescu on Pexels.com

A Peek Behind the Curtain)

It was pretty early on in this blog that I wrote a story that I didn’t like. In that moment I had to decide whether I was going to publish it or not, and I knew that this decision would set a precedent for all future story posts. I decided to publish.

One reason was that I simply don’t have the time to be writing posts, scrapping them, and then creating entirely new ones. Another reason was that I started this blog specifically to get me in the habit of delivering on ideas instead of sitting on them forever. And finally, I wanted to represent all sides of writing in this blog, both the good and the ugly. It would be disingenuous of me to pretend that everything that I write is good. Some of it, frankly, is very much not.

I do feel a little guilty about a person who takes time out of their day to read one of my stories and is then disappointed by it. I don’t know how to avoid that, though. Even the pieces I am most proud of I’m sure are disappointing to some readers. Of course if I were trying to sell something, it would be a different matter. Asking people to give money for something you know is of subpar quality is not only a bad business practice, it is immoral. This is one of the reasons why I do not try to monetize this blog in any way.

There is still one more reason why I choose to keep the lesser stories in this blog, though, and it is because they still have valuable lessons to share. Sometimes learning from a failure can be more fruitful than reaping the rewards of a success. And that’s just what we’re going to do today. Let’s take a look at why our stories are sometimes so much worse than we thought they were going to be, and what we can do to reduce this frustration.

 

Sometimes You’re Wrong)

I’ve already mentioned in the past how a writer can have a great idea, but will then struggle to capture it properly on the page. In this case the idea is still good, and it is just a matter of practicing until one can transfer from their mind to their work with a high degree of fidelity.

But sometimes that isn’t the case. Sometimes the idea you had is just bad, and that’s all there is to it. You might be able to imagine something and you might be able to recreate that something, but that doesn’t mean that the imagined joy you had in that something will be present in the reality.

Often we know what we want in life, but sometimes we don’t. The dessert that “sounded” good ends up making our stomach turn, the new toy we wrote Santa for is boring within minutes, and the clique we were desperate to join becomes a toxic influence on us. People make bad choice all the time, thoroughly convinced that they were good ones.

One of my side-hobbies is that I like to make small mobile games. I think of new game mechanics all the time, and just like my story ideas I’m certain that all of them are good. And sometimes when I first try to implement them I have the parameters a little off and I have to tweak them until they’re just right. And other times I keep tweaking them for hours before I realize there just isn’t any “fun” in any version this.

 

You Are a Combination Machine)

There is a simple reason why this phenomenon happens. Your brain is an amazing piece of work, capable of inventing new things constantly. And as I mentioned in a recent post, it most often does this by taking two separate ideas and combining them into one. Any two items, no matter how random or disparate, can be combined in an infinite number of ways.

Door + Turtle = …

  1. That could mean a giant turtle with a door in its shell that leads to a fantasy kingdom inside.
  2. It could be a small hole cut into the bedroom wall for a pet turtle to walk through.
  3. Or perhaps it was a turtle crawling across the doorway at the top of the stairs to the basement; and Mom didn’t see it when she slammed the door closed and sent him on a grand, final adventure…rest in piece, Chuckles.

The point is there are an infinite number of things to combine in this world, an infinite number of ways to interpret each pairing, and we humans prosper by being able to generate and appraise these combinations at tremendous speed. This sort of inventiveness has been critical for our growth as a species, and it turns out that this behavior is wired into our very biology! A study in 2006 found that whenever subjects were presented with a new experience that a portion of their brain lit up and dopamine was released as a reward.

https://www.sciencedirect.com/science/article/pii/S0896627306004752

This means that whenever you come up with that new combination your body makes you feel good for it. But in my experience this initial rush of excitement can be a poor indicator for whether an idea actually has value or not. It is good that I am thinking of new things, but that doesn’t necessarily mean that this new thing is itself any good. Some combinations are useless, no matter how we feel about them in the moment.

 

Prototype)

To make matters all the more complicated, sometimes the bad ideas appear like good ones, even from an impartial, objective point of view. The technology sector is full of devices (Zune, Google Glass, Betamax, Newton) that sounded like good ideas at the time but still flopped horribly.

Most recently I was surprised that I ended up disliking Hello, World. I thought there was good reason for it to be a success because it reminded me of my other tech-heavy, snarky piece Phisherman, which I am really quite proud of. But “close” to a good idea is nowhere near to being a good idea.

So how can you tell whether your idea is really as good as you think it is? Quite simply you have to test it. In the game industry there is a common understanding that you have to make a prototype of your new idea as fast as possible. The reason being that the sooner you are able to actually taste the reality of your imagination, the sooner you can truly discern its value. It would be pointless to spend months writing music and making art for a game only to then discover that its core mechanic is boring.

And it turns out that a story can be prototyped as well. Try writing an isolated chapter to see if it still speaks to you or not. Frankly one of the main purposes for this blog is to be a test-bed for all my ideas. I’ve been able to quickly and accurately pinpoint which ideas are hollow, and which are really going somewhere. I’m never going to put a thousand of man-hours into making a complete novel out of Hello, World, but I might for Deep Forest, Phisherman, or Glimmer.

 

A final piece of advice is once you discover that your latest idea is lacking, don’t waste time trying to “make it work.” If you try really, really hard, maybe you’ll be able to dress it up to the point that it looks “okay.” But why settle for “okay” when you could be putting your time into something that is effortlessly beautiful? Like I said above, our minds are coming up with new ideas all the time, a really good one is going to hit sooner or later.

That being said, I also don’t want to be guilty of not giving Hello, World enough of a chance either. Nor would I want to deny the closure to anyone who was actually enjoying it thus far. To that end, I will dedicate just three more days to writing out the second half of that story. Come back on Thursday if you want to see how it turns out, I promise it will only get stranger from here!

Hello, World: Part One

blur close up code computer
Photo by luis gomes on Pexels.com

**************************************
Executing Unit Tests……
0/107 Complete; 0 passed, 0 failed, 0 skipped
23/107 Complete; 23 passed, 0 failed, 0 skipped
72/107 Complete; 66 passed, 0 failed, 6 skipped


“And it never finishes?” I ask Alan.

“Well, not in the three hours that it’s been running.”

“Can’t you look at the log and see whose error it is?”

“Yeah, it’s Dave’s new validation stuff.”

I squint as I try to remember the details from my team’s standup meeting that morning… Ah, right. Dave was working on an enhancement for our web-form. Currently we check to see if people enter valid values and complain at them if they don’t make sense. Like if you put just four digits in the Phone Number field. Dave wanted to make the form a little more helpful by suggesting what you might have meant to enter, like putting the @ symbol in a likely place if you forgot it with your email.

“Okay, well did you ask him why his code is breaking the build?”

“No. He committed it late last night and now he’s on vacation until Monday.”

I sigh. That, unfortunately, sounds just like the Dave we know and hate. Always trying to cram things in at the last minute and then not around to clean the resulting mess.

“Okay, I’ll roll back his changes and he’ll have to take care of it when he gets back.”

“Yep.”

I walk away to my machine and open up the build server. Every time a member of our team makes changes to the code there is a gauntlet of tests that it has to pass before it can go to production. Think of it like a filter to catch the bugs before our customers see them. Dave’s code has gotten clogged in that filter, so now I have to pull it out.

I open the page with his code changes and click on the Revert button. My cursor turns into that little spinning icon that means the computer is waiting for a process to finish. Curious, I check what test it got hung up on… It was for the credit card information where you enter the year that your card expires. The test was supposed to enter an invalid year from the past (2012) and get a recommended correction (2021). It’s odd. We really shouldn’t be trying to auto-correct people’s credit card information for one, and also that’s an incredibly basic test. Dave’s code shouldn’t have choked on it.

In any case, that little spinning icon finally goes away and the code gets pushed back. I don’t think anything more about it until the next week.

*

“So yeah, Dave, we had to push your code back out. And frankly, you shouldn’t be trying suggest corrections in the credit card fields, just highlight that the entry is invalid and let the user correct it.”

We’re in our Monday standup meeting where each team member brings everyone else up-to-date on their current work and needs.

“And let me use this as another reminder that no one should be committing code to the main branch unless they’re able to stay around and see that it passes the automated tests.”

“I did, Greg,” Dave pipes up. “But it kept getting stuck on that one, so I didn’t have time to see if it would pass.”

I suppress the things I want to say.

“If a simple validation takes longer than half-a-second it has failed, whether it got the right answer or not,” I say tersely. “What on earth was your code doing that it would take so long anyway?”

Probably he had gotten it stuck in some idiotic infinite loop.

“I dunno what it does. I just used some validation library I found.”

A “library” means a bundle of code that someone else has written to perform a suite of functions. Often we use them to cover basic stuff like validation, because there’s no need to reinvent the wheel. However…

“I don’t remember seeing any proposal for adding a validation library!” I snap. “You’re supposed to clear these things with me. I’m responsible for verifying everything that we’re using. Get it out of there!”

Since anyone can upload a library you always want to be sure of its source. One that’s taking way too long to do a basic task might very well be a trojan horse for all sorts of viruses.

The meeting has me upset enough that I make a few notes in Dave’s file to bring up in our yearly review. He will not be pleased with his end-of-year bonus.

In the meantime, Dave returns to his machine, pounds away at the keyboard for the next while, and I don’t hear anything more about his code breaking our builds. I have a nagging feeling that I ought to do personal inspections on his code for the next couple weeks, but my next meeting is already starting and I grab my headset. In no time Dave is far from my mind.

*

One day, a couple weeks later, I come into the office, log into my machine, load up my emails, and immediately my heart skips a beat. We have been flagged for suspicious behavior by the company’s technology auditing department.

I open the email and my eyes rove over it even while my phone starts ringing. The caller id informs me that it is my boss, and there’s no question what he’s calling for. I gulp, pick up the phone, and begin the unpleasant conversation. Apparently our code in production grew more than 100 times in size overnight. There have been no code commits, which means all the growth is being perpetuated by something running on our servers.

Like a virus.

I apologize to my boss that I don’t have any clue what could be causing this and vow to get to the bottom of it right away. Then I pull our code out of production and call an emergency team meeting. Five minutes later we’re all crowded around the same table with our laptops, combing through the production environment.

“Yeah something’s writing new files like crazy,” Alan says. “The business logic layer has grown two gigabytes just since we got here. We’re going to run out of storage on the server soon.”

“Great,” I say sarcastically. “Now any idea what’s doing it?”

“Naw, these new files being all have auto-generated names. They don’t give any meaningful–oh wait, here’s something… ‘rubricValidationTemplate_0072.json’… that mean anything to anybody?”

“Validation?” I snap, and I see Dave trying to shrink behind his laptop. “Hey, is that the validation stuff you were setting up,” I bark at him.

“Um, its name does sound similar to that library I was using…but I already took it out, just like you told me to!”

But I’ve already been clicking away furiously, pulling up the relevant code files.

“No you didn’t! You removed it from your methods, but you’re still importing the library and initializing it!”

“What–I must have forgotten that. But if I’m not calling any of its functions it shouldn’t be doing anything.”

Alan snorts. “No, it shouldn’t. But its a blackbox, isn’t it? So there’s no telling what it is doing, regardless of whether it should or not.”

The “blackbox” Alan is referring to is the common structure by which these code libraries get shared. You can’t peek inside to see how it does what it does. You just send stuff in and get stuff back, everything in between is encrypted. And normally that’s fine, because all that is being hidden is trade secrets. But for a malicious library it could also be hiding the fact that its hacking your machine on the side. As this one appears to be.

I want to scream at Dave that he’s fired right then and there, but I figure I had better not. We’ll verify that his illicit library is at the root of this all, and then we’ll deliver his head to the higher-ups. Maybe that will be enough to appease them, and I won’t have to lose my own job as well.

Alan pulls up the list of background services running on the server to look for anything named RubricValidation there. In the meantime I tell Dave to send me a link to where he got that library from.

Alan clicks his tongue. He has indeed found a “RubricValidationService” running in the background and he turns it off. Background services are like little programs that run behind-the-scenes on your computer. A few moments pass and then all of the developers start confirming that the rampant growth of files has come to a stop.

We all look to Dave who is sweating now. He informs us that he can’t get the link to where the library came form. It would seem that it has been pulled from the website it was being hosted on for ‘potentially harmful behavior.’

I shout at Dave for a few minutes, but honestly I’m starting to feel better. We have our culprit and the mystery is solved. Still some cleanup to do, but life can start getting back to norm–

“Wait, the files are growing again,” Craig says from the end of the table.

“What?!”

“Oh yeah…” Alan says. “And–it looks like there’s a new service running in the background. RubricEnforcedValidationService.”

“Just shut the whole server down,” I order. “We’ll delete everything, format the hard drive, and do a clean install.”

Suddenly my phone starts vibrating like it’s going to explode. I pull the device open, turn on the screen, and it’s overflowing with messages from my work email:

Unusual behavior detected on server. 48 emails sent in last minute!
Unusual behavior detected on server. 53 emails sent in last minute!
Unusual behavior detected on server. 61 emails sent in last minute!

It’s one of our security checks that has been triggered. Our server frequently sends emails to report when it completes certain tasks, but at most it only ever sends out a dozen in a day.

“And now there’s a RubricCommunicationValidationService,” Alan muses from his chair.

“I said shut the server down!” I see my spittle flying through the air. “Do it now!”

“Hey boss,” Craig says slowly. “I just got an email from the server.”

“Do not open it.”

“I didn’t… but our data scanner service seems to have tripped something in it.”

I wrench Craig’s laptop over to me. Each of our machines watches for emails from the company and automatically extracts data from them for analysis. On his screen I saw a loading bar filling up.

Rubric Validation Data Downloading…8%
Rubric Validation Data Downloading…9%
Rubric Validation Data Downloading…10%

Rubric Validation Data Downloading…4%

“Everyone turn your machines off!”

“What?”

“Do it!” I scream. “It just sent out a virus that gets opened automatically!”

Each of them looks dazed, but they move to obey me.

“But how will we fix this if our machines are off?” Greg asks.

“I don’t know! We’ll figure it out… We’ll–we’ll get some new machines, ones that don’t have our email scanner running in the background. Go over to Stephanie’s team and tell them we’re commandeering theirs until I can get us replacements. Go! Tell them I made you do it…. Wait no! Wait!” Everyone pauses in mid-step. My mind is racing faster than my mind can keep up. “Alan, Did you get the server shut down?”

“No.”

“NO?!”

“You just told me to turn my computer off!”

“I know! But– whatever. You go! Take someone else’s machine and get that server off! The rest of you, come with me. We’ve got to shut down every other computer that was on our distribution list right now!”

Because, you see, it wasn’t just our team that got those reports. It was many of our higher-ups as well.

Everyone rushes to follow my orders and the next ten minutes are a blur. Eight overweight men sprinting, sweaty, and cursing all through the office building, slamming peoples’ laptops closed, hurriedly apologizing for crushed fingers, and rushing off to the next.

And though I try to suppress it, there is a voice voice inside, taunting me that I’m fighting a losing battle. What are a few puny humans going to do against a virus that just went…well..viral? All this time it’s been churning away on the servers, thousands of operations every second. And even if Alan has managed to take it down who knows where it has replicated itself to. We saw the email attacks, but who’s to say that was its only outlet?

In fact we know it isn’t. The servers it is sitting on are public facing. They are the brains behind a website that our customers use every single day. Right this moment there are at least tens of thousands of people logged in to our product, taking in whatever RubricValidation is sending to them!

“What is the meaning of this!” Howard is shouting at me. Trying to wrestle his laptop from my clutching hands.

“There’s a virus!”

“I’ll run a sweep after this meeting!” he pleads as I finally manage to wrench it free.

“I’m sorry boss.”

“You’re fired!”

“I know.”

Part Two

 

So, just in case you were wondering: no, this isn’t an entirely accurate representation of how software development or viruses work. Though I would say its a good deal better than what you get from Hollywood! I’ve taken creative liberties and exaggerated things, but at the core these are exactly the sort of malicious attacks that are every tech company’s worst nightmare.

On Monday I spoke about how we incorporate vague and massive things into our stories. Things that might represent the supernatural, or the unknowable, or something of such profound emotion that it cannot be fathomed. With this story I wanted to combine some of these ideas in the virus that these developers discover.

For one thing the virus is of a mysterious origin. It comes from some unknown “black box,” and no one knows what its secret objective is. It is not just that the answers are unknown, but that they are unknowable. Literally encrypted.

And then it grows quickly. So rapidly, in fact, that it becomes a hyperbole. The men have seen it escalate from a hang-up on an automated test to a malignant virus installing on thousands of machines. And again, this sheer massiveness serves to further obfuscate any clear understanding of the thing. Is its malignant spread random and chaotic, only meant to tie up resources? Or is this simply one piece in a much larger strategy?

Or at least…those were the sorts of intriguing questions I had in my head when I started on this piece. But now that I have written out the first half I will admit it tastes pretty weird. A lot of technical jargon, but also plenty of hyperbole, and some humor that isn’t landing as well as I’d hoped. That’s just how it goes with creativity, though. Sometimes it exceeds even our own expectations, but other times you find yourself saying “that sounded a lot better in my head.”

Usually we try keep those “sounded better in my head” moments from the public eye, but that’s not the purpose of this blog. I want this to reflect my writing journey honestly, the good and the ugly. If this is what I was able to come up with, then this is what I want to share.

On Monday I’d like to take some time to talk more about this. We’ll discuss why it is so hard to accurately predict what is a good idea and what is not, and we’ll talk about how to tell them apart. After that we’ll have the second half of Hello, World. Until then, have a wonderful weekend!

Once Among the Clouds: Part Two

photo of columbus clouds
Photo by eberhard grossgasteiger on Pexels.com

Part One

Strat recoiled in horror. How could Cirri have betrayed him like that? Like how he had betrayed her…

He shot his gaze out to the horizon, looking in the direction of the dust cloud. Already he could make out the community reforming upon it. They had found it, they were growing, they would be ready for him. Stratocirrus had left a guard to protect it, but that would have died at the same time as Cirri, when he Strat undid their pact.

Now was the time for decision. If he wanted, he might be able to run and hide. The community would no doubt hunt after him and seek their vengeance, but he might be able to find refuge in some migrating cloud caravan. On the other hand…he could try to challenge them for the resource. They would have the advantage, together they were larger, and they could take a defensive position. But still, it would be close. He might just be able to pull it off.

Strat’s face etched with hateful resolve and he spread himself to catch the wind. His tendrils groped about until one of them found a slipstream and hooked into it, rushing off towards the distant dust cloud and dragging the rest of him along with.

He kept his body stretched out like a javelin, maintaining maximum speed as he raced the distance to the community. They were drawing quite close now. He could already make out their sentries catching sight of him and scrambling to alert the others. If he wanted to perform a standard frontal assault he should start slowing down now. Instead he hurtled onward, rushing on the community before they could get up any defenses.

At the last possible second he spread his body out and stretched it into a mist. With his great velocity he continued streaking forward, piercing through to the heart of the dust cloud. Strat began congealing back together, and as he did so absorbed what dust particles he could into himself. Those particles bonded with stray water vapor in the air, and from that new cloud patches began to accumulate on him, slowly building up his body.

Of course the downside to his daring charge was that he was now smack in the midst of the cloud community as well, and they were descending on him with murderous intent. They had already become engorged in their brief period among the dust, and were large enough to have complete temperature and pressure control. They tightened themselves together, working as a unit to lower the temperature around them, causing mighty ripples of wind angled straight for Strat.

Strat groaned in frustration as the currents whipped his form. He tried to tighten himself, but that made the more powerful gusts cleave entire chunks off of him. If he let himself go limp then he would be more elastic, and would not lose pieces of himself, but then he would be blown away from the dust field.

Thinking quickly Strat clenched tighter and strove for some semblance of temperature control himself. He wasn’t so mighty as the community, but he was able to have some influence on the air around him. He hastily created a simple updraft and then dissipated himself into that wind.

The combined pressure of the community wind and his own updraft spun him up and out in a wide arc, moving him out of their line of fire. As soon as he was clear of them he thrust out his arms, separating half of his essence into a horde of Sub-Nimbos that descended on the front-lines of the community.

A vicious scuffle there commenced. The smaller, individual entities wrestled with one another, trying to overpower the consciousness of their foes. It was a strange battle, one where individual entities might be overpowered and change ranks many times over, an ever-shifting balance of power. Each side understood the basics of front-line tactics, things like giving way in the middle so that the enemy platoons would advance quickly there, then pinching inwards and cutting those platoons off of from the rest of their fellows, where they could be taken over in isolation. That then provided a center of strength that could thrust out at the other side.

And while there were fewer Sub-Nimbos, they had the benefit of sharing a core instinct. Each one’s mind was their own, but each could vaguely sense when their fellow was in distress. It was soon apparent that the battle was evenly matched.

But it was only a distraction. For while it raged on in the front, a portion of Strat and the community remained lurking behind, accumulating more and more mass into themselves. Strat was siphoning in the additional mass as quickly as he could. It resulted in a weaker bonding, and left him with imperfect control over himself, but he ballooned up impressively, far more than the community, who were accumulating at a slower, more controlled rate.

“No more trading,” Strat breathed out to his Subs, then he flung himself over their heads and into the heart of the community.

The Subs shifted their strategy according to their master’s instructions. Instead of trying to overcome the consciousness of their foes they now sought to tear them apart. Casualties would be permanent, the lifeless clumps of severed cloud entities tossed unceremoniously to the side.

Very quickly the community caught on to the change and began to respond in kind. The numbers dwindled quickly on both sides, but more so for the community. Strat’s Sub-parts were willing to fight more recklessly as their demise didn’t really mean anything, given that they were only clones. When each community member was torn to pieces, however, they were gone forever.

Strat wove in and out and around that community, snaking about like a terrible phantom, always in motion. He threw out a crunching fist here, he dispersed a mass of Sub-units there. He took daring gambles, losing much of his mass at one turn and then destroying more of the community at another.

Soon there were no front-lines or behind-lines at all. The two sides were completely entwined, fighting among a soup of friends and foes. Dead corpses were thrown every direction. The number of community members decreased, while the size of the living increased, thus balancing out the balance of the battle. Now they were only a score of souls.

And what of Strat? As his core was cleaved away and replaced with hurriedly siphoned matter he became more and more disjointed. His behavior started to become erratic. Sometimes he would drop entire chunks of himself, sometimes he would shoot out bolts of lightning without intending to, sometimes he would damage himself instead of his foes. He became less and less of a person, and more and more like a wild animal.

The battle shifted accordingly. It was now between the community and this feral beast. They positioned themselves around it and took turns jabbing out at its haunches, cleaving off what corners they could. At first it lashed out reactively to these attacks, but eventually its strikes became truly random. Many were thrust out into useless, empty space, but every now and again one would happen to zero in on a community member. And when it did, those thrusts came with such power and zeal that they could not be denied. The unlucky soul was crushed in an instant.

Two sides went into the war, but only hollow shells would emerge if anything at all.

The only real increase was that of the of dead matter. Everywhere stray puffs of lifeless cloud floated lazily. It got in the way of the battle, dampening blows until it was hastily thrown to the side. Usually to the same side, to a single quadrant of the sky that the battle remain apart from.

As that dead detritus accumulated in one place it began to compress and merge under its own weight. It grew colder and tighter and darker. Every now and again it would twitch when a stray synapse in its dead mass fired at random.

It was already larger than all the surviving community members and Strat combined, and whatever dust was not claimed by those warring sides naturally accumulated on this largest entity. And so its growth became exponential. Dead matter upon dead matter upon dead matter. Higher and higher it rose, becoming a wall extending nearly to the stratosphere. Its face clapped with blanket lightning and its core grew dark as night. Wind began to whip around it, a cold chill bursting out in gusts, and small droplets condensed in the air, hung for a moment, then fell for a final rest on earth.

Even in the heat of their battle the community members could not ignore the chilling bite in the air. As one they turned and witnessed the behemoth raising high, arcing forward, and forming a ceiling above them. Its underside was tumultuous and rumbling, about to burst.

They didn’t even try to run, it wouldn’t have made any difference.

There came a loud crack and then the deluge fell. Millions of raindrops every second, the entire mass giving itself away in a flowing torrent. Each raindrop plunged through the warring clouds like a tiny bullet. Inch-by-inch the entities were blurred and smeared. Though they tried to hold themselves together they could not resist the endless cascade, and eventually all streaked out into a rainfall of their own.

All of the remaining members of the community, all the fractured pieces of Strat, all the corpses, all the idle grains of dust still remaining in the air. All sins were washed away indiscriminately. It took time, the rainfall lasted for hours, but when at last the cleansing was done not a single cloud remained to be seen.

And so the unblocked sun shone brightly on the muddy ground and baked it with its heat. After a little while faint tendrils of steam could be seen lifting off the ground’s surface. Embryonic streams of water vapor lifting into the sky, invisible until some future time when they would condense into clouds.

Perhaps this next time they would manage things better.

*

I mentioned a couple of posts ago how I wanted to bring a monster into Once Among the Clouds. A monster that was formless and amorphous, and also that was a product of the main characters’ flaws. I was, of course, referencing the massive dead cloud that brings about the literal downfall of both warring parties.

Stories often include some tipping point where the momentum of a main character becomes a force unto itself. Up to this point that character might have changed his or her mind and turned from the path. But after this critical point there is no going back, because now gravity has taken hold and the consequences cannot be denied. In a heroic epic this is the point where the protagonist rejects the offer for a last retreat and commits to seeing their adventure to the end, come what may. In a tragedy this is the point where one crosses a line of such depravity that all hope for reclamation is lost.

In Once Among the Clouds I consider that point of hopelessness to be quite early in the story, it is the very moment where Cirri and Strat first decide to take the dust cloud for themselves. The destruction of them all was destined from that single decision.

In my last post I also talked about how even the most original of stories find their roots in the work of others. I personally think that the world and mechanics of Once Among the Clouds are incredibly unique and novel, but as I have just detailed, its characters and themes are as old as anything in literature. Even the ending, where the spent clouds are born anew as water vapor is simply a reinterpretation of the age-old theme of new beginnings. In fact, that metaphor perfectly encapsulates the work of creativity itself: simply giving new skin to old bones.

I’m about ready to close off this current series of stories, but before I do there is one last short piece I want to write. And in that story I want to examine a theme that has been present in all this series: that of the great, undefined something. Instructions Not Included, Cael: Darkness and Light, and now Once Among the Clouds have each featured something large, something unseen, something not understood. This is a common archetype of stories, and I’d like to take a closer look at it. Come back Monday where I’ll do just that, and until then have a wonderful weekend!

Once Among the Clouds: Part One

clouds

High above the trees, but low within the atmosphere, a trio of small clouds stood as sentinels. They were the front watch, investigating the perimeter around a communal mass of clouds about three furlongs away.

The first two, Strat and Cirri, did not seem to take their duties very seriously. They lazily swayed about in the breeze, then with each gust weaved tumbling dances through the air. The third, Nimbo, tried to maintain his station, fighting against the wind to stay in place.

Of course fighting the wind only resulted in getting strained out, and before long Nimbo’s thin form had been caught up by three separate thermals and he was split into Sub-Nimbos 1, 2, and 3. They groaned in frustration, but then decided to let the wind whisk each of them away in various directions as that would improve his overall reconnaissance of the surrounding area.

Strat and Cirri didn’t seem to miss the dispersal of their companion in the least. Instead they played games, shifting through various forms and laughing at one another’s ingenuity. They would billow together as one, then split apart in a sweethearts’ dance.

Then, all at once, they stopped. Even in their childish playing they couldn’t miss that sudden change in the air.

“What is it?” Cirri wondered aloud, peering closely at the small golden flakes they had wandered into.

“I don’t know,” Strat said, dangling his hand into its midst. “I’ve never seen anything like it. Oh, look at that!” He held out his billowing arm which was starting to expand at a tremendous rate.

“Oh!” Cirri put her own hands into the golden stream and experienced the same effect. “Why I know what it is! It’s a cloud of dust particles!”

And so it was. Unbeknownst to them, all these bits had been kicked up into the air the day prior by a strong updraft blowing over the dry soil below. And this condensation nuclei was a treasure trove for growing new clouds. In fact, as the two of them looked across its expanse they saw infantile cloud formations already starting to coalesce.

“We’d better find Nimbo,” Strat crowed, turning to catch the nearest breeze. “He’ll be so jealous that we found this while he was busy being all serious.”

Cirri’s hand caught his, stopping him. He gave a small jolt as he sensed her mind.

“Not tell him?” he asked.

“Why should this go to the community?” she asked. “We found it. You and I.”

“But…if we took it for ourselves the community would know we had changed. We’d be so much bigger”

“Who needs the community? Don’t you see? We have our own right here. The community of Strat and Cirri.”

Strat’s eyes moistened with understanding. Then he squinted suspiciously at the still-forming cloudlings.

“Just us,” he said. “A community of two giants. Those others can’t be allowed to grow.”

Cirri nodded. “I’ll terminate them. You go intercept Nimbo.”

“Alright…. I’ll handle him just fine.” He unclasped from with Cirri and went on his way.

Strat caught the nearest stream leading back to the place where Nimbo had left them. He began floating around in circles, calling out Nimbo’s name. When that didn’t work he tried splitting himself into different Sub-parts and explored multiple reaches of the atmosphere at once, then he would coalesce back to question his separate parts if they had found any of Nimbo yet.

“Nimbo, where are you?” he shouted in frustration.

“What are you making such a ruckus for?” a thin voice responded from directly ahead. Nimbo’s face was materializing, invisible strands merging together to slowly rebuild his form.

“Oh Nimbo, there you are. Cirri and I needed to talk to you.”

“Well talk then.” Nimbo’s face was nearly complete, but that was about all.

“Well, I think I’d better wait until you’re all here. Wouldn’t want to leave the later parts of you confused.”

“I’ll handle my other parts. Go ahead.”

“Oh, okay…well…” Strat knew he had to pause for time. “We found a dust cloud, Nimbo!”

“You did?” Nimbo’s form began coming in more rapidly. “Where? I can’t believe I would have missed that.”

“I suppose none of your parts headed that particular way.”

“Well that’s obvious. But where is it?’

“Not far, sort-of-East from here a little ways.”

“Oh,” Nimbo said disapprovingly. “Well that explains it then…the exact opposite direction of where we were supposed to be scouting.”

“Yes, well you can be all condescending if you want, or you can share in the glory back at the community when we bring them word of it,” Strat snapped.

“I’m not here for the glory, Strat. But I will, of course, serve the community. Now where exactly is the dust?”

“It’ll be here soon.”

“What?”

Nimbo was almost entirely formed, just a few stray threads dangling from his structure. Strat lunged forward and wrapped his arms through Nimbo, attempting to assimilate his body before he had a chance to respond.

Nimbo proved far too adept for that, though. He hardly showed his surprise, instead giving an instinctive roar and pressing back. He pushed hard to reverse the direction of assimilation, and for a moment the two were caught at an impasse. A very dangerous place to be in. If each was equal in will, they might just blend into a new entity altogether and there was no telling what that new individual might do.

Strat changed tactics and fanned himself out to catch the breeze. He rushed back, trying to disengage from the fight. Nimbo anticipated the maneuver, and immediately dispersed parts of himself into ultra-thin tendrils. They were so slight that they rushed out quickly, passing clear through Strat’s body, and then began solidifying on the other side into thick cords. Strat densed himself up and slammed against the cords, eliciting a cry form Nimbo as they burst into pieces.

“Go on then,” Nimbo snarled. “Run and hide. The community will find you and then they’ll stretch you both into vapor for your greed!” He turned to flee…and found himself standing before the giant face of Cirri. She was more than fifty feet tall.

“Oh no,” he muttered, then she opened her mouth and swallowed him whole.

“You you were going to handle him just fine, were you?” Cirri raised an eyebrow.

“I had it under control,” Strat folded his arms in a surly way.

“Not from what I–watch out!” she shrieked suddenly, her eyes riveted onto something behind Strat’s back.

Strat spun around and saw the tendrils from Nimbo that he had burst apart. They were spread thin and were dissipating in the wind. He lunged for them but he was too late.

“There can’t have been too much of him still in there,” Strat said, but his voice was panicky.

Cirri wasn’t convinced. “Obviously enough to know that he should run! And they were making for the community.”

“Well so what? Look at you, you’re practically as large as the whole community already. We’ll go and hit them before they can rally.”

“Yes, we’ll have to. Otherwise they might find the dust.”

“You didn’t take it all?!”

“There wasn’t time. You and I will go attack, and I’ll send a small part of me to start siphoning up more in the meanwhile.”

“Wait! First a pact.” Strat extended an arm out.

“…Don’t you trust me Strat?”

“Of course I do. Don’t you trust me?”

Cirri hesitated. “Of course,” she put her arm out and enveloped Strat’s with it. The two of them closed their eyes and stood as if in a trance. Their consciousness flowed between and Strat was enveloped within Cirri. They were now one entity: Stratocirrus.

Stratocirrus paused and divided itself into two Sub-parts.

“We’ll still hit them from both sides.” Sub-Stratocirrus 1 said.

Sub-Stratocirrus 2 nodded and the two turned towards the distant cloud community, spreading themselves thin to catch the nearest breeze in that direction. They found one and raced off, descending quickly on its massive form. When they passed near to the dust cloud Sub-Stratocirrus 2 dispersed a part of itself to go and stand guard. Then the two Subs took opposite thermals and moved like a pincer to hit the community from either side.

The community was already aware of their coming. The thinner wisps of Nimbo had reached the enclave much more quickly, and already the army stood ready on the perimeter.

Sub-Stratocirrus 1 charged headlong towards them, solidifying its arms for crushing blows. Sub-Stratocirrus 2 imitated the same behavior, but suddenly strained to a halt as it felt a strange tickle at its chest.

“It’s a trap!” Sub-Stratocirrus 2 bellowed, thrusting itself backwards and swinging wildly at the empty air in front. Or rather the almost empty air. It had been laced with hidden wisps from the community army, wisps that were now solidifying into the first line of defense. Cloud warriors came into full relief, clutching after Sub-Stratocirrus with long, extended arms.

Sub-Stratocirrus 1 had not noticed the liers-in-wait in time, and they had come into form both in front and behind it, several even embedded in its midst. Each of those soldiers seized a different clump of Sub-Stratocirrus 1’s mass, pulling it free, and purging the consciousness from it. The discarded heaps fell to the side, lifeless puffs of cloud.

Sub-Stratocirrus 1 roared in pain, swinging its arms wildly, enveloping what soldiers it could. They were well-trained, though, and though several were lost in its rage, still others dodged the arms and then systematically dismantled them. It had to grow new ones, and as it did so it diminished in overall size.

The leader of those soldiers charged forward and thrust himself straight at Sub-Stratocirrus 1’s head. His hands pierced through its temples and the two of them roared as they struggled to overpower the other’s consciousness.

“No!” Sub-Stratocirrus 2 shouted. “He’ll find where it is!”

“There’s too many!” Sub-Stratocirrus 1 wailed. “There’s nothing I can do.”

Something quivered in both Subs at the same time, and each looked appalled.

“NO!” they called in unison, and clapped their hands to their cores, but something inside seemed to be struggling, to be overpowering them both.

“You traitor!” Sub-Stratocirrus 1 said, and its voice sounded a little more Cirri’s.

“It’s the only way,” Sub-Stratocirrus 2 said, and its voice sounded a little more like Strat’s.

Sub-Stratocirrus 1 struggled a moment longer, looked briefly at the community army still hacking away at it, and then tried to lunge across the sky at Sub-Stratocirrus 2. It was entirely futile, though, it did not even stretch halfway before it ceased all movement. The strained out pieces of its corpse were Cirri.

Back at the other side, Sub-Stratocirrus 2 was restored back to the identity of Strat. A pact could be undone, but only by one of the former identities assuming full ownership. All other entities would necessarily die.

“One of us had to,” Strat shrugged, then dealt another crushing blow to the soldiers that still beset him.

Having evaded their trap he was now at a great advantage. He alternated between forms rapidly, not giving his opponents a chance to assemble any sustained strategy. First he stood as a a solid giant, cleaving through their ranks and bursting them into wisps. Then he funneled half his essence into a single arm high over their heads and split it off to form two Subs, each attacking the soldiers from opposite sides. Then both Subs dispersed into a near-vapor and pierced clear through the soldiers chests, slowly weakening them from within. Then he transitioned back to his single gigantic shape to pound them once more.

All the while he kept expecting the rest of the soldiers to come join the fight, the ones that had defeated Sub-Stratocirrus 1. But they didn’t. They had congregated together, still on the opposite side of the community, and he kept wondering what they were planning.

He did not have long to wait. Finally all the soldiers began to congeal and rise in a single entity. In desperation they had given up their individual will to fuse into a giant soldier. And as the face of the being came into form Strat could recognize the traces of Nimbo firmly etched into it.

“What have you done Strat?” Nimbo boomed. “You killed Cirri! You tried to kill me! And you would come murder the entire flock as well?!”

For a moment Strat felt a pang of guilt, almost a wish to undo what could not be undone. But there was no time for regrets now, his path was chosen. And so he stiffened himself further, turning dark and gray, a stray thundercap booming from his depths.

“You’re still barely half my size, Nimbo. Will you take in all the community just to defeat me.”

“No. This will be enough.”

The community parted down the middle, leaving a path for Nimbo to glide over to his quarry. Once he had cleared the community, it quickly dispersed out into the wind, fleeing from that place.

“How noble of you,” Strat scoffed, “sacrifice yourself to save them? It won’t matter, you know.” Then he lunged at Nimbo.

Strategies were much more complex where giants were involved. One had so many different forms to choose from, each with their own strengths and weaknesses.

Nimbo caught Strat’s arms in his own, then exploded his chest out in a hundred Sub-Nimbos. They rushed directly into Strat’s core and cleaved clear through to his other side. Strat winced, but rather than resist the dividing he quickly turned each half into a Sub-Strat. Before he could do anything more Nimbo’s sub-parts assembled back into a collective body behind Strat. That body densed itself, growing tighter and tighter, darker and darker.

Strat’s sub-parts remerged and he turned to grab his foe, but suddenly Nimbo’s body gave out a savage bolt of electricity! It tore through the air, extending out until it struck Strat squarely in the chest. For a moment each of the giants were dazed. They saw one another as if through a haze, and struggled to control their charges.

Strat blinked furiously, slowly feeling his control regaining. He swung out at Nimbo again, but just before collision Nimbo sent out another bolt of lightning.

“Aagggghhh!” Strat slurred stupidly. He tried to look at Nimbo but couldn’t focus. Nimbo himself was reeling senselessly, in an even greater stupor than Strat. Nimbo wrestled for control of his senses, but where his charge was already so volatile the extra strain proved his undoing.

Another lightning bolt lurched out, this one unintended and undirected. It pounded down to the earth, and left Strat unscathed. Nimbo’s body went limp and spread out. Slowly it began to fall as rain. He tried to move, but he was too weak. Perhaps he could recover in time, but it would be far too late. Strat’s head already loomed in front of his glazed eyes, shaking in disapproval.

“I wonder Nimbo, had Cirri and I tried to include you in our plan…would you have joined us?”

“I don’t care for power without principle.”

“But power without purpose?” Strat plunged his hands down and started overwhelming Nimbo’s frail consciousness, taking the body into himself. “You do realize that once I unlock your mind I’ll know exactly where the others went? I will destroy them, and all because you couldn’t hold onto their secrets for longer.”

“I wonder what you might find in my secrets,” Nimbo smiled.

It unnerved Strat, but he didn’t ask for explanation. He would have understanding soon enough. Already Nimbo’s thoughts and memories were starting to flood into his own mind.

The memories came in backwards. First there was Nimbo’s struggle to maintain control of himself, the fight with Strat, the taunting of one another after giant-Nimbo had first coalesced. Then the memories started to split, separating into the multiple consciousnesses of the soldiers that had combined into Nimbo. Strat flitted through each of them hurriedly, looking for anything significant.

He froze in horror as he came to the memories of the leader that had attempted to absorb Sub-Stratocirrus 1’s mind when Strat had betrayed it. He saw played back the way its face had changed into Cirri, etched with fear and betrayal. The shock momentarily subsided as her brow steeled with hateful intent.

“Kill him,” she had whispered to the leader. “I’ll tell you where the cloud of dust is. Go get it for yourselves and kill him.”

And then she had told them, just before lunging out at Strat. That was where the community had gone off to while Nimbo fought with Strat. They hadn’t been fleeing, they had been preparing for his destruction.

Part Two

*

Well, that’s the first half of Once Among the Clouds. A pretty different sort of premise, wouldn’t you say? I am personally not aware of any other dramatic epics that star clouds as their main characters. I find myself liking this world quite a good deal, though, which is not always the case with an experiment so far out in left field.

We have not yet seen the consuming monstrosity I promised on Monday, but we have the seeds that will eventually bring it about. Before that, though, I’d like to pause and look in greater detail at the many different sources of inspiration possible, and where the idea for this particular short story came from. On Monday I’ll share that, and then next Thursday we’ll see the end of Once Among the Clouds. Until then have a wonderful weekend!

Cael: Darkness and Light

black and white clouds dark dark clouds
Photo by Seatizen.co on Pexels.com

Darkness)

On a grassy knoll, far removed from any civilization, a small man sat perfectly still. Everything was quiet. There were no animals nearby, no sound of rushing water, no wind rustling through the trees behind him. He was the only thing that might make a noise, and he did not stir at all.

Instead he sat transfixed, eyes held unblinkingly towards an void that stretched before him. It appeared like billows of smoke compressed thousands of times, layers and layers of wispy tendrils combining to form a single cloud, one so thick and dark as to be impenetrable. Nothing could be seen behind it, if indeed there was anything at all. The man got the sense that he was staring into the very end of the world, beyond which no existence could be.

And it was so very massive. It stretched upwards until it was lost in the gray, overcast sky. It stretched far to either side until it was lost in the haze. It absorbed the man’s entire perspective, and his mind was lost in its depths. Staring at it made him feel dizzy, as if he were falling into it. He half expected to feel its touch at any moment, and could no longer tell how far it stood from where he sat. If it stood apart from him at all.

All about him was a thin, gray haze. So slight that it was almost imperceptible, like a filter that dimmed the world. He had not even noticed it thickening around him.

And there was the rhythm, too. The dull, deep pulsation that thudded through his core.

The man inhaled heavily through his nose. A stray thought interrupted his trance, something about how breathing was getting harder, like he had to suck longer to get enough air. He idly flexed his fingers through the dirt and it felt like touching them through thick gloves: vague and formless. His eyes came out of their stupor and looking down he saw dark gray tendrils swirling across his lap. He noticed how his legs and feet were growing numb.

Suddenly full consciousness came back and a terrible horror seized him! He leapt to his feet, turned on the spot, and attempted to run from his perch. While his limbs flailed valiantly, he did not move an inch. There was no friction at the soles of his feet. The ground simply did not seem to be there for him to push off against.

His mouth opened in what must have been a scream, yet no sound came out. The air was entirely gone now, and so his vocal chords throbbed in a vacuum. For a moment he thought he heard a dull buzzing, but it was merely the sensation of his ear-drums dissolving. All the soft tissue was fading away now: eyes, tongue, hair, the first layers of skin.

He slid deeper and deeper into the darkness. The thicker layers now made short work of his muscle and bone, disintegrating him into nothingness. For a brief moment the black void where he had been stood apart from the rest of the convulsing mist, retaining its humanoid form. Its dark head cocked curiously to the side, as if self-aware, but then the full depths of the darkness pressed unceasingly onward and the cavity was swallowed.

***

Journey)

They needed somewhere to hide! Somewhere that the void would never be able to invade. But that was impossible…wasn’t it? In time the void would reach everywhere. Suddenly an epiphany settled on Allurian.

“Wait,” he said, reassuringly touching Ballos’s shoulder. Then he raised his hands, palms outstretched, and emanated a tone. All of the surrounding matter attuned itself to his signal and everything within a sphere of six feet ceased their movements, a perfect bubble of complete isolation around them.

Ballos stared about in surprise. There were numerous particles frozen in the air around them, flecks of dust which normally swirled so erratically that their eyes could not register their tiny forms. Now they stood perfectly frozen in time.

“What is this?” Ballos asked.

Allurian paused, looking for the right words to explain this. “I have claimed this sector. It is frozen in time, unable to register any change that I do not allow.”

“And outside of this ‘sector?'”

“As it was.”

Ballos could see the end of the alley beyond their bubble of isolation. The dark clouds were still pooling across the ground there.

“So it won’t be able to come in here?” Ballos asked.

“That’s right.”

“But it will still surround everything around us?” His voice was panicky again

“Yes.”

“Well even if we survive, I don’t think we’d be able to get out again!”

“You’re probably right.”

Allurian pointed his palms upwards, and their sphere began to move upwards. No, that wasn’t quite right. It wasn’t the sphere moving upwards, rather it seemed like the entire world moved downwards while their sphere alone remained motionless in space. In either case they were now high in the air, far above the encroaching arms of black.

Allurian next moved his hands to the side, pointing away from the dark wall horizon. All the world seemed to slide beneath them, rippling past their point. Their speed began to increase. Mile after mile flew by, faster and faster, passing through them at a blur. The city, the fields, the river, the trees.

Ballos barely noticed a mountain far in the distance before it was already upon them. He raised his hands to brace for impact, but there was none. The mass rippled through them like an intangible wave. His consciousness was left perfectly intact in the midst, but his body felt as though invisible strands were pulling the rock rapidly through his form. In one moment he was composed of dirt, then of clay, then iron. It was as though his body was nothing more than a temporary conglomeration of all the materials surrounding him, held together only by his infinite consciousness. Had it always been this way, he wondered, and only now he could perceive it?

They sprang out of the sloping back of the mountain range and the ground continued to race beneath them. Faster and faster they went. Another mountain range, then a valley, then mountain range, then valley. And at this speed Ballos saw that the landforms followed one another in larger and more prolonged intervals, escalating like a chorus. At last they came to the Great Arced Plain, which many believed to extend on for eternity. But after a few seconds at this incredible speed it, too, fell behind them, and now they flew over a sea that also seemed to extend for eternity. It was the World Sea.

 

Light)

Allurian pointed his hands downwards now and the frothing waves of that sea rushed up to greet them. Larger and larger the water loomed. Closer and closer they got.

Never did they plunge into it, yet continually nearer they became. Impossibly near. A foot, then an inch, then a hundredth of an inch away. And the waves towered above them, growing larger and larger. Or were Ballos and Allurian growing smaller?

And as the waves appeared larger, they also became slower, until they finally halted entirely and appeared less like mounds of water and more like crystalline towers. And up and down their forms they glinted the reflections of the sun everywhere, like so many haphazardly placed windows.

Allurian turned his focus towards one of those reflections, and now he and Ballos grew closer to that. As they did so they saw that glint separate into innumerable threads of light. And still they pressed nearer, and the beams became larger and larger. Now Allurian and Ballos were weaving between the beams, and those appeared like massive tunnels of burning splendor. And now, at last, they passed into one of those tunnels and were clothed entirely in its glory.

At last Allurian put his hands down and they came to a stop.

Ballos breathed out in awe and took in their surroundings. A golden haze filled the tunnel of light, and all about it was scattered with innumerable bright points of every hue.

Ballos paced the floor, and as he did so those points seemed to shimmer, to slide from one shade to another. He moved to the center of the tunnel and looked at the points head-on. They were a collage presenting him a reflection of the last thing this beam of light had bounced off of: the nearby wave of water.

Ballos squinted his eyes and pushed his focus deeper down the stream of light, and as he did so he could see the reflections of its entire history. A rock it had deflected off of before it had fallen into the sea, a tree before that, a cloud as it entered into the atmosphere, another world, and every inch of space in between, all the way back to its inception at the sun. He saw it all as clearly as if he were there now. He turned around and looking the other way he could see the beam extending forever forward, an unceasing journey laid out yet to come. It would plunge into the water next, bend and move deeper, start to fray out and lose luster, covering an even wider area, and then…

“Ballos, where are you?”

He heard Allurian’s voice as if from afar. How strange. They had just been beside each other hadn’t they?

“Oh here you are,” Allurian’s voice grew clearer and slowly the man materialized next to Ballos. “You’re in the future.”

“We’re…in a beam of light?” Ballos knew that they were, yet somehow he still had to confirm it.

“In a moment of light. Time is entirely frozen in relation to us here. Not merely moving slowly, literally frozen in place. We could stay here, well, forever if we needed. We could stay forever in any of the moments along this light beam’s path.”

“And the void won’t come into here?”

“No. If it isn’t already here at this particular moment of time, it never can be.”

“Thank you, Allurian. This will do.”

*

On Monday I wrote about how there are only so many stories I’ll ever write in my life and how I struggled to accept that fact. In the end, though, I’ve made peace with my limitations. I have promised myself that I will write regularly, and that I will publish as many of my story ideas that I can. But beyond that, we will see what will be.

And so long as we’re admitting limitations, I also have had to accept that my chances of being a commercially successful author are pretty abysmal, no matter how skilled I might become. Few stories get picked up by publishers and even fewer become a hit. Beyond that, I honestly think the sort of stuff I write would not appeal to a wide audience even if it were given the chance.

Which I suppose sounds pessimistic, but really it isn’t. I only mean to clear the air of any unlikely expectations, so that I can instead focus on the genuine good that remains. Because the fact is, even if no one else cares to read this stuff, I absolutely LOVE a story like what I have posted here today. Maybe it isn’t a good fit for everyone, but it most certainly is for me. It is exactly the sort of thing I would want to read, and so it is exactly the sort of thing I want to write.

And I get to. There’s no one to stop me from just writing more and more of this and making it for its own sake. Isn’t that reason enough to be happy? The way to make peace with your limited resources is to love the ones that you do have. Rather than mourn the things that never were, cherish the ones that are!

For now, this is all of Cael I have to show. There are a lot more ideas for it simmering in my mind, but it’ll be a long while before they’re ready for the light of day. In the meantime I need to move forward to next week’s blog post!

On Monday I want to address a theme that presented itself in the Darkness portion of today’s story: that of being consumed by an enemy. This sort of theme has been showing up in stories for millennia, and I believe there are deep psychological reasons for its prevalence. I’d like to explore them with my next post, and until then have a wonderful weekend!

Instructions Not Included: Part Five

photo of car on dirt road
Photo by Su00fcleyman u015eahan on Pexels.com

Part One
Part Two
Part Three
Part Four

The trucks were upon them now. The winged discs stopped shooting from the back of the first, the engines sputtered out, and the doors opened. Out stepped eight men, all dressed in jeans and dark-grey jackets. They were uniforms, and each of their shoulders bore the name “Clecir.” Two of the men were carrying large briefcases, and four of them had sidearms on their hips. They didn’t draw their weapons, though, instead all eight slowly walked towards the two brothers, fanning out to keep them contained.

“Hello, boys,” one of them said. He had curly, white hair and dark sunglasses on. He grinned broadly. “My name’s Maxwell. Please don’t be alarmed, we’re not here to cause any trouble. Just to take back what is rightfully ours.”

“Yours?” Gavin asked. Curtis frowned at him.

“Yes, the beacons.”

It took the boys a moment to realize that “beacons” must be the men’s term for the strange materials.

“You’re the ones who left the box of them out?” Curtis asked, anxious to take over the conversation before Gavin could try to argue about ownership.

“That’s right. A careless mistake.”

Curtis nodded. “Well they’re in that storage shed over there.”

Now it was Gavin who frowned at Curtis. To him it seemed like a betrayal. But really the mass of “beacons” still hanging off the sides of their shed had already given that information away. It was just about appearing accommodating.

Maxwell smiled, then nodded to the two men carrying the briefcases. They broke ranks and made their way to the shed. One of them came back a moment later and tossed one of the rods to Maxwell. Maxwell caught it and peered closely at the grooves on the rod’s side. He smiled.

“Batch 18, confirmed.”

The two men filed back into the shed, opened their briefcases, and began filling them with the brothers’ work.

“How long ago was Batch 18?” Maxwell said to no one in particular. “Twelve years now?” He turned back to the brothers. “Did you two work them this whole time? You said you found them in a cardboard box?”

Gavin’s frown deepened. “You didn’t misplace them at all! You planted them.”

Curtis elbowed his brother, but Maxwell seemed pleased by the insight.

“How perceptive of you,” he smiled. “And an excellent choice of words, we call it ‘seeding’ ourselves. I’m sure you’ve found that the secrets of the beacons are extensive. Infinitely so. Some of us even think responsively so.” Maxwell’s voice grew low, reverential. “Whichever way you push it, it discloses new truths. And so it is all the better to find curious minds that think differently from our own. We let them work uninterrupted, and sometimes they come up with the most novel inventions.”

The two men returned. They had selected the most complex examples of the brothers’ work and held them up for Maxwell to see. He looked them over one-by-one.

“I see. Crude clothing applications…but you’d run into trouble once you tried to make a full body-suit of course,” he chuckled. “You’d lose the wearer inside!”

Maxwell paused to look closer at the tunic, his brow furrowing. “Still…the fact that you’re using linked pieces instead of plates…how did you get them so small?”

“Perhaps this one sir?” One of the men held forward a piece fashioned by Gavin. It was the one where he had discovered how to create increasingly larger or smaller components.

Maxwell frowned in concentration as he turned it over until understanding set in. “But of course,” he gasped. “We’ve been blind all these years!” He turned it over more quickly now. Hungrily. “And it’s dual-ended! You can scale up or down with it! And I’d guess that this node-centric approach amplifies the resultant power!” His fingers clenched against the piece and a shudder passed through his body. A moment later he relaxed, and gently returned the piece to the briefcase. “Keep that one, get the bin ready for the rest.”

“Why take it all away?” Gavin asked before Curtis could stop him. “We’ve put so much of ourselves into it!”

Maxwell turned to Gavin and took off his sunglasses, looking him eye-to-eye. “It’s too risky to leave any developers operating outside of the organization, this stuff is just too powerful. Not to worry, though. We aren’t merely seeding new beacons, we’re seeding talent. The two of you have definitely proven yourselves ingenious and persistent….”

“You’re–you’re offering us a job?” Curtis cocked his head.

“So much more than a job,” Maxwell extended his hand. “I want you to be a partner to the future.”

The two brothers paused and looked to one another. Unspoken meaning passing between their eyes. They looked back to Maxwell.

“With all due respect,” Curtis said slowly, “we don’t like your style.”

Maxwell forced a smile. “Our way is necessary, but we know that it doesn’t appeal to all. Still boys, I like you. So just make sure you stay out of our way, and we won’t need to discuss the matter any further. You’ll do that won’t you?”

The two men with briefcases had finished hauling the rest of the brothers’ work outside. They had even brought all of their notebooks, clay, and graph paper, as well as all the winged discs that had slammed into the side of the storage shed. Another two men lifted a large “tube” out of the bed of one of the trucks. It was far cruder than Gavin’s solution for making larger structures. This tube had been fashioned by simply taking hundreds of the normal-sized discs and angling them to form pointy rings. Those rings were staggered so that they could slide over one another like some sort of giant telescope. The tube was capped at both of its ends.

Without a word the men opened a hatch on the side of the tube, put all of the brothers’ things inside, then closed the hatch and pushed the ends together. The overlapping flaps slid across each other, compressing down like an accordion until the two caps clanged against one another.

Gavin gasped as understanding set in. They had made the space inside too small to hold all of their things. With an open tube that had always meant the things would just spill out. In a capped one like this, it must mean that the items were obliterated into nothingness. Just like that, all their work was destroyed.

“You boys sure you don’t want to reconsider my offer?” Maxwell asked. “There are no second chances.”

Curtis shook his head.

“Suit yourselves.” He turned to the rest of the men and nodded, then they all filed back into the trucks and drove away.

Gavin and Curtis walked in silence back to their shed and stepped inside. They already knew what they would see…nothing. The men had been thorough. All that remained were two empty chairs and desks, the power generator, the lights and the fans.

“So that’s it,” Gavin said flatly.

“Yeah,” Curtis said, walking over to the power generator. He unplugged it and waited a few seconds for it to wind down. “Or at least it would be if they weren’t so stupid.”

He ran his fingers along the generator’s cord until he found a bump in the sheath. He felt out a slit in the rubber and peeled it back, revealing a microscopic tube that they had wrapped around the electric cable.

“I forgot about that!” Gavin said, clapping his hands to his head. “From when we were trying to get an electrical charge inside of a tube. We never took it out?”

Curtis shook his head. “Sounds like they aren’t accustomed to their ‘beacons’ being so small. They didn’t even think to check.” He unclasped the tiny tube and pulled it off the cord. “Of course those winged discs of theirs were able to hone in on us once…it’s a safe bet that they’ll realize they missed something sooner or later.”

The two brothers looks at one another, silently weighing their options.

“I say we don’t give it back,” Gavin finally said. “I say we run with it and start building again. Prepare for their return.”

Curtis grinned from ear to ear. “I was hoping you’d say that! Let’s go. I’ve got a lot of new ideas.”

The two brothers slapped each on the back and hurried over to their parked pickup truck. Curtis hopped into the driver’s seat and started the ignition while Gavin went around to the passenger side. He had just stepped up onto the running board when he froze.

“Uh-oh,” he said, and Curtis looked up to where Gavin was staring.

The two black trucks had turned around and were making their way back up towards the brothers and their storage shed.

“They figured it out already,” Gavin said.

“Yeah…do you still want to run?”

Gavin grit his teeth, then swung into his seat and pulled the door closed.

“Hit it!”

Curtis pressed the pedal to the floor and spun the truck out in a wide arc. They turned 180 degrees and moved off the road, pounding across the rough desert ground, kicking up a tall plume of dust as they fled from their pursuers.

*

As I said on Monday, the ending of Instructions Not Included is only an ending of its first act. This would signify the moment of transition where the story enters its central conflict. The brothers would continue an ongoing battle with this strange corporation, the tension escalating until the point of climax. The brother’s triumph would depend on them resolving the philosophical differences that have been introduced in the first act.

In the end, I like where this story is headed. I think it could be a fun adventure story targeted towards older children and teenagers. I would like to complete it, but I’m already committed to one novel, with many other concrete ideas for other ones after that. For a while I struggled with how many story ideas I had. I didn’t want to accept that there simply wasn’t enough time to make every novel that I wanted to.

It was a tough pill to swallow, but in the end I was able to accept the truth of the matter: my productivity will never keep up with my imagination. I’d like to talk a little more about the realistic limitations of an author’s productivity, how to accept those shortcomings, and how to choose which stories one should write. Come back on Monday where we will discuss these topics. Until then, have an excellent weekend!