HN user

nwallin

4,729 karma
Posts0
Comments1,068
View on HN
No posts found.

Honestly it’s hard to refute the fact that we need roads and houses more than we need cat videos.

If the software made by my company ceased to exist, every government in the US, federal, state, and municipal, every construction company, plus most governments worldwide would be unable to build roads or houses until they were able to cobble together a replacement.

The entire world runs on software. Software controls our banks, flies our planes, decides what happens when you press the brake pedal in your car. The bridges you drive, walk, or ride across were modeled in software and simulated to determine whether they needed to be built stronger. The power companies use software to route power across the grid. Software drives servos which determine how much natural gas and air get pumped into our power plants. Every day, power producers and power consumers bid on how much they will pay for electricity at certain times tomorrow, and all of that is automated by software. Judges and lawyers file motions electronically, routed through software. Two weeks ago, US President Donald Trump, Iranian President Masoud Pezeshkian, and Pakistani Prime Minister Shehbaz Sharif signed a memorandum of understanding, opening the Strait of Hormuz. Trump was in Versaille, Pezeshkian was in Tehran, Sharif was in Islamabad; the agreement was signed digitally, with software.

If every computer on earth stopped working tomorrow, we wouldn't notice the lack of cat videos, but we would notice the complete collapse of civilization.

A gps logger would likely be too heavy. The birds themselves only weigh 12 grams.

You can derive latitude from the length of the day. You can derive longitude from the offset of dawn/dusk. It won't be nearly as accurate as gps of course, but accuracy to a degree or two is really all you need.

(I would upload as AV1 but the encoder is slooooooooow.)

If you're using libaom, try switching to libsvtav1. It's still slow, but it's slooow instead of slooooooooow.

I wonder if/when we'll reach the point that it's cheaper to manufacture SRAM (with 6 transistors per bit if I recall correctly) than it is to manufacture DRAM. (with 1 transistor and 1 capacitor per bit)

The transistors get smaller every year. The capacitors, like you say, don't anymore. At some point those 5 extra transistors will be cheaper than the capacitor, unless Moore's Law well and truly bites it.

My feeling about JavaScript is statistically speaking, random JavaScript code is more likely to be spaghetti nonsense than, say, the equivalent Python code. This feeling isn't based on empirical data, tbh it's probably as much anti-JS bias as it is experience with poorly written JavaScript.

Is your criticism of tracing specific to messy, confusing code, with lots of edge cases in the main loop, or does it also hold true for well written code?

I have no experience with compiler design, didn't even take a compilers course in college.

Dav2d 2 months ago

AV1 software decoding is already very intensive

I think you might be misunderestimating how incredible the dav1d AV1 decoder is. Not only does it require less total time than the reference decoder to decode the same video, but it can spread that out over far more threads. I was unable to watch 4k 60fps av1 video on my media center PC (it's from 2019, so predates hardware av1 decoding, and, well, the CPU was a little long in the tooth) until I switched to dav1d. With dav1d I am now able to watch 4k 60fps av1 using software decoding, and my machine uses 10% CPU while doing so. Really amazing piece of software.

With any luck, the dav2d 5x claim will hold true, and 10% CPU usage will scale to 50% CPU usage, meaning I'm still able to watch 4k 60fps video on my media center without a hardware upgrade. (that machine doesn't have hyperthreading, so 50% cpu is actually 50%, not 100% in a fancy suit)

A lot of people don't understand just how bad the 3d printer ecosystem can be. Most people understand how bad HP/Epson/Canon ink printers can get, but they really need to understand that 3d printers can be worse than that.

While I kinda sorta need my 3d printer more than my 2d printer, it's an absolute nightmare in a way that my 2d printer isn't, and it's caused entirely by the dogshit proprietary software I have to use in order to print things.

"Bambu's software" is forked from an AGPL project and is therefore itself AGPL. I have a right to fork, modify, and use it how I wish subject to the terms of the AGPL. Bambu's TOS is irrelevant. Their TOS is superceded by the terms of the AGPL.

I like the idea of keeping stuff out of the kernel as much as possible, but in this case, there are good reasons why cryptography has to live in the kernel.

We need on disk encryption, and we need to be able boot from an encrypted disk. So we need encryption for that.

We need network filesystems, and we need the traffic over the network to be encrypted. So we need encryption.

IPsec, for better or for worse, is authenticated and partially encrypted at the transport layer, so if we want a linux machine to speak IPsec, we need encryption.

Fixing/changing this would require a huge restructuring of the kernel; it would basically require switching to a microkernel. Given the fact that nobody's ever written a microkernel that doesn't completely suck ass, I don't know that it would be worth the effort.

Within the past month or so there was a fix for rtx cards that should unlock a massive performance increase for certain games. Only applies to rtx 30xx, 40xx, and 50xx. Search terms are "vulkan descriptor heap" if you would like to know more. It's very fresh so you'll need an up to date distro.

Hiding profiles has genuinely made the platform profoundly worse. It's impossible to tell if you've just got a troll on your hands or someone who's making a good faith argument. It used to be enough to check their profile, and either downvote and move on, or engage with someone on a human level.

Now everyone is a troll/bot by default unless proven otherwise.

