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.

Sunday Selection 2013-10-20

Around the Web

Inside GitHub’s super-lean management strategy and how it drives innovation

It’s always interesting to see how groups of people organize to do useful work, especially in the age of startups and distributed workforces. This article takes a detailed look at GitHub’s structure and how their “open allocation” strategy affects their work-style and productivity. Interestingly, it also looks at how non-product activities (like internal videos and social meetups) can be planned and executed without a strict hierarchy.

Should we stop believing Malcolm Gladwell

As a graduate student I’ve become increasingly comfortable with reading scientific papers over the last two years. As a side effect of that, I’ve become increasingly skeptical of popular science books. They’re often lacking in proper references and I’m somewhat distrusting of the layer of indirection between me and the (hopefully) rigorous scientific work. This articles focuses on Malcolm Gladwell and his particular brand of scientific storytelling. It’s been a few years since I read any of books, so I can’t comment from personal experience, but if you’re interested in knowing how much science is actually in popular science, this article is worth your time.

Scott Adams on How to be successful

I recommend this piece with a bit of caution. It’s not your typical “how to be successful” piece. There isn’t much on the lines of “find your passion” or “all your dreams will come true”. In fact, this piece is very pragmatic, very down-to-earth and just a little bit mercenary. It’s for just those reasons that I think it’s worth reading — it’s a good antidote to the cult of “follow your dreams” that seems to have become popular. There are other gems in this piece such as “goals are for losers”. If you’re looking for unconventional and refreshingly honest career advice, read this now.

Books

I’ve been cutting down on video watching in favor of more reading. This week’s recommendation is:

Getting Things Done

GTD is a bit of an obsession in the tech community, spawning an endless number of variants, apps and how-to guides. I’ve been using one of those apps for a while (OmniFocus) and I’ve been familiar with the general GTD approach, but I just started reading the book last week. Surprisingly, the book has a pretty different feel from the GTD articles and guides you’ll find around the web. David Allen doesn’t just give you organizational strategies but also takes the time to explain why particular strategies are a good idea and how they may or may not work for you. I’ve often thought that the full-blown GTD system is a bit overkill, but reading this book makes me think that at a certain level of busy-ness, it’s actually worth it. After reading this book you’ll have no doubts that GTD is a carefully thought out, well-founded system and might be worth a try even if you’re not always super-busy.

 

Google wants your endorsements

Google’s updates to its Terms of Service have been made the rounds of the Internet last week. The particular bit that caught people’s attention was about something called “Shared Endorsements”. What are shared endorsements? From Google’s announcement:

Feedback from people you know can save you time and improve results for you and your friends across all Google services, including Search, Maps, Play and in advertising. For example, your friends might see that you rated an album 4 stars on the band’s Google Play page. And the +1 you gave your favorite local bakery could be included in an ad that the bakery runs through Google. We call these recommendations shared endorsements and you can learn more about them here.

Essentially, if you +1 a particular product, or write a review, then Google can use your name and picture when it displays ads related to that product. This move has understandably ruffled some feathers and merited a piece in the New York Times. John Gruber says that he is “looking forward to hearing from Google fans how this is acceptable” (as if Apple would do anything different if they had a social network).

Personally, I don’t consider this to be a violation of privacy. I consider social networks to essentially be public spaces. For me, that means I rarely upload personal photos and whatever text I post I would be willing to put on a public blog. Now, I would be peeved if Google took a negative review I wrote about a product and turned it into an endorsement. The examples show that Google shows a snippet of whatever review I write and a star rating. I would prefer there be some textual analysis happening to make sure that reviews are actually positive before using them as an endorsement. Since I don’t see any sign of that happening, I’ve decided to opt out. To be clear, my objection is not to Google using my reviews to sell products — I simply want to know that they use them accurately.

I do wish that we had an enforceable expectation of privacy in social networks, but by and large, we don’t. As users of Facebook, Google+ or any other social network we should be aware that their purpose is to make money for their shareholders. Without a payment option, it would be naive of us to expect that our data would not be monetized in every conceivable fashion.

For what it’s worth, I think Google has handled this move in the proper way. They made a public announcement and detailed in clear, unambiguous language what their plans were. They also provide a clear option to turn off Shared Endorsements. The opt-out page reiterates what Shared Endorsements are and provides a single clear checkbox. In contrast, Facebook has been doing essentially the same form of endorsement for a long time now and I don’t remember seeing a public announcement when they started. Their privacy settings are also infamous for being confusing and hard to navigate.

I would love for there to be a social network that’s free of advertisements and whose goal isn’t to data-mine and sell my data the first chance they get. In absence of such a network, it’s up to us, the users, to make the best of what’s available. I do like the utility that these services provide and I am willing to let them have certain information in order to continue providing that service. However I also make sure that I opt out of measures that I don’t want to be a part of. I don’t think Google+ has done the best job of building a social network (see the debacles relating to real names and identities), but this particular move has been better handled than most.

Sunday Selection 2013-10-13

