That wasn't it

I’m still not able to reach my Chromecast reliably. I last lost connectivity two days ago, which was way less than 49.7 days since I last rebooted my WiFi router. I might have a problem with overflowing counters, but I also have something much more immediate going wrong. I’ve also backed out my IPv6 workaround, since it didn’t seem to be helping; rebooting the router likely had more to do with the Chromecast becoming reachable than the “workaround.

49.7 days

My Chromecast had been difficult to reach from my Pixel for a little more than a month, and then today it stopped showing up altogether. I tried my iPad and found it was unreachable from there too. I factory reset the Chromecast. I was able to set it up, but not to use it, and the Google Home app told me to check my WiFi router. I found it had been running for 83 days and counting.

Word of the day: kapnobatai

Today’s word of the day is ancient Greek: kapnobatai, literally “smoke-treaders” or “those who walk on clouds.” It comes to us as the nickname for an ancient people in Strabo’s Geography. The work Strabo cites is now lost, and scholars have advanced several theories to explain what the nickname referred to. One theory is that the people would enter trances walking in clouds of smoke. It’s this theory that makes kapnobatai my word of the day, since it’s a word we need again, for modern engineers entranced by clouds of computers.

IPv6 and Chromecasts, side by side

After several days of having trouble casting Midsomer Murders from Netflix on my phone, I realized that something might be going wrong. A few Google searches, a look at my phone’s and WiFi router’s status pages, and a prayer to Saint Isidore later, I realized that I was probably encountering a known issue with IPv6-enabled home networks. I still wanted my computers to have IPv6 when possible, so I didn’t want to disable IPv6 on my home network.

R7800: from unboxing to LEDE

Once I got the Netgear R7800 I wanted, I needed to set it up. It went something like this, and took several hours. I didn’t have a checklist for most steps, so I had to figure them out as I went. But if you’re anything like me, you can use this one and be done sooner: Unboxing the R7800 The Netgear R7800 comes in a nice box, with four directional antennae that screw on to the router.

Ask Will: what WiFi router do you use?

I use a Netgear R7800, running a release build of LEDE Reboot 17.01.2, and am happy with it. It’s a powerful WiFi router, lets you load your own Linux on it, and will turn on WiFi once you do. And it has a recovery mode which lets you unload your own Linux if you mess up and put something on it that breaks it. This was hard to figure out: I read a whole lot of forum threads that talked about discontinued routers, or routers that worked once but were now locked down, or routers that only worked in Europe, and then one forum thread that was enough to make a decision.

Word of the day: Late warning department

Late last year, I got a note from my credit card company that their “Fraud Early Warning Department” had flagged some transactions as suspicious and asked me if I’d made them. I hadn’t. I was able to get everything resolved within a few weeks though, and I was excited the company had caught this for me within a day of the charges happening, instead of needing to wait for my monthly statement.

September 11, 2017

Some friends and I were working late on September 11 and we saw the Tribute in Light in the distance. We decided to visit it.

I picked up my camera, loaded it with ISO 400 film since it was the fastest I had, and we started walking.

Last week in review

I missed the Research talks this week while working to meet a deadline (perhaps a bit too hard in hindsight), but did learn about a paper that seems cool: “Segmental Recurrent Neural Networks“ by Lingpeng Kong, Chris Dyer, and Noah A. Smith a neural network architecture specialized for the segmented nature of language, in any of text strings, handwriting, or speech. Specializing the structure of neural networks greatly improves performance in other domains - convolutional networks do better at visual tasks, neuron-for-neuron, than other ways of building neural networks.

One month in

I’ve spent the past month learning how to employ Google’s natural language processing technologies, and building a starter application for my team. Learning things is hard if you try ramping up suddenly, just like exercise is, and getting up to speed quickly has left me a little bit sore too. Language is statistical, so no machine and no person will understand it correctly all the time. But the tech I’m using – and that you can use through the Cloud Natural Language API – has been accurate often enough for me that I’ve only needed to think about it once, when analyzing old texts like Walt Whitman’s Song of Myself.

When all else fails, try a USB stick.

