ahh yes, of course the problem that has been foiling my ability to make this automation continue to support Ubuntu 20.04 is because the Ubuntu package maintainers are outright unhinged.

When you install the Postfix package, it chooses to guess what your domain is if you don't have one set. Where do you guess your domain from? I don't know, let's just choose something from the /etc/resolv.conf

# from postfix_3.4.13-0ubuntu1.4.debian.tar.xz
myfqdn() {
    myhostname=$(hostname --fqdn 2>/dev/null || echo "")
    # If we don't have a name with a dot (which includes ""), then we have work.
    if [ $myhostname = ${myhostname%.*} ]; then
        # If it's empty, and we have /etc/hostname, try that.
        if [ -z $myhostname ] && [ -r /etc/hostname ]; then
            myhostname=$(cat /etc/hostname)
        fi
        # If we are still lacking a domain component, then try resolv.conf.
        if [ $myhostname = ${myhostname%.*} ]; then
            if [ -f /etc/resolv.conf ]; then
                # The resolver uses the last one found, and ignores the rest
                mydom=$(sed -n 's/^search[[:space:]]*\.*\([^[:space:]]*\).*/\1/p;s/^domain[[:space:]]*\.*\([^[:space:]]*\).*/\1/p' /etc/resolv.conf | tail -1)
                myhostname="$myhostname${mydom:+.$mydom}"
            else
                myhostname="$myhostname.UNKNOWN"
            fi
        fi
    fi
    echo $myhostname
}

oh and to make things even worse, the comment says it picks the LAST one. But it's picking the first from mine:

search i.feld.me. things.feld.me. d.feld.me feld.me.

I didn't set those periods when defining the search domains in my DHCP. They're not there on my FreeBSD hosts, only on Linux.

Why not just put a gun in your mouth Ubuntu? That would be easier, right?

If this wasn't for a now EOL Ubuntu distro I'd make a blog post to shame them

This entry was edited (1 week ago)
in reply to Jage

@Jage Does this work with more than mp3 files? The benefit with ffmpeg is that theoretically it works with most formats under the son. For example though entirely untested, the command I posted might work with video even, and likely loads of audio formats like vorbis, opus, flac etc. I'll have to play with it more tomorrow, right now it works great for what I specifically need and I'm worried about testing it more tonight because knowing me I'll break it and spend a pointlessly undo amount of time trying to make it more versatile instead of enjoying a relaxing night and sleeping well knowing that what I made just works lol. One of my most double edged traits.
@Jage
in reply to Jage

@Jage Who knows I might even make a little GUI program myself out of it later, ffmpeg is a free open source program that can do what 100+ smaller very focused converter or multimedia manipulator programs could do together multiplied. The problem though is that it's entirely command line based and learning even a fraction of it's feature set can be highly exhausting depending on how far down the rabbit hole you go - I mean this thing can literally apply hrtf to audio in multiple hrtf database formats, stream something to an icecast server, rotate images, reverse audio while adding a hipass filter to it, concatinate/chunk audio, demux multitrack recordings, convert between any audio/video format you want - I'd exceed the post limit and it's all one ffmpeg.exe binary. I need to evaluate what all exists because many such gui's exist - I'm not the first to think of this by any means, but like we need an explorer context menu with loads of useful options that call into this binary complete with a UI progress display and other useful gadgets. So many people charge for audio converters that work with a few formats. One single freely distributable binary can do all that and a million other things at no cost, and I think the community could seriously benefit from a good UI to it.
@Jage
in reply to Sam Tupy

@Jage This uses FFmpeg and lives in the context menu: audioworld.de/AudioWorld%20AVC…
@Jage
in reply to Sam Tupy

Sounds like mine and @Arfy's cobbled together thing we call 'the SendTo Project' where we took a bunch of shortcuts, stuck them in the send to menu and allow you to convert between various audio files as easily as we could think of. There's hopefully a comprehensive readme that goes with it.
3.onj.me/programs/SendTo202508…
This entry was edited (1 week ago)

Sam Tupy reshared this.

in reply to Onj 🎶

