I recently realized that my web server was still on Debian Buster, 2 whole major versions behind the latest Debian version. Normally this kind of thing wouldn’t matter to me except that my matrix-synapse server was unable to federate with matrix synapse servers running newer versions. I normally run rolling release distributions on my local machines (I use Void btw) and it had been a long time since I tried this kind of upgrade. I went in hopeful that it would be straightforward.
Getting CUDA toolkit installed on Void Linux
This is a short post (mainly for myself) to remember how I got CUDA installed on Void Linux. These steps are as follows:
- Download the installation files: Go to the CUDA toolkit installation website. Select Linux->x86_64->Debian->11->runfile (local)
- Set executable permission:
chmod +x ./cuda_version.run - Install using the correct flags:
sudo ./cuda_11.8.0_520.61.05_linux.run --silent --override --toolkit --no-opengl-libs --tmpdir=/home/aselimov/down/tmp - Add to path: Build should now be installed at /usr/local/cuda-version. Add the following to your bashrc or zshrc:
export PATH="$PATH:/usr/local/cuda-version/bin" export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda-version/lib64"
The reason I had to add the --tmpdir command was because I was getting an error message about the default tmp directory not having enough space.
Hopefully this helps someone else out!
Solutions to problems with Java Development
I recently ran into some problems with java development. One problem was neovim specific but the other was an issue with gradle. I wanted to document these in case any one else has similar problems as it took me a little bit of time to figure out.
Problem 1: jdtls exiting with status code 13
I use jdtls through Mason with the built in nvim LSP and was recently having an issue where jdtls would immediately crash when opening a file. The solution to this problem was just deleting the cache for jdtls:
Rust is pretty good (Short thoughts on Rust)
In my current position I’ve had to swap to full time Rust development. After about 2 months of full time Rust development I think I’ll likely be developing projects in Rust in the future instead of C++ when performance is important. My reasons for this are primarily:
- Just Works™ build system and crates.io makes drawing in libraries painless
- Guaranteed memory safety is pretty nice
- Syntax is much cleaner and succinct than C++, with lots of nice syntax sugar to sweeten the package
- Easily integrable with C (and therefore C++ with some massaging)
- Proc macros are pretty nice as well
- Built-in test framework
I think that point 3 is potentially the biggest factor for me as the C++ modern syntax is not what I would consider clean, especially if you are trying to use a more functional programming style. A simple example highlighting the difference:
My nvim/tmux workflow
At my previous employment I was forced to use a windows system. Although not ideal, I was able to continue using my Linux terminal workflows by heavily utilizing Windows Subsystem for Linux. As part of this I had to get comfortable with integrating tmux into my workflow as I didn’t care to learn the Windows Terminal options for terminal multiplexing. I don’t need tmux quite as much anymore since my current employer allows me run Linux on my development machine, but I still use it when remoting into my work desktop via ssh. Hopefully this can be of use in improving the efficiency of others that depend on terminal based workflows.