Sparx: Troubleshooting A Design Flaw
Tim was staring intently at his computer console when Greg's sheepish grin appeared in the open entrance of his gray, 8x8 cubicle. He shot a quick glance at his rumpled colleague while he deftly moved his computer mouse across the screen. "Four-thirty on a Friday, Greg? This can't be good."
Greg took a tentative step forward. "Yeah, sorry Tim; I, uh, I'm afraid there's an issue with tier 3." Greg was a decent enough engineer, but Tim found his inability to come to the point when he had bad news a little irritating.
"What's up?" he asked cheerfully as he minimized the Solitaire game on his desktop.
"Well, a tech entered a ticket against the Nicole launch--and let me say that's the only reason I'd ask you to look at this on a Friday night. I mean, if it weren't Donnelly running the field test--" By this time Greg sensed the impatience in Tim's face. "Well anyway, a tech logged a glitch in the CFT, and the review by the support tiers seem to agree that it's a real software issue. The tech collected a trace file, they ran it through the simulator and got a G56 trouble code."
Tim perked up; G56 was an uncommon trouble code by itself, but the fact it wasn't found until CFT--Closed Field Trials--made the problem even more exotic. "Really? Anybody talk to the tech?"
"Yeah, I took a report from him over the phone, confirmed the timeline and the main points." Greg spoke more comfortably as he discussed the technical details. "I can't completely rule out hardware, mainly because I couldn't get the same failure in our lab, but there are a couple of lines in the trace that point to a race condition between the DLH and the OS. Still, I can't believe--"
"--we wouldn't have caught that by now." Tim finished Greg's sentence as he stood up and strode toward a large document pinned to the spongy gray wall of the cubicle partition. This diagram--a myriad of small, labeled squares interconnected by a spaghetti mix of angular lines--showed the top-level software design for the Nicole project, which Tim had been working on constantly for the past 18 months. He paused for a moment as he studied the drawing links, then quickly turned toward Greg. "So, what can I do to help?"
"Well, Donnelly's looking for an answer, and I, uh; Jeez, I got this thing with Mary tonight, and I just can't, you know..."
Tim quickly surmised the problem. "Please, Greg--nudge, nudge, say no more." Monty Python was something of an international language among nerds, at least in this office. "Send me what you've got; I can stay and write up the analysis. It looks like a real issue, and yeah, G56 is a bit of an odd one to see now."
Greg let out a sigh of relief. "Cool; I was going to try the trace in the clean lab downstairs, so I can loan you a pass if you need it."
"Good idea. Go on and email the stuff to me; you don't want to keep Mary waiting."
Now Greg's smile seemed genuine, and he unconsciously straightened his tie as he slipped away from Tim's cube. "Thanks Tim; I owe you one."
Tim scanned the data Greg had collected through the afternoon from the interview and the trace simulation. The Nicole project wasn't the first android launch Tim had worked on for Sparx, but this was easily one of the most challenging. In an effort to reduce costs, Nicole was built on a redesigned series 6 baseline to take advantage of new and cheaper technology--cheap in relative terms, since even a cost-reduced droid like Nicole shipped at over a half-million dollars.
The main cost-reduction came from hardware's choice to combine several of the parallel processors housed in the android's upper abdomen into a single silicon chip. This entailed a partial redesign of the series 6 software that, once understood, was fairly routine. The problem was making sure all of the required changes were accounted for; test after test generated new code bases on a weekly basis, a long and tedious rewrite that left the project three months behind schedule. Still, it could be worse. To make the new silicon work, higher heat dissipation inside the robot was required--the standard heat sinks didn't cut it in the prototype phase. The team eventually had to take their case to Aesthetics and request a larger chassis, making the Nicole model a little more voluptuous than the standard tall, thin supermodel usually found in Sparx clubs.
Eventually Tim's team worked out the transitional kinks, but the new design prompted Sparx management to test the new Nicoles in closed field trials before full-scale deployment. They settled on three locations in the Dallas-Ft. Worth area, all owned by shady Texas oilman Richard Donnelly, who despite his many alleged business interests always seemed available to chew out Sparx management over the slightest problem at one of his clubs.
After about an hour fiddling with the data, Tim knew he was getting nowhere. He undocked his laptop, pocketed his blackberry and the hardpass Greg had loaned him, and made for the stairwell down to the clean labs. One of the labs housed a duplicate Nicole unit, running on permanent validation as a pro-active check in advance of any field problems. Tim figured he could interrupt the automated validation and run the trace files on the live unit, perhaps sparking an idea or two.
From the stairwell, a long white corridor trimmed with navy blue molding strung together a series of cerulean doors, each marked with a flat embossed sign, a small whiteboard, and a black slotted card reader. Nicole's lab was two doors down on the right, where the flat sign was etched with a simple "NICOLE 2-J12", the whiteboard a scribble related to the testing inside. Tim fumbled with his laptop, scrabbled the hardpass from his pocket and zipped it through the card reader. The familiar click of the door latch allowed him to crank the polished nickel handle, yank the door open into the corridor and step into the room as the door swung slowly closed behind him.
The clean lab was an ideal environment for pure software testing; "clean" was a deliberate choice of terms, as disassembly was discouraged here (the hardware labs and the software test bays upstairs were meant for more detailed analysis). A large metal desk supported only a single bare terminal with attached keyboard and mouse; any papers or trash left by previous users were cleared twice daily to keep the lab in a pure, unblemished state. The room extended about 30 feet out from the door, and was filled with a variety of props used for the android tests.
Nicole, of course, was up and running in the room, straddled atop a rubberized, headless mannequin, furiously polishing its stiff molded member with her synthetic vagina. Her acrylic, dirty-blond hair streaked with highlights bounced on her shoulders while her mouth moaned in faux-ecstasy. This was part of the continuous battery of tests this Nicole would run each day, all controlled from a central server accessed via the terminal. The test scripts were downloaded to Nicole over a wireless link (the walls had been fitted with steel mesh to prevent unauthorized access), and Nicole mindlessly performed the functions they requested, sending a steady stream of data back to the wireless hub for analysis and archiving. The pre-programmed suite ranged from simple tests of motor skills (stacking a set of colored blocks) to the full-on sexual routines that would keep her future clientele happy, right up to the day she was unceremoniously scrapped and replaced by a new and improved model.
Tim laid his laptop on the shiny metal desk and tapped a few keys on the terminal. On cue Nicole stopped her up-and-down motion and stared blankly at the wall in front of her. Tim then turned to the camera in the upper corner of the room, shut down the streaming video feed and tapped the screen of his Blackberry, spinning through the list of pass codes. "Nicole, accept supervisor code N-1554-265."
"Acknowledged," Nicole answered, still perched atop the black rubber torso she had been fucking just a few seconds prior.
"Please stand at position alpha," said Tim, referring to a small black square of tile embedded in the center of the floor. Nicole sidled off the mannequin, brought her bare feet to the cold waxed laminate and in a few short, lurid steps stood in position on the marked tile. The 5'8" Nicole was best described as a corn-fed mid-western coed on spring break. Her dark, over-tanned skin matched her chestnut eyes, and her C-size breasts, barely hidden by an abbreviated white T-shirt, were rounded and plumping like those of a college girl just exploring her tolerance for Coronas. Aesthetics had done a nice job adapting to the larger chassis requirements; the challenge of the problem seemed to have inspired a uniquely beautiful solution.
Tim flipped open the display page of his laptop and connected via wireless to the server. After accepting his login, the server routed his data link directly to the robot; a quick ping message--Nicole's breathy "Ping received from terminal 235" confirmed the connection--and Tim was ready to download the traces. These were the full server records from the Nicole unit that has malfunctioned in the Sparx club, an electronic copy of every bit passing through her cortical matrix when the G56 trouble code was set. These were normally analyzed using a cormat simulator, the computer program that meticulously parsed these enormous android data logs looking for anomalies. But running the logs on an actual Cormat--the one housed in the Nicole unit's skull--often caught problems never considered by the simulation designers.
"Download complete," said Nicole. Tim paged through the logs on his laptop, looking for a breakpoint to start the simulation.
"Nicole, set start pointer to trace counter..." he ran his finger down the face of the screen, then tapped at a spot and turned to face Nicole. "83350. Execute."
Nicole immediately fell to her knees and reached forward with her right hand, closing her thumb against her curved fingers and moving it rhythmically up and down over empty space. Her left hand rubbed against the tip of her breast while her face beamed upward in a smile. "Oh, sweetie, you know what my mouth needs," she cooed as she bent her neck and brought her mouth slowly toward her closed right hand. She moistened her lips and parted them slowly, her eyes still gazing upward through her tangled bangs.
Then suddenly, she bolted upright on her knees. "Oh sweet--sw-sweetie." she stammered, her voice slightly clipped with each word, eyes wide in a glassy stare. This was the G56 code Greg had mentioned, a low-level software failure that caused the unit to perform a soft reset and re-establish its spatial and process parameters before restarting the personality threads.
"Pause trace," said Tim, and Nicole remained frozen perfectly in position. Tim mentally reviewed the various low-level threads running on Nicole's cormat in the moments before the G56 code. He reviewed the expected sexual routines that were hogging processor time, but these ran at higher layers in the architecture and by themselves wouldn't explain the G56. And a problem with the sexual routine would most likely have shown up on the simulator (not to mention the other Nicole units running in Donnelly's clubs). In Tim's opinion some interaction between rarely used threads was the likely culprit, but which ones?
"Nicole, set start pointer to trace counter 83620." Nicole moved to the position she was in moments before the error occurred. "Step at 10% rate." Nicole moved slowly forward, again parting her lips as she gazed up through her hair, eyes flicking imperceptibly. Tim leaned forward on the stool. Resting his elbows on his thighs, he held a fist in his right hand and rested his chin on his fingers, staring intently at the android’s face.
"Nicole, hold." he said as he nodded his head upward. He swiveled on his chair and like a virtuoso tapped the perfect sequence of keys to pull up a critical section of the trace on his laptop screen. As the pages flashed across the screen, illuminating his five-o-clock shadowed chin, a small grin evolved.
"Gotcha," he said to no one. He deleted the trace from the paralyzed Nicole and set about restarting her main AI routine. Nicole's head tipped forward as she remained on her knees, eyelids closed as the reset filled her random-access memory circuits with the default personality routines. Tim followed the inklings of an idea into the trace, looking for further confirmation of his suspicions. His theory: Nicole was looking up at the client through her synthetic bangs, a distraction that caused the visual processing routine to hog more of the CPU resources--the subtle eye-flicks were a telltale sign. Tim knew the vision code was stored near some of her sexual programs, and so the likely culprit was an unexpected interaction between the two that threw the processors into reset.
A good working theory--one that fit all the observations made in the thirty or so minutes Tim had spent in the lab--but one that would require hours spent with the available data to prove. At this point in the project, even the tiniest bug required a full staff review, documented explanations, a re-verification process--in short, an inevitable mountain of paperwork, starting with a full analysis of a trace that promised to keep Tim at his desk for the rest of the useable evening.
Tim let out a sigh at the thought as he peered over the text, mindlessly tapping the page-down key, when he felt a hand on his shoulder. "Hey, handsome," said Nicole, a statement Tim recognized as generic greeting A7. Nicole was still disconnected from the validation script, so she was running the default seduction routine; to her, Tim was just another customer she was required to satisfy. "Something I can do for you," she purred. Both her hands were now cradled around Tim's shoulders, her thumbs delicately kneading his trapezii muscles. Tim closed his eyes for the briefest of moments; another weekend night in the lab, locked in a room with the sexy robot he helped build. It was moments like this that made his job just that little bit more tolerable.
"Yes," he said. "Why don't you pull off that top and have a seat?" he ordered. Nicole's customer analysis subroutine--programming Tim himself rewrote for her new processors--would quickly read a high dominance factor for the tone of the client's statement and activate a more submissive personality configuration. Nicole pulled the thin T-shirt over her tangled hair, tossed it across the room, and then bent her legs to sit sidesaddle on Tim's lap. Her tawny arms wrapped lightly around Tim's neck and a playful smile lit up her otherwise pouty lips.
Tim raised his left hand to her breast and began to fondle Nicole's nipple, then slyly moved the mouse attached to the terminal with his right. "So, what have you got in mind?" teased Nicole; at the end of the pre-programmed prompt, Tim clicked his mouse. "mind?...mind?...mind?" repeated Nicole. As expected, Tim's reactivation of the wireless interface was interfering with Nicole's autonomous processes. He always found this behavior fascinating, that this machine trying so hard to mimic human behavior was always under his control, her artificiality exposed with a simple command, a sight simultaneously amusing and erotic.
Tim swiveled his chair to get a better look at the keyboard and screen. A few keystrokes allowed him to open a test-programming tool stored on the terminal, and a small window rushed to fill the screen. A confusing grid of drawn buttons and gauges appeared, while the top of the screen flashed the title "NICOLE 4.5 SEXUAL RESPONSE TESTING". He positioned the cursor over a button that read "Stimulate" and asked the robot wriggling on his lap, "DO you see the keyboard?"
Nicole broke her programmed stare at Tim's face to obey his command, turned toward the screen and then glanced down at the small keypad. "Sure, big guy; what have you got in mind?"
"Press the space bar," he said with an impish smile. Nicole took her hand from Tim's neck to tap the long horizontal key at the bottom of the keyboard. The "stimulate" button glowed a momentary yellow, and Nicole's body immediately shuddered. Her head jerked upward, mouth snapped shut and eyes rolled closed. A low nasal hum punctuated the action, and a release of air from her lung bladder simulated a sigh of pleasure. Her head then turned to an upright position as her eyes reopened.
"Mmmm, that was nice," she purred. Tim ignored her as he repositioned the cursor on a virtual dial labeled "Orgasm %".
"Good," he laughed, "Prime one command: Continue pressing the space bar; tap at two-second intervals until directed to stop."
"Whatever you say, hot stuff," she answered. Her left hand positioned itself so that her index finger hovered precisely two centimeters over the top of the spacebar and Nicole bent her wrist to tap the key. The screen dial began to count upwards, and Nicole's breathing began to accelerate. Her left hand remained fixed over the keyboard, tapping as commanded every two seconds, but this belied the fever that was building in the rest of Nicole's manufactured body. She began to writhe seductively in Tim's lap, rolling her head from shoulder to shoulder as her free hand moved toward her spreading crotch.
Tim was, to say the least, fascinated by the action. The primary SW module controlling Nicole's response to customer directives had full direction over the left hand, forbidding any movement that would cause her to miss a scheduled 2-second tap of the spacebar. Meanwhile, the feedback from this steady increase in her orgasmic threads was wreaking havoc with the rest of her body, forcing her to convulse, rub her hand across her lovely naked torso, and grind into Tim's lap, but only to the limit that allowed her to continue pressing that button. Tim had been curious to see the point at which the faux pleasure induced in Nicole's circuits would override the prime-one command artificially increasing her orgasm level.
"Oh my god...no one...has ever..." moaned Nicole. A hurricane of sexual data was coursing through her Cormat, and at the eye of that hurricane laid the single prime-one command that required her to augment the flood. Nicole's head began snapping violently back and forth, her legs kicking in uncontrollable spasm, her hand flying faster and faster between her breasts and vagina. Tim leaned back in his chair to avoid her flailing limbs, but he couldn't find the slightest whim to move away from the overloaded android. The engineer in Tim considered this nothing more than an experiment to measuring product tolerance under certain conditions, a stress test on the limits for both hardware and software design. But another part of him couldn't ignore the sexual power of Nicole's robotic performance, a seamy fascination that, he knew, kept Sparx in business.
Soon Nicole began to bounce uncontrollably in Tim's lap "Oh god oh god ohgodohgodohgodohgod" she blathered as she fell backwards off Tim's legs, her right forearm cocked at a right angle, wrist pumping at empty air. Her waist swirled rhythmically in such a wide turn that the small of her back would regularly pop upward, causing the back of her head to bang against the linoleum floor. Tim noted the level of the orgasm meter at 89%, then dialed the percentage quickly down to zero. Nicole quickly fell limp on the floor, her sideways head and closed eyes covered by her tangled brown hair.
Within a few seconds, her eyes bolted open and Nicole quickly sat up, brought her knees toward her torso and opening them to sit cross-legged on the floor. Her smiling face lit upon Tim again. "Hey, handsome. Something I can do for you?"
Tim turned to the terminal and clicked the "Deactivate" button. Nicole's vain smile dissolved as her breathing stopped and limbs remained fixed. Her eyes continued to look at the space above Tim's stool as he stood up to adjust his crotch.
Within ten minutes, Tim had the validation script up and running again. Nicole was busy pouring water from one pitcher to another as he left the clean lab. There would be at least another hour at his desk running through the data, but at least he had a pleasant memory to keep him company on a lonely Friday night...