@Onj @Jage Thanks, I used to use this on the daily many years ago and had no idea it was still being updated! Perhaps I will play with it soon and see how much of it I can get to all use ffmpeg, because I'm pretty sure correct me if I'm wrong that aside from the included youtube-dl binary that ffmpeg can do the work of lame, oggenc2, opusenc, NeroAacEnc and maybe more. This package does not have a license attached, am I free to please use it as a base to improve upon for potential redistribution with original credits left in tact of course? My main goals would be to make everything possible use ffmpeg, then to make a little wrapper program that can show a status report and hopefully a progress bar in an optional UI window that the send-to options use, thus making the entire system more unified without terminal windows popping up after having clicked on a menu option in a GUI.
in reply to Sam Tupy

@Onj @Jage Honestly, if you're going to make an FFmpeg wrapper, you might be better using the various av libs, much easier to get progress and such from and doesn't require constructing arcane command lines, especially important for filtergraphs. Although I will always recommend QAAC and audiotoolbox over any other AAC encoder, potentially even Nero. FFmpeg's FDK is definitely not as good.

Sometimes I end up with a collection of *lossy* audio files that have silence at the beginning of them. I don't care about silence at the end usually but I do not like waiting to hear audio because the beginning of it is silent. When trimming silence though, I don't want to make a choice between storing the audio in flac (much larger filesize) or losing a generation of audio quality by reencoding the files with silence trimmed. I finally solved the problem for myself and anybody else who has xplorer2, ffmpeg and awk installed. If you installed git with git bash you likely have awk. I can now select several audio files in xplorer2, then press control+b to execute a command script. I simply paste the following very tragically messy sequence of batch commands into the template box and modify any of the variables at the top if needed before hitting alt+x, leaving me with copies of the selected audio files that have silence dynamically removed from the beginning of them without any reencoding! No idea what formats this all works on though probably quite a few, (tried M4A here). Have... fun? set silence_threshold=-60dB, set output_dir=output, set max_silence=10s, set presilence=0.030, set silence_min_duration=10ms, set silence=0, for /F "usebackq delims==" %%i in (`ffmpeg -hide_banner -i "$N" -t %max_silence% -af silencedetect^=noise^=%silence_threshold%:d^=%silence_min_duration% -vn -sn -dn -f null - 2^>^&1^|awk '$$4^=^="silence_end:"^^^&^^^&$$5^^^>%presilence%^^^{print^^^($$5-%presilence%^^^)^;exit^^^}'`) do @set silence=%%i, if not exist "%output_dir%" mkdir %output_dir%, echo silence for $N is %silence%, ffmpeg -hide_banner -v warning -i "$N" -y -ss %silence% -c copy "%output_dir%\$N"
in reply to Scott

@Scott So I really love xplorer2. It has a couple of querks, but the tradeoff is... spectacular, at least in my opinion. It's very very fast. You can have as many folter tabs open in one window as you want. You can make a hotkey run a shell command, including bookmarking entire tab sets and jumping to the bookmarks with hotkeys. You can calculate subfolder sizes, show any column you want for a selected file from audio metadata to the certificate an executable was signed with, create new textfiles or new folders with a single keypress instead of a menu, paste text from your clipboard directly into a new file which you are then able to rename, I can select 12 files, hit ctrl+f11, jiggle my selection and do whatever and press f11 later, on a per-folder basis, to reselect the 12 files I'd selected earlier. You can create these temporary folder views called scrap pains where you can drop any file from any folder into - not actually copying the file, and now you have a folder view list with all your selected files from all over in one place. You have templatable mass renames that can access metadata columns, I could go on. It's amazing. But the thing to keep in mind is that though it is very accessible, it's kind of like a mini version of reaper if reaperaccessibility.com and theglobalvoice.info/reaper didn't exist, at least beyond basic usage. You might not like how it looks by default, it might take you quite a bit of tweaking to get it how you want, and a couple things you just can't fix E. I know someone who really hates the fact that if you press backspace in one folder, NVDA announces the wrong parent folder name at the backspace press, you won't fix that with a config option. I don't mind that because there are too many amazing features for me to care about jiggling up and down arrow once to review the folder I'm on, I probably remember it anyway. Most dialogs are just normal and accessible. The settings panel is no exception, accept that the developer implemented some strange arrow key navigation into it which must be used over tab just in the options dialog. I really love the thing honestly especially the more I discover about it, but either a good tutorial needs to exist for the new user (I might make one) or else the new user needs to be good at learning software and/or be prepared for a slightly long day getting it all working. That might be slightly untrue for just basic folder browsing, but there is a lot this thing can do much of it I missed for years.
in reply to Jonathan

