The Eternal Last Day of the Text Editor

She walked into my office with a big backpack on her back, and said she came straight from the airport.

“I never thought you would run a cram school.”

I stood up to greet her and shake hands. I hadn’t seen her for over twenty years. She noticed what I was writing on my external display.

“Sorry, I didn’t mean to…”

“No worries.”

“You are still using the editor I wrote?”

“Just for personal stuff, like my journal.”

“I thought I killed it long ago.”

“I… I run it inside a virtual machine.”

“December 31, 1999?”

“Yes, the eternal December 31, 1999.”

“For keeping a journal?”

“Right. I have been keeping my journal with a program that stays forever on December 31, 1999.”

I would have liked to drive her to the mountains for dinner, but it was late. She suggested we visit a night market to grab something. I asked if she wanted to put her backpack here. She said she got used to going around with it on her back. I gave her a tour of the school building, turned off the lights, and walked to the night market with her.

I told her how I took over the cram school. I had been doing my PhD and just passed the qualifying exam. A call from my family sent me back. When I rushed to the hospital, it was already too late. The cram school business had been going downhill, though parents still had good words for it. A lot of contracts had still been in effect, written or verbal. Then there was a thick book with the school’s finances and parents’ phone numbers in it.

My father shared little with my mother about business. My elder brother and sister believed we would owe people money if we wanted to liquidate it. They made an offer: they would give up all claims to father’s estate if I would take over the school. I terminated my lease abroad and informed the department that my thesis was put on hold.

During that messy grieving period at home, I often stayed at my father’s office until late night. As the birth rate declined, only the biggest cram schools could afford celebrity tutors that taught large classes with over 100 students each. On the other hand, demand for niche after-school care and programs was growing. I put my father's rolodex into a CRM run by a pal of mine at college, and found a group of parents that married late and had children later. I wondered if we could do something for them. The next year, the book of the school ended in black. A few years later, the school obtained a loan and bought out the building from the landowner. I never had a chance to go back to finish my thesis, but my microeconomics was worth something.

“I didn’t exit with a master’s degree.”

“Why?” she asked.

“Having ‘PhD candidate’ in my bio is useful for the business. Plus, any diploma is just a piece of paper. I don’t think I’ll ever find another job again,” I said.

She said she missed those master stock dishes, which you couldn’t find outside of Taiwan. “If I had arrived in the early morning, I would have asked for a breakfast burger with you. Egg on the patty, no less,” she laughed.

I could not avoid taking another look at her while we were in line. Then I noticed her bosom was totally flat. She had always been boyish, and now she looked even more like a college boy with the t-shirt and jeans she was wearing. She caught my look. She said she had been diagnosed with something, and she made a quick decision.

“I felt a void in the beginning. I couldn’t say I liked them when I was younger, but they had been part of my body after all.”

“I see. I’m not sure if it’s appropriate for me to say this, but I like the way you are.”

“It’s alright. I spent six months recovering. Whenever I saw someone at a loss for words, I just told them I did this because my employer offered excellent health insurance, and I took advantage of it while I could, in order to survive. Nine people out of ten would start talking about how messed up the whole insurance thing was.”

“Why didn’t you come back for the procedure?”

“See? I changed the topic.”

“Ah.” I exclaimed, feeling the heat in the back of my ears.

“They are calling our number,” she said.

She created the editor in high school. It began as a plain text editor. My generation started to have access to the internet, and she soon added the ability to edit links without needing to write a line of HTML, much like how other what-you-see-is-what-you-get homepage editors worked.

A semester later, she introduced the ability to let multiple users work on a shared project. The documents in a project could make reference to each other. For example, we once had had a “Computer Society Bulletin” project, and I had created a “Things the President Said” document that in turn had linked to our public relation officer’s “The Infamy that Went Down with the President’s Engagement with the Girls’ High School, October 30”, which in turn had made references to my collection of sophomoric quotes. All participants could see the change history of every document in the project. I didn’t know how she did it, but she had been given an account by an alum who was doing graduate school, and she ran a server on one of the machines at the alum’s lab. So all the edits we made were synchronized to the server.

