Admin
https:/www.public.outband.net

@haddock For what it's worth wayland handles mixed dpi different than X11. By some perspectives it's worse.

wok.oblomov.eu/tecnologia/mixe

But really despite that impressive technical writeup (it convinced me) I think the conclusion is that we want something from our display servers that neither Wayland or X11 is really able to provide.

We want mixed DPI. X11 can do mixed DPI wayland can't, we want a seamless multimonitor desktop, both X11 and wayland can do a seamless desktop but X11 loses it's ability to do mixed DPI and wayland is able to spoof mixed DPI better than X11 can(fractional scaling).

My personal opinion, I find wayland as a display server boring compared to X11 (that might be a good thing), the real interesting work in this domain is arcan. arcan-fe.com/about/ But arcan is one guy with a dream. I did not find it all that usable yet.

That stupid new california law requiring age verification, I finally read it and my conclusion is that on unix like systems compliance could be as simple as

echo $YEAR_BORN > ~/.config/ca_ab_1043

That is, all the required interfaces are already present, an os vendor does not need to change anything to be in compliance in the peoples republic of California. and if the user fails to run the age tracking, then it is them that is out of compliance.

For truly malicious compliance it looks like the application could then check for the age wherever it feels like it. "I tried, but I could not find any information at .config/ca_age_cat the user must not have filled it out"

But really, it is such a stupid law that it smells of a frog boiling scheme to me. "If we can get away with an easy change on the os vendors today, we can get them to do anything we want in the future.... for the children of course"

anyhow for grins and giggles here is the actual text of the law. don't lose to many brain cells.

leginfo.legislature.ca.gov/fac

@sjmulder You are probably not wrong, it is a very stupid law. but by my reading the OS only had to provide the age, an application may have to verify it. And the law does not say anything about when an application has to verify anything. so that never needs to be done.

My conclusion after reading it was that on a unix like system compliance may be as simple as

echo $AGE_CATAGORY > ~/.config/ca_ab_1043

It is an accessible user interface, applications can use a well established API to get the data, it shares as little as possible.

But really, it is such a stupid law that it smells of a frog boiling scheme to me, that is "lets see if we can get the OS vendors to do something easy now, for more intrusive tracking later... For the children of course."

@cks On the subject of mask + glasses fogging. I recently picked up some masks for a construction/demolition project and was pleasantly surprised with the way they had a flapper valve for exhale and did not fog up my glasses.

A question, not necessarily to you but in general: The masks are N95 rated; does the flapper invalidate infectious disease use? If not, look for the exhale flapper, they are great.

I really don't know, while I I got them for construction, I love how the exhale flapper does not fog my glasses. But my understanding is that a mask in infectious disease use a large concern is about the wearer not getting their infected mucus particles everywhere as much as not inhaling others infected particles. which the flapper would not do.

Anyone else have a problem with the spell checker on firefox/openbsd? Or is it just me.

It barely works for me, it will identify the misspelled word but almost never provides a correction suggestion. I have gotten to the point of writing a short script that pulls from the select buffer sends it through aspell then back into the select buffer for me to paste back into the field.

On the plus side aspell is a much better spell checker than the included hunspell was. On the downside it's an involved process whenever I want to spellcheck something.

And on the griping side, I find myself spelling much better in general, so there is that.

@mk I have heard that one of the best ways to make an iron structure rust is a spray of salt water, the key apparently is the air, immersion does not work as well as a partial exposure.

This is mainly based on the practical engineering youtube channel. that is, I have not personally needed anything rusty and have not tried it myself.

Ha, the infernal thing sort of works.

How we got here: I have a linux install I use as a gaming system. but the gpu fan map is not working correctly, But I can still change the fan speed by hand. And while I was poking at it trying to understand the system I had a terrible idea.

"Why are we using temp maps to control fan speed, wouldn't it be better to have a closed loop controller where you set the temp you want the card at and it figures out what speed to set the fan?"

Now completely derailed by my own nerd snipe. I know more about pid algorithms than I ever wanted to know. and have some janky python code that can keep my gpu at a atable temp.

The worst part is, the pid stuff is the easy part. but I also built a gpu heat simulator so I could get some intuition tuning pid variables before I inflicted it on an actual gpu. then I wanted to use a midi dials box to control the tuning parameters. then I wanted a curses interface so I could see the state. then I wanted to run the pid core separate from the control interface so needed a client server architecture...

Sometimes I am my own worst enemy.

@joakinen I don't disagree, but that is most of the point of object oriented languages right. You group the data and the functions that work on that data together. I mean complaining about that is like complaining that water is wet.

I always think of it like this, global variables, They have problems, but boy howdy are they convenient, just grab your data anytime any where. Too bad it turns into spaghetti, so we compromise, segment your functions into "objects" and provide data that those function can use like it's global, nice and easy for the common case and hopefully it adds enough segmentation to prevent total spaghetti.

