Setting up a NixOS server in UpCloud
How to set up a NixOS server in UpCloud
This is not about Nix, but more of a tutorial on how I set up a server using UpCloud. I decided to document the steps I took to create a NixOS playground for myself.
Requirements
- UpCloud account
- SSH keys for secure access
- At least some Linux experience
Why UpCloud
Honestly, I just checked European Alternatives and chose UpCloud, because it’s Finnish.
Neovim - Customizable Helix alternative
This a continuation to my last article about Helix.
Being inspired, but I still came back
My brief run with Helix is coming to an end for now. After using Helix for around two weeks I started having an urge to bring my Neovim config up to speed instead of launching Helix.
What I gained from trying Helix was some much-needed perspective and joy to delve into my Neovim configuration. Instead of making large changes, I mostly went through my config again trying to discover things that I had missed or forgotten about.
Helix - Preconfigured Neovim alternative
Investigation time
Helix has been on my mind for a long time, but I never got around to it. It is time to fix that.
I’m doing this comparison between Helix and Neovim, which has been my editor of choice for a long time.
This document is WIP, so it might not be completely factually correct. I’m writing this while learning.
Should you?
Yes, even if you are a hardcore Vimmer I think you should try Helix.
When NetworkManager takes over
ProtonVPN kinda broke my WireGuard config and took down dnsmasq
It’s always DNS. Well, kinda, but not really.
Symptoms
My WireGuard connection was working, but I wasn’t able to access my services.
# Everything was normal both on the client and on the server
sudo wg show
Hopping on to the server, I quickly discovered that dnsmasq wasn’t running and would not start.
sudo systemctl restart dnsmasq.service
Job for dnsmasq.service failed because the control process exited with error code.
See "systemctl status dnsmasq.service" and "journalctl -xeu dnsmasq.service" for details.
# Relevant part of journalctl
journalctl -xeu dnsmasq.service
systemd-helper[6549]: dnsmasq: unknown interface wg0
dnsmasq[6549]: unknown interface wg0
dnsmasq[6549]: FAILED to start up
Finding out the issue
For reference, my server is running Ubuntu 24.04.
How I went from Debian/Gnome to Arch/Hyrpland
Going for Arch and Hyprland
It was time to do a fresh Linux install, not because of any specific reasons, but beause it was time to try something new.
Why
My previous setup ran Debian 12 with Gnome and it had served me well for around five months.
I had made Gnome window managerish by using custom shortcuts with run or raise scripts. First by using jumpapp and then by writing my own with ChatGPT.
Performance testing an IntelliJ plugin with JMH
Performance testing Fuzzier
The time has finally come. I want to create some performance metrics for Fuzzier.
Fuzzier is a file finder plugin for JetBrains editors inspired by Telescope for Nvim that I've been developing for a little over a year now.
First, I need a plan. Fuzzier is written in Kotlin and I'm a Java developer, so I'll be leaning into the tools that I know.
IdeaVim ideas and explanation
Configuring IdeaVim to be awesome
Why do I feel this is important?
Do you really know how good you can make IntelliJ using vim bindings and the IdeaVim plugin? It took me quite a long time before I understood what it actually was capable of.
I really enjoy NeoVim, but being mainly a Java developer it still cannot beat IntelliJ in my opinion. Although I do miss the fact that the terminal is a buffer in NeoVim.
Refactoring a large part of an IntelliJ plugin
Refactoring Fuzzier score calculation
Why would I do that?
I've been working with Fuzzier for over four months now, and it is getting closer to being at 1.0/feature ready. With good amount of other things and QoL changes done since its inception.
The file path and search string comparison/score calculation is one likely the most important feature of the plugin. Having the ability to tweak and modify the search results, so it works the best for each of us is important when using a file finder.
Migrating a local LiteDB/C# application to SQLite/Python
Migrating my LAN page to Python
I've been using LiteDB and a C# backend to serve a local web page, where I've been keeping track of the weight of our three cats and two dogs. After migrating the backend to docker, I've been having issues that the database in not being updated correctly. The file is saved on the pi and volume shared to the container, but the changes are not being propagated to the actual file on the pi. Instead of finding out what is wrong and wasting time on that, I'd like to skip a few steps and move on from C#. It is not the best for the pi and was mostly an interesting exercise at the time.
An article about creating a relatively simple IntelliJ IDEA plugin
Creating an IntelliJ Plugin
What's missing from IntelliJ
Lately I've been checking out some videos from The Primeagen and was inspired to get back into vim. Although I'm not ready to give up IntelliJ IDEA, I set up the IdeaVim plugin two months ago and I'm still loving it.
I was curious about NeoVim and decided to follow The Primeagen's video 0 to LSP : Neovim RC From Scratch. I absolutely loved how the telescope search works and it became really clear that the double shift (or CTRL + SHIFT + n) file search in IntelliJ does not support fuzzy search nor include the project file path in the search. After spending almost five minutes to check the marketplace for a fuzzy search plugin, I already knew the answer; I wanted to make a plugin that feels and looks more like Telescope for Nvim.