Another semester later, she made it possible for anyone to run their own server. But now a problem arose: how would I know the documents on Server A and those on Server B had the same edit history and were not tampered with? The editor was designed so that any current version of a document carried a long and unique sequence of numbers that represented it. Every time a change was made, the editor would first turn the edit into a series of numbers, add the digital signature of the person who made the change, append the result to the long number that represented the current version that was to be changed, and then feed the super long number to a math formula to obtain a new sequence of numbers. The derivation required some computing work on the change-maker’s machine, and the derived new sequence of numbers would now represent the newly created version.

“Each version is a unique existence,” she explained the mechanism at our computer society office. “Once the change history gets synchronized to the majority of the servers or with enough local instances, the history becomes notarized at the presence of the witnesses. No one can ever tamper with it.”

“You couldn’t have come up with those ideas. Tell us where you have lifted all this,” commented one senpai who was a year our senior, sitting in the corner.

“I didn’t say I came up with all this. The math and the structures can be found in open source programs all over the internet. You’re free to make use of them.”

“It’s just an editor. Why make it so complicated?” he said.

“I asked myself what it means to witness the existence of something that got written down,” she said. “I saw ideas on mailing lists. They looked promising, and I decided to try them out.”

A few years ago, I got an email from that senpai: “Hey, you still have the source code of that editor by you-know-who?”

My reply: “No. Why?” I didn’t tell him I was still using it.

Senpai: “Just curious… I went over our computer society archive, and we only put executables there?! Since you two were friends, you might have a copy.”

My reply: “Why don’t you just email her?”

Senpai: “I can’t find her contact info.”

I shook my head. True, she disappeared from our lives. But a few years ago I searched again with the id she used in high school, and there were recent results associated with that id. Her email address was right there in the commit logs of the open source software projects she participated in. Anyway, I believed I knew why senpai wanted to email me.

My reply: “It was written almost twenty years ago. Any value still there, even if I had the source code?”

Senpai: “You didn’t know what the editor did is hot these days? I’m doing a funding round. Non-TradFi. Let me know if you found the code. Btw didn’t you study econ abroad? Macro, right? If you want a job let me know. You should join me.”

My reply: “Thank you senpai.”

I also received half a dozen emails from other former members of the society in the course of the next few months. They all asked me if I had a copy of the source code. Some of the emails were blunt. Some circuitous. They mentioned everything, except her.

My reply was the same: I didn’t have the code. As for senpai, he never emailed me again. I heard he had gone to another country and run a company there with a partner, and the company had vanished. I later learned from classmates of mine who worked in finance that the senpai had become a persona non grata among the venture funds, hence his exodus.

“There are so many text editors these days. Why do you keep using it?”

“I like your notion about testimony when you explained your work in the society office… When we read a document, we would think it has always been like that. Especially if it’s a digital document. Once a passage gets overwritten by another, the old text ceases to exist. But editing is a process. What editing means is someone actually says: “On this day of the month of the year, I chose to delete this passage, and I chose to add this passage.” Same for anything newly written, which does not come out in a vacuum, but is based on what has been written before. Just like our own present existence is based on the sum of our past… And I really like what you did, how you put together the change history records, so as to prove that those choices and the paths taken really did exist…”

“Well, no one forbids you from putting your own journal on a blockchain or something.”

“I know that, but how could you be sure that I hadn’t tampered with anything or revised anything during the process of putting up what had been written to a new structure? My journal started in our high school years. Besides, my journal used to make references to what you and many others wrote…”

“And that’s how you ended up being the last and only user of my text editor.”

“I guess so.”

“Even if it stays on December 31, 1999?”

“Even if it has to.”

After finishing our last dish, we decided to take a walk at the night market. She ordered boba tea (“half sugar, no ice”) and said she hadn’t had such a sugary drink for a long time. You can buy boba tea all over the world. “But this one tasted just like how I remember it.”

She told me about her life throughout those years. We hadn’t seen each other for so long, and I had a lot of questions. Right now, though, I just follow along, listening to what she chose to tell me, with the hubbub of the night market in the background.

She didn’t do well in the college entrance exam and got into the engineering school at one private university. At first we emailed each other. Once in a while, she would let me know she was still working on the editor and asked if I wanted to try a new version. In an email I sent her, I said I was still using it, though just for personal stuff that I didn’t share with anyone. In the first few months after we all started college, there were still changes and new documents added to the project shared among a few of us from the computer society. Later, as everyone got on with their own circles, trying out BBS and internet discussion groups, her editor no longer felt magical. Not long after, I had become one of the two or three people that were still using it.

