Long read. Fantastic perspectives on programming, software, architecture, teams, computing ... in a Q&A from Forth land
https://www.forth2020.org/about-forth
#Forth #Programming #Computing #EmbeddedSoftware
Erlang achieves Dan Ingalls' Smalltalk goals
Choice in software systems design seems hampered by the scaffolding needed to use shared memory and message passing between threads and processes. Dan Ingalls: "An OS has the things not there in the language. There shouldn't be one.". It was about #Smalltalk but the #Erlang VM seems to solve that, with shared binaries between processes and transparent message-passing across nodes. Maybe your language and database should run on the #BEAM ?
Greetings, people! I am a software developer. Outside of work, I use free/libre software almost exclusively. I am pained that we continue to allow nature and community to get degraded by crony individualism. We can do much better, e.g. the voluntary refugee concept.
I have been chuffed with the #Fediverse almost all of the time I have been on it. There is plenty of food for thought in many a toot out there. I am having to move off @wyatwerp now, and really happy to find a Fediverse instance that ... uh ... federates.
As it turns out, the last time I had extended the expiration date of my GPG key, I forgot to upload the public key to my Web Key Directory (WKD). Which is yet another mark against GPG. It’s just too damn complicated for me. And I maintain a manual of sorts! 😵💫 https://alexschroeder.ch/view/ugg – there a gazillion ways to make mistakes and as I grow older, I need to watch the pit traps. By comparison, Delta Chat seems to offer all the benefits and none of the drawbacks.
I just need to figure out how to use that mail account and its keys from my Debian laptop, too.
@ploum
FTP? Nah. Gopher? Nyet. Slopmachine? Oh yes, uncle Google, give us the moneybag! Em, we mean, the users want it.
So I suppose it's not clear to me what a 'good' window into unreliable, systemically toxic systems accomplishes, or how it changes anything that matters for the better, or what that idea even means at all. I don't understand how "ethical AI" isn't just "clean coal" or "natural gas."
There's a real technology here; stochastic pattern recognition and repetition seems like a powerful tool for solving some problems. But solving a problem starts at the problem, not working backwards from the tools.
@harrysintonen rust is really retro computing for an alternates universe made up entirely of rule following masochists. Not to yuck their yum, but please keep it in the alt.* hierarchy where it belongs and not in my tools.
Playground: Haiku running Haiku in qemu, I already had a setup earlier for this with 64bit, now with a local build for 32bit Haiku I can now boot this on a 64bit host. Not for building large (resource hungry) packages, but still nice.
Also enables me to quickly check dependencies for packages in the depot. :)
On the topic of half-assed web technology. I found that somebody had taken my old dom.el and improved it! The subtitle of this repo is "Dom.el updated for the modern era". 😍 My own copy is lost in time. In this commit you can see how already in 2001 it had a different maintainer. Same with my half-assed and also incomplete xpath.el. If you're out there, Henrik Motakef, Katherine Whitlock, Oliver Scholz, yay us! 👋😄
FFmpeg to Google Fund Us or Stop Sending Bugs: https://thenewstack.io/ffmpeg-to-google-fund-us-or-stop-sending-bugs/ by @sjvn
The clash between small volunteer-driven, open-source projects, such as FFmpeg & the billion-dollar companies built on their work, which demand rapid security patches, is heating up.
I'm impressed with the #JSON serialization capabilities of #crystallang . I can now serialize entire #Excel workbooks directly to JSON. It isn't pretty, but it's valid. The code was quick and relatively easy.
worksheet.to_json is all it takes in my latest code push to my Tabular Excel parsing library.
https://codeberg.org/PowellDean/Crystal-Tabular
Critiques, contributions, ideas, and issues are all always welcome.
TL;DR: Stop running a Jellyfin server. MPV can directly play anything from your NAS, stream YouTube ad-free, handle literally every codec, and is infinitely customizable. It’s like vim for video.
Why I ditched my Jellyfin setup
I used to run Jellyfin on my NAS. Transcoding, web interface, the works. Then I realized… why am I running a whole server stack when MPV can just directly play files from my NAS with zero setup?
What MPV Actually Is
MPV is a command-line video player that plays literally everything. But it’s way more than that - it’s a video engine you can build workflows around.
The Basics That Blow Minds
Direct NAS streaming (zero server needed):
mpv smb://192.168.1.100/media/movies/whatever.mkv mpv nfs://nas.local/shows/season1/*
No transcoding. No server. No web interface overhead. Just direct file access with perfect quality and zero latency.
YouTube (and 1000+ sites) with ZERO ads:
brew install yt-dlp mpv "https://youtube.com/watch?v..."
That’s it. Ad-free YouTube in your video player with all your custom keybinds. Works with Twitch, Vimeo, Twitter, Reddit, literally hundreds of sites via yt-dlp.
Play entire directories:
mpv /Volumes/NAS/shows/BreakingBad/Season1/*
Boom. Instant binge session. Space bar skips to next episode. No library scanning, no metadata scraping, just files.
Workflows That Changed My Life
1. The “Watch Anywhere” Setup
Mount your NAS shares in Finder (or /etc/fstab for auto-mount). Now MPV treats your entire media library like local files. Add this to your shell config:
alias play="mpv" alias tv="mpv /Volumes/NAS/shows/" alias movies="mpv /Volumes/NAS/movies/"
2. YouTube as Your Streaming Service
alias yt="mpv" alias ytm="mpv --no-video" # audio only for music
Now:
yt “youtube-url” = instant ad-free playback
ytm “youtube-playlist” = whole playlists as audio
Keep your YouTube history/recommendations in browser, watch in MPV
3. Picture-in-Picture for Anything
Add ontop=yes to config, resize window small = instant PiP for any video source while you work. Works with live streams, security cameras, whatever.
4. The “No Plex Shares Needed” Share
Send someone an SMB/NFS share to your media. They install MPV. They can now browse and play your media library like it’s local. No Plex accounts, no streaming limits, no transcoding quality loss.
5. Live Stream Monitoring
mpv http://192.168.1.50:8080/stream.m3u8
Home security cameras, baby monitors, anything streaming HLS/RTMP = instant monitoring with keybind controls.
Customization That Makes Jellyfin Look Basic
My Config (vim-style keybinds + YouTube controls)
Saved as ~/.config/mpv/mpv.conf:
input-default-bindings=no > add speed 0.1 < add speed -0.1 j seek -10 k cycle pause l seek 10 LEFT seek -5 RIGHT seek 5 UP add volume 5 DOWN add volume -5 . frame-step , frame-back-step m cycle mute f cycle fullscreen s cycle sub a cycle audio 0 seek 0 absolute-percent 1 seek 10 absolute-percent 2 seek 20 absolute-percent 3 seek 30 absolute-percent 4 seek 40 absolute-percent 5 seek 50 absolute-percent 6 seek 60 absolute-percent 7 seek 70 absolute-percent 8 seek 80 absolute-percent 9 seek 90 absolute-percent [ add speed -0.25 ] add speed 0.25 SPACE cycle pause ESC set fullscreen no i script-binding stats/display-stats S screenshot video profile=gpu-hq scale=ewa_lanczossharp cscale=ewa_lanczossharp hwdec=auto-safe vo=gpu screenshot-format=png screenshot-png-compression=9 screenshot-directory=~/Downloads cache=yes demuxer-max-bytes=150M osd-level=1 osd-duration=2000 save-position-on-quit=yes keep-open=yes alang=jpn,jp,eng,en slang=eng,en ytdl-format=bestvideo[height<=1080]+bestaudio/best
Profiles for Different Content
[anime] profile-desc="Anime settings" deband=yes [lowpower] profile-desc="Laptop battery mode" profile=fast hwdec=yes
Use with: mpv --profile=anime episode.mkv
Scripts That Make It Insane
MPV supports Lua/JS scripts. Drop them in ~/.config/mpv/scripts/ and they just work.
Must-have scripts:
sponsorblock - Auto-skips YouTube sponsors/intros/outros
curl -o ~/.config/mpv/scripts/sponsorblock.lua \ https://raw.githubusercontent.com/po5/mpv_sponsorblock/master/sponsorblock.lua
Advanced Workflows
Watch Parties (Syncplay)
Install syncplay, point it at MPV, now you and friends watch your NAS content together in perfect sync. No Plex share limits, no quality loss.
Audio Streaming
ytm "youtube-playlist-url" # or mpv --no-video /Volumes/NAS/music/*
No GUI needed. Terminal command plays audio, you use keybinds (k=pause, j/l=skip, etc). Or just minimize and use as background music player.
For GUI: IINA (Mac) is literally just MPV with a pretty interface and uses your MPV config.
Frame-by-Frame Analysis
Built-in keybinds (. and , in my config) step forward/back frame-by-frame. Perfect for animation analysis, sports breakdown, debugging video issues.
Automated Workflows
# Watch anything in clipboard mpv $(pbpaste) # Random episode mpv "$(find /Volumes/NAS/shows -name "*.mkv" | shuf -n1)" # Continue last watched (auto position restore) mpv /Volumes/NAS/shows/CurrentShow/*
Why This Beats Jellyfin For Me
Pros:
Zero server maintenance
No transcoding = perfect quality
Plays literally any codec without setup
Way faster (direct file access)
Keyboard-driven workflow
Works offline/online seamlessly
Infinitely scriptable
Cross-platform (Linux/Mac/Windows)
Cons:
No pretty web UI (I consider this a pro)
No user management (just use OS permissions)
No watch tracking (unless you script it)
No mobile app (VLC on phone + SMB works though)
Who This Is For
You’re comfortable with terminal/config files
You want maximum quality (no transcoding ever)
You prefer keyboard controls
You value simplicity over features
You already have a NAS/file server
You want YouTube ad-free without browser extensions
Getting Started
# macOS brew install mpv yt-dlp # Linux sudo apt install mpv yt-dlp # Windows scoop install mpv yt-dlp
Create config at:
Mac/Linux: ~/.config/mpv/mpv.conf
Windows: %APPDATA%/mpv/mpv.conf
Mount your NAS shares, point MPV at files. Done.
Resources
r/mpv
mpv.io/manual/
github.com/mpv-player/mpv/wiki/User-Scripts
EDIT: Holy shit, didn’t expect this response. Common questions:
Q: But I need to share with family who aren’t technical
A: IINA (Mac) or mpv.net (Windows) give them a normal GUI that uses MPV underneath. Or just… teach them? play movie.mkv isn’t rocket science.
Q: What about mobile? A: VLC on phone + SMB share to your NAS. Or just use MPV on desktop/laptop like a civilized person.
Q: No watch history tracking?
A: save-position-on-quit=yes remembers position per file. For tracking across devices, write a simple script or just… remember what you watched?
Q: This sounds like gatekeeping A: It’s literally a config file. If you can set up Jellyfin, you can handle this.
@pezmico ![]()
5% of people have disordered minds that lack empathy, do not feel shame and crave love rhey cannot feel. (See Ian Hughes book -Disordered Minds)
They associate power with success and focus on getting it.
When they assume power they become the guide for the system with everyone elses energy now subsumed into complicity.
Disorder becomes infrastructural.
Also the much of the population seem geared toward avarice and entitlement when the opportunity is created. Paul Piff's experiments seem to show this.
So we need to adopt dystems of participatory democracy that are designed specifically to mitigate against these specific dynamics. There are a lot of solutions in indigenous cultures and there is great research into how we can start. ![]()
@simulo this week is the smalltalks in Argentina
https://t.co/MokbTlYR5r
pro-libre software, pro-holisticism
pro-communalism, anti-consumerism
fan of #Plan9 and #HaikuOS
anti-witchhunt, see https://stallmansupport.org
I write software (C++) for a living.