Zombie Zen

Roxy's Blog

My Story of Getting Things Done

Posted at by Roxy Light

It was a packed day: all meetings that required my attendance. The only breaks were for breakfast and lunch and a lone 30-minute break between other meetings. I had to meet with my remote manager, my new product manager, one of my team members, and customer liaisons for a new customer we were hoping to work with. On top of that, it was Agile sprint planning day — I had to run the task planning meeting and moderate two design discussion meetings. In between all that, I needed to write up my top accomplishments to my manager for performance review. The previous night, I realized that one of my mentoring meetings tomorrow didn’t have enough time to actually accomplish my mentee’s goals. All the while, a wave of emails and pings were crashing in. How was I going to get this all done?

Read more…
Posted at
Permalink

Life of a Go Infrastructure Maintainer

Posted at by Roxy Light

I originally gave this as a talk at the Seattle Go Meetup on 2017-02-16 (video). The following is a refined version of the talk, not just a verbatim transcript, based on my speaker notes.

Read more…

Canceling I/O in Go Cap'n Proto

Posted at by Roxy Light

This report details an experience I had while writing an RPC system in Go. While Go’s standard I/O libraries make a great many things simple, I found cancellation to be more complex than I would have liked. Parts of this situation have improved in the last couple of Go releases (as I have noted below). I hope this positive trend continues in a way that allows the Go ecosystem to easily propagate cancellation, deadlines, and request values. My intent in this report — as well as the proposal I created back in May 2017 — is to give background and feedback to inform future design decisions. Suggestions for solutions welcome!

(Thanks to Ian Lance Taylor, Damien Neil, Cassandra Salisbury, and Andrew Bonventre for reviewing this report for accuracy and clarity.)

Read more…
Posted at
Permalink

Rewriting moviegolf.com

Posted at by Roxy Light

In April, I relaunched moviegolf.com, a website I’ve operated since 2009. Since this is one of the flashier programs I’ve written and certainly one of the longest-lasting, I wanted to recount its history. My style of programming has definitely shifted in the intervening years.

Read more…

moviegolf.com lives on!

Posted at by Roxy Light

It’s long overdue, but… moviegolf.com is back and better than ever! Give it a try!

A quick recap of this saga: moviegolf.com is a website I created in high school to find the optimal path between two movies based on shared actors. However, in the years since, it has bit-rotted significantly. At the time, I used Freebase, which Google acquired for use in the Knowledge Graph, but shut down in 2015. Since then, the site has limped on, forever stuck with an outdated set of movies. moviegolf.com was in a deep coma with an uncertain future.

My goal in doing a rewrite was twofold: I wanted to have a Go service running in production that I understood intimately and I wanted to make the service more self-sustaining. I made an unsuccessful attempt to do this about five years ago. At the time, I was discouraged by App Engine limitations and the difficulty of acquiring data. Luckily, the data from Freebase lives on in Wikidata with a much better data crawling story, but the file formats and API are totally different. Getting the data automatically required a total rewrite of my lousy ~10 year old data ingestion pipeline. I took the opportunity to rewrite the search algorithm, storage backend, and UI while I was in there. I did scrap some features for the sake of time, but nothing that I felt was critical for the experience. I wanted to focus on the core “golf” experience. From start to finish, this took a little over a month of weekends and evenings. I’m planning on doing a write-up of the salient technical details soon, but in short: GCP rocks and simple components make for robust services.

Golf on!

← Previous Page Next Page →