AI 1 · Artix 2 · Css 2 · Git 3 · Hugo 2 · Java 1 · Javascript 1 · Linux 2 · LLMs 1 · Matrix 1 · Neovim 2 · Opinions 2 · Rust 1 · Self-Host 3 · Software Development 6 · Tmux 1 · Void Linux 1 · Web Design 3 ·

Misc thoughts on AI

AI has become a very useful tool for me

If you know me personally, you know that I’ve been pretty slow on the LLM/GenAI uptake. At this point, however, if you are a software developer that isn’t integrating GenAI tools into your workflow I think you are probably going to be left behind. I’ve been playing around with these tools a lot more lately, and I’ve come to a few conclusions.

[Read more]

The folly of Debian major version upgrades

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.

[Read more]

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:

  1. Download the installation files: Go to the CUDA toolkit installation website. Select Linux->x86_64->Debian->11->runfile (local)
  2. Set executable permission: chmod +x ./cuda_version.run
  3. 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
    
  4. 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!

[Read more]

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:

[Read more]

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:

  1. Just Works™ build system and crates.io makes drawing in libraries painless
  2. Guaranteed memory safety is pretty nice
  3. Syntax is much cleaner and succinct than C++, with lots of nice syntax sugar to sweeten the package
  4. Easily integrable with C (and therefore C++ with some massaging)
  5. Proc macros are pretty nice as well
  6. 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:

[Read more]