Note: I know less about fighting than I do about guns, and much less about either than I do about computers.

Lots of technobable; most of it is technically accurate. I am indeed on Freenode from time to time, if you can find me. :)

The 14th chapter upload (the one where John finds Elizabeth in the container) was eaten several times. If you didn't get the full version (Elizabeth goes back to her apartment) then go re-read it from about halfway down. It adds a lot to the story.

Edit: Fixed a few problems with the IRC names. Please reload if you don't see the angle brackets around Corvus and elev.

I am really quite sick of the way that this site removes anything that looks like a URL or IP address. Hello. 10. 0. 0. 0/8 is a reserved private IP address range. Go check your RFCs. /rant

#####

One Year, Seven Months Prior

It was cold outside. The news anchors had promised everybody rain; what we got was a moody overcast sky that couldn't make up its mind if it wanted to cry or not. It had sputtered moisture in little fits off and on throughout the morning, dampening the layer of fallen autumn leaves that the landscapers hadn't raked up from the grass yet.

My bedroom was a little island of warmth and happiness. I had most of the computers running, and even with their relatively light workload they managed to raise the temperature of the room by several degrees. Hadn't even needed to switch on the furnace this morning; the room was cozy enough for me to program in my knickers. Sure, the rest of the apartment was on the cold side, but that's what the bathrobe and house slippers were for.

I was warm, I had cookies, I had tea—life was good.

There were main windows up on my monitors: the left screen had my programming tools and the right screen displayed my chat client, which was connected to the Freenode IRC network. I occasionally idled in a few of my favorite channels—##networking and ##security for starters, as well as #opensuse and ##encryption. Some of the channel regulars had an encyclopedic knowledge of even the most esoteric computing topics, and if I was stuck on a project, they could often point me in the right direction. Occasionally, a newcomer would enter a channel and ask a question that I could answer, or more rarely, a user would join and start trolling for trouble. If they did it at the right time—just after the chan ops in the US had detached for the night but before the ops in Europe woke up, leaving no one to kickban the troublemakers—they often got a flame war going.

And those were so entertaining.

But alas, the channels were unusually quiet this morning, so I concentrated on my current project—implementing my cryptographic hash function into a forked version of OpenVPN. It was going well. I had already inserted most of my source code last night; now all I had to do was tell the compiler and linker to include the new files when building the project. After that, I could test the changes. I already had two computers set aside on an isolated network to use as guinea pigs. An old monitor and keyboard, both connected to the nearer of the two computers, sat atop a wobbly TV tray to my right.

I configured the compiler to include my new source files, then ran a test compile. It returned an error. I crossed my ankles and leaned forward to squint at the output. Found the error. Fixed a typo. Recompiled the project. This time, it succeeded.

Hah! I thought, wiggling my feet. Take that.

Even better, OpenVPN obediently showed the new hash function when I told it to list all the ciphers and hashes it knew about. Now all I had to do was build the software for the test machines and transfer it over with a few bare-bones configuration files...

An icon began to flash on my chat client—I had a new private message. Excited, I opened the query window. There weren't many who chatted one-on-one with me, and if it was who I thought it was...

Yes! It's him!

«Corvus» Good morning, m'dear.

Smiling, I typed in a message, pressed enter.

« elev» And hello to you too! What are you doing this morning?

« Corvus» Oh, the usual. Programming. Saving the world. Curing cancer. Furthering humankind.

« Corvus» How goes your VPN project? You seemed quite optimistic about your progress last night...

« elev» I just finished a debug compile. The ciphers are in. Gonna transfer it over to the test boxes now.

I used rsync to copy the entire source tree over to a flash drive, plugged it in to one of the computers. Spun the chair ninety degrees to face the temporary keyboard, logged in to the computer as root, mounted the flash drive, copied the files to the hard drive, and then used the isolated network to copy them to the other computer as well. I set up the configuration files. Adjusted the firewalls. Started a network sniffer on each end. As I worked, I kept an eye on the chat window.

« Corvus» Don't forget to specify your new hash function in the configuration files.

« elev» I won't. I wasn't born yesterday, you know. :)

« Corvus» It would be quite amazing if you had been. You would be a very skilled young baby.

I chuckled, typed a response.

« elev» Are you suggesting that I'm not amazing the way I am? *huffs* :|

« Corvus» Of course not, m'dear. I wouldn't dream of it!

Grinning, I typed in a few last commands.

« elev» It's ready. I've made my ritual sacrifices of cookies and tea to the computer goddess for mercy. Fingers crossed?

« Corvus» Of course.

« elev» Here goes.

I started the daemon on one computer and was relieved to see that it didn't crash. It opened a network tunnel device and waited for a connection.

Logging in remotely to the other computer, I started its daemon as well. Crossed my fingers. Toes too. Nothing crashed.

« elev» So far, so good. Got IP addresses on each endpoint, so the control stream is working at least. Let's try pinging it...

