<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
	<channel>
		<title>Divested Computing: Primary</title>
		<description>Feed of blog and video entries from DCG</description>
		<language>en-us</language>
		<link>https://divested.dev</link>
		<copyright>Divested Computing Group © 2014-2026</copyright>
		<lastBuildDate>Mon, 27 Apr 2026 15:19:32 +0000</lastBuildDate>
		<ttl>1440</ttl>

		<item>
			<title>Blog: ThinkPad T480 - Booting external NVMe drives</title>
			<link>https://divested.dev/pages/blog-2026-03-14-thinkpad_external_nvme</link>
			<description>&lt;p&gt;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 read and eventually stalls out. But thankfully this laptop has a Thunderbolt 3 port, so I grabbed a ASM2464PD USB4 NVMe enclosure, booted my internal drive to authorize it via boltd, and rebooted. It shows up just fine in the boot splash, but no boot entries! However we can easily add the boot entry manually via the following command:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo efibootmgr --create --disk /dev/nvme0n1 --part 1 --loader /EFI/fedora/shimx64.efi --label &quot;External NVMe&quot; --unicode
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then just reboot, hit F12 for the boot menu, select the newly added entry, and enjoy!&lt;/p&gt;
&lt;p&gt;Note: This command must be repeated for a different inserted NVMe drive, but the EFI can handle many entries. Use &lt;code&gt;efibootmgr&lt;/code&gt; to list entries and &lt;code&gt;efibootmgr -B -b [entry #000x here]&lt;/code&gt; to remove no longer wanted ones.&lt;/p&gt;
&lt;p&gt;Hint: If it doesn&#039;t show up at all, enter the EFI settings via F1, ensure `Security Level` is set to `Secure Connect` and `Support in Pre Boot Environment` is set to `Pre-Boot ACL`, and authorize again if necessary.&lt;/p&gt;
&lt;p&gt;I also recommend updating the firmware on the enclosure. For ASM2464PD, here is the &lt;a href=&quot;https://www.station-drivers.com/index.php/en/component/remository/Drivers/Asmedia/ASM-2464-NVMe-USB-4.x-Controller-(40Gbps)/Asmedia-ASM2464-NVME-USB-4.x-Controller-Firmware-Version-250717_85_00_00-(2)/lang,en-gb/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;current latest&lt;/a&gt;, simply run the .exe, click the unlock button in the top left with the password `asmedia`, click the load firmware (folder) button in the middle left and select the only available .bin file, and then click the flash button in the bottom left. After it completes it should say `PASS` in the bottom right. Exit the program, unplug the enclosure, plug it back in, start the program again, and verify the listed version is changed from previous (ie. compare to a picture you took before).&lt;/p&gt;
</description>
			<guid isPermaLink="false">2de39902-b6c9-4031-adf7-5c493fbfd31f</guid>
			<pubDate>Sat, 14 Mar 2026 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: USBGuard on Fedora</title>
			<link>https://divested.dev/pages/blog-2026-02-04-usbguard-on-fedora</link>
			<description>&lt;p&gt;USBGuard is a daemon to manage USB device authorization. Here is an easy way to use it on Fedora.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;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 #enable the daemon
sudo usbguard add-user $USER --devices=listen,modify #necessary for non-wheel users
systemctl --user enable usbguard-notifier --now #enable the allow/reject notifications
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;While GNOME does support lockscreen blocking via the additional usbguard-dbus integration, I personally prefer this approach even considering how finicky GNOME&#039;s notifications are.&lt;/p&gt;
&lt;p&gt;Also of note, my iPhone doesn&#039;t seem to play nicely with the prompt delay and needs to be added to the permanent rules to connect successfully. But it doesn&#039;t seem to be a concern for how Android handles it.&lt;/p&gt;
&lt;p&gt;If you&#039;re passing a USB device into a VM (via Spice at least) you still need to approve it on the host.&lt;/p&gt;
&lt;p&gt;Lastly it should be noted that this approach is not as secure as what is offered by GrapheneOS and iOS since those lack persistent devices (eg. kb/mouse) which can be cloned for spoofing.&lt;/p&gt;
</description>
			<guid isPermaLink="false">8a983054-df9b-4499-a137-b470d6cf098a</guid>
			<pubDate>Wed, 04 Feb 2026 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: real-ucode is now deprecated</title>
			<link>https://divested.dev/pages/blog-2026-01-12-real-ucode-deprecation</link>
			<description>&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Steps to switch back to linux-firmware are noted below.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;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
grubby --update-kernel=ALL --remove-args=&quot;microcode.amd_sha_check=off&quot; #enable sha check again if on -resigned
dnf distro-sync amd-ucode-firmware microcode_ctl #switch back to official variants
dnf update #ensure updated again
reboot now #only necessary if ran grubby command above to prevent conflict
dracut -f #regenerate initramfs
reboot now #finalize&lt;/code&gt;&lt;/pre&gt;
</description>
			<guid isPermaLink="false">f1aec77f-a4b9-4509-8aa4-d6141d3f8f6d</guid>
			<pubDate>Mon, 12 Jan 2026 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: KSM Fun</title>
			<link>https://divested.dev/pages/blog-2025-12-08-ksm-fun</link>
			<description>&lt;p&gt;With the recent RAM pricing situation, I&#039;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&#039;d lead with this very silly one first.&lt;/p&gt;
&lt;p&gt;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 system-wide, it was never merged for obvious reasons. But it seems there was actually some recent work in kernel and systemd which allows enabling KSM for all services. The commands for this are below. Please note KSM has security issues regarding ASLR and side-channels, so this should&#039;t actually be used without serious considerations.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;echo -e &quot;[Service]\nMemoryKSM=true&quot; &gt; /usr/lib/systemd/system/service.d/ksm.conf #let systemd invoke KSM prctl
echo &quot;w /sys/kernel/mm/ksm/run - - - - 1&quot; &gt; /usr/lib/tmpfiles.d/ksm.conf #persistently enable ksm
echo &quot;w /sys/kernel/mm/ksm/advisor_mode - - - - scan-time&quot; &gt;&gt; /usr/lib/tmpfiles.d/ksm.conf #enable scan time advisor
systemctl daemon-reload #let it take effect
reboot now #to restart all processes
watch -n1 grep -r . /sys/kernel/mm/ksm/ #monitor status
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;As for practicality? I saw anywhere between 10MB to 300MB of savings depending on workload. I suggest giving this &lt;a href=&quot;https://lwn.net/Articles/953141/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;LWN article&lt;/a&gt; a read if you are interested.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;Comment on this: &lt;a href=&quot;https://infosec.exchange/@divested/115683305366083957&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Fediverse&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
</description>
			<guid isPermaLink="false">2f3c0d82-5baf-4324-870f-be8eba53bdb8</guid>
			<pubDate>Mon, 08 Dec 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Notes on Geiger Counters</title>
			<link>https://divested.dev/pages/blog-2025-09-24-geigers</link>
			<description>&lt;h4 id=&quot;2025-09-24-geigers-disclaimer&quot;&gt;Disclaimer&lt;/h4&gt;
&lt;p&gt;I am just some random software developer. I have no actual experience in this field. This information is purely for other hobbyists. I&#039;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 certainly already provides you with the necessary training and proper equipment. Absolutely never place your life in the hands of these cheap toys.&lt;/p&gt;
&lt;h4 id=&quot;2025-09-24-geigers-preface&quot;&gt;Preface&lt;/h4&gt;
&lt;p&gt;I have always wanted a geiger counter since I was young. It popped up every few years but they were always pricey and/or rough. I&#039;ve recently been watching through The X-Files which occasionally shows them and there was also recently a thread on the front page of HN about a DIY counter using a Flipper. So I started looking into options again.&lt;/p&gt;
&lt;h4 id=&quot;2025-09-24-geigers-radiation&quot;&gt;Extremely Basic Overview of Radiation&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;In this context of ionizing radiation, there are five types: neutron, alpha (α), beta (β), gamma (γ), and X-rays.&lt;/li&gt;
	&lt;li&gt;They are emitted during the decay process of an atomic nucleus.&lt;/li&gt;
	&lt;li&gt;Neutron, alpha, and beta radiation are classed as particle radiation.&lt;/li&gt;
	&lt;li&gt;X-rays and gamma radiation are classed as electromagnetic radiation (photons). Although they are produced differently, X-rays are formed from electrical acceleration whereas gamma is a nuclear process.&lt;/li&gt;
	&lt;li&gt;Different decay chains emit more of each type than others.&lt;/li&gt;
	&lt;li&gt;Different emissions also have varying levels of energy per photon, usually measured in electronvolts.&lt;/li&gt;
	&lt;li&gt;Alpha radiation is easily stopped by extremely thin materials such as paper or the very outer layer of your skin.&lt;/li&gt;
	&lt;li&gt;Beta radiation can be stopped by thin metal.&lt;/li&gt;
	&lt;li&gt;Gamma radiation however requires dense materials such as concrete or lead to be stopped.&lt;/li&gt;
	&lt;li&gt;Lastly and most importantly is the inverse-square law. As distance from a emitter is increased, the intensity dramatically drops.&lt;/li&gt;
	&lt;li&gt;For example Am-241, commonly used in smoke detectors, primarily emits alpha radiation which is nearly entirely blocked by the housing and a small amount of gamma radiation which can escape. But thanks to the inverse square law, this tiny amount of gamma radiation blurs into that of the background radiation when just inches away and is effectively harmless when they are appropriately installed (eg. on ceilings, feet away from us).&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;2025-09-24-geigers-radiation-safety&quot;&gt;Extremely Basic Overview of Radiation Safety&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;Any exposure to ionizing radiation directly damages materials, such as the cells of living creatures. But it is also always around us, yet we still live?&lt;/li&gt;
	&lt;li&gt;This is because exposure is measured by: type, energy level, and time.&lt;/li&gt;
	&lt;li&gt;Since Alpha radiation is blocked by the very outer layer of skin, it is largely only an issue if you were to ingest, inhale, or put it inside your body some other way. Since once inside, it can then do damage to your living cells.&lt;/li&gt;
	&lt;li&gt;Gamma radiation on the other hand will happily punch a bunch of small holes through your body without any care.&lt;/li&gt;
	&lt;li&gt;Different decay chains have different energy levels, so some can be extremely energetic. These for example can cause more collateral damage in the surrounding areas than that of lower energy emissions.&lt;/li&gt;
	&lt;li&gt;And the more time your cells are exposed to ionizing radiation, the more damage will be done especially if they are more energetic.&lt;/li&gt;
	&lt;li&gt;So we need sufficient exposure to damage cells to a point where they cannot correctly or quickly replicate themselves anymore to be an actual health concern.&lt;/li&gt;
	&lt;li&gt;In safety systems a common term is ALARA or &#039;as low as reasonably achievable&#039;. For radiation this is achieved by: minimizing time around them, increasing distance from them, avoiding large emitters, avoiding high energy emissions, and ensuring sufficient shielding around them and yourself if/when possible.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;2025-09-24-geigers-geiger-counters&quot;&gt;Extremely Basic Overview of Geiger Counters&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;edit: I&#039;ve made a handful of corrections &lt;a href=&quot;https://old.reddit.com/r/Radiation/comments/1npg5nm/notes_on_geiger_counters/nfz75o1/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;regarding scintillators&lt;/a&gt; thanks to u/Physix_R_Cool and some &lt;a href=&quot;https://old.reddit.com/r/Radiation/comments/1npg5nm/notes_on_geiger_counters/nfzzufl/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;adjustments&lt;/a&gt; thanks to u/PhoenixAF. Their more detailed posts are both linked.&lt;/li&gt;
	&lt;li&gt;A geiger counter has become a generic term to refer to radiation measuring devices.&lt;/li&gt;
	&lt;li&gt;But the most well known type of geiger counter is one that uses a Geiger-Müller tube.&lt;/li&gt;
	&lt;li&gt;Geiger-Müller (GM) tubes are usually metal or glass tubes filled with an inert gas and have a high-voltage electrical charge applied across them. When ionizing radiation passes through, the conductivity of the gas is altered which can be measured by the device to form a reading.&lt;/li&gt;
	&lt;li&gt;More recently scintillation counters have become more common. These have two parts: a scintillator and a photosensor. A scintillator is a material that emits light when ionizing radiation passes through it. And then a photosensor (ie. a camera) measures the &lt;strike&gt;pattern of light emitted&lt;/strike&gt; amount of light, which is proportional to the energy impacting the scintillator, which the device uses to form a reading. These have the benefit that &lt;strike&gt;different isotopes cause different patterns&lt;/strike&gt; the actual energy level can be measured, which the device can use to identify the isotope.&lt;/li&gt;
	&lt;li&gt;GM tubes notably have a &quot;dead time&quot;, this is a period where it cannot detect events due to the matter in the tube physically changing state. Scintillators on the other hand &lt;strike&gt;emit light, which well... travels at the speed of light, so they effectively do not have a &quot;dead time&quot;&lt;/strike&gt; do still have a similar decay time but this is a much shorter period, which makes them able to measure &amp; respond to events much quicker.&lt;/li&gt;
	&lt;li&gt;GM tubes can be sensitive to both alpha, beta, and gamma radiation. But depending on the model of tube or how the tube is encased by the counter they may not be able to measure alpha or beta radiation. Some counters will have a physical sliding sheath that allows the tube to be &quot;toggled&quot; between detecting alpha &amp; beta or not.&lt;/li&gt;
	&lt;li&gt;&lt;strike&gt;The scintillators commonly used in cheap detectors cannot detect alpha or beta radiation but are very sensitive to gamma radiation.&lt;/strike&gt; All scintillators are similary sensitive as GM tubes, but in most cheap counters they are shielded by the casing enough in order for the photosensor to not be exposed to outside light to be very poor at detecting alpha and beta radiation.&lt;/li&gt;
	&lt;li&gt;Size matters: a larger GM tube or a larger scintillator &lt;strike&gt;&amp; photosensor area&lt;/strike&gt; will allow for greater sensitivity. Increased photosensor area generally only improves uncertainty of energy measurements.&lt;/li&gt;
	&lt;li&gt;Counters are usually calibrated to a specific source such as Cs-137. This means the energy readings from other emitters will not be accurate, unless the counter provides energy compensation and most importantly is accurately calibrated to the actual expected energy ranges. GM tubes can perform compensation by having physical sheaths that block out certain low &lt;strike&gt;or high&lt;/strike&gt; energy levels to narrow the exposure. Scintillators can &lt;strike&gt;try and identify the isotope and perform compensation&lt;/strike&gt; directly calculate the dose from the observed energy level in software. In cheap counters, both approaches are likely just rough approximations.&lt;/li&gt;
	&lt;li&gt;Radiation measuring devices usually have two goals: showing dose rate (current amount) and/or dose (exposed amount).&lt;/li&gt;
	&lt;li&gt;Some devices will only show dose rate, these are typically called radiation or survey meters.&lt;/li&gt;
	&lt;li&gt;Some devices will only show dose, these are typically called dosimeters. These can also be passive, but I&#039;m only covering active (ie. electronic) ones.&lt;/li&gt;
	&lt;li&gt;But either device can often do both, it just may not be its primary function or accurate.&lt;/li&gt;
	&lt;li&gt;Ionizing radiation is typically measured in grays (Gy). And in this context of human body exposure, dose and dose rate are usually measured in sieverts (Sv) and its respective hourly rate (Sv/hr). In &lt;strike&gt;the past&lt;/strike&gt; some regions roentgens (R) and their human body exposure roentgen equivalent man (rem) units are still common &lt;strike&gt;were common, but the definition of them has changed over time leading to it being less accepted&lt;/strike&gt;. Grays are also a replacement for rads. Different units are used in different contexts or regions.&lt;/li&gt;
	&lt;li&gt;A sievert is the typical base unit, but numbers are typically displayed as microsieverts (µSv) or millisieverts (mSv), which are one-millionth and one-thousandth of a sievert respectively.&lt;/li&gt;
	&lt;li&gt;Devices can usually display in clicks per second or per minute in addition to eg. sieverts. A click corresponds to a detected event.&lt;/li&gt;
	&lt;li&gt;Randall Munroe of XKCD has a fun (not necessarily scientific) scale chart of various real world &lt;a href=&quot;https://xkcd.com/radiation/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;dose examples here&lt;/a&gt;.&lt;/li&gt;
	&lt;li&gt;Geiger counters do not &lt;strike&gt;detect&lt;/strike&gt; measure non-ionizing radiation.&lt;/li&gt;
	&lt;li&gt;Geiger counters may provide false readings if exposed to UV-C light if they use a glass GM tube.&lt;/li&gt;
	&lt;li&gt;Geiger counters may provide false readings if exposed to high power radio interference. This is in the same way our PC speakers used to buzz moments before a 2G/3G phone call came in.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;2025-09-24-geigers-additional-notes&quot;&gt;Additional Notes About Radiation&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;edit: Corrections about &lt;a href=&quot;https://old.reddit.com/r/Radiation/comments/1npg5nm/notes_on_geiger_counters/ng1vb6u/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;contrast agents&lt;/a&gt; thanks to u/Altruistic_Tonight18&lt;/li&gt;
	&lt;li&gt;Non-ionizing radiation cannot directly cause harm, but at high enough power levels it can cause rapid localized heating which can do damage.&lt;/li&gt;
	&lt;li&gt;Devices such as radios, cell phones, Wi-Fi access points, Bluetooth dongles, and microwave ovens all use non-ionizing radiation. They also all have strict power limits and/or shielding requirements.&lt;/li&gt;
	&lt;li&gt;That little mesh on the front of your microwave oven is literally small enough to physically block the large microwaves from escaping.&lt;/li&gt;
	&lt;li&gt;Standing in the sun will expose you to substantially more radiation than that of a cell phone. Which is why you should wear hats, sunglassess, and sunscreen.&lt;/li&gt;
	&lt;li&gt;CRT displays can actually leak small amounts of X-rays, especially if the brightness is high or the power supply is poorly regulated.&lt;/li&gt;
	&lt;li&gt;Being exposed to radiation does not directly make you radioactive, you must be contaminated somehow first.&lt;/li&gt;
	&lt;li&gt;MRI scans &lt;strike&gt;without contrast&lt;/strike&gt; themself will not expose you to radiation.&lt;/li&gt;
	&lt;li&gt;X-ray, CT, and PET scans &lt;strike&gt;without contrast&lt;/strike&gt; themself will expose you to radiation, but you will not become radioactive.&lt;/li&gt;
	&lt;li&gt;Scans with &lt;strike&gt;contrast&lt;/strike&gt; radiopharmaceuticals will both expose you to radiation, and make you temporarily radioactive. The modern isotopes used usually have short half-lifes and can be expelled by the body within a week or two.&lt;/li&gt;
	&lt;li&gt;Radiocontrast agents themself are not radioactive, and are distinct from radiopharmaceuticals.&lt;/li&gt;
	&lt;li&gt;You may encounter a close friend or family member that is radioactive from medical tests: if they&#039;ve already talked to you about such procedure, then they may be curious to visualize it on a geiger. Otherwise respect their privacy.&lt;/li&gt;
	&lt;li&gt;You may encounter complete strangers that are radioactive from medical tests, don&#039;t harass them or scare them, just ignore them like you do other strangers.&lt;/li&gt;
	&lt;li&gt;If you&#039;re out and about and your geiger goes off, there is near-zero reason to start scaring people around you or call emergency services.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;2025-09-24-geigers-usecase&quot;&gt;My Usecase and Requirements&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;I have two primary uses:&lt;ul&gt;
		&lt;li&gt;be able to make sure nothing in my environment at home &amp; work is unexpected&lt;/li&gt;
		&lt;li&gt;be able to be mindful of unusual objects when I&#039;m out traveling in weird &amp; fun places such as (hypothetically)&lt;ul&gt;
			&lt;li&gt;is that new scanning archway at the exit of the big box store actually X-ray or just cameras?&lt;/li&gt;
			&lt;li&gt;a spicy rock or boulder out on a trail&lt;/li&gt;
			&lt;li&gt;your friend wearing a &quot;5G protection&quot; pendant which turns out to be a chunk of Thorium&lt;/li&gt;
			&lt;li&gt;that posh restaurant which thought it&#039;d be cool to serve food on Uranium glazed fiestaware&lt;/li&gt;
			&lt;li&gt;the poorly maintained X-ray machine at the dentist right next door to the coffee shop in the strip mall&lt;/li&gt;
		&lt;/ul&gt;&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;li&gt;My requirements are:&lt;ul&gt;
		&lt;li&gt;can actually detect radiation, but no need for real accuracy&lt;/li&gt;
		&lt;li&gt;pocketable&lt;/li&gt;
		&lt;li&gt;battery that can last a few days&lt;/li&gt;
		&lt;li&gt;affordable, ie. not $3,000&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;2025-09-24-geigers-contenders&quot;&gt;Available Contenders&lt;/h4&gt;
&lt;div class=&quot;collapse&quot;&gt;
	&lt;input type=&quot;checkbox&quot; id=&quot;collapse-section-geiger-contenders&quot; aria-hidden=&quot;true&quot;&gt;
	&lt;label for=&quot;collapse-section-geiger-contenders&quot; aria-hidden=&quot;true&quot;&gt;Expand&lt;/label&gt;
	&lt;div style=&quot;max-height:100%;&quot;&gt;
		&lt;ul&gt;
			&lt;li&gt;Generic HFS-P3&lt;ul&gt;
				&lt;li&gt;Price: $35&lt;/li&gt;
				&lt;li&gt;Class: Bottom of the barrel&lt;/li&gt;
				&lt;li&gt;Type: GM&lt;/li&gt;
				&lt;li&gt;Measurement range: 0.08 µSv to 50 mSv&lt;/li&gt;
				&lt;li&gt;Detects: beta, gamma, X-rays&lt;/li&gt;
				&lt;li&gt;Size: about that of a highlighter/marker&lt;/li&gt;
				&lt;li&gt;Battery: claimed 50 hours / ~2 days, 400mAh internal cell&lt;/li&gt;
				&lt;li&gt;Display: basic OLED&lt;/li&gt;
				&lt;li&gt;Attachment: pocket clip&lt;/li&gt;
				&lt;li&gt;Note: no clicks&lt;/li&gt;
				&lt;li&gt;Purchase: &lt;a href=&quot;https://www.amazon.com/Radiation-Detector-CHNADKS-Upgrated-Dosimeter/dp/B0BCVV7VM8&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;Amazon&lt;/a&gt;&lt;/li&gt;
			&lt;/ul&gt;&lt;/li&gt;
			&lt;li&gt;GQ GMC-300S&lt;ul&gt;
				&lt;li&gt;Price: $60&lt;/li&gt;
				&lt;li&gt;Class: Hobbyist&lt;/li&gt;
				&lt;li&gt;Type: GM, M4011 tube&lt;/li&gt;
				&lt;li&gt;Measurement range: 0.0 µSv to 327.99 µSv&lt;/li&gt;
				&lt;li&gt;Detects: beta, gamma, X-rays, 0.1 to 3 MeV&lt;/li&gt;
				&lt;li&gt;Size: thin brick&lt;/li&gt;
				&lt;li&gt;Battery: 14500&lt;/li&gt;
				&lt;li&gt;Display: basic LCD&lt;/li&gt;
				&lt;li&gt;Attachment: lanyard&lt;/li&gt;
				&lt;li&gt;Purchase: &lt;a href=&quot;https://www.amazon.com/GQ-GMC-300S-Radiation-Detector-Dosimeter/dp/B0B541D433&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;Amazon&lt;/a&gt;&lt;/li&gt;
			&lt;/ul&gt;&lt;/li&gt;
			&lt;li&gt;GQ GMS-800&lt;ul&gt;
				&lt;li&gt;Price: $90&lt;/li&gt;
				&lt;li&gt;Class: Hobbyist&lt;/li&gt;
				&lt;li&gt;Type: GM&lt;/li&gt;
				&lt;li&gt;Measurement range: 0.0 µSv to 2 mSv&lt;/li&gt;
				&lt;li&gt;Detects: beta, gamma, X-rays, 0.1 to 3 MeV&lt;/li&gt;
				&lt;li&gt;Size: thick brick&lt;/li&gt;
				&lt;li&gt;Battery: 14500&lt;/li&gt;
				&lt;li&gt;Display: graphical LCD&lt;/li&gt;
				&lt;li&gt;Attachment: none?&lt;/li&gt;
				&lt;li&gt;Note: firmware can be replaced via the open-source (MIT) &lt;a href=&quot;https://github.com/Gissio/radpro&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;Rad Pro&lt;/a&gt; project&lt;/li&gt;
				&lt;li&gt;Purchase: &lt;a href=&quot;https://www.amazon.com/Radiation-Detector-GQ-GMC-800-Dosimeter/dp/B0CKM5FJQX&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;Amazon&lt;/a&gt;&lt;/li&gt;
			&lt;/ul&gt;&lt;/li&gt;
			&lt;li&gt;Better Geiger S2&lt;ul&gt;
				&lt;li&gt;Price: $150&lt;/li&gt;
				&lt;li&gt;Class: Hobbyist&lt;/li&gt;
				&lt;li&gt;Type: Scintillator&lt;/li&gt;
				&lt;li&gt;Measurement range: 0.0 µSv to 100 mSv&lt;/li&gt;
				&lt;li&gt;Detects: gamma, X-rays, 50 KeV minimum&lt;/li&gt;
				&lt;li&gt;Size: thick brick, 118l x 73w x 26h mm&lt;/li&gt;
				&lt;li&gt;Battery: claimed 50-90 hours / ~2-4 days, 2x AA&lt;/li&gt;
				&lt;li&gt;Display: detailed OLED&lt;/li&gt;
				&lt;li&gt;Attachment: none?&lt;/li&gt;
				&lt;li&gt;Purchase: &lt;a href=&quot;https://www.bettergeiger.com/product-list/p/better-geiger-radiation-detector&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;Direct&lt;/a&gt;, &lt;a href=&quot;https://www.amazon.com/Geiger-Better-Radiation-Dosimeter-Monitoring/dp/B0DJMVC5NW&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;Amazon&lt;/a&gt;&lt;/li&gt;
			&lt;/ul&gt;&lt;/li&gt;
			&lt;li&gt;Better Geiger S2-Mini&lt;ul&gt;
				&lt;li&gt;Price: $150&lt;/li&gt;
				&lt;li&gt;Class: Hobbyist&lt;/li&gt;
				&lt;li&gt;Type: Scintillator&lt;/li&gt;
				&lt;li&gt;Measurement range: 0.0 µSv to 100 mSv&lt;/li&gt;
				&lt;li&gt;Detects: gamma, X-rays, 50 KeV minimum&lt;/li&gt;
				&lt;li&gt;Battery: internal cell&lt;/li&gt;
				&lt;li&gt;Display: detailed OLED&lt;/li&gt;
				&lt;li&gt;Size: thin brick, 89l x 45w x 19h mm&lt;/li&gt;
				&lt;li&gt;Attachment: none?&lt;/li&gt;
				&lt;li&gt;Purchase: &lt;a href=&quot;https://www.bettergeiger.com/product-list/p/better-geiger-radiation-detector-wy3ea&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;Direct&lt;/a&gt;&lt;/li&gt;
			&lt;/ul&gt;&lt;/li&gt;
			&lt;li&gt;Radiacode 102&lt;ul&gt;
				&lt;li&gt;Price: $250&lt;/li&gt;
				&lt;li&gt;Class: Hobbyist&lt;/li&gt;
				&lt;li&gt;Type: Scintillator, Csl (Tl)&lt;/li&gt;
				&lt;li&gt;Measurement range: 0.1 µSv to 1 mSv&lt;/li&gt;
				&lt;li&gt;Detects: gamma, X-rays, 0.02 to 3 MeV&lt;/li&gt;
				&lt;li&gt;Size: thin brick, 123l x 34w x 18h mm&lt;/li&gt;
				&lt;li&gt;Battery: claimed 200 hours / ~8 days, 1000mAh internal cell&lt;/li&gt;
				&lt;li&gt;Display: detailed OLED&lt;/li&gt;
				&lt;li&gt;Attachment: loop (carabiner, lanyard), armband, belt clip&lt;/li&gt;
				&lt;li&gt;Purchase: &lt;a href=&quot;https://radiacode.com/products/radiacode-102&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;Direct&lt;/a&gt;, &lt;a href=&quot;https://www.amazon.com/Counter-Radiacode-102-Nuclear-Radiation-Detector/dp/B0CBQKND5W&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;Amazon&lt;/a&gt;&lt;/li&gt;
			&lt;/ul&gt;&lt;/li&gt;
			&lt;li&gt;Ludlum Model 25 (honorable mention)&lt;ul&gt;
				&lt;li&gt;Price: $200-300 used&lt;/li&gt;
				&lt;li&gt;Class: Professional&lt;/li&gt;
				&lt;li&gt;Type: GM&lt;/li&gt;
				&lt;li&gt;Measurement range: 0.02 µSv to 9.99 Sv&lt;/li&gt;
				&lt;li&gt;Detects: gamma?&lt;/li&gt;
				&lt;li&gt;Size: thin brick, 76l x 54w x 17h mm&lt;/li&gt;
				&lt;li&gt;Battery: claimed 6,000 hours / ~250 days, 2x DL2450&lt;/li&gt;
				&lt;li&gt;Display: basic LCD&lt;/li&gt;
				&lt;li&gt;Attachment: belt, lanyard, armband&lt;/li&gt;
				&lt;li&gt;Note: This is a proper dosimeter, not a counter. These can supposedly have their yearly calibration performed by Ludlum for $100. The 25 displays roentgens, the 25-1 variant displays sieverts. There is also a -IS (intrinsically safe) variant for use in hazardous environments, such as around flammable gasses. From what I understand their detection floor is purposely higher than typical background radiation. Actually water resistant.&lt;/li&gt;
			&lt;/ul&gt;&lt;/li&gt;
		&lt;/ul&gt;
	&lt;/div&gt;
&lt;/div&gt;
&lt;h4 id=&quot;2025-09-24-geigers-choice&quot;&gt;My Choice&lt;/h4&gt;
&lt;p&gt;I ultimately ended up purchasing the Radiacode 102 for its higher sensitivity and broad featureset. I strongly considered the S2-Mini, but the RC102 was more polished for only slightly higher (relative) cost. The S2-Mini would&#039;ve been my first choice if the firmware or hardware was open-source. The others I considered too brick like to be comfortably pocketable. I may still pick up a HFS-P3 for its small size and a GMS-800 to try the Rad Pro firmware in the future.&lt;/p&gt;
&lt;h4 id=&quot;2025-09-24-geigers-hardware&quot;&gt;Hardware and Menu Interface&lt;/h4&gt;
&lt;p&gt;It is what you expect for build quality. It has no real form of water or shock resistance. The menus are quite intuitive and functional and feature handy quick shortcuts. I think the loop on the case could be a bit thicker.&lt;/p&gt;
&lt;h4 id=&quot;2025-09-24-geigers-testing&quot;&gt;Testing&lt;/h4&gt;
&lt;p&gt;I first tested it against the only known radioactive source I had, a smoke detector with Am-241, and it expectedly tripped the default alarm threshold when in direct contact. Then I did the fun part of checking everything in my home, of which I did not find anything of concern. Although the granite in my bathroom clicks slightly higher than the granite in my kitchen. I was particularly interested in checking some suspicious reflective hats I had gotten a few years ago, but those too were seemingly fine.&lt;/p&gt;
&lt;h4 id=&quot;2025-09-24-geigers-battery&quot;&gt;Battery&lt;/h4&gt;
&lt;p&gt;I charged my RC102 four and a half days ago as of this writing, yet it still has 48% battery left, which is on par with their claims. I should note I do toggle the Bluetooth function as needed, since it otherwise constantly broadcasts and has no passcode. Edit: It is now six and a half days and at 28%.&lt;/p&gt;
&lt;h4 id=&quot;2025-09-24-geigers-app&quot;&gt;Radiacode App&lt;/h4&gt;
&lt;p&gt;I do not recommend using the iPhone app since it phones home to Yandex and iOS provides no real mechanism to block internet access. They provide direct APK downloads for the Android app and it works fine, excluding the map function, on GrapheneOS with internet permission revoked. Even the firmware updates are bundled in the app so that works too. There is also thankfully no account function/requirement. So this is a very cool bonus feature for seeing rate and spectrum graphs as well as identified isotopes. Data access is also possible via USB.&lt;/p&gt;
&lt;h4 id=&quot;2025-09-24-geigers-edc&quot;&gt;Every Day Carry (EDC)&lt;/h4&gt;
&lt;p&gt;While the RC102 easily fits in a pocket, I opted for the $10 silicone protective case with carabiner and wore it clipped to my jeans pant loop. It dangles around, but is light enough to not bother me, although you must be mindful to not sit on it or have it eg. horizontal when closing your car door. The acid green color I chose also adds a tiny splash of color to any outfit. I spent a few hours in a particularly large concrete building and it was neat to see the background radiation nearly 2x higher indoors compared to outside of it. Otherwise I&#039;ve yet to come across anything actually unusual. Do I actually plan to EDC a geiger long term? Unlikely.&lt;/p&gt;
&lt;h4 id=&quot;2025-09-24-geigers-conclusion&quot;&gt;Conclusion&lt;/h4&gt;
&lt;p&gt;Did I satisfy my childhood wants of a geiger? Yes. Should you EDC a geiger? Probably not. Should you own one? If you take some time to learn a basic understanding of them, I definitely think there is some benefit in having one handy.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;Comment on this: &lt;a href=&quot;https://infosec.exchange/@divested/115259953260786872&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Fediverse&lt;/a&gt;, &lt;a href=&quot;https://news.ycombinator.com/item?id=45361717&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Hacker News&lt;/a&gt;, &lt;a href=&quot;https://old.reddit.com/r/Radiation/comments/1npg5nm/notes_on_geiger_counters/&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Reddit&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
</description>
			<guid isPermaLink="false">3b574eda-75ef-4f48-b5f8-f9d4ca26270f</guid>
			<pubDate>Wed, 24 Sep 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Fedora 42 /boot out of space</title>
			<link>https://divested.dev/pages/blog-2025-09-05-boot-oos</link>
			<description>&lt;p&gt;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 &lt;code&gt;dracut-config-generic&lt;/code&gt; 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 config. Unrelated but dracut (since F42?) will also use zstd if installed. So steps below if you hit this:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;dnf remove kernel*-6.16.2-200.fc42.x86_64 #remove old kernels to free up space
dnf remove dracut-config-generic #switch to hostonly=yes
dnf install zstd #compress initramfs with zstd
dracut --regenerate-all --force #regenerate current images
dnf update #resume normal updates
&lt;/code&gt;&lt;/pre&gt;
</description>
			<guid isPermaLink="false">2bc8279b-bb57-4a28-b4aa-5d7724a6fcb8</guid>
			<pubDate>Fri, 05 Sep 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Google Aiming for Gold</title>
			<link>https://divested.dev/pages/blog-2025-08-27-android-issues</link>
			<description>&lt;p&gt;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.&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Google &lt;a href=&quot;https://source.android.com/docs/whatsnew/site-updates?year=2025#aosp-changes&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;announced&lt;/a&gt; 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 cherrypicking bug fixes to the stable releases before Google actually released them.&lt;/li&gt;
	&lt;li&gt;Android 16 was released in June. Google made the stark decision with this release to no longer consider Google Pixels to be the AOSP reference devices. Pixel device trees and kernel sources with git history are now no longer available. This makes it much more difficult for AOSP forks to support Pixels because they will have to make their own device trees. You can read this &lt;a href=&quot;https://groups.google.com/g/android-building/c/c4_W34xH55I&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;thread here&lt;/a&gt; which has comments from GrapheneOS, CalyxOS, and LineageOS developers. See also additional information from &lt;a href=&quot;https://discuss.grapheneos.org/d/21315-explanation-of-recent-changes-to-aosp-and-the-lack-of-major-impact-on-grapheneos&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;GrapheneOS&lt;/a&gt; and &lt;a href=&quot;https://calyxos.org/news/2025/06/11/android-16-plans/&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;CalyxOS&lt;/a&gt;.&lt;/li&gt;
	&lt;li&gt;Source tags for the July and August Android Security Bulletins (ASB) have not &lt;a href=&quot;https://source.android.com/docs/setup/reference/build-numbers#source-code-tags-and-builds&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;been published&lt;/a&gt;. I&#039;ll restate that for clarity, there have been no public AOSP 16 source code releases for two months now.&lt;ul&gt;
		&lt;li&gt;edit 08-28: GrapheneOS has since disclosed that Google will no longer be providing public monthly branches and is instead switching to 1 yearly major upgrade + 3 quarterly security/bug updates, with a very small monthly ASB that is handled separately from a branch for select security issues.&lt;/li&gt;
		&lt;li&gt;edit 09-09: The August ASB patches still have no links. The September ASB patches have links but are all A15 tags. The A16 September QPR sources also have not been published. GrapheneOS has elaborated on &lt;a href=&quot;https://xcancel.com/GrapheneOS/status/1964757878910136346#m&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;this here&lt;/a&gt;.&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
	&lt;li&gt;Google &lt;a href=&quot;https://developer.android.com/developer-verification/guides/android-developer-console&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;announced&lt;/a&gt; concrete plans to enforce government ID verification of developers and companies for apps not in the Play Store. This would likely be enforced by the proprietary Google Package Installer which they mandate for certified Android devices. This works by having (government ID verified) developers register their app package ID and associated signing key via the Play console. They notably plan to enforce install limits on apps that share a package ID of an existing registered app. It is furthermore currently unclear if they will allow developers to sign their own same package IDs with multiple keys without install limits.&lt;ul&gt;
		&lt;li&gt;This will for example likely significantly impact all apps (3,896) on F-Droid.org that both don&#039;t use reproducible builds (746) and don&#039;t use a unique F-Droid.org package ID (49) (-10 for overlap) which accounts for roughly ~79.85% of their current index.&lt;/li&gt;
		&lt;li&gt;Developers in sanctioned regions will be inherently prohibited from this program completely blocking use of their software.&lt;/li&gt;
		&lt;li&gt;There is no mechanism declared for unmaintained apps, which directly hinders archival efforts and their future use.&lt;/li&gt;
		&lt;li&gt;edit 09-18: This also means an internet connection is required to install apps.&lt;/li&gt;
		&lt;li&gt;If you are a developer/organization please consider &lt;a href=&quot;https://docs.google.com/forms/d/1riPsd_hN_SejtQidl9mavYQIhZhlknt6qnb7dNaiiqE&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;voicing any concern here&lt;/a&gt;.&lt;/li&gt;
	&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These issues are rapidly stacking on top of others, such as the years long anti-competitive behavior of Google aggressively pushing developers to adopt Play Integrity which blocks non-certified systems even if they provide substantially added security measures such as GrapheneOS. As a short aside you might think Google doesn&#039;t consider GrapheneOS to be &quot;big enough&quot;, except Play Services (GMS) actually explicitly checks for it and allows their Chromium-fork, Vanadium, to perform privileged FIDO2 operations.&lt;/p&gt;
&lt;p&gt;At this point I would not be surprised if Google does a rug pull on bootloader unlocking for Pixel devices within the next year. To date no one has made a working bootloader unlock bypass for even the first generation (Verizon CID) Google Pixel from nearly nine years ago.&lt;/p&gt;
&lt;p&gt;Moving forward, for those currently on stock Android please consider an &lt;a href=&quot;https://eylenburg.github.io/android_comparison.htm&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;aftermarket system&lt;/a&gt; like GrapheneOS. As for longterm, while the situation of &quot;Linux phones&quot; such as postmarketOS is extremely rough right now in terms of both usability and security, I encourage everyone to give them a try (on a &lt;a href=&quot;https://wiki.postmarketos.org/wiki/PINE64_PinePhone_(pine64-pinephone)&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;PinePhone&lt;/a&gt; or SDM845 device exclusively) and contribute their skills if possible because we &lt;em&gt;must&lt;/em&gt; have a viable third option.&lt;/p&gt;
&lt;p&gt;The best outcome would be for AOSP (and Chromium) to actually become true reference implementations controlled by a neutral joint party that caters to everyone&#039;s interests. But that is just fantasy, Google is playing 4D chess and will vigorously seek to ensure control over their precious jewels.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;Comment on this: &lt;a href=&quot;https://infosec.exchange/@divested/115100968161107745&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Fediverse&lt;/a&gt;, &lt;a href=&quot;https://news.ycombinator.com/item?id=45039482&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Hacker News&lt;/a&gt;, &lt;a href=&quot;https://discuss.privacyguides.net/t/google-aiming-for-gold/30541&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Privacy Guides Forum&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
</description>
			<guid isPermaLink="false">4b146f7c-7878-4621-a19d-a2e84e5244b4</guid>
			<pubDate>Wed, 27 Aug 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Hard Drives have TBW limits too</title>
			<link>https://divested.dev/pages/blog-2025-08-25-hdd-tbw</link>
			<description>&lt;p&gt;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&#039;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 &lt;a href=&quot;https://documents.westerndigital.com/content/dam/doc-library/en_us/assets/public/western-digital/collateral/white-paper/white-paper-ssd-endurance-and-hdd-workloads.pdf&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;WD here&lt;/a&gt; and from &lt;a href=&quot;https://www.seagate.com/support/kb/annualized-workload-rate-005902en/&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Seagate here&lt;/a&gt;. The WRL can be roughly converted to a TBW rating by multiplying the WRL by the years of the warranty. Notably this number seems to not scale with drive size like it does with SSDs.&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Here is a &lt;a href=&quot;https://www.nashq.com/pdf/drives/WD80EFPX.pdf&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;prosumer WD Red Plus drive&lt;/a&gt;, they have a 3 year warranty and a WRL of 180TB, so that is a TBW rating of 540TBW.&lt;/li&gt;
	&lt;li&gt;Here is a &lt;a href=&quot;https://www.seagate.com/content/dam/seagate/migrated-assets/www-content/datasheets/pdfs/ironwolf-18tb-DS1904-21-2207US-en_US.pdf&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;prosumer Seagate Ironwolf drive&lt;/a&gt;, they have a 3 year warranty and a WRL of 180TB, so that is a TBW rating of 540TBW.&lt;/li&gt;
	&lt;li&gt;Here is a &lt;a href=&quot;https://www.seagate.com/www-content/product-content/ironwolf/en-us/docs/100844774c.pdf&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;enterprise Seagate Ironwolf Pro drive&lt;/a&gt;, they have a 5 year warranty and a WRL of 300TB, so that is a TBW rating of 1500TBW.&lt;/li&gt;
	&lt;li&gt;Here is a &lt;a href=&quot;https://www.nashq.com/pdf/drives/WD8005FRYZ.pdf&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;enterprise WD Gold drive&lt;/a&gt;, they have a 5 year warranty and a WRL of 550TB, so that is a TBW rating of 2750TBW.&lt;/li&gt;
&lt;/ul&gt;
</description>
			<guid isPermaLink="false">20388bbb-9eaa-4b8d-bc76-622333db5a8e</guid>
			<pubDate>Mon, 25 Aug 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Web Server Upgrade</title>
			<link>https://divested.dev/pages/blog-2025-08-14-web_server_upgrade</link>
			<description>&lt;p&gt;I&#039;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 -&gt; btrfs).&lt;/p&gt;
</description>
			<guid isPermaLink="false">65c26faa-d7a5-4c99-836b-61da925cfd1d</guid>
			<pubDate>Thu, 14 Aug 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Jellyfin Corruption</title>
			<link>https://divested.dev/pages/blog-2025-08-04-jellyfin_corruption</link>
			<description>&lt;p&gt;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 &lt;code&gt;System.InvalidOperationException: There is an error in XML document (0, 0).&lt;/code&gt;. After searching most people say the whole database is corrupt, but in this case it was just the &lt;code&gt;migrations.xml&lt;/code&gt; file, which I restored from backup and it started up correctly afterwards. The future Jellyfin 10.11.0 appears to add a check to prevent starting when less than 2GB of disk space is available.&lt;/p&gt;
&lt;p&gt;As for why it ran out of disk space, streamed video was being remuxed for compatibility which was taking up disk space and the default option does not immediately remove old parts unless the setting &lt;code&gt;Dashboard &gt; Playback &gt; Transcoding &gt; Delete segments&lt;/code&gt; is enabled. Additionally it writes to the actual disk by default instead of /tmp since most systems likely lack enough space there.&lt;/p&gt;
</description>
			<guid isPermaLink="false">5874c7aa-b464-48ac-a347-abfe02e5d4fb</guid>
			<pubDate>Mon, 04 Aug 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Ryzen Laptop Suspend Issues</title>
			<link>https://divested.dev/pages/blog-2025-08-03-ryzen_suspend</link>
			<description>&lt;p&gt;I have two identical Ryzen 7530U laptops and one recently started immediately resuming when suspended. After a few hours of &lt;a href=&quot;https://docs.kernel.org/arch/x86/amd-debugging.html&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;troubleshooting&lt;/a&gt; I still have no idea why it does this. The AMD s2idle debug &lt;a href=&quot;https://git.kernel.org/pub/scm/linux/kernel/git/superm1/amd-debug-tools.git/about/&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;utility&lt;/a&gt; reported it as a PS/2 wakeup event. I tried &lt;a href=&quot;https://wiki.archlinux.org/title/Power_management/Wakeup_triggers#Ryzen_7000_Series&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;setting&lt;/a&gt; &lt;code&gt;gpiolib_acpi.ignore_interrupt=AMDI0030:00@44&lt;/code&gt; kernel command line argument to mitigate it but that didn&#039;t work. I did find that &lt;a href=&quot;https://wiki.archlinux.org/title/Power_management/Wakeup_triggers#/sys/module/acpi/parameters/ec_no_wakeup&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;setting&lt;/a&gt; &lt;code&gt;acpi.ec_no_wakeup=Y&lt;/code&gt; mitigated the issue successfully without any other noticeable impact.&lt;/p&gt;
</description>
			<guid isPermaLink="false">c83537d6-3290-4e26-b82d-e3088479c31a</guid>
			<pubDate>Sun, 03 Aug 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: LUKS Iterations</title>
			<link>https://divested.dev/pages/blog-2025-08-02-luks-iterations</link>
			<description>&lt;p&gt;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.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;cryptsetup luksConvertKey /dev/nvme0n1p3 --pbkdf argon2id --pbkdf-memory 4194304 --pbkdf-parallel 4 --pbkdf-force-iterations=16&lt;/code&gt;&lt;/pre&gt;
</description>
			<guid isPermaLink="false">b42b55e8-550b-4ba6-a382-598206e6c5a3</guid>
			<pubDate>Sat, 02 Aug 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Invizible v2.5.4 beta security issue</title>
			<link>https://divested.dev/pages/blog-2025-07-21-invizible_guards</link>
			<description>&lt;p&gt;I was reviewing through some projects yesterday and noticed &lt;a href=&quot;https://github.com/Gedsh/InviZible/commit/d0d16f9509a2d346d9022f5f71d20cec6296225f&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;this commit in Invizible&lt;/a&gt;. 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 affects this sole beta version.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;Comment on this: &lt;a href=&quot;https://infosec.exchange/@divested/114893261469667272&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Fediverse&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
</description>
			<guid isPermaLink="false">be26d070-bad2-42fb-8820-822be6e73384</guid>
			<pubDate>Mon, 21 Jul 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Resigning ucode to mitigate security issues</title>
			<link>https://divested.dev/pages/blog-2025-07-14-resigned-ucode</link>
			<description>&lt;p&gt;Today&#039;s real-ucode update now includes an optional subpackage &lt;code&gt;amd-ucode-firmware-resigned&lt;/code&gt; 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.&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Remove the exclusion if you had one from &lt;code&gt;/etc/dnf/dnf.conf&lt;/code&gt; first&lt;/li&gt;
	&lt;li&gt;Update package list: &lt;code&gt;dnf install https://divested.dev/rpm/fedora/divested-release-20250714-1.noarch.rpm&lt;/code&gt;&lt;/li&gt;
	&lt;li&gt;Update real-ucode: &lt;code&gt;dnf update --refresh&lt;/code&gt;&lt;/li&gt;
	&lt;li&gt;Swap them: &lt;code&gt;dnf swap amd-ucode-firmware amd-ucode-firmware-resigned&lt;/code&gt;&lt;/li&gt;
	&lt;li&gt;Update initramfs: &lt;code&gt;dracut -f&lt;/code&gt;&lt;/li&gt;
	&lt;li&gt;Disable hash verification: &lt;code&gt;grubby --update-kernel=ALL --args=&quot;microcode.amd_sha_check=off&quot;&lt;/code&gt;&lt;/li&gt;
	&lt;li&gt;&lt;code&gt;dmesg | grep microcode &gt;&gt; before&lt;/code&gt;&lt;/li&gt;
	&lt;li&gt;&lt;code&gt;lscpu &gt;&gt; before&lt;/code&gt;&lt;/li&gt;
	&lt;li&gt;Reboot to apply new microcode&lt;/li&gt;
	&lt;li&gt;&lt;code&gt;dmesg | grep microcode &gt;&gt; after&lt;/code&gt;&lt;/li&gt;
	&lt;li&gt;&lt;code&gt;lscpu &gt;&gt; after&lt;/code&gt;&lt;/li&gt;
	&lt;li&gt;Compare: meld before after&lt;/li&gt;
	&lt;li&gt;Enjoy!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;small&gt;Comment on this: &lt;a href=&quot;https://infosec.exchange/@divested/114853449344786172&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Fediverse&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
</description>
			<guid isPermaLink="false">e6447ab4-3ddf-4a1c-901b-629427aba37a</guid>
			<pubDate>Mon, 14 Jul 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: ECH rollout stats</title>
			<link>https://divested.dev/pages/blog-2025-07-08-ech_status</link>
			<description>&lt;p&gt;Fresh results of ECH availability on the top 10k domains (as ranked by Open PageRank) &lt;a href=&quot;/misc/ech.txt&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;is available here&lt;/a&gt;. I&#039;ve updated the script to also discern between hosted on Cloudflare or not.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;Comment on this: &lt;a href=&quot;https://infosec.exchange/@divested/114819779316929676&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Fediverse&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
</description>
			<guid isPermaLink="false">a42647fb-18dc-4aa3-a855-0e356686950b</guid>
			<pubDate>Tue, 08 Jul 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Packaging Udderance</title>
			<link>https://divested.dev/pages/blog-2025-06-26-packaging_udderance</link>
			<description>&lt;p&gt;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.&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;My assets directory was getting clobbered in the URI to load. This was annoying but easy to workaround by intercepting and rewriting it.&lt;/li&gt;
	&lt;li&gt;The Android WebView &lt;a href=&quot;https://issues.chromium.org/issues/40417848&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;does not support&lt;/a&gt; using the speechSynthesis API for TTS. Fine, whatever. I&#039;ll just strictly enable Sherpa.&lt;/li&gt;
	&lt;li&gt;Sherpa wasn&#039;t loading, but then I remembered I had the JIT disabled by default for apps on GrapheneOS. Toggling that and Sherpa works.&lt;/li&gt;
	&lt;li&gt;When Udderance detects it is running as a PWA, it hides the header &amp; footer. I adjusted that to handle running from Android app assets to match. But strangely then the page was getting cropped off by the status and nav bar. I worked around this by replacing them with line breaks instead.&lt;/li&gt;
	&lt;li&gt;I then remembered that I&#039;d have to compile Sherpa from source to meet the F-Droid inclusion criteria. &lt;a href=&quot;https://codeberg.org/divested/udderance/src/branch/master/prepare-sherpa-source.sh&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;So I did&lt;/a&gt;. However the fdroidserver instance fails to compile it with the Emscripten toolchain available in Debian repositories and generated a corrupted binary when using Emscripten from git. So I instead dropped Sherpa for this and manually proxy the TTS requests from the page to the system.&lt;/li&gt;
	&lt;li&gt;Then fdroidserver was failing to run the scripts to assemble everything. Turns out Debian&#039;s default dash shell does not support arrays or &amp;amp;&amp;gt; redirection and bash doesn&#039;t run aliases by default when non-interactive.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&#039;ve &lt;a href=&quot;https://gitlab.com/fdroid/fdroiddata/-/merge_requests/24139&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;submitted it&lt;/a&gt; to F-Droid for inclusion, and it should hopefully land soon!&lt;/p&gt;
&lt;p&gt;&lt;small&gt;Comment on this: &lt;a href=&quot;https://infosec.exchange/@divested/114752722149546273&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Fediverse&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
</description>
			<guid isPermaLink="false">e6136d0c-dd01-43e9-abb3-b397c47ebe18</guid>
			<pubDate>Thu, 26 Jun 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Security Sliders</title>
			<link>https://divested.dev/pages/blog-2025-06-25-security_sliders</link>
			<description>&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Back in October of 2024 I was &lt;a href=&quot;https://gitlab.torproject.org/tpo/applications/tor-browser/-/issues/42572&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;made aware&lt;/a&gt; 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 slider myself I was reminded of this. The issue was made public in March, but was still unfixed. It concerned me a bit so at the end of April I noted this issue to Jonah of Privacy Guides so they could &lt;a href=&quot;https://www.privacyguides.org/articles/2025/05/02/tor-security-slider-flaw/&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;publish a writeup&lt;/a&gt; and put impetus on Tor Project to fix it. Yesterday&#039;s Tor Browser update, &lt;a href=&quot;https://blog.torproject.org/new-release-tor-browser-1454/&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;version 14.5.4&lt;/a&gt;, finally fixes this years long issue on both desktop and Android platforms.&lt;/p&gt;
&lt;p&gt;Tor Project had this issue explicitly documented since at least May of 2024 and it was likely known offhandedly for years longer. I won&#039;t use this against them, but more so as a call to the community to get more involved. If you have the time and skills please consider contributing to the Tor Project, their mission is critical and everyone can benefit from it.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;Comment on this: &lt;a href=&quot;https://infosec.exchange/@divested/114745843754150998&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Fediverse&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
</description>
			<guid isPermaLink="false">a637cac4-08aa-4dfc-b9cc-5781407c9306</guid>
			<pubDate>Wed, 25 Jun 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Moving Against GenAI</title>
			<link>https://divested.dev/pages/blog-2025-06-23-against_genai</link>
			<description>&lt;p&gt;I&#039;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&#039;ve also removed the quick overviews from Kairoscope in favor of proper sources.&lt;/p&gt;
</description>
			<guid isPermaLink="false">d5e3cde1-2b74-4a91-a0bd-da6e1966cc2a</guid>
			<pubDate>Mon, 23 Jun 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Archiving YouTube Channels</title>
			<link>https://divested.dev/pages/blog-2025-06-21-youtube-archiving</link>
			<description>&lt;p&gt;Over the past few years YouTube has been adding &lt;a href=&quot;https://iter.ca/post/yt-adblock/&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;more&lt;/a&gt; and &lt;a href=&quot;https://github.com/yt-dlp/yt-dlp/issues/12563&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;more&lt;/a&gt; restrictions in place to watching videos ranging from fake buffering to adding DRM to completely blocking playback. I&#039;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 channels, both as a way to watch them normally and as a way to preserve their content in the event YouTube decides to more aggressively enforce their restrictions (eg. mandatory account requirement). If you&#039;re reading this you&#039;ve probably heard of yt-dlp (or its predecessor youtube-dl), however the defaults will miss quite a bit of necessary extras, so below I document strongly recommended options as well as some tips. I will get straight to the point with the whole command.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;yt-dlp --format &#039;bestvideo+bestaudio/best&#039; --merge-output-format=mkv --embed-chapters --embed-metadata --embed-thumbnail --convert-thumbnails jpg --write-subs --write-auto-subs --sub-langs=en --write-description --mtime --download-archive 0COMPLETED --batch-file 0SOURCES&lt;/code&gt;&lt;/pre&gt;
&lt;h4 id=&quot;2025-06-21-youtube-archiving-usage&quot;&gt;OK so how to use this command?&lt;/h4&gt;
&lt;p&gt;First have your top level directory which you will do the processing in. Save that command in a file eg. &lt;code&gt;archive.sh&lt;/code&gt;, then create a folder for each given channel you want to save. In each channel folder you will want to create the &lt;code&gt;0SOURCES&lt;/code&gt; file containing the link to their channel (eg. &lt;code&gt;https://www.youtube.com/@CHANNEL_HERE&lt;/code&gt;). Then simply invoke the script: &lt;code&gt;sh ../archive.sh&lt;/code&gt;.&lt;/p&gt;
&lt;h4 id=&quot;2025-06-21-youtube-archiving-options&quot;&gt;What do the options do?&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;code&gt;--format &#039;bestvideo+bestaudio/best&#039;&lt;/code&gt;: Prefer the best quality video and best quality audio by merging two distinct streams, or falling back to best singular stream if unavailable.&lt;/li&gt;
	&lt;li&gt;&lt;code&gt;--merge-output-format=mkv&lt;/code&gt;: Put everything into an MKV container.&lt;/li&gt;
	&lt;li&gt;&lt;code&gt;--embed-chapters&lt;/code&gt;: Adds chapter markers to the MKV.&lt;/li&gt;
	&lt;li&gt;&lt;code&gt;--embed-metadata&lt;/code&gt;: Adds the video description, release date, and ID to the MKV.&lt;/li&gt;
	&lt;li&gt;&lt;code&gt;--embed-thumbnail&lt;/code&gt;: Adds the thumbnail to the MKV.&lt;/li&gt;
	&lt;li&gt;&lt;code&gt;--convert-thumbnails jpg&lt;/code&gt;: Convert the thumbnail from Google&#039;s default WebP to JPG, which is better supported by media players.&lt;/li&gt;
	&lt;li&gt;&lt;code&gt;--write-subs --write-auto-subs&lt;/code&gt;: Write subtitles, prefer real ones with fallback to automatically generated ones.&lt;/li&gt;
	&lt;li&gt;&lt;code&gt;--sub-langs=en&lt;/code&gt;: Specify the language you want for subtitles. List of &lt;a href=&quot;https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes#Table&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;codes here&lt;/a&gt;.&lt;/li&gt;
	&lt;li&gt;&lt;code&gt;--write-description&lt;/code&gt;: Write the video description to a &lt;code&gt;.description&lt;/code&gt; file.&lt;/li&gt;
	&lt;li&gt;&lt;code&gt;--mtime&lt;/code&gt;: Adjust the output file timestamp to match to the server&#039;s recorded time of the content.&lt;/li&gt;
	&lt;li&gt;&lt;code&gt;--download-archive 0COMPLETED&lt;/code&gt;: This keeps a list of every video that has been downloaded to prevent rechecking/redownloading them each run.&lt;/li&gt;
	&lt;li&gt;&lt;code&gt;--batch-file 0SOURCES&lt;/code&gt;: This specifies what links to download.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&quot;2025-06-21-youtube-archiving-tips&quot;&gt;Any tips?&lt;/h4&gt;
&lt;ul&gt;
	&lt;li&gt;Always update yt-dlp first! Some distros fall behind, so best to just use their GitHub release and run &lt;code&gt;yt-dlp --update&lt;/code&gt; before continuing.&lt;/li&gt;
	&lt;li&gt;With the external &lt;code&gt;.description&lt;/code&gt; and &lt;code&gt;.vtt&lt;/code&gt; (subtitles) files, you can &lt;code&gt;grep&lt;/code&gt; through them as a rough method of full text search of a channel!&lt;/li&gt;
	&lt;li&gt;Setup a Jellyfin instance and add your top-level archive directory as a &#039;Home Videos and Photos&#039; collection, and it will put each channel into its own sub-folder. This lets you correctly sort them by release date and track your watch progress/history.&lt;/li&gt;
	&lt;li&gt;If you&#039;re downloading over Tor using &lt;code&gt;torsocks&lt;/code&gt; you must use the standard &lt;code&gt;yt-dlp&lt;/code&gt; binary, as their &lt;code&gt;yt-dlp_linux&lt;/code&gt; binary is statically linked which is incompatible and will bypass &lt;code&gt;torsocks&lt;/code&gt;.&lt;/li&gt;
	&lt;li&gt;Sometimes you can download videos but not their subtitles depending on your IP, so watch out for that.&lt;/li&gt;
	&lt;li&gt;Sometimes if a video was recently added, the highest quality format is unavailable, even if it shows up on the website.&lt;/li&gt;
	&lt;li&gt;You can sometimes find unlisted videos by downloading their playlists, duplicate the channel link in &lt;code&gt;0SOURCES&lt;/code&gt; and append &lt;code&gt;/playlists&lt;/code&gt;. Be sure to comment it after, as playlist processing can easily get you rate-limited.&lt;/li&gt;
	&lt;li&gt;If yt-dlp outputs that a video is age-restricted or private you can see if archive.org has a copy, add &lt;code&gt;https://web.archive.org/web/https://www.youtube.com/watch?v=VIDEO_ID_HERE&lt;/code&gt; to your &lt;code&gt;0SOURCES&lt;/code&gt; file. Be sure to comment it after.&lt;/li&gt;
	&lt;li&gt;If you have a slow Internet connection you might want to rate limit the process so as to not make your Internet unusable, add the &lt;code&gt;--limit-rate 4M&lt;/code&gt; option, changing it to however fast/slow you want it.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;small&gt;Comment on this: &lt;a href=&quot;https://infosec.exchange/@divested/114722616952906182&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Fediverse&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
</description>
			<guid isPermaLink="false">ff337b2d-87ab-4d05-a929-d357be96344c</guid>
			<pubDate>Sat, 21 Jun 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Converting HTML to Markdown</title>
			<link>https://divested.dev/pages/blog-2025-06-20-2-html_to_markdown</link>
			<description>&lt;p&gt;I needed to do this earlier and pulled pandoc out, except the output was not great. Turns out you need to specify &lt;code&gt;markdown_strict&lt;/code&gt; instead. If you have tables you may also want to to append &lt;code&gt;+pipe_tables&lt;/code&gt; to the output format.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;pandoc --wrap=none --from html --to markdown_strict page.html --output page.md&lt;/code&gt;&lt;/pre&gt;
</description>
			<guid isPermaLink="false">2fe4e873-2e59-416f-a3db-d0a51e9b33da</guid>
			<pubDate>Fri, 20 Jun 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Kairoscope Updates</title>
			<link>https://divested.dev/pages/blog-2025-06-20-kairoscope_updates</link>
			<description>&lt;p&gt;I&#039;ve prioritized and added more reading sources, as well as tidied up the pages.&lt;/p&gt;
</description>
			<guid isPermaLink="false">1662f023-e1d8-410e-ae4a-69d753000d94</guid>
			<pubDate>Fri, 20 Jun 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Welcome</title>
			<link>https://divested.dev/pages/blog-2025-06-19-2-welcome</link>
			<description>&lt;p&gt;I figured it was about time I started a blog. I&#039;ve backfilled it a little from my recent toots, along with some extras sprinkled in there.&lt;br&gt;I&#039;ve also made a handful of updates to the website the past few days, especially the homepage. And I&#039;ve added a &lt;a href=&quot;/#aiDisclosure&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;&#039;GenAI usage disclosure&#039;&lt;/a&gt; section, which I encourage others to do as well.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;Comment on this: &lt;a href=&quot;https://infosec.exchange/@divested/114711312380909883&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Fediverse&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
</description>
			<guid isPermaLink="false">6a9bc4dd-9a16-4aed-9bf6-ddd13d94ab8f</guid>
			<pubDate>Thu, 19 Jun 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Dark Mode</title>
			<link>https://divested.dev/pages/blog-2025-06-19-dark_mode</link>
			<description>&lt;p&gt;I&#039;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.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;Comment on this: &lt;a href=&quot;https://infosec.exchange/@divested/114711007424451833&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Fediverse&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
</description>
			<guid isPermaLink="false">76b5b924-4c8c-4487-be22-33403f7b6728</guid>
			<pubDate>Thu, 19 Jun 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Udderance Updates</title>
			<link>https://divested.dev/pages/blog-2025-06-18-udderance_updates</link>
			<description>&lt;ul&gt;
	&lt;li&gt;added 14 more phrase boards after implementing a Open Board Format converter&lt;/li&gt;
	&lt;li&gt;made sub menu navigation cleaner by collapsing others&lt;/li&gt;
	&lt;li&gt;added support for Escape key to close dialogs/submenus&lt;/li&gt;
	&lt;li&gt;generated the remaining 5647 translations, still to be imported&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;small&gt;Comment on this: &lt;a href=&quot;https://infosec.exchange/@divested/114705537974879865&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Fediverse&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
</description>
			<guid isPermaLink="false">d27fb5c8-6ffe-4f39-b836-a4c811586ca1</guid>
			<pubDate>Wed, 18 Jun 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Freshly Picked Onions</title>
			<link>https://divested.dev/pages/blog-2025-06-17-vanity_onions</link>
			<description>&lt;p&gt;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.&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;divested.dev: divestedqc3zjycu&lt;wbr&gt;pgdvmpzzlxtw6jkx&lt;wbr&gt;sin2xo4g4nxzsu77&lt;wbr&gt;jknygxqd.onion&lt;/li&gt;
	&lt;li&gt;kairoscope.org: screenerivy55uvi&lt;wbr&gt;qfvyqtx5sjwxbeuw&lt;wbr&gt;airfusxedszywr5p&lt;wbr&gt;6g7us6qd.onion&lt;/li&gt;
	&lt;li&gt;udderance.app: udderaacpou4mku6&lt;wbr&gt;xptn7ebdzgzw63mt&lt;wbr&gt;z6jnyafk6jd43xoi&lt;wbr&gt;u6ymbbqd.onion&lt;/li&gt;
&lt;/ul&gt;
</description>
			<guid isPermaLink="false">48672aad-9c96-49a4-86fa-a727c131cb7c</guid>
			<pubDate>Tue, 17 Jun 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Brace Updates</title>
			<link>https://divested.dev/pages/blog-2025-06-16-brace_updates</link>
			<description>&lt;p&gt;Fedora just shipped chrony 4.7 today and Brace&#039;s previous override caused the service to be terminated by systemd due to the upstream service file switching from &lt;code&gt;forking&lt;/code&gt; to &lt;code&gt;notify&lt;/code&gt; type.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;Comment on this: &lt;a href=&quot;https://codeberg.org/divested/brace/commit/8856c8d380cd011efe79536a4278fb50e5fef232&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;GitHub&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
</description>
			<guid isPermaLink="false">0343ce3d-4c17-4392-b2f1-c48211b36903</guid>
			<pubDate>Mon, 16 Jun 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Cables Fail - Part 2</title>
			<link>https://divested.dev/pages/blog-2025-06-15-2-cables_fail</link>
			<description>&lt;p&gt;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&#039;t be surprised if there were carrier errors at 1Gb too, but I didn&#039;t bother checking logs.&lt;/p&gt;
</description>
			<guid isPermaLink="false">e22bc427-2346-483a-aecd-106deac99aa9</guid>
			<pubDate>Sun, 15 Jun 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Udderance Updates</title>
			<link>https://divested.dev/pages/blog-2025-06-15-udderance_updates</link>
			<description>&lt;ul&gt;
	&lt;li&gt;Boards are now machine translated into 35 languages&lt;/li&gt;
	&lt;li&gt;Pictograms now work in Safari&lt;/li&gt;
	&lt;li&gt;Phrase buttons are now in a dialog view instead of a collapse view for quicker navigation&lt;/li&gt;
	&lt;li&gt;Phrase board generation has been overhauled to allow for sub boards as a prerequisite for importing Open Board Format files&lt;/li&gt;
	&lt;li&gt;Many homepage improvements: features, compatibility matrix, explanations, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;More information on the choice of languages: These added 35 cover every TTS voice that Apple provides for different languages. So feel free to pick a matching board and voice and use it entirely in your native language!&lt;/p&gt;
&lt;p&gt;&lt;small&gt;Comment on this: &lt;a href=&quot;https://infosec.exchange/@divested/114688886101292793&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Fediverse&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
</description>
			<guid isPermaLink="false">4fb5979d-7376-4149-a129-8d21b6026492</guid>
			<pubDate>Sun, 15 Jun 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Udderance Updates</title>
			<link>https://divested.dev/pages/blog-2025-06-14-udderance_updates</link>
			<description>&lt;p&gt;Just added pictogram support for 700+ phrases to Udderance thanks to the &lt;a href=&quot;https://mulberrysymbols.org/&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Mulberry Symbols&lt;/a&gt; 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.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;Comment on this: &lt;a href=&quot;https://infosec.exchange/@divested/114682123046995525&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Fediverse&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
</description>
			<guid isPermaLink="false">74d684b4-e674-413e-a1e3-503b264edd65</guid>
			<pubDate>Sat, 14 Jun 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Udderance Updates</title>
			<link>https://divested.dev/pages/blog-2025-06-13-udderance_updates</link>
			<description>&lt;ul&gt;
	&lt;li&gt;Support for dynamic phrase board generation and presets&lt;/li&gt;
	&lt;li&gt;A board preset cloned from Cboard AAC&lt;/li&gt;
	&lt;li&gt;Improved voice list handling&lt;/li&gt;
	&lt;li&gt;Support for Sherpa TTS via WASM for more voices and as a fallback when WebSpeech is unavailable (many Linux distros don&#039;t seem to setup/enable Speech Dispatcher)&lt;/li&gt;
	&lt;li&gt;Tiny additions like a button to clear the history log&lt;/li&gt;
	&lt;li&gt;Various bug fixes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;small&gt;Comment on this: &lt;a href=&quot;https://infosec.exchange/@divested/114677668080189216&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Fediverse&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
</description>
			<guid isPermaLink="false">de4f95ef-d1ff-4e9c-b820-b04df0fa4d6a</guid>
			<pubDate>Fri, 13 Jun 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: iPhone Review</title>
			<link>https://divested.dev/pages/blog-2025-06-12-iphone_review</link>
			<description>&lt;p&gt;My six month review/notes of daily driving an iPhone as someone who spent a decade maintaining their own Android distro:&lt;/p&gt;

&lt;p&gt;Overall: Mostly OK, some parts are better than I expected, but others are abysmal.&lt;/p&gt;

&lt;p&gt;Cost: Awful expensive: $600+ phone + monthly iCloud subscription.&lt;/p&gt;

&lt;p&gt;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 infested with trackers, require accounts, or even subscriptions too. So for this reason I relegate my iPhone as a basic phone, messenger, lite web browser, navigator, and iPod and then also daily drive a Pixel with GrapheneOS loaded with my favorite FOSS apps for other typical uses of a pocketable computer.&lt;/p&gt;

&lt;ul&gt;
	&lt;li&gt;System&lt;/li&gt;
		&lt;ul&gt;
			&lt;li&gt;Tons of accessibility features and choices are extremely nice.&lt;/li&gt;
			&lt;li&gt;Lack of central back button is an accessibility hazard.&lt;/li&gt;
			&lt;li&gt;Swipe actions and gestures are frequently misread.&lt;/li&gt;
			&lt;li&gt;Text selection and cursor movement is completely broken.&lt;/li&gt;
			&lt;li&gt;No status bar indicator when an alarm clock is active.&lt;/li&gt;
			&lt;li&gt;No way to display seconds in status bar or lock screen.&lt;/li&gt;
			&lt;li&gt;Can&#039;t start hotspot while connected to Wi-Fi.&lt;/li&gt;
				&lt;ul&gt;
					&lt;li&gt;Not a hardware limitation: Hotspot + CarPlay works.&lt;/li&gt;
				&lt;/ul&gt;
			&lt;li&gt;Music identification feature pushes Shazam app.&lt;/li&gt;
			&lt;li&gt;Sticks to a Wi-Fi AP for many seconds longer after it is beyond gone.&lt;/li&gt;
			&lt;li&gt;For non lockdown users: No way to disable Game Center.&lt;/li&gt;
			&lt;li&gt;Low battery warning completely interrupts any task.&lt;/li&gt;
			&lt;li&gt;Automatic updates will delay for days/weeks before installing.&lt;/li&gt;
			&lt;li&gt;No option for immediate notification of system updates.&lt;/li&gt;
			&lt;li&gt;Updates leave you with an unusable phone for many minutes.&lt;/li&gt;
			&lt;li&gt;No Internet permission for apps.&lt;/li&gt;
			&lt;li&gt;Cellular data statistics has no mechanism to set a bill/cycle date.&lt;/li&gt;
			&lt;li&gt;No ability to set a hard limit for cellular data.&lt;/li&gt;
			&lt;li&gt;VPN function has no mechanism to block when disabled/connecting.&lt;/li&gt;
			&lt;li&gt;Flashlight function is very dim. You can long press to increase it slightly.&lt;/li&gt;
				&lt;ul&gt;
					&lt;li&gt;Or just go grab a Wurkkos FC11C or my favorite the TS22 :)&lt;/li&gt;
				&lt;/ul&gt;
			&lt;li&gt;No singular toggle for data savings.&lt;/li&gt;
			&lt;li&gt;No singular toggle for opt-ing out of friend search and sharing features.&lt;/li&gt;
			&lt;li&gt;No singular toggle for disabling analytics.&lt;/li&gt;
			&lt;li&gt;No quick way to adjust other volume settings.&lt;/li&gt;
			&lt;li&gt;Lockdown feels skin deep.&lt;/li&gt;
			&lt;li&gt;Satellite SOS function is neat.&lt;/li&gt;
			&lt;li&gt;Time is always very accurate. Android usually drifts +- 2 seconds.&lt;/li&gt;
			&lt;li&gt;Animations are frustratingly slow. Turning them off just makes it jarring.&lt;/li&gt;
			&lt;li&gt;bug: Volume will randomly be set to max when using Bluetooth headphones.&lt;/li&gt;
			&lt;li&gt;bug: When lockdown is enabled, Game Center just loads forever with no message/error.&lt;/li&gt;
		&lt;/ul&gt;

	&lt;li&gt;Hardware&lt;/li&gt;
		&lt;ul&gt;
			&lt;li&gt;They took too long to switch to USB-C.&lt;/li&gt;
			&lt;li&gt;CPU is FAST, but they then kneecap it by putting not enough RAM.&lt;/li&gt;
			&lt;li&gt;The speakers are fantastic.&lt;/li&gt;
		&lt;/ul&gt;

	&lt;li&gt;Accessibility&lt;/li&gt;
		&lt;ul&gt;
			&lt;li&gt;Live Speech should have a speak on space option.&lt;/li&gt;
			&lt;li&gt;Live Speech should immediately open the keyboard.&lt;/li&gt;
			&lt;li&gt;Live Speech has no import/export option for saved phrases.&lt;/li&gt;
			&lt;li&gt;bug: Live Speech bugs out and is broken when opened from the lock screen.&lt;/li&gt;
			&lt;li&gt;bug: Live Speech inconsistently turns into a floating bubble.&lt;/li&gt;
			&lt;li&gt;bug: During the Personal Voice prompt wizard you can abort the process without confirmation by tapping Done.&lt;/li&gt;
		&lt;/ul&gt;

	&lt;li&gt;Notification Tray&lt;/li&gt;
		&lt;ul&gt;
			&lt;li&gt;Absolutely useless and very confusing.&lt;/li&gt;
		&lt;/ul&gt;

	&lt;li&gt;Quick Settings&lt;/li&gt;
		&lt;ul&gt;
			&lt;li&gt;Tapping the Bluetooth toggle doesn&#039;t actually turn it off.&lt;/li&gt;
			&lt;li&gt;Tapping the hotspot toggle does weird things.&lt;/li&gt;
		&lt;/ul&gt;

	&lt;li&gt;Keyboard&lt;/li&gt;
		&lt;ul&gt;
			&lt;li&gt;Extra symbols are not obviously apparent.&lt;/li&gt;
			&lt;li&gt;The default single quote key is a `right single quotation mark` instead of a &#039;straight apostrophe&#039;.&lt;/li&gt;
			&lt;li&gt;bug: Can be half dark and half light.&lt;/li&gt;
			&lt;li&gt;bug: Sometimes will be squished into the left 70% of the screen.&lt;/li&gt;
		&lt;/ul&gt;

	&lt;li&gt;Home Screen&lt;/li&gt;
		&lt;ul&gt;
			&lt;li&gt;If a folder has &lt;=4 apps in it, you cannot see their names.&lt;/li&gt;
		&lt;/ul&gt;

	&lt;li&gt;USB Transfer&lt;/li&gt;
		&lt;ul&gt;
			&lt;li&gt;Some photos will not appear if they (silently) fail to be converted from HEIF to JPEG.&lt;/li&gt;
			&lt;li&gt;Large videos CANNOT be transferred over USB MTP. Instead forcing use of macOS/iTunes.&lt;/li&gt;
				&lt;ul&gt;
					&lt;li&gt;A workaround is to use an exFAT formatted flash drive via USB OTG.&lt;/li&gt;
				&lt;/ul&gt;
		&lt;/ul&gt;

	&lt;li&gt;App Store&lt;/li&gt;
		&lt;ul&gt;
			&lt;li&gt;Why are there ads? Why are they implemented maliciously?&lt;/li&gt;
				&lt;ul&gt;
					&lt;li&gt;You can search &#039;Orbot&#039; and the first result is a scam app due to it being an ad.&lt;/li&gt;
				&lt;/ul&gt;
			&lt;li&gt;Apple Arcade is nice as the apps available via it all appear to have much stricter data collection policies.&lt;/li&gt;
		&lt;/ul&gt;

	&lt;li&gt;Books&lt;/li&gt;
		&lt;ul&gt;
			&lt;li&gt;Searching for new books is abysmal and has no real filter support.&lt;/li&gt;
		&lt;/ul&gt;

	&lt;li&gt;Calculator&lt;/li&gt;
		&lt;ul&gt;
			&lt;li&gt;Like most phone calculators, it is awful, just give me a TI please.&lt;/li&gt;
		&lt;/ul&gt;

	&lt;li&gt;Calendar&lt;/li&gt;
		&lt;ul&gt;
			&lt;li&gt;Events get shown directly on the month view, but titles are poorly clipped off.&lt;/li&gt;
		&lt;/ul&gt;

	&lt;li&gt;Camera&lt;/li&gt;
		&lt;ul&gt;
			&lt;li&gt;Volume buttons start/stop video recording instead of zooming and can be easily mispressed, especially without noticing.&lt;/li&gt;
			&lt;li&gt;An in-app HDR toggle would be nice.&lt;/li&gt;
			&lt;li&gt;Can&#039;t record with both cameras at once.&lt;/li&gt;
			&lt;li&gt;Can&#039;t switch between cameras while recording.&lt;/li&gt;
			&lt;li&gt;Plays a shutter sound only sometimes? What is the logic?&lt;/li&gt;
			&lt;li&gt;Video appears super cropped even when disabling &quot;Enhanced Stabilization&quot;.&lt;/li&gt;
			&lt;li&gt;Files are sequentially named... WHY!? PUT A TIMESTAMP IN THEM!&lt;/li&gt;
		&lt;/ul&gt;

	&lt;li&gt;Clock&lt;/li&gt;
		&lt;ul&gt;
			&lt;li&gt;When enabling an alarm clock there is no helpful toast/indication of how many hours until it triggers.&lt;/li&gt;
			&lt;li&gt;World clock choices has no mechanism to simply pick a time zone.&lt;/li&gt;
		&lt;/ul&gt;

	&lt;li&gt;Contacts&lt;/li&gt;
		&lt;ul&gt;
			&lt;li&gt;VCF imports seem very limited. iCloud on the web seems to handle much better.&lt;/li&gt;
			&lt;li&gt;Option to export all contacts is hidden behind a long press of the contact list.&lt;/li&gt;
		&lt;/ul&gt;

	&lt;li&gt;FaceTime&lt;/li&gt;
		&lt;ul&gt;
			&lt;li&gt;Entirely useless when lockdown mode is enabled since the callback test mechanism is ephemeral and contacts aren&#039;t considered.&lt;/li&gt;
		&lt;/ul&gt;

	&lt;li&gt;Files&lt;/li&gt;
		&lt;ul&gt;
			&lt;li&gt;Feels like a toy.&lt;/li&gt;
		&lt;/ul&gt;

	&lt;li&gt;Fitness&lt;/li&gt;
		&lt;ul&gt;
			&lt;li&gt;Requires 3rd party apps for anything but step tracking.&lt;/li&gt;
			&lt;li&gt;Step tracking does appear to be fairly accurate.&lt;/li&gt;
			&lt;li&gt;Step tracking stats are delayed by about ~15 minutes, but this likely is why it is accurate.&lt;/li&gt;
		&lt;/ul&gt;

	&lt;li&gt;Freeform&lt;/li&gt;
		&lt;ul&gt;
			&lt;li&gt;I confused this with the note/sketch app at first, this is instead intended for whiteboard style collaboration.&lt;/li&gt;
		&lt;/ul&gt;

	&lt;li&gt;Health&lt;/li&gt;
		&lt;ul&gt;
			&lt;li&gt;The periodical prompt to take the PHQ-9 and GAD-7 screeners are nice, but should also feature others too.&lt;/li&gt;
			&lt;li&gt;Has way too many sub menus to dig into attributes.&lt;/li&gt;
			&lt;li&gt;Medication reminders are hard to access/manage.&lt;/li&gt;
		&lt;/ul&gt;

	&lt;li&gt;Maps&lt;/li&gt;
		&lt;ul&gt;
			&lt;li&gt;Largely fine.&lt;/li&gt;
			&lt;li&gt;I don&#039;t like the overreliance on Yelp, which often has outdated/incorrect information.&lt;/li&gt;
			&lt;li&gt;I like to see a place before I arrive and you cannot zoom into the pictures without it forcing you to install the Yelp app.&lt;/li&gt;
			&lt;li&gt;If you keep driving past a turn during navigation it&#039;ll keep repeating to turn back instead of recalculating to your different route.&lt;/li&gt;
			&lt;li&gt;Automatic suggestion/routing to frequent locations can be quite annoying.&lt;/li&gt;
			&lt;li&gt;Downloaded maps are poorly implemented since you can only solely use them or not use them, no in-between.&lt;/li&gt;
			&lt;li&gt;Searching by coordinates and saving to library will actually save a random location in that ZIP code instead of the coordinates.&lt;/li&gt;
		&lt;/ul&gt;

	&lt;li&gt;Maps via CarPlay&lt;/li&gt;
		&lt;ul&gt;
			&lt;li&gt;Impossible to search for other places when navigating without using Siri.&lt;/li&gt;
			&lt;li&gt;Traffic information and speed limits are not shown when not actively navigating.&lt;/li&gt;
			&lt;li&gt;When not navigating it just displays your position randomly on the map instead of focused/directionally.&lt;/li&gt;
		&lt;/ul&gt;


	&lt;li&gt;Messages&lt;/li&gt;
		&lt;ul&gt;
			&lt;li&gt;Links are disabled, even for (verified) contacts, when lockdown is enabled.&lt;/li&gt;
			&lt;li&gt;When another iMessage contact turns their phone off, it falls back to unencrypted SMS without clear indication.&lt;/li&gt;
			&lt;li&gt;If someone reacts to your message it plays a distinct, non-customizable, notification sound.&lt;/li&gt;
			&lt;li&gt;By default notifications repeat after two minutes.&lt;/li&gt;
				&lt;ul&gt;
					&lt;li&gt;Can be disabled via Settings &gt; Notifications &gt; Messages &gt; Customize Notifications &gt; Repeat Alerts&lt;/li&gt;
				&lt;/ul&gt;
			&lt;li&gt;bug: Sometimes pictures/attachments just fail to send with no error shown.&lt;/li&gt;
		&lt;/ul&gt;

	&lt;li&gt;Music&lt;/li&gt;
		&lt;ul&gt;
			&lt;li&gt;Can be too easy to click onto another song and mess up your current playback.&lt;/li&gt;
			&lt;li&gt;As with most streaming services some albums or even single songs are missing due to licensing/region restrictions.&lt;/li&gt;
			&lt;li&gt;Notifications for new songs/albums from favorited artists are nice.&lt;/li&gt;
			&lt;li&gt;Can&#039;t just copy over your own music.&lt;/li&gt;
			&lt;li&gt;Has high quality album art, but no mechanism to zoom/inspect.&lt;/li&gt;
			&lt;li&gt;bug: The download button sometimes won&#039;t appear at all.&lt;/li&gt;
		&lt;/ul&gt;

	&lt;li&gt;News&lt;/li&gt;
		&lt;ul&gt;
			&lt;li&gt;Why are there ads?&lt;/li&gt;
		&lt;/ul&gt;

	&lt;li&gt;Passwords&lt;/li&gt;
		&lt;ul&gt;
			&lt;li&gt;Can&#039;t have a TOTP code without an associated account entry.&lt;/li&gt;
				&lt;ul&gt;
					&lt;li&gt;If you make a dummy entry then it will complain about weak passwords.&lt;/li&gt;
				&lt;/ul&gt;
		&lt;/ul&gt;

	&lt;li&gt;Safari&lt;/li&gt;
		&lt;ul&gt;
			&lt;li&gt;Private Relay as an MPR is awesome and well made.&lt;/li&gt;
			&lt;li&gt;Private Relay however gets disabled when connected to a VPN with no option to re-enable.&lt;/li&gt;
			&lt;li&gt;The button to clear history/data can be hard to see.&lt;/li&gt;
			&lt;li&gt;Websites cannot use the high quality TTS voices via the WebSpeech API.&lt;/li&gt;
			&lt;li&gt;What is the difference between bookmarks and favorites?&lt;/li&gt;
			&lt;li&gt;Impossible to screen record without showing your favorites if you have to type it in.&lt;/li&gt;
			&lt;li&gt;Many icons on websites are broken when lockdown is enabled due to font restrictions. Supposedly fixed in upcoming iOS 26.&lt;/li&gt;
		&lt;/ul&gt;

	&lt;li&gt;Translate&lt;/li&gt;
		&lt;ul&gt;
			&lt;li&gt;Similar to Maps, offline mode is awful since it cannot fallback to online translation for unavailable languages when in offline mode.&lt;/li&gt;
		&lt;/ul&gt;

	&lt;li&gt;Weather&lt;/li&gt;
		&lt;ul&gt;
			&lt;li&gt;Nowcasting is frequently inaccurate and causes warning fatigue.&lt;/li&gt;
			&lt;li&gt;It would be nice to have aurora forecasts and alerts for solar/lunar eclipses.&lt;/li&gt;
			&lt;li&gt;bug: Map loading can be very slow or non-functional sometimes.&lt;/li&gt;
		&lt;/ul&gt;
&lt;/ul&gt;


&lt;p&gt;&lt;small&gt;Comment on this: &lt;a href=&quot;https://infosec.exchange/@divested/114671914001202509&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Fediverse&lt;/a&gt;, &lt;a href=&quot;https://discuss.privacyguides.net/t/notes-after-daily-driving-an-iphone-for-six-months/28279&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Privacy Guides Forum&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
</description>
			<guid isPermaLink="false">a4c96d3c-b630-41d7-8593-fb514281d5de</guid>
			<pubDate>Thu, 12 Jun 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Recommended Settings</title>
			<link>https://divested.dev/pages/blog-2025-06-11-recommended_settings</link>
			<description>&lt;p&gt;I&#039;ve published some recommended settings lists for &lt;a href=&quot;/misc/gos.txt&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;GrapheneOS&lt;/a&gt; and &lt;a href=&quot;/misc/ios.txt&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;iOS&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;Comment on this: &lt;a href=&quot;https://infosec.exchange/@divested/114666236740432995&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Fediverse&lt;/a&gt;, &lt;a href=&quot;https://discuss.privacyguides.net/t/recomended-settings-for-ios-and-grapheneos/28260&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Privacy Guides Forum&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
</description>
			<guid isPermaLink="false">fc07b4a2-908d-46c4-88b7-06a4f2b56c99</guid>
			<pubDate>Wed, 11 Jun 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Launching Udderance</title>
			<link>https://divested.dev/pages/blog-2025-06-10-launching_udderance</link>
			<description>&lt;p&gt;Happy Tuesday! 🛸🐮&lt;br&gt;&lt;a href=&quot;https://udderance.app&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Here&lt;/a&gt; is another small project I made yesterday.&lt;br&gt;Udderance is a text-to-speech (TTS) based augmentative and alternative communication (AAC) tool with a focus on simplicity and cross-platform usage.&lt;br&gt;It is meant to be installed as a PWA (via your browser) on your phone.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;Comment on this: &lt;a href=&quot;https://infosec.exchange/@divested/114659857011643979&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Fediverse&lt;/a&gt;, &lt;a href=&quot;https://discuss.privacyguides.net/t/udderance-simple-tts-aac/28230&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Privacy Guides Forum&lt;/a&gt;, &lt;a href=&quot;https://news.ycombinator.com/item?id=44311410&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Hacker News&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
</description>
			<guid isPermaLink="false">38f3a7ca-d41a-41e0-97a9-3d327d0d2c96</guid>
			<pubDate>Tue, 10 Jun 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Strange ZFS behavior</title>
			<link>https://divested.dev/pages/blog-2025-06-07-zfs-weirdness</link>
			<description>&lt;p&gt;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&#039;ve observed this previously, but didn&#039;t document it last time.&lt;/p&gt;
</description>
			<guid isPermaLink="false">e2c95018-6bd3-44e7-bf08-562704f67792</guid>
			<pubDate>Sat, 07 Jun 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Summarizing a YouTube video</title>
			<link>https://divested.dev/pages/blog-2025-06-04-yt_summaries</link>
			<description>&lt;p&gt;Someone on a forum asked for a summary of a YouTube video so I figured I&#039;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&#039;ll also need to &lt;a href=&quot;https://github.com/ollama/ollama/blob/main/docs/faq.md#how-can-i-specify-the-context-window-size&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;increase&lt;/a&gt; your Ollama context limit from the default 4k to 16k or higher if the video is particularly long.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;videoID=&quot;[YOUTUBE VIDEO ID]&quot;;
yt-dlp --write subs --write-auto-subs --skip-download &quot;https://www.youtube.com/watch?v=$videoID&quot;;
cat &quot;*$videoID*.vtt&quot; | grep -v &quot;&amp;lt;&amp;gt;&quot; | grep -v &quot;\-\-&amp;gt;&quot; | grep -v &quot;&amp;gt;&amp;lt;&quot; | awk &#039;!seen[$0]++&#039; | tail -n +4 | tr &#039;\n&#039; &#039; &#039; &amp;gt; &quot;/tmp/transcript-$videoID&quot;;
ollama run gemma3:12b-it-qat &quot;Please write a breakdown and summary of the following, ignore any sponsorship segments: $(cat /tmp/transcript-$videoID)&quot; &amp;gt; &quot;summary-$videoID&quot;;&lt;/code&gt;&lt;/pre&gt;
</description>
			<guid isPermaLink="false">5b7f2cf9-3e7d-4b1d-8df3-885cd495968a</guid>
			<pubDate>Wed, 04 Jun 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Donations</title>
			<link>https://divested.dev/pages/blog-2025-05-29-2-donations</link>
			<description>&lt;p&gt;I removed the donation options six months back when I shuttered DivestOS. Today they are &lt;a href=&quot;/pages/donate&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;available again&lt;/a&gt; for those of you who are interested in financially supporting my work.&lt;/p&gt;
</description>
			<guid isPermaLink="false">8080d85e-a0e8-445a-ada2-f6b4ce01e9b9</guid>
			<pubDate>Thu, 29 May 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Kairoscope Updates</title>
			<link>https://divested.dev/pages/blog-2025-05-29-kairoscope_updates</link>
			<description>&lt;p&gt;There are now 21 tests and it now has a &lt;a href=&quot;https://kairoscope.org&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;dedicated domain&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;Comment on this: &lt;a href=&quot;https://infosec.exchange/@divested/114593083180868871&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Fediverse&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
</description>
			<guid isPermaLink="false">1a22ef0d-50dc-4f43-a4b3-18cbc420ea2a</guid>
			<pubDate>Thu, 29 May 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Launching Kairoscope</title>
			<link>https://divested.dev/pages/blog-2025-05-27-launching_kairoscope</link>
			<description>&lt;p&gt;May is mental health awareness month, so to promote it I’ve &lt;a href=&quot;https://divested.dev/pages/screeners&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;implemented&lt;/a&gt; a handful of mental health screeners in the form of completely client side tests. Have fun!&lt;br&gt;Please let me know if you encounter any issues with them.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;Comment on this: &lt;a href=&quot;https://infosec.exchange/@divested/114582185796929186&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Fediverse&lt;/a&gt;, &lt;a href=&quot;https://discuss.privacyguides.net/t/client-side-mental-health-screeners/27886&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Privacy Guides Forum&lt;/a&gt;, &lt;a href=&quot;https://news.ycombinator.com/item?id=44130569&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Hacker News&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
</description>
			<guid isPermaLink="false">701fa7f2-75d5-4f76-b019-7100815bbc50</guid>
			<pubDate>Tue, 27 May 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Cables Fail - Part 1</title>
			<link>https://divested.dev/pages/blog-2025-05-20-cables_fail</link>
			<description>&lt;p&gt;I&#039;ve had many cables fail over the years, so I figured I&#039;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.&lt;/p&gt;
</description>
			<guid isPermaLink="false">8e5a37bd-d0f9-489d-a716-004e8395a036</guid>
			<pubDate>Tue, 20 May 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Fedora iptables fun</title>
			<link>https://divested.dev/pages/blog-2025-04-28-fedora_iptables_update</link>
			<description>&lt;p&gt;Fedora pushed out an iptables update today which altered some paths. firewalld, Docker, and other tools broke. &lt;a href=&quot;https://bugzilla.redhat.com/show_bug.cgi?id=2362648&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Chaos ensued&lt;/a&gt;.&lt;/p&gt;
</description>
			<guid isPermaLink="false">06b8fed0-3500-4493-90ab-d1d52829b50f</guid>
			<pubDate>Mon, 28 Apr 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: CAA Record Clipping</title>
			<link>https://divested.dev/pages/blog-2025-04-21-caa_record_clipping</link>
			<description>&lt;p&gt;I&#039;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 are set as expected, I&#039;ll be publishing it eventually.&lt;/p&gt;
</description>
			<guid isPermaLink="false">ac8d5664-a271-43a8-ad85-e205844d1be7</guid>
			<pubDate>Mon, 21 Apr 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Bounds checking in hmalloc</title>
			<link>https://divested.dev/pages/blog-2025-03-21-hmalloc_bounds_checking</link>
			<description>&lt;p&gt;I&#039;ve started &lt;a href=&quot;https://github.com/GrapheneOS/hardened_malloc/pull/252&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;working on a feature&lt;/a&gt; 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&#039;s metadata. It works quite well system wide in my testing, but still needs some extra work. @cgzones has been a kind help to me in making it comprehensive and accurate. This feature provides substantial security benefits to traditional (Intel/AMD) systems.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;Comment on this: &lt;a href=&quot;https://discuss.privacyguides.net/t/overflow-checking-in-hardened-malloc/26087&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Privacy Guides Forum&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
</description>
			<guid isPermaLink="false">8b5a5eae-309d-471d-8155-681f2718db4e</guid>
			<pubDate>Fri, 21 Mar 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: SCFW3 Updates</title>
			<link>https://divested.dev/pages/blog-2025-03-20-scfw3_updates</link>
			<description>&lt;p&gt;trash.sh now blocks many known AI crawlers and the ancient versions list has been refreshed.&lt;/p&gt;
&lt;p&gt;&lt;small&gt;Comment on this: &lt;a href=&quot;https://codeberg.org/divested/scfw3/commit/8018edb45871935e87dd1ae6a38032234dd05edf&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;GitHub&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
</description>
			<guid isPermaLink="false">d429450e-7256-402f-89da-37683f4f89ca</guid>
			<pubDate>Thu, 20 Mar 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Brace Updates</title>
			<link>https://divested.dev/pages/blog-2025-02-18-brace_updates</link>
			<description>&lt;ul&gt;
	&lt;li&gt;JavaScript JIT is now disabled for WebKitGTK and GJS thanks to @RKNF404&lt;/li&gt;
	&lt;li&gt;Tweaks to browser extension overrides&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;small&gt;Comment on this: &lt;a href=&quot;https://codeberg.org/divested/brace/commit/74ff8e1d7fb8a10fd3850b5791855429f4df7038&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;GitHub&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
</description>
			<guid isPermaLink="false">f6e30d4b-f454-43d9-8981-fafa836c58ee</guid>
			<pubDate>Tue, 18 Feb 2025 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Blog: Ending DivestOS and apps</title>
			<link>https://divested.dev/pages/blog-2024-12-23-ending_divestos</link>
			<description>&lt;p&gt;Thank you everyone. &lt;a href=&quot;https://web.archive.org/web/https://divestos.org/pages/news#end&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Full announcement&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;small&gt;Comment on this: &lt;a href=&quot;https://infosec.exchange/@divested/113703337476638702&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Fediverse&lt;/a&gt;, &lt;a href=&quot;https://discuss.privacyguides.net/t/the-end-of-mobile-divested-projects/23396&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Privacy Guides Forum&lt;/a&gt;, &lt;a href=&quot;https://news.ycombinator.com/item?id=42525719&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Hacker News&lt;/a&gt;, &lt;a href=&quot;https://forum.f-droid.org/t/divest-os-apps-discontinued/29792&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;F-Droid Forum&lt;/a&gt;, &lt;a href=&quot;https://discuss.techlore.tech/t/the-divestos-project-has-ended/11593&quot; rel=&quot;nofollow noopener noreferrer&quot; target=&quot;_blank&quot;&gt;Techlore Forum&lt;/a&gt;&lt;/small&gt;&lt;/p&gt;
</description>
			<guid isPermaLink="false">f191cc49-9fc1-4d28-99b1-eddf5841d8fa</guid>
			<pubDate>Mon, 23 Dec 2024 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Video: Hypatia: Link Scanner Demo</title>
			<link>https://divested.dev/pages/video-hypatia-link-scanner-demo</link>
			<guid isPermaLink="false">fd72ab91-c847-48ea-a70f-0ba701c03ab6</guid>
			<pubDate>Wed, 22 May 2024 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Video: DivestOS: Enable microG</title>
			<link>https://divested.dev/pages/video-tutorial-divestos-enable_microg</link>
			<guid isPermaLink="false">b15e367c-67e9-4dd2-8c06-3ba04df26785</guid>
			<pubDate>Fri, 17 May 2024 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Video: F-Droid: Adding a mirror</title>
			<link>https://divested.dev/pages/video-tutorial-fdroid-add_mirror</link>
			<guid isPermaLink="false">870b6dee-7ad8-4cfa-9782-d0635e1c25b4</guid>
			<pubDate>Fri, 17 May 2024 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Video: F-Droid: Adding a repo</title>
			<link>https://divested.dev/pages/video-tutorial-fdroid-app_repo</link>
			<guid isPermaLink="false">dd48390f-defb-403b-8b53-c9af62695f42</guid>
			<pubDate>Fri, 17 May 2024 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Video: Captcha Hell</title>
			<link>https://divested.dev/pages/video-captcha-hell</link>
			<guid isPermaLink="false">058ff8e1-1998-4cd4-802d-ed710a6972dc</guid>
			<pubDate>Fri, 03 Nov 2023 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Video: Android: Installing Orbot</title>
			<link>https://divested.dev/pages/video-android-vpn-orbot</link>
			<guid isPermaLink="false">989c83dc-7c47-4863-ae5e-911a0e1fa70c</guid>
			<pubDate>Fri, 18 Aug 2023 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Video: Android: Installing Riseup VPN</title>
			<link>https://divested.dev/pages/video-android-vpn-riseup</link>
			<guid isPermaLink="false">b265bc9a-316a-4c6d-97fe-72ac665e1381</guid>
			<pubDate>Fri, 18 Aug 2023 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Video: Linux: Virgl: Host vs Guest</title>
			<link>https://divested.dev/pages/video-virgl-hostguest</link>
			<guid isPermaLink="false">ccf8ff8e-8289-4399-9e1b-a758483ed3b1</guid>
			<pubDate>Mon, 24 Jul 2023 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Video: RPCS3: COD BLOPS II</title>
			<link>https://divested.dev/pages/video-rpcs3-codblopsii</link>
			<guid isPermaLink="false">535ac00d-fdac-4ad5-a64b-224bd279a177</guid>
			<pubDate>Sun, 16 Jul 2023 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Video: F-Droid: fdroidserver Setup</title>
			<link>https://divested.dev/pages/video-fdroidserver</link>
			<guid isPermaLink="false">c9d15f0a-8baa-4c49-adce-ed94a3fc051b</guid>
			<pubDate>Thu, 18 May 2023 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Video: Linux: Nautilus 44 Breakage</title>
			<link>https://divested.dev/pages/video-nautilus-broken</link>
			<guid isPermaLink="false">a50ed6b4-5410-4dd3-a2ab-213104e09f15</guid>
			<pubDate>Wed, 26 Apr 2023 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Video: FSF 2022 ONFSC Award Speech</title>
			<link>https://divested.dev/pages/video-fsf-2022-onfsc-award-speech</link>
			<guid isPermaLink="false">d9f58bba-e147-48bb-be7d-0439b3719502</guid>
			<pubDate>Tue, 14 Mar 2023 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Video: DivestOS: Compiling Quick Start</title>
			<link>https://divested.dev/pages/video-divestos-compile_quick_start</link>
			<guid isPermaLink="false">1a0fb690-8c88-4853-bca9-c83d3ce41b3b</guid>
			<pubDate>Thu, 09 Mar 2023 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Video: Linux: Virgl: 1080p vs 4k on GNOME &amp; XFCE</title>
			<link>https://divested.dev/pages/video-virgl-resolutions</link>
			<guid isPermaLink="false">eafe1025-4eae-4d47-aa43-9c2b22c95576</guid>
			<pubDate>Thu, 09 Mar 2023 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Video: Linux: Wayland: Double Screen Recording</title>
			<link>https://divested.dev/pages/video-wayland-double_screen_recording</link>
			<guid isPermaLink="false">e644ea31-7516-4c90-9e37-73cad4cf0067</guid>
			<pubDate>Wed, 26 Oct 2022 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Video: Linux: Installing Fedora 33 [outdated]</title>
			<link>https://divested.dev/pages/video-fedora33-install</link>
			<guid isPermaLink="false">7a572834-a99a-45d1-a5e2-c2ccb665875c</guid>
			<pubDate>Tue, 09 Feb 2021 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Video: OpenWrt: Compiling Quick Start</title>
			<link>https://divested.dev/pages/video-openwrt-compile_quick_start</link>
			<guid isPermaLink="false">1f448a08-fb43-4afd-8ec8-a58c5ab46408</guid>
			<pubDate>Tue, 02 Feb 2021 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Video: Linux: Firejail: Setup &amp; Tutorial</title>
			<link>https://divested.dev/pages/video-firejail-fedora33</link>
			<guid isPermaLink="false">f23e881c-8faa-4617-a00e-77c0dc3180f6</guid>
			<pubDate>Fri, 01 Jan 2021 00:00:00 +0000</pubDate>
		</item>

		<item>
			<title>Video: Linux: Setting up Brace on Fedora 33 [outdated]</title>
			<link>https://divested.dev/pages/video-brace-fedora33</link>
			<guid isPermaLink="false">f07a5aff-d53e-40f9-89e0-9052abc621f5</guid>
			<pubDate>Tue, 29 Dec 2020 00:00:00 +0000</pubDate>
		</item>

	</channel>
</rss>