I got an email from her at the beginning of my third year at college. She said she transferred to another public university and now majored in English. “I want to get better at it. Someday I’ll go abroad.” Soon after she emailed me again that she might stop coding. She would make some last changes to the editor, and wanted to make sure that I would install the version when the time came.

I lost contact with her soon after that last version came out. I was not surprised. After graduation, I reported to the compulsory military service. Before I was discharged, I learned she went abroad, but no one knew where she went. A few years later, while I was doing my PhD abroad, I looked her up every now and then. I found little. I tried again a few years ago, and this time her old handle resurfaced in open source software circles.

She told me she changed her romanized name when she applied for her passport. It was not surprising Internet search turned out nothing throughout the years.

“It’s the name my mother’s family used to call me. When it was time to get my passport, I decided to switch over.”

“I thought back then we were only given two or three choices in how you could romanize your name…”

“I first got the English version of my diploma. There, you can put your name however you like. Then I brought it to the Bureau of Consular Affairs to show that I had precedents using that name. That was probably the biggest contribution that piece of paper made to my life.”

She didn’t have good grades in high school, and I could tell it distressed her. Once, in the society’s shared project, she posted an entry in the logbook that she was anxious about the possibility that she had to repeat a year.

At the high school that I went to, the teachers’ opinion was that “knowing computers” and “getting bad grades” are incompatible. At least that's how I sensed it. One day, I was carrying the workbooks of my class to the Teachers’ Office. I was at the entrance when I overheard the lead teacher from the class next to ours, a class of talented students. He told our physics teacher that a few of his students mentioned her editor to him. He learned she had access to the internet by visiting an alum’s research lab at graduate school. He did not, however, believe she could code, since her math grades were so bad. He urged his top students to focus on their own things, like prepping the olympiads. I didn’t remember how our physics teacher reacted. I wanted to leave at once. I asked for permission to go in, put the workbooks on the desk, and walked straight away.

I installed the new version of her editor long after getting her latest email. I noticed this new text in the title screen:

Revenge of a mortal hand.

I was amused. You’ve become a humanities type, I thought.

That was my last year in college. I was busy with the coursework and hadn’t come back to my journal for a while. On December 31, 1999, I went to the mountains with a few pals from the department to see the new year sunrise. The night before, I turned on my computer at my place and wrote down how I felt about the passing of the fin-de-siècle, and then I went to sleep. We stayed in a hut for three nights before I got back. When I opened up the editor again, it was already too late. The last version of her editor only worked until December 31, 1999 at 23:59:59.

By design, every change in the editor was associated with the time the document was saved. It was impossible to spoof it. I wondered when she introduced the expiration date and tried to find the executables of the previous versions. I managed to come by about a dozen of the older versions, but they all expired on the same date. What’s more, earlier versions simply refused to read the documents that I had written of late.

Soon after I discovered this, the last remote change history server also stopped working. I was not too surprised. Even if there had still been remote servers around, I wouldn’t have wanted to let an old version connect to it. Who knows if she had set up something like a kill switch, which would have caused the executable to stop working indefinitely upon connection, among the possibilities I could imagine.

I sat in my room and stared at the phrase “Revenge of a mortal hand” for a long time. Then I remembered I had backed up before going to the mountains.

I made a backup of the backup, and rewound the time on my computer to midnight of December 31, 1999. The editor worked again, but I could only read and not write. That was because each time I wrote something, the editor would create a proof of the last time the change was made. I tried to rewind the time by a bit each time before I wrote something and hit the save command, and that’s when I discovered for the first time that the editor actually created temporary files all along behind the scenes, and the timestamps on those temporary files were part of the certification process for saving any new change…

In that instant, I felt as if I was confronting a wily cat, and I was just a hapless mouse.

I made a few copies of my backup and all the editor executables I could find online—that’s all I had—then I decided to put all this on hold, as I had term papers and finals to deal with.

