I am live! [C] Learning Bittorrent DHT - Finishing implementation? Come check this out at https://twitch.tv/fossunleashed/
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.
I am live! [C] Learning Bittorrent DHT - Finishing implementation? Come check this out at https://twitch.tv/fossunleashed/
Will be continuing DHT streaming tomorrow. Hoping to get a working swarm. Same time as today, hope to see you there! :D
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.
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.
@danirabbit I'm out of the loop here, what's this in reference to? Thanks
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
https://www.gofundme.com/f/saving-dr-farhats-family-towards-hope
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
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.
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.
3/3
And there *is* clear evidence of this.
E.g. Ubuntu GNOME dropped Xorg soon after the fork: https://www.phoronix.com/news/Ubuntu-25.10-No-GNOME-X.Org
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.
No stream today. However, I will be looking into Bittorrent's DHT protocol tomorrow! Hope to see you then. 0530 MDT.
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.
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
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).
@david_chisnall Ah neat. I'll have to look more into this. Thank you very much for the thorough reply :D
@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?
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?
@cpt Oh that's neat. I'll have to try that out, see if it's better than my current hacky solution
@javalps Those are read errors, not corruption. The drive is failing. The entire drive will stop working soon enitrely