1. 6

    I don’t understand the use-case for this. Why would I want a framework for my prompt? What would I want to put there that would require a framework?

    1. 12

      It appears to be a ‘framework’ for building/customizing prompts, which I think is quite cool (making zsh promts using zsh’s built-in prompt format stuff is really annoying).

      1. 1

        ¯\_(ツ)_/¯ it hasn’t really been that annoying to me. Maybe my prompt is just not complex enough, but again, I don’t know what kind of complexity you would want in a shell prompt.

        1. 2

          A quick glance through the examples seem to indicate it’s mostly about setting colors.

          For what it’s worth, the project Readme is pretty damn good. It has screenshots, examples, and a capsule documentation.

          1. 4

            Sure, setting colors, text/symbols, etc. It was meant to be a pet project anyway, for me to learn Nim and get rid of oh-my-zsh altogether. And thanks! I take special pride in my documentation.

            1. 1

              Fair enough. I used nim to make an exact clone of another IRC bot I’d made.

              (Although, I can’t see the point of oh-my-zsh, either.)

        2. 1

          I’d find it far more annoying to have to carry around some framework . I setup my zsh prompt 25 years ago and have barely touched it since. I don’t especially remember it being particular annoying or tricky to do.

        3. 2

          I mean, yeah, the use-case isn’t all that much. Generally, customizing your prompt is a one-time thing. This project draws inspiration from Sindre Sorhus’ pure. Just wanted to write a Nim implementation of something similar… and this is what I ended up with :)

          And the word ‘framework’ is the best thing I could think of to describe it.

        1. 1

          On most of my systems, the slowest thing about git/subversion etc information in the shell prompt is where it searches up for the .git directory in parent directories. If I’m not in a git repository then there’s a high chance it’ll reach a directory controlled by the automounter. It then triggers an attempt to NFS mount .git, .svn etc from the fileserver. If it could simply stop when the parent is on a different filesystem by checking statvfs, it’d be much faster.

          1. 1

            The best name has to be “Linda” which was a pun on Ada being named after Ada Lovelace. Not really a programming language in the conventional sense but a good name nonetheless.

            1. 9

              I was pleasantly surprised by the Hetzner cloud (I’ve had terrible experience with their hardware offerings). It’s cheap, stable and it works.

              I stil have some VPS at strato.de - they’re not such a good bang for the buck but they’ve been very stable for me (multiple VPS, 10 years).

              There’s also tilaa (I haven’t tried them but heard some good things) and scaleway - not sure where the company is really based.

              1. 3

                Oh nice Hetzner looks good, + points for being German!
                Prices for their small vps’s are comparible to scaleways.
                How was customer support?

                1. 2

                  Can’t really comment, haven’t used any support iirc.

                  Had a problem once with one of those cloud VMs where it wouldn’t boot, but I could get the rescue system up and running and so I could do a quick check if I needed to back up something (was purely a test instance, so I didnt set up backups). But if you accept cloud instances as somewhat ephemeral, I don’t see that as a problem. This has happened to me on AWS and GCP as well.

                  1. 1

                    Looks like they have the option of hosting it in Finland. Anyone know how well it works to run openvpn from a VPS given that it is significantly cheaper than a VPN? I used to pay for a VPN to get Finnish TV from abroad but the IP would get blocked from time-to-time. Are cloud providers more immune to that? Or do they detect you in other ways such as via DNS?

                    1. 1

                      If anything the Hetzner Finland IPs are shown to be in Germany, since the blocks are owned by Hetzner. But it’s cheap to test, minimum pay isn’t a whole month.

                1. 8

                  It’d be nice if it was somehow possible to view Netflix on a FreeBSD desktop, however.

                  I’ve tried a bhyve VM running Windows but the limitations of vnc or RDP make the video jerky.

                  1. 1

                    RDP actually does support including MPEG video streams in another channel of the connection, for smoother video playback over RDP as long as the video is rendered via HW accel and the RemoteFX parts of the protocol are enabled - in fact, I’m pretty sure since Windows 10, it encodes the desktop as one too.

                  1. 2

                    So if this worked so well and was truly effective, how come it isn’t a standard feature of modern operating systems? Or is it perhaps? Linux has zswap but I’ve never seen it used. From a brief read it seems the use is as much about avoiding wear of flash used for swap on embedded systems than about making RAM go further.

                    1. 6

                      macOS has performed memory compression since OS X 10.9 Mavericks, which was released in 2013. For example, the Activity Monitor currently tells me that my Calendar app is using 193.4 MB of “memory”, of which 133.4 MB is “compressed memory”. (I’m not sure how those figures relate to the real, private, shared, and purgeable memory figures also shown.)

                      1. 5
                        1. 1

                          I’ve been using zram on linux to great effect.

                          First started when I was using a computer with a broken harddisk for a week. Booted to ram from a usb drive, and used zram to make my 8gb of ram stretch much further (worked surprisingly well all things considered).

                          Now I basically just always have it on, very convenient for things that use to bring my computer to a halt because they ran out of memory and swap is insanely slow.

                        1. 4

                          This is a big theoretical problem, not a big practical one.

                          It’s solvable with conventions baked into the build tools that only do a subset of what is allowed by the module system.

                          For example, one could define mappings of directories to modules in the build tool, and now you know where to find modules. You could explicitly define modules. And yes, while you may need to run the preprocessor to know the names of the modules, preprocessing is relatively fast compared to the rest of the C++ compliation process, and can be cached fairly easily. Or the build system can simply say “Don’t #define module names”. Heck, if you don’t go overboard with modules, and map them to libraries instead of single files, it’d even be not-too-unreasonable to do this in make.

                          Like most things in C++, it’s not elegant, but the rough edges can be worked around. And like most things in CS, if you restrict yourself to sane conventions instead of doing things just because they’re possible, everything becomes easier.

                          1. 4

                            It is not just a theoretical problem.

                            I’ve put together the build system for a large and diverse Fortran code base where it was necessary to handle the binary modules. Trying to impose artificial restrictions on directory layouts and module naming doesn’t always go down well with colleagues. Even if you can force it on the full team it can result in compromises on getting a logical directory layout. And restrictions don’t really make it any simpler to implement. As we have it, when typing make, it can take quite a few seconds while a perl script runs over all the Fortran source files building make include files. This is without allowing #defines for module names and with limits to the syntax recognised by the regular expressions. C++ likely provides a lot more scope for people to be creative with their syntax.

                            For all their faults, C include files are a very simple mechanism that work in a predictable way. If some sort of modules are to replace them, build tools really should be considered alongside. It doesn’t necessarily need to still involve Unix make. If C++ is to go in that direction then it can learn from other languages - Rust’s cargo does a fine job for example.

                            1. 3

                              Trying to impose artificial restrictions on directory layouts and module naming doesn’t always go down well with colleagues.

                              It goes down better when the build system enforces it – “Sorry, tool limitations”.

                              1. 1

                                I agree, another example Quantum ESPRESSO: https://github.com/QEF/q-e

                            1. 81

                              I beg all my fellow crustaceans to please, please use Firefox. Not because you think it’s better, but because it needs our support. Technology only gets better with investment, and if we don’t invest in Firefox, we will lose the web to chrome.

                              1. 59

                                Not because you think it’s better

                                But that certainly helps too. It is a great browser.

                                • privacy stuff — the cookie container API for things like Facebook Container, built-in tracker blocker, various anti-fingerprinting things they’re backporting from the Tor Browser
                                • honestly just the UI and the visual design! I strongly dislike the latest Chrome redesign >_<
                                • nice devtools things — e.g. the CSS Grid inspector
                                • more WebExtension APIs (nice example: only on Firefox can Signed Pages actually prevent the page from even loading when the signature check fails)
                                • the fastest (IIRC) WASM engine (+ now in Nightly behind a pref: even better codegen backend based on Cranelift)
                                • ongoing but already usable Wayland implementation (directly in the official tree now, not as a fork)
                                • WebRender!!!
                                1. 7

                                  On the other hand, WebSocket debugging (mostly frame inspection) is impossible in Firefox without an extension. I try not to install any extensions that I don’t absolutely need and Chrome has been treating me just fine in this regard[1].

                                  Whether or not I agree with Google’s direction is now a moot point. I need Chrome to do what I do with extensions.

                                  As soon as Firefox supports WebSocket debugging natively, I will be perfectly happy to switch.

                                  [1] I mostly oppose extensions because of questionable maintenance cycles. I allow uBlock and aXe because they have large communities backing them.

                                  1. 3

                                    Axe (https://www.deque.com/axe/) seems amazing. I know it wasn’t the focus of your post – but I somehow missed this when debugging an accessibility issue just recently, I wish I had stumbled onto it. Thanks!

                                    1. 1

                                      You’re welcome!

                                      At $work, we used aXe and NVDA to make our webcomponents AA compliant with WCAG. aXe was invaluable for things like contrast and missing role attributes.

                                    2. 3

                                      WebSocket debugging (mostly frame inspection) is impossible in Firefox without an extension

                                      Is it possible with an extension? I can’t seem to find one.

                                      1. 1

                                        I have never needed to debug WebSockets and see no reason for that functionality to bloat the basic browser for everybody. Too many extensions might not be a good thing but if you need specific functionality, there’s no reason to hold back. If it really bothers you, run separate profiles for web development and browsing. I have somewhat more than two extensions and haven’t had any problems.

                                        1. 1

                                          I do understand your sentiment, but the only extension that I see these days is marked “Experimental”.

                                          On the other hand, I don’t see how it would “bloat” a browser very much. (Disclaimer: I have never written a browser or contributed to any. I am open to being proved wrong.) I have written a WebSockets library myself, and it’s not a complex protocol. It can’t be too expensive to update a UI element on every (websocket) frame.

                                      2. 5

                                        Yes! I don’t know about you, but I love the fact that Firefox uses so much less ram than chrome.

                                        1. 2

                                          This was one of the major reasons I stuck with FF for a long time. It is still a pronounced difference.

                                        2. 3

                                          honestly just the UI and the visual design! I strongly dislike the latest Chrome redesign >_<

                                          Yeah, what’s the deal with the latest version of Chrome? All those bubbly menus feel very mid-2000’s. Everything old is new again.

                                          1. 3

                                            I found a way to go back to the old ui from https://www.c0ffee.net/blog/openbsd-on-a-laptop/ (it was posted here a few weeks ago):

                                            Also, set the following in chrome://flags:

                                            • Smooth Scrolling: (personal preference)
                                            • UI Layout for the browser’s top chrome: set to “Normal” to get the classic Chromium look back
                                            • Identity consistency between browser and cookie jar: set to “Disabled” to keep Google from hijacking any Google > - login to sign you into Chrome
                                            • SafeSearch URLs reporting: disabled

                                            (emphasis mine)

                                            1. 1

                                              Aaaaaaaand they took out that option.

                                          2. 1

                                            The Wayland implementation is not usable quite yet, though, but it is close. I tried it under Sway, but it was crashy.

                                          3. 16

                                            I switched to Firefox last year, and I have to say I don’t miss Chrome in the slightest.

                                            1. 13

                                              And those with a little financial liberty, consider donating to Mozilla. They do a lot of important work free a free and open web.

                                              1. 10

                                                I recently came back to Firefox from Vivaldi. That’s another Chromium/Webkit based browser and it’s closed source to boot.

                                                Firefox has improved greatly in speed as of late and I feel like we’re back in the era of the mid-2000s, asking people to chose Firefox over Chrome this time instead of IE.

                                                1. 2

                                                  I’d love to switch from Vivaldi, but it’s simply not an option given the current (terrible) state of vertical tab support in Firefox.

                                                  1. 2

                                                    How is it terrible? The hiding of the regular tab bar is not an API yet and you have to use CSS for that, sure, but there are some very good tree style tab webextensions.

                                                    1. 2

                                                      The extensions are all terrible – but what’s more important is that I lost the belief that any kind of vertical tab functionality has any chance of long-term survival. Even if support was added now, it would be a constant battle to keep it and I’m frankly not interested in such fights anymore.

                                                      Mozilla is chasing their idealized “average user” and is determined to push everyone into their one-size-fits-all idea of user interface design – anyone not happy with that can screw off, if it was for Mozilla.

                                                      It’s 2018 – I don’t see why I even have to argue for vertical tabs and mouse gestures anymore. I just pick a browser vendor which hasn’t been asleep on the wheel for the last 5 years and ships with these features out of the box.

                                                      And if the web in the future ends up as some proprietary API defined by whatever Google Chrome implements, because Firefox went down, Mozilla has only itself to blame.

                                                      1. 2

                                                        The extensions are all terrible – but what’s more important is that I lost the belief that any kind of vertical tab functionality has any chance of long-term survival. Even if support was added now, it would be a constant battle to keep it and I’m frankly not interested in such fights anymore. The whole point of moving to WebExtensions was long term support. They couldn’t make significant changes without breaking a lot of the old extensions. The whole point was to unhook extensions from the internals so they can refactor around them and keep supporting them.

                                                        1. 0

                                                          That’s like a car manufacturer removing all electronics from a car – sure it makes the car easier to support … but now the car doesn’t even turn on anymore!

                                                          Considering that cars are usually used for transportation, not for having them sit in the garage, you shouldn’t be surprised that customers buy other cars in the future.

                                                          (And no, blaming “car enthusiasts” for having unrealistic expectations, like it happens in the case of browser users, doesn’t cut it.)

                                                          1. 3

                                                            So you’d rather they didn’t improve it at all? Or would you rather they broke most extensions every release?

                                                            1. 3

                                                              I’m not @soc, but I wish Firefox had delayed their disabling of old-style extensions in Firefox 57 until they had replicated more of the old functionality with the WebExtensions API – mainly functionality related to interface customization, tabs, and sessions.

                                                              Yes, during the time of that delay, old-style extensions would continue to break with each release, but the maintainers of Tree Style Tabs and other powerful extensions had already been keeping up with each release by releasing fixed versions. They probably could have continued updating their extensions until WebExtensions supported their required functionality. And some users might prefer to run slightly-buggy older extensions for a bit instead of switching to the feature-lacking new extensions straight away – they should have that choice.

                                                              1. 1

                                                                What’s the improvement? The new API was so bad that they literally had to pull the plug on the existing API to force extension authors to migrate. That just doesn’t happen in cases where the API is “good”, developers are usually eager to adopt them and migrate their code.

                                                                Let’s not accuse people you disagree with that they are “against improvements” – it’s just that the improvements have to actually exist, and in this case the API clearly wasn’t ready. This whole fiasco feels like another instance of CADT-driven development and the failure of management to reign in on it.

                                                                1. 3

                                                                  The old extension API provided direct access to the JavaScript context of both the chrome and the tab within a single thread, so installing an XUL extension was disabling multiprocess mode. Multiprocess mode seems like an improvement; in old Firefox, a misbehaving piece of JavaScript would lock up the browser for about a second before eventually popping up a dialog offering to kill it, whereas in a multiprocess browser, it should be possible to switch and close tabs no matter what the web page inside does. The fact that nobody notices when it works correctly seems to make it the opposite of Attention-Deficient-Driven-Design; it’s the “focus on quality of implementation, even at the expense of features” design that we should be encouraging.

                                                                  The logical alternative to “WebExtension For The Future(tm)” would’ve been to just expose all of the relevant threads of execution directly to the XUL extensions. run-this-in-the-chome.xul and run-this-in-every-tab.xul and message pass between them. But at that point, we’re talking about having three different extension APIs in Firefox.

                                                                  Which isn’t to say that I think you’re against improvement. I am saying that you’re thinking too much like a developer, and not enough like the poor sod who has to do QA and Support triage.

                                                                  1. 2

                                                                    Improving the actual core of Firefox. They’re basically ripping out and replacing large components every other release. This would break large amount of plugins constantly. Hell, plugins wouldn’t even work in Nightly. I do agree with @roryokane that they should have tried to improve it before cutting support. The new API is definitely missing many things but it was the right decision to make for the long term stability of Firefox.

                                                                    1. 1

                                                                      They could have made the decision to ax the old API after extension authors adopted it. That adoption failed so hard that they had to force developers to use the new API speaks for itself.

                                                                      I’d rather have extension that I have to fix from time to time, than no working extensions at all.

                                                            2. 1

                                                              Why should Mozilla care that much about your niche use case? They already have a ton of stuff to deal with and barely enough funding.

                                                              It’s open source, make your own VerticalTabFox fork :)

                                                              1. 3

                                                                Eh … WAT? Mozilla went the extra mile with their recent extension API changes to make things – that worked before – impossible to implement with a recent Firefox version. The current state of tab extensions is this terrible, because Mozilla explicitly made it this way.

                                                                I used Firefox for more than 15 years – the only thing I wanted was to be left alone.

                                                                It’s open source, make your own VerticalTabFox fork :)

                                                                Feel free to read my comment above to understand why that doesn’t cut it.

                                                                Also, Stuff that works >> open source. Sincerely, a happy Vivaldi user.

                                                                1. 2

                                                                  It’s one of the laws of the internet at this point: Every thread about Firefox is always bound to attract someone complaining about WebExtensions not supporting their pet feature that was possible with the awful and insecure old extension system.

                                                                  If you’re care about “non terrible” (whatever that means — Tree Style Tab looks perfect to me) vertical tabs more than anything — sure, use a browser that has them.

                                                                  But you seem really convinced that Firefox could “go down” because of not supporting these relatively obscure power user features well?? The “average user” they’re “chasing” is not “idealized”. The actual vast majority of people do not choose browsers based on vertical tabs and mouse gestures. 50% of Firefox users do not have a single extension installed, according to telemetry. The majority of the other 50% probably only have an ad blocker.

                                                                  1. 3

                                                                    If you’re care about “non terrible” (whatever that means — Tree Style Tab looks perfect to me) vertical tabs more than anything — sure, use a browser that has them.

                                                                    If you compare the current state of the art of vertical tabs extensions, even Mozilla thinks they suck – just compare them to their own Tab Center experiment: https://testpilot.firefox.com/static/images/experiments/tab-center/details/tab-center-1.1957e169.jpg

                                                                    Picking just one example: Having the navigation bar at a higher level of the visual hierarchy is just wrong – the tab panel isn’t owned by the navigation bar, the navigation bar belongs to a specific tab! Needless to say, all of the vertical tab extensions are forced to be wrong, because they lack the API do implement the UI correctly.

                                                                    This is how my browser currently looks like, for comparison: https://i.imgur.com/5dTX8Do.png

                                                                    But you seem really convinced that Firefox could “go down” because of not supporting these relatively obscure power user features well?? The “average user” they’re “chasing” is not “idealized”. The actual vast majority of people do not choose browsers based on vertical tabs and mouse gestures. 50% of Firefox users do not have a single extension installed, according to telemetry. The majority of the other 50% probably only have an ad blocker.

                                                                    You can only go so far alienating the most loyal users that use Firefox for specific purposes until the stop installing/recommending it to their less technically-inclined friends and relatives.

                                                                    Mozilla is so busy chasing after Chrome that it doesn’t even realize that most Chrome users will never switch. They use Chrome because “the internet” (www.google.com) told them so. As long as Mozilla can’t make Google recommend Firefox on their frontpage, this will not change.

                                                                    Discarding their most loyal users while trying to get people to adopt Firefox who simply aren’t interested – this is a recipe for disaster.

                                                                2. 1

                                                                  and barely enough funding

                                                                  Last I checked they pulled in half a billion in revenue (2016). Do you believe this is barely enough?

                                                                  1. 2

                                                                    For hundreds of millions users?

                                                                    Yeah.

                                                              2. 1

                                                                At least with multi-row tabs in CSS you can’t dragndrop tabs. That’s about as bad as it gets.

                                                              3. 2

                                                                Are vertical tabs so essential?

                                                                1. 3

                                                                  Considering the change in screen ratios over the past ten years (displays get shorter and wider), yes, it absolutely is.

                                                                  With vertical tabs I can get almost 30 full-width tabs on screen, with horizontal tabs I can start fishing for the right tab after about 15, as the tab width gets increasingly smaller.

                                                                  Additionally, vertical tabs reduce the way of travel substantially when selecting a different tab.

                                                                  1. 1

                                                                    I still miss them, didn’t cripple me, but really hurt. The other thing about Tree (not just vertical) tabs that FF used to have was that the subtree was contextual to the parent tree. So, when you opened a link in a background tab, it was opened in a new tab that was a child of your current tab. For doing like documentation hunting / research it was amazing and I still haven’t found its peer.

                                                                2. 1

                                                                  It’s at least partially open source. They provide tarballs.

                                                                  1. 4

                                                                    https://help.vivaldi.com/article/is-vivaldi-open-source/

                                                                    The chromium part is legally required to be open, the rest of their code is like readable source, don’t get me wrong that’s way better than unreadable source but it’s also very wut.

                                                                    1. 2

                                                                      Very wut. It’s a weird uneasy mix.

                                                                      1. 2

                                                                        that’s way better than unreadable source but it’s also very wut.

                                                                        I wouldn’t be sure of that. It makes it auditable, but has legal ramifications should you want to build something like vivaldi, but free.

                                                                  2. 8

                                                                    firefox does not get better with investment, it gets worse.

                                                                    the real solution is to use netsurf or dillo or mothra, so that webmasters have to come to us and write websites that work with browsers that are simple enough to be independently maintained.

                                                                    1. 9

                                                                      Good luck getting more than 1‰ adoption 😉

                                                                      1. 5

                                                                        good luck achieving independence from Google by using a browser funded by Google

                                                                        1. 1

                                                                          I can achieve independence from Google without using netsurf, dillo, or mothra; to be quite honest, those will never catch on.

                                                                          1. 2

                                                                            can you achieve independence from google in a way that will catch on?

                                                                            1. 1

                                                                              I don’t think we’ll ever get the majority of browser share back into the hands of a (relatively) sane organization like Mozilla—but we can at least get enough people to make supporting alternative browsers a priority. On the other hand, the chances that web devs will ever feel pressured to support the browsers you mentioned, is close to nil. (No pun intended.)

                                                                              1. 1

                                                                                what is the value of having an alternative, if that alternative is funded by google and sends data to google by default?

                                                                                1. 1

                                                                                  what is the value of having an alternative

                                                                                  What would you like me to say, that Firefox’s existence is worthless? This is an absurd thing to insinuate.

                                                                                  funded by google

                                                                                  No. I’m not sure whether you’re speaking in hyperbole, misunderstood what I was saying, and/or altogether skipped reading what I wrote. But this is just not correct. If Google really had Mozilla by the balls as you suggest, they would coerce them to stop adding privacy features to their browser that, e.g., block Google Analytics on all sites.

                                                                                  sends data to google by default

                                                                                  Yes, though it seems they’ve been as careful as one could be about this. Also to be fair, if you’re browsing with DNT off, you’re likely to get tracked by Google at some point anyway. But the fact that extensions can’t block this does have me worried.

                                                                                  1. 1

                                                                                    i’m sorry if i misread something you wrote. i’m just curious what benefit you expect to gain if more people start using firefox. if everyone switched to firefox, google could simply tighten their control over mozilla (continuing the trend of the past 10 years), and they would still have control over how people access the web.

                                                                                    1. 1

                                                                                      It seems you’re using “control” in a very abstract sense, and I’m having trouble following. Maybe I’m just missing some context, but what concrete actions have Google taken over the past decade to control the whole of Mozilla?

                                                                                      1. 1

                                                                                        Google has pushed through complex standards such as HTTP/2 and new rendering behaviors, which Mozilla implements in order to not “fall behind.” They are able implement and maintain such complexity due to funding they receive from Google, including their deal to make Google the default search engine in Firefox (as I said earlier, I couldn’t find any breakdown of what % of Mozilla’s funding comes from Google).

                                                                                        For evidence of the influence this funding has, compare the existence of Mozilla’s Facebook Container to the non-existence of a Google Container.

                                                                                        1. 1

                                                                                          what % of Mozilla’s funding comes from Google

                                                                                          No word on the exact breakdown. Visit their 2017 report and scroll all the way to the bottom, and you’ll get a couple of helpful links. One of them is to a wiki page that describes exactly what each search engine gets in return for their investment.

                                                                                          I would also like to know the exact breakdown, but I’d expect all those companies would get a little testy if the exact amount were disclosed. And anyway, we know what the lump sum is (around half a billion), and we can assume that most of it comes from Google.

                                                                                          the non-existence of a Google Container

                                                                                          They certainly haven’t made one themselves, but there’s nothing stopping others from forking one off! And anyway, I think it’s more so fear on Mozilla’s part than any concrete warning from Google against doing so.

                                                                                          Perhaps this is naïveté on my part, but I really do think Google just want their search engine to be the default for Firefox. In any case, if they really wanted to exert their dominance over the browser field, they could always just… you know… stop funding Mozilla. Remember: Google is in the “web market” first & the “software market” second. Having browser dominance is just one of many means to the same end. I believe their continued funding of Mozilla attests to that.

                                                                                          1. 2

                                                                                            It doesn’t have to be a direct threat from Google to make a difference. Direct threats are a very narrow way in which power operates and there’s no reason that should be the only type of control we care about.

                                                                                            Yes Google’s goal of dominating the browser market is secondary to their goal of dominating the web. Then we agree that Google’s funding of Firefox is in keeping with their long-term goal of web dominance.

                                                                                            if they really wanted to exert their dominance over the browser field, they could always just… you know… stop funding Mozilla.

                                                                                            Likewise, if Firefox was a threat to their primary goal of web dominance, they could stop funding Mozilla. So doesn’t it stand to reason that using Firefox is not an effective way to resist Google’s web dominance? At least Google doesn’t think so.

                                                                                            1. 1

                                                                                              Likewise, if Firefox was a threat to their primary goal of web dominance, they could stop funding Mozilla. So doesn’t it stand to reason that using Firefox is not an effective way to resist Google’s web dominance?

                                                                                              You make some good points, but you’re ultimately using the language of a “black or white” argument here. In my view, if Google were to stop funding Mozilla they would still have other sponsors. And that’s not to mention the huge wave this would make in the press—even if most people don’t use Firefox, they’re at least aware of it. In a strange sense, Google cannot afford to stop funding Mozilla. If they do, they lose their influence over the Firefox project and get huge backlash.

                                                                                              I think this is something the Mozilla organization were well aware of when they made the decision to accept search engines as a funding source. They made themselves the center of attention, something to be competed over. And in so doing, they ensured their longevity, even as Google’s influence continued to grow.

                                                                                              Of course this has negative side effects, such as companies like Google having influence over them. But in this day & age, the game is no longer to be free of influence from Google; that’s Round 2. Round 1 is to achieve enough usage to exert influence on what technologies are actually adopted. In that sense, Mozilla is at the discussion table, while netsurf, dillo, and mothra (as much as I’d love to love them) are not and likely never will be.

                                                                        2. 3

                                                                          Just switch to Gopher.

                                                                          1. 5

                                                                            Just switch to Gopher

                                                                            I know you were joking, but I do feel like there is something to be said for the simplicity of systems like gopher. The web is so complicated nowadays that building a fully functional web browser requires software engineering on a grand scale.

                                                                            1. 3

                                                                              yeah. i miss when the web was simpler.

                                                                              1. 1

                                                                                I was partially joking. I know there are new ActivityPub tools like Pleroma that support Gopher and I’ve though about adding support to generate/server gopher content for my own blog. I realize it’s still kinda a joke within the community, but you’re right about there being something simple about just having content without all the noise.

                                                                          2. 1

                                                                            Unless more than (rounded) 0% of people use it for Facebook, it won’t make a large enough blip for people to care. Also this is how IE was dominant, because so much only worked for them.

                                                                            1. 1

                                                                              yes, it would require masses of people. and yes it won’t happen, which is why the web is lost.

                                                                          3. 2

                                                                            I’ve relatively recently switched to FF, but still use Chrome for web dev. The dev tools still seem quite more advanced and the browser is much less likely to lock up completely if I have a JS issue that’s chewing CPU.

                                                                            1. 2

                                                                              I tried to use Firefox on my desktop. It was okay, not any better or worse than Chrome for casual browsing apart from private browsing Not Working The Way It Should relative to Chrome (certain cookies didn’t work across tabs in the same Firefox private window). I’d actually want to use Firefox if this was my entire Firefox experience.

                                                                              I tried to use Firefox on my laptop. Site icons from bookmarks don’t sync for whatever reason (I looked up the ticket and it seems to be a policy problem where the perfect is the enemy of the kinda good enough), but it’s just a minor annoyance. The laptop is also pretty old and for that or whatever reason has hardware accelerated video decoding blacklisted in Firefox with no way to turn it back on (it used to work a few years ago with Firefox until it didn’t), so I can’t even play 720p YouTube videos at an acceptable framerate and noise level.

                                                                              I tried to use Firefox on my Android phone. Bookmarks were completely useless with no way to organize them. I couldn’t even organize on a desktop Firefox and sync them over to the phone since they just came out in some random order with no way to sort them alphabetically. There was also something buggy with the history where clearing history didn’t quite clear history (pages didn’t show up in history, but links remained colored as visited if I opened the page again) unless I also exited the app, but I don’t remember the details exactly. At least I could use UBO.

                                                                              This was all within the last month. I used to use Firefox before I used Chrome, but Chrome just works right now.

                                                                              1. 6

                                                                                I definitely understand that Chrome works better for many users and you gave some good examples of where firefox fails. My point was that people need to use and support firefox despite it being worse than chrome in many ways. I’m asking people to make sacrifices by taking a principled position. I also recognize most users might not do that, but certainly, tech people might!? But maybe I’m wrong here, maybe the new kids don’t care about an open internet.

                                                                            1. 1

                                                                              I think there’s a lot to be said for greater openness with employee salaries. It can help balance things fairly because people know what their own value is relative to colleagues. The problems are not only limited to fair pay for women and simply being open can make things fairer without targeting specific groups.

                                                                              Looking at people’s figures, it’s interesting how much higher salaries apparently are in the US and bay area in particular relative to Europe. For what it’s worth, I started at £15K in 1997 and get €75K as a “senior engineer” now. Living costs are probably less, though.

                                                                              1. 4

                                                                                I use zsh which has the more comprehensive coverage with completions. Especially when you consider things like support for system commands on non-Linux systems. Note that zsh itself includes most of them and the separate zsh-completions project is only a small collection and of lower quality.

                                                                                Zsh’s is much the superior system but you’d have to emulate a whole lot more to support them. Completion matches can have descriptions which makes it vastly more useful. The process of matching what is on the command-line against the candidates is much more flexible and is not limited to dividing the command-line up by shell arguments - any arbitrary point can be the start and finish point for each completion candidate. And as that implies, what is to the right of the cursor can also be significant.

                                                                                My advice would be to take the zsh compadd builtin approach which is more flexible and extensible than compgen/complete, do your own implementation of _arguments (which covers 90% of most completions) and similarly your own _files etc. It’d then be straightforward for people to write completions targetting both oilshell and zsh.

                                                                                1. 2

                                                                                  Hm interesting, yeah I am looking around the Completion/ dir in the zsh source now and it looks pretty rich and comprehensive.

                                                                                  I also just tried out zsh and I didn’t realize it had all the descriptions, which is useful too. Don’t they get out of date though? I guess most commands don’t change that much?

                                                                                  I recall recall skimming through parts of the zsh manual like a year ago, and from what I remember there are 2 different completion systems, and it seemed like there was a “froth” of bugs, or at least special cases.

                                                                                  I will take another look, maybe that impression is wrong.

                                                                                  I think the better strategy might be to get decent bash-like completion for OSH, and then convince someone to contribute ZSH emulation :)

                                                                                  I guess I am mainly interested in the shell system that has the best existing corpus of completion scripts. Because I don’t want to boil the ocen and duplicate that logic in yet another system. zsh does seem like a good candidate for that. But I don’t understand yet how it works. Any pointers are appreciated.

                                                                                  I’ll look into _arguments… it might cover 90% of cases, but it’s not clear what it would take to run 90% of completions scripts unmodified.

                                                                                  1. 3

                                                                                    The zsh descriptions do get out of date. The strings are copied by the completion script author, so if the --help text changes, the script will need to be updated too.

                                                                                    Zsh’s completion system is vast and old, the best combination. That’s why the 2 engines exist still today, as there are a number of completion scripts that are in the old style. I believe that most of those underneath Completion/ are using the newer system.

                                                                                    1. 2

                                                                                      Of the 2 systems, the old, compctl system was deprecated 20 years ago. Everything under Completion/ uses the new system. I wouldn’t say there’s a “froth” of bugs - it is just that there is a lot to it.

                                                                                      It isn’t the descriptions so much as the options themselves that can get out of date. The task of keeping them up-to-date is semi-automated based on sources such as --help output and they are mostly well maintained.

                                                                                  1. 1

                                                                                    I especially prefer OSM for pedestrian route-finding. I use it on Android via Maps.me, but there are various other apps too. Google Maps seems much more oriented towards road maps and often pedestrian-only paths will be missing, at least in the UK.

                                                                                    1. 1

                                                                                      What I haven’t found is a decent app for replacing the functionality of my old Garmin: showing maps and doing logging to a GPX file at the same time. Maps.me can show a track of recent movements but can’t save it.

                                                                                      1. 4

                                                                                        https://osmand.net/ might be something for you.

                                                                                        1. 1

                                                                                          As an update to this, it turns our that in fdroid, there is a fork of Maps.me called just Maps that adds just this functionality. The problem with osmand is the limited downloads.

                                                                                      1. 1

                                                                                        The high count for times that compdef is run indicates that this run is without a cache for compinit. The lack of calls to compdump also indicates that it isn’t creating a dump file. This cache, speeds compinit startup massively. I’m not quite sure how the blog post author has contrived to not have a dump file.

                                                                                        1. 4

                                                                                          “contrived” is a rather strong word to use here and suggests intent (perhaps to deceive). I’m not sure if it was your intent or not.

                                                                                          1. 3

                                                                                            This actually is with a dump file. A .zcompdump-MACHINENAME file is created in ~ (see here).

                                                                                            The issue is that this is recreated each time the shell starts up. There are multiple places in OMZ that call compinit. In the additional reading at the bottom there is a link that modifies zsh to only recreate it once a day, but I still feel like that’s not ideal.

                                                                                            1. 2

                                                                                              Can you redefine compinit to a no-op during OMZ loading, and then do it yourself at the end?

                                                                                              IMO zshrc should explicitly call compinit so it happens exactly once in a central location.

                                                                                            2. 2

                                                                                              Maybe he didn’t know?

                                                                                            1. 2

                                                                                              I use vim and a text file but for some passwords, rather than store the password in clear, I have to run pwgen with -H and it regenerates the password.

                                                                                              1. 6

                                                                                                Isn’t good old graphviz a perfectly good tool for producing git diagrams.

                                                                                                1. 2

                                                                                                  Quite probably - I’ve used that too quite a bit - https://zwischenzugs.com/2017/12/18/project-management-as-code-with-graphviz/ - have you done this before/seen this written up?

                                                                                                1. 3

                                                                                                  But Zsh does have a visual mode! Don’t rebind v to something else. Pick something else: I use ‘^X^E’.

                                                                                                  I’ve seen this bind v to edit-command-line advice before, probably because oh-my-zsh does it. I can only guess that the existence of visual mode simply isn’t obvious because by default it is highlighted in a manner that is indistinguishable from the cursor. My advice is to pick something more obvious and set it in zle_hightlight. Note that much of the zsh documentation talks about the “region” which is emacs terminology.

                                                                                                  1. 2

                                                                                                    Does Zsh have a visual mode? If so it’s not on by default, or at least by default it’s not mapped to v in command mode. I also could not find any documentation on Zshell visual mode. Can you provide links to any documentation or articles on this? Closest thing I found was a Zshell plugin that implemented this behavior (https://github.com/b4b4r07/zsh-vimode-visual).

                                                                                                    1. 2

                                                                                                      Go to http://zsh.sourceforge.net/Doc/Release/Zsh-Line-Editor.html or type man zshzle and search for the word “visual”. There are several references. The feature was added three years ago. In general for vi-mode I would recommend using at least 5.0.8 and preferably 5.1 or newer as a lot of vi/vim related improvements were made around the time of those releases. To verify, run zsh -f and try bindkey -a v and you should find v is bound to visual-mode. There’s also visual-line-mode for V and a visual keymap.

                                                                                                      1. 1

                                                                                                        Wow! How did I miss that?! That’s really nice, and much faster than opening Vim. I will remove my custom mapping and update the blog post accordingly.

                                                                                                      2. 1
                                                                                                        1. 1

                                                                                                          I actually decided against using that vi plugin for some other reasons, so at least in theory v should be mapped to the default command.

                                                                                                    1. 2

                                                                                                      I don’t get this sort of thing at all. For me, j and k motions are used constantly, and I don’t know of any other commands that substitute well. I even set up J and K to be 10j and 10k, respectively, because I often find { and } not that useful. I don’t want a plugin to turn them off, because I’m not sure what they plan to replace them with.

                                                                                                      Meanwhile, I very rarely use h and l. I find them super-tedious to move more than a few chars at a time. I don’t see why anyone would use them over w and b. I don’t need a plugin to convince me not to use them - I’m already convinced.

                                                                                                      1. 1

                                                                                                        Meanwhile, I very rarely use h and l. I find them super-tedious to move more than a few chars at a time.

                                                                                                        What do you do if you want to change something like FooBarFoo to FooFooFoo or similar middle-of-the-identifier edits where w/e don’t consider the terms distinct? I seen people recommend f<letter>c<motion> but I’ve always thought counting letters to use with the f motion takes more time than leaning on h/l. Similar story for forward/backward search when your target is on the same line.

                                                                                                        1. 1

                                                                                                          ;' repeats the last f/F/t/T motion, and,’ does the same in the opposite direction. If I’m in a situation where counting would be necessary, it’s sometimes faster to spam ;' a few times, and if I accidentally pass it, use,’.

                                                                                                          It’s not elegant, but it works well for those situations where you expect `fB’ to match but it doesn’t.

                                                                                                          e.g. to s/FooBarFoo/FooBarQuux/, `fF;cwQuux’.

                                                                                                          Usually there’s other motions that’ll work in context too, depending on what text surrounds it.

                                                                                                          1. 1

                                                                                                            I would do fBctF for that. I find it easy because I’m already thinking about “I want to change Bar to Foo right up to the next Foo”, so the letters to to f and t to come to mind easily. If I’m h/ling, then I have to either try to count letters, which is distracting, or hold one down, probably overshoot and need to go back, which is also distracting. The whole thing I like about Vim is how, once you commit certain things to instinctive memory, you spend very few mental cycles thinking about how to make an edit you want to make or waiting to switch between mouse and keyboard.

                                                                                                            It’s also cool that Vim is almost a completely different program for everyone who uses it and can fit many different mental models about how to edit text.

                                                                                                            1. 1

                                                                                                              It depends how many characters you want to change. When it is just “Bar”, I’d probably use 3s.

                                                                                                        1. 2

                                                                                                          Does anyone know the longish term ramifications? I realize the SGI we knew back then is dead but did releases after 5.1 improve in quality?

                                                                                                          1. 4

                                                                                                            Obviously I wasn’t there, but - https://en.wikipedia.org/wiki/IRIX seems to indicate that there wasn’t much “long term” beyond IRIX 5. If you look at the timelines given, IRIX 6 was only about adding new MIPS processor support, SGI’s downfall was not long to follow.

                                                                                                            Right there with ya - I was a sysadmin back in the IRIX 4->5 days and I remember it being slow and bloaty as well and having folks whine about their workstations after we updated.

                                                                                                            SGI made some crazy cool mechanical designs though :)

                                                                                                            1. 3

                                                                                                              IRIX 5.3 was essentially solid. You have to put that note in context. To me as a user, an Indy seemed insanely fast at that time - not even vaguely in the same league as a Macintosh of that era.

                                                                                                              1. 2

                                                                                                                IMHO, IRIX definitely got better after 5.1. I’ve only used 5.3 and various 6.x releases and thought they were all pretty decent as 90s/early 2000 commercial UNIX goes. I still have very fond memories of my R10K O2 (sadly traded with a friend for some Sun machines)…

                                                                                                              1. 1

                                                                                                                I usually stick to doing things in a pure command-line way rather than using things like tig but this system of composing shell commands to capture the inputs for subsequent commands does at least seem like the right basic approach. It took a bit of fiddling to get it working. Seems to need the initial command to be specified with -cmd which seems a bit of a nuisance: I’d have thought the entry point commands could be in the config file but perhaps it would be clearer if used for more than a basic test.