First impressions on Hare language

Introduction Hare is a new programming language that was announced in 2022 and which was started by Drew DeValut. It’s currently being developed openly by a community of contributors. Here’s a description of the language from the official website: Hare is a systems programming language designed to be simple, stable, and robust. Hare uses a static type system, manual memory management, and a minimal runtime. It is well-suited to writing operating systems, system tools, compilers, networking software, and other low-level, high performance tasks.

Collapse Ready Operating Systems - NetBSD

This is a blog post in the Collapse Ready Operating System series. Read this post for an introduction. NetBSD This time I have chosen NetBSD. I have used NetBSD previously in my Raspberry Pi (the first version). I had a lot of fun building packages for ARM from the raspberry pi and trying them out (and finding bugs as well). I remember fondly the regular status reports made by Jun Ebihara along with raspberry pi images with many packages already installed.

Collapse Ready Operating Systems - OpenBSD

This is a blog post in the Collapse Ready Operating System series. Read this post for an introduction. OpenBSD The OS analyzed in this post is OpenBSD. I’ve tried OpenBSD a few times in the past: once as a personal web server on an old PC, and then as a desktop in a laptop as a secondary system. That was a few years ago. My memories from it are that the system was very clean, everything worked as expected, the performance was significantly slower than linux and that I really appreciated all the care the developers put on the security side.

Collapse Ready Operating Systems - Intro

Introduction Nowadays we live in a hyperconnected World that relies heavily on Internet connection for day to day tasks in all levels. I’m not very happy with this relience of assuming Internet access 24h for everything, as I think it disempowers the user. For example, whereas people before used to buy and own media, now they buy a license to stream such media from the cloud. This means that the user only has access to the media as long as the platform exists, and we know that this is no guarantee for the future.

CHIP-8 emulator in Rust: Embedded port. Part 2

This post is the continuation of CHIP-8 emulator in Rust. Part 1, please check it if you haven’t already! In this second part I will explain how I ported the CHIP-8 emulator I built in Rust to an embedded ARM microcontroller. I will explain the hardware I chose to build this portable CHIP-8 device, the Rust libraries I used and I’ll give an overview of how the code is laid out.

NFS server over WireGuard in Alpine

I have recently built a new storage server at home consisting of 6x2TB hard drives configured as RAID-Z2 with ZFS. For the operating system I have chosen Alpine Linux, which is a distribution that I really like for its lightweightness and its simplicity. Previously I had a storage server running Debian which I was sharing via sshfs. sshfs is really easy to set up, as you just need to be running an ssh server, nevertheless it has some disadvantages:

CHIP-8 emulator in Rust. Part 1

I have been interested in the topic of emulation for many years; in particular, game console emulation. I started playing games under emulators when I was a teenager and I was fascinated by how a piece of software would let me play a game in a completely different architecture than the original one. I’ve you’ve ever been interested in learning about emulation, maybe you’ve learned about the CHIP-8; a specification of a simple virtual machine designed to play 8bit 2D videogames in the mid 1970s.

Thinkpad Helix 2 with Linux

Preface Recently I’ve bought a second hand Thinkpad Helix 2nd Gen with the intention of using it mainly as a tablet to read PDF documents and comics (although I may use it for Internet browsing and occasional development). I like running free software on my computers and so I decided to use GNU/Linux with this tablet/laptop. Here I will explain all the issues I encountered and how I solved them.

Pulseaudio for multi-user Linux

My setup For some time I’ve been using several unix users for my daily work in my desktop computer. After trying out Qubes OS for some time (an OS that achieves security by compartmentalization: different kinds of activites are performed in a different VM, isolating the data of each activity from each other), I came back to GNU/Linux and realized that there’s already a security separation in Unix (albeit not as secure as virtualization as in Qubes): users.

Programming Game Boy Chinese cartridges with an STM32F4

Introduction For the past few years I have been interested in the Game Boy: I’ve written an emulator in C (without sound), I developed a physical cartridge “emulator” using a microcontroller, and most recently I’ve built a project to interface my PC with the Game Link. I’ve also played a bit with Game Boy programming. In the past I considered buying a Game Boy flashcart so that I could run demos and other scene ROMs on real hardware comfortably, but the price of such carts is a bit high.

See all articles