Amitai Schleier
@schmonz@schmonz.com
Added Webmention support for links (Markdown-style or direct) written in a post.
Added new command-line options for list maintenance.
Display custom emoji in more places (contributed by dandelions).
Mastodon API: fixed infinite scroll in many clients (thanks to cheeaun for giving me the clue), added /api/v1/accounts/.../lists
endpoint (contributed by dandelions).
Email notifications can now be sent via libcurl
SMTP instead of spawning the /usr/sbin/sendmail
program. To use this new feature, some additional server configuration is needed, see snac(8)
(contributed by shtrophic).
If you find #snac useful, please consider buying grunfink a coffee or contributing via LiberaPay.
I submitted a Pull Request to update MacPorts' snac to 2.76 here:
https://github.com/macports/macports-ports/pull/28373
GitHub Actions Continuous Integration checks passed!
It's up to someone else with write access to merge it.
Thanks to you and dandelions and shtrophic (and anyone else I may have missed) for the continued contributions and improvements!
(these modest diffs were prepared in part while listening to "Garlic Braid" by LMNO & D-STYLES: https://d-styles.bandcamp.com/track/garlic-braid [the 1st single from the upcoming full length album: Three Mimes & an Elephant)
#snac #MacPorts #OpenSource #ActivityPub #Mastodon #NoDatabaseNeeded
#NoJavaScript #NoCookiesEither #NotMuchBullShit #snacAnnounces
Debian users will have to be patient; I can't upload to unstable/backportar because of the release freeze. I'll do that as soon as possible :)
Google Summer of Code 2025 NetBSD projects
https://blog.netbsd.org/tnf/entry/gsoc2025_welcome_contributors
Thanks, man. It's been 7 years and every day I do this I'm better off.
The year is 2025 and people are still telling me that TDD only works "in theory".
A large-scale study of dev activity in the IDE found that only 1.7% of developers did TDD at least *some* of the time.
This is a number worth remembering when listening to strong opinions - positive or negative - about TDD.
@jasongorman Most of what is called "TDD" these days, is really "not-quite-end to not-quite-end" tests written after the code, by programmers who regard it, justly, as a tedious chore.
It bears no resemblance to our TDD.
@GeePawHill ...and it's often the "TDD" they're talking about when they say "TDD doesn't work in practice"
There's a very high probability that their opinion's based on no experience - doing or seeing - of TDD at all.
@jasongorman I think the trouble is they have learned the skills from someone, who learned them from someone, who learned them from who knows where. It’s the broken telephone game. Which means that the underlying principles and practices have been pragmatised to nothing.
The conclusion I have come to is people don’t want to learn because they don’t want to think. They want something that “just works” - in other words, they want Fred Brooks’ proverbial silver bullet. We just don’t learn, do we?
@jasongorman Building on this, I think the saddest thing I now realise is many folks don’t want to learn is because what they do is “good enough”. There are simply no consequences since the rewards for doing things right are delayed, and invisible to the annual accounts bottom line. Eg. things like reliability, failure demand, downtime, cost of change etc
@jasongorman well I read the book … ok I read the book’s title … ok I haven’t actually developed code in 20 years. I don’t see how TDD can work. 🙄
@jasongorman actually @schmonz started helping me with TDD (his oldest son’s age) years ago.
@jasongorman I recently worked with a PM that does “Practical Agile” because “Agile only works in theory”.
Of course “Practical Agile” was just codeword for waterfall.
Strong suspicion I could swap out #macOS for #Linux, do better with #Minecraft and most everything else, and not do much worse at macOS-specific stuff like #GarageBand and Messages under #OSXKVM (https://github.com/kholia/OSX-KVM).
Anyone done this, or something similar?
@schmonz ooh! I have a 2017 iMac that is quite long in the tooth. This might be a good idea for it, too.
@schmonz The kvm for osx doesn't support the gpu. macOS uses gpu acceleration for basic ui, this makes anything beyond ssh'ing into the vm for programming tasks a horrible experience. If you need Messages and GarageBand it won't end well.
@schmonz Last I checked, and it's been a while since I have, gpu passthru required 2 gpus and a board that supports passthru.
Just spent some time converting 11 years worth of resume updates into a Git repository.
I had an existing Git repo for this that contained... one commit.
One of the advantages that Git has over some other SCMs is that you can declare a specific date that the commit will record. In other words, you can lie to Git about when you're committing a tree and it will record the date and time you give it.
This is handy for making retroactively building Git repos for archival purposes.
Put another way, you don't have to do it the old-fashioned way:
MyResume-20230115.pdf
MyResume-20230823.pdf
MyResume-20241212.docx
You can use the mtime of the file as the Git author date/commit date and check-in "MyResume.pdf" and the metadata of when that file was edited will be recorded in the commit. And nowhere else, so don't think "git checkout" will preserve this mtime for you.
This means (1) fewer stray DOC/PDF/TEX files in your ~/resumes directory with "guess what I was for" names like "Resume_send-to-Gary_at_TechnoCorp-20220404.doc", (2) having an archive of your documents, and (3) the ability to use branches to track to whom you're sending your resumes.
You can keep your resume naming simple and maintain multiple concurrent Git branches for TechnoCorp, FAANG, goverment positions, et cetera.
I do wish other SCMs had this ability and made it more prevalent or well-known. I settled on Git because I know Git does this. Other investigations I've made into competitors haven't ended with any good equivalent workflows.
Programmatically it's easy to just run "git add Resume.doc" and "git commit -m 'checkin'" but that will lose any tribal knowledge you have about why you wrote that specific resume, so caveat emptor.
In my opinion, the only two resumes that matter are your last one and your next one. If you want to maintain different flavors of resume based on different career goals, you can still do this, either with different file names, directory names, or branch names.
One of the reasons I've been putting off this project was the mild annoyance of having to write the tools to do the finding, renaming, and committing. I spent a little time this morning asking ChatGPT to give me Perl scripts.
While "opendir(); while (readdir()); closedir();" is a pattern I've written countless times[0], I just didn't feel like writing it yet again from scratch, and I couldn't remember any recent script I could scoop out and repurpose. So ChatGPT it was, and after reading its code, it looked good enough to try and I was pleased to find it did exactly what it said on the tin.
While Perl has a reputation for being a write-only language, AI tools are quickly making it a "write-never" language, easy enough to generate one-off scripts that can be read, reviewed, run, and then pushed into a repo for reuse or eventual abandonment.
At the very least this process isn't also taking 30 minutes of my time I'll never get back.
[0] Or, as I prefer, IO::Dir->new, etc, etc.
Experiences with #dreckly / #pkgsrc on obscure Unixes:
#UnixWare - bootstrap succeeded! Just needed a few simple fixes.
#OpenServer - see UnixWare.
#BSDOS - kernel panic during installation. Support incomplete.
#HPUX - kernel panic during installation.
#QNX - bootstrap success! No changes needed.
#Haiku - bootstrap failed due to open() behaviour. "Invalid argument".
If you have a shell on an #IRIX or #HPUX machine, please let me know!
@washbear this is all good, but I don't understand why we'd support Irix, but say hard luck if you use older #NetBSD (even the oldest supported branch such as 9 when we get to the time when 11 is branched). To be clear I am in favour of supporting both.
I will try to boot my Irix on my Indigo2 though if I can.
@jmcwhatever @washbear Perhaps I'll try #pkgsrc on RISCiX just to really piss myself off. I remember it being painful to get GCC running on Irix back in 1995, I can't see it having got better since.
@jmcwhatever @sborrill @washbear And that's why the IRIXNet people eventually gave up and went for rpm https://forums.irixnet.org/thread-2072.html
@sehnsucht @jmcwhatever @sborrill The bootstrap version of awk was also a big problem on other platforms - it seems it got updated over the years without the consideration for keeping bootstrap on old platforms in working order.
@washbear I've been trying to get pkgsrc to bootstrap on HP-UX 11.11 (11i v1) on PA-RISC. I did not succeed because I'm an idiot.
@thomholwerda @washbear Do you have some way to allow other people access to the machine, for example with ssh?
@sehnsucht @netbsd We have an HP9000/715 running HP/UX 9.04 with guest access https://connect.sdf.org
- Things always go as you, your teammates, and your customers expect, or
- Nobody cares about the costs when they don’t
@schmonz
- You're never going to come back to this code/system.
@gdinwiddie @schmonz There are times where TDD is an investment today that gives me a corpus of tests that might be useful in the future.
There are times when TDD helps me go faster today. This hour. In the next minute.
@JayBazuzi @schmonz
Yeah, I had a manager who gave me a last-minute feature that "had to go out tonight" and said to skip my usual testing to save time. I wrote it TDD because that was the fastest way I knew to work. What I didn't write was tests at the UI level.
As we were leaving, his phone buzzed because the build failed. I had forgotten to check in one new file. ;-)
:; jq -r '.id' < $(ag -l 'six thirty twelve meters' ~/sites/schmonz.com/snac/data/user/schmonz/public)
https://schmonz.com/snac/schmonz/p/1743383179.235112
@schmonz I just "discovered" snac on Friday, set up my instance on Saturday and suddenly I'm seeing posts about how everyone is using it. Damned Baader-Meinhof phenomenon.
@schmonz um well ok
@schmonz you're the real snac
@schmonz
"Understand only what we are taught?"
No, curiosity can lead us to understand new things without a teacher.
#PairProgramming (if you'd like to) #TDD #JUnit5 #Kotlin #Java
What's Greencently, you very reasonably want to know? https://github.com/schmonz/junit-greencently
A start: https://github.com/schmonz/junit-greencently/commit/99bd02f4757923faa1fcc12e103a9e967fabdd19
https://github.com/schmonz/junit-greencently/issues/4#issuecomment-2810303244
Let's see how this setup pans out: https://schmonz.com/2025/04/15/sensible-basic-minecraft-hosting/
Does this inhibit actions we think we don't want taken?
Does it afford actions we think we do?
Will this inhibit or afford an action to change what we inhibit or afford?
How will we find out whether we ought to change what we inhibit or afford?
✨ New blog post: "STF Milestone 3: Release verification and automation"
A major goal of the @sovtechfund is to help projects become more sustainable and decrease their truck factor. For #JUnit, one activity in desperate need of improvement in this area was performing a release. Prior to this milestone, all JUnit releases of the past years had been performed from my local computer. It was high time to change that!
https://marcphilipp.de/blog/2025/04/01/stf-milestone-3-release-verification-and-automation/
A new #blog post appears!
I built a native GCC 14.2.0 for Mac OS X 10.4 Tiger PowerPC.
https://briancallahan.net/blog/20250329.html
#macos #macosx #tiger #powerpc #power #unix #bsd #freebsd #openbsd #netbsd #dragonflybsd #linux #solaris #illumos #gcc #llvm #clang #compiler #compilers #assembler #linker #toolchain #freesoftware #opensource #gnu
@schmonz my favorite thing about spikes is that planned or not they happen, so save yourself the trouble and plan them in!
@schmonz i prefer continually playing the cure on repeat, sorry ;)
What have I missed?
Also, how often might I need to send other server commands?
@schmonz That's how I would do it (but I would use execline's trap command 😉)
Also, Minecraft is written in Java? Oof, that shows its age.
@schmonz infinisil wrote a pretty incredible automatic config a few years back https://github.com/infinisil/on-demand-minecraft
Maybe that helps. Since it starts the server on demand and serializes & stops it after 15 mins or so.
Today I became a student and I will graduate (which I never did) after one spoken conversation in Swedish and a thesis work with lower academic standards than my publications. I already started the thesis and expect to graduate in June.
I feel so many things about this. Happy that schools know how to score the budget they need, without lowering the bar they have. Awful on switch from uni to vocational. Horrible on customers thinking this matters when I’m part of bids.
@schmonz have two decades on that, and it’s hard to imagine it’s more than a story of versatile paths, and persistence. I always loved a story though. It’s funny how this will make the question of my school background the Finnish IT magazine always tries to capture in article info boxes even harder.
#!/bin/sh
set -emain() {
:
}main "$@"
exit $?
@schmonz I notice an unnecessary indirection