Rural Internet

The fastest internet speed I can buy at my house is a nominal 25Mbps down / 5Mbps up. That’s slower than some can get less than a mile down the road, but faster than others can get just a bit beyond that. It costs $112 per month, which is also more expensive than what’s available to some neighbors, and cheaper than others.

I’ve spent the last twenty years living in areas of the country where I had multiple reliable, fast, relatively cheap connection options. In the last few months, I’ve moved to a rural area, so now, as you’ve probably learned from the year’s remote-work-and-school reporting, I don’t.

The two options for internet available to me today are satellite and fixed wireless. Satellite has the two major disadvantages of a large roundtrip latency (hundreds of milliseconds) and restrictive data caps (even expensive plans top out around 50GB per month). Neither of these works with my usage patterns.

So I chose fixed-wireless. If you’re unfamiliar with fixed wireless, you’re not alone. It’s basically a mobile hotspot cellular connection, except not mobile. Its antenna is permanently attached to our house, and pointed at a dedicated tower. This allows it to provide double to triple the bandwidth of mobile 4G. Of the 25/5 promised, which by the way is the state’s minimum definition of “high-speed internet”, we see about 80%. Most of the time our download speed is around 20Mbps, and upload between 3 and 4Mbps.

Value is something of a moot point. We know that elsewhere, even a mile down the road, cable companies provide twice or better the speed for the same price. But where neither cable nor DSL reach,[1] we have to compare to satellite. Speed for price is comparable, but our fixed wireless provider gets two easy wins: one tenth the latency (usually around 60ms), and no data cap. What the low-latency makes possible, namely video calling, the lack of data cap makes affordable. That’s especially true in a month where laptops, tablets, and phones also need to download updates.

There are places our fixed wireless provider could still improve. While we see most of the bandwidth we pay for most of the time, it’s not stable, and download speeds of 14Mbps or lower are not uncommon. We spent the week of Thanksgiving getting about 6Mbps down, 0.2-0.4Mbps up. That was primarily caused by their second problem: small support windows. Our speeds stayed low for a week (yes, admittedly a holiday week) because no one was in the office to fix them. The same happens with complete outages, of which there have unfortunately been several. If the outage starts after the support office closes (5pm), it’s often not fixed until the office opens again in the morning.

We’re lucky to be flexible with our internet needs. We don’t have kids that need to be connected to remote schooling. We don’t have jobs with lots of scheduled meetings. So, while outages and slowdowns are irksome, our needs are still met.[2]

But this situation is still bothersome. I want to write something about how it’s unbelievable that we can’t expect reliable, high-speed internet access at every house, during a ten-month-old pandemic where we’re asking people to attend school, work, shop, and socialize virtually. But really, how can we not expect reliable high-speed internet access at every house by now anyway? There is a world of information and utility out there that many have little or no access to.

We, as a country, treat internet access as a luxury, offered only in ways that corporations deem profitable enough. Many refuse to believe it, but internet access has become a utility. Some will argue that anything you can do online, you can also do by calling, driving, or walking somewhere. But this erects a wide social status divide. The person who can file their taxes online gets their return faster than the person that has to mail them. The person who can shop on Amazon has access to a far wider selection of products, with better availability, than the person who can only drive to Walmart. The person who can access books, movies, music, and other media digitally is able to be better informed, with a broader world view, than the person limited to what their local stores and libraries[3] have on hand.

Or to put it another way, your house didn’t “need” electricity run to it a century ago. But the house with electric light is safer than the house lit by candles or lanterns. The house with electric refrigeration has a safer food supply. The house with electric laundry machines saves hours of time.

As I write this, we’ve just begun a test of one more step into the future. SpaceX has launched a new satellite network called Starlink. Unlike existing satellite internet providers, this network offers low-latency connections, with speeds two to six times faster, with no data cap. All this costs the same price as our fixed-wireless provider.[4] They’re running an invite-only beta, with their own set of no-guarantee-of-uptime warnings. We couldn’t resist giving it a try, to find out if widespread quality internet connection is finally on the horizon for areas that have had next to nothing until now. Follow this blog for updates about how it’s going once we gather some data.

