RISC-V Vector Extension OverviewPermalink

Wojciech Muła:

The goal of this text is to provide an overview of RISC-V Vector extension (RVV), and compare — when applicable — with widespread SIMD vector instruction sets: SSE, AVX, AVX-512, ARM Neon and SVE.

The RISC-V architecture defines four basic modes (32-bit, 32-bit for embedded systems, 64-bit, 128-bit) and several extensions. For instance, the support for single precision floating-point numbers is added by the F extension.

The vector extension is quite a huge addition. It adds 302 instructions plus four highly configurable load & store operations. The RVV instructions can be split into three groups:

  • related to masks,
  • integer operations,
  • and floating-point operations.

When a CPU does not support floating-point instructions, it still may provide the integer subset.

RVV introduces 32 vector registers v0, …, v31, a concept of mask (similar to AVX-512), and nine control registers.

Detailed, but not too long overview of the RISC-V vector extensions.

RMK Mechanical Keyboard FirmwarePermalink

RMK by Haobo Gu:

Rust keyboard firmware library with layers, macros, real-time keymap editing, wireless(BLE) and split support

The README shows a comprehensive list of features including USB and Bluetooth connectivity, ARM and RISC-V support, real-time layout editing, and a low power mode that claims month of battery life.

The firmware is built upon the Embassy async embedded Rust framework.

Dad Builds House Fan Simulator to Soothe SonPermalink

Adam Stoddard:

Our house has one of those old, giant whole-house fans that looks like it was ripped out of an airplane and grafted into the ceiling. We love to run it on cool nights when we can leverage Sacramento’s fabled Delta breeze to maximum effect. The steady current of cool, citrus and jasmine-scented air it produces is deeply satisfying after a sun-scorched day.

It’s also the perfect noise machine, which as it happens, turned out to be a bit of a problem. Our son got so hooked on its soothing sounds that we’d wake up in the middle of 30F winter nights to the sound of our house fan on full blast.

A charming story followed by a walk through building the house-fan simulator as a PWA. Be sure to check out the animated pixel art graphics in the finished result.

Creator of Kid Pix Details the Early Years of Its DevelopmentPermalink

One day in 1988 while I was using MacPaint, the wonderful paint program that came with the Macintosh, my 3-year-old son Ben asked to try using the program. I was surprised at how quickly he got the knack of using the mouse and how easily he was able to select tools. The problem was that he didn’t have total control of the mouse and would occasionally (like every five minutes or so) pull down a menu and bring up a dialog box that he couldn’t dismiss without being able to read. Everything was fine as long as I was in the room, but if I stepped out for a few minutes I would come back and find Ben kicking on the floor in frustration. This was not what I had in mind for his introduction to the computer. As it turned out I was looking for a good programming project. I decided to write a simple paint program for Ben to use.

Wonderful walk through the history and thinking behind a delightful application from the classic Macintosh days. When I was a kid I spent a bunch of time playing with Kid Pix. Can’t say I ever drew anything particularly noteworthy but I sure had a lot of fun.

If you’d like to try Kid Pix today, version 2 is available on Infinite Mac. System 7.5.3 seems like a good host version. Fire it up and navigate to: Infinite HD:Graphics:Kid Pix and double click Kid Pix 2.

Screenshot of Kid Pix 2 running on System 7.5.3 on Infinite Mac. The word 'Hello' has been hand drawn in pink. Below that is a series of icons: dog cow, palm trees, duck, and dinosaur.
Screenshot of Kid Pix 2 running on System 7.5.3 in Infinite Mac.

New Release of Raspberry Pi OS Switches to Wayland Based LabwcPermalink

Simon Long writing on the Raspberry Pi blog:

With the release of Bookworm in 2023, we replaced mutter with a new dedicated Wayland compositor called wayfire and made Wayland the default mode of operation for Raspberry Pi 4 and 5, while continuing to run X on lower-powered models.

After much optimisation for our hardware, we have reached the point where labwc desktops run just as fast as X on older Raspberry Pi models. Today, we make the switch with our latest desktop image: Raspberry Pi Desktop now runs Wayland by default across all models.

Labwc describes itself as “a wlroots-based window-stacking compositor for wayland, inspired by openbox”. I tried out the new release on a Raspberry Pi 400 with 4Gb of RAM and it runs quite smoothly. The user-experience feels unchanged from the previous release, with the top-panel, menus, and window decorations all operating the same as earlier releases.

Screenshot from Raspberry Pi 400 showing the desktop with Firefox, file manager, terminal, and task manager running
Screenshot from Raspberry Pi 400 running Labwc

While the CPU performance of the Pi still means operations like starting applications can be a little sluggish window compositing is buttery smooth with no sign of tearing or lag. This feels like a great change and quite the win for the Labwc project.