Around the Web

Advice to a Young Programmer

I’ve learned a lot about system design and programming since I started grad school two years ago. I’m still learning a lot as I use new tools and techniques. This post does a good job of summarizing an experienced programmer’s advice to someone younger and newer to the craft.

Why Microsoft Word Must Die

I’m quite happy to say that I haven’t used Word in years. I don’t have a copy installed and I can’t remember the last time I needed to edit a Word document. I use LaTeX for most of my writing (everything from applications and academic papers to my resume). For the rare occasion that I need to open a Word document, Google Docs is more than adequate. Charlie Stross is one of my favorite newer science fiction authors and like most of his technology-related writing, this piece is on point about why the modern Microsoft Word is simply bad.

Less is Exponentially More

This article about why Go hasn’t attracted more C++ programmers is over a year old, but as a student of language design it’s interesting to see how language features interact with programmers’ needs. If you’re interested in programming languages or write lot of C++ code this is a worthwhile read.

Video

Jiro Dreams of Sushi

I’ve been meaning to watch this documentary for a long time, but finally got around to seeing it last night. It’s about Jiro Ono, and 85-year-old sushi master and owner of a tiny 3-star Michelin sushi restaurant in Japan. At its heart it’s a story of a man’s quest for perfection and devotion to his craft. Though it’s ostensibly about the art of sushi, I think there’s a lot for any professional can learn. It reflects a way of life and devotion to purpose that we rarely see in day-to-day life. You can catch it on Netflix streaming and on Amazon Instant Video (it’s not free for Prime members though).

Not so Svbtle

A few weeks ago I got an invitation to Dustin Curtis’ hip new(ish) blogging platform called Svbtle. The original announcement created a bit of a stir around the Intertubes. It was supposed to be both a clean, minimalist writing environment and a fresh new platform for vetted, competent writing. Here’s a relevant excerpt (emphasis mine):

I wrote this engine entirely for myself, without the intention of opening it up to other people. But since realizing that it has improved the way I think and write, I’ve decided to open it up to a small number of vetted bloggers. At least at first. The goal is simple: when you see the Svbtle design, you should know that the content is guaranteed to be great. Network bloggers are encouraged to keep quality high at the expense of everything else.

If it sounds provocative, that’s probably because it was meant to be. The emphasized line in particular, is fighting words, as they say. It’s been about a year and half since that post (at least that’s how long I think it’s been, Svbtle posts don’t seem to have visible timestamps). Now that I have an invite, I thought it would be interesting to see how things have held up. Is Svbtle really all that Mr. Curtis cracks it up to be?

At face value, the original claim seems to have fallen flat. The idea for a minimalist writing platform was copied and open-sourced almost immediately and there’s also a Svbtle-like WordPress theme. Given that Svbtle will let you use your own domain name, it’s hard to tell that you’re reading a Svbtle post unless you care to look. So much for seeing and recognizing the Svbtle design. But what about the rest of the claim? Are we really guaranteed that the content is great?

Svbtle currently positions itself as a “new kind of magazine”. The current About page reads as follows:

We’re a network of great people mixed with a platform that takes the best things from traditional publishing and combines them with the best parts of the web. We want to make it easier for people to share and discover new ideas.

The Svbtle blog announced that they received an undisclosed amount of VC money (good for them). They currently have over 200 writers and hope to build “the future of journalism”. Svbtle is building us up to expect not only good writing, but great writing and journalism. The current state of Svbtle doesn’t give me much confidence. As of this writing, many of the posts on the Svbtle front page would probably only be of interest to a certain section of Silicon Valley resident.s Posts like “The 3 competitive Defenses of Enduring SaaS Companies” and “The Single Best Content Marketing Channel for your Startup” make me think that Svbtle is more a thinly veiled mirror of Hacker News than a magazine devoted to ground-breaking journalism.

To me at least, Svbtle is not so much subtle as confusing. Who are these 200 writers? Why did they get invitations? They claim to span “at least eight disciplines” and journalism doesn’t seem to one of them. If Svbtle is supposed to take the best things from traditional publishing, then where are the editors and expert photographers? If Svbtle is going to be “an important place for the sharing of ideas” then where are the comments and where do I send Letters to the Editor?

Furthermore, this confusion isn’t just on the outward, public face of the endeavor. As a writer, it’s not clear to me what I get from publishing on Svbtle. A group of 200 writers is not exactly exclusive, especially when I have no idea what the invitation criteria are. I don’t see any Terms of Service, or an Export button for that matter. The invitation email claims “One of our main goals is to help members become better writers”, but there’s no mention of how that’s supposed to happen. Is there a peer review or editorial process? If there is, what are the qualifications of the editors and reviewers? I just wrote and published a short post and there doesn’t seem to be any of those things. Can I be kicked out and my posts deleted at a moment’s notice?

