Greg Wilson
Mozilla Foundation
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Greg Wilson.
PLOS Computational Biology | 2016
John Blischak; Emily R. Davenport; Greg Wilson
Many scientists write code as part of their research. Just as experiments are logged in laboratory notebooks, it is important to document the code you use for analysis. However, a few key problems can arise when iteratively developing code that make it difficult to document and track which code version was used to create each result. First, you often need to experiment with new ideas, such as adding new features to a script or increasing the speed of a slow step, but you do not want to risk breaking the currently working code. One often-utilized solution is to make a copy of the script before making new edits. However, this can quickly become a problem because it clutters your file system with uninformative filenames, e.g., analysis.sh, analysis_02.sh, analysis_03.sh, etc. It is difficult to remember the differences between the versions of the files and, more importantly, which version you used to produce specific results, especially if you return to the code months later. Second, you will likely share your code with multiple lab mates or collaborators, and they may have suggestions on how to improve it. If you email the code to multiple people, you will have to manually incorporate all the changes each of them sends. Fortunately, software engineers have already developed software to manage these issues: version control. A version control system (VCS) allows you to track the iterative changes you make to your code. Thus, you can experiment with new ideas but always have the option to revert to a specific past version of the code you used to generate particular results. Furthermore, you can record messages as you save each successive version so that you (or anyone else) reviewing the development history of the code is able to understand the rationale for the given edits. It also facilitates collaboration. Using a VCS, your collaborators can make and save changes to the code, and you can automatically incorporate these changes to the main code base. The collaborative aspect is enhanced with the emergence of websites that host version-controlled code. In this quick guide, we introduce you to one VCS, Git (https://git-scm.com), and one online hosting site, GitHub (https://github.com), both of which are currently popular among scientists and programmers in general. More importantly, we hope to convince you that although mastering a given VCS takes time, you can already achieve great benefits by getting started using a few simple commands. Furthermore, not only does using a VCS solve many common problems when writing code, it can also improve the scientific process. By tracking your code development with a VCS and hosting it online, you are performing science that is more transparent, reproducible, and open to collaboration [1,2]. There is no reason this framework needs to be limited only to code; a VCS is well-suited for tracking any plain-text files: manuscripts, electronic lab notebooks, protocols, etc.
PLOS Computational Biology | 2017
Morgan Taschuk; Greg Wilson
Software produced for research, published and otherwise, suffers from a number of common problems that make it difficult or impossible to run outside the original institution or even off the primary developer’s computer. We present ten simple rules to make such software robust enough to be run by anyone, anywhere, and thereby delight your users and collaborators.
technical symposium on computer science education | 2014
Greg Wilson; Fernando Pérez; Peter Norvig
The IPython Notebook is an interactive browser-based environment where you can combine code execution, text, mathematics, plots, and rich media into a single document. Originally designed for use as an electronic lab notebook for computational science, it is increasingly being used in teaching as well, and a rich ecosystem of open source plugins and extensions for teaching is growing around it. The first half of this hands-on workshop will introduce the Notebook and present examples of lessons and instructional materials built around it. In the second half, attendees will explore future directions for the Notebook as a teaching platform. For more information, please view our GitHub repository online at https://github.com/gvwilson/sigcse2014-ipython-workshop.
PLOS Computational Biology | 2018
Gabriel A. Devenyi; Rémi Emonet; Rayna M. Harris; Kate L. Hertweck; Damien Irving; Ian Milligan; Greg Wilson
The collaborative development methods pioneered by the open source software community offer a way to create lessons that are open, accessible, and sustainable. This paper presents ten simple rules for doing this drawn from our experience with several successful projects.
PLOS Computational Biology | 2018
Neil C.C. Brown; Greg Wilson
Research from educational psychology suggests that teaching and learning are subject-specific activities [1]: learning programming has a different set of challenges and techniques than learning physics or learning to read and write. Computing is a younger discipline than mathematics, physics, or biology, and while there have been correspondingly fewer studies of how best to teach it, there is a growing body of evidence about what works and what doesn’t. This paper presents 10 quick tips that should be the foundation of any teaching of programming, whether formal or informal. These tips will be useful to anyone teaching programming at any level and to any audience. A larger list aimed primarily at K–12 audiences can be found at [2].
PLOS Biology | 2014
Greg Wilson; D. A. Aruliah; C. Titus Brown; Neil Chue Hong; Matt Davis; Richard T. Guy; Steven H. D. Haddock; Kathryn D. Huff; Ian M. Mitchell; Mark D. Plumbley; Ben Waugh; Ethan P. White; Paul P. H. Wilson
PLOS Computational Biology | 2017
Greg Wilson; Jennifer Bryan; Karen Cranston; Justin Kitzes; Lex Nederbragt; Tracy K. Teal
International Journal of Digital Curation | 2015
Tracy K. Teal; Karen Cranston; Hilmar Lapp; Ethan P. White; Greg Wilson; Karthik Ram; Aleksandra Pawlik
Archive | 2015
Aron Ahmadia; Raniere Silva; Piotr Banaszkiewicz; Sarah R. Supp; James Allen; Jon Pipitone; Kara Woo; Jeff Hollister; Michael Sumner; Noushin Ghaffari; Scott Ritchie; Peter Schmiedeskamp; Areej Alsheikh-Hussain; Greg Wilson; Aaron O'Leary; Natalie Robinson; Auriel Fournier; François Michonneau; Abigail Cabunoc; Mik Black; Bill Mills; Stephen Turner; Andy Boughton; Daniel Turek; Sarah Stevens; Rémi Emonet; Tom Wright; Daniel Chen; Matthew Aiello-Lammens; Donna Henderson
Archive | 2017
Daniel S. Katz; Robert Haines; Kathryn D. Huff; Frank Löffler; Marlon E. Pierce; Michael A. Heroux; Kyle E. Niemeyer; Sandra Gesing; Jeffrey C. Carver; Greg Wilson