Readit News logoReadit News
keyneus commented on The short, happy reign of CD-ROM   fastcompany.com/91128052/... · Posted by u/ecliptik
bombcar · a year ago
It was later but we got a Kenwood True-X 72x and that thing was a beast!
keyneus · a year ago
I remember upgrading from a 4x to 24x, and being excited for the much faster data transfer rate. What I didn't anticipate was the fact that it sounded like a jet taking off when it spun that fast! I figured out how to ratchet it down to 4x and kept it there unless I knew I'd need a fast sustained rate for something like copying hundreds of megs. It wasn't worth the noise for smaller transfers.
keyneus commented on How to make a better default Firefox UI   github.com/black7375/Fire... · Posted by u/black7375
lopkeny12ko · 2 years ago
My greatest "unnecessary Firefox UI change gripe" is the removal of browser.urlbar.clickSelectsAll 4 years ago. And as you might expect, Mozilla does not care. If you read the bug report, this literally cannot be explained by anything except user hostility. https://bugzilla.mozilla.org/show_bug.cgi?id=1621570

Literally no other text field in any UI behaves like this. I cannot fathom why Mozilla chose to both ship this "feature" AND remove the option to opt out of it.

Some users prefer it. And that's fine! But don't take away my god damn option and force it down my throat.

keyneus · 2 years ago
I switched to Vivaldi as a result of the removal of this feature from Firefox, because Vivaldi still allows you to choose this behavior. Are there other Unix browsers you're aware of that allow you to disable click-to-select? It'd be nice to at least have some options, although I'm generally happy with Vivaldi.
keyneus commented on Gameboy music and sound archive for MIDI   vgmusic.com/music/console... · Posted by u/BramLovesYams
thesuitonym · 2 years ago
For those interested in this sort of thing, you can download chiptunes from ocremix.org that can run in a musical emulator like ChipAmp.

Unfortunately I know of no such emulators for Mac or Linux.

keyneus · 2 years ago
At least Audacious (in its audacious-plugins package) as well as Qmmp support chiptunes via the Game_Music_Emu library. I'd imagine many other plugin-based players for Linux/Unix have support as well.
keyneus commented on New C features in GCC 13   developers.redhat.com/art... · Posted by u/petercooper
WickedSmoke · 2 years ago
Could you please give an example of what would break? Perhaps I'm being dense, but it seems a new C standard supporting this would still compile existing code just as C++ can.
keyneus · 2 years ago
In C, it's perfectly legal to do this:

    struct S { ... };
    typedef int S;
That's not valid in C++ (so would be a breaking change in C, if it were to adopt this).

I don't really think changing this in C would break all that much code, but it's definitely not backwards compatible.

keyneus commented on A treasury of Zork maps   blog.zarfhome.com/2023/02... · Posted by u/et-al
Chant-I-CRW · 3 years ago
I enjoyed your write-up, but what about the thief logic?
keyneus · 3 years ago
If you're at all interested in digging through the Zork code yourself, you no longer need to know Z-machine assembly: the source code for most Infocom games was released/leaked a few years back, and is available here: https://github.com/historicalsource/

It's written in ZIL, which has a somewhat Lispy feel (for a bit of background, see another post by Plotkin here: http://blog.zarfhome.com/2019/04/what-is-zil-anyway.html). Infocom's own internal documentation for ZIL is here: https://archive.org/details/Learning_ZIL_Steven_Eric_Meretzk....

keyneus commented on Hello, PNG   da.vidbuchanan.co.uk/blog... · Posted by u/EntICOnc
flohofwoe · 3 years ago
Some platforms don't support full setjmp/longjmp feature set (WASM for instance). As far as I'm aware libpng also works without setjmp/longjmp support though via a build config option (it's still not fun to integrate into a project if you need to build it from source).
keyneus · 3 years ago
As of libpng 1.6.0, a so-called "simplified API" was added, which does not use setjmp/longjmp. A while back I had a C project using the old API, and I converted it to C++, and the interaction of setjmp/longjmp with exceptions was giving me headaches. I switched to the simplified API, and it was a breeze. So much less code, and no hacky C "exceptions". If you can require libpng 1.6 or newer, it's worth looking at the simplified API, if it supports your needs.

It's described here: http://www.libpng.org/pub/png/libpng-manual.txt

keyneus commented on Vivaldi Mail 1.0: Email client built into the browser   vivaldi.com/press/release... · Posted by u/marban
morsch · 3 years ago
Well, I'm trying out Vivaldi on Android. I've been using Firefox for, well, forever, but the tab handling[1] is bad enough that I'm willing to jump ship.

So far it's... different? The tab handling is better, and I think I like having actual tabs in a mobile browser. I'm disappointed that the tab groups don't work as well as in Chrome. I like the link preview feature, in fact I could imagine all links opening like that by default (but that's not an option).

