Project Soon

I have made too many projects in my lifetime, and thought that a repository is not enough to handle support for them. I also believe that to be able to dump my mind from time to time keeps myself on track. I make projects because I like to help people with problems that may or may not be an issue, now or in the future.

Hugo

Before I created this site I contemplated if I would do so at all. I have been using Discord for years, and it has been working fine. However, there are three reasons why I needed to move away from it. First being that Discord is a proprietary and centralized platform which can either become completely locked behind subscription or closed down at short time notice. Second is that while I invite only certain people to my server, I have heard some voiced opinion on invites from people I has of yet get to known close enough to feel comfortable to invite.

OpenSpeedTest

OpenSpeedTest is basically a speed test in your web browser you can run locally. It is used most commonly to verify the practical throughput from one host to another. Though, it is far from perfect, and you cannot use it for any host or service. For that it is better to use iperf3. But it works for any device having a web browser. While using it I found two issues that made the result quite interesting and one weary on both client and server configs.

Ansible: VyOS v2

I mentioned over a year ago about the collection in Ansible I used for VyOS. I had some issues with it regarding differences and performance, so I had to resolve to some odd workaround which was ugly(clear config path and recreate from scratch, which was very slow on big configs), but quite easy to use directly with VyOS. I later on made some custom templates for it to reduce boilerplate and coupling.

What now

A couple of days ago I found out by my teacher that they skipped the next round of opposition(I think that’s how you translate it), so I have to start all over in the next course starting next week. While they will be more strict this time around, needing to be more specific regarding the research question, I can still reuse most of my current work. Hopefully I can even finish writing earlier due to this, but I have no idea what the future holds.

Block Color Config

I happened to see a boosted post on Mastodon, where someone mentioned that most programs handle their configs badly, basically generating full configs, maybe with commented out options and defaults, which upon updates will be rendered worthless if they change. I responded to how I handle my configs, and suggested an alternative solution, which I implemented. The first version of PixelMap 0.x had all configs statically added to the program, meaning they cannot be changed after the program is compiled.

What happened

I got sick for a couple of weeks, was lazy and had a hard time getting into the mood to work on it at all. I think I just recently got over it, but it is definitely a struggle to keep on going on this, especially as I’m doing it alone. But what I’ve done the last couple of weeks is to fix a couple of issues my tutor told me, add 1-99 percentile (or something similar at least), and contemplate the research question.

Ansible: Release

I forgot to post the above, so a double post! 😄 I released parts of my working Ansible infrastructure, hopefully it can be used and maybe some people want to point out anything that might be problematic: https://github.com/McTwist/ansible-homelab/ This solidifies my integration and allows me to version track my infrastructure. However, I still cannot store my configs, because releasing them would mean I publicize my whole network infrastructure, which would be pretty bad.

Ansible: PHP

As previously mentioned, I created a couple of roles and a playbook to bundle them together. For the last 2 weeks I have been fixing bugs, but it is currently in a state where it is stable to even be released. While I do think that the coupling between the roles might be too tight, I need to split two roles into more sub-roles for it to work properly. One of the roles, php-fpm, is used to handle the PHP part of the server.

Reverse Proxy

A reverse proxy is a service which a client can connect to and it’ll forward all connections to respective service, usually internally. This is mostly used for HTTP requests, where the reverse proxy will handle the default ports, certificates and hosts to keep track on. All requests are then forwarded to an internal web server, or any other server that supports HTTP. It separates the direct access to services and makes it possible for one IP to be used with several services.

Syncthing

Syncthing, a distributed file sharing service. Usually you just fire it up, input the ID from another device and suddenly they are connected and can share folders, files being transferred like any other cloud service. However, each device still need to find each other, so a discovery server is necessary, which several are provided by default. Then comes the transfer of the files, if you are on the same network, they can figure this out and connect automatically.