Sunday Selection 2017-06-25

Around the Web

The Largest Git Repo on the Planet

I’m always a fan of case studies describing real world software engineering, especially when it comes to deploying engineering tools, and contains charts and data. This article describes Microsoft’s efforts to deploy the Git version control system at a scale large enough to support all of Windows development.

Why our attention spans are shot

While it’s no secret that the rise of pocket-sized computers and ubiquitous Internet connections have precipitated a corresponding decrease in attention span, this is one of the most in-depth and researched articles I’ve seen on the issue. It references and summarizes a wide range of distraction-related issues and points to the relevant research if you’re interested in digging deeper.

Aside: Nautilus has been doing a great job publishing interesting, deeply researched, and well-written longform articles, and they’re currently having a summer sale. The prices are very reasonable, and a subscription would be a great way to support good fact-based journalism in the current era of fake news.

How Anker is beating Apple and Samsung at their own accessory game

I own a number of Anker devices — a battery pack, a multi-port USB charger, a smaller travel charger. The best thing I can say about them is that by and large, I don’t notice them. They’re clean, do their job and get out of my way, just as they should. It’s good to see more companies enter the realm of affordable, well-designed products.

From the Bookshelf

Man’s Search for Meaning

I read this book on a cross-country flight to California a couple months ago, at a time when I was busy, disorganized, stressed and feeling like I was barely holding on. This book is based on the author’s experience in Nazi concentration camps during World War II. The book focuses on how the average person survives and reacts to life in the brutality and extreme cruelty of a concentration camp. The second part of the book introduces Frankl’s theories of meaning as expressed in his approach to psychology: logotherapy. In essence, the meaning of life is found in every moment of living, even in the midst of suffering and death.


Black Panther Trailer

I’m a big fan of Ta-Nehisi Coates’ run of Black Panther and really enjoyed the Black Panther’s brief appearance in Captain America: Civil War. This trailer makes me really excited to see the movie when it comes out, and hopeful that it will be done well. If you’re new to the world of Wakanda in which Black Panther will be set, Rolling Stone has a good primer.

When visiting Boston a couple weeks, an old friend of mine remarked that he thought that the humanities should be “the pinnacle of human achievement”. I wasn’t sure what he meant at the time, but the phrase has been rattling around in my head. In between working on a conference presentation, attending a law conference and reading the Meditations of Marcus Aurelius, I think I’ve come up with an explanation that makes sense (at least for me):

Science and technology, for all their towering achievements, are concerned with improving and extending human existence. By contrast, the humanities, (and I think also the arts) should inform and improve how humans live.

Moshe Vardi on Humans, Machines and Work

Yesterday evening I had the pleasure of listening to Professor Moshe Vardi talk about the effects of automation on the workforce and the economy, and how the continued development of AI and machine learning-based technologies might further tip that balance. This post is based on the notes I took during that talk. Please read it as more of a high-level summary, rather than a transcript. The talk itself contained more links and references that I haven’t had the time to chase down, so any inaccuracies and misquotations are probably my own fault.

Professor Vardi is a professor at Rice University, and currently Editor-in-Chief of the Communications of the ACM, and the winner of numerous awards including the ACM Gödel Prize, and the EATCS Distinguished Achievements Award. He is also an excellent speaker and it was wonderful to see a coherent narrative formed out of many disparate threads.

The talk started with a brief mention of Turing’s thesis, which can be read as a compelling philosophical argument for thinking machines, and the related intellectual questions. The early history of artificial machines was characterized by unbridled optimism (expectations that general purpose AI would arrive within a generation), punctuated by several AI winters (1974-80 and 1987-93) where funding and support for AI research dried up. However, 1997 started a new era in AI research when a chess playing computer, IBM’s Deep Blue, defeated Garry Kasparov. More recently, DeepMind’s AlphaGo defeated European Go champion Fan Hui. Crucially, AlphaGo combines machine learning techniques (including deep learning) with search space reduction, resulting in an approach that could be termed “intuition”.

