<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Opinion on The Carpentries</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/tag/opinion/</link><description>Recent content in Opinion on The Carpentries</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Wed, 20 Nov 2024 10:51:28 -0500</lastBuildDate><atom:link href="https://deploy-preview-705--carpentries-website.netlify.app/blog/tag/opinion/index.xml" rel="self" type="application/rss+xml"/><item><title>The Rest Is Yet To Come</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2016/10/the-rest-is-yet-to-come/</link><pubDate>Sat, 29 Oct 2016 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2016/10/the-rest-is-yet-to-come/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>I co-taught an instructor training workshop earlier this week,
then taught a second one on my own a couple of days later.
I made some pretty big mistakes in both:
I kept interrupting my co-instructor in the first,
while in the second,
I told too too many stories,
made jokes about hipsters and Javascript programmers when I&amp;rsquo;d told participants not to belittle people in class,
and shut down discussion a couple of times when I had no authority to do so.&lt;/p></description></item><item><title>Programming as Theory Building</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2016/10/programming-as-theory-building/</link><pubDate>Sun, 23 Oct 2016 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2016/10/programming-as-theory-building/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>I was recently reminded of a thought-provoking but often-overlooked essay by Peter Naur from 1985
called &amp;ldquo;Programming as Theory Building&amp;rdquo;
(&lt;a href="http://pages.cs.wisc.edu/~remzi/Naur.pdf">scan here&lt;/a>, &lt;a href="http://www.dc.uba.ar/materias/plp/cursos/material/programmingAsTheoryBuilding">plain text here&lt;/a>).
He suggests that,
&amp;ldquo;&amp;hellip;programming properly should be regarded as an activity by which the programmers form or achieve a certain kind of insight,
a theory,
of the matters at hand.
This suggestion is in contrast to what appears to be a more common notion,
that programming should be regarded as a production of a program and certain other texts.&amp;rdquo;
His thoughts on what programmers actually do,
especially when modifying programs,
seem directly relevant to most research software development.
In particular,
when the Jupyter Notebook and R Markdown are discussed as ways to make research more reproducible,
I wonder if part of that is to encourage the programmer to make her theory of what she&amp;rsquo;s doing explicit.&lt;/p></description></item><item><title>Show Me Your Model</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2016/09/show-me-your-model/</link><pubDate>Sun, 18 Sep 2016 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2016/09/show-me-your-model/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>As far as I can tell,
there are no published studies showing that version control is better than mailing files around
or sticking them in shared drives.
I believe it is–I wouldn&amp;rsquo;t work on a project that didn&amp;rsquo;t use version control–but
nobody&amp;rsquo;s ever gathered data,
compared it to a model,
and published the result.&lt;/p>
&lt;p>One reason,
I think,
is that we don&amp;rsquo;t know how to measure the productivity of programmers.
&amp;ldquo;Lines of code per hour&amp;rdquo; clearly isn&amp;rsquo;t right:
good programmers often write &lt;em>less&lt;/em> code,
or spend their time on the parts of problems
that have the highest thinking-to-coding ratio.
Without some operationalization of &amp;ldquo;better&amp;rdquo; and &amp;ldquo;worse&amp;rdquo;,
it&amp;rsquo;s hard to rank or compare alternatives.&lt;/p></description></item><item><title>We Still Can't Have Nice Things Together</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2016/09/we-still-cant-have-nice-things/</link><pubDate>Mon, 05 Sep 2016 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2016/09/we-still-cant-have-nice-things/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Last year I used YAML and Norway to explain why &lt;a href="%7B%7Bsite.url%7D%7D/blog/2015/06/why-we-cant-have-nice-things.html">why we can&amp;rsquo;t have nice things&lt;/a>.
We&amp;rsquo;ve just stumbled over a problem that has forced us to re-do some of the work we did
to publish our lessons a couple of months ago,
and which illustrates how openness can still be frustrating to actually do.
Are you sitting comfortably?
Then let&amp;rsquo;s begin.&lt;/p>
&lt;h2 id="github-can-publish-repositories-as-website">GitHub can publish repositories as website.&lt;/h2>
&lt;p>If the user&amp;rsquo;s ID is &lt;code>gloom&lt;/code>, and the project&amp;rsquo;s name is &lt;code>despair&lt;/code>,
then the GitHub repository&amp;rsquo;s URL is &lt;code>http://github.com/gloom/despair&lt;/code>.
If that repository has a branch called &lt;code>gh-pages&lt;/code>,
GitHub automatically creates a website at &lt;code>http://gloom.github.io/despair&lt;/code>.&lt;/p></description></item><item><title>Complexity vs. Subtlety</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2016/03/complexity-vs-subtlety/</link><pubDate>Sat, 05 Mar 2016 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2016/03/complexity-vs-subtlety/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
I gave a lightning talk on Software Carpentry for the [OICR](http://oicr.on.ca/) yesterday,
and in discussion afterward,
[Jonathan Dursi](http://www.dursi.ca/) made an observation that I've been thinking about since.
He wondered whether the key difference between commercial software and scientific software
is *complexity* versus *subtlety*.
For example,
the software that manages workplace insurance payouts for the province of Ontario is complex because
it has to handle every regulatory change since the mid-1920s.
None of the its rules and exceptions are intellectually taxing,
but by the time you turn them into a service,
provide a dozen different interfaces for different business roles,
and make the whole thing fault tolerant,
the software is incredibly tangled.
&lt;p>A lot of scientific software is relatively straightforward by comparison,
so long all you look at is the control flow.
It&amp;rsquo;s the specific calculations that are hard:
what differencing scheme or statistical test to use,
what convergence criteria or significance measure to apply,
and so on.
And yes,
there are a lot of fiendishly tricky algorithms in science,
but they&amp;rsquo;re often hidden in libraries built and maintained by specialists
who work and think like software engineers.&lt;/p></description></item><item><title>Come a Long Way, Got a Long Way to Go</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2016/02/long-way/</link><pubDate>Sun, 07 Feb 2016 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2016/02/long-way/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
[Simon Oxenham recently reported](http://bigthink.com/neurobonkers/we-need-to-rewrite-the-textbook-on-how-to-teach)
on
[a new report](http://www.nctq.org/dmsStage/Learning_About_Learning_Report)
from the National Council on Teacher Quality
that examined how well teacher training courses and textbooks convey evidence-based teaching practices.
The sad answer is, hardly at all:
&lt;blockquote>
&lt;p>The report finds that &lt;strong>out of 48 texts&lt;/strong> used in teacher-training programs
&lt;strong>none&lt;/strong> accurately described fundamental evidence-based teaching strategies comprehensively.
&lt;strong>Only 15 percent had more than a single page devoted to evidence-based practices&lt;/strong>;
the remainder contained either zero or only a few sentences on methods that have been backed up by
the &lt;a href="http://bigthink.com/neurobonkers/assessing-the-evidence-for-the-one-thing-you-never-get-taught-in-school-how-to-learn">decades of scientific findings&lt;/a>
that exist in the field of educational psychology.&lt;/p></description></item><item><title>18 Months of Progress</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2016/01/eighteen-months-of-progress/</link><pubDate>Fri, 15 Jan 2016 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2016/01/eighteen-months-of-progress/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
[My talk at SciPy](https://youtu.be/1e26rp6qPbA?t=1748) in 2014
quoted one of our instructors as saying:
&lt;blockquote>
&lt;p>The most frustrating things for me are&lt;/p>
&lt;ol>
&lt;li>people are more willing to submit new material&amp;hellip;that to improve existing material
or review another person&amp;rsquo;s PR
and 2) instructors teaching bootcamps using other lesson material.
This experiment in collaborative lesson development is doomed to fail if&lt;/li>
&lt;li>people don&amp;rsquo;t make iterative changes to lesson material
and 2) the end product isn&amp;rsquo;t used in live bootcamps.&lt;/li>
&lt;/ol>
&lt;/blockquote>
&lt;p>18 months later,
I&amp;rsquo;m very pleased by how much better we&amp;rsquo;re doing.
Almost all of our instructors are now using our lessons rather than legacy material of their own.
just as importantly,
dozens of people have submitted pull requests in the last couple of months alone.
Some of those are exercises required to complete instructor training,
but others range from minor bug fixes to major refactorings.&lt;/p></description></item><item><title>New Words Needed</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/12/new-words-needed/</link><pubDate>Sat, 26 Dec 2015 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/12/new-words-needed/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 Titus Brown &lt;a href="{{page.titus_post}}">recently asked&lt;/a>
 (on behalf of a friend)
 what people think of the term and practice of "hardening" software,
 by which he meant making research software more robust, more easily usable, and possibly scalable.
 Several people responded that "hardening" is usually used to mean "make more secure",
 and that what Titus's correspondent was really asking about was
 something we don't have a simple word for:
 making software ready for production use.
 As &lt;a href="{{page.titus_post}}#comment-2424688570">Morgan Taschuk wrote&lt;/a>,
 this involves eliminating hard-coded paths,
 adding useful error messages,
 incorporating command-line flags to turn features on and off,
 and many other things that aren't really necessary if the program is only ever used by its author on her own machine and data,
 but are essential to institutional scale-up,
 i.e.,
 to making the software usable by other people, in other places, on other problems.
&lt;/p></description></item><item><title>More on Educational Engineering</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/12/more-on-educational-engineering/</link><pubDate>Wed, 16 Dec 2015 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/12/more-on-educational-engineering/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 In my experience, the term "educational engineers" doesn't seem to
 have caught on to describe any particular activity, but I can
 provide some examples of people bringing ideas from the research to
 inform teaching. There's a range depending on what counts as
 "building".
&lt;/p></description></item><item><title>Educational Engineering</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/12/educational-engineering/</link><pubDate>Tue, 15 Dec 2015 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/12/educational-engineering/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 One of the participants in this week's instructor training course mailed me to say,
 "[We] were discussing some of the ideas we were talking about in educational research
 and I feel like we are missing 'educational engineers'.
 Does this discipline exist?
 I feel like we don't really have the people to take the research that's been done and build something with it."
&lt;/p>
&lt;p>
 The answer is that we actually do have educational engineers:
 at the K-12 level,
 many of the people who write textbooks and other learning materials have lots of training in pedagogy,
 and the curriculum they create goes through the same sort of careful review
 that plans for a new dam go through.
 But that's usually not true in higher education:
 most of the people who write textbooks at the post-secondary level are domain experts
 with little or no training in pedagogy.
 And even in K-12,
 people with no background in education at all frequently overrule experts
 on both content and method.
&lt;/p></description></item><item><title>Pulling In Those Left Behind</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/10/pulling-along-those-behind/</link><pubDate>Thu, 29 Oct 2015 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/10/pulling-along-those-behind/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 A common challenge that arises before or during a workshop is that
 participants' prior expertise in programming or broadly speaking
 their abilities of using computers for science is distributed
 randomly. At best, this distribution peaks at the expectations of
 the instructor. Usually, this distribution is quite wide and thus a
 considerable portion of the participants do lack the necessary
 predispositions for the workshop level, or have a slower learning
 rate or simply are too shy to ask questions. I recently taught a
 follow-up workshop to the Software Carpentry (SWC) Novice material
 and struggled to keep the pace of teaching at a level so all
 learners would come along. Given the feedback on the SWC mailing
 list (see the
 &lt;a href="{{site.mailing_lists}}/pipermail/discuss/2015-October/003396.html">original post&lt;/a>),
 this problem occurs quite often. Thus, this blog post is
 a summary of the discussion initiated among fellow SWC instructors
 on how to pull in those learners again that fall behind or how to
 pace/design a course so that a minimal portion of learners fall
 behind.
&lt;/p></description></item><item><title>Code Review - a Needed Habit in Science</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/10/code-review-habit/</link><pubDate>Wed, 28 Oct 2015 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/10/code-review-habit/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 More than a year ago, Marian Petre and Greg Wilson wrote an article
 about &lt;a href="http://arxiv.org/abs/1407.5648">reviewing code&lt;/a>,
 but I was not aware of it until last week when Greg talked about
 their findings in a workshop in London
 (though &lt;a href="{{site.baseurl}}/blog/2014/01/code-review-round-2.html">it
 had been mentioned here before&lt;/a>). I have been reviewing code for
 years, however I have not realised that I was doing so till GitHub
 made it easy. Reading code from others feels the same as
 proofreading a Spanish text (or any other text), where you have to
 pay attention to the orthography, the grammar and whether it says
 what it's meant to say (or it does what it's meant to do).
 &lt;/p></description></item><item><title>Inserting Software Carpentry Graduates into Coding Communities</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/10/graduate_communities/</link><pubDate>Mon, 19 Oct 2015 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/10/graduate_communities/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 One of the issues I'd like to see Software Carpentry tackle
 is what happens to learners after they've attended a workshop.</description></item><item><title>Journals as Repositories</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/10/journals-as-repositories/</link><pubDate>Sat, 17 Oct 2015 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/10/journals-as-repositories/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 I had a really good conversation yesterday with Cath Brooksbank and Sarah Morgan,
 who do training at EMBL-EBI in Hinxton.
 During the conversation we touched on &lt;a href="http://www.coursesource.org/">CourseSource&lt;/a>,
 a peer-reviewed journal in which people can publish undergraduate biology lessons&amp;mdash;not
 studies of the lesson's effectiveness,
 but the lessons themselves.
&lt;/p>
&lt;p>
 This is a brilliant idea,
 and thinking about it has made me realize why
 I've never been excited about online lesson repositories.
 We already have repositories for the things academics do:
 they're called journals.
 And we have portals (or aggregators, or whatever you want to call them):
 they are things like PubMed.
 What we &lt;em>don't&lt;/em> have is people putting things into the system in the first place.
 Growing a separate parallel system to do those things for lessons hasn't worked:
 as far as I can tell,
 most of what's uploaded to lesson repositories just sits there.
&lt;/p></description></item><item><title>How Teaching Knowledge Is Transferred</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/09/how-teaching-knowledge-is-transferred/</link><pubDate>Sun, 13 Sep 2015 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/09/how-teaching-knowledge-is-transferred/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;blockquote>
 &lt;p>
 I hesitate to say so,
 but I believe that we pedagogues tend to exaggerate greatly the amount of change in educational practice
 that results from reading what other people say should be done...
 &lt;/p>
 &lt;p>
 &amp;mdash; Stephen Corey, 1951
 &lt;/p>
&lt;/blockquote>
&lt;p>
 Being back in Edinburgh thirty years on
 has occasioned much reflection upon lessons learned.
 This has occasioned a re-reading of some papers by
 Prof. &lt;a href="http://www.cs.kent.ac.uk/people/staff/saf/">Sally Fincher&lt;/a>,
 whose &lt;a href="http://www.cs.kent.ac.uk/research/groups/compedu/">research group&lt;/a>
 at the University of Kent
 studies the teaching and learning of computer science.
 In particular,
 I have been looking at what they have discovered about
 how educators share teaching practices.
 I hope these excerpts and reflections are of interest.
 (Note: section titles link to papers.)
&lt;/p></description></item><item><title>Experiences Adding a Lesson on Make</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/08/make-lesson-experiences/</link><pubDate>Thu, 20 Aug 2015 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/08/make-lesson-experiences/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>In June I added a lesson on &lt;a href="{{site.github_io_url}}/make-novice/">Automation and Make&lt;/a>. In this blog post, I describe how the lesson evolved, my experiences in porting it into the Software Carpentry &lt;a href="{{site.github_url}}/lesson-template">lesson template&lt;/a>, and the community's response...&lt;/p></description></item><item><title>Checking What We Teach</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/08/checking-what-we-teach/</link><pubDate>Fri, 14 Aug 2015 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/08/checking-what-we-teach/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 Back in May,
 Jonathan Klaasen wrote a post about
 &lt;a href="https://dynamicecology.wordpress.com/2015/05/06/guest-post-setting-up-a-lab-data-management-system/">setting up a lab data management system&lt;/a>.
 After re-reading it,
 I think it's a good reality check on what we teach about databases:
 from what I can tell,
 we cover most of the information management needs that Jonathan touches on.
 I also think it could be a great motivating example for a lesson on databases,
 and on how to combine them with other tools like shell scripts.
 If you've ever built or used something like what Jonathan describes,
 I'd be grateful for comments describing where your setup is the same
 and where it's different.
&lt;/p></description></item><item><title>Why I Am Not Excited About Julia</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/06/why-i-am-not-excited-about-julia/</link><pubDate>Thu, 18 Jun 2015 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/06/why-i-am-not-excited-about-julia/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 If you hang out in scientific programming circles,
 you're probably heard of &lt;a href="http://julialang.org/">Julia&lt;/a> by now.
 If you don't, or you haven't,
 it is:
&lt;/p></description></item><item><title>Why We Can't Have Nice Things</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/06/why-we-cant-have-nice-things/</link><pubDate>Thu, 11 Jun 2015 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/06/why-we-cant-have-nice-things/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 In the beginning, there were tables:
 rows upon rows,
 with columns separated by commas or tabs or something more exotic.
 They were elegant but limited,
 so programmers said,
 "Let there be XML!"
 And lo,
 there came a great wailing and gnashing of teeth,
 for who among us can truly comprehend external (parsed) general entity declarations
 and the encoding thereof?
&lt;/p></description></item><item><title>The Paradox of Learning Objects</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/04/the-paradox-of-learning-objects/</link><pubDate>Wed, 22 Apr 2015 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/04/the-paradox-of-learning-objects/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 &lt;a href="http://sclt.science.ubc.ca/warcode">Warren Code&lt;/a>
 recently forwarded &lt;a href="http://opencontent.org/blog/archives/3854">this post&lt;/a>
 by &lt;a href="http://www.davidwiley.org/">David Wiley&lt;/a>,
 a serial innovator in open education and educational reform.
 In it,
 he recapitulates the history of "learning objects"
 and the paradox at the core of the idea of remixing and reusing teaching material.
 Since Software Carpentry is (sort of) trying to do exactly that,
 I think everyone who's currently teaching for us or helping us meet our
 &lt;a href="{{site.baseurl}}/blog/2015/04/publishing-our-lessons.html">first publication deadline&lt;/a>
 should look it over.
&lt;/p></description></item><item><title>Learning in Both Directions</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/04/learning-in-both-directions/</link><pubDate>Tue, 21 Apr 2015 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/04/learning-in-both-directions/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 We have spent a lot of time thinking about how to assess the impact that Software Carpentry is having.
 We've done
 &lt;a href="{{site.filesurl}}/bib/aranda-assessment-2012-07.pdf">some&lt;/a>
 &lt;a href="{{site.filesurl}}/bib/libarkin-assessment-report-2012-06.pdf">small&lt;/a>
 &lt;a href="http://arxiv.org/abs/1407.6220">studies&lt;/a>
 and collected &lt;a href="{{site.baseurl}}/testimonials/">a few testimonials&lt;/a>,
 but it's been small potatoes compared to the 5000 people we taught last year alone.
&lt;/p>
&lt;p>
 After some back and forth with a colleague whose work I have admired for years,
 though,
 I realize that I've been trying to do this the wrong way.
 My training as an engineer taught me that
 only controlled, quantitative experiments were "real" science&amp;mdash;that
 as Ernest Rutherford said,
 it's either physics or stamp collecting.
 I now understand that there are other rigorous ways to generate actionable insights,
 some of which are better suited to our needs than something like randomized control trials.
 More than that,
 I finally understand what one of my first teachers told me:
&lt;/p>
&lt;blockquote>
 &lt;p>
 Teaching only works well when the teacher is also learning.
 &lt;/p>
&lt;/blockquote></description></item><item><title>Quality Is Free - Getting There Isn't</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/04/quality-is-free-getting-there-isnt/</link><pubDate>Wed, 15 Apr 2015 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/04/quality-is-free-getting-there-isnt/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 Worried about the rising tide of retractions,
 &lt;em>Nature Biotechnology&lt;/em>
 &lt;a href="http://www.nature.com/news/rule-rewrite-aims-to-clean-up-scientific-software-1.17323">recently announced&lt;/a> that,
 "Its peer reviewers will now be asked to assess the availability of documentation and algorithms used in computational analyses,
 not just the description of the work.
 The journal is also exploring whether peer reviewers can test complex code..."
 That's a welcome step in theory,
 but I worry about how it will play out in practice.
 Scientists already complain about how much time they spend reviewing papers:
 reviewing code as well will take even more time,
 particularly if:
&lt;/p></description></item><item><title>Good Enough Practices in Scientific Computing</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/04/good-enough/</link><pubDate>Mon, 13 Apr 2015 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/04/good-enough/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 April Wright recently wrote
 &lt;a href="http://wrightaprilm.github.io/posts/parity-paper.html">a blog post&lt;/a>
 about the reproducibility of a paper she recently submitted.
 In it,
 she said:
&lt;/p></description></item><item><title>A Project Inception Deck for Research Coding</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/04/project-inception-deck-for-research-coding/</link><pubDate>Sat, 11 Apr 2015 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/04/project-inception-deck-for-research-coding/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 I've never seen the point of comparing programmers to ninjas or samurai,
 but the people who do so often have good ideas.
 One that I particularly like is
 the &lt;a href="https://agilewarrior.wordpress.com/2010/11/06/the-agile-inception-deck/">Agile Inception Deck&lt;/a>
 from Jonathan Rasmusson's &lt;em>&lt;a href="http://www.amazon.com/Agile-Samurai-Software-Pragmatic-Programmers/dp/1934356581/">The Agile Samurai&lt;/a>&lt;/em>,
 which sets out a ten-step process for making sure that everyone involved in a new project
 is actually trying to build the same thing.
 The ten steps are:
&lt;/p></description></item><item><title>Nouns and Verbs</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/02/nouns-and-verbs/</link><pubDate>Mon, 02 Feb 2015 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/02/nouns-and-verbs/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 I've spoken and written many times about how puzzled I am that
 massive, open collaboration on lessons is so rare
 in the age of Wikipedia and open source software development.
 Hundreds of people have helped build the Wikipedia articles on Marvel Comics and the planet Mars,
 and hundreds more have helped build things like the Django web programming framework;
 why then are teachers still writing all their own slides and handouts?
&lt;/p>
&lt;p>
 As is frequently the case,
 the answer might be that I've been asking the wrong question.
 When I brought this up last week in an online call organized by the Open Knowledge Foundation,
 &lt;a href="http://blogs.pjjk.net/phil/">Phil Barker&lt;/a> said:
&lt;/p>
&lt;blockquote>
 &lt;p>
 "One difference between Wikipedia and OER [open educational resources] is that
 editing Wikipedia is about moving to consensus on facts,
 [but] editing teaching material is about tailoring it to specific local requirements
 (different teaching styles, different students, different curriculum standards)."
 &lt;/p>
&lt;/blockquote></description></item><item><title>The Other Ninety Percent</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/01/the-other-ninety-percent/</link><pubDate>Sat, 24 Jan 2015 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/01/the-other-ninety-percent/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 Ninety percent or more of learning a skill takes place outside formal lessons
 as people try things out for themselves
 and turn attention into habit.
 This works best if a mentor is on hand to answer questions and provide feedback,
 but our workshop format doesn't lend itself to that:
 in most cases,
 our instructors are back on a plane (or back in their own lab)
 as soon as they're done teaching,
 so our learners have to make sense of what they've just been shown on their own.
 Based on follow-up discussions and &lt;a href="http://arxiv.org/abs/1407.6220">Jory Schossau's work&lt;/a>,
 here are things they stumble over in order of increasing pain:
&lt;/p></description></item><item><title>Orwell, Dickens, and How We'll Know We're Done</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/01/open-bibliography-capstone/</link><pubDate>Sat, 17 Jan 2015 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/01/open-bibliography-capstone/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 I started working on
 a &lt;a href="{{site.github_url}}/capstone-novice-spreadsheet-biblio">short capstone example&lt;/a>
 last month
 to show learners how to get a badly-formatted reference list out of an Excel spreadsheet
 and into a relational database
 so that it would be easy to answer questions like, "Who has co-authored papers with whom?"
 I'd like to work up another capstone as well,
 but there's a problem:
 I can't actually do it myself
 for reasons that are both technical and political.
&lt;/p></description></item><item><title>Language Wars and Others</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/01/language-wars-and-others/</link><pubDate>Wed, 14 Jan 2015 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/01/language-wars-and-others/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 We often get asked, "Why do you teach [X]? Why don't you teach [Y]?"
 where X and Y are random permutations of Perl, Python, R, MATLAB, Julia, C++, and Javascript,
 or equally random permutations of different version control systems or text editors.
 There are three answers:
&lt;/p></description></item><item><title>The Future and Funding of Science</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/01/future-and-funding-of-science/</link><pubDate>Sun, 04 Jan 2015 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2015/01/future-and-funding-of-science/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 I was talking with friends over the holiday about the future of science
 and how it might one day be funded.
 Since it'll be ten years before I'm proven wrong,
 it seems like a good topic with which to start the new year.
&lt;/p></description></item><item><title>Why It Matters</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/11/why-it-matters/</link><pubDate>Tue, 11 Nov 2014 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/11/why-it-matters/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 Sometimes I forget that it isn't obvious
 why scientists ought to learn to program&amp;mdash;or why anyone else ought to.
 Being more productive,
 getting a better job...
 Those are all good reasons,
 but as &lt;a href="http://worrydream.com/MeanwhileAtCodeOrg/">Bret Victor points out&lt;/a>,
 if we focus on those,
 we risk losing sight of what matters most.
&lt;/p>
&lt;p>
 To explain that,
 I have to quote Matthew Crawford's thought-provoking (and sometimes infuriating)
 &lt;em>&lt;a href="http://www.amazon.com/Shop-Class-Soulcraft-Inquiry-Value/dp/0143117467/">Shop Class as Soulcraft&lt;/a>&lt;/em>:
&lt;/p></description></item><item><title>Why We Don't Teach Testing (Even Though We'd Like To)</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/10/why-we-dont-teach-testing/</link><pubDate>Thu, 30 Oct 2014 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/10/why-we-dont-teach-testing/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 If you haven't been following
 &lt;a href="https://github.com/numerical-mooc/numerical-mooc/wiki">Lorena Barba's course on numerical methods in Python&lt;/a>,
 you should.
 It's a great example of how to use emerging tools to teach more effectively,
 and if we ever run Software Carpentry online again,
 we'll do it her way.
 Yesterday,
 though,
 when she posted &lt;a href="http://nbviewer.ipython.org/github/numerical-mooc/numerical-mooc/blob/master/lessons/03_wave/03_03_aBetterModel.ipynb">this notebook&lt;/a>,
 I tweeted,
 "Beautiful... but where are the unit tests?"
 In the wake of
 &lt;a href="https://twitter.com/lorenaabarba/status/527149484942585856">the discussion that followed&lt;/a>,
 I'd like to explain why we no longer require people to teach testing as part of the Software Carpentry core,
 and then ask you all a favor.
&lt;/p></description></item><item><title>Why Software Matters</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/10/why-software-matters/</link><pubDate>Tue, 28 Oct 2014 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/10/why-software-matters/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 Why does software matter to scientists?
 It may seem obvious to people who read this blog,
 but that's like saying that the answer to, "Why opera?"
 is obvious to the sort of person who pays a month's rent to get a decent seat at Covent Garden.
 Why &lt;em>does&lt;/em> software matter?
 And why does it matter whether it's written well?
&lt;/p></description></item><item><title>Lost in Space</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/10/lost-in-space/</link><pubDate>Mon, 27 Oct 2014 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/10/lost-in-space/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 You probably haven't seen the 1998 movie &lt;a href="http://www.imdb.com/title/tt0120738/">&lt;em>Lost in Space&lt;/em>&lt;/a>,
 or if you have,
 you've suppressed the memory&amp;mdash;it was awful.
 But I do know one guy who enjoyed it.
 His name was Joe,
 and he had worked on the software used to create its special effects.
 Ten minutes into the film he took out his Walkman (a primitive form of iPod),
 put on his headphones,
 and spent the next two hours head-bobbing
 to a mix of Bob Marley and Smashing Pumpkins.
&lt;/p></description></item><item><title>Ideas to Improve Instructor Training</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/10/uc-davis-physics7/</link><pubDate>Sun, 05 Oct 2014 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/10/uc-davis-physics7/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
Have you ever learned something new and then had it appear in other areas of your life?
After a summer at SWC thinking about how to train better instructors (and how to be a better
teacher myself) I get to try discussion-based teaching this quarter at UC Davis.
&lt;/p></description></item><item><title>Further Thoughts on Building Better Teachers</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/09/further-thoughts-on-better-teachers/</link><pubDate>Wed, 10 Sep 2014 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/09/further-thoughts-on-better-teachers/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 On Greg's recommendation, I just finished
 reading &lt;a href="http://www.amazon.com/Building-Better-Teacher-Teaching-Everyone/dp/0393081591/">&lt;em>Building
 a Better Teacher&lt;/em>&lt;/a> - it was an interesting book, and a well-written
 story. It turns out that I completely agree
 with &lt;a href="building-better-teachers.html">Greg's assessment&lt;/a>
 of the book's lessons and the challenges facing Software Carpentry,
 but I very much disagree with his proposed solutions!
&lt;/p></description></item><item><title>More Thoughts on Better Teachers</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/09/more-thoughts-on-better-teachers/</link><pubDate>Wed, 10 Sep 2014 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/09/more-thoughts-on-better-teachers/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 Over the last few weeks I read Greg's blog post
 on &lt;a href="{{site.baseurl}}/blog/2014/09/building-better-teachers.html">Building
 Better Teachers&lt;/a> and watched
 his &lt;a href="https://www.youtube.com/watch?v=1e26rp6qPbA">Scipy
 keynote&lt;/a> and I've been thinking a lot about how can instructors
 share their knowledge.
&lt;/p></description></item><item><title>Building Better Teachers</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/09/building-better-teachers/</link><pubDate>Thu, 04 Sep 2014 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/09/building-better-teachers/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 Some books are intrinsically great.
 (I've read &lt;a href="http://www.amazon.com/Going-Postal-A-Novel-Discworld/dp/0060013133/">&lt;em>Going Postal&lt;/em>&lt;/a> half a dozen times,
 and enjoyed it just as much at each encounter.)
 Other books feel great because they hit you at the right time.
 Elizabeth Green's
 &lt;a href="http://www.amazon.com/Building-Better-Teacher-Teaching-Everyone/dp/0393081591/">&lt;em>Building a Better Teacher&lt;/em>&lt;/a>
 is one of those:
 in a little over 300 pages,
 she takes a bunch of things I've been worrying about for the last two years
 and assembles them into a coherent whole.
 The end result is a road map of sorts for making our teaching more effective;
 the problem is,
 I don't know if it's a path we can actually follow.
&lt;/p></description></item><item><title>The New MATLAB Teaching Materials</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/08/matlab-review/</link><pubDate>Fri, 29 Aug 2014 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/08/matlab-review/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 When Software Carpentry started running bootcamps back in 2012, Python was used 
 exclusively for the programming lessons. While these lessons were as language agnostic 
 as possible (i.e. the materials focused on transferrable programming concepts as opposed 
 to specifics of the Python language), people soon expressed an interest in running 
 bootcamps using other languages. R very quickly established itself as a regular 
 alternative to Python, but it wasn't until early 2014 that the first ever Matlab 
 bootcamp was held (see &lt;a href="http://www.walkingrandomly.com/?p=5324">here&lt;/a> and 
 &lt;a href="{{site.baseurl}}/blog/2014/01/feedback-manchester-matlab-bootcamp.html">here&lt;/a> 
 for blog posts about the event; the official event page is 
 &lt;a href="http://apawlik.github.io/2014-01-14-manchester/">here&lt;/a>).
&lt;/p></description></item><item><title>Software Carpentry at Brazilian Open Science Conference</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/08/swc-at-rio/</link><pubDate>Sat, 23 Aug 2014 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/08/swc-at-rio/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 Last week, Raniere Silva and Alex Viana attended at
 &lt;a href="http://www.cienciaaberta.net/encontro2014/">Brazilian Open Science Conference&lt;/a>
 where they ran a Git course for Software Carpentry and Alex gave a talk about
 Software Carpentry (like the
 &lt;a href="{{site.baseurl}}/blog/2014/08/news-from-australia.html">one that Damien Irving gave at PyCon Australia&lt;/a>).
 Our workshop was a great time and from the feedbacks every student like
 it. One of the students said:
 &lt;blockquote>
 Very didactic, the instructors showed much care, dedication and attention
 with the students.
 &lt;/blockquote>
 and another one
 &lt;blockquote>
 Very good, from the basic to complex in a easy way.
 &lt;/blockquote>
&lt;/p></description></item><item><title>Sustainability</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/08/sustainability/</link><pubDate>Mon, 04 Aug 2014 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/08/sustainability/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 I took part in a meeting about
 &lt;a href="https://conference.scipy.org/scipy2014/participate/wssspe/">sustainable scientific software&lt;/a>
 at last month's &lt;a href="../07/scipy-2014-talks.html">SciPy conference&lt;/a>.
 Much of it was taken up with discussion of getting scientists recognition for building software,
 but there was also some interesting debate about what "sustainability" actually means.
 After talking to a few people in the software engineering research community,
 I'd like to propose that:
&lt;/p></description></item><item><title>Using a Package Manager for Lessons and Papers</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/07/using-a-package-manager-for-lessons-and-papers/</link><pubDate>Mon, 21 Jul 2014 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/07/using-a-package-manager-for-lessons-and-papers/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 I've been musing for a couple of years now about
 ways in which we could re-purpose off-the-shelf software engineering tools and techniques
 to serve the needs of teachers.
 One theme,
 which I touched on in &lt;a href="https://www.youtube.com/watch?v=FtKO619O5g0">my SciPy 2014 talk&lt;/a>,
 is to get people to patch shared learning materials
 in the way they patch Wikipedia articles and open source code.
 Another is to use &lt;a href="https://en.wikipedia.org/wiki/Package_manager">package managers&lt;/a>
 like RPM, Homebrew, and Conda to track dependencies between lessons,
 so that I could say something like &lt;code>conda install suffragette_movement&lt;/code>
 and get a lesson on the struggle for women's voting rights,
 along with the other lessons and materials it depends on
 (or updates and links to those other lessons if I already have some of them installed).
&lt;/p></description></item><item><title>Scientific Groupware Revisited</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/07/scientific-groupware-revisited/</link><pubDate>Sat, 05 Jul 2014 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/07/scientific-groupware-revisited/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 16 years ago,
 Jon Udell wrote a white paper titled
 "&lt;a href="http://jonudell.net/GroupwareReport.html">Internet Groupware for Scientific Collaboration&lt;/a>"
 that profoundly changed how I thought about the web.
 In many ways,
 it seems as futuristic today as it did then:
 despite all the technological advances of the last decade and a half,
 a two-way web built on top of a universal canvas is still mostly a dream.
&lt;/p>
&lt;p>
 Udell and others are now working on &lt;a href="https://thali.codeplex.com/">Thali&lt;/a>,
 an attempt to create a truly distributed web.
 It,
 and projects like Ward Cunningham's &lt;a href="http://fed.wiki.org/">Smallest Federated Wiki&lt;/a>,
 are a more truly open model for science
 than the de facto centralization typified by Google, Facebook, Twitter, and GitHub,
 but it's not clear we'll choose the long-term robustness of the former
 over the short-term convenience of the latter.
&lt;/p>
&lt;p>
 I asked Jon if I could re-post &lt;em>IGSC&lt;/em> here.
 He said yes,
 but on reflection,
 I realized that doing so would run counter to the spirit of
 &lt;a href="http://blog.jonudell.net/2011/01/24/seven-ways-to-think-like-the-web/">what he's been trying to tell us&lt;/a>.
 Instead,
 I urge you to &lt;a href="http://jonudell.net/GroupwareReport.html">click on this link&lt;/a>
 and marvel at the everyday miracle that follows.
&lt;/p></description></item><item><title>Knocking on the Future's Door</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/05/knocking-on-the-futures-door/</link><pubDate>Thu, 08 May 2014 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/05/knocking-on-the-futures-door/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 Once again I feel like I'm knocking on the future's door but nobody's answering.
 The task we set ourselves seemed simple:
 produce a nicely-formatted PDF of the &lt;a href="{{site.baseurl}}/lessons/">Version 5 lessons&lt;/a>
 to give learners as a reference
 (and to print as a book to give instructors when they finish their training).
 Fifty years after the creation of the first computer typesetting systems,
 you'd think this would be easy.
 It's not,
 and the reasons why highlight yet again
 why so many scientists would rather
 &lt;a href="./playing-the-kazoo.html">keep playing the kazoo&lt;/a>
 than learn to play the violin.
&lt;/p></description></item><item><title>Playing the Kazoo</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/05/playing-the-kazoo/</link><pubDate>Mon, 05 May 2014 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/05/playing-the-kazoo/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 Yesterday,
 &lt;a href="{{site.baseurl}}/team/#davis.m">Matt Davis&lt;/a>
 quoted Peter Wang as saying,
 "A violin is to a kazoo as Python is to Excel."
 To which I &lt;a href="https://twitter.com/gvwilson/status/463109014776082432">replied&lt;/a>,
 "Exactly: anyone who wants to make music can play a kazoo right away without days of training."
 The difference between these two points of view lies at the heart of Software Carpentry.
 As I said in
 &lt;a href="{{site.baseurl}}/blog/2012/03/performance-curves-curriculum-design-and-trust.html">a post&lt;/a>
 two years ago:
&lt;/p></description></item><item><title>Mr. Biczo Was Right</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/04/mr-biczo-was-right/</link><pubDate>Wed, 23 Apr 2014 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/04/mr-biczo-was-right/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 I didn't have nearly enough time to enjoy everything that was going on
 at &lt;a href="https://us.pycon.org/2014/">PyCon 2014&lt;/a> last week.
 One event I particularly regret missing was a sprint
 organized in part by the folks at &lt;a href="http://scrapinghub.com/">Scrapinghub&lt;/a>.
 They got a bunch of people to write little scrapers to go through old conference websites,
 pull out speakers' names,
 and run them through a gender identification library
 in order to plot changes in gender balance per conference over time.
 The code is all &lt;a href="https://github.com/scrapinghub/pycon-speakers">available on GitHub&lt;/a>,
 and Gayane Petrosyan
 (currently at the &lt;a href="https://www.hackerschool.com/">Hacker School&lt;/a> in New York City)
 has started &lt;a href="http://nbviewer.ipython.org/github/pgayane/pycon-speakers/blob/dataanalysis/gender.ipynb">plotting&lt;/a>
 some of the results.
&lt;/p></description></item><item><title>Does Continuous Publication Require Continuous Attention?</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/04/continuous-publication-requires-continuous-attention/</link><pubDate>Sat, 05 Apr 2014 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/04/continuous-publication-requires-continuous-attention/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 I read
 &lt;a href="http://blog.martinfenner.org/2014/03/10/continuous-publishing/">this post&lt;/a>
 by Martin Fenner
 a couple of weeks ago.
 His thesis is that scientific publication is still very much a manual process,
 which makes publications relatively infrequent (and fairly painful) events.
 Instead,
 we ought to strive for &lt;em>continuous delivery&lt;/em>:
 production of the "paper" (including release of associated code and data)
 should be fully automated
 so that authors can ship whenever they want
 with relatively little effort.
&lt;/p>
&lt;p>
 Continuous delivery is popular among software developers,
 who frequently argue it's more efficient using diagrams like this:
&lt;/p></description></item><item><title>Not on the Shelves</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/03/not-on-the-shelves/</link><pubDate>Sun, 23 Mar 2014 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/03/not-on-the-shelves/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 Every few years,
 I indulge in a bit of &lt;a href="http://en.wikipedia.org/wiki/Sympathetic_magic">sympathetic magic&lt;/a>
 by writing reviews of books that don't actually exist
 in the hope that it will inspire someone to write them.
 Previous versions written in
 &lt;a href="http://third-bit.com/pages/not-on-the-shelves-1997.html">1997&lt;/a>,
 &lt;a href="http://third-bit.com/pages/not-on-the-shelves-2003.html">2003&lt;/a>,
 and
 &lt;a href="http://third-bit.com/pages/not-on-the-shelves-2009.html">2009&lt;/a>
 led to
 &lt;a href="http://www.amazon.com/Beautiful-Code-Leading-Programmers-Practice/dp/0596510047/">&lt;em>Beautiful Code&lt;/em>&lt;/a>,
 &lt;a href="http://www.amazon.com/Making-Software-Really-Works-Believe/dp/0596808321/">&lt;em>Making Software&lt;/em>&lt;/a>,
 &lt;a href="http://aosabook.org/en/index.html">&lt;em>The Architecture of Open Source Applications&lt;/em>&lt;/a>,
 and a few others books as well.
 I'd welcome comments on what &lt;em>isn't&lt;/em> in this list that you really wish you could read.
&lt;/p></description></item><item><title>What Tools Do You Use to Get Your Job Done?</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/03/what-do-you-use-to-get-your-job-done/</link><pubDate>Sun, 23 Mar 2014 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/03/what-do-you-use-to-get-your-job-done/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
Some of you may have heard of &lt;a href="http://usesthis.com">usesthis.com&lt;/a>.
In this site people are interviewed about the tools they use to get their job
done. The format is very straight forward, participants have to answer these
questions:
&lt;/p></description></item><item><title>Everything Old is New Again</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/03/everything-old-is-new-again/</link><pubDate>Fri, 14 Mar 2014 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/03/everything-old-is-new-again/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 Yesterday,
 the New York Times R&amp;amp;D Lab &lt;a href="https://source.opennews.org/en-US/articles/introducing-streamtools/">announced streamtools&lt;/a>,
 a web-based graphical tool for working with streams of data.
 It lets users create dataflow systems to re-mix and process
 the streams they believe most data will consist of in the near future.
&lt;/p>
&lt;p>
 Streamtools looks nice,
 but I do have some questions:
&lt;/p></description></item><item><title>You and Jimi Hendrix</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/03/you-and-jimi-hendrix/</link><pubDate>Fri, 14 Mar 2014 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/03/you-and-jimi-hendrix/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 I had a discussion a couple of weeks ago
 about software development tools and processes
 with some undergraduate students I'm mentoring.
 They asked why I'm so finicky about putting things under version control,
 writing unit tests,
 and creating tickets to keep track of what still needs to be done.
 The short answer is,
 because that's what Jimi Hendrix would have done.
&lt;/p></description></item><item><title>Anatole France, Updated</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/03/anatole-france-updated/</link><pubDate>Fri, 07 Mar 2014 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/03/anatole-france-updated/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;div align="center">
 &lt;img src="http://upload.wikimedia.org/wikipedia/commons/thumb/b/ba/Anatole_France_1921.jpg/169px-Anatole_France_1921.jpg" alt="Anatole France" />
 &lt;p>Anatole France (1844-1924)&lt;/p>
&lt;/div>
&lt;div class="row">
 &lt;div class="col-sm-6" style="padding-bottom:15px" align="center">
 &lt;p>&lt;strong>Then&lt;/strong>&lt;/p>
 &lt;p>
 The law, in its majestic equality, forbids the rich and poor alike to sleep under bridges, to beg in the streets, and to steal bread.
 &lt;/p>
 &lt;/div>
 &lt;div class="col-sm-6" style="padding-bottom:15px" align="center">
 &lt;p>&lt;strong>Now&lt;/strong>&lt;/p>
 &lt;p>
 The Internet, in its majestic equality, allows every scientist to analyze massive data sets using web services and cloud computing.
 &lt;/p>
 &lt;/div>
&lt;/div></description></item><item><title>Why Not a MOOC?</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/01/why-not-a-mooc/</link><pubDate>Sun, 19 Jan 2014 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/01/why-not-a-mooc/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 We got mail yesterday asking us whether we were going to run Software Carpentry as a MOOC.
 The short answer is, "No."
 The full answer has several parts:
&lt;/p></description></item><item><title>Publishing on the Web</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/01/publishing-on-the-web/</link><pubDate>Wed, 15 Jan 2014 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2014/01/publishing-on-the-web/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 Back in December,
 I asked a question on the Software Carpentry issue track:
 &lt;a href="{{site.github_url}}/bc/issues/199">What should we teach about writing/publishing papers in a webby world?&lt;/a>
 It led to a lively discussion about how the web is changing scientific publishing,
 the tools people can use to take advantage of those changes,
 and the gap between what's possible and what publishers (and senior academics) will actually accept.
 Many commenters dove immediately into the details of specific tools,
 but Justin Kitzes nailed it when &lt;a href="{{site.github_url}}/bc/issues/199#issuecomment-29940210">he said&lt;/a>:
&lt;/p></description></item><item><title>Tools, Conversations, and Cultures</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2013/12/tools-conversations-and-cultures/</link><pubDate>Tue, 31 Dec 2013 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2013/12/tools-conversations-and-cultures/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 &lt;a href="http://pgbovine.net/">Philip Guo&lt;/a> is best known these days for
 &lt;a href="http://pgbovine.net/PhD-memoir.htm">&lt;em>The Ph.D. Grind&lt;/em>&lt;/a>,
 but I first met him through his &lt;a href="http://pythontutor.com/">Online Python Tutor&lt;/a>.
 He helped teach a &lt;a href="http://pgbovine.net/teaching-librarians-programming.htm">bootcamp for librarians&lt;/a> last August,
 and recently wrote a &lt;a href="http://pgbovine.net/two-cultures-of-computing.htm">blog post&lt;/a>
 about the two cultures of computing that he encountered there.
 On one side he sees users who treat software as a tool for getting things done;
 on the other,
 he sees programmers who hold conversations with their software.
 The former use stand-alone GUIs backed by binary file formats (like Word and Excel),
 while the latter use command-line interfaces and text (like the shell, LaTeX, and Python).
 He writes:
&lt;/p></description></item><item><title>Catch and Hold</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2013/12/catch-and-hold/</link><pubDate>Fri, 27 Dec 2013 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2013/12/catch-and-hold/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 I'm a big fan of &lt;a href="http://computinged.wordpress.com">Mark Guzdial&lt;/a>'s work
 on computing education.
 Last week,
 he &lt;a href="https://twitter.com/guzdial/status/413374893141413888">tweeted&lt;/a> this:
&lt;/p>
&lt;blockquote>
 Google is made of people who succeed in current CS teaching model.
 Hard for them to realize that it's wrong for most people.
 #GoogleCSFirst
&lt;/blockquote></description></item><item><title>The State of Open Science</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2013/10/the-state-of-open-science/</link><pubDate>Thu, 17 Oct 2013 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2013/10/the-state-of-open-science/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 As part of the biannual Mozilla Summit a couple of weeks ago,
 John Jensen presented a report on the health of the open web.
 The details were fascinating,
 and are summed up in a graphic showing how
 the various layers of openness that we all depend on
 are doing.
 I've reproduced it on the left,
 and summarized my view of how open science is doing by those same measures on the right:
&lt;/p>
&lt;div align="center">
 &lt;table cellpadding="10">
 &lt;tr>
 &lt;td valign="top">
	&lt;table border="1" cellpadding="10">
	 &lt;tr>
	 &lt;th colspan="4" align="center">Open Web&lt;/th>
	 &lt;/tr>
	 &lt;tr>
	 &lt;td align="center" bgcolor="#FF4444">User Choice&lt;br/>&amp;amp; Control&lt;/td>
	 &lt;td align="center" bgcolor="#44FF44">Social&lt;br/>Activity&lt;/td>
	 &lt;td align="center" bgcolor="#FF4444">Economic&lt;br/>Activity&lt;/td>
	 &lt;td rowspan="6" valign="middle" align="center" bgcolor="#FF4444">Trust&lt;/td>
	 &lt;/tr>
	 &lt;tr>
	 &lt;td colspan="3" align="center" bgcolor="#FFFF44">Diversity of Services&lt;/td>
	 &lt;/tr>
	 &lt;tr>
	 &lt;td colspan="3" align="center" bgcolor="#FFFF44">Innovation&lt;/td>
	 &lt;/tr>
	 &lt;tr>
	 &lt;td colspan="3" align="center" bgcolor="#44FF44">Content Freedom&lt;/td>
	 &lt;/tr>
	 &lt;tr>
	 &lt;td colspan="3" align="center" bgcolor="#FFFF44">Interoperability&lt;/td>
	 &lt;/tr>
	 &lt;tr>
	 &lt;td colspan="3" align="center" bgcolor="#44FF44">Access&lt;/td>
	 &lt;/tr>
	&lt;/table>
 &lt;/td>
 &lt;td valign="top">
	&lt;table border="1" cellpadding="10">
	 &lt;tr>
	 &lt;th colspan="4" align="center">Open Science&lt;/th>
	 &lt;/tr>
	 &lt;tr>
	 &lt;td align="center" bgcolor="#FFFF44">User Choice&lt;br/>&amp;amp; Control&lt;/td>
	 &lt;td align="center" bgcolor="#44FF44">Social&lt;br/>Activity&lt;/td>
	 &lt;td align="center" bgcolor="#FFFF44">Economic&lt;br/>Activity&lt;/td>
	 &lt;td rowspan="6" valign="middle" align="center" bgcolor="#FFFF44">Trust&lt;/td>
	 &lt;/tr>
	 &lt;tr>
	 &lt;td colspan="3" align="center" bgcolor="#FFFF44">Diversity of Services&lt;/td>
	 &lt;/tr>
	 &lt;tr>
	 &lt;td colspan="3" align="center" bgcolor="#44FF44">Innovation&lt;/td>
	 &lt;/tr>
	 &lt;tr>
	 &lt;td colspan="3" align="center" bgcolor="#FF4444">Content Freedom&lt;/td>
	 &lt;/tr>
	 &lt;tr>
	 &lt;td colspan="3" align="center" bgcolor="#FF4444">Interoperability&lt;/td>
	 &lt;/tr>
	 &lt;tr>
	 &lt;td colspan="3" align="center" bgcolor="#FFFF44">Access&lt;/td>
	 &lt;/tr>
	&lt;/table>
 &lt;/td>
 &lt;/tr>
 &lt;/table>
&lt;/div></description></item><item><title>You Keep Using That Word</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2013/10/you-keep-using-that-word/</link><pubDate>Thu, 17 Oct 2013 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2013/10/you-keep-using-that-word/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 The first Workshop on Sustainable Software for Science: Practice and Experiences (WSSSPE)
 is going to be held in conjunction with &lt;a href="http://sc13.supercomputing.org/">Supercomputing 2013&lt;/a>
 on Sunday, November 17.
 After reading
 &lt;a href="http://wssspe.researchcomputing.org.uk/contributions/">the papers on the workshop site&lt;/a>,
 my reaction was:
&lt;/p></description></item><item><title>The Future: Today</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2013/09/the-future-today/</link><pubDate>Fri, 27 Sep 2013 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2013/09/the-future-today/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 Two papers appeared on my radar this week that give a taste of
 the kind of science we want everyone to be able to do in five years' time.
 The first,
 by Aide et al,
 is "&lt;a href="https://peerj.com/articles/103/">Real-time bioacoustics monitoring and automated species identification&lt;/a>";
 the second,
 by Omberg et al,
 is "&lt;a href="http://www.nature.com/ng/journal/v45/n10/full/ng.2761.html">Enabling transparent and collaborative computational analysis of 12 tumor types within The Cancer Genome Atlas&lt;/a>".
 They're both excellent pieces of 21st Century science,
 and they caught my eye because:
&lt;/p>
&lt;ul>
 &lt;li>They're open access: I was able to read them on the off chance that they'd be interesting.&lt;/li>
 &lt;li>They show how a few scientists with serious software skills can accelerate the research of hundreds of others, provided those others have a few skills themselves.&lt;/li>
&lt;/ul></description></item><item><title>Two Cheers for GitHub</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2013/08/two-cheers-for-github/</link><pubDate>Fri, 23 Aug 2013 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2013/08/two-cheers-for-github/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 There's been a micro-flurry of excitement in the scientific world
 about &lt;a href="https://help.github.com/articles/rendering-csv-and-tsv-data">GitHub's recent announcement that&lt;/a>
 they will now render tabular text files (i.e., CSV and TSV) on their site.
 Coming on the heels of their support for &lt;a href="https://help.github.com/articles/mapping-geojson-files-on-github">GeoJSON&lt;/a>,
 this is still more evidence that they're serious about becoming
 a platform for working with data.
&lt;/p>
&lt;p>
 So why only two cheers?
 Because they're going about it in the wrong way,
 and as a consequence,
 they'll deliver a lot less value than they could,
 a lot later than they could.
&lt;/p></description></item><item><title>Where We Are (More or Less)</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2013/05/where-we-are/</link><pubDate>Fri, 24 May 2013 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2013/05/where-we-are/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
In January 2012,
John Cook posted &lt;a href="http://blog.codekills.net/">this&lt;/a> to his widely-read blog:
&lt;/p>
&lt;blockquote>
 In a review of linear programming solvers from 1987 to 2002,
 Bob Bixby says that solvers benefited as much from algorithm improvements as from Moore's law:
 "Three orders of magnitude in machine speed
 and three orders of magnitude in algorithmic speed add up to six orders of magnitude in solving power.
 A model that might have taken a year to solve 10 years ago can now solve in less than 30 seconds."
&lt;/blockquote></description></item><item><title>Git vs. Subversion and Feedback in General</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2013/05/git-vs-svn-feedback/</link><pubDate>Fri, 10 May 2013 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2013/05/git-vs-svn-feedback/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Software Carpentry's mission is to help scientists teach other scientists how to be better programmers. If we want to do that successfully, we need to be scientists ourselves. In particular, we need to base what we teach on evidence, not anecdotes or personal preferences.&lt;/p>
&lt;p>For example: we taught Git at the Toronto bootcamp last week, and once again I think our learners would have absorbed more if we'd taught Subversion. Why? Well, take a look at this diagram by Oliver Steele (which I found on &lt;a href="http://gitready.com/beginner/2009/01/21/pushing-and-pulling.html">this page&lt;/a> written by Nick Quaranto):&lt;/p></description></item><item><title>A Rational Computing Process: How and Why to Fake It</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2013/05/rational-computing-process/</link><pubDate>Thu, 02 May 2013 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2013/05/rational-computing-process/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>
 Parnas and Clement's 1986 paper
 "&lt;a href="http://dl.acm.org/citation.cfm?id=9800">A Rational Design Process: How and Why to Fake It&lt;/a>" [&lt;a href="#footnote-1">1&lt;/a>]
 is one of the most widely read in the history of software engineering.
 In it, they argued that designing software according to some particular process isn't what matters;
 what does is creating documentation after the fact to make it &lt;em>look&lt;/em> as though a rational process was followed
 so that other people can retrace the designers' thinking without heroic effort.
 Acknowledging the messiness of reality wasn't new:
 a century ago,
 &lt;a href="http://en.wikipedia.org/wiki/Henri_Poincar%C3%A9#Philosophy">Poincar&amp;eacute;&lt;/a> wrote that
 most mathematicians figured out the proof &lt;em>after&lt;/em> they had figured out the answer,
 and everyone knows that the description of the experiment that's put in the paper
 is almost never how the experiment was actually done
 [&lt;a href="#footnote-2">2&lt;/a>]:
&lt;/p></description></item><item><title>Spreadsheets, Retractions, and Bias</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2013/04/spreadsheets-retractions-and-bias/</link><pubDate>Fri, 19 Apr 2013 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2013/04/spreadsheets-retractions-and-bias/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Just in case there's any misunderstanding:&lt;/p>
&lt;div align="center">
&lt;em>&lt;strong>I'm not suggesting that scientists should use Excel.&lt;/strong>&lt;/em>
&lt;/div>
&lt;p>Now, with that out of the way&amp;hellip; Guy Deutscher's wonderful book &lt;a href="http://www.amazon.com/Through-Language-Glass-Different-Languages/dp/0312610491/">&lt;cite>Through the Language Glass&lt;/cite>&lt;/a> devotes several pages to the Matses people of South America:&lt;/p>
&lt;blockquote>&lt;em>Their language&amp;hellip;compels them to make distinctions of mind-blowing subtlety whenever they report events&amp;hellip; [Verbs have] a system of distinctions that linguists call "evidentiality", and as it happens, the Matses system&amp;hellip;is the most elaborate that has ever been reported&amp;hellip; Whenever Matses speakers use a verb, they are obliged to specify&amp;mdash;like the finickiest of lawyers&amp;mdash;exactly how they came to know about the facts they are reporting&amp;hellip; There are separate verbal forms depending on whether you are reporting direct experience (you saw someone passing by with your own eyes), something inferred from evidence (you saw footprints on the sand), conjecture (people always pass by at that time of day), or hearsay (your neighbor told you he had seen someone passing by). If a statement is reported with the incorrect evidentiality form, it is considered a lie.&lt;/em>&lt;/blockquote>
&lt;p>I thought about this in the wake of reactions to two reports this week of errors in scientific work. The first was the discovery by Herndon and others of &lt;a href="http://www.slate.com/blogs/moneybox/2013/04/16/reinhart_rogoff_coding_error_austerity_policies_founded_on_bad_coding.html">mistakes in Reinhart &amp;amp; Rogoff's widely-quoted analysis of the relationship between debt and growth&lt;/a>&amp;mdash;mistakes that were due in part to bugs in an Excel spreadsheet. Quite a few of the scientists I follow on Twitter and elsewhere responded by saying, "See? I told you scientists shouldn't use Excel!"&lt;/p></description></item><item><title>Correctness Isn't Compelling</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2013/02/correctness-isnt-compelling/</link><pubDate>Mon, 11 Feb 2013 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2013/02/correctness-isnt-compelling/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>The &lt;a href="http://www.davidhbailey.com/dhbpapers/icerm-report.pdf">final report&lt;/a> from the &lt;a href="http://icerm.brown.edu/tw12-5-rcem">ICERM workshop on Reproducibility in Computational and Experimental Mathematics&lt;/a> is now available, and its appearance has prompted me to explain why we don't put more emphasis on reproducibility in Software Carpentry. Long story short, it's because scientists don't care because they're not rewarded for doing so. Here's the math:&lt;/p>
&lt;ul>
 &lt;li>Assume five million scientific papers were published in the decade 1990&amp;ndash;2000. (The actual number depends on what you include as a "paper", but our reasoning holds.)&lt;/li>
 &lt;li>Of those, perhaps a hundred have been retracted because of honest computational irreproducibility ("honest", because fraud isn't part of this argument).&lt;/li>
 &lt;li>That means the odds that a scientist will have to retract a particular paper because someone noticed that her calculations couldn't be reproduced are one in fifty thousand.&lt;/li>
 &lt;li>So if the average paper takes eight months to produce, and scientists work six-day weeks, that means it's only worth spending &lt;em>115 extra seconds per paper&lt;/em> on reproducibility as insurance.&lt;/li>
&lt;/ul>
&lt;p>Different assumptions and models will naturally produce different answers, but won't change the conclusion: given the system we have today, investing extra time to make work reproducible as insurance against error isn't economical. RR's advocates may respond, "That's why we're trying to change the system," but chicken-and-egg traps are notoriously difficult to break out of: if people don't care about the reproducibility of their own work, they're unlikely to check it when reviewing other people's work, and around and around we go. Trying to get them to be an early adopter of new practices (which aren't yet rewarded consistently by their peer group) is therefore a very hard sell.&lt;/p></description></item><item><title>Features and Scope in Open Courseware</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2013/02/features-and-scope-in-open-courseware/</link><pubDate>Sun, 03 Feb 2013 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2013/02/features-and-scope-in-open-courseware/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>

&lt;p>A couple of weeks ago, Brian Granger (one of the core developers of IPython) posted some thoughts on &lt;a href="http://brianegranger.com/?p=249">features and scope in open source software&lt;/a>. In it, he enumerates some of the risks associated with constantly adding new features to a piece of software (open source or otherwise):&lt;/p>

&lt;ol>
 &lt;li>Additional complexity in the code base (which makes future work more difficult).&lt;/li>
 &lt;li>Increased "surface area" for bugs (the more features there are, the more places a bug might be lurking).&lt;/li>
 &lt;li>Increased documentation and support time.&lt;/li>
 &lt;li>It forces developers to specialize, which makes "big picture" thinking harder.&lt;/li>
 &lt;li>Increased testing effort.&lt;/li>
 &lt;li>A more complex user experience. (Microsoft Word, anyone?)&lt;/li>
 &lt;li>Opportunity costs: time spent working on X is time &lt;em>not&lt;/em> spent working on Y.&lt;/li>
&lt;/ol>

&lt;p>He then enumerates some things projects can do to throttle growth down to manageable levels:&lt;/p></description></item><item><title>The Missing Side of the Triangle</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2013/02/the-missing-side-of-the-triangle/</link><pubDate>Sun, 03 Feb 2013 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2013/02/the-missing-side-of-the-triangle/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>

&lt;p>A few weeks ago, John Cook &lt;a href="http://www.johndcook.com/blog/2012/01/01/moores-law-squared/">posted&lt;/a> the following:&lt;/p>

&lt;blockquote>&lt;em>
&lt;p>In a review of linear programming solvers from 1987 to 2002, Bob Bixby says that solvers benefited as much from algorithm improvements as from Moore's law.&lt;/p>
&lt;blockquote>
&lt;p>Three orders of magnitude in machine speed and three orders of magnitude in algorithmic speed add up to six orders of magnitude in solving power. A model that might have taken a year to solve 10 years ago can now solve in less than 30 seconds.&lt;/p></description></item><item><title>Novelty, Efficiency, and Trust</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2013/01/novelty-efficiency-and-trust/</link><pubDate>Mon, 28 Jan 2013 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2013/01/novelty-efficiency-and-trust/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>

&lt;p>I've spent a lot of time trying to figure out what the "big picture" is for Software Carpentry. What are the &lt;a href="http://arxiv.org/abs/1210.0530">best practices&lt;/a> every scientist should master? What are the &lt;a href="{{site.baseurl}}/lessons/previous/#softeng">principles&lt;/a> of computational thinking? How exactly are we helping people? My latest attempt to put this all in a nutshell has three strands: &lt;em>novelty&lt;/em>, &lt;em>efficiency&lt;/em>, and &lt;em>trust&lt;/em>:&lt;/p>
&lt;ol>
 &lt;li>By improving scientists' computing skills, we're helping them do things they couldn't do before.&lt;/li>
 &lt;li>We're also showing them how to do things with less effort.&lt;/li>
 &lt;li>Finally, scientists can have more confidence in results (both their own and others') that are produced our way.&lt;/li>
&lt;/ol>
&lt;p>The second of these, efficiency, is what sets us apart from other "computing for scientists" initiatives. On on side, supercomputing and big data have opened up entirely new kinds of science, just as radio telescopes and PCR did. On another, advocates of open access and reproducible research are changing the way science is done, and by doing so, making it easier for people to check and build on each other's work. Our goal is to help them implement all of these things without superhuman effort&amp;mdash;to do with ten minutes of scripting what used to take an hour of mousing around in a spreadsheet.&lt;/p></description></item><item><title>You've Shown Me the C, Now Where's the Python?</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/12/youve-shown-me-the-c-now-wheres-the-python/</link><pubDate>Sun, 16 Dec 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/12/youve-shown-me-the-c-now-wheres-the-python/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>The W3C's &lt;a href="http://www.w3.org/2011/prov/wiki/Main_Page">Provenance Working Group&lt;/a> recently published a new draft of their &lt;a href="http://www.w3.org/blog/SW/2012/12/12/a-major-release-of-prov/">proposed standard for tracking provenance on the web&lt;/a>. It's pretty dense stuff: even the &lt;a href="http://www.w3.org/TR/2012/WD-prov-primer-20121211/">primer&lt;/a>, which uses the word "intuitive" five times to describe itself, is hard to follow if you've never been immersed in Dublin Core, TURTLE, and the like. That isn't a criticism&amp;mdash;this stuff is intrinsically hard&amp;mdash;but I think most scientists won't be able to see the forest for the trees.&lt;/p></description></item><item><title>Why Be an Instructor</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/12/why-be-an-instructor/</link><pubDate>Wed, 05 Dec 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/12/why-be-an-instructor/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Our instructors are all volunteers&amp;mdash;bootcamp hosts cover their travel and accommodation costs, but they're not paid for their time. So why do they do it?&lt;/p>
&lt;ol>
 &lt;li>&lt;em>Make the world a better place.&lt;/em> As I say in a lot of my talks, the two things we need to get through the next hundred years are more science and more courage. I don't know if we can do much about the latter, but we can sure help a lot with the former.&lt;/li>
 &lt;li>&lt;em>Make their own lives better.&lt;/em> Most of the time, we try to have astronomers teach astronomers, ecologists teach ecologists, and so on. These are people whose tools instructors might one day want to use themselves, so by making them more clueful, instructors are helping themselves.&lt;/li>
 &lt;li>&lt;em>It's fun.&lt;/em> How could it not be? You get to stand up and look smart in front of a bunch of smart people who actually want to be there, and you don't have to mark anything afterward.&lt;/li>
 &lt;li>&lt;em>Build a reputation.&lt;/em> Showing up to run a really useful workshop is a great way for people to introduce themselves to places they'd eventually like to work, and a great way to make contact with potential collaborators. This is probably the most important reason from Software Carpentry's point of view, since it's what makes our model sustainable.&lt;/li>
 &lt;li>&lt;em>Get practice teaching.&lt;/em> We're doing more every year to train instructors, and giving them chances to teach online as well&amp;mdash;both of which are useful for people with academic careers in mind.&lt;/li>
 &lt;li>&lt;em>Help get people of diverse backgrounds into the pipeline.&lt;/em> Computer Science is 12-15% female, and that figure has been &lt;em>dropping&lt;/em> since the 1980s. From what I've seen, there's a similar gender skew among computationally-oriented people in other sciences, which if left alone will be self-perpetuating. Some of our instructors are involved in part because they want to break that cycle and be a public example of a competent, confident woman programmer.&lt;/li>
 &lt;li>&lt;em>Teaching forces you to learn new things, or learn old things in more detail than you already know.&lt;/em> See for example "&lt;a href="http://www.sciencemag.org/content/333/6045/1037.abstract">Graduate Students' Teaching Experiences Improve Their Methodological Research Skills&lt;/a>"&lt;/li>
 &lt;li>&lt;em>The more you know, the less you have to write yourself.&lt;/em> Putting a grant application together? Have a site review coming up? We probably have slides for that... :-)&lt;/li>
&lt;/ol>
&lt;p>And why do people do online office hours? For some, the primary incentive is a little bit of guilt: we can't give everyone all the help they need during a two-day workshop, and online follow-up is a way to make up for that. For others, it's a chance to pick up and practice some skills that are increasingly in demand: everyone believes that a lot of teaching is going to move online in the coming years, and this is a way to figure out how to do it.&lt;/p></description></item><item><title>Web 4 Science</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/11/web-4-science/</link><pubDate>Tue, 13 Nov 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/11/web-4-science/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Titus Brown (a long-time supporter of, and contributor to, this project) has a series of posts on his blog about using the web for science. As he's well ahead of the curve in doing this himself, I thought readers of this blog would be interested:&lt;/p>
&lt;ul>
 &lt;li>&lt;a href="http://ivory.idyll.org/blog/w4s-overview.html">opening remarks&lt;/a>&lt;/li>
 &lt;li>&lt;a href="http://ivory.idyll.org/blog/w4s-awesomeness.html">the awesomeness we're experiencing&lt;/a>&lt;/li>
 &lt;li>&lt;a href="http://ivory.idyll.org/blog/w4s-challenges.html">the challenges ahead&lt;/a>&lt;/li>
 &lt;li>&lt;a href="http://ivory.idyll.org/blog/w4s-future-strategies.html">strategizing for the future&lt;/a>&lt;/li>
 &lt;li>&lt;a href="http://ivory.idyll.org/blog/w4s-tech-wanted.html">tech wanted&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>There's lots here to chew on&amp;mdash;I'm sure he'd welcome comments from our readers.&lt;/p></description></item><item><title>An Administrative Note</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/11/an-administrative-note/</link><pubDate>Mon, 05 Nov 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/11/an-administrative-note/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>

&lt;p>In order to maintain focus, I'm moving discussion of general education &amp;amp; technology issues over to &lt;a href="http://third-bit.com/blog/archives/4546.html">my personal blog&lt;/a>. I will continue posting items specifically related to teaching computational competence to scientists here.&lt;/p></description></item><item><title>Twenty Percent</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/10/twenty-percent/</link><pubDate>Tue, 23 Oct 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/10/twenty-percent/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>

&lt;p>I realized a couple of days ago that I'd never blogged about what Software Carpentry needs to accomplish in order to change the practice of science fundamentally and permanently. In a nutshell, we need to convert a fifth of scientists to our way of thinking. Once we do that, the odds are better than 50-50 that every time someone sends a paper out for review, at least one reviewer will ask hard questions about how the computational work was done. I get that number by assuming:&lt;/p></description></item><item><title>Rebuilding Redux</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/10/rebuilding-redux/</link><pubDate>Fri, 12 Oct 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/10/rebuilding-redux/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>The time has come to replace our creaking combination of web tools with something that will let us do more for more people while spending less time switching between browser tabs. To recap &lt;a href="{{site.baseurl}}/blog/2012/04/behind-the-scenes-or-the-ethics-of-cultivating-discontent.html">an earlier post&lt;/a>, we currently use:&lt;/p>
&lt;ul>
&lt;li>WordPress for our blog, web site pages, and comments;&lt;/li>
&lt;li>YouTube to host our videos (links to which are embedded in the WordPress pages);&lt;/li>
&lt;li>Subversion (administered via the Dreamhost control panel) to manage our slides, code examples, and other files;&lt;/li>
&lt;li>Mailman (administered the same way) to manage mailing lists;&lt;/li>
&lt;li>a Google Map to show the locations of past and future bootcamps;&lt;/li>
&lt;li>a Google Calendar to show their dates;&lt;/li>
&lt;li>Google Analytics to track web site traffic;&lt;/li>
&lt;li>EventBrite to handle event signup; and&lt;/li>
&lt;li>OpenBadges to keep track of who's accomplished what (currently in beta).&lt;/li>
&lt;/ul>
&lt;p>We also use Vidyo for video conferencing (primarily tutorials), and run Etherpad beside it so that people have a text channel for asking questions, posting links and code fragments, taking minutes, and so on. As I pointed out in that &lt;a href="{{site.baseurl}}/blog/2012/04/behind-the-scenes-or-the-ethics-of-cultivating-discontent.html">aforementioned post&lt;/a>, this means admins need at least six different logins to get things done, and need to copy a lot of information from place to place. For example, whenever we commit to a new bootcamp, someone needs to:&lt;/p></description></item><item><title>Dark Matter, Public Health, and Scientific Computing</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/10/dark-matter-public-health-and-scientific-computing/</link><pubDate>Wed, 10 Oct 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/10/dark-matter-public-health-and-scientific-computing/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;blockquote>&lt;p>&lt;em>This is the text of a talk given at the 8th IEEE International Conference on eScience, October 10, 2012. The &lt;a href="http://www.slideshare.net/gvwilson/dark-matter-public-health-and-scientific-computing">slides&lt;/a> are also available.&lt;/em>&lt;/p>&lt;/blockquote>
&lt;p>Back in March, &lt;a href="http://www.hanselman.com/blog/AboutMe.aspx">Scott Hanselman&lt;/a> wrote a blog post titled &lt;a href="http://www.hanselman.com/blog/DarkMatterDevelopersTheUnseen99.aspx">Dark Matter Developers: The Unseen 99%&lt;/a> that crystallized something I'd been thinking about for a while. In it, he said:&lt;/p>
&lt;blockquote>&lt;p>&lt;em>[We] hypothesize that there is another kind of developer than the ones we meet all the time. We call them Dark Matter Developers. They don't read a lot of blogs, they never write blogs, they don't go to user groups, they don't tweet or facebook, and you don't often see them at large conferences... [A]s one of the loud-online-pushing-things-forward 1%, I might think I need to find these Dark Matter Developers and explain to them how they need to get online! Join the community! Get a blog, start changing stuff, mix it up! But...those dark matter 99% have a lot to teach us about GETTING STUFF DONE... They aren't chasing the latest beta or pushing any limits, they are just producing.&lt;/em>&lt;/p></description></item><item><title>Wanted: An Entry-Level Provenance Library</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/10/wanted-an-entry-level-provenance-library/</link><pubDate>Thu, 04 Oct 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/10/wanted-an-entry-level-provenance-library/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>One of the reason we keep teaching Subversion is that it allows us to show students a simple but useful trick. If you add the following to a text file:&lt;/p>
&lt;pre>$Revision: $&lt;/pre>
&lt;p>and then tell Subversion to set the "Revision" keyword on that file, the next time you commit it, Subversion will automatically update the text to:&lt;/p>
&lt;pre>$Revision: 423$&lt;/pre>
&lt;p>or whatever the revision number actually is. This is handy if you're mailing files around, and want people to be able to tell exactly which revision they have, but what makes it &lt;em>really&lt;/em> useful is this:&lt;/p></description></item><item><title>The Real Hard Work</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/09/the-real-hard-work/</link><pubDate>Sun, 30 Sep 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/09/the-real-hard-work/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>I spent a couple of thought-provoking hours at &lt;a href="http://www.codecademy.com/">Codecademy&lt;/a>'s office in New York on Thursday, during which my host said, "It's so different from Silicon Valley, where a lack of experience is considered an asset." The next day, while teaching at Columbia, I used one of my favorite sayings, "A week of hard work can sometimes save you an hour of thought," and someone in the audience piped up, "Or an hour of reading." The two comments helped crystallize something that I've been thinking about for several months now about what's hard for creative people to do, and what implications that has.&lt;/p></description></item><item><title>Not Really Disjoint</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/09/not-really-disjoint/</link><pubDate>Tue, 04 Sep 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/09/not-really-disjoint/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>The twinned discussions in bioinformatics about openness and software quality are heating up. A recent salvo on Gas Stations Without Pumps is titled "&lt;a href="http://gasstationwithoutpumps.wordpress.com/2012/08/27/accountable-research-software/">Accountable research software&lt;/a>", and one statement in particular caught my eye:&lt;/p>
&lt;blockquote>&lt;p>&lt;em>The rapid prototyping skills needed for research programming and the careful specification, error checking, and testing needed for software engineering are almost completely disjoint.&lt;/em>&lt;/p>&lt;/blockquote>
&lt;p>I might agree that careful specification isn't needed for research programming, but error checking and testing definitely are. In fact, if we've learned anything from the agile movement in the last 15 years, it's that the more improvisatory your development process is, the more important careful craftsmanship is as well&amp;mdash;unless, of course, you don't care whether your programs are producing correct answers or not.&lt;/p></description></item><item><title>Lifted by the Audience</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/09/lifted-by-the-audience/</link><pubDate>Sun, 02 Sep 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/09/lifted-by-the-audience/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>I spent Thursday and Friday recording most of the material we've been using in workshops for the past six months [&lt;a href="#1">1&lt;/a>]. One thing that kept bugging me was how flat and uninspiring it was to talk to a camera: I had forgotten just how much a live audience energizes me. I also realized how much I rely on people's questions, and the expressions on their faces, to keep me on track: it took me almost 15 minutes to remember that I needed to explain that Python uses indentation to show nesting, whereas I &lt;em>always&lt;/em> do that at the right time in a live class because someone either asks or looks puzzled.&lt;/p></description></item><item><title>How Robust Is Your Programming Language?</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/07/how-robust-is-your-programming-language/</link><pubDate>Sat, 21 Jul 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/07/how-robust-is-your-programming-language/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>One of the biggest problems in teaching novices how to program is that most programming systems are not robust. A car can go quite a long distance on a slightly-flat tire, and people can live for years with just one kidney or half a liver, but get one character out of place in a program, and boof&amp;mdash;it's game over. And spotting that one character can be very hard, particularly if you're a novice and are learning mostly through copy-paste-and-tweak.&lt;/p></description></item><item><title>Pessimism and Doom</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/06/pessimism-and-doom/</link><pubDate>Tue, 26 Jun 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/06/pessimism-and-doom/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>According to recent research, &lt;a href="http://www.economist.com/node/21554506">an absence of optimism plays a large role in keeping people trapped in poverty&lt;/a>:&lt;/p>
&lt;blockquote>&lt;p>&lt;em>This hopelessness manifests itself in many ways. One is a sort of pathological conservatism, where people forgo even feasible things with potentially large benefits for fear of losing the little they already possess.&lt;/em>&lt;/p>&lt;/blockquote>
&lt;p>The parallels with scientific computing practically jump off the page, don't they?&lt;/p></description></item><item><title>If You Want to Teach, Isn't It Only Fair to Learn a Few Things First?</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/06/if-you-want-to-teach-isnt-it-only-fair-to-learn-a-few-things-first/</link><pubDate>Mon, 25 Jun 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/06/if-you-want-to-teach-isnt-it-only-fair-to-learn-a-few-things-first/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Carla, a high school student, is doing a class project comparing climate change in the Northern and Southern hemispheres. She wants to see whether the gap between the average annual temperatures in Canada and Australia increased during the Twentieth Century. The raw data she needs is available online; all she needs to do (for some value of "all") is get it, load it into her program, do her calculations, and create an HTML to display her results for other students to see.&lt;/p></description></item><item><title>But the Greatest of These Is...</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/06/but-the-greatest-of-these-is/</link><pubDate>Fri, 08 Jun 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/06/but-the-greatest-of-these-is/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>In her &lt;a href="http://www.eage.org/events/index.php?evp=6819&amp;amp;ActiveMenu=44&amp;amp;Opendivs=s3,s13,s29">EAGE keynote&lt;/a> earlier today, &lt;a href="http://blog.stodden.net/">Victoria Stodden&lt;/a> talked about the central role of geophysics in the reproducible research movement. After discussing the problem, she identified five interlocking solutions:&lt;/p>
&lt;ol>
&lt;li>Tools&lt;/li>
&lt;li>Intellectual property barriers&lt;/li>
&lt;li>Funding agency policy / federal regulation&lt;/li>
&lt;li>Journal policy&lt;/li>
&lt;li>Institutional expectations&lt;/li>
&lt;/ol>
&lt;p>I think these are all important, but I think they are all &lt;em>less&lt;/em> important than something which doesn't appear anywhere in her slides:&lt;/p></description></item><item><title>Alone and Misunderstood</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/05/alone-and-misunderstood/</link><pubDate>Wed, 23 May 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/05/alone-and-misunderstood/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Jeffrey Mirel and Simona Goldin's recent article in &lt;em>The Atlantic&lt;/em> titled "&lt;a href="http://www.theatlantic.com/national/archive/2012/04/alone-in-the-classroom-why-teachers-are-too-isolated/255976/">Alone in the Classroom&lt;/a>" initially struck a chord with me, particularly when they said, "A recent study by Scholastic and the Gates Foundation found that teachers spend only about 3 percent of their teaching day collaborating with colleagues. The majority of American teachers plan, teach, and examine their practice alone." But then Mirel and Goldin blew it by saying:&lt;/p></description></item><item><title>Responsible Conduct</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/05/responsible-conduct/</link><pubDate>Wed, 23 May 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/05/responsible-conduct/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Titus Brown, Ethan White, and I have been talking about what Responsible Conduct of Research (RCR) standards would look like in computational science. Titus has posted a &lt;a href="http://ivory.idyll.org/blog/may-12/computational-rcr.html">four-point summary&lt;/a>; we would welcome your input over on his blog.&lt;/p></description></item><item><title>Citing Versions</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/05/citing-versions/</link><pubDate>Tue, 22 May 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/05/citing-versions/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>We got mail yesterday from a workshop participant saying, "My question is how does one show in a research paper that the underlying data and the software is version controlled?" Cameron Neylon's answer, slightly edited, was:&lt;/p>
&lt;blockquote>&lt;p>My approach in an idea world would be to have all of my data (or links to it) under version control along with the code. When the version to be used for the publication is clear I would give it a tag (I'm a Git user but there is similarly functionality in all version control systems) and then push that to an online repository. You can then give a link or reference to the appropriate repository version online. If you don't want to put your main repository online then you could just put up the version from the publication.&lt;/p></description></item><item><title>What's Wrong With All This?</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/05/whats-wrong-with-all-this/</link><pubDate>Sun, 20 May 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/05/whats-wrong-with-all-this/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Titus Brown &lt;a href="https://twitter.com/ctitusbrown/status/200937511999123456">doesn't like this web site&lt;/a>. He's OK with the content (I think), but he finds it awkward to use, and while I don't feel as strongly as he does, I accept that we have outgrown WordPress. The question is, what should we use instead? We need a lot more than just a blog and some static web pages, but learning management systems like &lt;a href="http://moodle.org/">Moodle&lt;/a> weren't built with our ad hoc model in mind (they're really teaching administration systems), and newer tools like &lt;a href="http://p2pu.org">P2PU&lt;/a> feel like a step backward. I started thinking about &lt;a href="{{site.baseurl}}/blog/2012/04/behind-the-scenes-or-the-ethics-of-cultivating-discontent.html">requirements for a replacement&lt;/a> back in April, but got distracted. Here's a longer look.&lt;/p></description></item><item><title>Better Across the Pond?</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/04/better-across-the-pond/</link><pubDate>Mon, 30 Apr 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/04/better-across-the-pond/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>I'm sitting in a packed room helping out at the UCL bootcamp, the first of a series to be run in the United Kingdom (Newcastle is next, and there are plans to run additional workshops in Oxford, RAL, Glasgow, Edinburgh and Bristol). I'm thinking about two things: why would you design a 60 seater lecture theatre with only one window for ventilation and why is Software Carpentry so popular in the UK?&lt;/p></description></item><item><title>Stop Me If You've Heard This One</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/04/stop-me-if-youve-heard-this-one/</link><pubDate>Sat, 28 Apr 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/04/stop-me-if-youve-heard-this-one/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>I used to tell this joke:&lt;/p>
&lt;blockquote>&lt;p>An engineer says, "Theory approximates reality."&lt;br />
A mathematician says, "Reality approximates theory."&lt;br />
A sociologist says, "Would you like fries with that?"&lt;/p>&lt;/blockquote>
&lt;p>Skip forward ten years. It was the early 2000s, just after the first dot-com bubble burst, and I started noticing that all of a sudden, programmers were taking design and graphic designers seriously. Overnight, it seemed, companies had started paying designers competitively and giving them real authority. Somehow, nerds like me who had made jokes about people with "soft" skills (and boy, isn't &lt;em>that&lt;/em> term revealing) had come to realize just how valuable and difficult those skills were.&lt;/p></description></item><item><title>Behind the Scenes (or, the Ethics of Cultivating Discontent)</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/04/behind-the-scenes-or-the-ethics-of-cultivating-discontent/</link><pubDate>Wed, 18 Apr 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/04/behind-the-scenes-or-the-ethics-of-cultivating-discontent/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>A lot goes on behind the scenes here at software-carpentry.org:&lt;/p>
&lt;ol>
&lt;li>&lt;em>The site itself&lt;/em> is WordPress with a partly-customized theme. We use the blog for topics like this and pages (over a hundred of them) for lecture topics. We used to use Trac to manage work items, but nobody kept it up-to-date; these days, we use a WordPress to-do list plugin for the same purpose, and with as little result.&lt;/li>
&lt;li>&lt;em>Our videos&lt;/em> are hosted on YouTube&amp;mdash;we used to store them locally, but performance improved a lot when we offloaded.&lt;/li>
&lt;li>We manage our &lt;em>mailing lists&lt;/em> and &lt;em>version control repositories&lt;/em> through the Dreamhost control panel, which actually delegates mailing list management to Mailman.&lt;/li>
&lt;li>The &lt;em>calendar&lt;/em> and &lt;em>map&lt;/em> are hosted by Google.&lt;/li>
&lt;li>We do &lt;em>event registration&lt;/em> through EventBrite.&lt;/li>
&lt;li>We currently use BlueJeans and Skype for &lt;em>web conferencing&lt;/em>, but it's been plagued with both technical and social difficulties: people need to have the right Skype client for their OS, and there are the usual problems with unmuted microphones, unintelligible audio, feedback loops, and so on. Forget flying cars: I'll believe the future has arrived when we can make &lt;em>this&lt;/em> work...&lt;/li>
&lt;/ol>
&lt;p>This analysis leaves me feeling a bit conflicted. When I think about &lt;a href="{{site.baseurl}}/blog/2012/04/what-to-teach-researchers-about-the-web.html">what we should teach researchers about the web&lt;/a>, I have three requirements:&lt;/p></description></item><item><title>GitHub for Education</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/04/github-for-education/</link><pubDate>Tue, 17 Apr 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/04/github-for-education/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>In my experience, most teachers don't develop courses from scratch. Instead, they take whatever material is at hand, modify it to meet their needs, and then&amp;mdash;well, that's usually where they stop. Unlike open source software developers, they usually don't give it back to the community in any explicit way. Instead, the next person who needs a starting point has to stumble over it in a Google search, and the original creator may never know that someone improved upon what they did.&lt;/p></description></item><item><title>In Search of Prior Arguments</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/04/in-search-of-prior-arguments/</link><pubDate>Tue, 17 Apr 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/04/in-search-of-prior-arguments/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>A faculty member whose research involves building some fairly complex scientific software would like to make all his work open source. He is repeatedly having to justify this choice to funding agencies and his dean, whose objections include:&lt;/p>
&lt;ul>
&lt;li>concern for sensitive information being released (anything involving pollution has the potential to become a political football)&lt;/li>
&lt;li>concern for misuse by naive users undermining the reputation of the tool&lt;/li>
&lt;li>concern for missing value in licensing the IP&lt;/li>
&lt;/ul>
&lt;p>I know lots of other people have had to overcome these and other objections; what I'm looking for is a published (and preferably peer-reviewed) refutation of them that he and others can cite, preferably one that is specific to open source in science (rather than in general). Pointers would be very welcome.&lt;/p></description></item><item><title>We're Neutral (but Not Really)</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/04/were-neutral-but-not-really/</link><pubDate>Sat, 14 Apr 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/04/were-neutral-but-not-really/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>From &lt;a href="http://en.wikipedia.org/wiki/Open_science">Wikipedia&lt;/a>:&lt;/p>
&lt;blockquote>&lt;p>&lt;em>Open science&lt;/em> is the umbrella term of the movement to make scientific research, data and dissemination accessible to all levels of an inquiring society, amateur or professional. It encompasses practices such as publishing &lt;a title="Open research" href="http://en.wikipedia.org/wiki/Open_research">open research&lt;/a>, campaigning for &lt;a title="Open access" href="http://en.wikipedia.org/wiki/Open_access">open access&lt;/a>, encouraging scientists to practice &lt;a title="Open notebook science" href="http://en.wikipedia.org/wiki/Open_notebook_science">open notebook science&lt;/a>, and generally making it easier to publish and communicate scientific knowledge.&lt;/p>&lt;/blockquote>
&lt;blockquote>&lt;p>The term &lt;em>reproducible research&lt;/em>...refers to the idea that the ultimate product of research is the paper along with the full computational environment used to produce the results in the paper such as the code, data, etc. necessary for reproduction of the results and building upon the research.&lt;/p></description></item><item><title>On Crossing Australia (or, Further Thoughts on What to Teach Researchers about the Web)</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/04/on-crossing-australia/</link><pubDate>Fri, 06 Apr 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/04/on-crossing-australia/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>A &lt;a href="{{site.baseurl}}/blog/2012/02/and-speaking-of-new.html">while back&lt;/a>, I blogged about Bret Victor's "&lt;a href="http://vimeo.com/36579366">Inventing on Principle&lt;/a>" talk at CUSEC'12, which is an inspiring vision of what programming &lt;em>could&lt;/em> be. &lt;a href="http://www.starchamber.com/2012/04/tool-spinning-task-boxing-and-the-trade-off-between-usability-and-learning.html">Ned Gulley's thoughts&lt;/a> on it are more nuanced (and more interesting):&lt;/p>
&lt;blockquote>&lt;p>Victor's &lt;em>real&lt;/em> power is his ability to rapidly create and deploy these tools. In a twinkling he can size up a task that is worth studying, put a box around it and spin a tool. He does this so effortlessly, with such mesmerizing legerdemain, that we lose sight of this meta-skill. What Victor was really doing in his talk was illustrating the power of tool spinning, the rapid creation of customized, context-sensitive, insight-generating tools...&lt;/p></description></item><item><title>Sending Email Back in Time</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/04/sending-email-back-in-time/</link><pubDate>Sun, 01 Apr 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/04/sending-email-back-in-time/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>We're about to release the second volume of &lt;a href="http://aosabook.org">&lt;cite>The Architecture of Open Source Applications&lt;/cite>&lt;/a>, which has indirectly prompted a bit of soul-searching on my part. When we invited people to contribute, we asked them to give us the one-hour whiteboard talk they'd give to a new developer being brought onto the project. We also asked them to sum up what they'd learned. "Imagine you could send a brief email back in time," we told them. "What would you say to your younger self?" Which of course begs the question, what would I tell the me of 2010 about Software Carpentry?&lt;/p></description></item><item><title>What to Teach Researchers About the Web</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/04/what-to-teach-researchers-about-the-web/</link><pubDate>Sun, 01 Apr 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/04/what-to-teach-researchers-about-the-web/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>One reason I'm reflecting on &lt;a href="{{site.baseurl}}/blog/2012/04/sending-email-back-in-time.html">what I've learned in the last two years&lt;/a> is a question that is back on the top of my work pile: what should we teach researchers about the web? Partly, it's a priority because I'm currently embedded in Mozilla; their mandate is to defend and extend the open web, and their educational efforts are all aimed at that, so I ought to be doing something too. The real reason, though, is that a lot of things have brought this into sharper focus recently:&lt;/p></description></item><item><title>The Dark Matter of Computational Science</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/03/the-dark-matter-of-computational-science/</link><pubDate>Sun, 18 Mar 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/03/the-dark-matter-of-computational-science/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Scott Hanselman's recent post "&lt;a href="http://www.hanselman.com/blog/DarkMatterDevelopersTheUnseen99.aspx">Dark Matter Developers&lt;/a>" got me thinking once again about what Software Carpentry is about. He says:&lt;/p>
&lt;blockquote>&lt;p>&lt;em>[We] hypothesize that there is another kind of developer than the ones we meet all the time. We call them Dark Matter Developers. They don't read a lot of blogs, they never write blogs, they don't go to user groups, they don't tweet or facebook, and you don't often see them at large conferences... Where are [they]? Probably getting work done.&lt;/em>&lt;/p></description></item><item><title>What's the Model, Kenneth?</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/03/whats-the-model-kenneth/</link><pubDate>Fri, 09 Mar 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/03/whats-the-model-kenneth/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Over on rwxweb [1], Michelle Levesque has &lt;a href="http://rwxweb.wordpress.com/2012/03/08/which-web-skills-come-first/">posted and dissected a diagram&lt;/a> showing how various webbish skills depend on one another. It's an invaluable design aid, but it violates the third of &lt;a href="http://blog.jonudell.net/2011/01/24/seven-ways-to-think-like-the-web/">Jon Udell's seven principles&lt;/a>: it's presented as a bitmapped image, rather than as something a machine can easily parse and digest. I can't, for example, read the source and generate a two-column table showing "X depends on Y", or something like that. I wrote a bit back in January about &lt;a href="{{site.baseurl}}/blog/2012/01/terminology.html">what sort of data model we could use to represent things like that&lt;/a>, but that's the wrong approach as well. What I &lt;em>really&lt;/em> want is to discover that someone has already thought this through and created such a model, so that if I want to alter or extend Michelle's model, I can change the authoritative machine-readable representation [2], and she can merge (or at least diff) those changes. All I've found so far, though, are bits of database schema buried in things like Moodle and SCORM; there doesn't seem to be anything that a programmer would recognize as a model or format per se.&lt;/p></description></item><item><title>Reproducibility Redux</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/02/reproducibility-redux/</link><pubDate>Tue, 28 Feb 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/02/reproducibility-redux/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>A recent &lt;a href="http://arstechnica.com/science/news/2012/02/science-code-should-be-open-source-according-to-editorial.ars">editorial in &lt;em>Nature&lt;/em>&lt;/a>, and a longer article by Darrell Ince, Les Hatton, and John Graham-Cumming titled "&lt;a href="http://www.nature.com/nature/journal/v482/n7386/full/nature10836.html">The case for open computer programs&lt;/a>", are just two signs of the growing pressure to raise standards around computational work in science. We can &lt;a href="http://www.scimatic.com/node/361">debate the exact meaning and value of reproducibility&lt;/a>, but there's no arguing with the fact that if scientists want to do better work, they'll need better skills. That's the real long-term goal of Software Carpentry.&lt;/p></description></item><item><title>Granules of Research</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/02/granules-of-research/</link><pubDate>Wed, 22 Feb 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/02/granules-of-research/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Cameron Neylon recently posted an article titled "&lt;a href="http://cameronneylon.net/blog/github-for-science-shouldn%E2%80%99t-we-perhaps-build-tcpip-first/">Github for science? Shouldn't we perhaps build TCP/IP first?&lt;/a>" His argument is that the web's a good way to move text around, because it was built by programmers, and programmers work with text. It's not (yet) well suited to moving &lt;em>science&lt;/em> around, because we don't (yet) have something as granular and portable as text for scientific ideas. Yes, any particular piece of research can be represented as text, but so can any image, or any audio stream, or anything else&amp;mdash;it's the structure that adds meaning, and we haven't (yet) agreed on structures. Circling back to &lt;a href="{{site.baseurl}}/blog/2012/02/what-deep-thoughts-look-like.html">today's first post&lt;/a>, part of what we're trying to do is give scientists the background to understand and take part in conversations like these...&lt;/p></description></item><item><title>Why *Not* Use Python</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/02/why-not-use-python/</link><pubDate>Tue, 21 Feb 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/02/why-not-use-python/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>&lt;img src="{{site.filesurl}}/swc_blog/2012/02/greg-teaching-mozilla-2012-02-a.jpg" />&lt;/p>
&lt;p>When we started Software Carpentry back in the late 1990s, we used Perl as a teaching language instead of Python. At the time, it was a no-brainer: Perl had many more users, better documentation, and more libraries. We switched because we found ourselves explaining the same inconsistencies over and over again (as I've said many times since, every page of the &lt;a href="http://shop.oreilly.com/product/9781565924956.do">O'Reilly Pocket Guide to Perl&lt;/a> used one of the words "except", "unless", or "however" at least once). Python had fewer "buts": we saw right away that students were learning concepts more quickly, and they seemed to retain more as well.&lt;/p></description></item><item><title>How Many Legs Does Science Have?</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/02/how-many-legs-does-science-have/</link><pubDate>Mon, 13 Feb 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/02/how-many-legs-does-science-have/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Back in 2010, Moshe Vardi wrote an opinion piece titled "&lt;a href="http://cacm.acm.org/magazines/2010/9/98038-science-has-only-two-legs/fulltext">Science Has Only Two Legs&lt;/a>", in which he argued that computational science is just another form of experimental science, and that programs should be held to the same standards as other pieces of experimental apparatus. It's an interesting counterpoint to recent excitement around "big data" (as evidenced in works like &lt;a href="http://www.amazon.com/Fourth-Paradigm-Data-Intensive-Scientific-Discovery/dp/0982544200/">&lt;em>The Fourth Paradigm&lt;/em>&lt;/a>), and, I think, directly relevant to what we're trying to teach. What are your views?&lt;/p></description></item><item><title>Why We Don't Teach Parallel Computing in Software Carpentry</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/02/why-we-dont-teach-parallel-computing-in-software-carpentry/</link><pubDate>Tue, 07 Feb 2012 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2012/02/why-we-dont-teach-parallel-computing-in-software-carpentry/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Konrad Hinsen recently wrote a blog post that explains &lt;a href="http://khinsen.wordpress.com/2012/02/06/teaching-parallel-computing-in-python/">why teaching parallel computing with Python is hard&lt;/a>. To make a long story short, Python's multiprocessing module can fail on simple problems in a whole bunch of ways that require fairly advanced understanding to diagnose and repair&amp;mdash;and that's even before you try doing things on Windows.&lt;/p></description></item><item><title>It Just Keeps On Hurting</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/12/it-just-keeps-on-hurting/</link><pubDate>Tue, 20 Dec 2011 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/12/it-just-keeps-on-hurting/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>I received email a few days ago from someone who had just found this site (reproduced here with permission):&lt;/p>
&lt;blockquote>&lt;p>I am working on getting myself set up to do scientific programming in Python on a MacBook Pro. I plan to use mySql and Pentaho. I am new to open source, Mac, and Python. Where I've run into the most problems is getting a working environment established with all the tools in place. For instance, I ran into a huge problem trying to install mysqldb, the Python/MySQL interface package. Trying to resolve that, I've encountered a bewildering array of alternative ways to do things, each accompanied by strong opinions and each entailing a different group of packages. One example being package managers: easy_install, pip, various brews, macports, etc. I don't really care about some absolute &lt;em>right&lt;/em> way&amp;mdash;I just need working, consistent tool set.&lt;/p></description></item><item><title>Three Short Thoughts</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/11/three-short-thoughts/</link><pubDate>Tue, 29 Nov 2011 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/11/three-short-thoughts/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;ol>
&lt;li>A BBC article title "&lt;a href="http://www.bbc.co.uk/news/technology-15916677">Coding &amp;mdash; the New Latin&lt;/a>" resonated: Latin was the language of learned discourse in the formative years of modern science, but not something most people spoke day-to-day. I think that's a good model for computing in the sciences; like statistics, it requires familiarity, not expertise.&lt;/li>
&lt;li>Jorge Aranda's review of &lt;a href="http://www.neverworkintheory.org/?p=225">&lt;em>Codermetrics&lt;/em>&lt;/a> talks about the limitations to quantification in software engineering. I've &lt;a href="{{site.baseurl}}/blog/2011/11/show-me-the-data.html">said before&lt;/a> that we need to measure how much time is lost due to poor computing skills in order to get people to take this kind of training seriously, but I'm very conscious of just how much measurement &lt;em>can't&lt;/em> tell us.&lt;/li>
&lt;li>Another thought-provoking post by Cameron Neylon asks &lt;a href="http://cameronneylon.net/blog/good-practice-in-research-coding-what-are-the-targets-and-how-do-we-get-there.html">what it's reasonable to expect&lt;/a> from scientists, and their software. I'm sure he'd enjoy hearing what you think...&lt;/li>
&lt;/ol></description></item><item><title>Accessible to All?</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/11/accessible-to-all/</link><pubDate>Fri, 18 Nov 2011 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/11/accessible-to-all/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>I just posted an article on my personal blog about &lt;a href="http://third-bit.com/blog/archives/4356.html">the (in)accessibility of online educational material&lt;/a> (including Software Carpentry's). As I said there, there aren't any easy answers, but if we do find funding to keep this project going, I'd like to find ways to make our content easier for &lt;em>everyone&lt;/em> to use.&lt;/p></description></item><item><title>Quantifying Installation Costs</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/11/quantifying-installation-costs/</link><pubDate>Fri, 18 Nov 2011 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/11/quantifying-installation-costs/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>A few months ago, I tried to &lt;a href="{{site.baseurl}}/blog/2011/06/doing-the-math.html">quantify the cost of poor software skills&lt;/a>. A &lt;a href="http://blog.adamdklein.com/?p=416">recent post from Adam Klein&lt;/a> gives is a good excuse to try to do something similar for the cost of installing software. In his post, Klein describes the 17 steps he went through to set up a Python data hacking environment on a new machine. If we assume that each step has a 5% chance of failing for some reason (packages have moved on, the compiler isn't exactly the same version as Klein was using, whatever), then the chances of the whole process working are (1-.05)&lt;sup>17&lt;/sup>, or roughly 42%. In other words, his process will fail to work the first time for over half of the people who try it. In some cases, they'll be able to figure out why, fix the problem, and move on, but in many others they won't&amp;mdash;as I said earlier this week on my &lt;a href="http://third-bit.com/blog/archives/4352.html">personal blog&lt;/a>, we've taken something that may or may not be intrinsically hard (programming), and made it much harder by burying under layer upon layer of grief. The end result is that when a scientist sits down to try something new, s/he has no way of knowing whether it will take an hour, a day, or forever. It's hard to build a career on top of that kind of uncertainty...&lt;/p></description></item><item><title>Show Me the Data</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/11/show-me-the-data/</link><pubDate>Fri, 18 Nov 2011 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/11/show-me-the-data/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>I got mail from a colleague at a prominent US university yesterday saying (in part, and elided to protect the guilty):&lt;/p>
&lt;blockquote>&lt;p>&lt;em>...the graduate student representative to the curriculum committee reported that the students did not want a scientific computing course, that they would instead figure it out themselves.... How does one respond to statements like this...that have...basically frozen skill levels? The options I see are formal ("in curriculum") training, bootcamps and /workshops, and letting them "figure it out themselves". Are there arguments about the successes of each?&lt;/em>&lt;/p></description></item><item><title>Clearing Up Code</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/11/clearing-up-code/</link><pubDate>Mon, 14 Nov 2011 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/11/clearing-up-code/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>The November/December 2011 issue of &lt;em>IEEE Software&lt;/em> has a good article by the Climate Code Foundation's Nick Barnes and David Jones titled "&lt;a href="http://www.computer.org/csdl/mags/so/2011/06/mso2011060036-abs.html">Clear Climate Code: Rewriting Legacy Science Software for Clarity&lt;/a>". In it, they describe how and why they rewrote a program used to calculate and compare global surface temperatures based on historical data. The original had been attacked by climate change denialists, first because it wasn't publicly available, and then because it was tangled and hard to run. Their rewrite produced something smaller, faster, and much easier to understand; most importantly, though, it validated the results of the initial program.&lt;/p></description></item><item><title>The Ladder of Abstraction and the Future of Online Teaching</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/11/the-ladder-of-abstraction-and-the-future-of-online-teaching/</link><pubDate>Tue, 08 Nov 2011 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/11/the-ladder-of-abstraction-and-the-future-of-online-teaching/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>&lt;a href="http://worrydream.com/LadderOfAbstraction/">Up and Down the Ladder of Abstraction&lt;/a> is one of the most thought-provoking things to hit the web in a long time. Its author, Bret Victor, doesn't just talk about the design process&amp;mdash;he shows us what a great interactive tutorial ought to look like. (For a shorter, simpler, but equally inspiring example, have a look at the home page for his &lt;a href="http://worrydream.com/Tangle/">Tangle&lt;/a> project, and ask yourself what learning would be like if learners could play with every diagram and quantitative statement in their "textbooks" that way...)&lt;/p></description></item><item><title>Research Without Walls</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/10/research-without-walls/</link><pubDate>Sat, 22 Oct 2011 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/10/research-without-walls/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Open science, reproducible research, and better computational skills aren't necessarily connected, but in my experience, people who care about one usually care about the others as well. In that light, I just signed the "&lt;a href="http://www.researchwithoutwalls.org/">Research Without Walls&lt;/a>" pledge: effective today,I will assist in the peer review process (as a reviewer, board/committee member, chair, editor, etc.) only for conferences, journals, and other publication venues that make all accepted publications available to the public for free via the web. If you believe that sharing ideas is the heart and soul of science, please sign up as well.&lt;/p></description></item><item><title>Plus Ca Change...</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/09/plus-ca-change/</link><pubDate>Thu, 22 Sep 2011 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/09/plus-ca-change/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>&lt;a href="{{site.baseurl}}/blog/2010/12/compute-canadas-strategic-plan-isnt.html">Once again&lt;/a>, Compute Canada has sent out a document for "review" without leaving time for people to provide meaningful input. And once again, it's all about "big iron", as if scientists were somehow, magically, going to acquire the basic skills needed to write modular code, test it, maintain it, and&amp;mdash;oh, what's the use? I've known for years that the only way we're going to fix this is to show a younger generation of scientists that doing things the right way also makes them more productive, and then wait for them to have enough seniority to fix our backward-looking institutions.&lt;/p></description></item><item><title>Where is the Puck Going to Be?</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/09/where-the-puck-is-going-to-be/</link><pubDate>Mon, 05 Sep 2011 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/09/where-the-puck-is-going-to-be/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Looking at the schedule for &lt;a href="http://www.scienceonlinelondon.org/">Science Online London 2011&lt;/a> makes me feel that Software Carpentry is showing people how to solve yesterday's computational problems&amp;mdash;that it's answering the questions people had (or should have had) in 1995, when desktop applications were the only game in town, and when computers were primarily used for calculating, rather than for sharing. They still are, and I think that version control and regular expressions and what-not are still the rock on which more novel things are built, but a lot of other things are taking shape in the fog. You can call it "open science" or "science 2.0" or whatever you want, but its focus is on sharing information more effectively by changing publication models, enabling reproducibility, making data findable, encouraging scientists to use &lt;a href="http://jonudell.net/GroupwareReport.html">groupware&lt;/a> (sorry&amp;mdash;we're supposed to call it "social media" these days), and so on.&lt;/p></description></item><item><title>Doing the Math</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/06/doing-the-math/</link><pubDate>Mon, 20 Jun 2011 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/06/doing-the-math/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Let's do some math. Suppose that working through the Software Carpentry course takes the average scientist five full-time weeks. It doesn't matter whether that's one five-week marathon, or whether the time is spread out over several months; the cost is still roughly 10% of the scientist's annual salary (if you're thinking like an administrator) or 10% of their annual published output (if you're thinking like the scientist herself). How big a difference does it have to make to her productivity to be worthwhile?&lt;/p></description></item><item><title>Practical Computing for Everyone (not just biologists)</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/06/practical-computing-for-everyone-not-just-biologists/</link><pubDate>Tue, 07 Jun 2011 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/06/practical-computing-for-everyone-not-just-biologists/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;table>
&lt;tbody>
&lt;tr>
&lt;td>&lt;a href="http://practicalcomputing.org/">&lt;img src="{{site.filesurl}}/swc_blog/2011/06/pcb.png" />&lt;/a>&lt;/td>
&lt;td valign="top">Steven Haddock and Casey Dunn:&lt;br />
&lt;a href="http://www.amazon.com/gp/product/0878933913">&lt;em>Practical Computing for Biologists&lt;/em>&lt;/a>.&lt;br />
Sinauer Associates, 2010, 0878933913.&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>My copy of &lt;em>Practical Computing for Biologists&lt;/em> arrived last week, and I've been very impressed. It is a well-written, well-paced guide to basic computing skills for scientists and engineers of all stripes (not just biologists). Many of the topics will be familiar:&lt;/p>
&lt;ul>
&lt;li>editing text files (including how to use regular expressions in an editor)&lt;/li>
&lt;li>the Unix shell&lt;/li>
&lt;li>basic Python programming (including debugging strategies)&lt;/li>
&lt;li>relational databases&lt;/li>
&lt;li>SSH&lt;/li>
&lt;li>installing and configuring software&lt;/li>
&lt;/ul>
&lt;p>There are also a few that we don't cover, such as interacting with hardware, and some that are covered in more depth than we give them, like image manipulation. The pace is gentler than Software Carpentry, but the last couple of years have convinced me that's a good thing: I think Haddock &amp;amp; Dunn have it right for this target audience. And it's beautifully produced: full-color printing and great graphical design make this book a joy to read. If I ever do &lt;a href="{{site.baseurl}}/blog/2011/05/damn-the-torpedoes.html">turn Software Carpentry into a book&lt;/a>, I might skip the topics &lt;em>PCB&lt;/em> covers and just tell people to go and buy it.&lt;/p></description></item><item><title>Harder Than It Should Be</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/03/harder-than-it-should-be/</link><pubDate>Thu, 31 Mar 2011 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/03/harder-than-it-should-be/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Someone once said, "Chemistry is basically anything chemists will give each other awards for doing." Or something like that&amp;mdash;Google doesn't find matches for that exact quote. Even if I've mangled it, the idea is sound: art is no more and no less than what great artists accept as being art.&lt;/p>
&lt;p>So what is computer science? More particularly, what constitutes the &lt;em>core&lt;/em> of computer science? What's the stuff that everyone who calls themselves a "computer scientist" should know, or at least have seen? One way to answer the question would be to look at what people are given prizes for, but that's turning out to be harder than I expected, and the reason highlights a gap in this course.&lt;/p></description></item><item><title>I'd Settle for 0.1%</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/03/id-settle-for-0-1/</link><pubDate>Tue, 22 Mar 2011 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/03/id-settle-for-0-1/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>In a recent article about computational thinking, Carnegie-Mellon's Jeannette Wing says:&lt;/p>
&lt;blockquote>&lt;p>...every scientific directorate and office at the National Science Foundation participates in the Cyber-enabled Discovery and Innovation, or CDI, program, an initiative started four years ago with a fiscal year 2011 budget request of $100 million. CDI is in a nutshell "computational thinking for science and engineering."&lt;/p>&lt;/blockquote>
&lt;p>0.1% of that would keep Software Carpentry going for another year... Or if I'm allowed to be a curmudgeon for a moment, hands up those people who believe that $100 million is going to do 1000 times more for science and engineering than another year of work on these materials? *sigh*&lt;/p></description></item><item><title>Graph Layout, Models vs. Views, and Computational Thinking</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/03/graph-layout-models-vs-views-and-computational-thinking/</link><pubDate>Wed, 16 Mar 2011 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/03/graph-layout-models-vs-views-and-computational-thinking/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Money for me to keep working full-time on Software Carpentry hasn't materialized, so as I've mentioned in a couple of recent posts, I'm trying to find a way to organize the course material more coherently in the hope that other people will (finally) start to contribute content as well. As part of that, I have spent the last two days trying to draw a graph showing the questions Software Carpentry seeks to answer, and the concepts that underpin the answers. It's been harder than I expected, and I think the reasons might give some insight into how a computational thinker thinks.&lt;/p></description></item><item><title>Literate Programming</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/03/literate-programming/</link><pubDate>Mon, 07 Mar 2011 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/03/literate-programming/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Last week's post about the &lt;a href="{{site.baseurl}}/blog/2011/03/tuple-spaces-or-good-ideas-dont-always-win.html">tuple space programming model&lt;/a> was so popular that I thought readers might enjoy a discussion of another beautiful idea that failed: &lt;a href="http://en.wikipedia.org/wiki/Literate_programming">literate programming&lt;/a>. Like Lisp and other toenail-based languages, it inspires a kind of passion in its fans that is normally reserved for gods, sports teams, and angsty rock bands. And, like them, it leaves everyone else wondering what the big deal is.&lt;/p></description></item><item><title>Tuple Spaces (or, Good Ideas Don't Always Win)</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/03/tuple-spaces-or-good-ideas-dont-always-win/</link><pubDate>Tue, 01 Mar 2011 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/03/tuple-spaces-or-good-ideas-dont-always-win/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>I've resisted adding a module on high-performance computing to this course for a lot of reasons: I think other things are more important, there's enough coverage elsewhere, the software is hard for novices to set up... But there's another reason, one that may not be as good, but still has a seat at the table. Deep down, the reason I'm reluctant to teach MPI (the de facto standard for parallel programming) is that there's a much better model out there, one that works on all kinds of hardware, is comprehensible to novices, and delivers good performance on a wide range of problems. Its name is tuple space, its most famous implementation is Linda, and unfortunately, for a lot of reasons that I still don't understand, it somehow became an "also ran" in parallel programming.&lt;/p></description></item><item><title>Top Ten Why Nots</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/02/top-ten-why-nots/</link><pubDate>Tue, 15 Feb 2011 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/02/top-ten-why-nots/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>We've had quite a few firsts and successes in the past ten months, but our biggest failure continues to be the lack of contributions from users and educators: while quite a few people are using our material, only one person has (so far) volunteered to create material for us. If that doesn't change, Software Carpentry will stagnate as soon as I have to move on to other things (which, given my lack of success in raising another round of funding, will probably happen this spring).&lt;/p></description></item><item><title>Three Months, Two Spikes, One Conclusion</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/02/three-months-two-spikes-one-conclusion/</link><pubDate>Wed, 02 Feb 2011 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/02/three-months-two-spikes-one-conclusion/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Here are the traffic stats for the last three months at software-carpentry.org:&lt;/p>
&lt;table>
&lt;tbody>
&lt;tr>
&lt;td>&lt;img src="{{site.filesurl}}/swc_blog/2011/02/2010-11.png" />&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: center;">November 2010&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;img src="{{site.filesurl}}/swc_blog/2011/02/2010-12.png" />&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: center;">December 2010&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;img src="{{site.filesurl}}/swc_blog/2011/02/2011-01.png" />&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align: center;">January 2011&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>It's hard to make out what's happening because of the big spike in December, and the less prominent (but still significant) spike in November, so here's a summary:&lt;/p>
&lt;ol>
&lt;li>Once these spikes are removed, the average number of distinct visitors is slowly increasing each month.&lt;/li>
&lt;li>Posting a lecture on something popular boosts our readership dramatically, but only briefly, and only for that topic&amp;mdash;most of those visitors don't stick around.&lt;/li>
&lt;/ol>
&lt;p>So what were the spikes? The first, in November, came when we posted our Python lectures. The second, in December, was Tommy Guy's episode on how to build a simple recommendation engine, which in turn was based on an example from Toby Segaran's excellent book &lt;a href="http://www.amazon.com/Programming-Collective-Intelligence-Building-Applications/dp/0596529325">&lt;em>Programming Collective Intelligence&lt;/em>&lt;/a>. That was more popular than anything else we've ever put on the site, which is both encouraging (if we build it, you will come) and disheartening (I have no idea what else to build that will be that popular).&lt;/p></description></item><item><title>The Case Against Peer Review</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/01/the-case-against-peer-review/</link><pubDate>Wed, 26 Jan 2011 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/01/the-case-against-peer-review/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Cameron Neylon recently made &lt;a href="http://cameronneylon.net/blog/what-is-it-with-researchers-and-peer-review-or-why-misquoting-churchill-does-not-an-argument-make/">the case against peer review&lt;/a> once again; the dialog near his posting's end is too accurate to be funny. In this light, calls for peer review of scientific software are probably misplaced; we need a better mechanism than one that's already mostly failing.&lt;/p></description></item><item><title>Thinking Like the Web</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/01/thinking-like-the-web/</link><pubDate>Wed, 26 Jan 2011 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/01/thinking-like-the-web/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Jon Udell's 1999 book &lt;a href="http://oreilly.com/catalog/9781565925373">&lt;em>Practical Internet Groupware&lt;/em>&lt;/a> was a revelation for me: it was the first coherent explanation I'd ever read of how the disparate collection of technologies and social conventions that we call "the web" fit together, and what the deeper patterns and concepts beneath them are. After a lot of further work and thought, Jon has condensed those ideas into seven principles&amp;mdash;or as he puts it, "&lt;a href="http://blog.jonudell.net/2011/01/24/seven-ways-to-think-like-the-web/">Seven Ways to Think Like the Web&lt;/a>". These concepts are the most meaningful definition yet of what the phrase "computational thinking" actually means, and of what people who &lt;em>aren't&lt;/em> programmers need to know in order to use the web effectively. As I said in the post on Tom Limoncelli's &lt;a href="{{site.baseurl}}/blog/2011/01/making-system-administrators-lives-easier.html">plea to software vendors&lt;/a>, we'll know we're teaching the right things, the right way, when people who have done this course understand these principles and how to apply them.&lt;/p></description></item><item><title>Scientists Aren't Stupid: Software Is</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/01/scientists-arent-stupid-software-is/</link><pubDate>Fri, 21 Jan 2011 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/01/scientists-arent-stupid-software-is/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Last night, &lt;a href="http://techspot.zzzeek.org/">Mike Bayer&lt;/a> (&lt;a href="http://twitter.com/zzzeek">@zzzeek&lt;/a>) tweeted:&lt;/p>
&lt;blockquote>&lt;p>Why are "scientists", who are so dramatically smarter than me, such dumdums when it comes to basic programming skills: &lt;a rel="nofollow" href="http://bit.ly/fWPtjW" target="_blank">http://bit.ly/fWPtjW&lt;/a>&lt;/p>&lt;/blockquote>
&lt;p>Taavi Burns (&lt;a href="http://twitter.com/jaaaarel">@jaaaarel&lt;/a>) replied:&lt;/p>
&lt;blockquote>&lt;p>Ask @gvwilson of @swcarpentry?&lt;/p>&lt;/blockquote>
&lt;p>So here I am, and what I want to say is:&lt;/p>
&lt;blockquote>&lt;p>Scientists aren't stupid: software is.&lt;/p>&lt;/blockquote>
&lt;p>Seriously. I spent an hour and a half last night trying &lt;em>and failing&lt;/em> to get Thunderbird and Dreamhost's email to play nicely together. Today, I'm wrestling with the fact that Python's &lt;code>multiprocessing&lt;/code> library gets lost in infinite recursion if you try to do something crazy like, oh, I don't know, leave out the &lt;code>if __name__ == '__main__'&lt;/code> check (but only on Windows). In both cases, the parties involved can explain why it does what it does, and in both cases, I just... don't... care.&lt;/p></description></item><item><title>Making System Administrators' Lives Easier</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/01/making-system-administrators-lives-easier/</link><pubDate>Wed, 19 Jan 2011 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/01/making-system-administrators-lives-easier/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Google's Thomas Limoncelli (author of &lt;a href="http://www.amazon.com/Management-System-Administrators-Thomas-Limoncelli/dp/0596007833">&lt;em>Time Management for System Administrators&lt;/em>&lt;/a>) has an article in &lt;a href="http://queue.acm.org">&lt;em>ACM Queue&lt;/em>&lt;/a> titled "&lt;a href="http://queue.acm.org/detail.cfm?id=1921361">A Plea to Software Vendors from Sysadmins&amp;mdash;10 Do's and Don'ts&lt;/a>". His list is:&lt;/p>
&lt;ol>
&lt;li>Do have a "silent install" option.&lt;/li>
&lt;li>Don't make the administrative interface a GUI.&lt;/li>
&lt;li>Do create an API so that the system can be remotely administered.&lt;/li>
&lt;li>Do have a configuration file that is an ASCII file, not a binary blob.&lt;/li>
&lt;li>Do include a clearly defined method to restore all user data, a single user's data, and individual items.&lt;/li>
&lt;li>Do instrument the system so that we can monitor more than just, "Is it up or down?"&lt;/li>
&lt;li>Do tell us about security issues.&lt;/li>
&lt;li>Do use the built-in system logging mechanism.&lt;/li>
&lt;li>Don't scribble all over the disk.&lt;/li>
&lt;li>Do publish documentation electronically on your Web site.&lt;/li>
&lt;/ol>
&lt;p>Every one of these applies equally to scientific software, big and small. We'll know we're teaching the right things, the right way, when people who have done this course know how to write software that obeys these rules and (more importantly) understands why they should.&lt;/p></description></item><item><title>Software Carpentry in One Picture and Five Words</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/01/software-carpentry-in-one-picture-and-five-words/</link><pubDate>Mon, 10 Jan 2011 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2011/01/software-carpentry-in-one-picture-and-five-words/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>This 1995 Pirelli ad pretty much sums up what Software Carpentry is about:&lt;/p>
&lt;p>&lt;img src="{{site.filesurl}}/swc_blog/2011/01/pirelli.jpg" alt="Power Is Nothing Without Control" />&lt;/p></description></item><item><title>Compute Canada's 'Strategic' Plan Isn't</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/12/compute-canadas-strategic-plan-isnt/</link><pubDate>Tue, 21 Dec 2010 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/12/compute-canadas-strategic-plan-isnt/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Last Friday&amp;mdash;December 17&amp;mdash;I received an email from Compute Canada. The emphasis is mine:&lt;/p>
&lt;blockquote>&lt;p>A &lt;a href="https://computecanada.org/?mod=cms&amp;amp;lang=EN&amp;amp;pageId=1435">Strategic Plan for Compute Canada&lt;/a> was a key recommendation of the International Review Panel. This plan draws on suggestions from that panel as well as the information and discussions from the Town Hall Meetings held earlier this year. It has been many months in preparation and review by Compute Canada's committees and &lt;em>must be submitted&lt;/em> to CFI &lt;em>before the end of December 2010&lt;/em>... Your comments are invited and should be sent...by end of day &lt;em>Monday, December 20th&lt;/em>.&lt;/p></description></item><item><title>Ratios and Rework</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/11/ratios-and-rework/</link><pubDate>Tue, 16 Nov 2010 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/11/ratios-and-rework/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>It's been six months and a bit since we started working on Version 4 of this course, so I'd like to share two things we've learned about creating online tutorial videos:&lt;/p>
&lt;ol>
&lt;li>It takes a long time.&lt;/li>
&lt;li>A lot of that time feels like it should be unnecessary.&lt;/li>
&lt;/ol>
&lt;p>Let's start with "a long time". It takes me 3-5 hours to prepare a good slide deck for an hour-long lecture that I'm going to deliver in person. A slide deck for a screencast takes 8-10, because I need to prepare more slides: since there isn't a lecturer making eye contact and pointing at things to keep viewers engaged, a slide deck for online use has to have many more small transitions.&lt;/p></description></item><item><title>Five Rules for Computational Scientists</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/10/five-rules/</link><pubDate>Thu, 14 Oct 2010 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/10/five-rules/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Stepping back from the details for a moment, here are five rules every computational scientist should (try to) follow:&lt;/p>
&lt;p>&lt;em>&lt;strong>1. Version Control&lt;/strong>&lt;/em>&lt;/p>
&lt;p>Put &lt;em>every&lt;/em> primary artifact (source code, raw data files, parameters, etc.) in a version control system so that you have a record of exactly what you did, and when. There's no need to store things you re-create, such as the graphs you generate from your data files, as long as you have the raw material archived and timestamped.&lt;/p></description></item><item><title>Will America's Universities Go The Way Of Its Car Companies?</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/09/will-americas-universities-go-the-way-of-its-car-companies/</link><pubDate>Mon, 13 Sep 2010 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/09/will-americas-universities-go-the-way-of-its-car-companies/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Two days before I flew south to speak at &lt;a href="http://www.msu.edu/">Michigan State University&lt;/a>, I read &lt;a href="http://www.economist.com/node/16941775">an article in &lt;em>The Economist&lt;/em>&lt;/a> that asked the question in the title of this post. As it says (quoting &lt;em>US News &amp;amp; World Report&lt;/em>), "If colleges were businesses, they would be ripe for hostile takeovers, complete with serious cost-cutting and painful reorganisations." I agree with many of their points: the universities I have worked at (six of them, on three continents) all suffered from the sedimentary buildup of red tape that you'd expect of a large organization that hasn't faced real competitive pressure in living memory, and struggled to achieve either of their core goals of fostering research and passing knowledge on. To quote a friend who's still in the system, "We're here to do research, they pay us to teach, we spend our time on administration."&lt;/p></description></item><item><title>An Answer That Most Students Won't Understand</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/08/an-answer-that-most-students-wont-understand/</link><pubDate>Thu, 05 Aug 2010 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/08/an-answer-that-most-students-wont-understand/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Two days ago, I &lt;a href="{{site.baseurl}}/blog/2010/08/a-question-about-nose.html">asked&lt;/a> how to generates tests from tables of fixtures using Nose:&lt;/p>
&lt;blockquote>&lt;p>...does Nose already have a tool for running through a table of fixtures and expected results? My hand-rolled version is:&lt;/p>
&lt;pre>Tests = (
 # R1 R2 Expected
 ( ((0, 0), (0, 0)), ((0, 0), (0, 0)), None ),
 ( ((0, 0), (0, 0)), ((0, 0), (1, 1)), None ),
 ( ((0, 0), (1, 1)), ((0, 0), (1, 1)), ((0, 0), (1, 1)) ),
 ( ((0, 3), (2, 5)), ((1, 0), (2, 4)), ((1, 3), (2, 4)) )
)

def test_table():
 for (R1, R2, expected) in Tests:
 yield run_it, R1, R2, expected

def run_it(R1, R2, expected):
 assert overlap(R1, R2) == expected
&lt;/pre>
&lt;p>which is simple enough if students already understand generators and function application, but hell to explain if they don't&amp;mdash;and they won't.&lt;/p></description></item><item><title>Open Source, Open Science in 1999</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/08/open-source-open-science-in-1999/</link><pubDate>Tue, 03 Aug 2010 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/08/open-source-open-science-in-1999/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>A long time ago, in a galaxy far, far away... Actually, it was 1999, and the venue was Brookhaven National Laboratory in New York&amp;mdash;it just feels like a different time and place. The event was a conference called "Open Source, Open Science", and Stephen Adler, Tom Throwe, and Sean McCorkle have very kindly resurrected its web site at &lt;a href="http://openscience.bnl.gov/">http://openscience.bnl.gov/&lt;/a> for those interested in the history of an idea whose time may finally have come. It's interesting to see what has changed in the intervening decade, and what hasn't: supercomputing is still disproportionately represented, but I think the open side has won the debate that was the subject of the main panel discussion, "Overcoming the obstacles...in using and contributing to Open Source technologies."&lt;/p></description></item><item><title>Mark Guzdial on Software Carpentry</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/07/mark-guzdial-on-software-carpentry/</link><pubDate>Wed, 28 Jul 2010 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/07/mark-guzdial-on-software-carpentry/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Mark Guzdial, a leading researcher in computing education, &lt;a href="http://computinged.wordpress.com/2010/07/25/what-do-scientists-and-engineers-need-to-know-about-supercomputing/">blogged&lt;/a> a few days ago about the Texas Advanced Computing Center's training program for computational scientists, and asked, "Given the importance of computational science, what do all scientists and engineers need to know about high-performance computing?" As you might expect, I replied to say that the question was almost always premature: we should first ask what scientists and engineers need to know about computing in general before tackling HPC.&lt;/p></description></item><item><title>A Note on Tools</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/07/a-note-on-tools/</link><pubDate>Tue, 20 Jul 2010 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/07/a-note-on-tools/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>After a bit of experimenting, I've decided to use &lt;a href="http://www.syntevo.com/smartsvn/index.html">SmartSVN&lt;/a> as a GUI client for Subversion in the version control lectures, rather than &lt;a href="http://rapidsvn.tigris.org/">RapidSVN&lt;/a> or the command line. My reasoning is:&lt;/p>
&lt;ol>
&lt;li>Requiring people to learn the shell before they can start learning stuff they actually care about raises the drop-out rate noticeably. Requiring them to learn the shell before they can start learning something they don't yet realize they ought to use, like version control, raises it even more. That rules out the Subversion command line tools.&lt;/li>
&lt;li>SmartSVN is dual-op (the stripped-down version is free, the pro version is not, neither is open source). In contrast, RapidSVN is pure open source, so it would be my first choice (in fact, it was)...&lt;/li>
&lt;li>...except RapidSVN doesn't have a built-in diff/merge tool. They recommend SourceGear's &lt;a href="http://www.sourcegear.com/diffmerge/">DiffMerge&lt;/a>, which is free (that's good) but users have to configure RapidSVN to use it (that's bad&amp;mdash;very bad). On the Mac, for example, users have to copy a shell script into /usr/bin, then go into RapidSVN's preferences, set the path to the shell script, and get eight (!) command-line arguments exactly right, or things will fail in strange ways (like you can merge files, but when it tries to save your work, it doubles the dirname of the path to the file and then complains about not being able to create /Users/swc/repo/Users/swc/repo/filename).&lt;/li>
&lt;/ol>
&lt;p>If something can break for reasons that its intended users won't be able to understand, diagnose, and fix, then that something is itself fundamentally broken. In my opinion, the possibility of configuration hell with RapidSVN outweighs both its licensing and its support for "file://" URLs (which SmartSVN doesn't allow).&lt;/p></description></item><item><title>HPC and Programmability</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/07/hpc-and-programmability/</link><pubDate>Sat, 10 Jul 2010 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/07/hpc-and-programmability/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Via &lt;a href="http://osl.iu.edu/~lums/">Andrew Lumsdaine&lt;/a>, a pointer to an interesting article in &lt;a href="http://cacm.acm.org/">&lt;em>Communications of the ACM&lt;/em>&lt;/a> by Eugene Loh titled "&lt;a href="http://cacm.acm.org/magazines/2010/7/95060-the-ideal-hpc-programming-language/fulltext">The Ideal HPC Programming Language&lt;/a>". A few key quotes:&lt;/p>
&lt;blockquote>&lt;p>These programmability studies began with a focus on programming languages, but the focus quickly shifted to other topics. Existing languages&amp;mdash;notably Fortran...&amp;mdash;proved remarkably adequate. Programming challenges stem mostly from other factors.&lt;/p>&lt;/blockquote>
&lt;blockquote>&lt;p>The DARPA HPCS program...sponsored the development of new programming languages: Chapel from Cray, Fortress from Sun, and X10 from IBM. Proponents of those languages would show early on how rewriting familiar HPC benchmarks in the new languages could reduce source-code volume substantially&amp;mdash;tenfold reductions were not surprising&amp;mdash;but rewriting these benchmarks even in Fortran achieved similar source-code reductions and corresponding improvements in expressivity.&lt;/p></description></item><item><title>People You Don't Want On Your Team</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/06/people-you-dont-want-on-your-team/</link><pubDate>Fri, 18 Jun 2010 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/06/people-you-dont-want-on-your-team/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Study after study has shown that the biggest causes of software project failure are over-optimistic scheduling and unstable requirements. I think the only reason team dynamics isn't in the #1 spot is that it's hard for an outsider to judge after the fact. In my experience, though, how well people work together is a lot more important than how smart they are individually: everyone in the engineering group of the first start-up I joined was very good at their job, but when you put us together, our IQs somehow canceled out.&lt;/p></description></item><item><title>A Voice from the Back of the Room</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/06/a-voice-from-the-back-of-the-room/</link><pubDate>Wed, 16 Jun 2010 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/06/a-voice-from-the-back-of-the-room/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Mark Guzdial recently posted &lt;a href="http://computinged.wordpress.com/2010/06/05/evaluation-as-a-voice-for-the-kids-in-the-back-of-the-room/">another thought-provoking piece&lt;/a>, this one about how teachers are biased toward assessing a class's progress by their interactions with its brightest students, and how important it is to assess understanding systematically to find out what's actually going on. We're still wrestling with this in Software Carpentry: what can we put on the web to help students determine whether they have understood a particular topic and are ready to move on?&lt;/p></description></item><item><title>The Cowichan Problems</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/06/the-cowichan-problems/</link><pubDate>Sat, 12 Jun 2010 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/06/the-cowichan-problems/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Back in the 1990s, as the first wave of euphoria about parallel computing was topping out, I had a crazy idea: why don't we actually try to measure, or at least compare, the &lt;em>usability&lt;/em> of different parallel programming systems? I left the field before taking the idea very far, but with talk about clouds and GPUs growing louder by the day, I think the idea is worth revisiting. My proposal is below the cut; I'd be interested in feedback.&lt;/p></description></item><item><title>Who Reports On The Other 97 Per Cent?</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/06/who-reports-on-the-other-97-per-cent/</link><pubDate>Tue, 01 Jun 2010 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/06/who-reports-on-the-other-97-per-cent/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>The BBC has posted a nice &lt;a href="http://news.bbc.co.uk/2/hi/technology/10187248.stm">graphic of the latest Top 500 list&lt;/a> of supercomputers around the world. It's pretty impressive, particularly if you're a Linux fan (check out the display by operating system). However, nobody would think that a list of the world's 500 richest people told them much about the state of the economy; I'd be much more interested in statistics on how much computing power is employed by the 97% or so of scientists who &lt;em>don't&lt;/em> use a supercomputer.&lt;/p></description></item><item><title>Badges and Stars</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/05/badges-and-stars/</link><pubDate>Thu, 27 May 2010 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/05/badges-and-stars/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>The Open Notebook Science folks have developed &lt;a href="http://onsclaims.wikispaces.com/">a set of badges&lt;/a> to help people label their work, ranging from "All Content &amp;mdash; Immediate Release" to "Selected Content &amp;mdash; Delayed Release". Like the &lt;a href="http://creativecommons.org/about/downloads">badges for various Creative Commons licenses&lt;/a>, or Tim Berners-Lee's proposed &lt;a href="http://www.elon.edu/e-web/predictions/futureweb2010/open_government.xhtml">five-star system for rating open data&lt;/a>, the biggest benefit of this kind of categorization is that it encourages people to think more clearly about what they are (or aren't) doing, and why.&lt;/p></description></item><item><title>We'll Know We've Succeeded If...</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/05/well-know-weve-succeeded-if/</link><pubDate>Tue, 18 May 2010 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/05/well-know-weve-succeeded-if/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>We will know the students taking this course have learned something if:&lt;/p>
&lt;ol>
&lt;li>They understand why Titus Brown's &lt;a href="http://ivory.idyll.org/blog/may-10/data-management.html">Data Management Plan&lt;/a> post is both funny and sad.&lt;/li>
&lt;li>They have the knowledge, skills, and tools they need to do something about it.&lt;/li>
&lt;/ol></description></item><item><title>Why Most Scientists Don't Like Computers</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/05/why-most-scientists-dont-like-computers/</link><pubDate>Fri, 14 May 2010 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/05/why-most-scientists-dont-like-computers/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Psychology is fascinating: so much of what we think we know about people turns out not to be true, while so many everyday oddities turn out to have rational explanations (for some version of "rational"). For example, I've known for twenty-five years that most scientists dread the point in their work when they have to do something new with a computer. I've finally figured out why: it's because the yield-to-effort function is wildly discontinuous, and human beings &lt;em>hate&lt;/em> that.&lt;/p></description></item><item><title>Why We're Self-Hosting</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/05/why-were-self-hosting/</link><pubDate>Mon, 10 May 2010 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/05/why-were-self-hosting/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>A couple of people have asked why we're planning to host and serve the content we're developing instead of using a combination of YouTube and Google Code, or one of the emerging online education services such as &lt;a href="http://learnhub.com/">LearnHub&lt;/a> or &lt;a href="http://supercoolschool.com/">Supercool School&lt;/a>. Part of the answer is longevity: while standards like &lt;a href="http://en.wikipedia.org/wiki/Sharable_Content_Object_Reference_Model">SCORM&lt;/a> are supposed to make e-learning content portable between different systems, in reality there is still a large degree of vendor lock-in, particularly with hosted services, and we don't want to find that our content has gone off-line because someone hasn't survived a market downturn. Hostable learning management systems like &lt;a href="http://moodle.org/">Moodle&lt;/a> require more work to set up and administer, but are also more robust (at least for now).&lt;/p></description></item><item><title>Teaching Open Source</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/04/teaching-open-source/</link><pubDate>Mon, 12 Apr 2010 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/04/teaching-open-source/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Over at opensource.com, Red Hat's Greg DeKoenigsberg has a post about a new &lt;a href="http://opensource.com/education/10/4/can-professors-teach-open-source">collaboratively-authored textbook on open source software&lt;/a> aimed squarely at undergrad courses. As M&amp;aacute;ir&amp;iacute;n Duffy points out in the first comment, it's very code-centric, but in my experience, that's the right approach: students won't be ready for discussion of design until they're proficient in coding [1]. I'm looking forward to borrowing lots from the book for &lt;a href="http://software-carpentry.org/">Software Carpentry&lt;/a>...&lt;/p></description></item><item><title>Measuring Science</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/04/measuring-science/</link><pubDate>Sun, 11 Apr 2010 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/04/measuring-science/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Julia Lane, the director of the Science of Science &amp;amp; Innovation Policy program at the National Science Foundation, wrote &lt;a href="http://www.nature.com/nature/journal/v464/n7288/full/464488a.html">an article for &lt;em>Nature&lt;/em>&lt;/a> a couple of weeks ago titled "Let's make science metrics more scientific". As the summary at the start says:&lt;/p>
&lt;ul>
&lt;li>Existing metrics have known flaws&lt;/li>
&lt;li>A reliable, open, joined-up data infrastructure is needed&lt;/li>
&lt;li>Data should be collected on the full range of scientists' work&lt;/li>
&lt;li>Social scientists and economists should be involved&lt;/li>
&lt;/ul>
&lt;p>The same points could be made about evaluating software developers (or any other kind of knowledge worker). The devil, as always, is in the details, and unfortunately I have to start doing evaluations before those details are worked out. Several of the &lt;a href="{{site.baseurl}}/scf/members/">supporters&lt;/a> for this course need me to demonstrate its impact on the productivity of the scientists who take it (so that they can in turn justify their contribution to &lt;em>their&lt;/em> funders). It isn't enough to ask students who have completed the course whether they think they know more about programming than they used to: ignoring the obvious problems of &lt;a href="http://en.wikipedia.org/wiki/Survivor_bias">survivor bias&lt;/a> and self-assessment, I would still have to demonstrate that making people better programmers also makes them better scientists. I believe it does, but belief is not evidence, and doesn't convey scale.&lt;/p></description></item><item><title>Simon Singh Wins (and So Does Science)</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/04/simon-singh-wins-and-so-does-science/</link><pubDate>Thu, 01 Apr 2010 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/04/simon-singh-wins-and-so-does-science/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Simon Singh, the science journalist who was sued for libel by the British Chiropractic Association, has &lt;a href="http://news.bbc.co.uk/2/hi/uk_news/8598472.stm">won the right to rely on the defense of "fair comment"&lt;/a>. (Full ruling linked from &lt;a href="http://www.indexoncensorship.org/2010/04/simon-singh-bca-libel-ruling/">this Index on Censorship post&lt;/a>.) Singh had pointed out that there's no evidence to back up BCA claims that their particular brand of pseudoscience could help with asthma and other ailments; it has taken him two years and &amp;pound;200,000 later to get this far, and it may be another two years before the matter is finally settled, but this is an important victory for everyone who believes in rational inquiry.&lt;/p></description></item><item><title>How Much Of This Should Scientists Understand?</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/03/how-much-of-this-should-scientists-understand/</link><pubDate>Thu, 11 Mar 2010 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/03/how-much-of-this-should-scientists-understand/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Let's start with the problem description:&lt;/p>
&lt;blockquote>&lt;p>All of the Software Carpentry course material (including lecture notes, code samples, data files, and images) is stored in a Subversion repository. That's currently hosted at the University of Toronto, but I'd like to move it to the software-carpentry.org domain (along with this blog). However, software-carpentry.org is hosted with site5.com, who only provide one shell account per domain for cheap accounts like the one I bought.&lt;/p></description></item><item><title>It Seems That Everyone Cares</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/01/it-seems-that-everyone-cares/</link><pubDate>Sun, 24 Jan 2010 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/01/it-seems-that-everyone-cares/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>&lt;a href="http://arstechnica.com/">Ars Technica&lt;/a> isn't primarily a science site, but even they are now worried about &lt;a href="http://arstechnica.com/science/news/2010/01/keeping-computers-from-ending-sciences-reproducibility.ars">reproducibility in computational science&lt;/a>. I think it no longer matters how important this "crisis" actually is&amp;mdash;sooner or later, major funding agencies are going to mandate adoption of something like the &lt;a href="http://openprovenance.org/">Open Provenance Model&lt;/a>. Problem is, given the current skill set of the average scientist, that will almost certainly translate into burden without benefit.&lt;/p></description></item><item><title>Big Science == Big Skills Gap</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/01/big-science-big-skills-gap/</link><pubDate>Wed, 20 Jan 2010 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/01/big-science-big-skills-gap/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Over on &lt;a href="http://www.nature.com/news/">&lt;em>Nature News&lt;/em>&lt;/a>, Eric Hand's article "&lt;a href="http://www.nature.com/news/2010/100120/full/463282a.html">'Big science' spurs collaborative trend&lt;/a>" is subtitled, "Complicated projects mean that science is becoming more globalized." It talks about the benefits of international collaboration, but what it doesn't say is that sharing ideas, results, procedures, and software requires skills that aren't part of the standard curriculum. One of the main goals of the rewrite of Software Carpentry is to teach scientists some of what they need to know in order to do what Hand describes &lt;em>without&lt;/em> heroic effort. I'd be grateful for suggestions about topics and tools that ought to be on the list, but aren't.&lt;/p></description></item><item><title>Was Designed To, But Didn't</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/01/was-designed-to-but-didnt/</link><pubDate>Mon, 18 Jan 2010 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/01/was-designed-to-but-didnt/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Michael Clarke has written a thoughtful post exploring &lt;a href="http://scholarlykitchen.sspnet.org/2010/01/04/why-hasnt-scientific-publishing-been-disrupted-already/">why the web &lt;em>hasn't&lt;/em> disrupted scientific publishing&lt;/a>, even though it was designed to do exactly that.&lt;/p></description></item><item><title>Whatcha Gonna Do When They Come For You?</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/01/whatcha-gonna-do-when-they-come-for-you/</link><pubDate>Wed, 13 Jan 2010 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/01/whatcha-gonna-do-when-they-come-for-you/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>First it was pharma companies withholding "unhelpful" data, then it was &lt;a href="http://www.software-carpentry.org/blog/2009/11/caesars-wife.html">ClimateGate&lt;/a>, and now there's &lt;a href="http://blogs.nature.com/news/thegreatbeyond/2010/01/baby_einstein_research_row_res.html">this&lt;/a>:&lt;/p>
&lt;blockquote>&lt;p>One of the founders of the controversial 'Baby Einstein' range of products is taking the University of Washington to court in an attempt to force the institution's scientists to release their raw data to him...William Clark...wants records relating to two studies published in 2004 and 2007. The latter found an "association between early viewing of baby DVDs/videos and poor language development" while the former suggested "efforts to limit television viewing in early childhood may be warranted".&lt;/p></description></item><item><title>How We Got Here, and Where We Are</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/01/how-we-got-here-and-where-we-are/</link><pubDate>Sun, 10 Jan 2010 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2010/01/how-we-got-here-and-where-we-are/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>I gave a talk in Santa Fe early in 1997 describing a set of articles I'd organized for the Summer 1996 and Fall 1996 issues of &lt;em>IEEE Computational Science and Engineering&lt;/em> (now &lt;a href="http://cise.aip.org/">&lt;em>Computing in Science &amp;amp; Engineering&lt;/em>&lt;/a> on the subject, "What should computer scientists teach physical scientists and engineers?" After the talk, John Reynders (then the director of the Advanced Computing Lab at &lt;a href="http://www.lanl.gov">Los Alamos National Laboratory&lt;/a>) challenged me to put my money where my mouth was and actually teach basic software development skills to working scientists.&lt;/p></description></item><item><title>Osmosis is Just a Fancy Name for Failure</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2009/12/osmosis-is-just-a-fancy-name-for-failure/</link><pubDate>Wed, 30 Dec 2009 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2009/12/osmosis-is-just-a-fancy-name-for-failure/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>My &lt;a href="{{site.baseurl}}/blog/2009/12/dudley-and-butte-on-software-skills.html">last
post&lt;/a> linked to
a &lt;a href="http://www.ploscompbiol.org/article/info%3Adoi%2F10.1371%2Fjournal.pcbi.1000589">PLoS
paper&lt;/a> by Dudley and Butte on developing effective bioinformatics
programming skills. I asked, "How many hours do the authors think are
needed to acquire these skills?" In
response, &lt;a href="http://med.stanford.edu/profiles/Atul_Butte">Atul
Butte&lt;/a> said, "I think the ideal scenario is when one's research
projects enable one to learn these skills, so that these skills get
learned in a practical way outside the classroom too, while doing
science," while &lt;a href="http://www.mutualinformation.org/">Luis Pedro
Coelho&lt;/a> asked, "Does it matter over the long (or even medium) term?
Isn't improving your skills even you if aren't being immediately
productive what school is for?"&lt;/p></description></item><item><title>Dudley and Butte on Software Skills</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2009/12/dudley-and-butte-on-software-skills/</link><pubDate>Sun, 27 Dec 2009 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2009/12/dudley-and-butte-on-software-skills/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Via &lt;a href="http://ivory.idyll.org/blog">Titus Brown&lt;/a>, a new PLoS paper titled "&lt;a href="http://dx.plos.org/10.1371/journal.pcbi.1000589">A Quick Guide for Developing Effective Bioinformatics Programming Skills&lt;/a>" by Joel Dudley and Atul Butte. Their recommendations are:&lt;/p>
&lt;ol>
&lt;li>Programming languages&lt;/li>
&lt;li>Embracing open source&lt;/li>
&lt;li>Unix command-line skills&lt;/li>
&lt;li>Keeping projects documented and manageable&lt;/li>
&lt;li>Preserving source code with version control&lt;/li>
&lt;li>Embracing parallel computing paradigms&lt;/li>
&lt;li>Structuring data for speed and scalability&lt;/li>
&lt;li>Understanding the capabilities of hardware&lt;/li>
&lt;li>Embracing standards and interoperability&lt;/li>
&lt;li>Put a high value on your time&lt;/li>
&lt;/ol>
&lt;p>I think all these things matter, but:&lt;/p></description></item><item><title>Double Standards</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2009/12/double-standards/</link><pubDate>Fri, 18 Dec 2009 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2009/12/double-standards/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>&lt;a href="http://www.fel.duke.edu/~scafetta/">Nicola Scafetta&lt;/a> is &lt;a href="http://www.newscientist.com/article/dn18307-sceptical-climate-researcher-wont-divulge-key-program.html">refusing to release the software&lt;/a> on which he bases his claims that the sun is responsible for much of terrestrial warming during the last century. I obviously think that scientists should be required to do this as a condition of publication; coming as this does on the heels of &lt;a href="{{site.baseurl}}/blog/2009/11/caesars-wife.html">Climategate&lt;/a>, it will be interesting to see if journals finally start pushing in that direction. It also highlights the need to add more material to this course to cover packaging for release and data provenance.&lt;/p></description></item><item><title>Caesar's Wife</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2009/11/caesars-wife/</link><pubDate>Thu, 26 Nov 2009 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2009/11/caesars-wife/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Improving the way scientists use computers isn't just about making them more productive: it's also essential to defending the integrity of their work. Stories like &lt;a href="http://pajamasmedia.com/blog/climategate-computer-codes-are-the-real-story/">this one&lt;/a> about a researcher struggling in vain for three years to replicate someone else's results can only undermine public confidence at a time when we need to make a lot of hard decisions in a hurry. Sadly, we have no one to blame but ourselves...&lt;/p></description></item><item><title>A Strange Obsession</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2009/09/a-strange-obsession/</link><pubDate>Tue, 29 Sep 2009 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2009/09/a-strange-obsession/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>I just spent a few minutes
browsing &lt;a href="http://research.microsoft.com/pubs/102785/GridKA_2009.pdf">these
slides&lt;/a> from a talk given in Karlsruhe in September by Microsoft's
Fabrizio Gagliardi. The talk's title was "Cloud Computing for
Scientific Research", and it's chock-full of big: mega-this,
peta-that, and isn't it all exciting? The only mention of anything at
the desktop scale is on slide 19, which mentions a plugin to allow
MATLAB to talk to the cloud, and Excel views of Azure data. Once
again, I'm puzzled (and a bit disappointed) that the world's premier
desktop software company has decided to ignore
what &lt;a href="{{site.filesurl}}/bib/amsci-survey-2009.pdf">most&lt;/a>
&lt;a href="{{site.filesurl}}/bib/secse-survey-2009.pdf">scientists&lt;/a>
care about most. I'm equally disappointed that there was nothing at
all in these slides about improving scientists' skills, especially
since Microsoft has invested so heavily in improving its own
processes. Oh well...&lt;/p></description></item><item><title>Another Reason to Care About Provenance</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2009/09/another-reason-to-care-about-provenance/</link><pubDate>Mon, 21 Sep 2009 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2009/09/another-reason-to-care-about-provenance/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>A vice president at ETH is &lt;a href="http://blogs.nature.com/news/thegreatbeyond/2009/09/eth_zurich_research_chief_to_r.html">resigning today&lt;/a> because of accusations of fraud. A key lab notebook is missing, retractions have been retracted, and according to ETH President Ralph Eichler, "there is now no legal way of finding out for sure who was responsible for the falsifications."&lt;/p>
&lt;p>Question: if someone accused &lt;em>you&lt;/em> of falsifying results, how well and how easily could you defend yourself? How long would it take you to pull together all the notes, data, and programs you used three years ago to produce the paper being challenged? And would you career survive? Even if you "won", you would probably lose weeks or months of research time.&lt;/p></description></item><item><title>Is The Future Waving At You?</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2009/08/is-the-future-waving-at-you/</link><pubDate>Sun, 30 Aug 2009 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2009/08/is-the-future-waving-at-you/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Cameron Neylon has been playing with Google Wave, and he likes it. His &lt;a href="http://blog.openwetware.org/scienceintheopen/2009/08/23/reflecting-on-a-wave-the-demo-at-science-online-london-2009/">presentation&lt;/a> at Science Online in London in August explains why (you can also watch &lt;a href="http://www.viddler.com/explore/CameronNeylon/videos/8/">video&lt;/a>, though sadly there's no soundtrack). He's even &lt;a href="http://blog.openwetware.org/scienceintheopen/2009/08/27/writing-a-wave-robot-some-thoughts-on-good-practice-for-research-robots/">writing robots&lt;/a> to automate some scientifically interesting tasks. &lt;em>Nature News&lt;/em> &lt;a href="http://www.nature.com/news/2009/090824/full/news.2009.857.html">liked Wave too&lt;/a>, which (a) reminds me yet again of how prescient Jon Udell's "&lt;a href="http://207.22.26.166/GroupwareReport.html">Internet Groupware for Scientific Collaboration&lt;/a>" was ten years ago, and (b) makes me wonder (also again) how much this course should be re-thought.&lt;/p></description></item><item><title>Who Owns Your Data?</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2009/08/who-owns-your-data/</link><pubDate>Mon, 24 Aug 2009 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2009/08/who-owns-your-data/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>&lt;em>Nature&lt;/em>'s "Great Beyond" blog reports another attempt to &lt;a href="http://blogs.nature.com/news/thegreatbeyond/2009/08/climate_researcher_vs_foi_part.html">force climate scientists to release their data&lt;/a>. I'm of at least two minds on this: I believe openness is absolutely crucial to science (and society as a whole), but I understand scientists' concern about being scooped, and equally their concern about having their work misrepresented or quoted out of context. Mostly, I come down on the side of openness&amp;mdash;how about you?&lt;/p></description></item><item><title>Elsevier's Future, Version 0.1</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2009/07/elseviers-future-version-0-1/</link><pubDate>Tue, 21 Jul 2009 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2009/07/elseviers-future-version-0-1/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Elsevier (a big scientific publisher) have unveiled &lt;a href="http://blogs.nature.com/news/thegreatbeyond/2009/07/article_of_the_future.html">their guess&lt;/a> of what the future of scientific publishing looks like. Tabs? Got 'em. Audio? Yup. RSS feeds for updates, corrections, and comments? The raw data, complete with provenance information so other researchers can try to reproduce the results? Still waiting...&lt;/p></description></item><item><title>Big Code vs. Science 2.0</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2009/06/big-code-vs-science-2-0/</link><pubDate>Mon, 01 Jun 2009 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2009/06/big-code-vs-science-2-0/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>The original goal of this course was to give scientists and engineers the skills they needed to build large pieces of software without heroic effort. It's increasingly clear, though, that another goal is equally important: to help them take part in what's sometimes called "Science 2.0": the sharing of information through the Internet. Cameron Neylon's slides on &lt;a href="http://www.slideshare.net/CameronNeylon/capturing-process">capturing process&lt;/a> are, like Jon Udell's on &lt;a href="http://www.slideshare.net/judell/computational-thinking">computational thinking&lt;/a>, a good summary of the skills required&amp;mdash;skills which overlap with, but are distinct from, those needed by software developers.&lt;/p></description></item><item><title>Empirical Software Engineering and Scientific Computing</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2009/04/empirical-software-engineering-and-scientific-computing/</link><pubDate>Tue, 28 Apr 2009 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2009/04/empirical-software-engineering-and-scientific-computing/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>The slides for my talk at the National Research Council on &lt;a href="http://www.slideshare.net/gvwilson/we-know-less-than-you-think-but-we-do-know-something">empirical software engineering and how scientists actually use computers&lt;/a> are now up on SlideShare. The colors in some of the embedded images were messed up during upload, but the result should still be readable.&lt;/p></description></item><item><title>Open Science and Autism's False Prophets</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2009/03/open-science-and-autisms-false-prophets/</link><pubDate>Mon, 02 Mar 2009 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2009/03/open-science-and-autisms-false-prophets/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Paul Offit has a new book out called &lt;a href="http://www.amazon.com/Autisms-False-Prophets-Science-Medicine/dp/0231146361">&lt;em>Autism's False Prophets&lt;/em>&lt;/a>, which looks at how the myth about vaccination causing autism arose and spread. As his &lt;a href="http://www.babble.com/baby/baby-health-safety/dr-paul-offit-autism-and-vaccines-vaccination-safety-child-health/">condensed essay&lt;/a> on the subject says, it's a far from simple story, but one that has echoes in areas such as climate change where science and public policy must dine at the same table. I still haven't decided whether open science will make a difference to this or not: putting data, calculations, and papers freely available online in real time will help scientists talk to one another, but I don't think it will help them communicate with the other 99.9% of our species. Thoughts?&lt;/p></description></item><item><title>Das Kapital, Computational Thinking, and Productivity</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2009/02/das-kapital-computational-thinking-and-productivity/</link><pubDate>Mon, 23 Feb 2009 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2009/02/das-kapital-computational-thinking-and-productivity/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Somewhere in &lt;em>The Age of Uncertainty&lt;/em>, Galbraith wrote that what made &lt;em>Das Kapital&lt;/em> and the Bible great books was that they were so large, and so full of contradictions, that everyone could find support in them for anything they wanted. I have felt the same way about the phrase "&lt;a href="http://www.cs.cmu.edu/~CompThink/">computational thinking&lt;/a>" ever since I attended a workshop at Microsoft Research in September 2007. In one of the breakout sessions, six of us tried to operationalize our understanding of the term by coming up with questions for a quiz that could be given to someone to determine if he or she was thinking computationally. It quickly became clear that we meant very different things when we used those two words. It was also clear (to me at least) that this ambiguity was socially very useful, since (to switch metaphors) it allowed people to attend the same church while disagreeing on the nature of salvation. It's not a &lt;a href="http://en.wikipedia.org/wiki/Polite_fiction">polite fiction&lt;/a> per se, but rather a&amp;mdash;um, damn, I don't know the word&amp;mdash;a thing that no one looks at closely because doing so would cause discomfort or friction.&lt;/p></description></item><item><title>Computer Supported Collaborative Science</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2009/02/computer-supported-collaborative-science/</link><pubDate>Wed, 18 Feb 2009 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2009/02/computer-supported-collaborative-science/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>I've used the term "CSCS" a &lt;a href="http://pyre.third-bit.com/blog/archives/2035.html">few&lt;/a> &lt;a href="http://pyre.third-bit.com/blog/archives/2083.html">times&lt;/a> now; time to start groping toward a definition. "Computer supported collaborative science" (CSCS) is a specialization of computer supported collaborative work, which is the study of "how collaborative activities and their coordination can be supported by means of computer systems". Insert the word "scientific", and you have CSCS. More specifically, CSCS includes science 2.0, open notebook science, reproducible research, workflow &amp;amp; provenance, and other things modern computing technology can do to help scientists find and share information.&lt;/p></description></item><item><title>Cameron Neylon Says Interesting Things</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2009/02/cameron-neylon-says-interesting-things/</link><pubDate>Wed, 04 Feb 2009 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2009/02/cameron-neylon-says-interesting-things/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>This time, he has blogged about &lt;a href="http://blog.openwetware.org/scienceintheopen/2009/02/04/best-practice-for-data-availability-%E2%80%93-the-debate-startswell-over-there-really/">best practices for making scientific data available&lt;/a>. I think this kind of thing will have a much bigger impact on scientists' productivity than any amount of parallel supercomputing, and that computer scientists could have a lot of impact by helping "real" scientists figure out how to do it better.&lt;/p></description></item><item><title>A Healthy Dose of Scepticism</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2008/12/a-healthy-dose-of-scepticism/</link><pubDate>Wed, 24 Dec 2008 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2008/12/a-healthy-dose-of-scepticism/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Titus Brown's &lt;a href="http://ivory.idyll.org/blog/dec-08/its-not-the-tools-folks.html">latest post&lt;/a> (which opens with, "The latest hot idea for making a protein-protein interaction database leaves me lukewarm") should be read by every computer scientist who's "just trying to help":&lt;/p>
&lt;blockquote>&lt;p>...while tools can be helpeful, the fundamental problem is much more, well, fundamental: science is &lt;em>hard&lt;/em>. Connecting the dots is &lt;em>hard&lt;/em>. Thinking clearly about the problem and separating the wheat from the chaff, so to speak, is &lt;em>hard&lt;/em>. I worry that for the majority of biologists, new tools are going to be more distracting than helpful. We need to build simpler, easier-to-use tools, not more complicated tools; we need to keep our focus on the goal (solving biological problems) and not just on intermediate stages like improving databases and building better prediction tools.&lt;/p></description></item><item><title>Science in the 21st Century</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2008/09/science-in-the-21st-century/</link><pubDate>Thu, 11 Sep 2008 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2008/09/science-in-the-21st-century/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>I'm at the "&lt;a href="http://www.science21stcentury.org/">Science in the 21st Century&lt;/a>" conference at the &lt;a href="http://www.perimeterinstitute.ca/">Perimeter Institute&lt;/a> today. There are 32 people in the room right now: 23 are male and 9 are female, but only one is non-Caucasian, which pretty much matches the numbers in the &lt;a href="http://science21stcentury.org/photo21.jpg">picture&lt;/a> from the conference dinner last night. That's about the same M/F ratio I see in science grad courses at U of T, but definitely &lt;em>not&lt;/em> the ethnic distribution&amp;mdash;wonder why? It can't just be a "seniority effect" &amp;mdash; this is a pretty young crowd. We see the same thing at DemoCamp: non-Caucasians are often a majority n sci/tech classes and companies in the Greater Toronto Area, but definitely a minority on Tuesday nights. Thoughts? &lt;a href="http://michaelnielsen.org">Michael Nielsen&lt;/a> says that &lt;a href="http://www.scibarcamp.org/">SciBarCamp&lt;/a> was 50/50...&lt;/p></description></item><item><title>They're Breeding Like Rabbits</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2008/08/theyre-breeding-like-rabbits/</link><pubDate>Fri, 01 Aug 2008 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2008/08/theyre-breeding-like-rabbits/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Cameron Neylon complains about &lt;a href="http://blog.openwetware.org/scienceintheopen/2008/08/01/facebooks-for-scientists-theyre-breeding-like-rabbits/">the proliferation of networking sites, aggregators, and what-not for scientists&lt;/a>. I think he's right: none of them will succeed until there's massive consolidation. Maybe &lt;a href="http://www.linkedin.com">LinkedIn&lt;/a> or someone like that could offer a cheap-but-not-free service customized to scientists' need on top of its existing infrastructure?&lt;/p></description></item><item><title>Badge of Reproducibility</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2008/07/badge-of-reproducibility/</link><pubDate>Wed, 23 Jul 2008 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2008/07/badge-of-reproducibility/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Coming back to the &lt;a href="http://pyre.third-bit.com/blog/archives/1677.html">badge meme&lt;/a> from earlier this week, John Cook's new &lt;a href="http://www.reproducibleresearch.net/blog/">Reproducible Research blog&lt;/a> pointed me at &lt;a href="http://rr.epfl.ch/17/">this page&lt;/a> on the &lt;a href="http://rr.epfl.ch">EPFL&lt;/a> site advertising a paper called "What, Why and How of Reproducible Research in Signal Processing". Notice the "Reproducible Research" badge? The "add your evaluation" link takes you to a formlet that lets you choose between:&lt;/p>
&lt;ol>
&lt;li>I have tested this code and it works&lt;/li>
&lt;li>I have tested this code and it does not work (on my computer)&lt;/li>
&lt;li>I have tested this code and was able to reproduce the results from the paper&lt;/li>
&lt;li>I have tested this code and was unable to reproduce the results from the paper&lt;/li>
&lt;/ol>
&lt;p>It's a good start...&lt;/p></description></item><item><title>Why Don't We Do This?</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2008/05/why-dont-we-do-this/</link><pubDate>Wed, 21 May 2008 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2008/05/why-dont-we-do-this/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>&lt;a href="http://www.scfbm.org/">&lt;em>Source Code for Biology and Medicine&lt;/em>&lt;/a> is a peer-reviewed journal from &lt;a href="http://www.biomedcentral.com/">BioMed Central&lt;/a> devoted to, well, source code for biology and medicine. It's been around for at least a couple of years; based on a quick scan of four of their most popular papers, they seem to cover everything from getting and installing software to its numerical properties, user interface, and typical applications. This is very cool&amp;mdash;but why isn't there something like this for computer science? All I can think of are &lt;a href="http://ca.wiley.com/WileyCDA/WileyTitle/productCd-SPE.html">&lt;em>Software: Practice &amp;amp; Experience&lt;/em>&lt;/a> and &lt;a href="http://www.elsevier.com/wps/find/journaldescription.cws_home/505732/description#description">&lt;em>The Journal of Systems and Software&lt;/em>&lt;/a>, both of which are one meta removed from SCBM.&lt;/p></description></item><item><title>But I Was Gone Less than 48 Hours!</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2008/05/but-i-was-gone-less-than-48-hours/</link><pubDate>Fri, 16 May 2008 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2008/05/but-i-was-gone-less-than-48-hours/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>I left Toronto for Austin mid-day Wednesday, and got back at midnight last night. Lots happened in the interim, so here's a linkandthoughtdump (which I bet actually &lt;em>is&lt;/em> one word in German):&lt;/p>
&lt;ul>
&lt;li>Gave a talk about &lt;a href="http://www.amazon.com/Beautiful-Code-Leading-Programmers-Practice/dp/0596510047">&lt;em>Beautiful Code&lt;/em>&lt;/a> to the Austin Python Users' Group Wednesday at &lt;a href="http://www.enthought.com">Enthought&lt;/a>'s swanky offices. (They're the kind folks who provide web hosting for the Software Carpentry course.) About 27 people in attendance, and good discussion afterward; was grateful to Travis Vaught and Sergey Fomel for rides from the airport and to the hotel respectively.&lt;/li>
&lt;li>Gave another talk titled "HPC Considered Harmful" at the &lt;a href="http://www.tacc.utexas.edu/">Texas Advanced Computing Center&lt;/a>'s Second Annual Scientific Software Days. I was a bit nervous about telling people at a supercomputing center that focusing on massive parallelism and peak performance is wrongheaded, but there were a lot of nodding heads.&lt;/li>
&lt;li>I made lots of notes from two other talks that I want to follow up on at some point:
&lt;ul>
&lt;li>Robert van de Geijn's &lt;a href="http://www.cs.utexas.edu/users/flame/">FLAME&lt;/a> system lets you draw matrix operations, then automatically generates the corresponding high-performance code. It's a great example of a real high-level programming tool for scientists (and yet another special case of what a real &lt;a href="http://www.third-bit.com/articles/extprog-acmqueue-2004.pdf">extensible programming system&lt;/a> would support).&lt;/li>
&lt;li>Eric Jones (also from &lt;a href="http://www.enthought.com">Enthought&lt;/a>) talked about a tool they're building that watches changes to variables in Python programs, and automatically generates interactive plots of their values. It sounds simpler and less impressive than it actually is; I've asked him to put together a screencast, and I think you'll be wowed&amp;mdash;I was. &lt;em>(Later: Steve Eddings from The Mathworks sent me a link about &lt;a href="http://blogs.mathworks.com/desktop/2008/04/14/a-link-to-the-data/">data linking in MATLAB&lt;/a>, complete with a &lt;a href="http://www.mathworks.com/support/2008a/matlab/7.6/demos/LinkedPlotsAndDataBrushing.html">video tutorial&lt;/a>.)&lt;/em>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>At roughly the same time, half a world away, Diomidis Spinellis presented &lt;a href="http://www.spinellis.gr/blog/20080516/">a study&lt;/a> comparing the code quality of Linux, Windows, OpenSolaris, and FreeBSD. Very cool work; wish I'd been at &lt;a href="http://icse08.upb.de/">ICSE'08&lt;/a> to ask questions.&lt;/li>
&lt;li>Meanwhile, Dmitri Vassiliev, who is continuing his work on &lt;a href="http://www.slashid.com">SlashID&lt;/a> this summer, has discovered that &lt;a href="http://slashid.wordpress.com/2008/05/16/grrr-setbacks-as-always/">generated code is next-to-impossible to debug&lt;/a>. Not to be a one-note symphony or anything, but I said in that same &lt;a href="http://www.third-bit.com/articles/extprog-acmqueue-2004.pdf">article&lt;/a> about extensible programming systems that the real challenge is not extending notation, but creating extensible debugging tools so that those notations and high-level representations can be fixed when they break. Robert van de Geijn doesn't think &lt;a href="http://www.cs.utexas.edu/users/flame/">FLAME&lt;/a> needs a debugger; respectfully, I disagree.&lt;/li>
&lt;li>&lt;a href="http://blog.openwetware.org/scienceintheopen/2008/05/16/avoid-the-pain-and-embarassment-make-all-the-raw-data-available/">Science in the Open&lt;/a> has a plea to scientists to make their raw data available, motivated by yet another irreproducible result.&lt;/li>
&lt;li>Kosta Zabashta has posted early thoughts about &lt;a href="http://drprojectirc.wordpress.com/2008/05/16/the-early-plan/">integrating IRC into DrProject&lt;/a>. (Gray on black? Kosta...your design skills rival mine...) I need to tell him that DrProject's RPC module doesn't handle tickets because Jeff Balogh is going to replace the entire ticketing system with an extensible one this summer, using his &lt;a href="http://dojotoolkit.org">Dojo Form Editor&lt;/a> as a front end...&lt;/li>
&lt;li>Elisabeth Hendrickson has thoughts on &lt;a href="http://testobsessed.com/2008/05/15/so-youre-trying-to-automate-tests-for-a-legacy-web-application/">automating tests for legacy web applications&lt;/a>. Students, take note.&lt;/li>
&lt;li>Thanks to Nick Jamil and others, we have instructions for &lt;a href="https://stanley.cdf.toronto.edu/drproject/drproject/All/wiki/TitleIndex">installing DrProject on Windows&lt;/a>. Yay!&lt;/li>
&lt;li>Everything old is new again, including &lt;a href="http://www.ddj.com/hpc-high-performance-computing/207800151">Ada and the Bletchley Park Colossus&lt;/a>.&lt;/li>
&lt;/ul>
&lt;p>And then there's this:&lt;/p></description></item><item><title>SPOC</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2008/04/spoc/</link><pubDate>Mon, 14 Apr 2008 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2008/04/spoc/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Regarding the idea of &lt;a href="http://pyre.third-bit.com/blog/archives/1444.html">reproducible research&lt;/a>, I stumbled over &lt;a href="http://www.cscs.umich.edu/~rlr/SoC/index.php?n=Main.Soc2008">I-SPOC&lt;/a> while looking through Google Summer of Code stuff. From their pitch:&lt;/p>
&lt;blockquote>&lt;p>&lt;em>The overall goal of this project is to build computational and social infrastructure to support the use of a new form of scientific communication called a SPOC (Scientific Paper with Open Communication). A SPOC combines a standard academic paper with open source computational models written in any publicly accessible computer language. SPOCs will (i) link computational results with the models that produce them, allowing independent verification and validation (ii) create incentives for cleaner, more transparent code and for the sharing of code (iii) enable others to extend and improve existing computational models and to verify model robustness (iv) bring computational models to life allowing faculty, students, and other scholars to see dynamic phenomena emerge and (v) have an enormous effect on the teaching of science.&lt;/em>&lt;/p></description></item><item><title>Three Studies (Maybe Four)</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2008/04/three-studies-maybe-four/</link><pubDate>Thu, 10 Apr 2008 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2008/04/three-studies-maybe-four/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>We're in the thick of picking students and projects for Google Summer of Code, which has inspired some less-random-than-usual thoughts. Here are two studies I'd like to do (or see done):&lt;/p>
&lt;ol>
&lt;li>What has happened to previous students? How many are still involved in open source? How many have gone on to {start a company, grad school, prison}? What do they think they learned from the program? How much of the software they wrote is still in use? Etc.&lt;/li>
&lt;li>Every one of the 175 organizations blessed by Google this year is using the same web application for collecting and voting on projects. From what I can tell, they're all using it in different ways: +4 means something very different to the Python Software Foundation than it does to Eclipse or SWIG. They're also using a bewildering variety of other channels for communication: wikis, IRC, Skype chat sessions, mailing lists (the most popular), and so on. Why? Is this another reflection of Jorge Aranda's finding that every small development group evolves a different process, but all those processes "work" in some sense, or is it&amp;mdash;actually, I don't have any competing hypotheses right now, but I'm sure there are some.&lt;/li>
&lt;/ol>
&lt;p>And while we're on the subject of studies, I just read Hochstein et al's paper &lt;a href="http://www.ctwatch.org/quarterly/pdf/ctwatchquarterly-8.pdf">"Experiments to Understand HPC Time to Development"&lt;/a> (CT Watch Quarterly, 2(4A), November 2006). They watched a bunch of grad students at different universities develop some simple parallel applications using a variety of tools, and measured productivity as (relative speedup)/(relative effort), where relative speedup is (reference execution time)/(parallel execution time), and relative effort is (parallel effort)/(reference effort). The speedup measure is unproblematic, but as far as I can tell, they don't explain where their "reference effort" measure comes from. I suspect it's the effort required to build a serial solution to the problem, and that "parallel effort" is then the &lt;em>additional&lt;/em> time required to parallelize; I've mailed the authors to ask, but haven't heard back yet.&lt;/p></description></item><item><title>Meet the New Flaw</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2008/03/meet-the-new-flaw/</link><pubDate>Mon, 31 Mar 2008 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2008/03/meet-the-new-flaw/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>I was pretty excited when I heard that Microsoft was getting into scientific computing. As the world's biggest desktop software company, I figured they might understand that scientific computing and high-performance computing are &lt;em>not&lt;/em> automatically the same thing, and that reliability and reproducibility are more important than peak performance. Turns out I was wrong: the workshop I attended last September was dominated by discussion of topics like GPU programming and computational grids that are still bleeding-edge computer science, rather than the nuts and bolts that would actually help most scientists be productive day-to-day, Microsoft's new HPC++ Computational Finance lab's site [since closed] has a lot on speed but nothing on correctness, &lt;a href="http://blog.jonudell.net/2008/03/27/cluster-computing-with-large-data-for-the-classroom/">et cetera&lt;/a>.&lt;/p></description></item><item><title>Doomed to Repeat It</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2007/10/doomed-to-repeat-it/</link><pubDate>Tue, 02 Oct 2007 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2007/10/doomed-to-repeat-it/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>&lt;em>Those who cannot learn from history are doomed to repeat it. (Santayana)&lt;/em>&lt;/p>
&lt;p>I spent a day and a half last week at a workshop on computational science education. There were lots of smart people in attendance, all very passionate about the need to teach scientists how best to use the awesome power of a fully functional mothership&amp;mdash;sorry, of modern hardware and software&amp;mdash;but as the discussion went on, I grew more and more pessimistic. I'm old enough to remember the first wave of excitement about computational science in the 1980s; dozens of university-level programs were set up (mostly by physicists), and everyone involved was confident that the revolution would be unstoppable.&lt;/p></description></item><item><title>Computational Scientists Still Don't Get It</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2007/05/computational-scientists-still-dont-get-it/</link><pubDate>Sat, 05 May 2007 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2007/05/computational-scientists-still-dont-get-it/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>A workshop called "&lt;a href="http://www.it.uu.se/research/conf/SCSE07">Software Issues in Computational Science and Engineering&lt;/a>" is running in Uppsala, Sweden, this August. Here's their blurb:&lt;/p>
&lt;blockquote>&lt;p>Software for numerical computations faces multiple challenges. The software should be easy to use. Ideally, adaptation to new applications should be flexible, and extension to incorporate new numerical techniques straightforward. At the same time the software should execute extremely efficiently on various high-performance computing platforms. Accuracy and robustness are other key features. The overall challenge is to find ways to construct numerical software so that all these different goals are met simultaneously.&lt;/p></description></item><item><title>Sign Error: Five Papers Retracted</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2007/03/sign-error-five-papers-retracted/</link><pubDate>Mon, 19 Mar 2007 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2007/03/sign-error-five-papers-retracted/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>Via &lt;a href="http://genomebiology.com/2007/8/2/103">&lt;em>Genome Biology&lt;/em>&lt;/a> (free registration for trial access required), news that scientists from the &lt;a href="http://www.scripps.edu">Scripps Institute&lt;/a> have to retract five papers published in various prestigious journals because of a sign error in a computer program. As Gregory Petsko says in the article:&lt;/p>
&lt;blockquote>&lt;p>Their mistake has consequences beyond the damage to the unfortunate young investigator and his team. For five years, other labs have been interpreting their biophysical and biochemical data in terms of the wrong structures. A number of scientists have been unable to publish their results because they seemed to contradict the published X-ray structures. I personally know of at least one investigator whose grant application was turned down for funding because his biochemical data did not agree with the structures. One could argue that an entire sub-field has been held back for years...&lt;/p></description></item><item><title>Computational Result Retracted</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2006/10/computational-result-retracted/</link><pubDate>Tue, 31 Oct 2006 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2006/10/computational-result-retracted/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>From the latest &lt;cite>Nature&lt;/cite> (Vol 443, No 7114, p 1013):&lt;/p>
&lt;blockquote>&lt;p>When a new, independent code is used for the calculations on which the conclusions of this Letter were based, the results reported for the evolution of obliquity cannot be reproduced. This code was written in the inertial frame and is more reliable than the one used in the Letter. In most runs, the obliquities can change by only a few degrees and attain large values in only a very few cases. In addition, the obliquity variation shown in the Supplementary Information, although correct, originates from changes to orbital inclination of the planet, and close encounters are not effective in causing large obliquities.&lt;/p></description></item><item><title>SciPy'06: First Morning</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2006/08/scipy06-first-morning/</link><pubDate>Thu, 17 Aug 2006 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2006/08/scipy06-first-morning/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>&lt;strong>Guido van Rossum's Keynote&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Python 2.5 coming Real Soon (Sept 12)&lt;/li>
&lt;li>Python 3000 is a brand-new revision of the language
&lt;ul>
&lt;li>Name chosen as a dig at Windows 2000, and so that it couldn't possibly be late&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Fix design bugs dating from 1990-91 + get rid of deprecated features&lt;/li>
&lt;li>First time Guido has allowed himself to be backward incompatible&lt;/li>
&lt;li>Need process, but don't want to become C++ or the next Perl 6&lt;/li>
&lt;li>Alpha early 2007, final a year later (early 2008)&lt;/li>
&lt;li>Cares a &lt;em>lot&lt;/em> about bringing users with him
&lt;ul>
&lt;li>Will go as far as 2.9 (run out of digits)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Changes:
&lt;ul>
&lt;li>New keywords allowed&lt;/li>
&lt;li>dict.keys(), range(), zip() won't return lists&lt;/li>
&lt;li>All strings Unicode; mutable 'bytes' data type&lt;/li>
&lt;li>Binary file I/O redesign&lt;/li>
&lt;li>Drop as an alias for !=&lt;/li>
&lt;li>Etc.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>See PEP 3099 for things that won't happen (e.g., programmable syntax)&lt;/li>
&lt;li>Can't do perfect mechanical translation (dynamic languages)
&lt;ul>
&lt;li>Use pychecker-like tool to handle 80% of cases&lt;/li>
&lt;li>Create instrumented Python 2.x that warns about "doomed" constructs&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>See &lt;a href="http://www.python.org/dev/peps/pep-3100/">PEP 3100&lt;/a> for the laundry list&lt;/li>
&lt;li>Small points
&lt;ul>
&lt;li>Kill classic classes&lt;/li>
&lt;li>Exceptions must derive from BaseException&lt;/li>
&lt;li>int/int will return a float&lt;/li>
&lt;li>Remove last differences between int and long&lt;/li>
&lt;li>Absolute import by default&lt;/li>
&lt;li>Kill sys.exc_type and friends&lt;/li>
&lt;li>Kill dict.has_key, file.xreadlines()&lt;/li>
&lt;li>Kill apply(), input(), buffer(), coerce()&lt;/li>
&lt;li>Kill ancient library modules; more stdlib cleanup&lt;/li>
&lt;li>exec becomes a funciton again&lt;/li>
&lt;li>Kill `x` in favor of repr(x)&lt;/li>
&lt;li>Change except clause syntax to exception E1, E2, E3 as err
&lt;ul>
&lt;li>Means "as" becomes a keyword&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>[f(x) for x in S] becoms sugar for list(f(x) for x in S)
&lt;ul>
&lt;li>General trend in Python away from lists toward more abstract structures&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Kill raise E, arg in favor of raise E(arg)&lt;/li>
&lt;li>zip becomes izip&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>lambda lives!&lt;/li>
&lt;li>String types reform (bytes and str instead of str and unicode)
&lt;ul>
&lt;li>All data s either ibnary or text (conversions happen at I/O time)&lt;/li>
&lt;li>Different APIs for binary and text streams&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>New standard I/O stack
&lt;ul>
&lt;li>C stdio has too many problems&lt;/li>
&lt;li>Borrow from Java streams API (bleah)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Print becomes a function (boo)
&lt;ul>
&lt;li>See &lt;a href="http://mail.python.org/pipermail/python-dev/2005-September/056154.html">mailing list thread&lt;/a> for justification&lt;/li>
&lt;li>&lt;em>But I think that putting the output file at the end in print(x, y, file=z) is going to trip people up&lt;/em>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Dict views instead of lists
&lt;ul>
&lt;li>dict.keys() and dict.items() return a set view&lt;/li>
&lt;li>dict.views() will return a bag (multiset) view&lt;/li>
&lt;li>Can delete from (but not add to) a view
&lt;ul>
&lt;li>Modifies the dict accordingly&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Drop default implementations of comparison operators
&lt;ul>
&lt;li>&amp;lt;, &amp;lt;=, etc., currently compare by address &amp;mdash; will raise TypeError&lt;/li>
&lt;li>== and != should remain (useful)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Generic and overloaded functions (see his blog &amp;mdash; running out of time)&lt;/li>
&lt;li>Python sprints coming up (Aug 21-24)&lt;/li>
&lt;li>Q&amp;amp;A
&lt;ul>
&lt;li>Py3K team is smaller than Perl6 &amp;mdash; GvR optimistic that people will get the work done&lt;/li>
&lt;li>Taking advantage of multicore?
&lt;ul>
&lt;li>GvR not a big fan of threads&lt;/li>
&lt;li>Prefers loose coupling (one process per core)&lt;/li>
&lt;li>Last attempt to get rid of the GIL slowed Python down by 2X&lt;/li>
&lt;li>But neither Jython nor IronPython have a GIL&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Will C-Python API change much?
&lt;ul>
&lt;li>Yup &amp;mdash; just like the language&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>PyPy/type inference?
&lt;ul>
&lt;li>Python 4.0 or a sibling language&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Travis Oliphant on the State of NumPy&lt;/strong>&lt;/p></description></item><item><title>The Parallel Tools Platform</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2006/07/the-parallel-tools-platform/</link><pubDate>Thu, 20 Jul 2006 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2006/07/the-parallel-tools-platform/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>The &lt;a href="http://www.eclipse.org/ptp/index.php">Parallel Tools Platform&lt;/a> is an open source extension to &lt;a href="http://www.eclipse.org">Eclipse&lt;/a> for writing, running, and debugging large parallel programs. This &lt;a href="http://assets.en.oreilly.com/1/event/12/Eclipse%20and%20the%20Parallel%20Tools%20Platform%20Presentation.pdf">tutorial&lt;/a> gives an overview of what it can do (with lots of pretty pictures); this &lt;a href="http://www.computer.org/portal/site/cise/menuitem.92a12adebee18778161489108bcd45f3/index.jsp?&amp;amp;pName=cise_level1_article&amp;amp;TheCat=1001&amp;amp;path=cise/2006/v8n4&amp;amp;file=sci.xml&amp;amp;">article&lt;/a> from &lt;a href="http://www.computer.org/portal/site/cise">CiSE&lt;/a> goes into more detail. The lack of decent development tools (particularly debuggers) was one of the reasons I left parallel computing a decade ago; PTP almost looks nice enough to tempt me back into the pool...&lt;/p></description></item><item><title>Zipf's Law of Feedback</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2006/04/zipfs-law-of-feedback/</link><pubDate>Mon, 17 Apr 2006 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2006/04/zipfs-law-of-feedback/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>&lt;a href="http://en.wikipedia.org/wiki/Zipf's_law">Zipf's Law&lt;/a> says that frequency is inversely proportional to rank, i.e., the second most common word in a large body of text will occur half as many times as the most common. I have observed an even steeper curve for &lt;a href="http://www.software-carpentry.org">Software Carpentry&lt;/a> feedback: of the 336 corrections I've received, 212 are from one person (&lt;a href="http://www.ninjatactics.com">Adam Goucher&lt;/a>), 21 from &lt;a href="http://www.calpoly.edu/~mmoelter/">Matthew Moelter&lt;/a>, 12 from the next two people, and then we're down into the curve's long tail. Has anyone ever done similar stats on the volume or frequency of contributions to software projects?&lt;/p></description></item><item><title>2020 Hype</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2006/03/2020-hype/</link><pubDate>Sun, 26 Mar 2006 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2006/03/2020-hype/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>A report from &lt;a href="http://research.microsoft.com">Microsoft Research&lt;/a> called &lt;a href="http://research.microsoft.com/towards2020science/">2020 Science&lt;/a> got a lot of press this week: &lt;a href="http://www.nature.com/nature/focus/futurecomputing/index.html">Nature&lt;/a> seems to think it's the biggest story of the year so far, and &lt;a href="http://www.economist.com/displaystory.cfm?story_id=5655067">The Economist&lt;/a> gave it three full columns. Sadly, amidst the gush about how computers are revolutionizing science, no one mentions that most scientists have no idea how reliable their programs are&amp;mdash;in fact, most scientists don't even know how they would figure that out [1,2]. If someone submitting a paper to Nature said, "We didn't calibrate the equipment, we didn't write down the settings, and we have no idea what the error bars on our graphs should be," their work would be bounced without a second thought. Unless computational scientists decide to live up to those standards, the "revolution" that &lt;a href="http://research.microsoft.com/towards2020science/">2020 Science&lt;/a> describes will be a long time coming.&lt;/p></description></item><item><title>AAAS Annual Meeting 2006</title><link>https://deploy-preview-705--carpentries-website.netlify.app/blog/2006/02/aaas-annual-meeting-2006/</link><pubDate>Mon, 20 Feb 2006 00:00:00 +0000</pubDate><guid>https://deploy-preview-705--carpentries-website.netlify.app/blog/2006/02/aaas-annual-meeting-2006/</guid><description>&lt;p>&lt;b>This post originally appeared on the &lt;a href="https://software-carpentry.org/">Software Carpentry website.&lt;/a>&lt;/b>&lt;/p>
&lt;p>&lt;strong>Wednesday, 11:10 p.m.&lt;/strong>: phone call from Air Can'tada saying that my Thursday morning flight to St Louis has been cancelled because of bad weather. Next available is 4:00 p.m. Friday afternoon&amp;mdash;two and a half hours after my workshop is due to end. No, they can't help me find an alternative carrier. &lt;a href="http://www.expedia.ca">Expedia&lt;/a> can, though, and by midnight, I have a ticket on Delta, via Cincinnati.&lt;/p></description></item></channel></rss>