The Brain-Hand Barrier

I’ve never been a particularly fast typist. Despite reading Steve Yegge’s very entertaining Programming’s Dirtiest Secret once every few months or so, I’ve been stuck in the 40 to 50 words-per-minute range for a few years now. Most of the time, this is not a big problem, for multiple reasons. In the last few months, I’ve been mostly writing code, not words (as witnessed by the rather low rate of posts on this blog). When you’re using a fairly succinct and powerful language (like OCaml) and working on research code, the major bottleneck to getting things done is often your thinking speed, not your typing speed. And for the rest of the times there are well-chosen Emacs keybindings deeply ingrained into your muscle memory.

I’d like to start writing more honest-to-goodness words—I’m pulling this blog out of the mothballs, I’m keeping a daily log of my research work and possibly a personal journal. And that’s on top of the usual emails and IMs and other sundry typing activities. As I’ve been ramping up my word count, I’ve been noticing something curious that’s purely anecdotal and quite possibly, completely wrong. But this is my blog and something is often better than nothing so I’m going to put it here for all eternity.

I claim (completely without proof) that when writing words (at least non-technical words) the bottleneck can often be your fingers. If you’re a slow typist (or an adequate typist, like me) you find yourself frantically trying to get ideas and thoughts down before they all slip away like water between your fingers. As a result, increasing typing speed can actually be better in at least two ways: first, typing faster lets you get raw thoughts down much faster leaving you time to come back and edit later. I know that a lot of people subscribe to the philosophy of writing slowly, even going so far as to using pen and paper to slow themselves down. Personally, I’m in the Hemingway camp — write drunk; edit sober. Since I have absolutely no intention of becoming an alcoholic, I’ll go with “write fast; edit slow”. It’s boring I know, but I like my liver and my brain cells.

Second, for a certain type of personality (including me), knowing that you’re fast enough to get something down without a major interruption in whatever else you’re doing makes you more likely to actually put it down, rather than having it banging around inside your head. For more on why getting things out of your head is helpful, I point you to the last book I read Overwhelmed: Work, Love and Play When No One Has the Time and a tl;dr review/article of the same name.

Both of the above are benefits from fast typing, apart from the professional benefits you might get (for which I point you back to Steve’s post).

So to conclude: type fast, type lots, edit slow, publish some. There’s probably a rant about RSI and how the Hobbit movies could have been made better and shorter with a good editor that can be extrapolated from that last sentence, but that will have to wait for another day.

Problems versus Exercises

A few days ago an interesting set of articles on mathematics education did the rounds on Hacker News. The first of those articles is “Problems versus Exercises” which talks about how a mathematical exercise (repetition to develop a skill) is different from a problem (something that is difficult to solve and often requires some creative skill). That articles is followed up by “Repetition and Practice“, “Resources about Learning Mathematics” and “Courage in the Face of Stupidity“. The last, especially, is a worthwhile read for people involved in any kind of intellectual, creative activity.

Personally, I had never quite realized the difference between exercises and problems, and I suspect neither have most people (even among the more mathematically inclined). Most of my mathematics education has been focused on exercises (however, I can distinctly remember examples of “problems” in physics). While I’ve never been afraid of math (and generally achieved respectable grades in mathematical subjects), I’ve never been particularly fond of it either. In fact, I’ve often said that I have a “grudging respect” for mathematics. I do wonder how much of that is due to my education, and how much is due to my having strong interests in the arts and humanities (then again, how much of that is due to my education, I wonder). All of this is a long winded way of saying that though I’ve never really articulated the difference between exercises and problems, I have been known for a while that the typical classroom exposition of mathematics is only provides a part of the picture.

Over the last few years I’ve been exposed to increasing amounts of mathematics. My main interest is in programming languages, which can be deeply mathematical (though it’s a breed of mathematics far different what most people would recognize as “math”). I recently started learning machine learning, which is yet another deeply interesting branch of applied mathematics. A lot of this exposure has been problem-centric, rather than exercise-centric (though there have been exercises along the way). While I certainly wouldn’t classify myself as a mathematician (I’m more comfortable building things than proving theorems), I’ve been developing an increasing respect for mathematical thought and tools.

A side-effect of this exposure is that my interests have been changing. I’ve been losing interest in things like web development, productivity tools and the like and becoming more interested in problems and ideas with an interesting formal foundation combined with practical applicability. In some ways, I’ve been losing interest in exercises (repeating questions to which I already know the answer) and gaining interest in problems (deep questions and fields of knowledge in which I have little to experience, and where the answers aren’t immediately obvious). I suppose this might just be a natural part of the passing of a few years since graduation.

