868 karma · joined February 13, 2023
Im actually quite okay with that. Why should I have to pay for specialized hardware that won't be usable if I move and the new apartment uses DSL or docsis. Give me an rj45 (or sfp for some fiber connections) and let me put whatever Router I want behind it.
I have less than zero interest in art that isn't made by humans.
If you're gonna grab a repo to make a code theft machine then at least dont ddos the servers while you're at it.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software [...] to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software [...]
Or the FSF's definition[2] of Free Software The freedom to run the program as you wish, for any purpose (freedom 0).
Or the OSI's definition[3] of open source. 5. No Discrimination Against Persons or Groups
6. No Discrimination Against Fields of Endeavor
It's almost as if this concept is at the very core of FOSS.[1]: https://mit-license.org/ [2]: https://www.gnu.org/philosophy/free-sw.html#four-freedoms [3]: https://opensource.org/osd
If it took some people in the FOSS space this long that it also includes people, companies or purposes they disagree with, then I don't know what to tell them.
i do wonder how hard it would be to integrate multiple of these APIs so that the end user could invite anyone from any platform, though i imagine you'll still need some sort of middle man / lobby server...
Either way, I'm not a fan of having to generate lobby codes every time I want to play baldurs gate 3 with my friends who have it on steam
In general I'd recommend sticking to the simple options and not going into niches unless you/the user actually wants or needs to.
For example: https://map.debian.net/
This threw me off so much when I got started with programming. Like why are the people who have the most questions, not allowed to ask any...?
I still don't get why a simple ptr+size type hasn't made its way into the language. #embed got in but I guess a new type would have been too much... at least we got bool after a few decades.
Also, for those that want the trimming behavior of strncpy but with the null termination, you can replace the strncpy calls with snprintf. You should also always enable -Wstringop-truncation.
If you make a piece of software today and want to package it for Linux its an absolute mess. I mean, look at flatpack or docker, a common solution for this is to ship your own userspace, thats just insane.
And obligatory: experience and competence may be correlated, but they are not the same.
But alas, existing code is considered sacred in the C++ cult so we must never ever inconvenience anyone maintaining legacy code, no matter how broken it is.
There's some example code in their docs (fn handle_preprocessing in the no-op preprocessor) which I've actually included in a preprocessor I wrote some time ago. https://rust-lang.github.io/mdBook/for_developers/preprocess...
For simple HTML docs mdbook is also excellent. I don't know if you could combine these two domains into one tool nicely. To me they're just too different.
although I have made presentations with mdbook using custom written preprocessors and a custom renderer (all of which were extremely crude, but did the job)
I once tried to use Xilinx' Vitis (2025) to make a small-ish piece of software running on such a Zynq chip. After wrestling with it* for like 5 weeks, me and my colleagues decided to ditch the entire Xilinx suite entirely and just pick a compiler and make a bare-metal binary with it. The FPGA part is done by a separate team of course, so us traditional software devs can stick with decent tools. We actually opted for a Rust toolchain and I'm extremely glad we did this, despite the additional time it took.
I don't know how my FPGA colleagues work with the proprietary toolchains and not go insane.
*The IDE is effectively a wrapper with a custom python API around cmake and gcc. It's not very well written cmake and I also don't know how they configure the linker that it does the weird things it does.
I also think they have some testing features built in, though i never delved too deep.