The Difference a “..” Makes

Unbelievably crazy-busy day. At one point in the morning, Adrian was working on a website redesign, Marty was starting the v4.1 SFTP programming, Anne was catching me up on her sales work and the plan for August, and I’m thinking, “It used to be that I came to this office and it was mine alone and it was quiet and I could work for hours without interruption.” Then Chris walked in to pick up his CDs and we talked about Radial for a few minutes. I looked around and there were five of us, three working on my projects and me wanting to escape and go talk music for a few hours. Insane.
So let’s skip over the middle of the day, including the improvisational client meeting, the friendly walk back afterwards, the guilty pleasure of a massage mid-day, the haircut, and the work-dodging visit to Strings. I went to the post office and back to work. Oh, wow, now it’s 5:30—is that still “mid-day??”
So I walk in and Marty is coding Perl, Adrian is coding CSS, and Anne is rearranging the office, having taken all the boxes to the basement, set up another desk in the corner, swapped locations of the round table and the printer, consolidated the office supplies, reset my filing space, measured for window shades, and generally cleaned up virtually everything. She’s a little aggressive that way—I mean, I had done a thorough cleaning when I moved into the place in 1999, does it really need it again already?? Anyway, now four people can work there, maybe five, and while it might not be exactly private or spacious it certainly looks like a startup scene.
So by 6 PM all the slackers cleared out of there and we could get some work done. After just barely finishing the brain-meltingly complicated testing for version 4.0 (and, truth be told, it’s not quite exactly totally done until I finish some UI changes and write the release notes and perform one last round of basic testing on the staging site) we launched into version 4.1, which has the SFTP support.
SFTP stands for secure FTP, and basically it tunnels insecure FTP over a secure encrypted SSH connection. Crypto is like the hardest thing in computing, and luckily Scott could get all the special pre-built binaries installed on Sunday so we could get right at it this week.
The first thing we needed was a server account where we could publish files via SFTP. We got that going, but it stopped working. We tried from another machine but couldn’t get connected to the net. I wondered about the firewall, and messed around with some settings there. Didn’t help. (Red herring: if it worked once, it wasn’t the firewall.) Marty took the laptop outdoors to get some free Ivy League wi-fi, and it worked out on the porch even at 100 degrees and high humidity. So we messed around with the Ethernet routing and got the laptop connected and verified that it could SFTP in, but our development box couldn’t. I had a flash that they were filtering our IP address because of our bad login attempts, and convinced Marty that it was worth emailing them to check. Ten minutes later, yes indeed. Notio shoots; scores. Okay, so now we can log in from both machines.
You probably can’t believe you’re still reading this.
So then I configured our software to publish to this now-working server. The target working directory path was “../www/workspace/pivot” We verified that when we logged in manually this path worked. We tested a publish run, and it failed. Well, off to look at logs, etc. Iterate on verifying where the code is failing. Etc.
Long story short, after, who knows? an hour? half an hour? we realized that logging in via SFTP put you in a different location than logging in via FTP. Really? Test. Yes, it’s true. Logging in via SFTP you need to use “../www/workspace/pivot” but logging in via FTP you need “www/workspace/pivot” And that’s the difference a “..” makes. It’s sensible, one you realize that FTP typically sandboxes you into a location amenable to a webserver, whereas SFTP is actually using SSH, which is typically dropping you into your home directory, only a subdirectory of which is wired to the webserver. Oy vey.
So we need to have two config variables, one for FTP and one for SFTP. Now we know. Then we spent half an hour talking local search dev models, engineering talent availability, funding options, various complications, etc.
At 8 PM I went to the Coop to get dinner, technically supper, and came home to have a beer and eat and write this and try to chill enough to go to sleep. So much got done today, but exactly zero on my list. The next two days have to be super-productive, or the clients will have my head. Wish me luck.