For a long time now, I’ve been of the opinion that teaching mathematics is hard, and reading the above-mentioned articles has further cemented that notion. I think that mathematics is, by and large, an acquired taste. The dichotomy between exercises and problems (and to some extent, that between smartness and hard work) makes the acquisition of that taste particularly tricky and difficult. To acquire it, you need to be exposed to problem-oriented mathematics fairly early and regularly, but not so early that you don’t stand a chance of making progress. I think this is a balance that is very difficult to maintain, especially in large classrooms with students of varied skill levels.

I wish that I had understood the exercise/problem difference much earlier. Luckily for me, it’s not too late and I have plenty of opportunities to explore both sides. If your daily work involves mathematics (whether in terms of work, research or teaching) I’d love to hear further ideas on this difference (and how we can spread the word).

Why you, too, can PhD

It’s getting to the time of the year when graduate programs are accepting applications and deadlines are approaching. Graduate school is a bit of a misnomer, since it’s not really school or a job. If you’re not sure what grad school is all about, you’re not alone. It took me a good while to figure it all out myself. To make the process easier, Cornell’s CS’ very own Professor Ross Tate made a video about common misconceptions about graduate school. It’s mostly aimed at people interested in getting a PhD in Computer Science, but if you’re interested in a different field this video might still be useful. Some common questions answered are:

  1. What is graduate school all about?
  2. Will I get paid to go to graduate school?
  3. Is graduate school only for people who want to become professors?
  4. Do graduate students have a life?
  5. How should I pick a graduate school to apply to?

If you’re curious about any of these things (or graduate school in general), take a look at this video. If you have any questions that weren’t answered, leave a comment either here on the YouTube page and we’ll try our best to answer it.

Amazon’s Digital Wonderland

A few weeks ago I found myself in Seattle, WA. Contrary to popular belief, it was a rather bright and sunny few days (if somewhat chilly). Here’s an obligatory picture of the Sky Needle.

Sky Needle

Anyways, on the first day there I fought a mostly losing battle against travel-induced tiredness (I was up at 4:30 in the morning) and walked around downtown for a while, somewhat zombie-like. I spent the most of the next day in one of Amazon’s new buildings attending their first ever PhD Symposium. I got to meet Amazon employees like Swami Sivasubramanian, one of the creators of Amazon’s Dynamo database, as well as fellow graduate students like Rahul Potharaju. The day was full of interesting presentations and the breaks in between were packed with lots of cool conversations. I presented my current project, Merlin(excuse the visuals) and got some good feedback. All-in-all it was a great day, I had a wonderful time and I hope Amazon keeps having more of these research Symposia.

But that’s not what this post is about. Personally, I think of Amazon as a retailer first and a technology company second. In fact, I’ve even written a post about their exemplary customer service. Even though I’ve known about EC2 for years and have used both S3 and Glacier as personal backup, the idea of Amazon as a technology company has always been at the back of my mind. In fact, it was only while attending the symposium that I really thought about the full weight of Amazon as a technology services company.

After coming home I looked up the keynote from Amazon’s recent Re:Invent conference. The keynote shows off some of their more interesting recent technology (including new EC2 instances) as well as client technologies built on top of it (including companies like Netflix and Vimeo). I also stumbled across Dave Winer’s post on Amazon’s support of static JavaScript applications and why that’s so interesting and important.

The more I think about it, the more I like Amazon. They make incredible technology, employ lots of really smart people and have a refreshingly honest and direct business model in an industry dominated by advertising and harvesting user data. From computation, to storage, to scalable DNS, Amazon offers a suite of services that’s just about stunning in its breadth. Though I’ve had little use for their services personally (apart from Glacier for backup), I can see myself extensively using their systems and technology if I was building any of type of scalable, distributed service.

Even as I write this, I’m trying to come up with excuses for trying out more of their technology. What would I build? I honestly don’t know. But looking at the range of Amazon technologies and thinking about the possibilities reminds me of the feelings I got when I first started programming and learning about computers.

