uni'
A mono-repo containing code I’ve written or studied for self-education purposes.
Contents #
Currently, the contents of this mono-repo are broken down into the following top-level concerns:
- Algorithms - Code for Leetcode, mostly.
- Books - Code for all kinds of practical exercises in various great textbooks. Homework, practicals, exercises, labs, assignments, etc.
- Concurrency - Code written to learn how to solve concurrency problems/exercises using code.
- Databases - SQL, mostly.
- Data Structures - Implementations of interesting data structures, for example a heap.
- Docs - Static-site documentation for monorepo. Served at https://thundergolfer.com/uni, or viewable locally (see readme instructions within folder).
- Languages - Code for learning the details of programming languages (C, C++, Java, Python, Rust).
- Machine Learning - H Y P E
- Performance - Code for learning about how certain programs change in system resource usage under load.
- Operating Systems - Code written to learn how UNIX (Linux, macOS) operating systems actually work.
- Optimization - Code written to learn how to solve optimization problems using code, particularly using the kinds of optimization algorithms used in Machine Learning.
- third_party - Code and configuration for managing third-party code/packages in Bazel, and not of interest in of itself.
- Tools - Tooling code, scripts, and configuration, serving the repository’s needs and not of interest in of itself.
Setup #
Prerequisites #
- Nix - Provide a hermetic developer environment. Runs properly on my machine, runs properly on everyone else’s. At least, that’s the idea.
- Direnv - Integrate with Nix’s
nix-shell
to provide hermetic developer environment. lorri
- Bazel - build everything fast, and correctly, no matter the language.
zstd
- Required during install of Bazel Python toolchain on OSX.
Importantly, the following components are included in the repo’s Nix environment specification:
- Python 3
- Racket lang, used in
books/sicp
Development #
Build #
bazel build //...
Test #
bazel test //...