@jonathan859 @Scott So the settings dialog is actually entirely accessible, but it doesn't use standard keyboard navigation. It's kind of like the dev was thinking of us and wanted to make it work but kinda wrote his own thing to do so instead of relying on the accessibility layer/standards that already work. Note that this weird navigation is not the case with most dialogs, only the options. So you open the options dialog, you'll be in the general category. You use up and down arrow to navigate what setting you are editing, press space to edit the setting, if it brought you to another control like a list or a textbox you can press escape to jump back to the setting list. To change categories, shift+tab once and the tree is accessible, just once you've selected your new category, tab once or twice until you hear the first setting (not the search field but directly after), and you can continue the same interesting up/down arrow navigation to change the settings in that category. Once done it is accessible to shift+tab to the OK button. So once you know those little details, it's actually a completely accessible dialog, just using quite nonstandard keys for whatever reason.
in reply to Sam Tupy

I wonder how many people actually write their own UI without relying on a toolkit or framework? This is the second time I heard of custom accessibility implementation, the other time was for ExplorerPatcher also:
github.com/valinet/ExplorerPat…
@jonathan859 @Scott
in reply to Scott

@Scott No problem, you'll find that I casually write long messages like that more often than I don't lolol, for whatever reason I'm a very long winded typist - I should check my typing speed after years of doing it. The blog posts I'd write for Survive the wild were like 50+kb of text sometimes and yet all my readers would just tell me to keep that up instead of to shush and write shorter :D point being if you decide to try it and need help, I'm happy to answer any questions in just as much detail haha.
in reply to Andre Louis

@FreakyFwoof @Scott Unfortunately yes it does. While you are focused on the correct item in reality, NVDA speaks the wrong item and says not selected. If you quickly press up then down arrow though you'll see you are indeed focused on the correct item. I do wish the dev would fix it, but for me anyway it's extremely minor because not only do I usually know what folder I've come from but it's so easy to check my folder position anyway, making it a small ding in the polishing rather than an actual accessibility problem for me.
in reply to x0

@Scott One thing I find myself occasionally doing when I get new Cymatics packs uses xplorer² for certain. I go into all the subfolders, select all the files beginning with "Cymatics - " and press control+s to send them to the mini scrap. Once I've done all that, I shift tab to the mini scrap, select all, mass rename, and use a predefined preset that stripts that leading "cymatics - " from all the file names across dozens of folders with one click, then control+r to see it empty because all the files have been renamed.
in reply to x0

@Scott Some people nitpick at the fact that only tab switches between panes, shift+tab does not, it goes to mini scrap unless that's disabled. And that unless you turn the address bar off, trying to do complex multiletter nav starts typing into it. When it's off though, and you unbind the default space keybind, I've proven multiletter nav up to 14 characters to function.
in reply to x0

@x0 @Scott Oh yeah I just fixed that. Tab is just a custom keybinding you can alter however you want, same with shift+tab. Basically in the hotkey editor, you need to move to the section where all the key presets show as numbers. In there, if you use obj nav to go to the bottom of the dialog after focusing on a numbered shortcut, you'll see an actual description of it. Almost every keyboard shortcut in the program is properly labeled accept for those misc ones at the bottom where the label is just in the wrong place.
@x0 @Scott
in reply to x0

@Scott For initial settings, I recommend changing from ribbons to menus, turning off the addressbar under view toolbar, unbinding space from the keyboard dialog, disabling redirect DOS command output to local console for accessibility, enabling natural number sort, removing the extension column in select columns (NVDA invoke on a column to move it between the two lists), setting the second pane style to details also and tweaking it to match your first, and some other settings I can't remember. Unfortunately, the advance settings editor is completely inaccessible.
This entry was edited (1 week ago)

Playing with GtkSvg

@GTK @gnome

blogs.gnome.org/gtk/2025/10/23…

Updated "greek task list":

orphean task: when you almost succeed, but lose everything the moment you turn around to check your progress.

daedalean task: when you’re forced to design something brilliant and functional… that you yourself will inevitably become trapped inside.

medusan task: when your project becomes so horrifying that everyone involved freezes in place rather than deal with it.

tantaline task: when success is right there, but bureaucracy or budget cuts keep snatching it away at the last moment, forever.