I don't find it all that customizable, that only seems to be true for the desktop version. For example, I can't get seem to rid of the history button (which is styled like a sidebar button despite opening full screen).

There is no reader mode. There are page actions, which let you apply all kinds of nonsensical CSS effects such as blur. But no reader mode. The built-in content blocker doesn't remove cosmetic annoyances as effectively as Ublock does, which makes me miss reader mode all the more.

There don't seem to be any add-ons.

Overall, not entirely convincing.

1. https://github.com/mozilla-mobile/fenix/issues/20012#issueco...

keyneus · 3 years ago
> There is no reader mode.

There is, but as far as I know it's not something you can manually toggle. On sites which Vivaldi deems can be shown in reader mode, you're prompted to switch to it. I don't know what criteria it uses to determine that.

It has to be enabled: Settings→Accessibility→Simplified view for web pages

keyneus commented on Optimising for Concurrency: Comparing the BEAM and JVM virtual machines   erlang-solutions.com/blog... · Posted by u/francescoc
PopeDotNinja · 5 years ago
Am I correct in saying that functions written in C do not get pre-empted like Erlang functions? If that is true, you could write computationally intense code in C within a BEAM app. But I think this misses the point. Pre-emption is really cool for concurrency abstractions, and the trade off is being less good at single threaded computation. Trying to turn Erlang into something like a Bitcoin miner is kind of like combining a bunch of Roombas to make a Shop-Vac.
keyneus · 5 years ago
Am I correct in saying that functions written in C do not get pre-empted like Erlang functions? If that is true, you could write computationally intense code in C within a BEAM app.

They cannot be pre-empted, but they must also return quickly, or risk causing lots of problems (see https://erlang.org/doc/man/erl_nif.html for slightly more detail on what this means). As such you can't just write some big function in C to do number crunching.

The NIF documentation mentions some ways around the problem, but all of them take some effort, or have tradeoffs of some sort. I was really excited when “dirty” NIFs were introduced, which can tell the BEAM that they'll run for a while, thus appearing to allow for long-running NIFs with no extra work other than setting a flag. However, it turns out that the BEAM just spins up N threads for scheduling dirty NIFs, and if you have too many such NIFs, too bad, some won't get scheduled till the others have completed. In retrospect it should have been obvious that there couldn't be a silver bullet for this problem, because it really isn't easy.

Erlang may well be my favorite language, but as you imply, it's just not going to be the right approach for everything: in my experience, it's absolutely fantastic in its niche but that niche is quite small. I think that's fine, though. For me, where Erlang does make sense, its concurrency approach makes it unbeatable, and I'll live with the performance tradeoffs. It turns out that basically all the NIFs I've had to write were just to gain access to functionality that Erlang doesn't expose (e.g. network namespaces on Linux, which are supported now, but weren't when I needed them).

keyneus commented on Is this a better Hacknews UI?   hn.premii.com... · Posted by u/ausjke
keyneus · 9 years ago
I prefer it because it means less fiddling with tabs/the back button. Plus you can collapse comments.

But by default it's very difficult on my eyes due to the low contrast, so to make it at all usable I make use of a Stylish script to fix the text color.

keyneus commented on When Rust Makes Sense, or The State of Typed Languages   m50d.github.io/2015/09/28... · Posted by u/lmm
claudius · 10 years ago
There is no extra “discipline“ or “mental effort” required to write safe C++. Don’t use new/delete/free/malloc and don’t use operator&. Of course, you can say that we might as well remove them from the language entirely, but I really don’t think it takes extra effort not to use them.
keyneus · 10 years ago
C++14:

  auto p = std::make_unique<int>(5);
  auto q = std::move(p);
  std::cout << *p << std::endl;
Segfault using the “safe” C++ features. I'm a fan of modern C++, but it's not safe (in a Rust sense) even if you stick to C++11/C++14 features.

u/keyneus

KarmaCake day31August 26, 2014View Original