Over-engineered or sanely-reproducible? Naching here seems “over”. Wouldn’t the ‘normal’ approach just be a Bash script? If so, Nix is more or less a DSL atop Bash.
When I was writing my undergrad dissertation 20 years ago, the recommended approach was a combination of LaTeX and make. Data processing, image format conversion, and so on were all driven by make. The main difference here is Nix allowing you to recreate the environment for the experiments.
Although it is quite nice to see this very reproducible thesis, I would argue that it is indeed over-engineered. Typically, when a thesis is deposited, it is the PDF that becomes the version of record (and the only file that anyone would read). Therefore, it would be perfectly acceptable to the target audience to build a thesis without nix, and going beyond “perfectly acceptable” is over-engineering in my book.
I built my thesis without a bash script. I instead used MiKTeX’s GUI to edit and compile my thesis.
Nice! Automating and over-engineering your thesis process is pretty much a rite of passage =P
(Mine is at https://github.com/luizirber/phd, it was shortly after I started with Nix, so it is based around conda instead. I ended up adding github actions to automate releases for generating the final PDF, and also depositing new versions to Zenodo for archival)
Guess PhD students are older and less bound by this 6 month deadline :P I surely didn’t do it for my (non-PhD) thesis. It was 2009/10 and it was a pretty standard latex build that I had running on either Ubuntu or Windows.The in progress state not living long enough to even think about a distro upgrade helps.
Over-engineered or sanely-reproducible? Naching here seems “over”. Wouldn’t the ‘normal’ approach just be a Bash script? If so, Nix is more or less a DSL atop Bash.
When I was writing my undergrad dissertation 20 years ago, the recommended approach was a combination of LaTeX and make. Data processing, image format conversion, and so on were all driven by make. The main difference here is Nix allowing you to recreate the environment for the experiments.
Not just the environment, but you can (and should) do the full build pipeline with your derivation being a PDF file in
result/
.Nothing*
Although it is quite nice to see this very reproducible thesis, I would argue that it is indeed over-engineered. Typically, when a thesis is deposited, it is the PDF that becomes the version of record (and the only file that anyone would read). Therefore, it would be perfectly acceptable to the target audience to build a thesis without nix, and going beyond “perfectly acceptable” is over-engineering in my book.
I built my thesis without a bash script. I instead used MiKTeX’s GUI to edit and compile my thesis.
Nice! Automating and over-engineering your thesis process is pretty much a rite of passage =P
(Mine is at https://github.com/luizirber/phd, it was shortly after I started with Nix, so it is based around conda instead. I ended up adding github actions to automate releases for generating the final PDF, and also depositing new versions to Zenodo for archival)
Guess PhD students are older and less bound by this 6 month deadline :P I surely didn’t do it for my (non-PhD) thesis. It was 2009/10 and it was a pretty standard latex build that I had running on either Ubuntu or Windows.The in progress state not living long enough to even think about a distro upgrade helps.
It turned out that overengineering my thesis document was the only thing in my PhD that made me in employable.