Sleepless Nights

Some people can’t sleep because they’re excited or anxious about the next day. Other people can’t sleep because they’re sad or glad or guilty or proud, or because the birds outside are addicted to methamphetamines and never quit chirping. But here’s why I can’t sleep tonight:

What do you think would be involved in getting NTP (or a reasonable facsimile thereof) written in JavaScript and using HTTP? And how accurate do you think it would be? Not a lame thing where you take the time from some random webpage and claim that as current time, but an implementation of Marzullo’s algorithm in JavaScript for sourcing time from multiple servers, a means for calculating round-trip latency, a means for tracking clock drift between requests, and something like a little Sinatra app to just serve Time.now.utc.to_f and set no-cache headers? (Actually, time.to_f isn’t terribly precise, though I doubt you’ll be troubled by this in the real world.) How accurate could you get it? I doubt you could rival NTP, but could you get to the millisecond level? Within 10 milliseconds? Surely within 100 milliseconds?

If you’re willing to sacrifice sub-second accuracy in favor of not needing a list of special “time webservers”, HTTP headers indicate the time, and any webserver worth its salt should be synced to NTP. Though it seems many aren’t, so I wouldn’t count on this for anything remotely important. Plus it requires you to be able to parse HTTP headers that many frameworks might not expose.

Non-Evil Internet

As those of you who read my blog, follow me on Twitter, or are my friend on Facebook surely know, I’m feuding with Verizon FiOS. They randomly decided to start charging me more money, and have been impossible to get ahold of, and absolutely indifferent when I finally got someone on the phone.

Really, I want to start my own ISP. Our motto would be “We’re not out to screw you.” Here are some of the things I’d like to do:

  • Only offer service where last-mile fiber-to-the-home is available, or trivial to run. (Note WiredWest, which is running muni fiber to about 50 towns in Western Massachusetts!) An all-fiber network is key.
  • Offer some traditional-ish plans (perhaps 10/10 Mbps), but also offer plans that are simple 100 Mbps Ethernet with various download caps. We’d be completely upfront that it wasn’t a guaranteed 100 Mbps, and what the cap was. But you could then get, say, a 100/100 Mbps plan with a 100GB cap for $50/month if you really didn’t use the Internet that much, or a 100/100 plan with a 1TB cap for $150/month if you were a heavy user.
  • Since we have fiber to everyones’ homes, offer some less-traditional services, like “cloud backup”. Or just a network file server. You could pay us for a 1TB network share over Gigabit Ethernet into your home, supplementing whatever you have for Internet, and set it up as a traditional SMB/CIFS/AFP share, or use our web GUI to access it remotely.

But some of what I want to offer is non-technical, and I think this is even more interesting, if only because no one offers it today:

  • The price you sign up for is the price you will pay. Forever. After 14 months, we won’t randomly raise your rate and force you to sign a new contract at a higher price. If you decide you want to change your plan — up or down — you can do so with nary a headache. If you die, we’ll stop billing you. (Though you could also just call us up and ask to cancel.)
  • If you call us on the phone, a human will pick up and speak with you. There will be no AVR. They will be down the street. You won’t have a 16-digit customer code, just your name.
  • If we can’t keep 99% uptime, we’d give you a hefty discount. (99% actually sounds really pathetic.)
  • Our installation tech will be there within 90 minutes of the quoted time, or your first month is free.
  • Your personal information will be stored encrypted and with the highest protection practical. We won’t keep it on a laptop and leave it in a coffeeshop. (How does this keep happening?!)
  • You won’t have to sign away rights in your contract. You won’t have to agree to arbitration clauses. If your personal data is subpoenaed, we’ll fight it in court.
  • If your home is destroyed by a tornado, we will not fine you for damaging our cable box or modem.

Two UI Features I Can’t Live Without

I jump between a Mac at home and Linux (GNOME) at work, but there are two features (unknown to far too many people!) on both platforms that I can’t live without:

  • The ability to “zoom out” all my windows and display smaller versions of them so I can rapidly jump around. On the Mac, this is called Expose, and I access it by pressing F9. In GNOME, I have it mapped to Ctrl+Shift+Up (non-standard IIRC), and it’s provided by Compiz Fusion. This is a pointless feature if you only have a couple windows open, but when you’re really getting into something and you have a dozen or more things going on, this makes switching so much less painful. It’s especially good if you need to switch to an application that has “fallen to the bottom” of your window stack, or if you won’t recognize it by window title (because you have five terminals open and want the one with all the red prompts which you’ll recognize as the production database server).
  • A launcher. For a long time, I’d launch most programs from the terminal, just because it was easier for me. If I wanted Firefox, I didn’t want to have to mouse over to the start menu and try to find it in a long list. I wanted to type “Ctrl+R, fir, Enter” and re-launch “firefox-bin &”. (Sure, I could keep an icon on my desktop, but that implies that I don’t already have windows covering my desktop.) On the Mac, I use Alfred for this, replacing Quicksilver. In GNOME, it’s Do. In both cases, pressing Alt+Space pops up the launcher window. I type a few characters to match the program I want and press Enter. All of these launchers are capable of far more than this, but the mere ability to do this makes these apps worth their weight in gold. (Figuratively. Literally, they have no weight, which would make them worthless.)

