Lua 5.4: Tables and arrays in the C API

Tables lay the foundation for the more powerful aspects of the Lua language. This article covers the basics of tables, and by extension arrays, as well as some real-world use.

SSH hardening: an observation on the efficiency of changing ports

I often open an SSH port to the internet, largely when I need to access my devices remotely. I've taken numerous measures to harden my servers, but the biggest problem has always been DDOS protection. DDoSes attempting to brute-force passwords are tough out of luck thanks to password auth being disabled, but that doesn't prevent various botnets from trying. Especially over IPv4, it's not news that these bots scour the internet to look for open ports.

Lua 5.4: introduction to the C API

Lua constantly makes breaking changes to its own API, rapidly making most of the available Lua documentation obsolete. This is an update for Lua 5.4 aimed at beginners to the Lua API.

Fun with SSH

Three months ago, I decided to dig into self-hosted NAS solutions, because I wanted to free up a port, and I was tired of repeatedly asking "where tf did I put my disk now?" whenever I had to move it because laptops are painful. I switched to a desktop after my MSI gaming laptop (don't buy MSI gaming laptops, it'll break fast and you'll regret buying it; and yes, I'm still pissed about a three year old laptop breaking.

Network shares are weird

I've been messing around with NAS solutions for a couple weeks now, because why not? After a while of initially fucking around with various solutions, I settled on samba, because it's a major standard. It's easily supported, and supports integration with Linux Mint's integrated file explorer. That was actually a major factor when deciding on the protocol; if I can avoid messing with fstab and avoid manual mounting, I'd be really happy.

Microsoft account bullshittery

I some times play Minecraft. Exclusively on a private, and usually modded server with one other person. I randomly found out today, from a third party source that didn't even have the account migration as the core focus, that Minecraft is migrating to Microsoft accounts. To say that I don't like Microsoft is an understatement. I'll spare you the details, but that fact is part of the underlying theme. As a consequence, I'd rather not have a Microsoft account.

Shady development ordering

Tiny devlog on how I some times end up doing stuff in a really bad order when I have no idea what I'm doing.

Hugo on GitHub Pages

I used to base this site on a blog entry on another blog. The gist of it was, there's a source branch while the master branch contains the deployed page. A part of the reason I did this in the first place was because I had to. I had to deploy on a branch and I had no choice but to use the root directory. This seems to have changed since, meaning the docs/ folder on any (including the primary) branch can be used.

My notes on Neovim

So I decided to give Neovim another try (and specifically nvim-qt). Here's what happened. Note that I'm not looking for a "solution to my problem" or any crap like that. This is purely based on my observations and experience with Neovim. Also, obligatory disclaimer that this ended up being a stream of consciousness, and may therefore lack a bit of structure. I decided to give Neovim a try after reading up on Vim 9, specifically surrounding compatibility with neovim.

Vim Cheat Sheet

There's already a number of cheat sheets out there for Vim and Vimscript, but I rarely find one that works. Or at the very least an easily searchable list with specific keywords describing what a function does. So I made one. (Or at least made a reference that I'll add stuff to when I find neat tricks). This is largely meant to cover "lesser known" functions, but will cover others that may not be lesser known, purely because I felt like including it, or because it took embarassingly long for me to become aware of its existence.

Why I use Vim

There's arguably more than enough of these posts on the internet as it is, but after reading this story, I felt inspired. Unlike that though, this is based on my actual experiences rather than that of a fictional character. I've also had this post in mind for quite some time, so I figured it might just be about time to get it out there. Disclaimer: My sense of time is trash.

What I learned after using pihole for a week

In all fairness, it has been more than a week, but due to messing around with logging and accidentally clearing it a few times (whoops!), I didn't have a week worth of data until yesterday. For the past week, I've been tinkering a bit with Pi-hole, including working with stuff there's no official guides for. There's quite a few things I noticed while messing around with Pi-hole, so I figured I'd write a post about it.

Setting up SSL with pihole, without a FQDN

Introduction This post aims to present an alternative way to generate SSL certificates for your pihole web interface. This is specifically targeted at people without a FQDN (Fully Qualified Domain Name), regardless of whether pihole is hosted locally or on a VPS. Note that this has only tested on a locally hosted pihole instance, running on a Raspberry Pi 3B+. As usual, apply common sense before running commands from strangers on the internet - just because it worked on my system, doesn't necessarily mean it'll work in general.

Linux does not boot past the splash screen with a NVIDIA graphics card

Tested on Linux Mint 19.3 For some reason I will never be able to comprehend, the Ubuntu(/derivative) installer decides to go against the recommended option by its driver manager (the proprietary nvidia drivers, even if the proprietary checkbox is clicked) and installs nouveau. This might be a great driver on some systems, but personally? I've never gotten it to work. The installer's choice to install nouveau over the nvidia drivers therefore causes extra work for me after I installed it.

Why I'm leaving Stack Exchange

Introduction For those of you who haven't paid attention to the recent mess on Stack Exchange, there's quite a few things going on. The current issues started with SE firing a moderator over a change to the CoC (Code of Conduct) that enforced correct pronoun use. SE has stated it was a violation of the (at the time) current CoC, but they're still unwilling to tell the moderator in question what she did.

Specific package updates on Raspberry Pi/Raspbian

The Raspbian package repos are, in my experience, extremely slow with updates. Ninja pre-dates version one, Python3 is still stuck on 3.5.2, and a lot of other packages are outdated. Installing from source isn't always easy, because they get new dependencies, and suddenly you have accidentally missing packages and compiling fails. So here's a list of some install guides for various tools. Note This is currently targeting a version of Raspbian that doesn't support 64 bit.

Multiple GitHub accounts on one computer

Short guide on using multiple GitHub accounts on one computer in a way that doesn't require manual account changing