FOSS Unleashed

Interested in Free and Open Source Software (FOSS), proponent of making computers easier to use by expanding the operations an operator can use. Users should have a pipeline towards being able to operate a computer instead of simply using it. I like looking at obscure and rare software technologies, I feel there are too many projects that died due to capitalism rather than failing due to merit. Big fan of 9p as an inter-process communication channel.

2025-06-15

I am live! [C] Learning Bittorrent DHT - Finishing implementation? Come check this out at twitch.tv/fossunleashed/

2025-06-14

Will be continuing DHT streaming tomorrow. Hoping to get a working swarm. Same time as today, hope to see you there! :D

FOSS Unleashed boosted:
Em :official_verified:Em0nM4stodon@infosec.exchange
2025-06-14

Sure, they might have your previous data.

But you know what they *don't* have?
They don't have your *future* data.

It's never too late to start improving your data privacy online. Every small step helps.

#Privacy #HumanRights

FOSS Unleashed boosted:
2025-06-14

It would be great if other open source project members stood in solidarity and didn’t feed content to right wing content creators. Stop going on their shows please.

2025-06-14

@danirabbit I'm out of the loop here, what's this in reference to? Thanks

FOSS Unleashed boosted:
2025-06-14

please boost and give if you can, let's save as many lives as we can:

Help Rebuild the Life of Dr. Farhat's Family

gofundme.com/f/saving-dr-farha

FOSS Unleashed boosted:
evil and intimidating lesbianlea@lea.pet
2025-06-13

is there a dhcp server that can proxy requests to another dhcp server and alter the response. so that for example i can change the advertised DNS server or provide more ipv6 addresses on top of what upstream gives me to the client

FOSS Unleashed boosted:
Mignon Fogartygrammargirl@zirk.us
2025-06-13

Multiple studies have shown that LLMs can be more persuasive than the average human. They are sycophantic and will lie—and they're good at it.

Combine that with someone who is unstable or vulnerable, and it can be a disaster.

In the featured story, the man started using AI for work and then fell into dangerous conversations. He viewed ChatGPT as the smartest search engine he had ever used.

He didn't know it could hallucinate and was prone to agree with whatever he said.

FOSS Unleashed boosted:
A.R. Moxon, Verified Duck 🦆JuliusGoat
2025-06-13

It's hard to credit MAGA with ignorance. If they were ignorant they'd sometimes accidentally choose less evil over more evil, but no. No matter where you set them, no matter how many times you spin them around, their moral compasses point with unerring certainty toward maximum atrocity and cruelty.

FOSS Unleashed boosted:
Leah Rowe is not a Rowebotlibreleah@mas.to
2025-06-13

3/3

And there *is* clear evidence of this.

E.g. Ubuntu GNOME dropped Xorg soon after the fork: phoronix.com/news/Ubuntu-25.10

And the Xorg project *did* ignore and then close multiple merge requests from Enrico, several of them actually good (e.g. fixing use-after-frees / NULL pointers in certain cases, huge code cleanup).

I can't in good conscience promote Xlibre. Yet I like what it is doing, in terms of technical merit.

We need another non-nazi fork by others, maybe cherrypicking Xlibre commits.

2025-06-13

No stream today. However, I will be looking into Bittorrent's DHT protocol tomorrow! Hope to see you then. 0530 MDT.

2025-06-06

Some thoughts from my self-reflection today. Maybe this helps someone.
I had to deal with a bunch of broken things today. Normally that greatly bothers me, but these were things I broke, and I broke them long ago. I have a lot of anger due to the circumstances around why I was never able to fix them. But that's not helpful. I could spend my hours in rage, or I could keep in mind that I can't undo the reasons for my anger. I can work towards fixing them, or documenting the problems (so I can actually get around to fixing them later), or I can actually spend the time fixing them. There's only so much time, only so much energy. One can't always control their emotions, but they can control if they accept and understand the state of things. They can control how they see the situation. They can control if they can see a way out, a way forward. Build a path forward. I don't want to stew in all my negative emotions anymore.

If you can move forward, you can progress. You need to progress to heal (though not all progression is healing). Take the path that makes things better.

Everyone deserves a good life. You deserve a good life.

FOSS Unleashed boosted:
2025-06-05

Found in my archive:

Cartoon of a person with a genie from a lamp.

The person wishes to know everything about computer security. The genie grants the wish.

The person suddenly looks horrified and exclaims "Oh God!"
2025-06-05

A while back I discovered that ttyper (a typing test program for the terminal) can use a custom wordlist. I decided to create one entirely out of words I always misspell. I don't think my WPM will ever recover TT

github.com/max-niederman/ttype

#foss #opensource #freesoftware

FOSS Unleashed boosted:
David Chisnall (*Now with 50% more sarcasm!*)david_chisnall@infosec.exchange
2025-06-05

@fossunleashed

Blocks are what Smalltalk calls closures (a lot of other languages call them lambdas). They're functions that can capture some state from the surrounding environments.

C originally had a qsort function, with this signature:

void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));

This takes a comparison function as a callback. It's fine if that function is stateless, but what if it needs to mutate some state along the way? Now that state goes in a global that the function refers to. But now your calls to qsort with that function are not thread-safe so you need some locking.

BSD UNIX (I think?) introduced qsort_r that looks like this instead:

void qsort_r(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *, void *), void *thunk);

Now the function takes an extra void* argument. You can create an on-stack structure and then pass a pointer to it in as the thunk parameter. In the implementation of the compare function, you then cast it back. This works fine but is not the easiest API to use.

Apple introduced a version that takes a block instead:

void qsort_b(void *base, size_t nmemb, size_t size,  int (^compar)(const void *, const void *));

This is functionally equivalent to qsort_r but now the compiler is responsible for managing the thunk. You can declare a block inline and use it like this:

__block int calls = 0;
qsort_b(someArray, someArraySize, ^(const void* l, const void *r) {
calls++;
return someSensibleComparison(l, r);
});

Now the function for the callback is entirely local to the function that calls qsort and the captured state is tracked automatically (if you don't write __block, it's copied, if you do then it's shared).

2025-06-05

@david_chisnall Ah neat. I'll have to look more into this. Thank you very much for the thorough reply :D

2025-06-05

@david_chisnall That sounds interesting. I'm having some trouble looking for "block callback" as a term. Do you have any resources of what the usage looks like?

FOSS Unleashed boosted:
: j@fabrica:~/src; :t_blink:josephholsten@mstdn.social
2025-06-05

I’ve been thinking of making some short form videos about historical #Unix versus current releases of #FreeBSD, #illumos, #Linux and macOS, occasionally 9front if I find way more time than I expect.
I’m leaning toward preferring v6 due to its preceding BSD1 & PWB, the Lions book, MIT’s xv6 (and modern projects like rust rewrites).

I’m planning to start with straightforward userland experience first: sh, cc, ed & basic file operations. Anyone got topics they’d like to see?

2025-05-25

@cpt Oh that's neat. I'll have to try that out, see if it's better than my current hacky solution

2025-05-14

@javalps Those are read errors, not corruption. The drive is failing. The entire drive will stop working soon enitrely

Client Info

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