tscs37's Blog

Boring Task Scheduling

I’ve recently dived into OS Development to learn a bit of Rust. It’s probably a bit like wanting to learn how to use a hammer so you build a skyscraper or some equally insane level of yakshaving. One of the goals I set for any progress I make on my Kernel/OS is to make boring, simple and safe choices. For example, I don’t plan to make a microkernel, such things are complicated and slow. Read more...

I’ve recently begun to move all my content and hosting to a dedicated server, some of my websites may be temporarily unavailable over the next few months if they get moved.

I’m also looking for a comment-engine for this blog that values privacy, probably going to write something based on webmentions…

Graph-based Request Routing

HTTP Routers are largely based around string-matching with placeholders. When a request for /api/customers/1/billing comes in, a patterns like /api/:relation:/:id:/:relation: might match on the router, prompting it to call a very specific function with the mentioned parameters. But what if it could be made easier? This is where graphs come in. Graphs are a interesting structure, more so when they are a data structure in a computer. When a computer needs to resolve dependencies for a software installation, you’re walking a type of graph, most likely a DAG, a directed, acyclic graph. Read more...

The Case for the Boring Software Stack

Before we dive deeper into the topic, it should first be established what a boring software stack is. It’s rather simple and you probably heard the setup before; Linux as Server OS Apache as Webserver PHP as Backend MySQL as Database Now that this has been expressed, many modern developers will probably grab the pitchforks for one reason or another. However, before the author of this article is horribly lynched, I shall elaborate. Read more...

The Journey so far and what lies ahead

I’m currently working on finishing some of the base architecture of the previously discussed tree architecture. The BlobLayer has received an update to allow direct writing on the blobs. Based on this functionality a slice access is established which addresses slices based on their index. To find the end and start point the index is multiplied by the size of the slices. Records have been moved from independent slices into the Node itself while also reducing the number of records in a node. Read more...