I was on a jury a few years ago. The defendent was a homeless person with mental health issues. The cop was obviously lying about the one thing that was the core element of the crime. It was like a child telling the truth about every element of the indoor soccer game expect the part where they were the one who kicked the ball.

The jury was me, (white) nine other white people, and two brown people. Me and the brown people thought the cop was obviously lying, and was therefore not guilty. The nine other people thought he was guilty.

Like the cop was obviously fucking lying.

After three days of deliberation we declared a hung jury.

I was speaking with the prosecutor afterwards and he mentioned they were going for the felony version of the crime instead of the misdemeanor (he was obviously guilty of the misdemeanor, the felony depended on the element the cop was lying about) because the dude was a bad dude and they needed to get him.

I looked him up when I got home. (I didn't look him up during the trial, they expressly forbid you from doing that) He had done something bad and went to prison for four years. He did his time and got out. They were still trying to throw the book at him for bullshit.

I looked him up recently. He was never convicted of anything ever again, but died in jail two years after we declared a hung jury. Prosecutor got what he wanted in the end, I suppose.

AirGas prioritizes industrial users, in the case of helium, copper welding. Argon is perfectly good enough for almost all welding purposes, but copper is different because of its heat conductivity. The heat from the weld really wants to go anywhere else. Helium has substantially higher heat conductivity than argon, which allows the heat to flow from the electric arc into the metal faster, resulting in better welds.

Obviously you can't have oxygen in welding gas; it would oxidize the shit out of everything.

A little bit of oxygen in party balloon gas is beneficial. Some kid will breathe it, and when they do, you didn't want them to asphyxiate themselves.

My experience is that it's really easy to subtly fuck something up if you're doing a bunch of trig in code. If there's something subtly wrong somewhere, everything seems to work for a while, then one day you hit gimbal lock. Then you have to add a special case. Then you hit gimbal lock somewhere else in the code. Or you have tan spit out +/- infinity or NaN. Another special case. Or you have acos or asin in their degenerate regions where the minor imprecision isn't minor anymore, it's catastrophic imprecision. Another special case. Trig heavy code will work 0% of the time if you have an obvious bug, or will work 99% of the time if you a subtle bug, and once you start chasing that long tail you're just adding 9s and will never get to 100%. And if you have code that will run thousands/millions of times per frame, you need a lot of 9s to make sure a user can get through minutes or hours of using your software without hitting bugs.

Doing the same work sticking strictly to vectors and matrices tends to either not work at all or be bulletproof.

The other thing is that trig tends to build complexity very quickly. It's fine if you're doing a single rotation and a single translation, but once you start composing nested transformations it all goes to shit.

Or maybe you're substantially better at trig than I am. I've only been doing trig for 30 years, so I still have a lot to learn before I stop making the same sophomore mistakes.

That's not true. The Bible provides a recourse for unwanted pregnancies in the form of a procedure to perform an abortion.

Which is another reason the Bible should be banned from being accessed by minors. If a child needs an abortion, they should consult a medical professional. They should not read about how to perform an abortion in an app on their phone and attempt to perform the procedure themselves.

I have 64GB of RAM and 16GB of swap. Swap is small enough it can't get really out of hand.

I have memories from like 20 years ago that even when I had plenty of RAM, and plenty of it was free, I would get random OOM killer events relatively regularly. Adding just a tiny bit of swap made that stop happening.

I'm like 90% sure at this point it's just a stupid superstition I carry. But I'm not gonna stop doing it even though it is stupid.

Single pumped AVX512 can still be a lot more effective than double pumped AVX2.

AVX512 has 2048 bytes of named registers; AVX2 has 512 bytes. AVX512 uses out of band registers for masking, AVX2 uses in band mask registers. AVX512 has better options for swizzling values around. All (almost all?) AVX512 instructions have masked variants, allowing you to combine an operation and a subsequent mask operation into a single operation.

Often times I'll write the AVX512 version first, and go to write the AVX2 version, and a lot of the special sauce that made the AVX512 version good doesn't work in AVX2 and it's real awkward to get the same thing done.

I am not OP and am not speaking for them.

"A $30 million mess-up" can look like (at least) two things. It can be $30 million was spent on a project that earned $0 revenue and was ultimately canceled, or it can look like $x was spent on a project to win a $30 million contract but a competitor won the contract instead.

These are light rail/tram tracks, not railroad tracks. The road is the same type of road that you normally drive up, they just have train tracks embedded in the road surface, signs telling you not to drive there, and every now and then a tram drives along it.

Functionally, they're no different than bus lanes or a wide shoulder. Humans drive on them all the time, because there's no traffic on them and they can get to where they're going faster. They shouldn't, it's illegal, and they can get ticketed for it, but they do it anyway. If you load up google street view in Phoenix/Tempe/Gilbert you can see a few people driving on them.

I think it's great that there are Linux projects where the people in the project are obviously unhinged fanatical idealists sent on a mission by god to do <whatever> in the One True Way. I wouldn't use any of those projects, but it's great that they exist, and sometimes their good ideas percolate out to projects that I do use.

Like fine, they're gonna make a distro that only uses software under one of the FSF's free as in freedom copy-left open source licenses, not just excluding closed source software, but also binary blob device firmware and software distributed under one of those filthy permissive licenses. That's great. It's fucking unusable, but it's awesome that it exists and it's great that they're doing it.