Threads for Nerdeiro

    1. 9

      The article defends x86 on its technical merits, but doesn’t cover the real reason to let x86 die: patents. Because of patents, there are only two companies that can design x86 chips: Intel and AMD. We’ve been stuck with this duopoly for years. Now, with ARM and RISC-V, we have dozens of companies designing chips. All this competition should have massive performance/cost improvements vs. the dark timeline where we’re stuck with Intel and AMD only.

      1. 4

        Patents expire, though. Any patents covering the x86-64 ISA or specific architectures should be long gone. What are the ones holding others back?

        1. 4

          AMD64 V2, V3 and V4.

          Those extensions are still protected, which means even if someone builds an AMD64 V1 today, it wouldn’t work with modern versions of Linux or Windows, since both require at least V2.

          1. 2

            When will V2, V3 and V4 patents expire?

            Also, what do Linux and Windows need from V2?

            1. 2

              When will V2, V3 and V4 patents expire?

              After V5 comes out and people depend on it of course. At least that’s what I’d expect from Intel and AMD to do so they can maintain their duopoly for as long as possible.

              1. 2

                Fedora discussed on whether to build targeting V2, but AFAIK nothing came of it.

                From what I can tell, the new stuff in V3/V4 is mostly SIMD stuff, which can be detected and disabled at runtime. V4 in particular is AVX-512, which is barely used by anyone right now.

        2. 3

          Isn’t ARM patent-encumbered also, or did something change? Is it that they charge for designs, but not the ISA itself?

          1. 4

            It is, but ARM is liberal with licensing. Basically anyone can walk up to ARM, cough up what is actually not that much money and build their own ARM cpu. The business model is also very different, resulting in different motivations. ARM is explicitly not in the CPU biz and is in the ISA biz, while being confused about Core design. Intel and AMD are very much selling CPUs and licensing ISA would only introduce competition.

            1. 3

              As I understand it, most ARM licensees have only bought rights to use ARM’s off-the-shelf designs. There is a separate category of architectural licences, which allow the licensee to design their own ARM cores. There are very few architectural licences: the news items I have found list less than 10, but they are years old.

              1. 6

                Yes, because designing a high-end core is a lot of work. Most companies don’t have the resources to develop a competitive design. Samsung, Qualcomm, Nvidia and Cavium have all had great designs for their time, but gave up on their efforts when ARM stepped-up its off-the-shelf IP. Qualcomm bought Nuvia to get back into the game, so I’m looking forward to see how that turns out. I think you should have 10 licensees if you count Nuvia and Qualcomm as separate licensees since Qualcomm had its own license before acquiring Nuvia, or 9 if you count them as one, so that part checks out.

        3. 2

          God I’m tired of the branded attack websites. I understand picking a catchy name so people actually talk about the exploit and fix it, sure, but why go so far with the branding? Is it a prestige/recruitment thing?

          1. 4

            I think it’s the same reason we have host and domain names. Humans are lousy at remembering numbers or jumbled alphanuneric codes, but we are very good at correlating names with characteristics, so in a way, branded attacks act as mnemonics to help us remember the vulnerabilities and if they were mitigated or not.

          2. 22

            The Linux Desktop! For the 20th year running…

            1. 12

              Aww, shucks, right when I ordered a Mac! I’m just about to leave the party and you’re telling me it’s starting??

                1. 3

                  After 17 years of no better time contribute to $linuxthing I think it’s time I had a break from all this :-).

                  (Edit: well, I’m still going to use Linux for all sorts of embedded gadgets. And there’s a driver I wrote, which I’m maintaining, and I’ve been putting off adding support for a new device for a few months now, what with all the global shipping kerfuffle. So I won’t have a break from Linux – what I do want, and will hopefully get, is a break from dealing with… everything else, from systemd to xdg-whatever and from GTK to Wayland, in my spare time. I’ve got a bad case of perpetual beta fatigue.).

                  1. 1

                    I’ve got a bad case of perpetual beta fatigue.

                    Well, good luck then on macOS ;).

                    I used macOS full-time from 2007-2018 and part time from 2018-2020. macOS was really great when I started using it. But it is as buggy as any other desktop OS nowadays. With the large difference that there is no recourse besides filing issues in OpenRadar, which is pretty much the same as sending them to /dev/null. In a FLOSS systems like Linux or the BSDs, you can at least report bugs to someone who is listening or fix it yourself.

                    1. 1

                      Oh, I’m not having grand expectations. I had two stints with what was OS X back at the time. I used 10.1, I think, for a few months (wasn’t my laptop), and then used OS X 10.4 and 10.5 on two of my machines between roughly 2007 and 2010. It was okay, I liked Linux better but I could see the appeal. Programming Unix-y things under OS X was definitely not fun and I’m not expecting it to be any fun-er but it was solid enough to be useful.

                      Then I haven’t touched Macs for a long time until last year, when nobody wanted to fix macOS bugs in one of the projects I’m working in and I figured why not. Based on a few weeks of fiddling with them, Catalina and Big Sur seem to me worse, overall, than 10.4 was at its time (I was too enthusiastic about Aqua to be able to tell much about 10.1) but I can work with them.

                      The hardware is the bit I’m more concerned about, honestly. I haven’t peeked under the hood in a while but strictly based on what I can see outside, I want to hug my old iBook G3 and never let it go.

                      In a FLOSS systems like Linux or the BSDs, you can at least report bugs to someone who is listening or fix it yourself.

                      Until a few months ago when it finally became unnecessary, I used to babysit a GTK application so I got to be great at being talked down to by upstream. Being ignored would be, like, amazing!

                      Anyways, it’ll take a while for my MBP to arrive. What’s the worst that can happen? :-D

                  2. 3

                    I had no idea this existed. I thought it was a non-starter. yey. \o/

                    Also, the developer has a serious history of successfully doing this sort of thing. Suddenly I am even more excited by Apple Silicon.

                2. 2

                  The year of Gaming on Linux.

                  With the recent improvements made to Proton, about 70% of the games work.

                  1. 2

                    after years on MacOS I switched to Windows when I started working in gamedev, and after a few years of putting up with it I finally got fed up enough that I switched to Ubuntu over the holiday break. Since getting my dual boot setup working, I haven’t yet booted into Windows.

                    1. 2

                      Give it some time :-). This isn’t my first rodeo, I’ve been at it for almost 20 years.

                  2. 4

                    What cracks me up is that they used “Start me Up” as a theme song for the release. You know, that Rolling Stones song that says things like “You make a grown man cry” ?

                    In hindsight, it fitted Windows 95 perfectly.

                    1. 4
                      • Nice article – my custom keyboard is more of a 60% one, but it’s interesting to read the reasons for/against certain design decisions:

                        For instance, I also shortened the right shift key to add this one additional key you need to have a key for each of the 30 letters of the German alphabet.

                        Having 30 letters also allows dividing them nicely between the left and the right hand, and are easily distributed on the 3 rows: 15 letters on the left half, 15 letters on the right half; 10 letters on a row – perfect!

                        I have written about the ideas that went into my design here: https://soc.me/hardware/keyboard-design

                      • I also had the problem with where to place the arrow keys – I strongly prefer having them in a layout that physically reflects their direction, but this makes it hard to put it on either half of the keyboard without destroying the haf-letters-left/half-the-letters-right property. For now, I have settled on putting arrow keys in the middle, but I’m aware that this is not a great place either for one-handed use.

                      • One thing I’m not too optimistic about is the believe that adding layers or cording keys makes them as accessible as having a key for them.

                        Just give it a try: switch the number-row from numbers-without-shift to numbers-with-shift and count the time you need until you are as fast as using the old way!

                      • The next big evolutionary step I see in keyboard space is actually not the hardware itself, but improving the terrible software/protocol stack that runs the whole thing.

                        E. g. in the year 2019 it should be possible to send Unicode over the wire. The current way of doing things is just mindbogglingly arcane and unnecessarily painful.

                        Sadly I lack the time to learn how to write an implementation for the firmware (on keyboard) and a fitting device driver (for Linux). :-/

                      1. 2

                        Software is a big problem for me. Using a QMK board to send various Unicode symbols worked decently, but the tools on Linux for modifying what characters are sent when are all a mess.

                        Similarly, switching key positions or uses is frustrating. I like to have the Control and Escape keys as the two either side of the space bar, with one also acting as Shift, and I know that this is possible because I once had a mess of xkb manipulation programs set up to get it to work - but because it’s not a standard modification (like making caps lock a control, for example it really didn’t come easily, felt unstable, and hasn’t worked since reinstalling my OS.

                        A shame there’s pretty much no financial incentive for hardware manufacturers to run all their keyboards through QMK or some similar firmware!

                        1. 1

                          mm I imagine

                        2. 1

                          in the year 2019 it should be possible to send Unicode over the wire

                          The reason keyboards send scancodes instead of unicode is that it allows the OS to map keycodes to characters in any language, this way I don’t need to reflash my keyboard everytime I want to change the language, or swap from Dvorak to Qwerty. I can just load a diffent mapping and that’s it.

                          1. 1

                            The reason keyboards send scancodes instead of unicode is that it allows the OS to map keycodes to characters in any language […]

                            Let’s not pretend that the current state of the art is anything but an accident. Keyboards had a language id that could be set by the manufacturer and was supposed to be used to provide mappings automatically – without having to “configure your keyboard” on your computer.

                            Manufacturers cheaped out on it, never set the byte to anything, and the rest is history.

                            […] this way I don’t need to reflash my keyboard everytime I want to change the language, or swap from Dvorak to Qwerty. I can just load a different mapping and that’s it.

                            That’s an interesting use-case, but one I never had and will never have.

                            I have my keyboard. I want the same letters to end up on the computer’s screen regardless of which computer I plug my keyboard into.

                            I have all letters I’ll ever need mapped on my keyboard, so switching layouts is not necessary. By the way, are you using a keyboard with blank key caps? Can’t imagine to switch layouts on a keyboard with printed letters.

                            1. 1

                              Keyboards had a language id that could be set by the manufacturer and was supposed to be used to provide mappings automatically

                              Someone in Eastern Europe or Asia working on translations would have to buy a very expensive multi-language keyboard then or have two different ones. With the current system, all you need is a bunch of stickers and change a setting.

                              Another thing, a keyboard with fixed unicode mappings could make hard or impossible to remap keys for users with disabilities, the workaround, again, would be a more expensive device with remapping capabilities.

                          2. 1

                            Thank you very much!

                            Would you be able to help me to analyze efficiencies of different keyboard layouts?

                            You are absolutely correct about that you should be able to send UTF-8 codes by now!

                            1. 1

                              Would you be able to help me to analyze efficiencies of different keyboard layouts?

                              I have actually no knowledge about this. :-) I think it’s very hard to even define what “efficiency” means in terms of typing.

                              You are absolutely correct about that you should be able to send UTF-8 codes by now!

                              For what it’s worth, I thought up some spec extension here: USB-HID Protocol Evolution. (Not that I think anything will happen with it.)

                            2. 1

                              Just give it a try: switch the number-row from numbers-without-shift to numbers-with-shift and count the time you need until you are as fast as using the old way!

                              As I understand it layers are different to using shift+‘character’, and are fundamentally modal. This makes them several orders of magnitude easier to access compared to your example. For example, compare using the compose key to type out á versus the alt-gr method.

                            3. 9

                              No matter how many Vim Tips & Tricks articles I encounter, I always learn something new

                              1. 2

                                I’m not sure if Bram Moolenaar himself knows everything his own software is capable off.

                              2. 11

                                nice read. one of these blog posts that you hardly read these days (unagitated, reporting an experience).

                                I woudn’t consider myself to be a minimalist with regards to software resource usage, but lately I started to wonder a bit about it. The reason is I noticed that my phone (Android) loses all of its sluggishness in its UI when I am in the energy saving mode below 15%. What difference a reduction in animation can make! Obviously I could manually enable that mode, but I fear it will deprioritize background tasks such as messenger apps. Nevertheless, I looked for an option to configure the animation and couldn’t find it. This got me thinking.

                                Looking back, my Windows 95 PC (Pention II 266 MHz) ran a graphical user interface with just 32 GB RAM. Of course most applications on it were written in plain C and C++, with a Windows API that was taylored to optimizing performance in application code. Nevertheless it seems excessive that my 16 GB macbook swaps occasionally without me doing much fancy stuff.

                                1. 4

                                  “Looking back, my Windows 95 PC (Pention II 266 MHz) ran a graphical user interface with just 32 GB RAM.”

                                  I think you meant 32MB of RAM. Otherwise, you were spending way too much on RAM and NUMA hardware for a CPU with max of 3.5GB addressable memory per Windows box.

                                  1. 3

                                    haha, indeed MB ;)

                                    Could have made a fortune seeling a 32 GB RAM device back then i guess

                                    1. 1

                                      You could’ve made a fortune just patenting one in the U.S.. ;)

                                    2. 2

                                      This is one reason I use alternative ROMs on my phone. The level of customization is insane, including disabling animations. I’m so spoiled by it, I can’t stand manufacturer ROMs or even vanilla AOSP.

                                    3. 4

                                      FWIW, there’s a setting in Android’s developer settings called “animation scale” that scales the duration of (some) animations. Why something like this isn’t an ordinarily available setting like Apple’s “reduced motion” mode I don’t know.

                                    4. 5

                                      Interesting read, although it leaves out several key pieces of information. Like just what is “torch”? Looks like it is this. And why not link to binwalk while you’re at it?

                                      But yeah, it’s a bad idea to set someone else’s LD_LIBRARY_PATH. Torch should have provided a shell script that sets it just for itself when invoked (that’s how we do it). But I never knew that about the trailing ‘:’!

                                      1. 1

                                        This is why I rather put the existing variable as a prefix, instead of suffix.

                                        1. 3

                                          Which does absolutely nothing. An empty element is treated as . regardless of whether it’s first or last or in the middle.

                                          1. 1

                                            Is there any simple way to avoid leaving any leading or trailing :? This isn’t as simple as I’d like:

                                            LD_LIBRARY_PATH=$(sh -c 'IFS=:; echo "$*"' -- $LD_LIBRARY_PATH EXTRA PATHS)

                                            1. 6

                                              LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}/additional/path"

                                              See Single Unix Specification, 2.6.2 Shell Command Language → Word Expansions → Parameter expansion.

                                              ${parameter:+word}: substitute word if parameter is set and not null, null otherwise.