Problem: I am a human being

A relevant excerpt:

“If you are a person who has come of age during the time of ubiquitous internet access and github, you cannot know what having access to the source code of an entire operating system meant in the mid 90s. When I saw the impact this access had on my own life in the coming years, I began to view closed source software as unethical. In a society that was increasingly mediated by software, restricting access to learning about software works is in my opinion a means of control and subjugation.”

For me, growing up in India, that time was the early 2000s. My first Linux distro was Ubuntu, thanks largely to Canonical shipping out Ubuntu CDs to people around the world, something that seemed like a ludicrous idea at the time.

I wouldn’t be where I am without free software (both free as in beer, and free as in freedom). Also, Star Trek.

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.

Video

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.

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.

Investing in the Open Web

It seems like every few days there’s a new post lamenting the death of the Open Web, and the corresponding rise in ad-driven social media machines and clickbait. Recent examples include this lament on the Cult of the Attention Web (prompted by Instagram moving to an algorithm presentation, away from a chronological timeline), and Brendan Eich’s response to online news publishers strongly objecting to the ad-blocking browser, Brave.

At the risk of beating a dead horse, we seem to have collectively struck a number of Faustian bargains: free services in exchange for our personal information; free articles, audio and video in exchange for advertising, more personal information and ugly, slow sites; walled gardens, in whose operation we have little say, in exchange for ease-of-use. And while I would love to pit advertisers and social media giants against brave independent bloggers and developers in a black-and-white contest, the reality is never quite so simple.

If we really want an vibrant, independent, open web, we need to invest in it with our time, money, effort and technical know-how. But I don’t know if that investment exists, or if the people complaining about the state of the open web are ready to make it. Examples abound: the above piece about Instagram is posted on Medium, which might join said Cult of the Attention Web any day. WordPress, which powers a significant fraction of the open web (and on which this site is built), would rather pretend that it’s a feed-reader and encourage me to “follow” other blogs, than make it simple and quick to write or edit posts (it takes me four clicks from the WordPress.com page to start editing a draft). And I myself would rather rant about investing in the open web than build a CMS that I actually want to, and enjoy using.

If we seriously care about preserving an open web outside of walled gardens and free of ugly, privacy-destroying advertising, we need to be an active part of it. We need to publish to our own domains, backed by services that won’t turn into advertising machines tomorrow, maybe even pay for hosting. We need to vote with our wallets and actually subscribe to publications we want to read and support. We need to write code and build publication platforms that embody our ideals and values, and make it easier for others to do the same.

I do two of those three, though not as often as I would like to. I don’t exaggerate when I say I wouldn’t be where I am in my life without the open web. I would like to invest in it so that others can say the same in the future.

To Compete with Medium

Dave Winer is encouraging bloggers (or really anyone with something to say) to post anywhere but Medium. He says that Medium is becoming a “consensus platform” for posting longform writing on the web, especially for people who don’t have a regular place to post. In doing that, Medium becomes a single point of failure, much like Twitter is for real-time short posts, or that Google Reader was for RSS. That means that Medium becomes increasingly capable of unilaterally changing how writing on the web works, for whatever purposes it desires. Medium could decide what you write, how it looks, who sees it, and whether or not you can take it elsewhere. And if Medium shuts down, you could lose everything you wrote.

Winer says that the reason people don’t just set up their own blog (even if they won’t write regularly) is because it feels wasteful to set up something and then not use it. This holds people back, even though a pure text blog takes up negligible space and bandwidth compared to videos or images. While he’s right about the minuscule size requirements of plain text, I think there’s more to users’ reluctance of setting up their own blog. There is a cognitive cost and mental overhead to setting up your own blog that Medium side-steps. To set up an blog on WordPress or Tumblr, you need to create a user account by providing a username, email address and password. Then you need to create the actual blog, by picking a domain name and title (and optionally, a theme). And then you can start to write.

Medium, on the other hand, lets you sign in via Twitter, automatically selecting your username and other account details (which you can change). After that you can just start writing. To be  fair, you are asked to follow other users and tags, but you can just click a button and move on. That’s exactly what I did before writing this post. There are options to use Facebook and email to sign up as well, but I’m assuming they’re equally streamlined. To break free from Medium’s hold on casual writing on the web, a competing service would have to be just as streamlined and painless.

So how would one go about competing with Medium? First you need to reuse identity from some existing social network or identity provider. Second, writing and publishing a post would have to be super-simple. Finally, to address Winer’s concerns, the competing service should come from an entity whose main business isn’t written content, but somehow naturally falls out of (or can be built atop) the core service. Luckily, there is already a service that can do this: GitHub.

GitHub is a popular code-sharing and hosting service that is very popular with programmers (and increasingly, with non-programmers). By default, GitHub hosts repositories of code, but they have an adjacent service called GitHub Pages that hosts simple websites. As a GitHub user, you can create a specially named repository and any HTML pages in that repository are served as username.github.io. Anyone with a GitHub account (which these days, is pretty much anyone who writes code) can post writing to their own repository and have it be served as a webpage from GitHub. Now, this only completes one part of the puzzle, since there’s no Medium-like interface to actually write your posts. You would have to write your posts using a text editor and push them to your GitHub pages repo. However, such an interface could be created by anyone, not necessarily by GitHub. They would just need your GitHub credentials, temporarily, to post your writing from the editor to the repository.

In conclusion: part of Medium’s attractiveness comes from having a streamlined path to posting irregular writing on the Web, helping to make it a large and powerful platform for web publishing. GitHub Pages provides part of the puzzle to create a neutral competitor that offers many of the same benefits. All that is needed is a writing interface that uses GitHub pages as a backend.

I haven’t talked about the social media and promotional features of Medium. I’m not sure how to replicate them in the same fashion. My goal with this post was to propose an alternative to the publish-and-forget style that Medium allows, and I think GitHub Pages is a step in that direction. Since Winer published his post, Medium has posted a response that addresses many of his concerns. The takeaway from the response seems to be that if you’re afraid of Medium having too much control over your content, post to both your own blog and to Medium.

President Garrett Expands Graduate Student Support and Funding

I had a chance to hear President Garrett speak to the Cornell Graduate & Professional Student Assembly on Monday and was very impressed. I was expecting to hear the standard “Keep up the good work, look forward to working with you” spiel, and was pleasantly surprised to hear about all the activity that’s under way.

In addition to already being active, President Garrett struck me as very well-informed, opinionated, erudite and well-spoken, while being quite down-to-earth and eager to talk to students, rather than down to them. I (cautiously) have high hopes for Cornell under her guidance, and I’m personally looking forward to working with her administration as part of the GPSA.