Rust
etc!
- Lib.rs — home for Rust crates // Lib.rs
- The Scoped Task trilemma
- The Pin type
- Revisiting a 'smaller Rust'
- Speed of Rust vs C
- flamegraph-rs/flamegraph: Easy flamegraphs for Rust projects and everything else, without Perl or pipes <3
- rayon-rs/rayon: Rayon: A data parallelism library for Rust
- Error Handling in a Correctness-Critical Rust Project | sled-rs.github.io
- Writing an OS in Rust
- C stdlib isn’t threadsafe and even safe Rust didn’t save us | EdgeDB Blog
Blogs
Inanna Malick - recursion.wtf/
Learning resources
Learn Rust by implementing linked lists
Memory management
Traits
Peeking inside Trait Objects | Huon on the internet
Derive
Understanding #[derive(Clone)] in Rust - Stegosaurus Dormant
Playgrounds
Linear algebra - for CV, ML, etc
Rust for computer vision, linear algebra, and tensors : r/rust
Async
Async from scratch 1: What's in a Future, anyway? | natkr's ramblings
🥰 How using async Rust ought to feel - wg-async
compare: Async: What is blocking? – Alice Ryhl vs runtime: tight loops should be preemptible · Issue #10958 · golang/go to get a sense of how Rust async and Go async differ
Making Async Rust Reliable - Tyler Mandry
For web
Are we web yet? Yes, and it's freaking fast!
- WebAssembly » AWWY?
- Web Frameworks » AWWY?
- examples:
Rust needs a web framework for lazy developers | nicole@web
Rust + WASM
Introduction - Rust and WebAssembly
Go
- Francesc Campoy Flores
- rakyll.org
- Go by Example
- Staticcheck
- Go structs are copied on assignment (and other things about Go I'd missed)
- Common Go Mistakes - 100 Go Mistakes and How to Avoid Them
- Some Go web dev notes
- Learning Go in 2024; From Beginner to Senior
- Checking linearizability in Go | notes.eatonphil.com
- Comprehensive Guide to Testing in Go | The GoLand Blog
Modules
Go Modules by example: submodules
Concurrency
Google I/O 2012 - Go Concurrency Patterns - YouTube
Playgrounds
Machine learning
Building LLM-powered applications in Go - The Go Programming Language
Build tool
How to use conditional compilation with the go build tool | Dave Cheney
Python
- Andrew Montalenti’s blog: Python posts
- MIT6.100L Intro to CS and Programming Using Python
- FastHTML - Modern web applications in pure Python
- Making Python Less Random — Andrew Healey
- How variables work in Python
- Resource management and generators in Python: samgeo.codes
- nkmk.me (English/Japanese for Python content)
- The hidden performance overhead of Python C extensions
- why Python for ML: Why is Python so used in the machine learning?
- styleguide | Style guides for Google-originated open-source projects
- Measuring the memory usage of a Pandas DataFrame
- Python: Calm Code
Efficient (faster) Python
Using Alpine can make Python Docker builds 50× slower
- nb: “An update: PEP 656 and related infrastructure mean pip and PyPI now support wheels for the musl C library, and therefore for Alpine. Build tools like cibuildwheel have added support for these, and Alpine-compatible wheels have become much more widely available, including for many scientific Python libraries, including matplotlib, Pandas, and NumPy. Not all packages build them, however, and I’m still personally wary of using musl given past bad experiences with bugs.”
How vectorization speeds up your Python code
Massive memory overhead: Numbers in Python and how NumPy helps
Articles: Speed up your data science and scientific computing code
Clinging to memory: how Python function calls can increase memory use
Estimating and modeling memory requirements for data processing
When your data doesn’t fit in memory: the basic techniques
Processing large JSON files in Python without running out of memory
NumPy views: saving memory, leaking memory, and subtle bugs
The mmap() copy-on-write trick: reducing memory usage of array copies
The best way to find performance bottlenecks: observing production
Installing and managing versions, libraries, packages
- Why you should use `python -m pip`
- Installing libraries and packages - Advanced Research Computing
- Explaining why the Python installation process is such a mess
- Python Packaging, One Year Later: A Look Back at 2023 in Python Packaging | Chris Warrick
- discussion in hn thread: Python Packaging, One Year Later: A Look Back at 2023 in Python Packaging | Hacker News
- Poetry vs. Docker caching: Fight!
- 🎗 Python built-in
venv
andpip3
for version and package management (the most basic method)->
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt # installs all packages in requirements.txt
pip install matplotlib
pip freeze > requirements.txt
deactivate
- live and learn! an example of juggling python packages in a prod environment: The Case of the Broken Lambda | ★❤✰ Vicki Boykis ★❤✰
- Python Standalone Builds — python-build-standalone documentation
Testing
- Pytest quick start/refresher: getting started with pytest (beginner - intermediate) anthony explains #518 - YouTube
- resolve issue with pytest -s not displaying print statements in test output (useful for debugging, esp if you’re working with someone else’s tests)
Packaging your code
- Using a src directory for a Python package : r/learnpython
- the above references: Packaging a python library | ionel's codelog
Overriding
-
overriding - Python: multiplication override - Stack Overflow
-
repr: python - How to print instances of a class using print()? - Stack Overflow
Python viz
A Grammar of Graphics for Python – plotnine 0.13.6
Python tooling
- Written in Rust: Astral: Next-gen Python tooling
- uv: Python packaging in Rust
- version management per project, works with PyTorch: Rye
- PyTrace - Time Travel Debugger for Python
Apps
Docker & Python
Speeding up Docker builds in CI with BuildKit
Don’t leak your Docker image’s build secrets
Shrinking your Python application’s Docker image: an overview
Zig
… aspirational, haven’t tried zig yet but want to
Why Zig When There is Already C++, D, and Rust? ⚡ Zig Programming Language
Others’ thoughts on programming languages
Programming Languages That Blew My Mind
Typescript
Becoming a TypeScript expert: The essential guide | Stackademic