On one of the computers, I typed in a simple command: ping 10. 0. 2. 1

Before I had time to even hold my breath, the results began to appear on the screen.

PING (10. 0. 2. 1) 56(84) bytes of data.

64 bytes from 10. 0. 2. 1 : icmp_seq=1 ttl=64 time=2.12 ms

64 bytes from 10. 0. 2. 1: icmp_seq=2 ttl=64 time=1.99 ms

64 bytes from 10. 0. 2. 1: icmp_seq=3 ttl=64 time=2.17 ms

"Yes!" I shouted, raising my fist in triumph.

« elev» It WORKS!

« Corvus» I had no doubt it would!

« elev» Gonna make a patch right now and upload it to my website.

« Corvus» I look forward to seeing your code. I have sought a stronger hash function in OpenVPN for quite some time.

« elev» Yeah, you and half the userbase. I hope the devs accept the patch.

« Corvus» Oh, I am quite confident that they will. Your GRAY2 hash function has attracted quite a lot of positive attention from the security community. It will be a most welcome addition to OpenVPN, I'm certain.

« elev» You really think so?

Before he could respond, my cell phone rang.

« elev» brb phone

The number on the phone was blocked; an unknown caller. Curious. I didn't exactly get a lot of phone calls, especially not from blocked numbers. Accepting the call, I raised the phone to my ear and said, "Hello?"

"Good morning, Elizabeth." God, I'd have recognized that sultry voice anywhere. Could this day possibly get any better?

"Hey, John," I said.

"I promised you I'd teach you how to defend yourself sometime. Gotham City doesn't need me at the moment. Are you free this afternoon?"

"Uh, yeah. Yeah, I am. Where do you want to meet?"

"There's a nice gym downtown." He gave me an address; I scrawled it down on a legal pad covered in doodles and half-baked ideas.

He said, "Bring loose clothing. You're going to be moving around a lot. We'll be indoors."

"Okay. See you there at noon."

I hung up and returned my attention to the computer.

« elev» Hey, sorry, something just came up...I gotta go for awhile. Chat more another time?

« Corvus» Of course, m'dear. Congratulations on your successful project.

« elev» Thanks! Talk with you later.

« Corvus» A pleasure speaking with you, as always. Be wise, m'dear.

* elev &

-!- elev [elizabeth 12-4-22-251-static. fios. ift. com] has left [Quit: client quit]

#####

I dressed for warmth: short green dress, gray wool sweater, black tights, and flat black Mary Janes. I dug my gym bag out of the back of the closet. Into the bag I threw a pair of navy blue shorts, a sports bra, a tank top, and my running sneakers. I grabbed the umbrella at the last moment, swung the gym bag over my shoulder, and headed out to the car.

Twenty minutes later, I pulled into the gym parking lot, right as the sky decided that it wanted to pour. Unfurling the umbrella—score one for foresight—I made my way into the glass front doors swung shut behind me, cutting out the hiss of the falling rain.

The reception area was sparse, yet inviting. Warm golden light shone from recessed fixtures in the floor and ceiling, splashing against the light wooden wall panels and the indoor garden set off to the side. The entryway floor was brown stone tile—rough, natural. This was a pretty high-end gym; even an exercise-hating geek like me could tell. The faintest scent of sweat and chlorine floated through the air, but it wasn't nearly strong enough to be offensive.

I didn't see anybody around but for the tall man at the curved reception desk. He looked up when I approached, smiled, and said, "Mr. Rooney is waiting for you, Miss Ruben."

Mr. Rooney? I wondered. John? Some sort of fake name?What the hell kind of last name is Rooney? Sounds like a serial killer.

The receptionist led me to an expansive carpeted room. Most of the floor was covered by bright blue karate mats. One entire wall was given up to mirrors. There were several black padded benches along the perimeter of the room and John was sitting on one of them. He was wearing—he was wearing—my God, I hadn't known he even owned any other clothes besides his suits. Today, John Reese was wearing a short-sleeved T-shirt and a pair of shorts, both in black. His feet were bare.

He had really nice arms, I noticed. And legs. And feet. It figured. I would've bet that his entire physique was as muscled and crafted as those arms and legs and feet. I mean, come on, it was John.

The receptionist pointed out the changing rooms and said, "You have the place to yourselves. Please let me know if you need anything." He nodded and walked out of the room.

The corners of John's mouth twitched when I approached. I had a sarcastic remark about "Mr. Rooney" all lined up and loaded in the torpedo tubes, but he got his salvo out first.

"Hey little girl," he said, all innocence. "Want some candy?"

"Only if it's chocolate," I said, setting the gym bag on the floor and sitting next to him. I raised my eyebrows. "'Little girl'?"

"You look kinda like a schoolgirl," he said.

I sputtered. "A schoolgirl?"

