Novels2Search
Castaway
Chapter 14: Contract Work

Chapter 14: Contract Work

Gar:

Momo and I sat at my kitchen table, she’d brought 2 new laptops both installed with a full set of debugging tools. We have both laptops up and working, and we’d pulled my old software off the luggable and gotten in running in an emulator on both as well. We were working simple bugs off the queue that had been escalated to engineering. Momo was teaching me how to use the new stuff, I was teaching her how to use the old stuff when the new stuff wouldn’t solve the issue. To say she was becoming addicted to the power of being just one layer from the metal, and working with only a simulator as a safety net, would be a vast understatement. I may not have mentioned this, Momo is a cryptid. A female cryptid about 22 years old. Smart as a whip, one of a pair of twins by my excellent friends Sasquatch and his wife Mona. So yeah, she kinda looked like a slim elegant wookie in business casual. I’d know her since before she could walk, and we’d always thought down the same paths, and spoken the same language. I bought her first kids magitronics kit, and always had time to answer questions her parents couldn’t. At least the technical ones, not that Mona couldn’t answer most, but I think she always saved a few for me. When it came to boys, her mom was the superhero. I’m useless at that kind of stuff, always have been.

We’d pulled down all the source code for the tools and libraries, and just as advertised at the bottom was all my old stuff still chugging along. I was recompiling each layer one at a time to learn the new IDEs. We had speed tests running remotely on each layer to find inefficiencies. Slick didn’t even touch how good this setup was. Aggie had better be jealous, I might be in love.

Momo interrupted me, “Uncle Gar, Uncle Howard and I put some listeners on your boy Joseph. It was so we’d get good info if he ran into any problems. I just got a couple error emails, and the bugs look really odd. Can I send them to you to take a look?”

“Sure honey pass them over and then come peak over my shoulder and see if we can figure it out together.”

“On a side bar, Uncle Gar, is this Joe guy nice? Wes wants to spend most of his practical following the guy around. Our protections are full twin mode, so we really should stay together. But if Joe’s an ass I’ll put my foot down. I’ve always wanted to see Missouri and Great Grannie Momo’s old stomping grounds.”

“Nah Joe’s a good kid, you’ll like him. If you want to see Old Momo’s stomping grounds though, we can go after and I’ll show you around. Your great granny was a hellcat. You’ll be both awed and afraid of her, I guarantee it.”

This earned a bright smile and a nod, then back to work. I ordered the bugs by date, and a cascade pattern began to emerge. “Oh yeah, he’s totally bugged, no way his magic will correctly initialize as it is. First off he used a skull after he landed with no tome. A pretty reasonable attempt to work around his issues. That tried to activate his magic system, moved him from level 0 to level 1 in the process, then it failed. Next it looks like Hini gifted him with some of her Butterflies. They tried to add to his mana, and partially succeeded. See 3 of 0 mana right here.” I said.

“Yeah, I kept up that far, it’s what triggered with the last one that I can’t get my head around. When he used the core.”

“I see what you mean, If you look at the code, in a lot on places they check for magicLevel == 0 or mana = 0 of 0 as proxies for “Doesn’t have magic”. In some places also check for ‘Magic type not in the list of valid magic types’, which is more robust check, but is also much slower and takes longer to type. You’d be amazed how often that last is the deciding factor. We should add a wicked fast hasMagic() at the global base layer that does all 3 tests, and does it correctly. Plus, if we have to change it later, it’s all in one place. Going to be a pain to replace all the other tests, but it’s not hard, just a lot. We should probably also do a search to see if anyone else was bugged the same way.”

I continued, “Now back to our error. When the earth mana was absorbed, the mana system saw his 3 mana from the 3 butterflies plus a non-zero level, and tried to absorb the earth mana and convert to his mana type. But he has no mana type, so the convert process thread halted with an error. The absorb thread from the process mana system didn’t stop working as it didn’t care about his final type, and that kicked off activate his Primary Magic type again, which again failed because of the null magic type. We’ll have to search the code for ‘magic Type is null’ checks and replace those with our new method as well as the ones we discussed before.”

