Greg Wilson Nihil pro nobis sine nobis.
May 19, 2016 Get Better But Not Change
The tragedy of the Hapsburgs was that they wanted things to get better, but couldn't bear the thought that anything might actually change. — Frederic Morton George Orwell said something similar in his landmark essay on Dickens. Poverty, filth, hopelessness: Dickens raged against them all, but in every one of his books, the plucky hero is saved by a bequest from a long-lost uncle or some other deus ex machine. Dickens could see that his world was broken; what he wouldn't allow himself to see was that the problem was structural, and that the only way to fix it for...
May 10, 2016 Accident or Malice
I'm involved in several hybrid online and in-person communities, and two of them have had unpleasant incidents in the last couple of weeks. In one, a poorly-phrased but probably sincere question provoked a harsher-than-necessary response, which in turn provoked foul language, which in turn—but you can probably guess what happened next. In the other, a poor choice of words by someone whose intentions were clearly good provoked an unforgiving backlash, which in turn resulted in the speaker quitting the community. I believe everyone involved was acting sincerely (i.e., not trolling). What separates the two cases in my mind is the...
Apr 29, 2016 Why Teachers Don't Collaborate on Lesson Development
Later: Christina Koch wrote a rejoinder to this article that says a lot of insightful things better than I ever have. For the last three years, I've been asking people why teachers don't collaborate at scale on lesson development in the way that programmers collaborate on open source software and pretty much everybody collaborates on Wikipedia. I put this question to a room full of people who know more about education than I do back in January, and got some new answers. I've summarized them below, along with my rejoinders. The most important thing about a lesson isn't having it:...
Apr  9, 2016 For Some Value of 'Just'
One of the cardinal rules of Software Carpentry is never say 'just', because it signals the listener that the speaker thinks their problem is trivial. I've been reminded of this recently when hearing people say things like, "It doesn't matter what language you choose: just pick one and master it," or, "It doesn't matter what you build when you're first learning to program: just dive in and build something." Each time, I remember being at my first high school dance: "Just get out there and bop around" might have sounded like sensible advice to my exasperated friends, but they were...
Apr  8, 2016 Trying to Find a Form
I have been thinking (again) about what to teach in a full-length course on Software Carpentry and Data Carpentry, which has led me, meta begetting meta, to thinking about how to represent the curriculum for such a course to the people who might teach it and take it. What I've come up with is a four-part division into: the big questions learners ask; our answers to those questions; the lessons that teach people how to implement those answers; and the topics within those lessons. My current rough draft of the above lives in this CSV file (taken from this GitHub...
Apr  1, 2016 Zen and the Art of Assignment Operators
I was 19 when I first read Zen and the Art of Motorcycle Maintenance. For months afterward, I just had to tell everyone I knew about Quality-with-a-capital-Q and all the other big ideas I had just met. It must have been pretty tedious—looking back, I'm kind of surprised I made it to 20 without someone strangling me. I've had other epiphanies since then, from Lisp and Orwell's essays to design patterns and Rawls' Theory of Justice. Each time I fell in love with some new discovery, what I wanted most was people to talk to about it. And each time,...
Mar 31, 2016 Throttling
Every technology that solves problems creates new ones, most of which can't be solved by purely technological means. Online discussions (including Twitter, mailing lists, and comment threads on blogs) are a prime example. As Megan O'Donnell points out in these posts on the Scholarly Communication list [1]: ...a few voices...are so loud and frequent that this mailing list feels like a soapbox far more often than a discussion forum. ... Consider the following: I’m a new librarian about to hit my 3rd work-anniversary. I've written one research paper so far. I am in the stage of my career where I...
Mar 21, 2016 Registers
Linguists recognize that speech occurs in different modes or registers, which serve different purposes: Intimate: used with very close friends, family members, and romantic partners, it relies on a significant amount of shared history. Casual: used with people one meets frequently in unstressful contexts. Word choice is general or colloquial, and it also relies on shared history. Consultative: a more formal way of speaking commonly used in teaching or when talking with authority figures. Formal: more often written than spoken, it is more strictly grammatical, and is used in public speeches, business presentations, and so on. Ritualized: including wedding vows,...
Mar 19, 2016 Continuous Installation Checking
This one started with me trying and failing to install some bioinformatics software on my Mac, then turned into a Twitter rant: Everyone: please start doing installation-driven development. Not test-driven, not feature-driven: installation-driven. Best possible use of AI: a program that simulates a naive user trying to install your software. "Reads" docs, follows steps... ...gets lost, makes mistakes... we could feed traces from actual install attempts into a Markov chain generator, then couple it to... ...Travis-CI or something like that so that "user can install" becomes part of the pre-commit check and the world's a better place But I'm serious....
Mar 13, 2016 In My Better World
In my better world, programming language designers have been studying usability since the 1960s, and every new language worries as much about usability as it does about memory management or concurrency. In my better world, language designers worry about package management as much as they do about type systems. Or maybe more—no, definitely more. In my better world, scientists don't create new file formats every time they sneeze. In my better world, people have implemented mailing list throttling to limit the number of messages one person can send per day so that quieter and more thoughtful people have a chance...
Feb 25, 2016 A Modest Proposal
I had the pleasure of meeting Denia Djokic on Tuesday evening, and during the conversation we came up with a modest proposal: put 10% of the national budget for scientific research in a special fund, and have high school students vote on how to allocate it. It would give scientists a powerful reason to communicate more clearly about their research, give young people a way to direct research toward things that are going to affect them, and would probably be no worse than the existing system. So, what's wrong with this idea? "Science that's boring but essential won't get funded"...
Feb 24, 2016 Books Away
Earlier this week my mother gave away the last of my father's books: 67 boxes containing 1,969 volumes, or about half of what he owned when he died. I hope they find a good home...
Dec 27, 2015 Maybe I Actually Am An Engineer
The following exchange (lightly edited) took place on Twitter a few days ago: Titus Brown: bash is disastrous for pipelines! very hard to rerun entire analysis from bash script. Titus Brown: I want/we need dependency management in scientific computing workflows & pipelines. bash doesn't provide. Lorin Hochstein: I am always saddened at the poor state of scientific workflow tools. Isn't that why we invented computers? Konrad Hinsen: We use completely inadequate tools and notations for computational science. Titus Brown: nothing personal, but I'm wary of you & Greg Wilson when you make comments like this. Titus Brown: you're not wrong,...
Dec 18, 2015 Why I Teach (Revisited)
When I first started volunteering at the University of Toronto, students occasionally asked me why. This was my answer: When I was your age, I thought universities existed to teach people how to learn. Later, in grad school, I thought universities were about doing research and creating new knowledge. Now that I'm in my forties, though, I've realized that what we're really teaching you is how to take over the world, because you're going to have to one day whether you like it or not. My parents are in their seventies. They don't run the world any more; it's people...
Dec 11, 2015 Teaching in Cambridge
I ran a three-hour class on teaching as part of EuroSciPy in Cambridge this summer; the video is available online.
Dec  6, 2015 My Literature Problems
Problem #1 A couple of years ago, I put together a bibliography of research into the software engineering aspects of scientific computing. I'd now like to find all papers published in the last five years that reference anything in the existing bibliography. As far as I can tell, though, the tool I want doesn't exist: I can ask for references to a particular paper, but there's nothing that will take a set of several hundred, grow the reference graph, and sort by relevance. If you know of something, please give it a try and let me know how it does:...
Dec  6, 2015 Just Keep Swimming
I had a conversation a few days ago with a young colleague who said (basically), "Nothing I do ever seems to take off the way your projects do." Coincidentally, Dan Luu's What's Worked in Computer Science landed on my screen just a couple of hours later. In it, goes through a list that Butler Lampson made in 1999 and points out that, "...every Yes from 1999 still Yes today, seven of the Maybes and Nos were upgraded, and only one was downgraded." It's inspiring to see that good ideas do win in the end, but still a bit disheartening to...
Dec  6, 2015 How the Year Went
I wrote a post on New Year's Day about things I probably wouldn't do this year. Here's my score card: Turn Software Carpentry into a book: nope, didn't get to it (though we did publish our lessons). Turn the instructor training course into something other people can read and understand: huh—it actually happened (kind of). Finish any of the fiction I've been working on: nope. I tidied up Beneath Coriandel (again), but it still needs major surgery to fix some gaping plot holes before it's worth publishing, and I didn't touch the others. Write a textbook: nope. Start playing the...
Nov 29, 2015 Does the Stage Create the Actor?
A lot of coding workshops have sprung up in the last ten years, ranging from one-day events to teach people the basics of HTML to months-long internships designed to turn participants into professional programmers. Having just had yet another stranger solve yet another problem for me on Stack Overflow, I'm wondering: to what extent are Stack Overflow and similar sites responsible for the creation of these workshops? SO is a way for people without degrees and other certifications to show what they know; without it, would people be quite so keen to take part in unofficial training?
Nov 28, 2015 Exaptation and the Future of Software Engineering
Back in the 1980s, we knew that software engineering was going to become mathematically rigorous like electrical and civil engineering. Where they used calculus to figure out an antenna's gain and whether a dam would stand up, we would use logic and discrete mathematics to prove that programs were correct. That obviously hasn't happened, and isn't going to any time soon1. However, I think software engineering actually is going to be mathematized over the next few years. It's just not going to be the discrete math that we expected; instead, it's going to be statistics, and instead of proving programs...
...more
comments powered by Disqus