Don’t Sign Up for FiOS

I’ve been a loyal FiOS customer for about a year and a half. I pay $69.99 a month for a 25/15 Mbps pipe. Aside from one absolutely miserable experience trying to speak to someone in billing who was able to update the expiration date on my credit card (it took four people, one of whom literally did not speak English, and about 45 minutes), I’ve been pretty happy. The connection is pretty reliable.

But then they randomly raised my rate from $69.99/month to $79.99/month. No idea why, no explanation given. Worse, if you visit their site, $69.99 is the rate advertised, with no fine print about $79.99/month. They just randomly jacked up my rate to see if they could.

So I just logged into my Verizon account, intent to do something about this. And lo and behold, I found this:

So there are actually two problems here. One is that the $69.99 plan — the one I signed up for and have been paying for all along — randomly jumped in price on me, but is still being sold. It’s not a case of the rate rising to meet inflation or something; it’s a case of them suddenly charging me more money for the same service. Second, this isn’t even accurate. It states that my plan is $74.99/month. It’s actually $79.99/month:

(My history actually goes back much further. In total, I’ve paid Verizon nearly $1,250.)

While scratching my head over this discrepancy and what could be going on, a Live Chat window popped up. Perfect, I thought!

They hung up on me:

So now I’ve gone from being a little confused about why my rate went up to being incensed. They’re overcharging me, and when I asked them about it, they disconnected.

More confusing still, when I went back and selected the 25/25 plan for $69.99, it implied that I was signing up for a one-year contract, when the drop-down on the page indicated I was viewing a month-to-month plan.

So I really like the fast 25 Mbps download speed, but I really can’t understand paying more than $70/month for Internet. RCN and Comcast both send me several offers in the mail, and can greatly undercut the prices Verizon is offering, albeit for slightly slower service. I think Verizon has just lost me as a customer.

Being Smart, Not

Dear software developers:

When your software “does the right thing” with intelligent defaults and a little cleverness to make my life easier, that’s awesome. Job well done! Smart software makes the world a better place.

But there are some applications that let their smarts go to their head, and they become cocky. They force me to do things their way, to use the software its designers used it. If I want to do something different, I’m wrong.

There are lots of examples of applications that get this right. They’ll warn you if you’re doing something stupid, and they try to structure their GUIs to make it hard to do stupid things. But, at the end of the day, if you’re really sure you want to do something it thinks is stupid, it will let you. Because, after all, us humans are the bosses.

But here’s a perfect example of where it all goes wrong: setting up a mail account in a mail client. It prompts you for your name and email, and you click next, expecting to fill in the account details. Instead, it tries to find them for you. This is mildly irksome for me, as the mailserver I was connecting to has a non-obvious hostname, and my ISP blocks outgoing mail 25, so detection of incoming and outgoing mailservers both failed, and it took me about 30 seconds of waiting for this to happen.

But it wasn’t that big of a deal. I plugged in the correct IMAP server hostname, and just left the SMTP server as-is, since I’m not actually going to send any email.

Except, I can’t save. Every time I try, it goes off to validate the servers. It can’t reach the mailserver, so it tells me my information is wrong. There is no “Are you sure you want to save?” prompt. The SMTP server isn’t reachable, so I can’t add an account. I tried manual setup, which sounded promising. It bypassed trying to guess my credentials. But it turns out that it, too, insists on validating your accounts before it will save them.

I can see why this happens. Some developer somewhere thought, “It makes no sense to add a mailserver account unless both the incoming and outgoing accounts work. I’m helping my users!” But in actuality, they’re just getting in my way. Now I have to install some sort of SMTP server on my laptop, just to fake out my mail client so it will have something functional to connect to and allow me to save my account.

By all means, write smart software. Use defaults that work for the majority of people. Warn me if I do something that looks wrong. But don’t make your software refuse to do what the user instructs.

Osama and the News

There are many things I’m interested in about the raid that captured and killed Osama bin Laden, of course. And there’s a lot more I’d like to hear that I haven’t heard yet, such as:

  • What’s learned from the 100+ “storage devices” in the house in which Osama lived. (This sounded very excessive, until I realized that they were individually counting not just hard drives, but CDs and thumb drives. I probably have considerably more media in my apartment.)
  • How Osama and other operatives communicated. Did they use encryption? What sort? What type of computers did they use? What operating system? Were their computers infected with any sort of malware? Did they have the latest security patches applied? What non-terrorist-related things did they have installed? Games? Music?
  • Video from the raid. It sounds like many bits of video were recorded, though I’m sure they’ll never see the light of day. But it would be most interesting to watch, even if the more graphic parts were omitted.
  • More about the helicopter that was blown up after it crashed, and the reason it crashed. (And the reason so many helicopters crash in general?)

