Saturday, January 5, 2019

Blindspot

Samantha caught herself just before the lump in her throat became obvious.

Her fingers trembled, poised over the enter key.

Time seemed to freeze.

It wasn't until her vision began to narrow that she realized she'd been holding her breath the entire time.

Gradually, she tried to let the air trapped in her lungs pass through her lips. She thought she did a pretty good job but, the harder she tried to hold her breath, the harder her lungs fought to breathe of their own accord.

"I take it you've got something," said Eddie.

Samantha's eyes darted in his direction but the rest of her body remained motionless.

He was hunched over his laptop, head cocked slightly to the right. The glow of his computer screen against his face was just barely visible in the dimly-lit room. Eddie continued to type intently. Had he said nothing, there would be no indication he'd seen something.

"Whatever it is, I'm going to find it, eventually," prodded Eddie. He patted a little black box sitting next to his laptop. "If you think you're hiding anything from me, you're wrong. So you might as well just tell me."

Fred cleared his throat and it sounded like he shifted in his seat a few times.

Samantha remained frozen. Eyes transfixed on the man she hadn't thought she'd known in the first place but whose motivations were suddenly called in to question by her revelation.

She tried to speak but her mouth and throat were so dry that her tongue felt like it was welded to the roof of her mouth.

She took a deep breath and drank a full glass of water in a single go.

Her nervousness had failed to garner any additional attention from Eddie and that only seemed to throw Samantha deeper into her self-imposed deadlock.

Finally, she parted suddenly-cracking lips and asked, "Do you," her chin trembled and she bit her lip for control. She took another deep breath and started again. "D- Do you have a...uh...a house?"

"Hmm?" asked Eddie.

"A house...apartment...condo...a shack in the woods. Someplace you stay when you aren't doing," Samantha gestured around the room at all the equipment she didn't recognize, "this?"

Eddie glanced up from his screen for a moment and seemed to consider.

"I have a mailing address, but I'm always going from one assignment to the next. Why?"

"Do you have a...uh...a base you go to, regularly?"

"What? You want to talk to my manager?"

"Yes."

Eddie chuckled, then looked up from his screen for a moment. His nostrils flared and he didn't blink. "Well," he said thoughtfully, "I guess the closest thing I have to that, for a civilian, would be the Airforce base in La Jolla, California. Call the main line and lodge a complaint."

"Is that where your mailing address is?"

Eddie sneered. "La Jolla?" He full-on laughed. "Nobody does this for the money. I can't afford to live there and I wouldn't want to live there if I could."

"I want to send you something without the base knowing. Do I send it to your Langley address?"

Eddie shook his head and chuckled. "Lady, I don't know what game you think you're playing but I'm tired of it. If you want to send me something at my mailing address, I'd have to fly to Reno and drive for six hours to pick it up...whoever you don't want to know whatever you don't want them to know is probably going to notice that. Last chance, Samantha. Tell me what it is you've got."

An enormous sigh of relief escaped Samantha's lips. She felt like collapsing into the back of her chair as every tensed muscle simultaneously relaxed. "Okay," she said, "I'll tell you."

Samantha took another deep breath and added, "It's the receipts."

"First off," interrupted Eddie. "How do you know whatever it is you think you know?" He gestured at Fred and himself with his left hand and added: "We need to reproduce your findings to confirm."

"I started by analyzing short, long, and medium-length trends over the last ten years," said Samantha. "As expected, there was nothing I could find with any of our existing algorithms. The signal seemed to be just regular signal everywhere I looked. Normal shopping. Normal browsing. Normal everything.

"Like I said, though. That was expected. I figured the signal wouldn't matter. So then, I started subtracting the trends out of the aggregates, leaving me with a map of the noise and I started analyzing that, too."

"How?" asked Eddie. Fred smiled as if he knew the response.

"There are some new AI-assisted signal-processing algorithms that specialize in finding patterns in apparent noise. They can do things like highlight the outline of shapes in photographs that were taken in what we would think of as complete darkness. They hadn't helped me when I was analyzing the raw data but that's because the signal was 'too bright'...it was hiding the real answers."

"So you checked the noise?" asked Eddie. "...and that showed the pattern?"