With the resurgence of AI research, automated driving has been the holy grail for about a decade. Cars were one of the most important developments of the 20th century. The automobile shaped geography and changed history, and led to lots of infrastructure development. By some estimates, there are over 4 million truck drivers in the US, and 15 million jobs involving operating a vehicle. Today there are about 30 companies, working on self-driving vehicles, attacking an estimated market of $2 to $5 trillion a year. Experts predict that the main technical issues will be resolved in 5-15 years. While this will be a great technological achievement, it will produce profound business disruption. For starters, there is likely to be major industrial contraction (cares are idle 90% of the time), and a major loss of business for insurance, legal, medical fields, as automobile accidents are drastically reduced.

Unfortunately, this industrial disruption follows a trend that has already been in progress for a while now. The last 40 years has resulted in a harsh negative impact on middle & working class. For much of the 20th century there was a “Great Coupling”  between productivity, private employment, median income and GDP growth: they all followed a linked upward trend. However, since the 70s, this trend has “decoupled”, a fact observable from many dataset. In particular, there has been increasing inequality: a massive decline in the bottom 50% of earners, and a massive increase in the top 1% of earners. There is a declining chance that a person in their early 30s is going to be better off than their parents.

This in turned has resulted in an “Age of Precariousness”: half of Americans would have trouble affording $400 for an emergency, and two-thirds would have trouble dealing with a $1000 emergency. Labor force participation for men 25-54 has dropped from 97% to 88% and those with high school degrees or less were the hardest hit — almost 20% are not working.
Technology is eating jobs from the “inside out”. High-paying and low-paying jobs are both growing, but middle class jobs are declining. According to a Bloomberg 2016 report: as we move towards more automation, we need fewer people in manufacturing and more people go into the service sector, historically a low-wage sector.

All this paints a pretty bleak future, and from Prof. Vardi’s talk it’s unclear what the way forward is. Universal Basic Income seems like one idea to help offset this dangerous trend, but UBI is still a hotly contested topic. The following discussion raised some interesting questions, including asking what the role of “work” and employment is in a mostly-automated society, and questioning the role and responsibility of educational institutes in the near future.

Personally, I feel lucky to be in a field where jobs are currently booming. Most of my work is creative and non-routine, and thus not amenable to automation yet. At the same time, I am very concerned about a future where the majority of people hold poorly paid service sector jobs where they can barely eke out a living. I am also afraid that jobs that seem more secure today (administrators, doctors, lawyers, app developers) will also be gradually pushed into obsolescence as our machine learning techniques improve. Again, no good solution, but lots to think about, and hopefully work on in the near future. As the Chinese proverb goes, we live in interesting times.

Computer Science as a Creative Endeavor

Yesterday, Professor Eugene Wallingford posted about how computer science is not that different from a lot of other professions. Some parts of it are interesting and exciting, but a decent chunk is tedious, frustrating and boring as well. In his words:

Let’s be honest with ourselves and our students that getting good at anything takes a lot of hard work and, once you master something, you’ll occasionally face some tedium in the trenches. Science, and computer science in particular, are not that much different from anything else.

While I agree with the general message, in my experience, computer science is also a wonderfully creative and exciting endeavor (even if we often struggle to portray it as such).

Throughout college I had a variety of on-campus jobs. I was mostly trying to make some spending money, and pay for the occasional trip with friends. Through that time, I remember the jobs that were most fulfilling and interesting involved something that I would broadly call “computer science”. Some of it was doing honest-to-goodness computer science research (which later helped me get into graduate school), some of it was data crunching, and some of it was simply straightforward scripting and system administration, with a dash of web design. In fact, my first job involved calling up alumni asking for donations, and I promptly quit it after a week once I got a job doing some data processing for a professor.

Of course, I had found computers interesting for several years prior to my first college job, so I certainly wasn’t unbiased when I started comparing jobs. I can also imagine that a lot of people would consider calling up alumni a far more interesting job than munging CSV files with Python scripts. And there are certainly parts of even technically demanding programming tasks I find tiresome and would happily avoid (pretty much anything to do with CSS).

