RSSAmplifier

Blog

artemis.sh

artemis's projects and blog

artemis.shRSS feed ↗81 posts

Latest posts

Fast Synthesis of Basic Oscillators

I’ve been working on synthesizers for the GBA and rp2040 the past couple years, and I’ve made some fast oscillators.

Bidirectional I2S with PIO

Raspberry provide an example I2S output PIO program. I needed simultaneous input and output, so I adapted their program for that. Code at the end of the post.

raspi3 luks - aes-xts vs xchacha,aes-adiantum

The raspberry pi 3 doesn’t have the hardware crypto extensions for aarch64, at least going by cpuinfo. That’s bad news for using AES for disk encryption, because software implementations of AES are slow. But there’s a disk encryption algorithm that uses your pick of chacha12 or chacha20 for the bulk data encryption. These algorithms were designed to be better suited to software and simd…

Defragging my old Dell’s UEFI NVRAM

I’m setting up an old Dell box (2011-era tech). I was migrating to some new boot drives and setting up grub on them again. Got to the point of deleting the old boot entries and adding new ones, and got an error like Could not prepare boot variable: No space left on device. Weird, because there weren’t that many EFI variables, but df -h also reported that efivars was full:

The Serenity of -j1

It’s another post about our thinkpad :). We’ve been using gentoo on our x220 for a few years now. The x220 is a thinkpad from 2011, and ours is rolling with an i7-2620M processor, 2 cores 4 threads. When all the threads are saturated, the fans really start to scream a bit, and it’s not a pleasant sound. Fine for a few minutes, certainly not for longer. What’s there to do about it?

So, do you actually want to write?

There’s this collection of tales about people who use static site generators. The story goes something like this: someone decides they want to be a blogger. So they start researching static site generators, they go down the list, ask some friends, start comparing generators. They learn, wow, there’s a generator in their favorite programming language, and look at all the cool things they can make…

Save Scarecrow, a Massive Physical Media Collection

https://scarecrowvideo.org/sos. This is the reason for this post. Scarecrow Video is one of the few video rental places still operating. You can go in, or rent by mail, something from a collection of 147,000 titles. Like. I cannot understate how big this is. No streaming service has this many. All of them combined don’t have this many. You probably cannot pirate many of these, because they’re too…

There are still quite a few 32-bit x86 Linux distributions

The options for 32-bit x86 distributions have been declining a little bit. Some distros have dropped 32-bit support, but quite a few still have it. What remains? And which CPUs do they actually support?

Trying out NetBSD on our Vaio

NetBSD 10.0 is out!! This is very exciting; they’ve poured a ton of work into making that happen. I figured in celebration I needed to install NetBSD on something around the house, and the vaio vgn-p (prev featured in Life at 800MHz) seemed fun to try it on.

Simple Executable Love2D Files, or, You Can Shove Random Data At The Start of a Zip File and it’s Basically Fine

LÖVE (which I will write as love because my keyboard doesn’t have an Ö) is a neat program that’s mostly intended for writing games with lua. We’ve been using it to write an image viewer. There’s a lot of ways to package a love project up for distribution, and some of them ship a copy of love with the project and some don’t. Since my distribution provides the version of love I need, I can create a…

we’ve added light mode

This has been an addition we’ve wanted for a long while. For too many reasons to consider listing, some people find dark websites difficult to read. Or they’ve just got preferences. The Reader Mode in many browsers can help do an auto-transformation, but not everyone knows about that, and it doesn’t always do it right. So, now there’s a light theme built into the site now. If you’re a light-mode…

If you can’t find it, it needs to be written

In the world of the digital, many of us have been tricked into thinking that something only needs to be said once. If someone has stated something, then stating it again is noise. Provides no purpose. Does not benefit anyone. The extension of this follows: I should not write something, on the off-chance that someone else whom I don’t even know about has already written it, perhaps better. The fear…

Installing nixGL on aarch64

nixGL is a tool that’s useful for people who use Nix on distributions that aren’t NixOS. It lets you run graphical applications from nixpkgs with hardware acceleration; without it everything falls back to software rendering. Here’s how to install it on aarch64 (arm64).