During the winter break, a society alum who majored in computer science introduced me to a renowned security lab, and I scheduled an appointment with them. Back then the lab was not yet known for network security. Most of the lab worked on computer viruses.

I met with a lead of the lab, who, if we wanted to be generous, was an alum of my high school. He listened to my story, and asked me for a copy of the data and the executables. Then he gestured that I follow him to his office.

“I haven’t got my hands dirty in tracing a program for a long time. What your friend did is interesting…”

I stayed at his office the entire morning. He buried his head among the high-end laptops and flat panels that us college students could only dream of. I crammed some TOEFL practice questions in the corner.

“Lunch?” he proposed.

We went to a buffet cafeteria outside of the campus.

“Where did your friend learn all this?”

I shrugged.

“Locking down a program past December 31, 1999, and weaving a continuous, unspoofable document edit history using cryptographic methods… ever heard of Ralph Merkle or Ivan Damgård?”

I shook my head.

“No matter… what I was trying to say is: your friend’s work would be seen by our lab as a very advanced form of computer virus.”

“It is not a computer virus.”

“I trust you. Your senpai referred you. I trust you because of her referral. How did a high school student come up with something like this?”

“I heard some interesting things you did with viruses when you were in high school…”

“Ah. Ok, so you know the stupid things I did back then. Alright, I’ll be blunt. The program your friend wrote contains lots of labyrinth-like mechanisms. Obfuscation is the technical term. We see them all the time at the lab, and usually it’s just a day or two’s work to figure out the inner workings. What’s annoying is encryption, and some of the obfuscations here are tied to encrypted data. Computer programs are by their nature deterministic—that’s a TOEFL word for you, no?—but encrypted data is hard to figure out. And your friend’s program even turns some of the code into data, which is then encrypted… Cryptography is my least favorite subject. Code that involves encryption defeats any effort to inspect them with a debugger. Simply speaking, you don’t know what something does until you’ve run it through the cryptographic primitives, which by their nature are irreducible… Yikes, why am I talking to you about that.”

“I’ve heard the word irreducibility,” I said.

“Here’s the thing: if what’s locked up in your hard drive is worth a few million bucks, our lab director may be able to allocate some resources for cracking them… How important is your data?”

“Huh…. Out of this world, I believe I’m the last user of the program.”


“It seems the only thing I can do is to make a copy of my backup and turn back time if I want to read what I wrote before, but this precludes me from writing anything new.”

“Do you care about timestamps being accurate?”

“Not really. But I thought her design enforces that time only moves forward?”

“That’s true. Just that, when I was tracing the program earlier, I discovered that your friend’s program relied on a very recent operating system API to query time…”

“I don’t understand.”

“Let’s put it this way. I found that your friend’s program uses a time resolution of one ten thousandth of a second.”

“Which means…?”

“We just need to make time go slower.”

“I don’t think I could easily add a few ten thousandths of a second every time I write or edit something. And doesn’t the editor also create its own temporary files behind the scenes?”

“I didn’t ask you to set time yourself. Just run the program inside a virtual machine.”

“You meant, like those Nintendo emulators…”

“You’re on the right track. PCs these days are thousands of times faster than game consoles back then. You need to slow the clock to maintain the pace of the original games. Inside a virtual machine that is by its nature deterministic, we have the sole discretion about how fast time moves. Some kind of artificial time dilation, okay? Let me set up a box for you. You drop the program in. When a second passes in your host machine, only one ten thousandth of a second passes in the virtual machine.”

“And then I will drop in the backup I made in the late evening of December 30, 1999. This way, the one day that is December 31, 1999 will take ten thousand days to pass…”

“You got it.”

“Let me see. This buys me about twenty-seven years of time.”

“Should be enough.”

“What do I do after twenty-seven years?”

“You sure you will still care about all this when the time comes?”

“I don’t know.”

I told her I didn’t have the courage to think about time inside the virtual machine running out. I just wanted to keep on writing, until the program no longer allowed me to do so.

“That’s impressive. That you had the help from the lab lead. You always found the right help,” she said.

“I was lucky. Plus, I didn’t know how things really worked. So I could only seek help.”

“That you knew when to seek help and you found it, that’s already something.”

“Sometimes I wondered, since computers these days are even faster now, if I visited their lab again, they could probably crack the code.”

