General push I've had a fun couple weeks. To make a painfully long story short, I have a Raspberry Pi that exposes an SSH port to the internet. Behind the scenes, there's several layers of hardening that I'm not gonna go too much into. However, a core component in general protection has been fail2ban; a staple in my defenses, that used to do the trick. As of late, however, and particularly after upgrading to the master branch, it's been flaky, particularly around clear brute-force attempts.
It's been a while, but I'm still alive. Unforeseen consequences (lots to do outside the realm of programming for fun, stuck on a Windows computer that I have to keep Windows because uni, ...) over the past couple months killed throughput in several areas, as well as proper bookkeeping. Auto-pairs Documentation received a bit of an overhaul, and got extended to include rust-related troubleshooting. Also added a couple config variables for better control of when to trigger pair deletion, wrt.
Preface This is the first post in a series aimed at using the Lua 5.4 C API, because no other equivalent resources seem to exist at the time of writing, and the official documentation is exhausting to read without previous understanding of how the C API works. Lua's continued breaking changes doesn't make documenting it easy, for anyone. Including the Lua project itself. Lua's official book (Programming In Lua) is already a version out of date, and has been out of date for a couple years.
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.
Exam period has landed, so throughput is reduced for a while. Done on the 21st this month. Webdev I noticed hugo apparently didn't like titles along the lines of Devlog #1234, and converted these to the URL devlog-#1234. At least my browser didn't like this at all, and failed to find the page properly. Which makes sense; # should never really be a part of the URL, so I'm not sure what Hugo was doing here.
Upm I did some more work on upm, particularly in the realm of Lua. Largely, I started getting into arguments and return values from the C API. It's a nasty and complex system to deal with, but whatever. I've considered abstracting some Lua helpers away into stc, but haven't yet decided on what, if anything. There's now a basic network test API for me to continue building on when I get that far.
I've once again revised the format of my devlogs. Instead of using a single post that I edit, I'm going to publish individual posts for some range of time:tm:. What that range of time is, is going vary. Some times it could be a week, while other times, it could be a month. In either case, I hope this is easier to follow. Acacia Following the heavy development at the start of April, stuff has started slowing down.
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.
02.01.2022 Genesis Spent time trying to figure out how I can make the texture atlas expandable. This has to be done in a way that lets me expand past whatever limits I currently have, based on some guesswork surrounding future sizes. Aside expanding the base game if necessary, I'd also like to open for modding. Based on some light tinkering and general research, I belive a minecraft-like system is optimal.
TL;DR: I'm going to be keeping a public devlog for my open-source repositories, within reason. Introduction Note that this intro excludes links to projects because I can't be arsed to get them. There's a lot of projects, and they're all linked on the front page of this blog for your clicking, then pointing and laughing-convenience :p I have a few projects that've been struggling. This is largely due to me being in way over my head, and losing some "sane infrastructure" in the process.
25.12.2021 auto-pairs Fixed several annoyances, and expanded tests, as a part of responding to #55. Still not sure what m and ms really do. I'd assume the s indicates "start", considering it checks the line prior to the cursor, but I don't really get it. Also not sure how it correlates to open == close, and the if statement does introduce a new question of how the close check relates to balancing.
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.
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.
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.
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.
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.
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.
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.
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.
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.