This has been a fast and chaotic month for my life and career, and a rather slow month for my blog and personal projects. I severely underestimated the effort it takes to pack up all my belongings while figuring out everything about my future employment. Because of this, the status update is both later than I intended, and has less content.

I added a search box to my website. You should be able to find it on the right hand side. I am not using a custom solution for search for now, so the search will just redirect you to DuckDuckGo.

I pushed a breaking update for JustIRC. JustIRC is one of the first Python modules I’ve written. It was created while I was just learning about network protocols and socket programming. These two facts combined resulted in an API design that was less than ideal.

A new version that fixed a lot of the problems with the API was pushed. Additionally, documentation of the module was greatly improved. Some missing functionality, such as TLS support was added. These improvements should make it much easier to use the library in new projects.

On the kernel side, things are mostly quiet aside from some bugfixes and internal changes.

A filesystem API was introduced. This API is implemented by TarFS, and will be implemented by any future filesystems. This abstraction over file operations will mainly be used for the upcoming Virtual File System implementation. A VFS will allow the kernel to mount multiple filesystems into the same file tree, and open the path for some cool FS tricks such as exposing devices and kernel internals as files and directories.

The dynamic memory allocator of the kernel was switched from a best-fit allocator to an exact-fit allocator. This ended up making the memory system more flexible. The previous allocator used to create fixed-size memory blocks of different sizes up to a maximum size. This meant larger allocations would fail, and you would have to waste some memory if they were not used.

The new allocator handles allocations of the same size much better, and the odd large allocation (like a framebuffer) does not waste any unnecessary memory. Along with the allocation algorithm, some bugs related to memory alignment were fixed. All the work on the memory allocator improved the system stability a lot.

My privacy and browser hardening extension, browser-harden, got some fixes that allow certain websites to work. Some JS-heavy frameworks were overriding a lot of browser APIs and interacting in a bad way with the extension. The issues I came across were fixed and the fix was pushed to Firefox Addons.

In order to learn desktop GUI programming, and to get familiar with the GTK framework, I made a simple GTK app in Python. It is an imageboard viewer in a single file.

That’s all for this month, thanks for reading!