[1] I called and asked. The cable company that serves much of the rest of town doesn’t believe the dozen or two houses on my mile-long dead-end street will be profitable. They won’t even roll the truck to survey whether service is available at my address. Neighbors are doubly confused by this, because power and phone lines were just moved off poles and underground in the last few years, so it would seem surprising if cable wasn’t laid in the same trench.
[2] Yes, we’re also lucky to be able to afford $112/mo. We’re also saving by not using a landline for the telephone, and not subscribing to TV.
[3] No disrespect is meant to libraries who provide valuable services to their communities, even beyond their media collections. And yes, many libraries are connected to networks that exchange media free of charge to the borrower, but access from home is still a different level of availability than in-person.
[4] Yes, we’re also lucky to be able to afford a second $100/mo. to test both networks concurrently. We hope we can use our privilege to gain experience that can be shared with the community.

CA to WI via Motorcyle

Somehow this “project” never got a write up here. Near the end of September, my wife and I took a spectacular motorcycle ride from California to Wisconsin. Nearly two weeks of spectacular views and interesting places.

With the COVID-19 pandemic surging throughout the US again now, I imagine a few raised eyebrows after reading the previous paragraph. Wasn’t this dangerous, and didn’t we help to spread the disease?

No, we didn’t, and here’s why: we followed the very simple guidelines the CDC and other reputable authorities have been recommending for months.

We wore masks every time we went in a building. We stayed six feet or more from others. We washed our hands often, and carried hand sanitizer for when we couldn’t. We avoided large groups – in fact we even avoided small groups, skipping all the friends we could have visited along the way. We ate outside, most often in empty parks, or alone in our hotel room.

None of our hosts at either end of our journey have developed COVID-19 symptoms. At least one has even confirmed testing negative.

This isn’t hard. Listen to the experts, follow their guidance, and we’ll have this kicked.

Erlang Observations

To those who are considering Erlang and Erlyweb as a framework for their website: just go for it.

A couple of days ago, there was yet another blog post on Reddit about the scalability of Erlang, with the same yaws-owning-apache graph we’ve all seen before. There was absolutely nothing new in the entire post.

In my opinion, there are many reasons to use Erlang that have nothing to do with server performance.

Those of you who found BeerRiot through the Ask Reddit thread about Erlang usage already know that it’s built on Erlang and Erlyweb. My experience with them will be different than others’, of course, but I felt the need to list a few of my [completely subjective] observations about this framework.

So, in no specific order:

  • I like the syntax. I got past the comma-semicolon-full-stop confusion that many complain about within the first few hours of coding. It’s different, refreshing, and not too hard to understand.
  • Development cycles go really fast. More than once, I’ve hashed out some new functionality on my subway commute, then polished it at home and posted it the same evening. Part of this is the pattern matching used in function calls and branches – it translates almost directly from my pseudocode.
  • Some complain about the lack of hierarchy and types – I love it. It makes evening coding feel very free-form after eight hours of Java.
  • Erlyweb and Yaws are both very powerful and useful, yet their codebases are small enough that the thought of digging through their code does not intimidate me.
  • Erlang doesn’t have all of the libraries of other languages yet, but they’re not hard to get to.
  • Hot code loading and the ability to open a shell connected to your webserver doesn’t get enough press. I never stop my webserver unless I’m making a huge change that I’m too lazy to plan the transition for.
  • I dislike typing underscore. I do think it’s a good visual representation for “don’t care”, but I just don’t like to type it. I often use camelCase to define my own functions, but it looks a bit messy in mixed code.

So, yeah, some of these are reasons to use Erlang, some are reasons to use any language with similar features, some are just things to note. I just felt like there needed to be some conversation about Erlang other than its scalability.

If anyone has any specific questions about my experience with Erlang, please post them in the comments. I’ll either answer here or write another post to cover them all in a few days.