Wednesday, May 25, 2016

The Case of the Missing Files

I have recently started a new job. One of my duties involves updating files that are located on a server. With the right simple software, this isn't too complicated and barely takes any time to learn. I copy the files over onto my computer, work on them, upload them again – just like using Dropbox or even getting an email attachment. The cool part is that these are the background files of a website so when I change something and want to see if it has worked, I just upload the files I changed and reload the website to see if the changes took.

This worked just fine when I started this job last January. I'm working for a small math magazine that gets distributed to some local schools. Students work on the problems in the magazine, send in solutions and accumulate points for the problems they do correctly. I'm the one who keeps the website for the magazine up and running, so people can check when the next issue is coming out, who has collected how many points during the current year, etc.

All of a sudden, just a few weeks ago, a lot of my files went missing. The biggest file, the one with the list of students from all the schools with their points on the last three issues – gone! At least, it would not show up in my program that shows me what is saved on the server. Imagine looking in a directory on your own computer where you thought a file was saved, but now the file is gone. However, the file couldn't just be gone – because when I went to the website and loaded the page, lo and behold, there was the list of students with all of their points, exactly how I had last updated it.

But I needed to update that list again. How to do it? I didn't have the file and didn't want to write it from scratch again. So, I figured out – with a bit of help from the Internet – that the GoogleChrome browser has a tool that lets you view the source code from a page. I tried it out, and – hey, presto! – there was my beautiful php code, just as I had left it, displayed in a browser tab. I copied it and created a new document, edited it, saved it under the original name, and dragged it over to the server. Here's the other weird thing: usually, my program alerts me when I put a new version of a file on the server; it asks me, as you might expect, if I would like to overwrite the old one, etc. But that time, it didn't ask me. Not only that, but when the file transfer was done, the new file still wasn't listed. I had transferred it, the transfer had been successful, and then it had been swallowed up into the ether. Except it hadn’t been. My changes showed up on the website.

This happened to several files on the server, files that I had downloaded and worked on and uploaded without a problem when I started working there. Some files were still there. I could see them on the server; some I couldn't.

This was vexing. 

I'm not very well versed in this area, so I eventually went to see our department's technical support person. This gentleman I had met only once before when I introduced myself as the new member of the magazine team. I explained my problem and he stared at me. I stared back. It is a weird problem to try to explain. 

Slowly, he rolled his swivel chair over to face his two desktop screens. On one, he opened a program similar to mine that let him look at the files on the server. I placed my laptop on his desk, displaying my version of the program that lets me transfer files to and from the server. He used one monitor to open the command line: that place where once upon a time – in an ancient pre-mouse era – we typed 'pwd' to print our working directory, 'cd' to change the directory, and other commands to run things on a computer. It is still used, and sometimes, there is nothing better.

For the first fifteen minutes, I didn't say a thing. He looked, tested, copied, uploaded, scratched his head, squinted at the screen. Nothing worked. On his computer, it said there were 193 files on the server. My computer registered only 177. Sixteen files were missing. Files that had nothing to do with each other.

He made a copy of certain files, changed the server settings, re-uploaded everything. I restarted my program and looked again. Still 177. He changed the basic settings of my program. 177. We looked at every single preference setting that could be changed in the program. 177.

About forty-five minutes had now passed. I had put my backpack at my feet and was admiring his patience but I wasn't thinking we would get to the bottom of this.

All of a sudden, he spun his chair around and began to type in the command line. Lines of code popped up, he entered new commands, looking into the settings of the server. Then he looked at me. 

"When did you start working with the magazine?" -"January." 
"And you could access all of the files at the start?" - "Yes."
"When you uploaded them, they were still there and you could then download them to edit?" -"Yes."
"So it just changed at some point recently? Recently the files just started not showing up?" -"Yes, exactly."

He smiled. "Every file that is missing was uploaded to the server in March," he said.
I stared blankly.

What followed were five minutes of typing during which I felt very silly, not understanding this breakthrough. After those five minutes, he refreshed my program once again and… all the files appeared. 193.

What was this miracle cure?

He explained to me that buried deep in the server, the files edited in March had not been saved with some numerical date, as I had expected – 03/05/2016, for example – but with the actual month written out. So, on this German server: 'März': the only month with an umlaut in it (those little ¨ dots). And my poor American computer couldn't read them. Couldn’t read the dots, and thus, couldn’t read the date – and did not display them. This explained why there had been no problem with those exact files when I had edited them in January and February, and why they then disappeared so mysteriously after months of being fine.

We smiled at each other. "Wow," I said. "Thank you so much! I never would have thought of that." He grinned, and it was like, together, we had vanquished an invisible foe.

Then, since we really don't know each other at all, I gathered my things and exited rather awkwardly. But still – we now share that victory.


Here's to all the computer detectives out there. Cheers!