“But after these many years, the question they would ask you would no longer just be about the value of the stuff in your hard drive.”

“That’s true. And then, their time was expensive. So many years have passed. It could only be more expensive.”

She said she switched to majoring in English and vanished because she couldn’t bear keeping in touch with us.

“You know, I used to feel ashamed. You all did so well academically, and I was this lousy C-grader that was constantly on the verge of failing. I didn’t know what else I was good at other than working on tha editor.”

“I never saw you that way.”

“I know. But it really took me these many years to accept that none of that matters anymore.”

“What did you do during those years studying English?”

“I kept my head down. I was bad at everything in high school, but I actually enjoyed English after I switched majors, and I picked up two more second languages.”

“That’s amazing.”

“What’s best, people left me alone. You probably could imagine that the English department is not for a nerd like me who writes code. And I was just this lower middle-class kid. Few people asked me out for shopping, nobody invited me to parties, and no one knew what I did before. Those were a few quiet years, and then I went abroad.”

Speaking of parties. I asked her if she still remembered that one time we went to the karaoke.

After the celebration dinner for the computer society’s anniversary, a senpai proposed we rent a private room at a karaoke place. Many places didn’t bother checking ids back then, and some of us drank alcohol. The senpai was already pretty drunk. Out of nowhere, he grumbled: Why is it that someone gets to use the internet at our alum’s lab when the person is a flunker…

We didn’t pay attention. That’s not the first time people talked behind her back. I was not impressed that he did it when she was just right there.

Suddenly, senpai stood up and approached us. He pushed me aside and was about to fling himself at her. She punched him in the face. The only sound that remained in the private room was the karaoke instrumental from the speakers. His gold-rimmed glasses on the ground, his nose bloody.

Two days later, a member from the society and I were summoned to the Military Education Office, which was in effect the disciplinary place. The Head Officer asked us what was going on. “Is it that she punched him first.” “Your senpai’s parents came to demand an explanation.” He stared down at the two of us.

“I don’t know,” said the person.

“Based on what you saw, is it possible that she punched him first?” Asked the Head Officer.

“I… I really don’t know.”

“If you don’t know, would you say that it’s very likely that she acted first?”

“Sir,” I said, “I witnessed the senpai jump on her first.”

“What did you say, say it again?”

“Sir, the senpai was drinking alcohol. He stood up suddenly, pushed me to the side, and jumped on her.”

“Do you know what you are talking about?”

“I stand by my own words, sir.”

“Do you know what questions your senpai’s parents were asking of me?”

“I don’t, but we all know the strings his parents can pull.”

“What strings do you know about?”

Senpai often writes about his family in our shared logbook.”

“Do you realize how serious this whole thing is?”

“I only know the Head Officer summoned us to find out the truth, and I’m telling the truth, sir.”

“You better have enough stuff to back you up.”

“Sir, I’ve written down what happened that day, and we all read it. If you don’t believe me, there’s a complete backup on a server at the lab of an alum of ours.”

“I remember you wrote it down, but I didn’t realize there was more to that,” she said.

“Did they ever talk to you?”

“No. I guess that’s that.”

“After what happened, I never saw senpai write again in the society’s shared projects.”

“He would not want to use my program. I put his digital signature in the editor’s deny list. Other than the mock signatures that I used for testing, he was the only person that had the honor of being on the list.”

“But wasn’t that effectively writing his name into your program.”

“I don’t deny that this kind of thing has become part of my body.”

“If the school had done something back then, I wonder whether his future interns would have become whistleblowers…”

“Wherever there is light, there is shadow,” she shrugged.

“I never told anyone, but I was glad you punched him in the face.”

“It may sound strange, but now that I think about it, perhaps my guardian angel showed up. My fist protected me.”

We were at the end of the night market. Her boba tea was now half empty.

“Does your wife mind you meeting with me?”

“It’s ok. I was supposed to be home early. My turn to put the kids to bed tonight. But she knew we went to the same high school, and you wrote the program that her husband has used for over twenty years…”

“Have you ever shown her what you wrote?”

“I have shown her some, all written after I met her.”

“What was her reaction?”

“In the beginning she liked it when I showed her those. We don’t talk much about it these days. She felt it’s something you did when you were a student,” I shrugged.

