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.

Work, Life, Balance, Choose Two

Yesterday a friend of mine asked me how I manage to get everything done, in the context of being a grad student. Truth be told, I don’t always manage to. I often get things done either just in time, or just after time, and some things are routinely put on hold (cooking, vacuuming) so that other things can get done on time (papers, code). The so-called “work-life balance” can be an often elusive goal for graduate students, and I suppose for academics in general. While some academics I know are better at it than others, I doubt there are few, if any, who have nailed it down.

With that in mind, yesterday I also stumbled across a poem (and recording) by the late Kenneth Koch that seems relevant. Entitled “You want a social life, with friends”, it is of course about the difficulty (and the compromises involved) in making its title a reality. I won’t support or deny its claims, but at least at first reading, there does seem to be an undertone of truth to it. Without further ado:

You want a social life, with friends,
A passionate love life and as well
To work hard every day. What’s true
Is of these three you may have two
And two can pay you dividends
But never may have three.

There isn’t time enough, my friends—
Though dawn begins, yet midnight ends—
To find the time to have love, work, and friends.
Michelangelo had feeling
For Vittoria and the Ceiling
But did he go to parties at day’s end?

Homer nightly went to banquets
Wrote all day but had no lockets
Bright with pictures of his Girl.
I know one who loves and parties
And has done so since his thirties
But writes hardly anything at all.

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 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.

Karl Popper on Intolerance

Intolerance and discrimination seems to be all over the news lately. Two examples that readily come to mind are the LambdaConf fiasco and North Carolina’s LGBT discrimation law. One question that often comes up when talking about discrimination is: how much should we tolerate intolerance? For example, is it acceptable to ban people with known discriminatory views and actions from gatherings, irrespective of their other qualifications? Is it morally acceptable (or maybe even mandatory) to boycott gatherings and events and places that invite such people?

In that context, I wanted to share the following interesting excerpt from Karl Popper’s, “The Open Society and Its Enemies”, posted by one of my former coworkers. I wouldn’t say it answers once and for all questions of fighting intolerance, but it is a solid foundation from which to consider and answer such questions.

The so-called paradox of freedom is the argument that freedom in the sense of absence of any restraining control must lead to very great restraint, since it makes the bully free to enslave the meek. This idea is, in a slightly different form, and with a different tendency, clearly expressed by Plato.

Less well known is the paradox of tolerance: unlimited tolerance must lead to the disappearance of tolerance. If we extend unlimited tolerance even to those who are intolerant, if we are not prepared to defend a tolerant society against the onslaught of the intolerant, then the tolerant will be destroyed, and tolerance with them. In this formulation, I do not imply, for instance, that we should always suppress the utterance of intolerant philosophies; as long as we can counter them by rational argument and keep them in check by public opinion, suppression should be most unwise. But we should claim the right to suppress them if necessary even by force; for it may easily turn out that they are not prepared to meet us on the level of rational argument, but begin by denouncing all argument; they may forbid their followers to listen to rational rational argument, because it is deceptive, and teach them to answer arguments by the use of of their fists or pistols. We should therefore claim, in the name of tolerance, the right not to tolerate the intolerant. We should claim that any movement preaching intolerance places itself outside the law, and we should consider incitement to intolerance and persecution as criminal, in the same way as we should consider incitement to murder, or to kidnapping, or to the revival of the slave trade, as criminal.