m7011e

errors.Join ❤️ defer

A common gripe I’ve had with Go is that the mantra is “you should handle errors”, but at the same time the ergonomics of handling errors from (io.ReadCloser).Close() in a defer call is cumbersome. But fear no more! With the Go 1.20 release, there’s a nifty way to handle this with the new errors.Join.
Read more

Ignore Git LFS for some remotes

Here’s a neat little snippet I wrote to ignore Git LFS for specific remotes.
Read more

Upgrade Ubuntu Cosmic (18.10) to Focal (20.04)

There is no supported upgrade path from Ubuntu Cosmic to the new Focal release. I had an old server running Cosmic (that I picked 18.10 over 18.04 must surely been an mistake). So let’s upgrade Ubuntu to Focal the old school Debian way!
Read more

OOM killer bad

Sometimes (read: always) the Linux OOM killer doesn’t kill the offending process. Usually, this is because as the system is out of memory, it isn’t able to do the memory intensive task of scanning through all the processes. Ironic. I guess desktop-oriented distributions such as Ubuntu and Fedora tweaks the OOM killer to not do this. More minimal (or meta) distributions like Arch Linux and Gentoo doesn’t touch these settings.
Read more

Eduroam and wpa_supplicant

So, I simply use wpa_supplicant for WiFi and wpa_cli for configuration, and none of that bloated NetworkManager. It works great, but can be hard to get the configuration right for corporate and university networks. Here’s a simple configuration for the Eduroam network, that has been verified to work for LTU (Luleå University of Technology), and several airports in Sweden. Hopefully it also works at the other universities.
Read more

Course Project Showcase: Roaster Inc.

Roast.software home page. During the course Design of Dynamic Web Systems, M7011E at Luleå University of Technoloy, me and another classmate designed and developed a dynamic web system. The project contained both a web server and a dynamic Single Page Application (SPA) front-end. The web server was written in Go from scratch using only the Gorilla libraries for simplifying some parts of the routing. By writing most of the lower level web server logic, such as CSRF token handling, we learned a lot about web server development and the security practices of modern web applications.
Read more

Better fonts and more symbols with Gentoo

What do I need? It’s really annoying when viewing some random website and all you see is those boxes instead of the actual symbol. So the first thing to do is to install some fonts that support many code points, like Google’s Noto. There’s also alot of web pages that use Microsoft’s Corefonts. When it comes to the licensing, Google’s Noto is under the SIL Open Font License - which is open source - which is nice.
Read more

Creating the real Hyperboria in the North

Luleå, Sweden, is actually not that far away from Hyperborea. Note: I’m actually talking about the Cjdns mesh network, Hyperboria, not any mythical utopia.
Read more

Gentoo with DM-Crypt LUKS and EFI

What?! This article serves as somekind of meta instruction for installing Gentoo with DM-Crypt LUKS. It’s my preferred setup with a Gentoo with OpenRC and EFI running on an encrypted harddrive. The guide is heavily based upon Sakaki’s EFI Install Guide. If this is your first time installing Gentoo it’s probably a better idea to follow Sakaki’s EFI Install Guide, or follow the Gentoo’s Handbook
Read more