I was trying to upgrade the BIOS on an HP Z840 workstation at work today, and hit a wall. The live upgrade options (via hp-flash on the command line, and via a netboot image) were hard freezing the system. Neither I, nor a local Linux expert, were quite sure what was going on. Then I remembered something from working on WiFi routers; when all else failed, we’d read and install an image from an attached USB stick early during boot.

Joining Google Research

I’ve joined the Coauthor team, in Google Research. I’ll be working to make Explore in Docs more helpful, more often. I’ve touched on natural language processing before, while working on the Google Search Appliance – we’d refer to Introduction to Information Retrieval to help customers understand what Search could do for them – but only briefly. Most of this is new to me, and I’m excited to get started.

Raspberry Pi WiFi losing connectivity? Check your AP.

A couple weeks ago I plugged an old TP-LINK WiFi adapter into my Raspberry Pi 2, and found it would fall off my WiFi network after a couple hours. Connecting over a serial port showed that the connection was associated but no IP traffic could flow; pings to the default gateway and 8.8.8.8 failed. One of the things I learned when working on Google Fiber WiFi is that this is a sign of a bug.

Can you send me your résumé?

I’ve had two résumés for most of the past three-and-a-half years: My best-maintained résumé is a “Google resume” – an internal résumé that links to details of what I’ve worked on that are only available within Google. A LinkedIn profile, because one of my professors in grad school told me that I should. Then I applied to a job at Sidewalk Labs earlier this week, and realized that I needed a not-internal résumé too.

Oncall control of software systems

I read On-call is broken: Kahneman and Tversky told me so, by Google’s Niall Murphy, a couple weeks ago and have been thinking about it on and off since. I’ve been oncall for complicated systems before, like Google Search Appliances, and it is not the most fun place to be. I’ve also been re-reading Feedback Control of Computer Systems and think they have something to say about each other.

Looking back

Why did I join Google Fiber, and take up making WiFi routers? Part of it was an accident of the team; I worked with the engineering team part-time (a 20% project, those still exist!) before joining, and since they started and finished later than my 100% team did it easy to do both. The team turned out to be unusually awesome once I got to know them, and willing to help me learn how to be a software engineer.

Leaving Google Fiber

As of this Wednesday, I’m no longer working on Google Fiber, and looking for a new project to work on. The last month was a little crazy, but now that things are calmer for me I’m going to try working through my inventory of “things I’d like to do” and “blog posts I’d like to write while I still remember how WiFi works 😉.” I’m still employed at Google, and very much open to staying there.

Why it Takes so Long to Connect to a WiFi Access Point?

Paper: Why it Takes so Long to Connect to a WiFi Access Point? Connecting to a WiFi network is quick on average, but takes a long time when common things go wrong. Chinese scientists working on Tencent’s WiFi manager app decided to study this and see if they could make things better for people using their app. They updated their app to note when each step of the WiFi connection process had happened, and looked for patterns.

Could a neuroscientist understand a microprocessor?

The best paper I read this week was a question: Could a neuroscientist understand a microprocessor? The quickest way to understand it is by asking another question: why would you expect one to? There’s a big effort underway to map how all the neurons in animals connect to each other, and the electrical impulses from neurons in the system as the animal is doing things, and then Just Add Math to figure out how the whole nervous system works.

Giving effective support

Dreading going home for the holidays and dealing with all the broken computers? Tech support can be hard when you’re figuring out how to do it in the moment, even if you write software for a living. But it gets a lot easier if you apply a few techniques that Support professionals do. You’re not alone! Way more products come with tech support than the people asking you for help will remember.

Ask Will: How do I write for my website?

Most of writing for the Web is just writing. If you aren’t writing much now, remember what you learned in school: most successful writers read widely, write regularly, and publish what they’ve written frequently. Read Web pages more thoughfully than you normally do, since you’ll now be looking to learn both style and facts from them. Notice how paragraphs are short and direct, because that looks best on the screens we see the Web on.

Ask Will: How do I set up my own website?

