Recent submissions

Comment · 5 years ago
If you have a web API that returns a 200 OK with a JSON object with a missing entry when an item is not found, instead of a 404 error, then you have a bug in your API.

But you cannot allow it to change because your users are relying on the existing behavior.

Comment · 5 years ago
The people who matter, who write init scripts, in other words the distro maintainers, were happy to switch.

Why else do you think so many distributions switched?

Yes, the resistance is noisy and stubborn Unix neckbeards. Not even Unix, since every other Unix had something similar to systemd already. LINUX neckbeards.

Comment · 5 years ago
Comment · 5 years ago
That isn't exactly switching engines. That's the Vulkan renderer they're working on. It is a component of the same engine they're already using.
Comment · 5 years ago
LOL! No, the HDD never was reasonably fast. Our expectations changed.

I booted up an old Windows XP box about two years ago before recycling it. It took almost TWO MINUTES to finish booting to the desktop. Some kind of fairly standard 500 GB Western Digital Blue drive. No, I don't know if it had ever been defragmented or had its TEMP files cleared or had old driver modules removed... It was just slow.

Comment · 5 years ago
I have a Windows virtual machine that was doing this to me a lot, and making Ubuntu reboots take a long time, and then requiring a disk check after the unclean shutdown.

I found a registry key that tells Windows to force stop apps that block shutdown. I may lose an unsaved document once in a while but I would have lost it anyway, and I am pretty good about saving things when necessary.

HKEY_CURRENT_USER\Control Panel\Desktop AutoEndTasks REG_SZ 1

Comment · 5 years ago
Not counting BIOS time it is about 5 seconds to Windows login on my Windows with NVMe systems. It does take about 20 seconds after login for it to finish loading all of the tiny startup notification icons, but that's actually intentional by Windows so it does not overload and prevent you from launching the apps you want. After login I can click on the web browser or email and it will launch instantly for me.

If you are doing a lot of waiting look into getting an SSD for your boot drive.

Or you're running some kind of corporate security product that is going to a remote server for "Mother, may I launch this?" on every EXE and DLL.

Comment · 5 years ago
I believe the benefits of cryptocurrency outweigh problems.

I like having options that can be anonymous, don't require banks, immune to government influence, and even completely outside any law. Because laws are not always moral and should be ignored and evaded.

That's freedom. Having it is worth the significant amount of problems that come along with it.

Comment · 5 years ago
Old tools stay around because they are good tools.

See windbg also.

Comment · 5 years ago
But it would be transpiled so the programmer would never need to look at the very ugly stuff. The idea reminds me of the original asm.js
Comment · 5 years ago
> Wouldn’t all sequence points executed before undefined behavior is encountered be required to occur as if the undefined behavior wasn’t there? It would seem so:

No. Code optimization is a series of logic proofs. It is like playing Minesweeper. If a revealed square has 1 neighboring mine and a count of 1, then you know that all 7 other squares are safe. In other Minesweeper situations you make a proof that is much more complex and allows you to clear squares many steps away from a revealed mine. If you make a false assumption of where a mine is, via a faulty proof, then you explode.

The compiler is exactly like that. "If there is only one possible code path through this function, then I can assume the range of inputs to this function, then I can assume which function generated those inputs..."

You can see how the compiler's optimization proof goes "back in time" proving further facts about the program's valid behavior.

If the only valid array indexes are 0 and 1 then the only valid values used to compute those indexes are those values that produce 0 and 1.

This isn't even program execution. In many cases the code is collapsed into precomputed results which is why code benchmarking is complicated and not for beginners. Many naive benchmark programs collapse 500 lines of code and loops into "xor eax,eax; ret;" A series of putchar, printf and puts calls can be reduced to a single fwrite and a malloc/free pair can be replaced with an implicit stack alloca because all Standard Library functions are known and defined and there is no need to actually call them as written.

Comment · 5 years ago
Your other choices are:

- Never GC via using object pools. This code is nastier than C++ because Java is not intended to be used this way.

- GC whenever needed randomly. The game will just pause occasionally. Very annoying as a player.

- Write the actual game in C++. Make a few JNI calls here and there. On feature phones I only remember this being possible for some vendor apps.

Comment · 5 years ago
It is about making money. Starlink is a money generating system that makes use of low cost launch made possible by SpaceX.

If it does use up most of the low orbit space it is because SpaceX is the only company that is even capable of launching that many satellites and making money on it. Until there is another challenger there is zero point in complaining, because competition is not even an option.

Since it is low orbit it is self limiting problem. Any low orbit satellite has a limited lifetime of a few years without power.

Comment · 5 years ago
Build better walls. Don't try to outlaw people "looking at you", no matter what frequency they use.

I find it equally ridiculous to try to outlaw software radio that might listen to "unapproved" radio bands, or listening to clear-text WiFi, baby monitors and cell phones.

It's almost as stupid as people who would want brain implant computers to implement DRM so people can't record and share their own memory of a movie.

Another analogy would be a country of blind people trying to legislate sighted people wearing blindfolds, because all of their privacy fences have huge holes in them.

Technology improves people's abilities. Adapt.

Comment · 5 years ago
Copy-on-write is exactly what G++ and libstdc++ did with std::string before C++11 changed the spec. And it was terrible and full of bugs.

I remember how I had to solve a pile of thread bugs in a C++ project by changing string assignments into iterator constructors which would bypass the GNU CoW reference counter.

They tried, and tried, but never quite succeeded in fixing every single possible race condition with the reference count CoW implementation.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton