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.

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...

I recently worked a bit on the way I am going to publish the entire system. The final deploy (since it's only temporary) will be done using a small Raspberry Pi Zero I had laying around (so I don't risk locking my main server in the case that something goes wrong with the service; or even worse, I get hacked...)

Read more...

So, I recently had an idea for an experiment. I wondered about the TOR Network and how people connect in it. In case you have never tried to use TOR, I would strongly recommend you to. Here are the basics:

Read more...