i like gentoo’s package deprecation process

Gentoo’s process for removing packages from the main gentoo package repository is designed to make me aware of it and give me time to react, and I really appreciate that.

LSDJ is pretty cool

Little Sound DJ (LSDJ) is a music tracker for the original gameboy / gameboy color. It makes pretty bleep bloops, I think it’s neat.

cloud-init - set root password with a config iso

This is useful for running cloud-init VMs locally, particularly if the image doesn’t have sudo or some other privilege escalation tool. Usually in an actual cloud environment you wouldn’t do this.

Scrollbars are becoming a problem

Scrollbars. Ever heard of them? They’re pretty cool. Click and drag on a scrollbar and you can move content around in a scrollable content pane. I love that shit. Every day I am scrolling on my computer, all day long. But the scrollbars are getting smaller and this is increasingly becoming a problem. I would show you screenshots but they’re so small that even screenshotting them is hard to do. And…

Ephemerality in the Land of Federation

Sometimes when we’re talking, we want ephemerality. Messages that do not last. Messages that cannot be read after some period of time. There are many reasons for this, and I’m not going to explain them, because I’d rather spend energy on how it can or can’t be achieved.

Gentoo Stability Indicators- what do keywords mean?

I’m not a core Gentoo dev, but this is my understanding of what the stability indicators mean, having used Gentoo for about a year now.

hackage search is not so good

Haskell has a package database called Hackage. It has a search feature, but it is hard to find things with the search feature. What is bad about it? What are work arounds?

lua script to generate a nodejs cache from a package-lock.json

this is a lua script that generates a nodejs cache from a package-lock.json. why is this useful? well you can generate a cache without this by deleting node_modules, and then running npm install --no-save --cache path/to/some/dir. It will cache all the downloads to the directory you gave it. but, it won’t cache anything it doesn’t download. This means if you install esbuild for example it will…

Split up a .stp/.step file into STLs

Simple thing, writing so we can find it again. So first install FreeCAD, easiest with the appimage or flatpak probably. Then open the step file with File > Open or File > Import. You’re on a screen like this:

Nix: Using rustPlatform.buildRustPackage with Git Dependencies (it’s kind of a pain)

I’m not sure if something changed with the way Nix’s rust build system works in 23.05, but I’m pretty sure something did because this project didn’t suddenly switch to git dependencies since I last built it with git; it was already using them. Anyways whether it’s new or not, you need to specify a hash for each of the git dependencies which works but is annoying to actually do. Here’s how.

Thoughts on MNT Reform after a couple months

So we got ahold of one of these used from someone who found it didn’t do what they needed it to. New, these things are like 1200 euros. We got one for $420 (lmao). though we had to buy a different keycap set to get key legends (prev owner had blank caps), and we had to replace the battery boards with a newer version since this was like one of the first Reform versions made and the battery boards…

cross-compile with NixOS and deploy that shit continuously

Alright the premise of this one is way simpler than how we got there. We’ve got a raspberry pi 2, and we wanted to set it up to do some system monitoring. Pretty simple stuff ultimately: it’s got an FTDI serial adapter and an ST-Link both plugged in over USB to monitor a long computer that we’re doing work on right now. It’s also got an ethernet connection to that computer for netbooting, and then…

Enable Crate Features in Helix Editor With rust-analyzer

So you’re using helix, you’re working on a rust crate, and you need to turn a feature flag on. Here’s how:

Fix Linux Suspend/Sleep in Gigabyte B550i Aorus Pro AX

Linux won’t sleep on this motherboard out of the box. I have a rev1.1 motherboard running BIOS version F17b. No idea if this applies to rev1.2. There’s a workaround you can do which is to disable PCIe wakeup on GPP0 (GPP bridge to the m.2 NVMe drives): echo GPP0 | sudo tee /proc/acpi/wakeup. To make this persistent you need to run this command at boot. I do not know why it is like this.…

Why I Switched to Helix Editor

It works on illumos. It supports rust-analyzer out of the box. I like the controls. I like the color themes. I don’t need to install or configure plugins.

I got Mozilla’s syncstorage-rs working; free yourself from python2

You may not know this, but you can run your own sync server for Firefox Sync, which lets you keep all your sync’d data entirely on your own servers. The github:mozilla-services/syncserver has been what you use to do this for awhile now, but it’s written in Python 2, which is becoming increasingly non-existent on modern Linux distributions since Python 2 is end-of-life. The replacement is…

Firefox: Disable ‘A web page is slowing down your browser’

This warning serves no purpose on slow computers where like half of modern web-apps trigger it (thanks modern web-apps). To disable it, go into about:config and set dom.ipc.processHangMonitor and dom.ipc.reportProcessHangs to false.

a practical guide to self-induced {trance?, hypnogogia?, daydreaming?} for fun and vibes

A strategy so simple that a friend described it to me in a few sentences, off hand, not intending to provide me instruction. and I went and did it, and it worked anyway.

Copying NixOS’s Live CD to RAM: a short look at NixOS’s early boot

Due to Circumstances, I want to boot a NixOS live ISO in such a way that the storage medium can be removed after boot-up. This is at a technical level rather simple. NixOS live images store the Nix store in a SquashFS, and everything else is already in RAM via tmpfs anyway. So in theory all we need to do is copy the SquashFS to ram before it gets mounted. But that does raise the question: how is…

ffmpeg v4l2 requests 4.4.3 patchset

I rebased the 4.4 branch of jernejsk/FFmpeg on ffmpeg 4.4.3. You can find that at faithanalog/FFmpeg-v4l2. This lets you use hardware accelerated video decoding on anything that uses v4l2-requests (hantro, rkvdec, etc.). Tested on my Quartz64. You can also download a .patch file that applies cleanly to upstream 4.4.3: v4l2-4.4.3.patch. If you’re on gentoo, drop this in…

Blazingly Fast Lua Serialization

You’re writing lua, you want to serialize and deserialize data, and you want to pick the best format/library pairing for the job. What’s good? I’ve been doing some testing to find out. Here’s the short version: If you want the fastest option and you can choose the format, use lua-cbor if you need it to be pure lua, or use lua-protobuf if you’re cool with a C library. If you need JSON, use either…

Anti-Fandom Action! Hosting BreezeWiki with Caching and WildCard DNS

There’s this website online that’s a bit notorious for being awful, and also for being everywhere: fandom dot com. Fandom hosts a lot of wikis, some of which have existed for over a decade now. They used to be known as wikkia and provided the quite-useful service of a hosted MediaWiki instance. That’s still what they do actually, but over time they’ve become more and more malignant. I don’t know…

So you want to cross compile illumos…

I want to cross compile to illumos from linux, for reasons I’ll hopefully get to write about in the future. This is a pretty tricky endeavor. Let’s talk about why.

Tfw your kernel makes your linker print to STDERR - Gentoo, Mold, and AArch64

We’ve been passively experimenting with the mold linker for the past six months or so. We’ve got a Quartz64 that hasn’t needed to do much of anything, and because it’s only got 4 efficiency cores, the linker runs long enough that we can actually watch it and see how it’s doing. We’re not really sure if it’s been worth using, and haven’t done any scientific comparisons on it. That said, here’s how…

How To Make Java Swing Look Better

This is not new information but I’ve been having an increasingly difficult time finding the exact options to use in the library of babel that is the modern search engine. So here we are.

An X11 Apologist Tries Wayland

I think it’s only fair to call me an X apologist. I get incredibly frustrated when people talk about dropping support for X11. I fight back against the notion that some day X11 will be dead and unmaintained, a curiosity of a time before. I’ve spoken to people in my circles at-length about the accessibility tools that Wayland simply hasn’t been capable of supporting that X11 has. A lot of times,…

Stop Chrome from Stealing Sway’s Hotkeys