All that being said, (and with several years hindsight and interaction with professionals in other fields) I would place computer science on the same level of creativity as screenwriting and practicing law. In all these cases, there are certain structures and rules you have to follow, some more flexible than others. Some parts of tools and materials you have to work with are beautiful and elegant, others are messy and ugly but can be avoided in part, and some are just necessary evils. But within those rules and using those tools, you have the chance for exercising creativity and ingenuity, and maybe even some true beauty (if you’re lucky and capable enough). In fact, having taken a bunch of law classes, I would say that the practice of computer science has a lot in common with the practice of law (though that’s a matter for another post).

Perhaps the view of computer science as tedious is an indictment of our teaching methods, our tools, or the creeping incidental complexity that easily infests software projects of any size. But if projects like Pyret, Scratch and Jupyter notebooks are any indication, there seems to be concerted effort to change that. I’m not a fan of the mindset that says that HTML/CSS/JS must be taught to everyone, and it would be disingenuous to say that computer science is simple or easy. But as both academics and practitioners, I do hope that we can be honest about the effort and occasional drudgery involved, while helping understand and appreciate the joy of programming and the thrill of computation.

Picking Your Battles

Over the weekend I took a few hours off from a paper push to watch a couple episodes of the second season of Gotham. In one of them, Alfred Pennyworth has some words of wisdom for the young Bruce Wayne (who has just signed him up for a fist fight):

Pick your battles, don’t let your battles pick you.

Just prior to watching this, I was busy planning a trip I could have planned weeks ago. That probably explains why I thought about Alfred’s line in the context of planning and organization. I often put things off until the last moment, and then get them done in the nick of time, feeling like my back’s against the wall. As a result, I’m often just doing the bare minimum, and repeatedly losing the opportunity to do a better job, or as happened with planning this trip, get more out of an experience.

Being early and prepared lets you pick your battles. Procrastination and disorganization lets your battles pick you, and often lets them kick your ass.

A Kickstarted Reissue of Principia Mathematica

A small Spanish publisher, Kroeneck Wallis, has a Kickstarter for a new version of Isaac Newton’s Principia Maethematica. As you can see from their Instagram account, the finished product is going to be beautiful. The publishers are making some interesting design choices, including producing a separate book for each of three chapters of the original, using a visible binding that leaves the spine bare, the use of just two colors (petrol blue and coral orange) and a low contrast serif font.


As of this writing, the Kickstarter is already a third complete, with over three weeks left. There are a number of support options, starting with a single copy at just €45.

(Via Jason Kottke)

Star Trek Beyond

Was very enjoyable. Spoilers follow.

The movie was a lot of fun, and managed to hit a good mix of serious and light-hearted. I liked it much more than I did Into Darkness, and it might just be my favorite of the the Abrams Star Trek movies.

As my favorite Star Trek blog calls it: it was a romp. It was a lot of fun and struck most of the themes that make Star Trek what it is—interesting characters, healthy optimism, underlying themes of unity, courage and friendship, and struggles both personal and epic. Take out the destruction of the Enterprise and squeeze it down to under an hour and the movie would have made a great TOS episode.

The visuals are of course simply beautiful (something true of the Abrams movies in general). The outfits, locales and effects in general are well done. The sequences of scenes showing life aboard the Enterprise and Starbase Yorktown are smooth, informative and impressive without being overwhelming. In fact, I would say that the scenes aboard Starbase Yorktown does one of the best jobs of showing off life in the Federation in any iteration of Star Trek.

Finally, the movie also does a good job of addressing Nimoy’s death (and the loss of the one of the main characters of both this, and previous iterations of the franchise). It’s not overly dramatic, but it is respectful, elegant and helps drive the rest of the story forward. And I absolutely love that one of the final shots of the movie is this photo of the original cast:


The movie wasn’t perfect: the action seemed choppy, some of the humor was unnecessarily forced, and some of the science was suspect. But it was a damn good Star Trek movie and a good movie in general. Would watch again.