A friend asked: how do I set up a personal website to host my résumé, bio, and essays that I’ll occasionally write on it? Buy a domain Browse to Google Domains. Type in keywords for your full name. I used Will Angley here. Click the magnifying glass (search) icon. Look for a $12/year domain in the list. willangley.org was here when I did this, but should not be any more 😉 .

Notes from Mass: the Pharisee and the tax collector

I went to Sunday service a day early this week, a vigil Mass celebrated by Father Bill at St. Francis Xavier. Here’s what stands out in my mind afterwards:1 In today’s Bible readings, Jesus tells a parable about a Pharisee and a tax collector praying in temple. Fr. Bill then opened his homily by asking us “What’s wrong with this picture?” This is both a literal question, and the title of a children’s puzzle book2 he enjoyed growing up, where you had to spot the differences between two pictures.

Full text of my OPM breach notification letter

UNITED STATES OFFICE OF PERSONNEL MANAGEMENT Washington, DC 20415 Dear WILLIAM ANGLEY III: Thank you for contacting the verification center to determine if you were impacted by the malicious cyber intrusion carried out against the U.S. Government, which resulted in the theft of background investigation records. Most of the individuals whose information was stolen previously provided information for a background investigation or were listed on a background investigation form by a spouse or co-habitant.

Your Social Security Number... was included in the intrusion

It’s official: my background investigation files were stolen from the U.S. government last year in a “malicious cyber intrusion.” I learned that I had likely lost personal information from the media in July 2015, but didn’t receive a corresponding notification from OPM. After reading a sharply critical report from the House Committee on Oversight, I filed a request for the Government to determine if I was affected in September this year1.

Raspberry Pi 2 setup notes: part 1

I got a Raspberry Pi 2 last spring, and between then and now have forgotten how I set it up. This time I’m taking notes, in the hopes of not forgetting for a third time. My Pi tends to face the Internet in one way or another, and will run for far longer than anything other than the Network Box I use as a home router. So these instructions are closer to what you would use to set up a full-fledged server than what you might be used to.

The Nine Billion Names of God

“The Nine Billion Names of God” is a famous short story by Arthur C. Clarke, written in the early ‘50s. Even if you have never read it, or never heard the story’s name, you might well know the way it ends: “Look,” whispered Chuck, and George lifted his eyes to heaven. (There is always a last time for everything.) Overhead, without any fuss, the stars were going out. I certainly knew the ending; my Dad had told me about this story years past, and had just read an (as-yet-unpublished) short story that ended as a parody of this recently.

Learning to Program

This post tries to do two things: tell a story about how I learned to program when I was younger, which has been one of the most defining skills I’ve learned yet, and answer questions about learning how to program today. I’m far from being an expert on this, but I hope this is good enough to be helpful. And, if we’ve met in person and you’ve asked me how to learn how to program, good enough that you don’t feel like you needed to take notes.

Wireless networks: like VCR clocks, but 10x worse

A few months ago, I joined a team that builds software for wireless routers at Google. Some time after that, I found that I’d started noticing how well my laptop’s wireless connection was working even when I wasn’t deliberately trying to. I recently went home for vacation for the first time since then, to visit my lovely family and their ISP-provided router in the basement. I haven’t regretted the visit, but I definitely regretted paying attention to the wireless network.

Touring Go

After working at Google for a bit less than a year, I’m about to start working on some internal projects that use the Go language. I’ve had to learn the language from scratch, and spent the last couple of days working through A Tour of Go to do this. I think I’ve tried it a few times before, but this is the first time I’ve made it through to the end.

Feeds, Maps, and Tweaks

The blog should be effectively set up now. I’ve added an RSS feed to the home page, so you can follow along with a reader like ReadKit; a Sitemap so search engines can follow along too; a custom 404 page, that you will hopefully never see; and turned on emoji , that you hopefully will 😉. Read on if you’re interested in the technical details of how this was done.

This weekend's work

When I put up the placeholder site that had been here until today, I challenged myself not to replace it until I had something that was readable on a smartphone like the placeholder was. I got to work over the weekend, and the site you see now is the result of a few hours worth of a design process that went like: I set up a Jekyll site with the default template.