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 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.