Working with Poor Internet Connections

I write this post from Shanghai, where my attempts at starting a normal workday hit a brick wall. That should actually be “brick walls”: a corporate firewall in front of the Great Firewall. Over the last few months of traveling in Thailand and China, I’ve adapted my workflow to unpredictable internet connections. Here are some techniques I’ve used to keep my sanity:

Eliminate single points of failure

I think I’ve done a thorough pass of SPOFs in Bangkok. My first adaptation to unpredictable internet is to make it more predictable. In Thailand, when I’ve seen service issues with one provider, having my phone ready to tether has been a reliable backup.

Generally in Thailand, outages have been a bigger problem for me than firewalls. Some simple use of ping and traceroute have revealed that my internet connection outages are sometimes within my ISP’s network, beyond my cable or DSL gateway. For that reason, I’m leaning towards choosing a different company for my Bangkok landline connection than my cell provider.

I’ve also seen DNS failures with my ISPs, which tend to be revealed by successful pings to Google’s domain name servers ( and Awareness of these alternatives makes DNS failure a non-SPOF.

The Great Firewall also uses false DNS entries for domains such as Google. Knowing alternative domain name servers like Google’s is useful in this situation too, though I also have to know how to clear my system DNS cache (I think this is called DNS cache poisoning?). On OS X, that’s done with sudo killall -HUP mDNSResponder.

Subscribe to a proper VPN service

Prior to coming to China, I subscribed to a VPN service that offers servers in multiple countries. Some servers support OpenVPN to counter deep packet inspection, which the Great Firewall uses to detect VPN traffic.

This has been immensely helpful in China, but it’s far from a cure-all. The corporate firewall I’m currently behind blocks VPN connections outbound from China. The result is that I’ve been able to use a VPN server within China. This has gotten around some of the corporate firewall restrictions, making Bing more usable for searching. Still, I can’t access my Gmail.

My Chinese cell provider has been similarly sporadic in allowing VPN traffic.

Adapt to local-friendly services

Here in China, anything Google or Facebook is blocked…pretty much always. This has opened my eyes to how much I rely on Google and Facebook services. I use Google maps, GMail, Google Hangouts, Google Tasks, and Google Docs a few times a day. For the first day or two in Shanghai, I felt completely helpless.

I’ve filled in the gaps with other services, some are even American!

Still unaddressed is my Gmail access problem. The solution might be to have an alternative email service that’s ready to use at any time. That would mean that my contacts and communication history are synchronized. It might be to find more VPN-friendly workspaces. For this short trip, I’ll start with the least committal solutions first: finding better workspaces.

Timebox staying on one task

I’m a persistent person, sometimes to a flaw. (Or oftentimes, depending on who you ask.) One great work process I learned in my last job was timeboxing. I had to employ this today while attempting to get on a VPN. I could have actually been more productive had I timeboxed more aggressively. I spent about an hour trying to get onto different VPN servers. Aggressive timeboxing is not always better though. Timeboxing is a bet on productivity. By limiting the time for trial and error, I’m betting that I won’t figure the issue out. Shrinking the timebox window reduces the odds that I’ll get somewhere, at the benefit of reducing the risk.

Usually I don’t have one and only one thing to do. This blog post is part of my work backlog that can be done offline. It’s an exercise in frustration to keep trying out permutations of workarounds to the same connectivity problem. I would like to only work on my highest priority task, that’s a no-brainer. However, maintaining forward momentum is important. It’s better to be productive on secondary priorities than completely unproductive on a first priority.

I’m embarrassed to admit that this post took me several hours to finish. On the other hand, it filled up my day perfectly. In my mind, I see myself writing a post like this in half an hour to an hour. That estimation is probably not grounded in reality.

On the other hand, I feel great now that I broke a 3 and a half month silent streak on this blog. I do want to always be improving how I communicate, and the only way to get better at something is through practice. Maybe one day I’ll actually take half an hour to write something like this.

Remind myself there’s an end

I still want to use my software tools. I want to check Facebook while waiting for the train. I want to message friends and say hello. I want to have access to high quality map searches, to save them, and to navigate to them quickly. I’ll be able to do these things again once I change my surroundings.

Other Thoughts

I’ve been in China before, but this is the first time I’ve been here and tried to be productive and social using international tools. This experience has drawn my attention to some issues without clear answers.

Net Neutrality

I feel much better off having partial internet than no internet. On the other hand, I understand my current situation is created by a non-neutral internet connection in the first place. I’m a user inside a walled garden without another choice. Instead of hoping for the walls to go away, all I’m hoping for is the walled garden to be accessible enough that I can get on with my day-to-day. I don’t want to be a pessimist, but the net neutrality issue seems like one with very skewed incentives that favor the big actors.

New Eyes (Usability)

I’m recovering from the shock of witnessing the failure of my critical services. I’ve jokingly talked to friends about how screwed I would be if Google went down. Right now, I’m living that first-hand. It’s kind of scary to imagine if this were permanent. Still, I’m adapting. Life would go on.

Part of me is grateful for seeing how much of my behavior is dependent on 1-2 companies. Today, I can blame a firewall for affecting my personal productivity and social life. However, a future a bad policy change by Google or Facebook could have a similar impact on me.

Another part of me is grateful for the eyes of a new user again. I’ve had to re-learn a mapping app on my phone as well as what a search engine can and can’t do. I’m seeing some things again for the first time.