“I see.”

“If it weren’t so late, I would have taken you to the mountains.”

“It’s nice to have a walk at a night market with someone you haven’t seen for over twenty years. What a coincidence that you also thought about the mountains. Could I tell you something? On my way back on the airplane, I had entertained this fantasy that you would drive a BMW to take us to the mountains…”

“I do have a BMW.”

“Then, once on the road, I would ask you, what if I suddenly turned the steering wheel from the passenger side…”

“I know which Murakami Haruki novel you are talking about.”


She was still the person I used to know.

We were at the school anniversary concert. That was our third year in high school. We didn’t find anything interesting on the program and decided to bail. She said there was a skywalk nearby that the city was going to demolish, and suggested we go there for fresh air.

We chilled out on the skywalk. I remember I said to her that I really didn’t know what I was going to do. If nothing worked out, my dad might just want me to run some family business. She said it was nice that there was a family business I could fall back on. She knew she had coding talent, but her grades were just bad, and the college entrance exam was approaching.

I nodded. Exams were never a problem for me. I just wondered, though, how much of our teenage years were wasted on those things that, in the end, don’t really matter.

She turned to me out of the blue: “Would you let me try something?”


“Come closer.”

We took one step towards each other, and I realized what was that she wanted to try. I closed my eyes. The early evening air of the late summer felt damp but sweet. Something was burning between my thighs. Whatever that was left on my lips, I had never tasted it before.

When I opened my eyes, her arms were on my shoulder. I didn’t know what to do.

“It’s not my first kiss,” she said. “I gave that to a girl.”

She put down her arms.

“Hee hee. It’s different with a boy. Thanks.” She smiled.

“Want to grab some bites and find a bookstore?” She asked, as she started heading towards the other end of the skywalk.

I looked at her back in the school uniform. I nodded, and followed along.

We left the night market and said goodbye at an intersection.

Next morning, I got an email from her: “I put together something at the hotel. Download it and build it, and you can run it on the host machine. Call my cell and tell me if it works.”

I clicked the link. The downloaded file is called the reader.

Though I could guess what this file would do… I couldn’t help but recall how I panicked at my place over twenty years ago. I backed up and backed up again. Only then I unzipped the file. I followed the README and typed make. The compiler must have given me hundreds of warnings about places in the code that made deprecated function calls. In the end, it produced an executable. It was called reader.

It was she who taught me how to make. I had never built anything from source code again over those years. I didn’t realize how much I missed seeing those vaguely intimidating warnings.

I typed reader on the command line of the terminal. On the screen appeared a list of all my journal entries that I had been keeping inside the virtual machine. I hit Page Up over and over, until I saw the logbook that we wrote in high school.

I pressed Esc. It cleared the screen and returned to the command line. Then it printed:

The power of preserving.

I called her.

“Wisława Szymborska,” I said.

“Very astute,” she said.


“I got out my laptop after I checked into the hotel, and I spent some time on it…. Much of the editor no longer compiles—I bobbytrapped myself. But I scavenged parts that are still usable.”


“We went our separate ways, but the first thing I saw when I saw you, after these many years, was you were still using the same program for your journal. I felt I still had some responsibilities. Even if I no longer use it, even if you are the last person in the world that uses it—and you are—I feel there needs to be a witness to that commitment.”

“I see. So, when the last second of December 31, 1999 arrives, some thirty years will have passed, and I can still at least come back to those memories any time I want…”

“Just something I hacked up before I went to sleep. You must have seen hundreds of warnings. It embarrasses me as a professional.”

“That’s ok. I missed those warnings.”

“No promise, but who knows, one day I’ll make the editor build again…”

“Will you come back?”

“I will.”

“That’s good to hear. I was thinking, no matter what, at least I have these memories to go through and place in the right order…”

“That sounds familiar. You have read Kazuo Ishiguro's Klara and the Sun?”

“I have. But we are not retired robots, and we still have years ahead of us.”

“That’s true.”

“All said, this is great.”

“You still need to write the journal inside the virtual machine,” she said.

“Yes, I will make sure of that.” I laughed.

“I’ll let you know when I’m back next time.”

“Ok. Take care of yourself. We’ll see each other next time.”

“Until then.”