sudo make ./

This blog is about my stuff; my projects; my hobby. I build software in my freetime and right here, I am going to document each project and problem.

Believe it or not, my Keyboard finally arrived and I eventually got around to configure it... So this is the very first Post written entirely with said Keyboard. However, what is most annoying for me currently, and simultaneously is the reason why this blog post might not be as long as some others (especially the last one) is that typing on this thing still requires lots of focus and nonetheless is quite slow. In the beginning, I was typing at roughly 5-10 WPM (Words Per Minute). During most of my freetime, I practiced and quickly got to the 35 WPM milestone. However, progress stalled after that. Getting to where I am now (about 50 WPM) took way more time then going the first 25 WPM in speed. Unfortunately, even 50 WPM is still a long way from my average 100 WPM when typing on a standard German QWERTZ Keyboard. The ergonomics, however, do feel significantly better, with my wrist pain completely disappearing (as advertised). I guess this is because of the way more natural angle my wrists now sit in when I'm in the base-typing position. It might also be related to the full switch to colemak as my main keyboard layout for this device. But this choice was less for ergonomics and more for convinience, since I already learned to type with 10 fingers on colemak but not QWERTZ.

Curious about my final layout and configuration? Take a look at my github page or use the following link to get directy to the most recent version: vial configuration

And that's it already!

CUL8TR!

While listening to quite a few Tech-Podcasts, I have found there to be a recurring argument about whether trying to optimize a certain way of getting things done is comparable with just getting the things done. And I think what each and every host always settled on was the following conclusion: No, it's very much not productive, but it's definitely fun and we will continue to do so.

So for me, especially since I do not yet have a job where I genuinely need to be productive regularly (not considering “school” as a job; despite it officially sort of counting as one), I can easily justify doing some obsessive optimization / configuration for quite a while before even I notice it might be unnecessary.

Even though it might not have been the initial instance this has happened, the first time I have noticed that I was hyper-fixating on optimizing specific work flows was when I wrote my own Neovim configuration after having used standard LunarVim and then AstroNvim for a long while. This post, however, is not going to be going over this instance. Instead, I'm going to be writing about the most recent try for efficiency.

Read more...

Unfortunately, I am not talking about the entirety of the internet, as there is no way for me to measure how bad that one is really, yet. But, where I live in Germany (since it's German countryside™), we have very poor internet. You might be thinking 50 Mbit/s or even 25 Mbit/s. And, by contract, that's what it's supposed to be! Most of the time, we are guaranteed 50 Mbit/s. So, what do you guess, how much is actually usable on some days (some are better, some worse, I have not yet found out why that is the case...)?

10 Mbit/s? 5 Mbit/s?? 3Mbit/s???

Nope, a solid ~0.5 Mbit/s. YES! A solid 500 kilobytes per second! That's only about 10 times faster than ancient dial-up modems. As one could guess, something must be wrong here. But again, as I've said before, I cannot tell on which days the speeds are crawling and on which they are oozing and shuffling in place. How could I even begin to find that out???

Read more...

Development of my own calculator / simple programming language I called calcx was going very well up until this point... And now, I feel like I am simply stuck. I have implemented working systems for handling units and calculations, etc. The problem I am facing however, is that when I run a command, I parse it all into different tokens and already convert them to their respective numbers with units. This, however, results in me loosing the information which I need for conversion. If I say I want to convert to Milli seconds, I do not mean to convert to 0.001 seconds... I genuinely cannot think of a good solution for this problem. I have tried some possibilities, but they are all very clumsy and very much not elegant. As an example, I tried to parse every token after the “to” or “in” token as a single string-token which I could then later use. But this feels very wrong... Since the meaning is supposed to happen during the parsing. And I do not create more meaning by leaving an entire phrase like volt second / (kilo gram) as a string instead of parsing it into actually meaningful numbers... I believe, I need to spend a few days thinking the problem through until I should start coding new things. Until then, I will try to reorganize the project further (as during writing one of the possibilities, I felt like the code base was a whole mess). Let's see how this will go!

Read more...

So I recently had this problem: My NAS and my home server were both down, I was away (at school) and needed to access some files I had on my big desktop pc at home. Normally, this wouldn't be that bad, since there was physically someone in the house I was able to call, but... Well, let's just say I'm incredibly paranoid and my passwords are 32+ alpha-numeric chars with special signs and everything... The “physically present person” was not too amused and eventually (after mistyping for a few of times) gave up. Therefore, the need for me to access my files remotely was born. And since I don't want to save everything to my NAS that I might eventually could potentially need sometime in the future, I want it to work on the local actual files on my desktop pc. So what could I do?

Read more...

Like I already told in my previous post about the state of this blog, I've recently and randomly found a really cool, personal blog, written by Drew DeVault. One of his posts was about his blogging engine and workflow, which, according to him, involves Neovim as the editor (just like I use as well!) and a git server to which he is able to push his changes, which then are instantly deployed using some specific (and I guess quite niche) static site generator. Said workflow sounds incredibly exciting to me and makes me want to try the exact same thing. With one change, nonetheless, since I do not have the same specific and high requirements for the actual static site generator, which he had. I simply want something that works with the highest priority being the lightweight nature of the service and small footprint on memory and storage (as I only have 1G & 10G respectively on my VPS, as I have stated before as well).

Read more...

During a recent search on Kagi (my new search engine of choice, you should try it too!), I've stumbled upon an independent software engineer's blogging website by a guy called Drew DeVault. I was quite pleasantly surprised to have found such results on the web, as such blogs tend to be rather small because they fill a small niche on the web. I guess this has never happened before, without me realized it because of the absence of the “small web” feature in other search engines like DuckDuckGo (which I have used previously).

I've quickly read through the main article I needed for the information I was searching. Then another; and another. It felt so relatable that I've just kept on reading. Most of the things he said were simply right on the same wavelength as I was.

Read more...

After finishing the last tiny project (port scanner), I now started working on my own calculator app in Rust which I (creatively) called calcx. By now, I was able to lay some ground work with general structs and making a very simple interactive “tui” using cliclack (through I did switch between tui libraries / crates quite a lot before settling for this one). The most current version of the source code can be found here: Github

Read more...

I was bored, but still did not want to post the link to the onion service, which resulted in my searching for a new project idea. Since I set as a goal to really learn Rust, I wanted to build the next project in it (if it is not by far easier with another tool).

Having not that much experience with Rust yet, I aimed for quite beginner projects, which are useful for building core skills.

The list of potential next contenders includes:

  • Snake
  • Port Scanner
  • TCP-Chat Application (Client & Server)
  • CLI Calculator
    • (I was searching for a really good, extensive one fitting my needs exactly for a long time, might be unrealistic for me to make such a big project, however)
    • Extension features could include: functions, working with units, live fetched data (–> units like BTC Price in EUR, etc)
Read more...

This blog post was written in retrospect, since I simply forgot to write about it during the process of setting it up. I guess I am not yet used to documenting my entire procedure when working on projects. Hopefully, that'll change.

To start off a bit of context: For the previous few months, I have been trying to cut down my screen time on my phone. This eventually resulted in me downloading an open-source podcast app (called AntennaPod, for anyone curious). Since then, I've been replacing my video consumption with audio-media and have accumulated quite a few different podcasts I am subscribed to. By chance, I've found the option to use GPodder Sync to synchronize these podcasts and my progress through them to a locally-self-hosted server running GPodder.

Read more...