"Yeah. It's the clothes. It's an advantage—nobody's going to think you can take them out. They won't think you're a danger. You have the element of the unexpected."

I narrowed my eyes, picked up the gym bag, and said, "Gee. Thanks. I'm going to go change into something suitable for kicking your ass now."

The womens' changing rooms were decorated in the same stone tile as the building entryway. The tiles covered the floor and went halfway up the walls. The sink and shower fixtures were all brass and everything was lit by those recessed light fixtures. I changed into the shorts and tank top and put my feet into the sneakers just long enough to walk out to the carpeted room—Mama had always been funny about bare feet in changing rooms.

John was standing calmly on the mat, about ten feet away from the nearest edge. He looked relaxed, at ease, but the little half-grin was tugging at his mouth. I slipped off the shoes and stepped onto the mat, not sure what to expect.

"Let's get right into it," John said. "I want to know what you know about fighting."

"Not a whole lot," I said. "I'm not really the fighting type, you know?"

"Right." I couldn't tell if he was being sarcastic or not. "It's best if you show me what you don't know. Stand a few feet away from me."

I did.

"Okay," said John. He tilted his head, grinned. "Come at me."

"What?"

"Come on, Ellie." I twitched. First the schoolgirl comment, now with the nickname again? "Kick my ass. I know you want to. I guarantee that you can't hurt me."

"You sure about that? I'll have you know, my Mama had a purple belt in karate."

"Well, Ellie," he said, "show me what you've got." The grin widened. I realized what he was doing—he was getting me all riled up, starting from the moment I'd first walked into the room.

That sneaky bastard, I thought.

Well. If that's what he wanted...

I considered, then I sprang into motion, darting forward as fast as I could. I aimed my fist for his face and my knee for his crotch, but neither met their mark. I wasn't sure exactly what happened. One moment my fist was sailing towards that smirk and the next moment I was staring up at the wood panels on the ceiling while John stood over me. I had no idea how I'd ended up with my back to the mat.

"It must not run in the family," John said.

"Shut up."

"It wasn't too bad," he said, tilting his head. There was approval in his voice. "Naive, predictable. But not bad. You tried fighting dirty right away. You would've stunned an unprepared assailant long enough to slip away, especially dressed like you were before." He held out his hand, helped me up, stood a few feet away. "I was worried you'd be all gentlemanly about this."

"Well, John," I said. "I don't know if you noticed, but I'm a woman, not a gentleman." I ran at him a second time, hoping to introduce my knee to his gonads with the element of surprise, but I found myself studying the ceiling again a moment later.

"Lesson number one," he said, raising his eyebrows. "Many male assailants protect their groin with padding or armor beneath their clothes. You can't count on it as a vulnerable spot." The smile quirked. "But in an emergency, you can always try." He helped me up again and said, "Let's go over what's happening in slow motion..."

#####

An hour and a half later, I had learned two things:

One, all the things I'd thought I'd known about fighting were wrong.

Two, I was so out of shape.

"Your stamina needs work," John said lightly. I was hunched over, my hands on my knees as I panted like mad to catch my breath. "How often do you exercise?"

I couldn't help but snark. "You—saying—I'm—fat?"

"I'll just say you have a well-rounded personality." He shook his head. "No, not fat, but you need to be more active. Your body isn't used to prolonged physical activity."

"Yeah—can see that."

"How often do you exercise?" he asked again.

"Uh—I plead the fifth? "

"Thought so. You need to get out of that desk chair more often, Ellie. Jog around the neighborhood, maybe. Go on hikes. Swim at the local pool. Roller skate in the park. They're all good ways to get moving. Walking to the refrigerator and back for a cookie doesn't count."

I frowned. "How'd you know I do that?"

"I'm observant."

"Uh-huh."

John glanced up at the clock on the wall and said, "I think we should stop here for the day, Ellie."

"Come on," I said. "I can go longer."

"You fell like it now, but you'll regret it later. Trust me."

"Fine," I said, disappointed.

I went back into the changing room to don my "schoolgirl" outfit. (I so was going to knock John's ass to the mat someday for that comment.) A few minutes later, John came out of the mens' room wearing his usual suit. He held a large black umbrella in one hand. Together, we made our way to the gym entryway. Beyond the glass doors, the rain came down in waves of foggy gray.

"Same time next week?" John said. "If the Joker doesn't poison the water supply or anything, of course."

"Sure," I said. "I'd love it."

He waved good-bye to the attendant at the desk and we headed outside. He opened his umbrella as we passed through the doors and raised it over our heads.

"I'll walk you to your car," he said. "Wouldn't want your hair to curl."

"Shut up," I said, laughing.

When we reached the car, we exchanged goodbyes. John waited until I was safely inside before he ambled off through the parking lot. I watched him walk between two cars and then he was gone. Like a ninja.

Sighing, I started the engine and drove home. I was going to be sore tonight, I could tell already...

#####