📖 VCF at Northumbria University
🖥️ Fellow of the Software Sustainability Institute
🍏 Ex-school/college teacher
⚠️ (Full disclosure!) Topic editor for The Journal of Open Source Software
Effmass
calculates the effective mass of electrons in a particular material We have publication processes to root out error for research that is done without a computer. Once you introduce a computer, the materials section in a typical scientific paper doesn’t come close to providing the information that you need to verify the results. Analysing complicated data by computer requires instructions consisting of script and code. Hence we need the code, and we need the data.
Victoria Stodden, Editor, Journal of the American Statistical Association
Public repo + citation file:
✔️ Straight forward to implement: Github + Citation File Format
✖️ No peer review
Code review with a colleague or community member:
✔️ A good option if you are nervous about releasing your code to the wild!
✔️ Several on-line initiatives if there is no-one in your immediate research circle
✖️ No citation
Executable paper (e.g. a Jupyter Notebook) as Supplementary Information:
✔️ Citeable
✖️ Code is usually not peer-reviewed
✖️ Limited to smaller pieces of code
✖️ Requires a corresponding full length article
Publishing in a traditional computational journal (e.g. Journal of computational electronics)
✔️ Citeable
✖️ Code is usually not necessarily peer-reviewed
✖️ Requires mapping your code to a written journal article (*is this a good use of resources?*)
"...the basic means of communicating scientific results hasn’t changed for 400 years. Papers may be posted online, but they’re still text and pictures on a page."
From The Scientific Paper Is Obsolete by James Somers
Publishing in a developer friendly journal (e.g. The Journal of Open Source Software, The Journal of Open Research Software)
✔️ A citeable journal publication
✔️ Code is peer-reviewed
✔️ Time efficient: The paper can be prepared in less than an hour
Publishing method | Example | Citation? | Software peer-review? | Journal publication? | Time-efficient? |
---|---|---|---|---|---|
Public repo + citation file | Citation File Format | ✔️ | ✖️ | ✖️ | ✔️ |
Community peer review | rOpenSci, pyOpensci | ✔️ | ✔️ | ✖️ | ✔️ |
Executable paper as Supplementary Information | Jupyter Notebook | ✔️ | ✖️ | ✔️ | ✔️ |
Software paper | Journal of Computational Electronics | ✔️ | ✖️ | ✔️ | ✖️ |
Software meta-paper | JOSS, JORS | ✔️ | ✔️ | ✔️ | ✔️ |
List of software journals: https://www.software.ac.uk/which-journals-should-i-publish-my-software
Yes it is. It doesn't need to be perfect. Sharing your poorly documented, untested, messy code is better than sharing no code. If you want to see an example of bad code that is being shared publicly, feel free to visit my Github (username: lucydot) 😬
The software must...
I used the review criteria can be used as a curriculum for self-directed learning
🎈 1000th paper published in 2020 🎈
✨ Code review can build confidence (SSI, pyOpenSci, rOpenSci....)
✨ Code publishing enables quantifiable credit for your work
✨ If you use software, cite it
✨ We are always looking for new JOSS reviewers
These slides will be made available on the event page.