• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Will Angley

Just another WordPress site

  • About
  • Photos
  • Words
  • Resume
  • Contact

Words

Ask Will: what WiFi router do you use?

September 26, 2017 by Will Angley

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.

It took a couple hours in total, and that was with having some idea what to look for since I’d worked on WiFi for a few years. If I hadn’t, I’m not sure I would have gotten to an answer at all. (Anecdotally: I tried and failed to find an OpenWRT router once before, four years ago, and bought an Airport Express instead. I think I’ve changed more than the way the Table of Hardware works but it’s hard to be sure.)

Setting up the router with LEDE was straightforward once I got past this, and it’s been running smoothly for the past week.

Filed Under: Words

Word of the day: Late warning department

September 17, 2017 by Will Angley

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.

I told a few friends about my interaction with the early warning department. One, who had worked in payments, was less impressed than I was. He said it sounded more like a “late warning department” since they didn’t reject the charges in real time :).

I didn’t think much of this at the time. But I’ve since had interactions (with other companies!) that went much like this, where something that could have been addressed with a few seconds of text messages at the time wasn’t and turned into a an hour or two sorting things out with Support the next day.

Can we please start making systems that ask us for help before problems get big enough to be annoying instead of after?

Filed Under: Words

When all else fails, try a USB stick.

May 15, 2017 by Will Angley

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. There are far fewer ways for that to go wrong than most other ways of installing software. Maybe that would work too?

It did. When all else fails, try a USB stick.

Filed Under: Words

Touring Go

July 7, 2014 by Will Angley

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. Having specific work in mind definitely helped here.

Thoughts on getting set up

I had reservations about the setup process, but actually working through it showed that it was fairly straightforward to do. It took about twenty minutes:

  • When it was actually time to install Go locally, it was as easy as brew install go.
  • Go’s concept of a runtime path (GOPATH) is different than most other languages I’ve worked with, so my Go code doesn’t live in the same place as any other code on my computer does. But it’s been painless once I decided on a location for it.
  • I’ve been happy with the editor support in Vim.
  • Getting godoc to work was the “toughest” part – it took a bit of searching to do, unlike the rest of the steps above. But it made the exercises a lot easier once I did.

Thoughts on the tour

The tour doesn’t let you log in to save your state, so I wound up typing the same exercise several times as I switched computers (or rebooted them for updates) over the course of the tour. I learned my lesson and started saving the files to GitHub before getting to the bigger exercises at the end.

The language itself has been really pleasant to work with, and the tree comparison exercise solution was enough to sell me on it: it’s really amazing to be able to read input and output across routines. I’m probably going to have to write a bunch more programs in it before I feel comfortable though.

I feel like the tour buries the lede here though. This exercise is ten slides after the point where I gave up last time (when it asked me to set up a local server) and I hope I would have kept going if I’d read that then.

Both my solution (no link at the moment) and the Go Author’s solution to the Web Crawler exercise at the end make use of language features that aren’t actually covered in the tour. I struggled for a bit trying to fit the solution into features that were included, and a note that you should check the sync package documentation out would go a long way here.

On what I’ve seen of the language

Being able to write tree algorithms neatly out-of-the-box is a really nice feature to have, and I’m probably going to start looking for problems to use it on now. Project Euler, and some of the Coursera optimization classes, come to mind right away. Go was clearly designed to be good at these, and it shows in the first few hours of work.

The built-in HTTP support is really nice, and is a major step above other systems I’ve worked with. I’m looking forward to seeing what I can do with it.

The experience of compiling and running a tiny program with go run is really nice compared to Java, and not having to write (C|Pre|Auto)?Makefiles is really nice compared to C and C++. It’s just as easy to throw something together in Go as it is in Python, and I’ll probably be doing a lot more of this now.

Reservations

I’m still feeling a bit of missing feature anxiety; I found the combination of slightly stronger-than-Python typing with no generics uncomfortable when I tried programming in raw C the last time (about a year ago). Although I know Go typing is smarter than this, I feel like I’ve gotten used to counting on these in my designs.

The lack of a built-in interface to the windowing system is a bit of a shock. Although it doesn’t matter in The Cloud, when running locally I feel like I’ve lost something that I was able to do well in 2002 in Visual Basic. To this day I’m more comfortable drawing diagrams in Tkinter than I am in a web browser, and browsing to web servers on localhost:SOME_BIG_PORT_HERE still doesn’t feel completely natural to me.

What I’m going to do next

Write more Go programs, of course! This is the first time in a while I’ve been excited to learn a new programming language, and I want to take advantage of it while the excitement lasts.

Quite probably, brush up on my ‘drawing pretty pictures in a Web browser’ skills. I have a pattern book full of pretty pictures, Tufte’s The Visual Display of Quantitative Information, that I haven’t gotten to draw from in a bit too long, and I’d like to put some of them to use while I’m doing the above.

Read How to Write Go Code, the language specification, and Effective Go after I’ve written enough code to appreciate each in turn.

Update my résumé to include 0 years of Go experience, and see how many recruiters find me with buggy regular expressions ?.

Filed Under: Words

  • « Go to Previous Page
  • Go to page 1
  • Go to page 2
  • Go to page 3
  • Go to page 4

Primary Sidebar

About the Author

Will Angley likes to take photos, and pays the bills by writing code for a big company.

By clicking submit, you agree to share your email address with the site owner and Mailchimp to receive marketing, updates, and other emails from the site owner. Use the unsubscribe link in those emails to opt out at any time.

Follow me

  • GitHub
  • Instagram
  • LinkedIn
  • RSS
  • Twitter

Top Posts

  • How I set up Tailscale on my WiFi router
  • Why does installing Wi-Fi still involve knocking holes in walls?

Recent Posts

  • 🗽Statue of Liberty
  • Sunsets are back!
  • Marking myself out of a corner
  • Incident of the day: Bonobos
  • Why does installing Wi-Fi still involve knocking holes in walls?

Categories

  • Photos
  • Words

Copyright © 2014–2023 Will Angley · Privacy Policy · Made with ❤️ and WordPress in NYC