Pardon the rant, first world problems

One of the reasons I still use google translate, over something like deepl, is that when I give it a word in a character set I can't read(for example japanese or chinese) in addition to translating it will give me the word in roman characters. Which I really like.

Or at least I thought it would, for some strange reason it only does this on openbsd(firefox or chrome), on linux(only tried firefox) it is nowhere to be found, only presenting the speak feature. I have no google login(and thus no preferences), I am even sporting an openbsd user agent string on linux to see it this would help. It does not.

It is such a miner thing, but also so weird, (what on earth is obsd doing[or missing] to deserve this feature.) It's been bothering me for a couple months now.

This is hilarious. There was a border dispute between California and Nevada. And because it was never resolved, apparently it is still ongoing.

en.wikipedia.org/wiki/Lake_Tah

When California was admitted to the union it's border was defined a certain way and later when Nevada was admitted it's border was defined in a different manner. At the time it was thought that these two methods were identical but when they actually went out to survey the border it turns out they are not. And because congress does not have the authority to change state lines I guess it is up to the states themselves to negotiate border disputes and both refused to give.

@synx508 No I did not see that one coming. literal gasp and laugh, salutes, made my day.

@synx508 Oh! so cute. But that little ball on the right of the screen. Is that the mouse? Please tell me that is not the mouse. how would it even be used right there? Where are the buttons? So many questions. I love it.

I just wrote a shell script where(for stupid complicated reasons) instead of just running the commands it prints them and you are expected to pipe them to a shell process to run them. Is there a name for for this madness?

sh script.sh | doas sh

If curious: the stupid complicated reason is that my home directory is nfs mounted with no root access and I need to run the script as root but root has no access to the script. thus the pipe dance. But I can see the benefit in verifying that the critical section is correct before running it.

Many years ago I had a co-worker who wrote all his scripts like this, I thought he was a bit daft then, but perhaps he was on to something.

@rubenerd The schema are the funnest part of any project "How am I going to represent this data given the constraints of relational logic" Then you get down to the miserable slog of actually filling it full of data.

Making schemas is half the point of my public.outband.net project. I wanted to see what a shared postgres server would look like. The other half was because I wanted to try all the enterprise obsd features I never get to use otherwise(nis, yp, ldap). No members yet. but that is because A. nobody needs or wants a shared postgres environment. and B. I suck at promoting it.

@vinishor Good luck. I like your blog.

I bought a couple of netra t1's a number of years ago to use as a redundant pair of obsd firewalls. I liked the hardware, but that noise.... Like having a pair of vacuums running 24/7. That is what ended up regulating them to back of the closet, replaced by a pair of apu-2's

The other thing that made me nervous was that system config card, very neat if you had a fleet of the units. but tricky to deal with for the home gamer.

@vinishor I would have sworn the netra t1 was scsi... is the cd ide?

*as I start to rummage around in closet looking for my t1's

@scrottie ntp will not set the clock if it is too off and ntp can take a long time to sync the clock. It can help to set the clock as close as possable before starting ntpd

Also if the computers clock is drifting too much ntp will not be able to keep sync.

I had one old machine that started drifted too much for ntp. If I remember correctly we just called rdate in a cron job every ten minutes to keep it on track.

An odd C case:

I am not much of a C programmer, but I find myself wanting to add a DNS SRV lookup to an existing C program. Because I am not much of a C programmer I figured I would create a stand alone test, to get a feel for the problem. After a bit of perusing the man pages I settled on getrrsetbyname(3) mainly because it looked easier to use than res_init(3), anyway...

My test program started looping in a way I can't explain (IOCCC material?) and I was wondering if someone more failure with C would be able to tell where I went wrong.

#include <netdb.h>
#include <stdio.h>
#include <arpa/nameser.h>

int srv_rr(const char *hostname) {
struct rrsetinfo **result;
int rc;
rc = getrrsetbyname(hostname, C_IN, T_SRV, 0, result);
printf("rrsetbyname rc: %d\n", rc)
return 1;
}

int main(int argc, const char *argv[]) {
int i;
int rc;
for (i=1; i < argc; i++) {
printf("%d %s\n", i, argv[i]);
rc = srv_rr(argv[i]);
}
return 0;
}

I am almost certain it is my rather naive struct rrsetinfo **result; because when I change it to struct rrsetinfo *result[10]; the looping goes away. However I am unable to tell why it was looping in the first place and that is keeping me up at night.

@sjmulder I have no idea how well or unwell they interact with lossy codecs, but My goto for data over audio is minimodem.

whence.com/minimodem/

If I had to guess, you reduce the bitrate until the lossy audio stops killing it.

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst