RSSAmplifier

Blog

Divested Computing: Primary

Feed of blog and video entries from DCG

divested.devRSS feed ↗69 posts

Latest posts

Blog: Availability of Safe Browsing

Preface Google Safe Browsing is a (controversial) mechanism used by web browsers to block known bad content in near real-time. However availability can be limited due to missing or bad API keys. Documented below is status as of August 2026. Testing Status of Safe Browsing can be checked in Chromium via chrome://safe-browsing and in Firefox via about:url-classifier . It can then be verified using…

Blog: Android Patch Gap Absurdity

As I write this, the date is October 3rd 2025. I want to give a real world example of a CVE that Android isn t patching until their security update to be released on months from now, or "today" as you re likely reading this. In question will be CVE-2025-6965 and its embargoed identical twin CVE-2025-48595 . 2025-0?-??: A vulnerability was found in sqlite. I could not find the report. 2025-06-27:…

Video: RamaLama: Using CI container images

Video: Local LLM Introduction

Blog: ThinkPad T480 - Booting external NVMe drives

I recently acquired a ThinkPad T480 as a travel laptop and it has been a joy to use. Except booting external NVMe drives does not work. I have tested multiple controllers (ASMedia, JMicron, and Realtek), drives, cables (C-C, A-C, 5Gbps, 20Gbps, 40Gbps), partitioning, and bootloaders and ultimately concluded that the handling in the EFI for UASP is completely broken as it returns invalid data on…

Blog: USBGuard on Fedora

USBGuard is a daemon to manage USB device authorization. Here is an easy way to use it on Fedora. sudo dnf install usbguard usbguard-notifier #install the packages usbguard generate-policy | sudo tee /etc/usbguard/rules.conf #allow your expected default devices sudo chmod 600 /etc/usbguard/rules.conf #ensure correct permission sudo restorecon -rv /etc/usbguard sudo systemctl enable usbguard --now…

Blog: Leaving Forums

I closed nearly all of my social accounts today. In all cases I asked mods to keep my threads/posts to not break history. I may eventually return to them, but it is important to experience other aspects of life. To those I shared time with: thank you. List of closed accounts: discuss.privacyguides.net forum.fairphone.com forum.f-droid.org forum.level1techs.com forum.openwrt.org lwn.net…

Blog: real-ucode is now deprecated

Due to recent changes in Linux 6.18.4 regarding loading of microcode for AMD platforms I am deprecating real-ucode, since that was my primary usecase. Steps to switch back to linux-firmware are noted below. dnf update --refresh #drop the packages dnf remove real-ucode #remove the meta package dnf swap amd-ucode-firmware-resigned amd-ucode-firmware #switch back to official variant if on -resigned…

Blog: KSM Fun

With the recent RAM pricing situation, I ve been exploring some unconventional stop-gaps. I plan to write about a more practical one soon once I finish testing, but I figured I d lead with this very silly one first. Years ago KSM support was added to Linux which performed page deduplication, this was useful for eg. QEMU workloads. Later a patchset called UKSM was developed which extended this…

Blog: Notes on Geiger Counters

Disclaimer I am just some random software developer. I have no actual experience in this field. This information is purely for other hobbyists. I m also not going to provide detailed explanations about their use or about radiation itself, there are more knowledgeable people who have written in depth about that. If you work around radiation in any professional manner, your workplace almost…

Blog: Fedora 42 /boot out of space

Kernel updates failed to install on one of my servers today since /boot was full. I noticed the initramfs images were 4x larger than on my other systems. Turns out Fedora Cloud includes the dracut-config-generic package by default, which generates them with all modules bundled causing the large size. Fedora also defaults to a 1GB /boot and 3x full 6.16.x kernels seemingly no longer fit in that…

Blog: Google Aiming for Gold

Google is currently speedrunning the Android Open Source Project (AOSP) into the ground even in spite of the current antitrust litigation. Below is a recap of the past few months since some bits are being overlooked. Google announced that after March they would no longer be publishing the source code for the in-development versions of Android. These branches were frequently used by systems for…

Blog: Hard Drives have TBW limits too

Every so often people talk about drives and how SSDs are worse because they have a terabytes written (TBW) limit, except hard drives have them too! Most manufacturers however either just don t publish the ratings or use a different term. The term is usually a workload rate limit (WRL). You can read more about this from WD here and from Seagate here . The WRL can be roughly converted to a TBW…

Blog: Web Server Upgrade

I ve migrated the web server to a new VPS. I was on the last one for over five years, but the performance has been quite abysmal for a while now due to its ancient Sandy Bridge era host. The new VPS has 2x cores (of Zen2), 6x more RAM, dramatically more IOPS, slightly faster network, and checksumming (ext4 -> btrfs).

Blog: Jellyfin Corruption

Yesterday I started streaming from my Jellyfin instance and some time in it completely went away. Turns out the VM disk filled up. After resizing it on the host and guest, the service still failed to start. The error was System.InvalidOperationException: There is an error in XML document (0, 0). . After searching most people say the whole database is corrupt, but in this case it was just the…

Blog: Ryzen Laptop Suspend Issues

I have two identical Ryzen 7530U laptops and one recently started immediately resuming when suspended. After a few hours of troubleshooting I still have no idea why it does this. The AMD s2idle debug utility reported it as a PS/2 wakeup event. I tried setting gpiolib_acpi.ignore_interrupt=AMDI0030:00@44 kernel command line argument to mitigate it but that didn t work. I did find that setting…

Blog: LUKS Iterations

Quick reminder to check/increase the iterations on your LUKS keyslots. Default autodetection can for example result in quite low settings such as 3 iterations at 512MB cost if your CPU is slow. I recommend setting 16+ iterations at max 4GB cost. Do note that this can cause unlocking to take 15+ seconds. cryptsetup luksConvertKey /dev/nvme0n1p3 --pbkdf argon2id --pbkdf-memory 4194304…

Blog: Invizible v2.5.4 beta security issue

I was reviewing through some projects yesterday and noticed this commit in Invizible . This change deletes the Tor state file on Tor connection failure. However this state file stores the list of chosen guards to make guard selection attacks harder. This could allow a network attacker to easily force a client onto specific guard nodes. After some back and forth @Gedsh reverted the commit. It only…

Blog: Resigning ucode to mitigate security issues

Today s real-ucode update now includes an optional subpackage amd-ucode-firmware-resigned which contains new microcodes resigned with the old format to allow loading on pre 2025-01 BIOSes. This is necessary to mitigate security issues such as the recent TSA vulnerability on systems without vendor updates. Remove the exclusion if you had one from /etc/dnf/dnf.conf first Update package list: dnf…

Blog: ECH rollout stats

Fresh results of ECH availability on the top 10k domains (as ranked by Open PageRank) is available here . I ve updated the script to also discern between hosted on Cloudflare or not. Comment on this: Fediverse

Blog: Packaging Udderance

Today I spent a few hours packaging Udderance as an Android app for true/reliable offline usage with all assets bundled. I had some small issues encountered during the process and noted them below. My assets directory was getting clobbered in the URI to load. This was annoying but easy to workaround by intercepting and rewriting it. The Android WebView does not support using the speechSynthesis…

Blog: Security Sliders

Long ago in August of 2021 I disabled the JIT for Firefox in Brace. During testing I realized that the browser needed to be restarted for this to take effect. Back in October of 2024 I was made aware of how the Tor Browser security slider changes these settings without a restart, preventing them from having effect and also creating a fingerprinting mess. For months after this every time I used the…

Blog: Moving Against GenAI

I ve a new zebra profile picture, crudely hand drawn by me. It took quite a few steps with GIMP to cleanup/convert from photo to lineart, I may make a short tutorial on that in the future. I ve also removed the quick overviews from Kairoscope in favor of proper sources.

Blog: Archiving YouTube Channels

Over the past few years YouTube has been adding more and more restrictions in place to watching videos ranging from fake buffering to adding DRM to completely blocking playback. I ve used Tor Browser for years to watch my favorite content creators, but that has been impacted by these changes which made even short videos a tedious chore. So I started instead just bulk archiving my favorite…

Blog: Converting HTML to Markdown

I needed to do this earlier and pulled pandoc out, except the output was not great. Turns out you need to specify markdown_strict instead. If you have tables you may also want to to append +pipe_tables to the output format. pandoc --wrap=none --from html --to markdown_strict page.html --output page.md

Blog: Kairoscope Updates

I ve prioritized and added more reading sources, as well as tidied up the pages.

Blog: Welcome

I figured it was about time I started a blog. I ve backfilled it a little from my recent toots, along with some extras sprinkled in there. I ve also made a handful of updates to the website the past few days, especially the homepage. And I ve added a GenAI usage disclosure section, which I encourage others to do as well. Comment on this: Fediverse

Blog: Dark Mode

I ve added dark mode to my current websites. I still use mini.css which was last updated in 2018 and it predates prefers-color-scheme. So I manually merged the colors from mini-dark.css into mini-default.css and minified it again. My last attempt years ago was just loading both style sheets and setting them using the @media rule but that wasted bandwidth. Comment on this: Fediverse

Blog: Udderance Updates

added 14 more phrase boards after implementing a Open Board Format converter made sub menu navigation cleaner by collapsing others added support for Escape key to close dialogs/submenus generated the remaining 5647 translations, still to be imported Comment on this: Fediverse

Blog: Freshly Picked Onions

Back in January when I tore down all of the DivestOS infrastructure, I also took down my onion services. Today they are back and with nice vanity addresses. I was reminded to do this after seeing someone with an awesome purple roots Tor t-shirt. divested.dev: divestedqc3zjycu pgdvmpzzlxtw6jkx sin2xo4g4nxzsu77 jknygxqd.onion kairoscope.org: screenerivy55uvi qfvyqtx5sjwxbeuw airfusxedszywr5p…

Blog: Brace Updates

Fedora just shipped chrony 4.7 today and Brace s previous override caused the service to be terminated by systemd due to the upstream service file switching from forking to notify type. Comment on this: GitHub

Blog: Cables Fail - Part 2

Recently my friend swapped out one of their 1Gb switches with a 10Gb switch, but it refused to link up with their other 10Gb switch. After some troubleshooting today, it turned out to be the cable linking them. Despite being CAT 6A, it could only successfully negotiate at 1Gb. I wouldn t be surprised if there were carrier errors at 1Gb too, but I didn t bother checking logs.

Blog: Udderance Updates

Boards are now machine translated into 35 languages Pictograms now work in Safari Phrase buttons are now in a dialog view instead of a collapse view for quicker navigation Phrase board generation has been overhauled to allow for sub boards as a prerequisite for importing Open Board Format files Many homepage improvements: features, compatibility matrix, explanations, etc. More information on the…

Blog: Udderance Updates

Just added pictogram support for 700+ phrases to Udderance thanks to the Mulberry Symbols project. Was easier than I expected, although my server is having a difficult time serving them up quickly. I disabled compression of SVG files to help, but I will need to pre-compress them and adjust my Apache config to handle that. Comment on this: Fediverse

Blog: Udderance Updates

Support for dynamic phrase board generation and presets A board preset cloned from Cboard AAC Improved voice list handling Support for Sherpa TTS via WASM for more voices and as a fallback when WebSpeech is unavailable (many Linux distros don t seem to setup/enable Speech Dispatcher) Tiny additions like a button to clear the history log Various bug fixes Comment on this: Fediverse

Blog: iPhone Review

My six month review/notes of daily driving an iPhone as someone who spent a decade maintaining their own Android distro: Overall: Mostly OK, some parts are better than I expected, but others are abysmal. Cost: Awful expensive: $600+ phone + monthly iCloud subscription. Important note: If you want to actually use other 3rd party apps, that is when it starts to fall apart as most of them are…

Blog: Recommended Settings

I ve published some recommended settings lists for GrapheneOS and iOS . Comment on this: Fediverse , Privacy Guides Forum

Blog: Launching Udderance

Happy Tuesday! 🛸🐮 Here is another small project I made yesterday. Udderance is a text-to-speech (TTS) based augmentative and alternative communication (AAC) tool with a focus on simplicity and cross-platform usage. It is meant to be installed as a PWA (via your browser) on your phone. Comment on this: Fediverse , Privacy Guides Forum , Hacker News

Blog: Strange ZFS behavior

I recently added some drives to a ZFS pool. When I did an rsync to the dataset, it had seemingly recopied some directory metadata despite them not actually changing. I think I ve observed this previously, but didn t document it last time.

Blog: Summarizing a YouTube video

Someone on a forum asked for a summary of a YouTube video so I figured I d see how well Ollama/Gemma3 can do it. I used some bash fun to convert the subtitles, as I found existing tools overcomplicated. You ll also need to increase your Ollama context limit from the default 4k to 16k or higher if the video is particularly long. videoID="[YOUTUBE VIDEO ID]"; yt-dlp --write subs --write-auto-subs…

Blog: Donations

I removed the donation options six months back when I shuttered DivestOS. Today they are available again for those of you who are interested in financially supporting my work.

Blog: Kairoscope Updates

There are now 21 tests and it now has a dedicated domain . Comment on this: Fediverse

Blog: Launching Kairoscope

May is mental health awareness month, so to promote it I’ve implemented a handful of mental health screeners in the form of completely client side tests. Have fun! Please let me know if you encounter any issues with them. Comment on this: Fediverse , Privacy Guides Forum , Hacker News

Blog: Cables Fail - Part 1

I ve had many cables fail over the years, so I figured I d start documenting them. I just swapped out all SATA cables on my NAS after one drive started spewing UDMA errors a few days ago. Said problematic cable was untouched and working for ~3 years and then decided to retire early.

Blog: Fedora iptables fun

Fedora pushed out an iptables update today which altered some paths. firewalld, Docker, and other tools broke. Chaos ensued .

Blog: CAA Record Clipping

I ve started migrating to Porkbun since Gandi has yet to cease constantly hiking their prices. After I moved my first domain over I quickly hit an error where CAA records were being clipped off. Porkbun was quick to help here: It seems Cloudflare DNS (which Porkbun depends on) is quite strict in their parsing and it must not contain any spaces. I later made a script to bulk test/verify DNS records…

Blog: Bounds checking in hmalloc

I ve started working on a feature in the GrapheneOS hardened_malloc project that enables system wide buffer over/under-flow detection by overriding common block operation functions (eg. memcpy/memset) and performing size checks against the known sizes available in the malloc s metadata. It works quite well system wide in my testing, but still needs some extra work. @cgzones has been a kind help to…

Blog: SCFW3 Updates

trash.sh now blocks many known AI crawlers and the ancient versions list has been refreshed. Comment on this: GitHub

Blog: Brace Updates

JavaScript JIT is now disabled for WebKitGTK and GJS thanks to @RKNF404 Tweaks to browser extension overrides Comment on this: GitHub

Blog: Ending DivestOS and apps

Thank you everyone. Full announcement Comment on this: Fediverse , Privacy Guides Forum , Hacker News , F-Droid Forum , Techlore Forum