Greg Wilson

The Third Bit

If you cannot be brave - and it is often hard to be brave - be kind.

— Sarah Kendzior

May 22, 2017 Numerical JavaScript
I have a terrible record when it comes to making predictions, but there is one notable exception. In 2002, I told a room full of Python programmers in Toronto that they would all be writing JavaScript in ten years’ time. My argument was that since it was the only choice for front-end web programming, it was the one language everyone had to learn, and was therefore going to be the safest bet for back-end projects as well. I spent the next fifteen years cracking jokes about JavaScript’s many failings as a language. Since changing jobs a few months ago, though,...
Apr 30, 2017 Still Waiting
A couple of days ago, I went looking for a comparison of the architectures of various wiki systems. I wasn’t after a feature list–Wikipedia and WikiMatrix have those–but rather a deep dive into wikis’ construction. TiddlyWiki, the Smallest Federated Wiki, and many other systems take fundamentally approaches to lighweight collaborative editing; surely, I thought, someone would have written a compare-and-contrast of their data schemas, how they store information, how they handle multi-author synchronization and conflicts, and so on. But as far as I can determine, no such write-up exists. Back in the 1980s, Software: Practice & Experience might have had...
Feb 25, 2017 Ordering Jekyll Collections
Short version: I am offering a US$100 bounty for an implementation of ordering for Jekyll collections. To qualify, an implementation must be an addition to Jekyll core, not an extension or plugin. Long version: Jekyll is a Ruby tool that creates static websites from HTML or Markdown source. A collection is a group of files that belong together, such as the individual tutorials making up a lesson. Jekyll orders the elements of collections alphabetically, so if someone wants to enforce a particular order, they have to use a naming scheme like,, and so on. As a result, when...
Feb 18, 2017 Resignation
I have resigned my position at Shopify because of the company’s decision to continue hosting Breitbart’s online store. I will start a new position with in Toronto on February 27.
Feb  6, 2017 A Moral Equivalent of the Turing Test
Given recent discussions about how Silicon Valley CEOs are dealing with the Trump Administration, I’d like to propose a moral equivalent of the Turing Test. In the original Turing Test, a person sits at a desk facing two terminals. One is connected to a computer, the other to a human being, but the person conducting the test doesn’t know which is which. If she cannot reliably distinguish the two after a few minutes of conversation, the computer program is, for all practical purposes, intelligent. Here’s the update I propose. One subject is intelligent and has a good poker face, but...
Feb  1, 2017 Community Organization Training in Toronto
Toronto-area tech folks (and others): would you pay $300/head for a two-day weekend workshop on community organization run here in the city by the Midwest Academy (who have been training socially-progressive groups since the 1970s)? And Toronto-area companies: would you be willing to pay $600/head to send one of your staff and sponsor someone who would otherwise not be able to afford to attend? Please let me know.
Jan 25, 2017 Stand with Government Scientists
Canadians got to see the damage an anti-science government could do when Stephen Harper was Prime Minister. His government scrapped the long-form national census, threw out entire libraries’ worth of scientific data, and did everything else it could to make informed debate about key policy issues impossible. It’s an effective tactic—if the facts are on your opponent’s side, get rid of them, so that the debate becomes your word against theirs—but the long-term damage to both science and the country is immense. Earlier this week, the Trump Administration started its own war on science by banning staff at the Enviromental...
Jan  8, 2017 Pennies for Understanding
Millions for compilers but hardly a penny for understanding human programming language use. Now, programming languages are obviously symmetrical, the computer on one side, the programmer on the other. In an appropriate science of computer languages, one would expect that half the effort would be on the computer side, understanding how to translate the languages into executable form, and half on the human side, understanding how to design languages that are easy or productive to use.... The human and computer parts of programming languages have developed in radical asymmetry. — Newell and Card, "The Prospects for Psychological Science in Human-Computer...
Jan  6, 2017 Them That's Got
A colleague recently told me about a symposium for early career researchers taking place in Hawaii later this month. Its mission statement says, "We are interested in fostering a cohort of data science researchers that will hopefully persist well beyond the bounds of the meeting." I expect it will be fun and fruitful for those taking part, but take a look at where attendees are coming from: University of California, Berkeley 10 New York University 8 University of Washington 7 University of Florida 3 University of Chicago 3 University of Pennsylvania 2 University of Illinois, Urbana-Champaign 2 University of California,...
Jan  1, 2017 Blogging
I blog less than I used to, partly because what I have to say is less practical than it used to be. I'd like to change that in 2017.
Dec 24, 2016 2016 in Review
We got back from England almost exactly a year ago. It took us six months to find a house and another three to do renovations, but we moved in mid-October and are just wrapping up a wonderful Christmas with family and friends. My mum moved out of the house I grew up in April, 48 years after moving in, and we gave away the last of my dad's books. I resigned from my position as Director of Instructor Training for Software Carpentry. I start my new position with Shopify in February 2017. I did this in part because Software Carpentry's...
Dec 14, 2016 Next Steps
Software Carpentry has accomplished an amazing amount over the past six and a half years, but a new opportunity has come up for me here in Toronto that will let me spend more time with my family, and after a great deal of thought, I've decided to pursue it. At the end of January 2017, I will be taking a position as a Computer Science Education Lead at Shopify, where I will help with their CS education partnerships. I'm excited to have a chance to work for change locally, but also look forward to continuing to be involved in Software...
Dec  6, 2016 Remembrance
Twenty-seven years on, most Canadians instantly recognize the name of their murderer. I'd rather remember theirs: Geneviève Bergeron Hélène Colgan Nathalie Croteau Barbara Daigneault Anne-Marie Edward Maud Haviernick Maryse Laganière Maryse Leclair Anne-Marie Lemay Sonia Pelletier Michèle Richard Annie St-Arneault Annie Turcotte Barbara Klucznik-Widajewicz Qu'elles reposent en paix.
Dec  5, 2016 Normal
"Normal humans don't work like programmers expect them to because programmers haven't built tools that would let them." — Mike Hoye
Nov 13, 2016 Stuff That Actually Matters
In the wake of things like GamerGate, Brexit, and the American election, it seems pretty clear that the tech industry needs a backgrounder for people who want to know more about how our political, legal, and economic systems actually work. Having produced half a dozen crowd-sourced books on open source software and software engineering over the last ten years (see here, here, and here), our goal now is to create something like Physics for Future Presidents, but instead of (for example) explaining nuclear power to someone who might one day run the country, we want to explain things like voter...
Nov  9, 2016 They Would Both Have Had Things to Say
My father and my sister would both have had things to say about the American election. I wish they were here to say them.
Oct 30, 2016 Rules for Teaching
Be kind: all else is details. Never teach alone. No lesson survives first contact with learners. Nobody will be more excited about the lesson than you are. Every lesson is too short from the teacher's point of view and too long from the learner's. Never hesitate to sacrifice truth for clarify. Every mistake is a lesson. "I learned this a long time ago" is not the same as "this is easy". Ninety percent of magic consists of knowing one extra thing. You can't help everyone, but you can always help someone.
Oct 19, 2016 Given Infinite Minions
My browser home page has a "to do" list and a "to don't" list. The former is things that I should be working on; the latter is things that I shouldn't let myself do (at least, not yet). There's more than this, like fiction I want to finish, but that's a story for a different site. Maybe some day I'll reconcile myself to the knowledge that there just isn't time to do it all. Meanwhile, if you're interested in doing any of these, or already have, please give me a shout. An undergraduate course in empirical software engineering This post...
Sep 29, 2016 Epistocracy as Privilege
Another day, another display of privilege from Aeon titled, “The right to vote should be restricted to those with knowledge”. No mention of the fact that so-called literacy tests were used to disenfranchise minorities in the Bad Old Days, but of course, we wouldn’t ever do that. All I can think to do is re-quote Kenneth Wesson: If poor inner-city children consistently outscored children from wealthy suburban homes on standardized tests, is anyone naive enough to believe that we would still insist on using these tests as indicators of success? and paraphrase Anatole France: the law, in its infinite impartiality,...
Sep 27, 2016 The Markov Test
The Turing Test is used to determine whether a program exhibits human behavior. I’d like to propose that we use a Markov Test to determine whether a human being exhibits interesting behavior: Train a Markov chain text generator on a sufficiently large corpus of the person’s speech and writing. Put samples of the person’s actual utterances and equal-sized samples of the generator’s output in front of a human judge. If the human being can’t tell the difference between the two, classify the person as “uninteresting”. I’m pretty sure that some prominent people would fail to pass this test…
comments powered by Disqus