Making myself uncomfortable again
In early 2019, some months after completing a rehab program for drug addiction, I was in a very open-minded headspace where I wanted to challenge myself and find ways to improve as a person.
I like computers!
In early 2019, some months after completing a rehab program for drug addiction, I was in a very open-minded headspace where I wanted to challenge myself and find ways to improve as a person.
In this post, we will discuss the challenges of programming with locks and how the C++ language offers some useful tools to make it easier. We will start with an example in C and then use C++ to improve upon it in steps. The example APIs are based on real-life APIs from the SerenityOS kernel.
We often hear that making small incremental improvements every day can lead to great things. This popular piece of advice rings true, and it’s a powerful reminder to keep pushing ourselves forward.
This post explores one of my favorite hacks in SerenityOS. I don’t recommend doing this in your codebase, but it has worked for us so far. :^)
Someone once suggested that I set aside a small portion of my income every month. I’ve been doing this for years with an automatic bank transfer so I can’t mess it up.
This post describes in detail how I support myself while working on the SerenityOS project.
This post describes the Ladybird browser, based on the LibWeb and LibJS engines from SerenityOS.
This post describes how we’re going to achieve memory safety in SerenityOS.
Hello friends! :^) Let me tell you a story…
This post describes a compile-time technique for getting the benefits of aggressive inlining in hot code while protecting cool code from its downsides.
This post will give you a quick intro to the basics of GUI programming for SerenityOS.
This post describes the implementation and use of pledge()
and unveil()
in SerenityOS.
This post describes the use of C++ references to enhance autodocumentation in the Serenity Operating System.
This post describes the C++ NonnullOwnPtr
template used to enforce non-nullity of single-owner object pointers in the Serenity Operating System.
This post describes a compile-time technique for catching use-after-move bugs in modern C++. It’s currently used to prevent some mistakes in the Serenity Operating System.
This post describes the C++ NetworkOrdered<T>
template used to simplify working with network packet structures in the Serenity Operating System.
This post describes the C++ IterationDecision
pattern used to implement flow control during callback-based iteration in the Serenity Operating System.
This post describes the C++ Badge
template used to enhance member function access control in Serenity Operating System.
This post describes how system calls are implemented in the Serenity Operating System.