Donated. While I don't use NetBSD, the existence of projects like this is essential for open source technology, operating system design, and the overall vitality of programming culture.
Interesting, but this is a software project. Camera sensor is being bought from Aliexpress in bulk. Competition from companies manufacturing cameras, or smartphones, is huge. How this project is not a cash grab?
"The problem is not the law but with the people who don't follow it."
I mean... uh.
If the world would only consist of people who want to cooperate and don't have malicious intentions, then WE WOULDN'T NEED THE LAW AT ALL.
The law exists BECASUE OF the people who don't want to comply. So if the law doesn't control those people who don't want to comply, then the problem is with the law.
Because if we're saying that the problem is with the people, then the discussion is pointless like a black hole.
I don't really like Go as a language, but this decision to skip libc and go directly with syscalls is genius. I wish Rust could do the same. More languages should skip libc. Glibc is the main reason Linux software is binary non-portable between distros (of course not the only reason, but most of the problems come from glibc).
> Glibc is the main reason Linux software is binary non-portable between distros
Linux software is binary portable between distros as long as the binary was compiled using a Glibc version that is either the same or older than the distros you are trying to target. The lack of "portability" is because of symbol versioning so that the library can expose different versions of the same symbol, exactly so that it can preserve backwards compatibility without breaking working programs.
And this is not unique to Glibc, other libraries do the same thing too.
The solution is to build your software in the minimum version of libraries you are supposed to support. Nowadays with docker you can set it up in a matter of minutes (and automate it with a dockerfile) - e.g. you can use -say- Ubuntu 22 to build your program and it'll work in most modern Linux OSes (or at least glibc wont be the problem if it doesn't).
> Linux software is binary portable between distros as long as the binary was compiled using a Glibc version that is either the same or older than the distros you are trying to target.
Well, duh? "Property A is possible if we match all requirements of property A".
Yes, using older distro is the de facto method of resolving this problem. Sometimes it's easy, sometimes it's hard, especially when we want to support older distros and using a new compiler version and fairly fresh large libraries (e.g. Qt). Compiling everything on older distro is possible, but sometimes it's hell.
> And this is not unique to Glibc, other libraries do the same thing too.
This only means that it is a very good idea to drop dependency on glibc if it's feasible.
macOS has a "minimum macos required" option in the compiler. Windows controls this with manifests. It's easy on other systems.
> Yes, using older distro is the de facto method of resolving this problem.
What i describe is different from what you wrote, which is that Linux is not binary compatible between distros. This is wrong because Linux is binary compatible with other Linux distributions just fine. What is not compatible is using a binary compiled using a newer version of some shared libraries (glibc included but not the only one) on a system that has older versions - but it is fine to use a binary compiled with an older version on a system with newer versions, at least as long as the library developers have not broken their ABI (this is a different topic altogether).
The compatibility is not between different distros but between different versions of the same library and what is imposed by the system (assuming the developers keep their ABIs compatible) is that a binary can use shared libraries of the same or older version as the one it was linked at - or more precisely, it can use shared libraries that expose the same or older versions of the symbols that the binary uses.
Framing this as software not being binary portable between different distros is wildly mischaracterizing the situation. I have compiled a binary that links against X11 and OpenGL on a Slackware VM that works on both my openSUSE Tumbleweed and my friend's Debian system without issues - that is a binary that is binary portable against different distros just fine.
Also if you want to use a compiler more recent than the one available in the distro you'll need to install it yourself, just like under Windows - it is not like Windows comes with a compiler out of the box.
Which is why they have already backpedalled on this decision on most platforms. Linux is pretty much the only OS where the syscall ABI can be considered stable.
Yes, Linux is reversed in this aspect -- glibc is not really binary friendly, but kernel syscalls are. On other systems, kernel syscalls are not binary friendly at all, but libc is friendly.
I'm fine with using libc on other systems than Linux, because toolchains on other systems actually support backward compatibility. Not on Linux.
You can skip libc on Windows - you can't skip the system DLLs like kernel32. (In fact, Microsoft provided several mutually incompatible libcs in the past.)
Well, you can non-portably skip kernel32, and use ntdll, but then your program won't work in the next Windows version (same as on any platform really - you can include the topmost API layers in your code, but they won't match the layers underneath of the next version).
But system DLLs are DLLs, so also don't cause your .exe to get bloated.
Yes, it's not literally libc on windows, but the point is that directly calling syscalls is not supported, you have to call through the platform's library for doing so.
On some systems, this is just not a supported configuration (like what you're talking about with Windows) and on some, they go further, and actually try and prevent you from doing so, even in assembly.)
There's still something on the platform that you can call without extra indirection in the way on your side of the handoff. That is true on all platforms; whether it's an INT or SYSCALL instruction or a CALL or JMP instruction is irrelevant.
Kind of like the syscall dispatch table on the Linux kernel side, right? After you issue the handoff instruction and it becomes the operating system's problem, there's still more code before you get to the code that does the thing you wanted.
Well, you wouldn't learn as is let's learn Rust from it. But I think it has many interesting bits not found in most open source projects out there. and true that, there is a lot of unsafe code, uses nightly builds, its own allocator, crazy stuff. I did learn a lot from it :)
And yeah, it is a reimplemantion. But it is a TUI and very minimal. Keepining it minimal, with no dependendecies and software bloat seems to be one of the guidelines. So very much something adding to the article at case.
A) For the most part, scientists do research because they are curious and enjoy it, not because they plan on making money out of it. Getting a salarys allows them to do what they like, they don't it do for the salary.
B) If there's a little slippage due to lazy, misaligned, or fraudlent people, it might still be worth it. Consider two proposals: "I'll give you money every month if you're a scientist and just hang around studying whatever you like" vs "I'll give you money every month if you hit research metrics XYZ as a scientist" - the former will allow you to pay way less and sciensists will still be happy. It's just getting them for cheap.
C) I'm skeptical that you personally can tell whether the paper linked is pointless or not. Many ideas seem pointless when they first appear. Some are, and some contribute a tiny bit to the progress of understanding.
Well, there are papers that prove people use warmer clothes in winter than in summer. If you want to argue there's a deeper meaning behind such science, then who am I to change your mind.
Are there? Multiple papers? Citations please. Even if true, I have to assume there’s a high probability that you’re leaving out important context, misunderstanding the results, or just plain exaggerating.
That paper seems interesting. Why are you implying it’s pointless? What is your expertise in Mammalian or evolutionary biology? How do you know this won’t contribute or lead to something useful in veterinary or human medicine, or bioengineering, or anything else?
Have you heard of the Golden Goose Awards? The first paragraph on their history page (https://www.goldengooseaward.org/history) can be applied directly to your comment:
“From 1975 to 1988, Senator William Proxmire issued monthly “Golden Fleece Awards,” which targeted federal spending Proxmire considered wasteful. Unfortunately, the awards often targeted federally-funded scientific research for ridicule. Science that sounded odd or obscure was easily singled out, but the awards reflected fundamental misunderstanding of how science works, and how such research can turn out to be extremely important regardless of whether it makes sense to non-scientists. Indeed, such research can have a major impact on society. The nature of scientific research is that its impact is hard to predict.”
You’re demonstrating the fundamental misunderstanding of science the Golden Goose page refers to. It’s expected - and a necessary part of science - that not all papers succeed.
The funny thing about this is that, unlike UBI or whatever, the societal returns on investment in science research are huge and indisputable. Nothing else in human history has improved our condition or knowledge or quality of life as much or as fast. You’re typing your opinions into a box that came out of large numbers of papers, some of which were criticized for their pointlessness. You’re absolutely barking up the wrong tree.
Again, what makes you certain that this paper or any other won’t suddenly get citations and importance in the future?
You simply don’t know that. It’s not even relevant whether your uninformed prediction turns out to be correct later, that would be random luck. You cannot tell what will happen in the future.
And why don’t you understand that having research and papers in the system that don’t lead to anything is actually a good thing, both expected and necessary?
Read a little more about the Golden Goose awards, about research that was ridiculed and languished until it didn’t. There are lots of papers that seemed like a dead end until long after they were published. The entire field of Neural Networks is now combing prematurely presumed dead end research from 40+ years ago.
Maybe you can fix it, but you do seem to be completely missing the point of what science is. Investment in science, and the associated research and experiments, aim to increase knowledge. Science doesn’t necessarily aim for utility, and doing science is always taking a risk that the knowledge gained might not be useful. You can’t actually do science without taking that risk, and we can’t have papers that make huge progress without papers that make no progress.
You can’t tell what investments will pay off until they do. You can only be sure the technology in your computer wasn’t pointless because it already worked out, despite lots of naive people like you claiming it was pointless at the time.
The good news is that our investments in science are paying off big time, and those investments include all the dead end papers ever written. The sum total, even with all uncited papers in the world, is that we are much better off having spent the money on science than not.
Hey I appreciate your comment, but you were doing a fine job! In case it comes up later, here are another couple of resources to defend science funding:
I don’t know why trying to ridicule funny sounding science papers is still such a popular thing to attempt, when the Golden Goose awards exist, and when people who do it have been shown repeatedly for many decades to fail to understand either science or money, yet here we are. Luckily science won’t stop, even with our current administration’s chaos.
> to publicly identify or publish private information about someone especially as form of punishment or revenge
This person literally uses his own name as HN username. Very imaginative use of the word tho.
EDIT: Even though I think that point of view is idiotic, I now worry that if you think like that, other people will too. Would you please report that comment so that a mod can edit it/delete it (I can no longer edit it).
The question is what was the original task that needed to be fixed? I doubt it required a custom DSL.
Issue a research task first to design the scope of the fix, what needs to be changed and how.