"Kind of. It showed me how the pattern was shaped so that I could train a custom algorithm to pick it out of raw data, despite any stronger patterns."

"What did you find?"

Picking up her rhythm, Samantha answered with "Like I said, it's in the receipts."

"What does that mean?" asked Fred.

"The purchases executed through our storefront-as-a-service offering," replied Samantha. "They mean something."

Eddie was still not looking away from his screen but he nodded gently and persistently to communicate that he was listening. "What do they mean?" he prodded, as gently as his relatively crusty exterior would permit.

Samantha cleared her throat and leaned forward, resting her elbows on the edge of the conference table. "There are about two-hundred people," she said, "who always buy either zero or one of the same seventeen items on an alarmingly-rhythmic schedule."

Eddie stopped typing.

"Typically, four of them daily," she added.

Very slowly, Eddie lifted his face and turned it in Samantha's direction. His never-ending poker face remained but the sloth-like fashion in which he moved hinted at how much energy he was spending on processing what he had just heard and, perhaps, reprocessing what he had heard a few minutes
earlier.

Samantha pressed onward. "Each of the seventeen items is something innocuous and easily justified as a regular purchase, usually artisanal consumables from a mom-and-pop boutique. Following a very-complicated scrambling pattern, each shipping address gets four items a day and each of those four items seems to represent a bit."

Eddie and Fred were transfixed. Eddie had even dropped his poker face. His jaw hung slack. Samantha wondered if he knew what was coming.

"All of this seems to be about moving about one-hundred bytes a day in an incredibly-obfuscated way," said Samantha. "It took a while to crack this - which I had to do to make sure I wasn't crazy - but, after I did, I was able to decode some messages."

"What do they say?" asked Eddie.

"I don't know."

Eddie began to protest with "But -" and was immediately cut off by Samantha.

"I don't know," she emphasized the word "know," then continued with "because I can't read Mandarin Chinese and it just translates to gibberish."

Eddie had dropped all tough-guy pretense. His hand was covering his mouth. "Please, don't tell me," he murmured.

Eddie losing his cool terrified Samantha. That lump started creeping up her throat and she swallowed hard to suppress it. "I plotted a map of the mailing addresses. They're all in the D.C. area."

Fred's face went ghost-white.

Samantha's hands trembled as she pulled the HDMI cable toward her computer. Her eyes were tearing up and the room felt like it was about fifty degrees.

She was practically numb. What she was about to say next terrified her. It scared her so much that she didn't even want to think about it, let alone say it.

She put a map up on the projection.

"Langley. Most of them are in the Langley area."

Friday, January 4, 2019

Cleaning Up Unity gestures library for escape tiles

Today, I cleaned up my little Unity gestures library.

I had already factored the system to recognize the State pattern implicit in the problem but I had left a little bit of the logic tangled together and driven by quasi-implicit state codes.

What I did on my ride back from my current client, today was get rid of the rest of the snarled, procedural logic.

Thursday, January 3, 2019

Sometimes I like to leave a note for myself in the form of a failing test. I would never check it in that way...unless I'm the only one working on the code. I mean at all, not just at the moment.

Tuesday, January 1, 2019

Interesting Trick I'm Trying

I saw a tweet titled something like "TDD as if you mean it". I'm sorry to whoever posted it. I can't find the link, now. The gist was that you start with only your tests and extrude a design from passing tests.

I'm experimenting with it and it's kind of interesting.

I think it might seem even less comfortable for someone who hasn't made the TDD mindset shift than "regular" TDD.

I'm digging it, though.

Monday, December 31, 2018

Refactoring to Transfer Functionality Between two MonoBehaviour Implementations

This was a lot of fun. I had one MonoBehaviour class that was hosting behavior which rightly belonged to another. I transferred the method containing the behavior, wrote down the parameters as writes to public fields, and inlined the bit that did the writes to the public fields, leaving the functionality on the other MonoBehaviour class. Then, I configured all the properties on my prefab in the editor.

Once I did that (correctly, it took me two tries), I was able to delete the fields from the old MonoBehaviour class, signifying that I had completely and correctly transferred the behavior.

It was fun.