Texas: The Land of Frequent Water Outages

I’m now on my third day without water in Texas. I mean, I have zero water. Nothing at all comes out of my tap.

Even worse, there is nothing to buy because stores quickly sold out due to the detestable Texan habit of panic buying water whenever a major storm comes through.

This sort of thing has happened once before, but this is the first time I’ve ever lost all water. In October 2018, we lost water filtration for a week after the county’s water treatment plant flooded. In this case, we still had water in the tap, though – it just wasn’t treated, so we had to boil the water first.

I moved to Texas for work and better economic opportunities. Many millions have chosen to relocate here for the same reason, leading to huge growth in the state, especially in metro areas.

But it seems that this growth has outpaced modernization of infrastructure. Any area will experience growing pains as population increases, but it isn’t common for basic services like electric power and water to become unavailable.

I’m going to have a hard time recommending Texas for the time being.

Let’s Have Some Fun Securing Our Home Network With pfSense

As I alluded to in a previous blog post, I’ve been beefing up my home network security as it’s become apparent we are now living in the midst of a cyber war.

I use a VPN and have for many years now, but I have had all kinds of problems with running the VPN connection on all of my devices. The iOS support for VPN connections is especially terrible. So I decided to instead get a firewall device to sit between my network and the internet. I configured a Protectli device with pfSense, a FreeBSD-based open source OS for firewalls.

Diagram of my network configuration.

pfSense is configured with a VPN connection that “tunnels” my network traffic to another server somewhere on the other side of the internet. This is important because it prevents my ISP from reading my network traffic. To the ISP, any traffic coming from the pfSense firewall looks like static — it is indistinguishable from noise. In effect, this allows all the devices attached to my network to appear with the same phony IP address (that of the VPN server).

Hiding your IP address is a good idea if you care about privacy. Ad tech companies, including the big hitters like Google, Facebook, and Twitter, use your IP address (or a hash of it) to identify you online. Using your IP address, a company like Facebook can connect your activity across browser sessions, devices, and so on. Additionally, your ISP knows your IP address and can, if compelled by a court order or DMCA request, hand over your name and identification in association with your IP address.

In short, here’s what you’ll need for this setup:

  • A physical firewall device that can run pfSense (I recommend Protectli) [about $300]
  • A USB thumb drive, which we’ll use to install pfSense [$10 or less]
  • A speedy WiFi router that does not run your ISP’s modem connection (if you have a separate device for the router from the modem, you can probably use that device, but my instructions here assume your ISP’s WiFi device cannot be trusted) [about $100]

This isn’t a home security panacea. Next, I’ll need to configure my own DNS to avoid DNS leak. I may try to get DoH setup, but I’m not sure if pfSense supports encrypted DNS yet. Once I have that setup I’ll also be able to block all advertising inside my network, as a nice bonus!

Finally, my eventual goal is to have this network function as a sort of “home lab” setup. I want to be able to VPN into my firewall from anywhere on the internet, effectively allowing me to establish a secure connection for file sharing between friends and family. My pfSense adventure is just beginning! πŸ™‚

Why Tech People Can Work From Home So Easily

Media outlets have reported that tech workers are among the least impacted by “lockdowns” and workplace closures over the last year. This is ostensibly because we can work remotely.

But can’t anyone with a white-collar job work remotely? Unless you need to be physically doing something in proximity to your workplace, most modern office jobs can be done over a video or chat application.

I will submit to you that there the real reason tech people are having such an easy time transitioning to remote work is that we have already built all the tools to do our jobs remotely. We have been so far ahead of the curve, that our industry is already built for remote work.

Consider the problems of remote work, broadly:

  • Workers may be working from different timezones. Timezones may have significant overlap (e.g., New York and Chicago) or they may have little or no overlap (e.g. Mumbai and Texas). Thus, being able to work independently is necessary to maintain productivity.
  • Workers must be able to work independently, but eventually their work needs to be integrated together. How shall this be accomplished? If workers A and B are both going to do 50% of a project, how can we divide the work so that both are contributing their fair share, without significantly impacting productivity?

These are the very problems that source control systems are designed to solve. The popular Git system works as follows:

  • Work is sub-divided into “commits.” When worker A has completed a task to their satisfaction, they then “commit” that work to their local copy of the project. Note that the work is still not integrated with worker B’s work.
  • Commits should be small. Large commits are harder to integrate, and are thus discouraged. Thus, worker A and B plan their contributions accordingly so that they produce many small commits.
  • There is a “master” version of the work, similar to a multi-track master for an audio recording, which contains the sum of all past commits. When a worker begins changing the project, he updates his local copy of the “master” branch, and then creates a new branch off of this local copy of master where he will do his work and create commits as he completes it.
  • master is not a stable, static thing – it is changing constantly as others complete work. When worker A is done, he will integrate or “merge” his changes back into the master branch. Here he must fetch whatever other commits have been “merged” by worker B, C, D, E, F, etc. This may trigger an event requiring him to consider how his changes should be integrated with everyone else’s work before it will be pushed out for distribution to the rest of the company.

All of this is accomplished through a clever use of a graph data structure and hashes. If you’re interested in learning more, I suggest getting a book about how Git’s internals work.

Taken together, Git’s features allow worker A to work on a small piece of the total project without coordinating with worker B, and yet also ensures that worker A’s hard work will be integrated into the project. Hopefully you can see why this system is ideal for remote work.

Software people, I think, underestimate how powerful source control really is. I greatly doubt that lawyers, accountants, or civil servants have a similarly sophisticated method of working independently.

Article: Inventing the Data Machine

I’m late updating this, but I wanted to link to my latest article about data science in the political realm.

The country is in a weird state right now, and it seems like we are hurtling toward a state of perpetual partisan deadlock, so please bear in mind this was written back in January. I tried to focus on facts – what a notion! – rather than project my own politics onto the subject. I cover the development of data science in political campaigns and the individuals who contributed to its development.