Search Blogs

Thursday, July 4, 2024

Electronic Lab Notebooks

I'm a fairly big fan of electronic notebooks for doing code-based analysis. It is an easy way to prototype and walk through problems similiar to how we are taught in school. When transitioning to research type work, you can treat them more like electronic lab notebooks (ELN) where you do planning, analysis, and discussion all in one. For years I used Jupyter1 like many others. The beauty with Jupyter notebooks is the mature ecosystem and commuinty. However, when I switched to Julia language as my daily driver I also moved to Pluto.jl, which I think is better than Jupyter for doing write-ups and analysis that doesn't have any expensive computations.

I may have touched on Prof. John Kitchin [1] interesting work in emacs org-mode(i.e., scimax) in the past; maybe not. He is an interesting person, well at a least from reading his papers, content, and watching his videos since I do not know him personal nor have never meet him. I've been a long time user of emacs but have never gotten to the level of serious expert. I just prefer the default key-bindings and behavior of emacs compared to vim when working in the terminal. The thing that Prof. Kitchin seems to really make use of is org-mode which is a special writing mode(?) within emacs. Again, I've never really gravitated to org-mode as I prefer markdown and its extended flavors, but Prof. Kitchin does make it seem appealing.

Kitchin's ELN

Prof. Kitchin has put together his own environment within emacs org-mode called scimax2 [2]. It behaves similar to Jupyter or Pluto.jl notebooks in that you have mark-up text along with code-blocks that can be run and results displayed inline (i.e., below the code). In truth it's better and much more capable than just plain Jupyter and Pluto.jl notebooks. It reminds me a lot of literate programming packages in Julia with VSCode like: Weave.jl, Literate.jl, Franklin.jl, etc. Actually, it does feels like how I use Quarto. Although I don't think Quarto puts results from ran code blocks inline; need to check on that.

If your interested in giving Prof. Kitchin's scimax ELN setup a test drive, which I suggest you do, he has put together a github repo and a series of videos. There are also videos on just scimax. If you follow these closely you'll learn a lot on how to do digital science, even if you don't end up using scimax. Here is the first video on scimax-ELN:

Footnotes


  1. About a 6-months ago I came across marimo which looks to be more along the lines of what I like. The issue is that they seem to be moving more towards apps based off notebooks rather than just computing notebooks. 

  2. Scimax is more than just a custom emacs org-mode, it seems to be more of an environment setup for doing scientific computing. I do like it, but have come to use other tools that are just far more convient and better supported in terms of developers. Two mainstays I use now are VSCode and Quarto. I'm even very seriously considering porting this blog over to Quarto. 


References

[1] J.D. Kitchin, Kitchin Group, Carnegie Mellon University. https://kitchingroup.cheme.cmu.edu (accessed Jul. 8, 2024).

[2] J.D. Kitchin, "Scimax: Awesome editing for scientists and engineers", GitHub Repository. https://github.com/jkitchin/scimax (accessed Jul. 8, 2024).



Reuse and Attribution

No comments:

Post a Comment

Please refrain from using ad hominem attacks, profanity, slander, or any similar sentiment in your comments. Let's keep the discussion respectful and constructive.