1. 1

    Think for a second of a future where we can open a browser and run tf/torch, starcraft, sqlite, postgres, clang, brew, wayland, R studio, a bsd or linux VM, octave, the .NET ecosystem, vim, vscode, another browser.

    NetBSD’s rump kernel has been able to run in a browser for well over a decade (perhaps two?) And I’ve seen Gameboy and Nintendo emulators that run in a browser.

    Just how complex browsers are these days boggles the mind. They’re also nigh impossible to secure.

    1. 1

      NetBSD’s rump kernel has been able to run in a browser for well over a decade (perhaps two?)

      Can you give some more detials here? Do you mean in userspace or as part of browser’s code?

      I guess I should have mentioned I was referring soley to userspace. If that’s the case… I don’t really see the reason why you might want to do that. Maybe to run it on in-browser simulated hardware?

      1. 1

        NetBSD has pretty good documentation on rumpkernels. Effectively, it’s akin to running the kernel as a program in userspace. Rumpkernels allow one to develop and test new TCP/IP stacks and filesystem drives, for example. Pretty cool methodology of OS/systems development.

        1. 1

          It doesn’t seem to me like it’s running in a web browser, but rather that it’s running the web browser.

          Relevant section being:

          This section explains how to run any dynamically linked networking program against a rump TCP/IP stack without requiring any modifications to the application, including no recompilation. The application we use in this example is the Firefox browser. It is an interesting application for multiple reasons. Segregating the web browser to its own TCP/IP stack is an easy way to increase monitoring and control over what kind of connections the web browser makes. It is also an easy way to get some increased privacy protection (assuming the additional TCP/IP stack can have its own external IP). Finally, a web browser is largely “connectionless”, meaning that once a page has been loaded a TCP/IP connection can be discarded. We use this property to demonstrate killing and restarting the TCP/IP stack from under the application.

          1. 1

            Years ago, you could run the rumpkernel inside the browser, exactly similar to emulating a gameboy or NES in the browser. Similar to this: https://bellard.org/jslinux/index.html

            Those demos showing the rumpkernel booting in the browser itself seem to be no longer available on the internet. That’s a shame, because rumpkernels-in-js are awesome.

            1. 2

              Those demos showing the rumpkernel booting in the browser itself seem to be no longer available on the internet.

              Curiosity got me and I think I found a copy of one of those demos:

              http://197.155.77.5/NetBSD/misc/pooka/rump.js/

    1. 8

      You can also write the Emacs configuration in Nix itself, which has the benefit that you can refer to programs the Nix way (e.g. "${somepackage}/bin/somebinary") and that you can integrate Emacs configuration with home-manager modules (so, that e.g. your Rust specific configuration is only added to the Emacs configuration when your Rust module is enabled).

      I did this by first copying rycee’s emacs-init module, extending it with some functionality that I needed:

      https://github.com/danieldk/nix-home/blob/93b11b64a5e18e2f86bc85454f958996dcc492ac/home/modules/emacs-init.nix

      My base Emacs configuration in Nix:

      https://github.com/danieldk/nix-home/blob/93b11b64a5e18e2f86bc85454f958996dcc492ac/home/cfg/emacs.nix

      Example of module-specific configurations:

      https://github.com/danieldk/nix-home/blob/93b11b64a5e18e2f86bc85454f958996dcc492ac/home/cfg/rust.nix#L11 https://github.com/danieldk/nix-home/blob/93b11b64a5e18e2f86bc85454f958996dcc492ac/home/cfg/go.nix#L10

      1. 5

        I do something similar and really like how this makes the configuration more portable.

        Also worth mentioning is the emacs-overlay which, among other tings, provides daily generations of MELPA.

      1. 18

        IMO, give up on the bizarrely macho idea that hjkl is uniquely amazing and use the arrow keys.

        1. 18

          To me the advantage of using hjkl instead of the arrow keys is that I don’t have to move my fingers away from the home row to move the cursor around. I don’t see how that is a “bizarrely macho idea”.

          1. 1

            I cannot imagine how that helps. Can you explain?

            1. 7

              You can keep your fingers in the middle of the typing area (home row) instead of going over to the cursors.

              1. 0

                Oh, hi ane!

                You can keep your fingers in the middle of the typing area (home row) instead of going over to the cursors.

                I cannot imagine how that helps. Can you explain?

                1. 4

                  Hi!

                  I cannot imagine how that helps. Can you explain?

                  You… move around less? It saves time. Like a keyboard shortcut or macro does, basically. It depends on the form factor of the keyboard, but usually the arrow keys are further away from the regular text input keys.

                  1. 1

                    Perhaps 10 years of active piano practice makes this a moot point for me but not so much for others. Or I’m just being an asshole. Could be both ;)

                  2. 2

                    What I find helpful about it, is that I don’t have to look away from the screen to see where the arrow keys are, and likewise when going back to the home row. If there’s a lot going on on your screen it’s easy to lose your place, especially when reading lots of text.

                    Also it avoids the physical motion of moving your hand, it just feels more comfortable I think.

            2. 16

              I use a 60% keyboard without arrow keys

              1. 1

                By choice, though?

                1. 2

                  Yes, it’s more portable and means i don’t have to reach as far for my mouse

              2. 10

                I used to think this way. Then I learned hjkl. Now I am in the cult of the ancient keyboard warriors

                1. 2

                  Ancient keyboard warriors who didn’t have arrow keys? I used arrow keys, learned hjkl, thought it was nice, moved to dvorak, ditched hjkl for arrow keys. Nothing is magic about it. Why contort yourself to use hjkl on non-qwerty? Would hjkl be dhtn if the standard were dvorak at the time? Probably, but you can’t just remap dhtn now.

                  1. 5

                    There was once a really good reddit thread of a guy playing counter-strike with zqsd movement keys on a qwerty keyboard cause he copied a French (AZERTY) player’s keybinds. He did not realize this and posted about how much better these movement keys made him.

                    1. 5

                      Pedantic note: ScreaM is a Belgian, not French, player. The keyboard layout is still French though

                    2. 1

                      Would hjkl be dhtn if the standard were dvorak at the time? Probably, but you can’t just remap dhtn now.

                      If you’re using Dvorak in the “suggested sense”, even dhtn would be awkward since you’d be using your right index finger for both d and h. Maybe htns (or QWERTY jkl;) would be better.

                  2. 9

                    How did you come to the conclusion hjkl is “bizarrely macho”?

                    1. 8

                      Why is that macho?

                      I mean some people tried it, liked it and share the good experience of how great it feels when you get used to it.

                      1. 3

                        I used to use hjkl. Then I started getting RSI. Now I appreciate the break my fingers naturally get every time I have to move my hands to the arrow keys.

                        I can still use hjkl at a pinch, and probably use them many times a day without noticing. But yeah, it’s not worth getting worked up about.

                        1. 8

                          I can see this being the case, but I think it’s worth noting that RSI covers a large number of distinct problems, and that most RSI would only get worse by more frequently moving your hands away from the home position.

                      1. 3

                        One thing that really annoys me with NixOS releases is that .09 almost never comes out in September, nor .03 in March.

                        1. 3

                          From what I can tell those being in charge are aware about that annoyance. See https://discourse.nixos.org/t/what-should-stable-nixos-prioritize/9646 for a discussion about doing better for stable releases.

                        1. 4

                          Is there a “best-of” or “significant changes” list for OpenBSD releases? The changelog is detailed, but it’s easy to miss something between the points one might not be familiar with.

                          1. 3

                            undeadly.org usually has a list of the “highlights” in their articles about new releases. The one about 6.7 can be found here. I don’t see anything for 6.8 yet though.

                            1. 3

                              An in-kernel WireGuard driver and TLSv1.3 being enabled in LibreSSL were the two things that stood out for me. Here’s the Undeadly article.

                              1. 1

                                List of most significant innovations - https://www.openbsd.org/innovations.html

                                1. 3

                                  I’m familiar with that page, it’s just not 6.8-specific.

                                  1. 1

                                    Right, you’ve used plural releases and didn’t mention 6.8 specifically:

                                    Is there a “best-of” or “significant changes” list for OpenBSD releases?

                                    It’s either changelog - the plusXX.html pages - or the relase pages - XX.html - themselves. The latter is separated into sections in case you’d like to look at bugfixes, kernel, userland, etc.

                                    1. 1

                                      I see why you thought that I was looking for something like innovations.html, the question was ambiously phrased.

                              1. 7

                                For anyone else wondering what this is. Kmonad seems to be what could be described as a keyboard remapping tool.
                                It seems to be able to do on the host most of what QMK is able to do on the keyboard.

                                1. 49

                                  It is Firefox’s moral obligation to stop adding anti-features (DRM, Pocket, all the start page spam).

                                  1. 24

                                    For Pocket and the start-page stuff, look at it this way: Browsers are very complex systems, and therefore very expensive to build and maintain. Chrome’s funding comes from Google’s datamining of its users, which I think we can agree is a downside, but Firefox’s funding… also comes from Google’s datamining of its users. If you don’t think Firefox should be supported, that’s fine, and if you want to support Firefox yourself through a monthly donation or just allowing ads on the start page, that’s even better, but I don’t think it’s fair to expect Google’s users pay for Firefox so you can have it for free.

                                    As for DRM, Firefox may be the #2 browser vendor but it is not an immovable object. When an irresistible force comes along sometimes the wisest course of action is to get out of the way and live to fight another day, rather than get crushed to death on the spot. If your only regular user is Richard M. Stallman, you may have the moral high ground but you’ve forfeited your chance to improve society in general.

                                    1. 11

                                      Just a reminder that Google has created the DRM spec that Firefox was forced to adopt (forced in the sense that a browser that is blocked by Netflix would lose users, and influence, and thus leaving only DRM-supporting browsers on the market anyway).

                                      Chrome and Safari have DRM enabled by default, without warning.

                                      In Firefox at least it’s an optional component that you can choose not to download and you’re warned whenever a site tries to use it. So if you take a stance against DRM, then Firefox in the default configuration (i.e. without DRM) is still a great choice.

                                      Mozilla has bought Pocket, so it’s no longer a 3rd party, but a fancy Firefox bookmark tool. It doesn’t use any noticeable resources if you don’t use it, and you can disable it if you can’t stand having an icon.

                                      1. 9

                                        Pocket is easy to disable, and the DRM is needed to play videos on many web sites. Without DRM, Firefox wouldn’t have a large enough user base to make the project sustainable. And remember that the Firefox code base feeds a number of downstream free-software projects

                                        If you don’t want features like Pocket or DRM in the browser executable, there are lots of Firefox forks to choose from, which contain only free software. I personally use Fennec F-Droid on my mobile.

                                        1. 8

                                          And the DoH deal with cloudflare..

                                          1. 2

                                            My ISP actively redirects failed DNS lookups to advertisement pages. Cloudflare is probably going to be a little nicer (at least for now…)

                                          2. 3

                                            I’m not sure it is actually Mozilla’s moral obligation. But there’s quite a bit of crap (Pocket, sponsored stories on the start page and silently installing extensions in the background to promote TV shows are what I remember, but I’m sure there is more) going on with Firefox that stopped me to switch back from Chromium for quite a while.

                                            1. 23

                                              Perfect being the enemy of good applies here.

                                              I quite dislike it when people use minor issues as an excuse not to do anything about major issues. Is Firefox perfect? No. Is it nearly as problematic as Chrome? No.

                                              There will never be a platonic ideal mass-adopted web browser. We can choose between good and bad though.

                                              1. 2

                                                “Problematic” is the salient term here.

                                                The issues raised in the linked article and elsewhere are valid, yes, but they do not affect the end user at this time.

                                                I personally prefer using Chrome for the simple reason that it works on all my devices and keeps browsing history, passwords etc in sync. Does Firefox do that? Maybe. Is it worth it for me to switch and try to research it? No.

                                                A less diverse browser ecosystem is probably bad in the long run, but just as with real ecosystems, the damage is so diffuse in both time and space that any action an individual can take is basically useless.

                                                Personally I’d prefer if Firefox was much better than Chrome (just like Chrome was much better than IE/Firefox when it debuted). That would make the switch much easier for more people.

                                                1. 11

                                                  I personally prefer using Chrome for the simple reason that it works on all my devices and keeps browsing history, passwords etc in sync. Does Firefox do that? Maybe. Is it worth it for me to switch and try to research it? No.

                                                  For completeness sake: yes, it has. It’s called Firefox Sync and is a neat product. You can even have your own sync server if you prefer.1 Firefox for mobile is a really good product on all devices and Firefox Klar (the “quickly search something in a private fashion” is a really good addition).

                                                  1. 5

                                                    Firefox Klar

                                                    A.k.a. Firefox Focus outside of Germany.

                                                  2. 0

                                                    …any action an individual can take is basically useless.

                                                    In other words: why bother voting anyway? It’s not like my vote means anything… /s

                                                    1. 0

                                                      You’re taking my words out of context.

                                                      I’m saying that in relationship to the environment we live in - carbon in the atmosphere, pressure on water tables and arable land, fish in the ocean, political systems corrupted by resource extraction.

                                                      If I decide to buy a car with a better mileage, or not have a car at all, the decision can be negated by a family moving somewhere where they need 2 cars instead of one, or a well-targeted ad campaign for a gas-guzzler in China.

                                                      A vote in a well-run democracy is the opposite of that. If you don’t screw up the process, you can be reasonably sure that your vote will be present on a tally-board on the evening news in a few days.

                                                      1. 1

                                                        I don’t think context matters in this instance. If you think your actions only matter if they have a visible effect on the news… there must be something I’m missing, because I don’t know what to tell you. That’s not logic, that’s instant gratification.

                                                        1. 1

                                                          If you think your actions only matter if they have a visible effect on the news…

                                                          I am not thinking that, you are misreading my position. I’m happy to clarify though.

                                                          That’s not logic, that’s instant gratification.

                                                          I’m not sure what you mean here. Again, I feel we’re talking at cross purposes.

                                                          1. 1

                                                            I apologize, I know I wouldn’t enjoy being misstated. Please do clarify.

                                                            1. 1

                                                              I’ll try.

                                                              In my first comment on this thread, I made the analogy between the browser ecosystem and the wider IRL ecosystem that exists on this planet.

                                                              My basic point was that any action I take as an individual has very little to no impact whatsoever in a positive direction in any of these ecosystems. I made this comment after my (unstated) reflection on the limitations of private, volunteer action in regards to environmentalism. I believe the only viable way to lessen the impact of humanity on the environment are communal - restrictions on certain products, taxation of consumption of certain goods.

                                                              Scaling that down to the browser ecosystem, I don’t believe that supporting one “free to play”, ad-supported browser over another will significantly help keeping the internet free and open.

                                                              You stated in your comment:

                                                              In other words: why bother voting anyway? It’s not like my vote means anything… /s

                                                              (sarcasm tag noted!)

                                                              A counter-example:

                                                              Voters in Sweden have enabled a party (the Green party) to enter government, and leverage this power to ensure that gasoline taxes in Sweden are around 50% of the cost of a liter of fuel at the pump.

                                                              Thus the result of an election led indirectly to a policy that in its turn incentivizes consumers to choose cars with better gas mileage. This in its turn contributes to Sweden trying to reach its internationally agreed-upon carbon emission target.

                                                  3. 1

                                                    To me it’s not about being perfect. It is about what fit my needs and principles better. And if I have to choose between a software that talks about caring about its users and being privacy oriented while obviously doing the opposite (I.e. silently installing extensions in the background without my consent or integrating code that leads to selling my browsing data — remember the Cliqz integration?) and one that has not done so (I’m talking about chromium here), the choice is easy to me.

                                                    In my opinion Chromium is technically the better browser while being more transparent about privacy. That’s what counts to me. I don’t care about perfection.

                                              1. 2

                                                Using the calendar commands to tell the Times of Sunrise and Sunset it shouldn’t be too hard to even switch the theme based on sunrise/sunset except of time of the day.

                                                Or one could just use circadian.el to achieve the same effect using an existing package.