You may have seen the publication of BOAT, the bulk open attribution tool that used a spreadsheet to enable you to generate open attribution/licensing statements for any collection of works. I’m now releasing another version of BOAT that does exactly the same thing, but now using a computational notebook instead of a spreadsheet to generate well-formed open attribution/licensing statements from a list of basic information about a collection of works.
Why another version of BOAT? While the spreadsheet version of BOAT certainly worked, I was looking to experiment with both computational notebooks — digital environments that enable you to publish and collaborate on rich computing and data projects — and to make it easier for people to use BOAT and modify it to accommodate new needs. Your definition of “easier” may depend on whether you feel more comfortable with spreadsheets or Jupyter notebooks. For me, both seem to be about the same level of complexity — the hardest part for both may be gathering information about your collection of works!
Because I’m new to Jupyter and computational notebooks, to move BOAT to this environment I also needed to rewrite BOAT’s logic in python, a programming language I have not used before. Happily, there’s a great demonstration of Jupyter notebooks that uses GitHub Pages for publication, which enabled me to focus my experiment in GitHub and also use GitHub’s Copilot to assist my first experiment in both Jupyter and python.
Explore Jupyter BOAT yourself, and try it out with your own collection of works.
Reflecting on this experiment, I feel like I have only scratched the surface of the ways that computational notebooks can enable rich sharing and collaboration. I hope to do more with them. Going further, I’m not sure I would have been able to complete this experiment without GitHub’s Copilot.
I may have been able to learn what I needed to know about Jupyter and python using basic web searches, but Copilot enabled me to ask questions right in the context of my code editor (Visual Studio Code), which made it both easier to ask the questions and easier to try out Copilot’s suggestions. Copilot was not flawless: I’m not an expert coder, but if I hadn’t known some of the right questions to ask, I might have fumbled around more than I did. At times, Copilot suggested solutions that were not actually possible, so I got in the habit of asking Copilot if it was sure about its suggestions. Sometimes it would revise its suggestions to clarify that they were not actually feasible in the given context.
Overall, the combination of Copilot, GitHub pages, and GitHub Actions made it possible for me to move from never having used Jupyter or python to publishing a working application more quickly than I would have been able to do in any other way I know.
I’d love to hear how Jupyter BOAT works for you, or your suggestions for how I can improve it or provide better guidance. Add an issue in the Jupyter BOAT GitHub repository or contact me here on my website.