In many ways, the world has changed since I started writing code about 12 years ago. I had a lot of fun writing LOGO and BASIC programs and then hacking together little Perl scripts. Today I find myself wondering what the loosely coupled services and technologies offered by Amazon and other cloud computing services enable. I wonder if the new programmers of today, still learning on primarily single-threaded, single-box computing platforms, should be encouraged to move on to the brave new world of instantly accessible, practically unlimited computing power. I wonder what we’ll achieve if we were to take distributed, connected computation as the starting point, rather than the state of the art.

As an ending note, let’s think about Microsoft. It’s become standard to talk about Google as today’s Microsoft, but I’m starting to wonder if that title doesn’t rightfully belong to Amazon. I’m not talking about monopolistic activities or questionable business practices, but rather their similarities in making computing more popular. Microsoft’s goal (ostensibly) was to put a computer in every household. Amazon, for its part, has commoditized high-powered computing and distributed systems and made them available to people with modest budgets. I suppose the more things change, the more they stay the same.

Sunday Selection 2013-12-01

Around the Web

Happy post-Thanksgiving greetings, dear readers. If you celebrate, I hope you had a wonderful time with friends and family. If you engaged in the consumerist spectacle of Black Friday and lived to tell the tale, congratulations to you. Others were not quite so lucky. Anyways, on to this weeks’ picks.

The Democratic Necessity of Power Tools

By now we all know that paper publishing (especially for books and newspapers) is in trouble and so are libraries. This article makes an interesting point: in an age where knowledge and information is easy to get, maybe we need to provide education in terms of skills and craftsmanship and not just information. Personally, I love libraries and hope they survive into the far future, but I would love to see the growth of publicly available makerspaces and workshops too. Maybe the two could go hand in hand?

The Period, Our Simplest Punctuation Mark, Has Become a Sign of Anger

It seems like the older I get, the more fastidious I get about my use of the English language. I’ve always hated SMS-speak and I see absolutely no need for it today with the advent of QWERTY, predictive keyboards on phones. More recently, I’ve been trying to use full sentences even in my IMs and making my slideshow bullet-points and proper clauses and end in proper punctuation. This is an interesting article on the changing role of the period in informal electronic communication. It’s not something I’ve personally noticed, but it was a interesting read nonetheless.

C.S. Lewis Reviews The Hobbit

If you’ve ever wondered what one literary great reviewing the work of another looks like, this is your chance. Enough said.

From the Web

What I Wish I’d Known When I Was 18 (from Stephen Fry)

I’m personally not very familiar with Stephen Fry’s work. However, this video is chock-full of wisdom, both practical and deep. It’s worth watching no matter what age you are. And yes, some parts are rather heart-wrenching.

Sunday Selection 2013-11-17

It’s a grey and rather dreary day here in Ithaca, NY (though it was quite bright and pleasant yesterday). I’ve been reading a lot more lately (since I essentially quit watching TV). I got through a lot this week, but I still have a lot to keep me busy on cold rainy days like this. Here’s a quick selection of my reading for this week:

Around the Web

Why GitHub is not your CV

Personally, I love open source. I love having access to use lots of great code and I enjoy contributing back and releasing my own work. However, I’m very aware that in many ways I’m exceptionally lucky: I have a stable job that lets me (in fact, encourages me) to open source and release my code to the public. At the same time, I know lots of people who don’t have the incentives or the opportunity to release open source code, even though they’re good engineers and most companies would hire them in a heartbeat. This is a long article that takes a good look at the expectations of open source development (and the role of particular services like GitHub) in the broader software culture.

Anyone can learn to be a polymath

I’ve always been intrigued by polymaths and the ideal of the Renaissance Man. While the sum of human knowledge (and capabilities) is too great for anyone to be a master of all of it, I think that we would do well to remember that specialization for insects, and that humans are very versatile, adaptable creatures. However, modern society seems to incessantly push us towards specialization and narrowness. If we are to unlock our human potential, then we have to take the initiative ourselves.

The Big Data Brain drain

Academia and industry have always had a somewhat begrudgingly respectful appreciation of each other. But what happens when the skills that are increasingly necessary to do good research and make discoveries are rewarded by industry but academia is a little slow on the uptake?

Multiplicity

Over the last weekend I played around with an interesting service called Editorially. It’s essentially a stripped down, online text editor, with support for Markdown formatting. However, it’s most attractive feature is its support for multiple versions, collaboration and editing. It’s an interesting project and it just added WordPress and Dropbox export (I wrote the first draft of this post in it and then exported to WordPress). Like many such services, I’d rather use a text editor and git to get the same effect. However, more than the service itself what interests me is something I read on their blog post announcing their export features:

