Pete Bachant
@petebachant
RSE @caltech.edu Bicycles, fluid dynamics, Python, open source, open science, reproducibility.
Calkit Chrome extension just dropped. Collect references and notes directly into a BibTeX file in a GitHub repo from journal websites and arXiv, sync figures and results into Overleaf, and review DVC-tracked files and LaTeX diffs directly on GitHub. #opensource #openscience #reproducibility
Moving steadily towards a free, open-source, vertically-integrated research platform, calkit.io now has a project-based reference manager that can sync bidirectionally with Zotero. #openscience #opensource #reproducibility
New feature on calkit.io: attach evidence to answers to research questions and quickly verify that they're still up-to-date given their provenance. Example project: calkit.io/calkit/examp... #reproducibility #openscience #opensource
If your collaborators don't want to learn Git/GitHub but you don't want to silo paper writing away from your code and data, calkit.io now has a LaTeX editor and WASM compiler :) #opensource #openscience #reproducibility
@plos.org's concept of the "knowledge stack" in science is interesting from an architectural perspective. Is any layer truly valuable on its own? I'd argue the full stack is the most valuable unit, which means you should be shipping the whole thing with every study. #openscience #opensource
The Calkit VS Code extension now allows viewing interactive @plotly.com figures, and includes a gallery view.
Made a little poster to "sell" my free software #opensource #openscience #reproducibility
New feature on calkit.io: Comment on publication PDFs and create GitHub issues from them. This was inspired by the process I used to get my PhD thesis done on time. Every comment from my advisor became a GitHub issue and I calculated the necessary daily "velocity" working backward from the deadline.
Quick demo of something I've been working on: Execute some Python, R, Julia, MATLAB, and LaTeX scripts/notebooks/docs and they automatically become a DVC pipeline (DAG). #opensource #reproducibility #datascience
Check out this cool CFD simulation I did with my "in house code." Just kidding. I faked this in 5 seconds using AI. Are journals requiring source code and reproducibility checks for all submissions yet? #openscience #cfd #aislop
When I was in grad school and started learning software engineering, I got midway between these. I had multiple instead of one pipeline to run to build each paper but there was no environment management or "staleness detection" for intermediate outputs. Working on making those easy/obvious.
Don't be ashamed of "messy" code. If it works, it's good. Share it. #openscience #reproducibility
Reading through some slides from 2013 titled "how to succeed in reproducible research without really trying". It's true we have all the tools needed for researchers to build their own reproducible workflows, but still many do not. Maybe the tools are still too hard to learn and use!
Graphic design is not my passion. Anyone want to collaborate on an infographic to explain the value of fully automating and version controlling research projects? docs.google.com/drawings/d/1... #openscience #reproducibility #automation
When you describe the computational methods in your paper without sharing the code and data: #openscience #reproducibility
"One button" reproducibility should be the standard #openscience #reproducibility
Calkit now has its own pipeline syntax that forces you to define an environment for every stage, but manages those environments for you automatically. No more pip installs, Docker builds, etc. Your project will just be reproducible. Docs: docs.calkit.org/pipeline/ #reproducibility #openscience
Put together a little GUI app to help Windows users get set up to do open-source scientific computing, since that can be hard (though Windows has improved a lot over the years) 🔗 github.com/calkit/calki... #openscience #python #reproducibility
I thought MATLAB was supposed to be a convenient self-contained computational environment, but it requires that you manually install additional dependencies.
This sort of data availability statement is pretty common. I understand not archiving GB or even TB of simulation data, but why not provide the case setups and scripts by default? Is it because the authors assume they aren't useful? Embarrassed by sloppy code? Too much effort to upload?
The critical event that caused me to abandon MATLAB and get into Python was a license server failure at my university back in 2013. I am now trying to download MATLAB because a collaborator is using it and here's the result...
🆕 Importing part of one project's dataset(s) into another with Calkit. I wanted this feature because I have one project that ingests data from an API every day, and another that only needs a very specific subset. This method retains provenance and deduplicates cloud storage. #opendata
I wanted to see weekly distributions of power and heart rate from cycling and running, but Strava doesn't show those, so I put together a little project. As mentioned in my last post, it was my first DuckDB experience 👍 First Polars experience too 👍 🔗 calkit.io/petebachant/strava-analysis
First time really using DuckDB and I'm impressed. Querying and joining 1.7M rows from JSON and Parquet files (my own Strava time series data) in SQL and it feels instantaneous.
Just added a basic #reproducibility check for projects on calkit.io. It doesn't even use AI 😜 Also available via the CLI with `calkit check repro`