I suppose that for people dissatisfied with their current blogging platform Svbtle might be an interesting alternative. But it’s not for me. I’m perfectly content with WordPress when it comes to actual writing and Tumblr when it comes to everything else. I’ve never been distracted from my writing by the various controls and buttons and Svbtle lacks too much of what I’d consider essentials for a modern blogging platform.

Of course, it’s certainly possible that I simply don’t get it and that Mr. Curtis has some grand scheme that I don’t grasp. For the time being, though, it seems like Svbtle is simply just yet another blogging platform. It’s a different flavor than WordPress, Tumblr, or Medium, and some will be drawn to it for that reason. At this point, someone will no doubt point out that I won’t get it unless I try it. While I’m skeptical of that line of reasoning, I would like to give Svbtle a fair chance. Maybe the writing experience really is that much better. If I can think of something that needs publishing and isn’t relevant to The ByteBaker, then my Svbtle blog is where it will go.

(As an aside, I’ve been thinking of starting a research blog, along the lines of Lindsey Kuper’s Composition.al,. I’d use Svbtle for that, but there seems to be no support for inserting syntax-highlighted code snippets.)

In the meantime, if you’re looking for modern, journalistic writing that covers a variety of topics, I recommend a publication like New Republic.

Uncertainty about the future of programming

I finally got around to watching Bret Victor’s “The Future of Programming” talk at DBX. It did the rounds of the Intertubes about two months ago, but I was having too much at the Oregon Programming Languages Summer School to watch it (more on that later). Anyway, it’s an interesting talk and if you haven’t seen it already, here it is:

You really should watch it before we continue. I’ll wait.

Done? Great. Moving on.

While the talk generated a lot of buzz (as all of Bret Victor’s talks do), I’m not entirely sure what to take away from it. It’s interesting to see the innovations we achieved 40 years ago. It is a tad depressing to think that maybe we haven’t really progressed all that much from then (especially in terms of programmer-computer interaction). While I’m grateful to Mr. Victor for reminding us about the wonderful power of computation combined with human imagination, at the end of the talk, I left wondering: “What now?”

The talk isn’t quite a call-to-arms, but it feels like that’s what it wants to be. Victor’s 4 points about what will constitute the future of programming show us both how far we’ve come and how far we have left to go. However, like his other talks, I can’t help but wonder if he really thought through all the consequences of the points he’s making. He talks about direct manipulation of information structures, spatial and goal-directed programming and concurrent computation. His examples seem interesting and even inspiring. But how do I translate the broad strokes of Mr. Victor’s brush to the fine keystroke of my everyday work? And does that translation even make sense for more than small examples?

For my day to day to work I write compilers that generate code for network devices. While I would love to see spatial programming environments for networks and compilers, I have no idea what that would look like. If I’m building sufficiently complex systems, (like optimizing compilers or distributed data stores) the spatial representations are likely to be hundreds of pages of diagrams. Is such a representation really any easier to work with than lines of code in plain text files?

While I’m all for more powerful abstractions in general, I’m skeptical about building complicated systems with the kinds of abstractions that Bret Victor shows us. How do you patch a binary kernel image if all you have and understand is some kind of graphical representation? Can we build the complex computation that underlies graphical design systems (like Sketchpad or CAD tools) without resorting to textual code that lets us get close to the hardware? Even the Smalltalk system had significant chunks of plain text code front and center.

Plain text, for all it’s faults, has one big thing going for it — uniformity. While we might have thousands of different languages and dozens of different paradigms, models and framework, but they’re all expressed as source code. The tools of software development — editors, compilers, debuggers, profilers, are essentially similar from one language to the next. For programmers trying to build and deploy real systems I believe there is a certain benefit in such uniformity. Spatial programming systems would have to be incredibly more powerful for them to be seriously considered as an alternative.

I am doing the talk some injustice by focusing on spatial programming, but even in the other areas, I’m not quite sure what Mr. Victor is talking about. With regards to goal-directed programming, while I understand and appreciate the power of that paradigm, it’s just one among many. Concurrent and multicore is great, but a lot of modern computation is done across clusters of loosely connected machines. Where does the “cloud” fit into this vision? Mr. Victor talks about the Internet and machines connected over a network, but there’s no mention of actually computing over this network.

I believe that Mr. Victor’s point in this talk was to remind of an era of incredible innovation in computer technology, the good ideas that came out of it and how many of those ideas were never realized (and that there hasn’t really been such an era of imagination since). I can appreciate that message, but I’m still asking the question: “So what?”

Building complicated systems is a difficult job. even with plain old text files we’ve managed to do a pretty good job so far. The innovations between then and now have been less flashy but for me, at least, more helpful. Research into distributed systems, machine learning and programming languages have given us powerful languages, tools and platforms which may look mundane and boring but let us get the job fairly well. Personally I’m more interested in type systems and static analyses that let me rule out large classes of bugs at compile time than in interfaces where I connect boxes to link functionality. While I hope that Mr. Victor’s vision of more interactive and imaginative interactions with computers becomes a reality, it’s not the most important one and it’s not the future I’m working towards.