This story has been unlawfully obtained without the author's consent. Report any appearances on Amazon.

“God’s you are right this is a mess. Momo, can you check what the process is for corrupted or bad mana types? There several ways to fix it. We just need to make sure we don’t break process, since he’s literally my Disciple, and Carol Ann is already on the war path. Whatever approach we take is going to be scrutinized at great length, this has to be documented out the wahoo and rigidly within the rules and processes. Otherwise, they will force a roll back of the change and screw him over even more.”

Flipping her hair out of her eyes with a practiced gesture, Momo continues “Under Corrupted Magic types, it just says “Fix it”. But it also references a much newer rule that forbids changing of the magic type once initiated, it says you can only reset it back to the original magic type. “

“Ha!” I laughed, “Fix it, god I miss the old days, this must not have come up in forever.”

Momo Laughed, “Looking at the notes the last update to the mana type systems was in the age of dinosaurs.”

I laughed with Momo, “If it ain’t broke don’t fix it. Okay, let’s try to break this down. His magic type is null. Change logs show it’s the only magic type he’s ever had. Does that still qualify for corrupted? Maybe we could just reactivate from scratch when the tome gets read.” I asked.

“Yep, null is one of the corruption types that’s explicitly listed. Any other ideas?”

“Momo can you please search for references to “null Magic Type”?

“There are a lot of results. Looks like every list of magic types, is null terminated. The documentation process has code to explicitly remove them when generating the docs.” Said Momo.

“What about adding new magic types?”

“That’s easy, just submit an approval form, Head of Engineering reviews it, so Uncle Mike. If he approves, we move forward.”

“Okay here is my plan. We change the terminator sentinel value to be non-null just for magic types. That will be down in the low level stuff, and will force the need to recompile the Libs. We’re going to have to do that anyway after fixing all the “does he have magic” tests. At the next level up we add a definition for Null and Void magic types. In practice null will just be a generic magic type that can choose whatever spells from other schools, because of the null terminator fix. Void, maybe outer space and vacuum? Black Holes? Something like that.”

Momo points out a problem with my plan. “Process says we have to add specific and unique spells when we add a new magic type, so we’ll have to add a couple of those at least to pass review. Plus it needs to pass someone from the design group.”

“Am I still listed in the design group? I used to be the head, so far it looks like they just turned my account back on with all my old permissions.”

“Yes, you are still down as Head Emeritus of the design group, what about the fact that the elements of magic have the null value set up in the principle rank. We don’t even have a principle rank.”

I laughed again “Actually we do, it’s been in since the beginning, originally it was for the magic of the gods. A couple gods got killed by demigods who ranked up to principal. After that they moved the powers of the gods to its own separate subsystem to prevent “rapid unscheduled demotions”. Man were the early gods pissed off about that. There is nothing that will unite a power structure like protecting themselves. There was even a god of the Void for a while, got eaten by someone, can’t remember. We’ll, just have to activate the principle tier again. Can you bang up the paperwork for the terminators, let’s change them to -1, to activate Principal again, and create the new magic type Null paired with preexisting Void. Magic types are always better off in balanced pairs like that. Like Yin to Yang. Then we’ll go over the requests together to massage it to pass the bureaucracy.

Momo picked up where I left off, “Then we just need to add some null only spells to the lists, check to see if we need to copy the old Void stuff back over. After we change the type list, pretty much every magic ability on the books will have null in its access list. In essence Null, will be the Custom magic type. It’s strength, total customization will be its weakness because of its lack of built in synergistic powersets. Its weakness can be offset by clever choices, so a hack mage will be nerfed, but really clever one will be slightly OP. Honestly, it’s kind of elegant.”

I agreed with her, ”The best solutions usually are, but sometimes an ugly hack is the only way and you’ll just have to lump it. We’re following procedures and both the written and unwritten design guidelines. I think we are reasonably bulletproof. Let’s do this, and then run both the automated tests and the simulators to see if we screwed anything up. After that when Joe gets his new tome, he will not be bugged anymore and his magic system can activate normally.

Momo and I settled down to work and into our deep coding fuge state, flow. Momo is a total natural, just like her mother. That kid is going to go far.