pandoran task: when fixing one small issue unleashes a thousand new ones, but hey — at least there’s still hope somewhere in the ticket backlog.

odyssean task: when the assignment technically has an end, but it’s buried under so many side quests that you forget what the original goal was.

narcissian task: when the entire effort is about maintaining appearances rather than achieving anything of substance.

promethean task: when you give people a powerful new tool that could transform their work — and are punished eternally for doing so.

orestian task: when the mess you’re cleaning up is the direct result of the last cleanup you performed.

thesean task: when the only way to finish is to disassemble everything piece by piece — until you’re no longer sure if what’s left is the same project you started.

achillean task: when your work is flawless except for that one fatal oversight that will, inevitably, destroy you.

penelopean task: when you diligently undo by night what you accomplish by day, just to keep the stakeholders pacified.

midasean task: when everything you touch turns into paperwork, compliance documents, or gold-plated nonsense nobody actually needs.

gordian task: not intended to be actually done, but violence is the answer.

Just reminded that here-documents at the #bash prompt aren't completely useless.

At the interactive prompt, I wouldn't normally type anything like this:

cat <<'EOF' >file
some text
EOF

because this takes fewer keystrokes:

cat >file
some text
^D

But the usefulness of the first version is that you get to use bash command recall while typing the text that goes into the file. In particular, if I've just edited and re-run a complicated command 10 times interactively until I got it right, and now I want to save it into a script:

cat <<'EOF' >file.sh
[press Up to recall the final working version of the complicated command]
EOF

#bash

GrapheneOS version 2025110600 released


Both of the November 2025 patches have been provided in our regular non-security-preview releases for over a month, so we've already had the 2025-11-05 Android security patch level for over a month. Our patch level is set based on providing both the Android and Pixel security patches, so we're leaving it at 2025-11-01 until the Pixel stock OS release and Pixel Update Bulletin are published. The stock Pixel OS also included both November 2025 patches in early September. We expect they made a 2nd October release to ship the November carrier changes and will make a release in mid-November with patches from future Android Security Bulletins.

Tags:

  • 2025110600 (Pixel 6, Pixel 6 Pro, Pixel 6a, Pixel 7, Pixel 7 Pro, Pixel 7a, Pixel Tablet, Pixel Fold, Pixel 8, Pixel 8 Pro, Pixel 8a, Pixel 9, Pixel 9 Pro, Pixel 9 Pro XL, Pixel 9 Pro Fold, Pixel 9a, emulator, generic, other targets)

Changes since the 2025102800 release:

  • raise declared patch level to 2025-11-01 which has already been provided in GrapheneOS since our regular 2025090200 release (not a security preview) since the patches were included in the September security preview and were then pushed to AOSP despite not being listed in the bulletin
  • kernel (6.1): update to latest GKI LTS branch revision
  • kernel (6.1): keep POSIX_MQUEUE disabled to avoid increasing attack surface
  • kernel (6.6): update to latest GKI LTS branch revision including update to 6.6.114
  • kernel (6.12): update to latest GKI LTS branch revision
  • adevtool: switch to obtaining Android 16 QPR1 backports from the latest October releases for 7th/8th/9th gen Pixels (6th gen Pixels did not have an October release) for very minor radio carrier configuration changes (no code changes)
  • Settings: add 1 second delay for approving device admin activation to mitigate tapjacking (this matches the 1 second delay we add to both permission prompts and ADB authorization prompts which is currently not configurable)
  • Vanadium: update to version 142.0.7444.138.0