On the web today, a single article may be published on the writer’s personal blog, collected in an ebook, syndicated on several magazine or news sites, and reblogged across different platforms and communities.

This notion of having the same piece of work shared in multiple places is not new, but is becoming increasingly popular, especially with the rise of of group blogs (often with guest authors), online curation, and services like Medium. Craig Mod, whom I find to be one of the most insightful writers on the intersection of technology and publishing, started one of his recent pieces with this not-quite-disclaimer:

This was originally published in Hiut Denim’s yearbook. I’ve republished it here, over on Hi and over at Medium because, well, the beauty of the web is multiplicity. More on that later.

Multiplicity. I like that word. And yes, there is something to admire in just how easy it is to copy and share on this, the modern Web. But is it a thing of beauty? I’m much less certain than Mr. Mod, especially since this form of multiplicity is heavily dependent on third-party, often proprietary services with motives that are unclear at best and
questionable at worst.

What Mr. Mod dubs “multiplicity” and call beautiful can be explained in older, cruder terms: copy-and-paste. In many ways, the current web does us a disservice — we have been taught to accept and we settled for multiplicity when what we really wanted was transclusion, first described by an early pioneer of applied computation — Ted Nelson.

Whereas multiplicity on the web takes the form of copy-and-paste, transclusion would take the form of reference. Instead of taking the literal text (and perhaps the styling and images) of a document and replicating it for each copy, we have a single canonical copy of a document (and by document I mean any information object) that can be referenced and transcluded from other places. For example, Mr. Mod could have published the original piece on his website and Hi and Medium would simply transclude it in their own versions. When someone visited the Hi or Medium pages, they would reach out and embed the original post’s content within their contexts.

Transclusion offers many advantage over copy-and-paste. For one, any changes to the original are automatically reflected wherever it is transcluded. Second, attribution becomes much easier. Instead of carefully maintaining references to where you found a particular piece of information or text, the transclusion machinery can manage it for you. In fact, such a system needs to keep proper source information to work properly. Transclusion also makes the job easier for automated systems like search engines. Instead of coming across multiple versions of the same text in different places, a crawler would simply follow back the transclusion links and be able to index the original authoritative copy.

Copy-and-paste certainly has a place, even in a hypothetical transclusion-enabled Web. One major application is of course backup and archival, which would be impossible if there was only ever a single copy. That being said, personally I would rather have transclusion than not. For one thing it would make navigating the current morass of social media and publication startups easier.

Today, if I write something (say this blog post) and want to put it online, I have to decide where to put it. I could put it on my own website, hosted on my own server, accessible at my own domain name, where I retain full control. However, maybe I want the attention generated by publishing on a platform like Medium or Tumblr. Maybe I also want to post a link and excerpt to Facebook and Twitter and Google+. Once people read it, they might want to make posts about it on their blogs and reference it. It might get picked up discussed on random forums and message boards, discussion sites and Q&A sites.

To do that today requires a lot of manual intervention and thought. First I’d have to copy and paste the text into all the different services. Then I’d have to copy-and-paste a link into the various social media services. If I wanted to add an excerpt, I’d have to do more copy-pasting and editing. If there was discussion on other places, there’s no guarantee I’d find out about it. I’d have to keep a close eye on all the discussion sites, and hope that any individuals talking about it on their own sites send me an email (or some other kind of notification) about their posts.

In a world where transclusion is the default, things become much simpler. As we’ve already discussed, the various other publishing platforms would simply transclude the content of my post. Social media services would transclude particular paragraphs (or even particular sentences). Similarly, discussion sites and other people’s blogs would transclude the particular parts of the post they want to discuss. This has a secondary benefit: I can look up the transcluders and automatically be aware of who’s talking about my post (and what parts in particular). In summary, transclusion would make sharing and discussion on the web a whole lot easier, smoother and interactive.

Unfortunately, I don’t believe that we’ll achieve transclusion any time soon. In particular, I would say most publishing and social media services have incentives to prevent transclusion — they want a unique piece of your work. Deferring to a canonical copy elsewhere that others can transclude as well is the last thing they want. That being said, we can still dream, can’t we? Perhaps, with the continuing popularity of ebooks and DIY publishing we might even start having some limited forms of transclusion. And maybe, just maybe, people like Mr. Mod and services like Editorially will start pushing for a transclusion-capable world.