Recently I was struck by just how true an xkcd comic is:
But there is more on the internet than crazy straw aficionados. (Understatement of the year.) There are groups for any interest you can think of, and subinterests within them that you can’t think of. You can buy anything. You can sell anything. You can, ostensibly, learn anything. You can read news articles from hundreds of sources in dozens of languages updated in nearly real time. You can browse the blogosphere, where most people get half a dozen readers on a good day, most of them algorithms. (Thank you, cherished human reader!) Nearly every book, song, and film published or distributed in another medium is available, legally or otherwise. There are more videos than you can watch of cats wearing clothes and people, well, not.
Even media theorist Clay Shirkey acknowledges that there’s plenty of crud online. “If you’re going to look for where the change is happening,” he counters, “you have to look on the margins.” He goes on to talk about the version control system Git used by computer programmers to track changes in their software, and how it has so much potential to be used for legal codes and budgets. When you can see exactly which lawmaker changed what line in the budget, we finally have accountability and transparency in government. Getting the bitterly partisan lawmakers in Washington to use the system is one problem. But is Git even the right system for them to use?
Shirkey advocates for using the tools programmers have developed and repurposing them for other text documents. But Git is highly specialized for code, and has many assumptions about its users baked-in. First, we need to distinguish between Git and Github. Git is an open-source version control system designed for the Linux operating system (and its cousin, Max OS X). It is primarily controlled by the command line, and it quite difficult for people without the right background to use. Typical git commands look like this:
git add .
git diff --staged > myfile.diff
git commit -m "Commit message"
git push origin master
There are a number of arcane details that can go wrong, prompting error messages inscrutable to laypeople. The UNIX command line is extremely powerful but doesn’t provide any indication as to how to use it, and is unforgiving of mistakes. Most lawyers and government employees are familiar only with the Windows graphical user interface. Git for Windows exists, but is not supported. You can read the Illustrated Guide to Git on Windows (not updated since 2009) and decide for yourself whether it’s something ordinary people can use. The lack of customer support and quality assurance is a deal breaker for financial, legal, and classified documents.
Enter Github. A San Francisco-based company founded in 2008, Github provides web hosting and graphical user interfaces for Git. Only through Github’s software does Git become useable to the general population. Tellingly, both the links in the last paragraph go to pages they host, since their business revolves around people using Git. As a programmer, their service allows me work on code collaboratively with friends, share it with the rest of the world, track revisions, and have a backup “in the cloud.” And for that, it works great.
However, Github is too young and too unstable to trust with all our legal documents. In March, a hacker was able to add a file to a repository he did not have permission to modify. And just a few weeks ago (September 2012), an issue allowed 16 private repositories to be accessed by anyone. What if these had contained confidential financial, diplomatic, or military information? Github not ready to handle government data. In fact, trusting any single corporation with government IT is a bad idea. (Microsoft is a necessary evil.) Whatever computer system handles government documents needs to be completely secure, bug-free, reliable, useable, and have all the necessary functions. No wonder the government lags behind in technology adoption!
Don’t get me wrong, I personally love Github. But both Git and Github are designed for the open source movement, which is at least as complicated as the silly straw movement. Government will always have some closed source (and not silly) components. (Do you want the nuclear launch codes on WikiLeaks?) Don’t put software into use doing what it wasn’t designed to do. It won’t suit your needs, and it can easily be counterproductive. It may not even do the job it was designed for in the first place.
A few weeks ago, the Khan Academy released a new suite of computer science curricula. These are small samples of code that learners can interact with in real time, seeing both code and graphical output. At the time, I thought it was a step in the right direction. And, I guess, it is. But this week Bret Victor published an essay titled Learnable Programming that shows just how ineffective and confusing KA system is, saying that it “ignore[s] decades of learning about learning.” His work was cited as an inspiration for the KA system, but he responds that what they created is confusing and obstructs learning. He provides glimpses of a programming language and environment designed specifically to teach “a way of thinking, not a rote skill.”
Midway through, he talks about Hypercard, a piece of software from the mid-1980s. Its salient feature was that “any user can remix their software with copy and paste, thereby subtly transitioning from user to creator, and often eventually from creator to programmer.” He explains that it is “seen by some as ‘what the web should have been’.” Before the web solidified in the 90s thanks to the work of people like Tim Berners-Lee, there were many different forms it could have taken. But that age of endless possibilities is over. The core structure of the web has hardened, probably for the duration of human civilization. Today, we’re stuck making “overlay networks” that use the Internet Protocol in ways it was never intended for, or standardizing a new system on a single website. On Facebook, it is possible to recombine and share content at the click of a button. But this isn’t built in to the fabric of the web itself…yet.
In the last two or three decades, computer scientists were given nearly unprecedented power to shape the technologies that now underly society. The problem is that these people have no training or preparation on how to design for society. Computer scientists have little schooling in psychology (what they do have extends to single users or small groups, part of a field known as “Human-Computer Interaction”.) They have no training in sociology, anthropology, or media theory. They had no idea how the saturation of cell phones would affect social interaction or how the web would give rise to “hacktivist” groups like Anonymous. They didn’t know (how could anyone have known?) that the barrage of email and tweets would make us less able to have conversations. At it was beyond anyone’s imagination that connecting a few government and university computers would give rise to an online world consisting largely of advertising and vice. Which brings us full circle, back to xkcd:
http://xkcd.com/624/ CC-BY-NC Randall Munroe
Truly, there is no bottom.