All of the Android 16 security patches from the December 2025, January 2026, February 2026 and March 2026 Android Security Bulletins are included in the 2025110601 security preview release. List of additional fixed CVEs:

  • Critical: CVE-2025-48631, CVE-2026-0006
  • High: CVE-2022-25836, CVE-2022-25837, CVE-2023-40130, CVE-2025-22420, CVE-2025-22432, CVE-2025-26447, CVE-2025-32319, CVE-2025-32348, CVE-2025-48525, CVE-2025-48536, CVE-2025-48555, CVE-2025-48564, CVE-2025-48565, CVE-2025-48566, CVE-2025-48567, CVE-2025-48572, CVE-2025-48573, CVE-2025-48574, CVE-2025-48575, CVE-2025-48576, CVE-2025-48577, CVE-2025-48578, CVE-2025-48579, CVE-2025-48580, CVE-2025-48582, CVE-2025-48583, CVE-2025-48584, CVE-2025-48585, CVE-2025-48586, CVE-2025-48587, CVE-2025-48589, CVE-2025-48590, CVE-2025-48592, CVE-2025-48594, CVE-2025-48596, CVE-2025-48597, CVE-2025-48598, CVE-2025-48600, CVE-2025-48601, CVE-2025-48602, CVE-2025-48603, CVE-2025-48604, CVE-2025-48605, CVE-2025-48609, CVE-2025-48612, CVE-2025-48614, CVE-2025-48615, CVE-2025-48616, CVE-2025-48617, CVE-2025-48618, CVE-2025-48619, CVE-2025-48620, CVE-2025-48621, CVE-2025-48622, CVE-2025-48626, CVE-2025-48628, CVE-2025-48629, CVE-2025-48630, CVE-2025-48632, CVE-2025-48633, CVE-2025-48634, CVE-2026-0005, CVE-2026-0007, CVE-2026-0008

2025110601 provides at least the full 2025-12-01 Android security patch level (a Pixel Update Bulletin for November 2025 hasn't been released could have fixes we don't get early, although it's likely empty) but will remain marked as providing 2025-11-01.

For detailed information on security preview releases, see our post about it.

Vanadium version 142.0.7444.138.0 released


Changes in version 142.0.7444.138.0:

  • update to Chromium 142.0.7444.138

A full list of changes from the previous release (version 142.0.7444.48.0) is available through the Git commit log between the releases.

This update is available to GrapheneOS users via our app repository and will also be bundled into the next OS release. Vanadium isn't yet officially available for users outside GrapheneOS, although we plan to do that eventually. It won't be able to provide the WebView outside GrapheneOS and will have missing hardening and other features.

"Two headlines from yesterday (Nov. 6):

'Musk Could Become World’s First Trillionaire in New Tesla Pay Package'

'SNAP Recipients Go Without Food After Benefits Don’t Arrive'

And there is the moral rot of our capitalistic empire. A trillionaire shouldn’t exist, especially in a world where children are starving."

~ Brian Kaylor

#Musk #Tesla #trillionaire #SNAP #food #hunger #children #capitalism #shutdown #Republicans

publicwitness.wordandway.org/p…

Recently, a trained, active firefighter said that smoke alarms and CO2 alarms have different beeps. Smoke is three longer beeps, while CO2 is four shorter ones. I don't doubt he knows what he's talking about, but I've never heard a residential smoke alarm that doesn't alert using a continuous series of beeps with no pause at all. I'm not sure why there's a disconnect between firefighters' knowledge and what I've heard from real alarms my whole life.
in reply to Alex Hall

The current code 3, or temporal pattern, used pretty much everywhere these days, is somewhat recent. It was codified in 1996, and even for a while after that, fire alarms did all sorts of different things over the years. The most common in households in the late 80s to about late 90s was a continuous bunch of beeps with only very short pauses between them. The speed and pitch varied by brand. This came after the previous generation of alarms, which would give one loud, continuous beep, usually with an actual paper speaker. This was much lower in frequency, maybe 500 to 600 hz. We had some of these in my house when I was a very small person.
This entry was edited (1 week ago)
in reply to Borris

@BorrisInABox Borris: Excellent nugget of information.
Alex: In the like vein of this informationn, indicating that the alarms you're using could potentially be as old as 30 years, it is most certainly advisable to replace all of these older alarms ASAP. All alarms actually do indeed have an expiry date, beyond which some of the materials used internally in the detection process actually decay and become less effective, until in fact the device becomes ineffective at its job, as more time passes.

Dog owners should be subject to strict inspections and recurring training to ensure they have the necessary time, skills, and dedication to own such an animal. Dog attacks and bites are stupidly common, and they really shouldn't be. I can barely fart without a permit and three licenses, but any fucking idiot can get a dog, neglect it, and have it bite a toddler - and then the dog gets blamed and put down. Insanity.

This is most likely my most controversial take.

I'm very much getting tired of explaining to people why I'm still in high school at 41, especially to GenZ teachers. Yeah, it might only be in dreams, but it, along with the inevitability of a fire alarm going off somewhere (never a residential one, by the way), happens just about every night, or whatever passes for night.