If you are not interested in tech in general and in NAS manufacturers in particular you may have missed the latest news on the shiny new exploit affecting QNAP NAS systems: the Qlocker. Basically, the attackers gained access to QNAP systems and used 7-zip to move the user’s files to password-protected archives. Then, they started a massive ransomware campaign asking for 0.01 BTC (around 500 USD) for the password to unlock the files.
Looking for new projects to sharpen my Rust skills, I came across a Reddit post where someone mentioned CHIP-8. CHIP-8 is an interpreted low-level programming language and virtual machine specification that is very commonly used as a “Hello world!” project of sorts for people to get their feet wet with emulator programming. It is simple enough to be able to implement a fully-featured emulator in a couple of sessions, but it has all the key parts of a real machine, to the point that are many projects that implement CHIP-8 directly in hardware.
I have since implemented my own CHIP-8 emulator in Rust (see repository here) with support for sound, display scaling, configurable colors, and more. But this text is not about it (I’ll write about my implementation in a future post). Today I want to fully describe the CHIP-8 machine, because I had fun implementing it, and I like it so much that I want to have it here for my future reference. In this guide, every instruction is accompanied with a small pseudo-code block to help understand the interpreter’s intended behavior to the more technically inclined reader.
A while back I changed my bar from Polybar to
i3blocks. One of the things I missed about Polybar is its internal CPU module, which can produce a core load graph directly in your bar by adding the right
ramp characters. In this post I’m sharing a simple POSIX shell script I’ve written that does the same and can be used with any text-based bar. Here is what it looks like:
In the last months,
chimp, my old 2013 ZOTAC ZBOX ID42 HTPC, has been struggling more and more to decode and transcode high-resolution video on the fly, especially when encoded in H.265/HEVC. Thus, I set out to find a worthy successor to act as a squire to my TV. The ZOTAC still works, mind you, but it has become slow, loud and it takes ages to boot Arch Linux.
In my crusade to find the perfect replacement, I have considered recent off-the-shelf HTPCs, options with a Mini PC form factor like the intel NUCs, and some of the affordable single-board computers. It is in this last category that we find the Raspberry Pi. I have been interested in the Pi since its inception, following its developments and the various versions with mild curiosity. Finally, emboldened by its low price point, I bit the bullet and got a NinkBox Raspberry Pi 4 (4 GB) kit which comes with a 64 GB SD card, a power supply, an HDMI cable and a case with a fan and three heat sinks. In this post I dump my first impressions of the little thing after a couple of days of tinkering.
In this post, I’m mirroring the Gaia Sky 3 tutorial I wrote for the official Gaia Sky documentation to use as a rough script for the workshop given in a splinter session of the 2021 DPAC consortium online meeting held on March 17 and 18, 2021. You can find the original page here.
This article is best viewed in light mode: lights on!