I read the manual, and I’m putting it here so I don’t forget. As mentioned in some previous posts, I like to run web-apps in chrome with the --app= flag, rather than use the electron version. For stuff like Discord this largely makes it act like the electron version- the website gets its own dedicated window, clicking links opens stuff in a different window, there’s no browser UI taking up space.…

That time I 10x’d a TI-84 emulator’s speed by replacing a switch-case

There’s a javascript emulator for the TI83+, TI84+, and TI84+CSE calculators called jsTIfied, which was written by Christopher Mitchell, founder of the calculator fan site cemetech.net. There’s not a whole lot of reasons to use it over something else if you’ve got a native option available, but if you don’t it’s pretty great. I got interested because it was the first emulator to support the…

[reblog] How to Start an Unencrypted Chat on Matrix (Element)

Hey! A friend of mine, Cadence, wrote a great blog post about how to start an unencrypted direct message with someone else on Matrix using Element or a fish script. That post is over at https://cadence.moe/blog/2022-07-29-how-to-start-an-unencrypted-chat-on-matrix-element. I’ve also iframe’d it here! This reblog thing is a new thing I’m trying, and I don’t intend to make it a majority part of the…

I’m tired of making decisions

Decisions are our keys to the ethereal freedom, but they are also our shackles to the earth. I’ve been thinking a lot about what makes a system pleasant for me to use, particularly as a workstation. I’ve become disillusioned with a lot of Linux distributions as of late, not for technical reasons, but just because many of them feel cause me to feel depressed and dejected when I work with them. One…

MNT Pocket Reform Has Problems, But I Still Want It

I am a notorious lover of small computers. At the start of the year I wrote about my darling little Vaio VGN-P that I use all the time for communications, writing, and even dev work. But these things are long out of manufacture and difficult to repair. In current year you can get some compelling options from GPD, but their keyboards are pretty bad, so they’re out of the question for me. So, when I…

I Disabled GIF Animations on Cohost

If there’s one thing that is guaranteed to piss me off in the current year, it’s a social media tool that doesn’t let me disable GIF animations. Personal websites- yeah, whatever, it’s your website. But when social media lets people blast animations into my feed, I’m just not ok with that. Today’s offender is cohost, some hip new website for Posting that some of my friends are using. The GIFs are…

How I Use Borg for Ransomware-Resilient Backups

If you’re in need of a backup solution for your *nix machines, BorgBackup is a great tool for it. Borg features encryption, deduplication, append-only data access for ransomware resiliency, and data compression. I’ve been using it for five or six years now and I’ve developed a strategy for deploying borg that I’ll share with you.

More Oxide at Home: My Pi is a Wireless Crucible

Welcome back to me making bad decisions with Oxide software. Today we’ll have a look at Crucible, a networked storage service. Now, “network storage” can mean a lot of things, from low level block devices to high level bucket stores. Crucible sits at the low level end of the spectrum, and is intended for stuff like block devices for virtual machine. I’m going to tell you what I’ve learned from…

How I Listened To Music In The 2010s

The early 2010s was when I first got into music in a big way. Early on, I just had some files in the first music player app I thought looked cool, but as my library grew my methods for listening to music got more and more convoluted, culminating in a DIY cloud streaming setup. I wanna write about it, for my own memory and amusement. Maybe you’ll get a kick out of it too!

Everfree’s ARMFerno - My Unholy Battle With a Rock64

I’ve got this rock64, which is an aarch64 board comparable to a Raspberry Pi 3 B+ with 4 gigs of ram. For years I’ve wanted to put a distribution on here that doesn’t have a premade image available, mainly because out of all the options on that page I don’t actually like any of them. Well, except NetBSD, but NetBSD doesn’t have GPU drivers for it. Problem is, everything I do want to use provides…

A System-Witch’s Package Manager Murder Mystery

It was a calm day on the puppy-linux thinkpad. The CPU was cool, the RAM was operating at double data rate, and a gentle breeze flowed through the chassis as the fan whirred away. A girl wanted to log onto Discord to chat with her friends, but much to her dismay, Discord needed a package update! No matter, such things happen from time to time, but she’d need to uninstall the old version first. She…