But here are some things that I absolutely, positively do not want to hear about any further:

  • How other people are reacting to the news. My sympathies are certainly with the families of those who died on 9/11, and those who were injured, but having a camera shoved in their face and asking them to tell us how they feel seems voyeuristic and disrespectful.
  • Peoples’ opinions about whether the photos of bin Laden’s corpse should be released, whether they’re random people on the street, Presidential hopefuls, or “experts” of any sort. Their opinions don’t change anything.
  • Whether or not waterboarding was tangentially related to the capture of bin Laden.

Corrections Officers

I saw a WSJ headline that appeared to vilify Corrections Officers for having cushy jobs and great pensions. This comes on the heels of everyone having singled out teachers as having cushy jobs and unreasonable benefits, so I was so incensed that I couldn’t bring myself to read the article. Fairly recently I watched a documentary on prisons, and can say with confidence that you couldn’t ever pay me enough to be a corrections officer for what they have to put up with. I did a little research:

  • The median salary for a Corrections Officer in the Boston area is $43,827. A Senior Corrections Officer — what I assume a career corrections officer would be when retiring at 55 for their “cushy” pension — is $50,938. This isn’t a bad salary per se, but if you’re in it for the money, this is probably not the job to have.
  • The average life expectancy for a Correctional Officer is 59 years, sixteen years less than the average.
  • I cannot easily find any credible sources, but a number of sources claim that there are more than 30,000 attacks on Corrections Officers each year, and that the average officer is “seriously” assaulted twice in their career.

According to these statistics, then, in return for incurring two “serious” assaults and probably many more minor assaults, along with constant harassment, taunts, and stress, the average corrections officer will collect a $40,750/year pension for four years before their death. I’m not so sure that Correctional Officers have it so easy.

Music

When I was in grade school, music was easily the most boring subject there was. Music was about playing the recorder (a music instrument I’ve never heard of anyone using outside music class), and singing. I remember one time, for like five classes in a row, I ended up playing the triangle. The triangle. But it was still better than the recorder.

But stuff like this makes me wish I had grown up appreciating music more:

Rather than teaching us musical notes on the recorder or playing Vivaldi, how about letting us goof around with computer-interfaced keyboards? It seems less-academic, but you’re actually instead of actively turning us off from the subject.

Pandora

Once upon a time, I played a little Orisinal game that would, for lack of a better term, temporarily rewire my brain. I’d play it for a while, but when I was done, I found that I couldn’t use a computer. I’d see a pattern on a webpage and try to circle it. I’d talk to someone and be really distracted by their eyes and how I could circle them. And then someone else would walk by and I’d want to circle the two people side-by-side. Eventually the compulsion subsided, until I played the game again.

Pandora has really done the same for me in life. (For the uninitated, Pandora streams music, and allows you to thumbs-up or thumbs-down songs. It learns your preferences and plays music to suit. My Daft Punk-based station became absurdly good, to the point that I started a second Tumblr blog just to reference the awesome songs I was finding through it.)

I have recently found, with great disappointment, that Pandora currently cannot improve the following areas of my life:

  • Broadcast radio. Sometimes there are great songs on the radio. Usually there aren’t. Worse, even after identifying certain songs as terrible (by shouting at the radio), it continues to play them again.
  • The news. Thumbs-up to a lot of interesting stories. Thumbs-down to more news articles about Donald Trump.
  • TV episodes. The episode of Modern Family from a couple weeks ago was absolutely hilarious, and I really want to communicate to the producers that I liked it, and to Hulu that I want to see more episodes like that. On the other hand, after watching the episode of The Office from a couple week ago, I’d really like that portion of my life back. I want the producers to know that I thought the episode was a disappointment, and want Hulu to know that I’m not a fan of similar episodes. (Maybe this should apply to TV in general. It’s no accident that I don’t have cable, and just watch Netflix and Hulu.)
  • The cafeteria at work. Sometimes it has good food. Sometimes it has great food. Other times, it doesn’t suit my fancy. Steak-and-cheese sub? Thumbs-up, more like this! Meatloaf? Thumbs-down, please don’t serve again.
  • Email threads. Some mailing lists enjoy beating a dead horse about a topic that didn’t interest me in the first place, and I’d like to preemptively nuke the continuing thread from my mail client. Other times, I want emails like thumbs-up’ed emails to be prioritized in my inbox. (Gmail’s Priority Inbox rocks for the latter.)

Incidentally, there are several awesome business ideas in here. “Pandora for the News” in particular.