Posts

Showing posts from 2017

What I learned in 2017

Shipping an Audio Pipeline In 2017 I shipped a new audio rendering pipeline for the iOS version of  Google Play Music . I use it to render a particular flavor of fragmented MP4 that we use in the Google Play Music streaming music service. It was quite a learning experience to write and ship real-time audio code on iOS. If you are looking to write an audio pipeline for iOS, I highly recommend basing it on  The Amazing Audio Engine 2 . Core Audio is a powerful library with an peculiar API. TAAE2 provides a much nicer API on top of Core Audio, without adding much overhead. I had designed and implemented much of my new audio pipeline in 2016, but 2017 was the year that I deployed the pipeline to production. I learned that shipping an audio rendering pipeline comes with a long tail of bugs, most of which have the same symptom: "I was listening to a song when it stopped". I was able to find and fix most of my bugs by using a combination of: Great base libraries. (TAAE...

The Modern Family's Guide to Technology to take on a European Vacation

Image
This summer I took my Seattle-based family of five for a three-week trip to Europe. We had been promising the trip to our kids since they were little, and this year we were finally able to go. We had a wonderful time! Using our phones at the Eiffel Tower Here are my tech-related traveling tips. Disclaimer: I am not being paid to write this, and there are no affiliate links. I'm writing this to help me remember my trip, and in the hope that it will be helpful to other families (and maybe even couples and individuals) planning similar trips. Hardware Tips Take your mobile phones Take one modern mobile phone per person. Android, iPhone, either is fine, but you'll want something with a SIM slot and nice camera. Leave your laptops at home I didn't take any laptops with me, and I was able to do everything I needed to do using just my mobile phone. It was a relief to not have to lug around a laptop. A few times I had to request the desktop version of a web s...

Family Computers, 2017 Edition

A quick update on my family's computers, as we start the 2017-2018 school year My family's current setup Google WiFi iPhones Macbooks Windows Gaming PC School-provided Windows convertible tablets  iPads AppleTV Wii Chromecast Audio Laserprinter All-in-One. High speed document scanner Nest thermostats Google Home Changes since last year Home Network I bought a set of Google WiFi routers. I love them. They have worked flawlessly since the day I plugged them in. Best Google hardware product ever! Phones I upgraded my kids to refurbished iPhone 6s+s in Incipio cases. They are happy campers. We kept their old iPhone 5s's as backup phones for science projects and vacation trips. No more Beats headphones I've been having problems with my kids' Beats headphones. I had two sets of headphones, and they both needed to be repaired twice while under warrantee. When they broke again after the warrantee had expired, I just threw them away. I no...

Team Blue Iris ICFP 2017 Programming Contest Postmortem

Image
Team Blue Iris ICFP 2017 Programming Contest Postmortem My son and I competed as team "Blue Iris" in the ICFP 2017 programming contest . The ICFP programming contest is an annual 3-day programming contest sponsored by the  International Conference on Functional Programming . Functional programming is an approach to writing programs that stresses writing as much of the program as possible in terms of functions. That's as opposed to the more commonly used imperative programming . In the contest, people form teams to compete for three days to solve a problem, using any combination of programming languages. People compete for the joy of problem solving in the language of their choice. It's common for people to use outlandish or obscure programming languages. It's sort of like the Wacky Races  of programming contests. I've competed in this contest about six times over the past 10 years. This year was the first year my son joined me. My son's got a...

On-the-cheap Machine Learning computer

I recently put together a cheap-and-cheerful machine-learning-capable PC. https://pcpartpicker.com/list/wwyQ2R Highlights are: Pentium G4560 CPU NVIDIA 1060 6GB GPU 16 GB RAM 512 GB SSD The main difference from a budget gaming rig is that I chose a relatively overpowered GPU. This is because for machine learning I think the main bottleneck will be GPU RAM size. This particular GPU model has a lot of RAM (6GB) for a relatively low price. The other extravagance is the 512 GB SSD. It would have been cheaper to use a smaller SSD coupled with a traditional hard drive. I went with a single SSD because I don't want to deal with the hard drive. So far my son's done far more gaming than I've done machine learning. He likes the system a lot. It's >10x the graphics performance of his previous machine, a 2012 Mac Mini running Windows 10 in Bootcamp.