1. 1

    Neat! This might seem esoteric but knowing how to properly constrain your dependencies is a very hard problem with many solutions that reasonable minds can disagree on. Looking forward to testing this out.

    1. 4

      Just to offer an alternative, I use “Dark Reader” [1] for Chrome which tries to automatically apply a dark theme to websites. It’s not great for most websites (so I keep it as a opt-in per site), but does a really good job with simple sites like lobsters.

      [1] https://chrome.google.com/webstore/detail/dark-reader/eimadpbcbfnmbkopoojfekhnkhdbieeh?hl=en-US

      1. 2

        Just be aware that these kind of extensions get full access to all you see and do on your browser, because they need it in order to function.

        Is dark mode a reasonable tradeoff? That’s for you to decide.

        1. 3

          For this specific extension, Dark Reader is recommended by Mozilla on AMO. This means it has passed an additional level of security / privacy review beyond what a typical extension receives.

          Of course your point is still valid. But if you are a Firefox user who trusts Mozilla more than the Dark Reader dev(s), this may sway your decision.

          1. 2

            A workable (IMO) middleground is to just grab (and ideally audit) the source and then load the unpacked extension on individual devices. This dodges the “I made an extension with justifiably broad permissions and am selling it to a party that will do Bad Things with those permissions for a shitload of money” threat.

            1. 2

              Yup, but not many people do that.

              I know how to do it but I didn’t. Used to use 2-3 extensions with this kind of access. Now I no longer use them, and simply accept that the web is not as comfortable as I’d like it to be.

          2. 1

            Dark reader also lets you apply custom styling. So you can take the CSS in this post and copy it in the Dev Tools panel in Dark reader to use it.

          1. 78

            It would help if Firefox would actually make a better product that’s not a crappy Chrome clone. The “you need to do something different because [abstract ethical reason X]” doesn’t work with veganism, it doesn’t work with chocolate sourced from dubious sources, it doesn’t work with sweatshop-based clothing, doesn’t work with Free Software, and it sure as hell isn’t going to work here. Okay, some people are going to do it, but not at scale.

            Sometimes I think that Mozilla has been infiltrated by Google people to sabotage it. I have no evidence for this, but observed events don’t contradict it either.

            1. 24

              It would help if Firefox would actually make a better product that’s not a crappy Chrome clone. The “you need to do something different because [abstract ethical reason X]” doesn’t work with veganism, it doesn’t work with chocolate sourced from dubious sources, it doesn’t work with sweatshop-based clothing, doesn’t work with Free Software, and it sure as hell isn’t going to work here. Okay, some people are going to do it, but not at scale.

              I agree, but the deck is stacked against Mozilla. They are a relatively small nonprofit largely funded by Google. Structurally, there is no way they can make a product that competes. The problem is simply that there is no institutional counterweight to big tech right now, and the only real solutions are political: antitrust, regulation, maybe creating a publicly-funded institution with a charter to steward the internet in the way Mozilla was supposed to. There’s no solution to the problem merely through better organizational decisions or product design.

              1. 49

                I don’t really agree; there’s a lot of stuff they could be doing better, like not pushing out updates that change the colour scheme in such a way that it becomes nigh-impossible to see which tab is active. I don’t really care about “how it looks”, but this is just objectively bad. Maybe if you have some 16k super-HD IPS screen with perfect colour reproduction at full brightness in good office conditions it’s fine, but I just have a shitty ThinkPad screen and the sun in my home half the time (you know, like a normal person). It’s darn near invisible for me, and I have near-perfect eyesight (which not everyone has). I spent some time downgrading Firefox to 88 yesterday just for this – which it also doesn’t easily allow, not if you want to keep your profile anyway – because I couldn’t be arsed to muck about with userChrome.css hacks. Why can’t I just change themes? Or why isn’t there just a setting to change the colour?

                There’s loads of other things; one small thing I like to do is not have a “x” on tabs to close it. I keep clicking it by accident because I have the motor skills of a 6 year old and it’s rather annoying to keep accidentally closing tabs. It used to be a setting, then it was about:config, then it was a userChrome.css hack, now it’s a userChrome.css hack that you need to explicitly enable in about:config for it to take effect, and in the future I probably need to sacrifice a goat to our Mozilla overlords if I want to change it.

                I also keep accidentally bookmarking stuff. I press ^D to close terminal windows and sometimes Firefox is focused and oops, new bookmark for you! Want to configure keybinds for Firefox? Firefox say no; you’re not allowed, mere mortal end user; our keybinds are perfect and work for everyone, there must be something wrong with you if you don’t like it! It’s pretty darn hard to hack around this too – more time than I was willing to spend on it anyway – so I just accepted this annoyance as part of my life 🤷

                “But metrics show only 1% of people use this!” Yeah, maybe; but 1% here and 5% there and 2% somewhere else and before you know it you’ve annoyed half (of not more) of your userbase with a bunch of stuff like that. It’s the difference between software that’s tolerable and software that’s a joy to use. Firefox is tolerable, but not a joy. I’m also fairly sure metrics are biased as especially many power users disable it, so while useful, blindly trusting it is probably not a good idea (I keep it enabled for this reason, to give some “power user” feedback too).

                Hell, I’m not even a “power user” really; I have maybe 10 tabs open at the most, usually much less (3 right now) and most settings are just the defaults because I don’t really want to spend time mucking about with stuff. I just happen to be a programmer with an interest in UX who cares about a healthy web and knows none of this is hard, just a choice they made.

                These are all really simple things; not rocket science. As I mentioned a few days ago, Firefox seems have fallen victim to a mistaken and fallacious mindset in their design.

                Currently Firefox sits in a weird limbo that satisfies no one: “power users” (which are not necessarily programmers and the like, loads of people with other jobs interested in computers and/or use computers many hours every day) are annoyed with Firefox because they keep taking away capabilities, and “simple” users are annoyed because quite frankly, Chrome gives a better experience in many ways (this, I do agree, is not an easy problem to solve, but it does work “good enough” for most). And hey, even “simple” users occasionally want to do “difficult” things like change something that doesn’t work well for them.

                So sure, while there are some difficult challenges Firefox faces in competing against Google, a lot of it is just simple every-day stuff where they just choose to make what I consider to be a very mediocre product with no real distinguishing features at best. Firefox has an opportunity to differentiate themselves from Chrome by saying “yeah, maybe it’s a bit slower – it’s hard and we’re working on that – but in the meanwhile here’s all this cool stuff you can do with Firefox that you can’t with Chrome!” I don’t think Firefox will ever truly “catch up” to Chrome, and that’s fine, but I do think they can capture and retain a healthy 15%-20% (if not more) with a vision that consists of more than “Chrome is popular, therefore, we need to copy Chrome” and “use us because we’re not Chrome!”

                1. 21

                  Speaking of key bindings, Ctrl + Q is still “quit without any confirmation”. Someone filed a bug requesting this was changeable (not even default changed), that bug is now 20 years old.

                  It strikes me that this would be a great first issue for a new contributor, except the reason it’s been unfixed for so long is presumably that they don’t want it fixed.

                  1. 9

                    A shortcut to quit isn’t a problem, losing user data when you quit is a problem. Safari has this behaviour too, and I quite often hit command-Q and accidentally quit Safari instead of the thing I thought I was quitting (since someone on the OS X 10.8 team decided that the big visual clues differentiating the active window and others was too ugly and removed it). It doesn’t bother me, because when I restart Safari I get back the same windows, in the same positions, with the same tabs, scrolled to the same position, with the same unsaved form data.

                    I haven’t used Firefox for a while, so I don’t know what happens with Firefox, but if it isn’t in the same position then that’s probably the big thing to fix, since it also impacts experience across any other kind of browser restart (OS reboots, crashes, security updates). If accidentally quitting the browser loses you 5-10 seconds of time, it’s not a problem. If it loses you a load of data then it’s really annoying.

                    1. 4

                      Firefox does this when closing tabs (restoring closed tabs usually restores form content etc.) but not when closing the window.

                      The weird thing is that it does actually have a setting to confirm when quitting, it’s just that it only triggers when you have multiple tabs or windows open and not when there’s just one tab 🤷

                      1. 1

                        The weird thing is that it does actually have a setting to confirm when quitting, it’s just that it only triggers when you have multiple tabs or windows open and not when there’s just one tab

                        Does changing browser.tabs.closeWindowWithLastTab in about:config fix that?

                        1. 1

                          I have it set to false already, I tested it to make sure and it doesn’t make a difference (^W won’t close the tab, as expected, but ^Q with one tab will still just quit).

                      2. 2

                        I quite often hit command-Q and accidentally quit Safari

                        One of the first things I do when setting up a new macOS user for myself is adding alt-command-Q in Preferences → Keyboard → Shortcuts → App Shortcuts for “Quit Safari” in Safari. Saves my sanity every day.

                        1. 1

                          Does this somehow remove the default ⌘Q binding?

                          1. 1

                            Yes, it changes the binding on the OS level, so the shortcut hint in the menu bar is updated to show the change

                            1. 1

                              It overrides it - Safari’s menu shows ⌥⌘Q against “Quit Safari”.

                            2. 1

                              You can do this in windows for firefox (or any browser) too with an autohotkey script. You can set it up to catch and handle a keypress combination before it reaches any other application. This will be global of course and will disable and ctrl-q hotkey in all your applications, but if you want to get into detail and write a more complex script you can actually check which application has focus and only block the combination for the browser.

                            3. 2

                              This sounds like something Chrome gets right - if I hit CMD + Q I get a prompt saying “Hold CMD+Q to Quit” which has prevented me from accidentally quitting lots of times. I assumed this was MacOS behaviour, but I just tested Safari and it quit immediately.

                            4. 6

                              Disabling this shortcut with browser.quitShortcut.disabled works for me, but I agree that bug should be fixed.

                              1. 1

                                Speaking of key bindings, Ctrl + Q is still “quit without any confirmation”.

                                That was fixed a long time ago, at least on Linux. When I press it, a modal says “You are about to close 5 windows with 24 tabs. Tabs in non-private windows will be restored when you restart.” ESC cancels.

                                1. 1

                                  That’s strange. I’m using latest Firefox, from Firefox, on Linux, and I don’t ever get a prompt. Another reply suggested a config tweak to try.

                                  1. 1

                                    I had that problem for a while but it went away. I have browser.quitShortcut.disabled as false in about:config. I’m not sure if it’s a default setting or not.

                                    1. 1

                                      quitShortcut

                                      It seems that this defaults to false. The fact you have it false, but don’t experience the problem, is counter-intuitive to me. Anyway the other poster’s suggestion was to flip this, so I’ll try that. Thanks!

                                      1. 1

                                        That does seem backwards. Something else must be overriding it. I’m using Ubuntu 20.04, if that matters. I just found an online answer that mentions the setting.

                              2. 7

                                On one level, I disagree – I have zero problems with Firefox. My only complaint is that sometimes website that are built to be Chrome-only don’t work sometimes, which isn’t really Firefox’s problem, but the ecosystem’s problem (see my comment above about antitrust, etc). But I will grant you that Firefox’s UX could be better, that there are ways the browser could be improved in general. However, I disagree here:

                                retain a healthy 15%-20% (if not more)

                                I don’t think this is possible given the amount of resources Firefox has. No matter how much they improve Firefox, there are two things that are beyond their control:

                                1. Most users use Google products (gmail, calendar, etc), and without an antitrust case, these features will be seamlessly integrated into Chrome, and not Firefox.
                                2. Increasingly, websites are simple not targeting Firefox for support, so normal users who want to say, access online banking, are SOL on Firefox. (This happens to me, I still have to use Chrome for some websites)

                                Even the best product managers and engineers could not reverse Firefox’s design. We need a political solution, unless we want the web to become Google Web (tm).

                                1. 3

                                  Why can’t I just change themes?

                                  You can. The switcher is at the bottom of the Customize Toolbar… view.

                                  1. 2

                                    Hm, last time I tried this it didn’t do much of anything other than change the colour of the toolbar to something else or a background picture; but maybe it’s improved now. I’ll have a look next time I try mucking about with 89 again; thanks!

                                    1. 3

                                      You might try the Firefox Colors extension, too. It’s a pretty simple custom theme builder.

                                      1. 2

                                        https://color.firefox.com/ to save the trouble of searching.

                                  2. 4

                                    I agree with Firefox’s approach of choosing mainstream users over power-users - that’s the only way they’ll ever have 10% or more of users. Firefox is doing things with theming that I wish other systems would do - they have full “fresco” themes (images?) in their chrome! It looks awesome! I dream about entire DEs and app suites built from the ground up with the same theme of frescoes (but with an different specific fresco for each specific app, perhaps tailored to that app). Super cool!

                                    I don’t like the lack of contrast on the current tab, but “give users the choice to fix this very specific issue or not” tends to be extremely shortsighted - the way to fix it is to fix it. Making it optional means yet another maintenance point on an already underfunded system, and doesn’t necessarily even fix the problem for most users!

                                    More importantly, making ultra-specific optionss like that is usually pushing decisions onto the user as a method of avoiding internal politicking/arguments, and not because pushing to the user is the optimal solution for that specific design aspect.

                                    1. 2

                                      As for the close button, I am like you. You can set browser.tabs.tabClipWidth to 1000. Dunno if it is scheduled to be removed.

                                      As for most of the other grips, adding options and features to cater for the needs of a small portion of users has a maintenance cost. Maybe adding the option is only one line, but then a new feature needs to work with the option enabled and disabled. Removing options is just a way to keep the code lean.

                                      My favorite example in the distribution world is Debian. Debian supports tries to be the universal OS. We are drowning with having to support everything. For examples, supporting many init systems is more work. People will get to you if there is a bug in the init system you don’t use. You spend time on this. At the end, people not liking systemd are still unhappy and switch to Devuan which supports less init systems. I respect Mozilla to keep a tight ship and maintaining only the features they can support.

                                      1. 7

                                        Nobody would say anything if their strategy worked. The core issue is that their strategy obviously doesn’t work.

                                        adding options and features to cater for the needs of a small portion of users

                                        It ’s not even about that.

                                        It’s removing things that worked and users liked by pretending that their preferences are invalid. (And every user belongs to some minority that likes a feature others may be unaware of.)

                                        See the recent debacle of gradually blowing up UI sizes, while removing options to keep them as they were previously.

                                        Somehow the saved cost to support some feature doesn’t seem to free up enough resources to build other things that entice users to stay.

                                        All they do with their condescending arrogance on what their perfectly spherical idea of a standard Firefox user needs … is making people’s lives miserable.

                                        They fired most of the people that worked on things I was excited about, and it seems all that’s left are some PR managers and completely out-of-touch UX “experts”.

                                        1. 4

                                          As for most of the other grips, adding options and features to cater for the needs of a small portion of users has a maintenance cost. Maybe adding the option is only one line, but then a new feature needs to work with the option enabled and disabled. Removing options is just a way to keep the code lean.

                                          It seems to me that having useful features is more important than having “lean code”, especially if this “lean code” is frustrating your users and making them leave.

                                          I know it’s easy to shout stuff from the sidelines, and I’m also aware that there may be complexities I may not be aware of and that I’m mostly ignorant of the exact reasoning behind many decisions (most of us here are really, although I’ve seen a few Mozilla people around), but what I do know is that 1) Firefox as a product has been moving in a certain direction for years, 2) that Firefox has been losing users for years, 3) that I know few people who truly find Firefox an amazing browser that a joy to use, and that in light of that 4) keep doing the same thing you’ve been doing for years is probably not a good idea, and 5) that doing the same thing but doing it harder is probably an even worse idea.

                                          I also don’t think that much of this stuff is all that much effort. I am not intimately familiar with the Firefox codebase, but how can a bunch of settings add an insurmountable maintenance burden? These are not “deep” things that reach in to the Gecko engine, just comparatively basic UI stuff. There are tons of projects with a much more complex UI and many more settings.

                                          Hell, I’d argue that even removing the RSS was also a mistake – they should have improved it instead, especially after Google Reader’s demise there was a huge missed opportunity there – although it’s a maintenance burden trade-off I can understand it better, it also demonstrates a lack of vision to just say “oh, it’s old crufty code, not used by many (not a surprise, it sucked), so let’s just remove it, people can just install an add-on if they really want it”. This is also a contradiction with Firefox’s mantra of “most people use the defaults, and if it’s not used a lot we can just remove it”. Well, if that’s true then you can ship a browser with hardly any features at all, and since most people will use the defaults they will use a browser without any features.

                                          Browsers like Brave and Vivaldi manage to do much of this; Vivaldi has an entire full-blown email client. I’d wager that a significant portion of the people leaving Firefox are actually switching to those browsers, not Chrome as such (but they don’t show up well in stats as they identify as “Chrome”). Mozilla nets $430 million/year; it’s not a true “giant” like Google or Apple, but it’s not small either. Vivaldi has just 55 employees (2021, 35 in 2017); granted, they do less than Mozilla, but it doesn’t require a huge team to do all of this.

                                          And every company has limited resources; it’s not like the Chrome team is a bottomless pit of resources either. A number of people in this thread express the “big Google vs. small non-profit Mozilla”-sentiment here, but it doesn’t seem that clear-cut. I can’t readily find a size for the Chrome team on the ‘net, but I checked out the Chromium source code and let some scripts loose on that: there are ~460 Google people with non-trivial commits in 2020, although quite a bit seems to be for ChromeOS and not the browser part strictly speaking, so my guestimate is more 300 people. A large team? Absolutely. But Mozilla’s $430/million a year can match this with ~$1.5m/year per developer. My last company had ~70 devs on much less revenue (~€10m/year). Basically they have the money to spare to match the Chrome dev team person-for-person. Mozilla does more than just Firefox, but they can still afford to let a lot of devs loose on Gecko/Firefox (I didn’t count the number devs for it, as I got some other stuff I want to do this evening as well).

                                          It’s all a matter of strategy; history is littered with large or even huge companies that went belly up just because they made products that didn’t fit people’s demands. I fear Firefox will be in the same category. Not today or tomorrow, but in five years? I’m not so sure Firefox will still be around to be honest. I hope I’m wrong.

                                          As for your Debian comparison; an init system is a fundamental part of the system; it would be analogous to Firefox supporting different rendering or JS engines. It’s not even close to the same as “an UI to configure key mappings” or “a bunch of settings for stuff you can actually already kind-of do but with hacks that you need to explicitly search for and most users don’t know it exists”, or even a “built-in RSS reader that’s really good and a great replacement for Google Reader”.

                                          1. 2

                                            I agree with most of what you said. Notably the removal of RSS support. I don’t work for Mozilla and I am not a contributor, so I really can’t answer any of your questions.

                                            Another example of maintaining a feature would be Alsa support. It has been removed, this upsets some users, but for me, this is understandable as they don’t want to handle bug reports around this or the code to get in the way of some other features or refactors. Of course, I use Pulseaudio, so I am quite biased.

                                            1. 4

                                              I think ALSA is a bad example; just use Pulseaudio. It’s long since been the standard, everyone uses it, and this really is an example of “147 people who insist on having an überminimal Linux on Reddit being angry”. It’s the kind of technical detail with no real user-visible changes that almost no one cares about. Lots of effort with basically zero or extremely minimal tangible benefits.

                                              And ALSA is a not even a good or easy API to start with. I’m pretty sure that the “ALSA purists” never actually tried to write any ALSA code otherwise they wouldn’t be ALSA purists but ALSA haters, as I’m confident there is not a single person that has programmed with ALSA that is not an ALSA hater to some degree.

                                              Pulseaudio was pretty buggy for a while, and its developer’s attitude surrounding some of this didn’t really help, because clearly if tons of people are having issues then all those people are just “doing it wrong” and is certainly not a reason to fix anything, right? There was a time that I had a keybind to pkill pulseaudio && pulseaudio --start because the damn thing just stopped working so often. The Grand Pulseaudio Rollout was messy, buggy, broke a lot of stuff, and absolutely could have been handled better. But all of that was over a decade ago, and it does actually provide value. Most bugs have been fixed years ago, Poettering hasn’t been significantly involved since 2012, yet … people still hold an irrational hatred towards it 🤷

                                              1. 1

                                                ALSA sucks, but PulseAudio is so much worse. It still doesn’t even actually work outside the bare basics. Firefox forced me to put PA on and since then, my mic randomly spews noise and sound between programs running as different user ids is just awful. (I temporarily had that working better though some config changes, then a PA update - hoping to fix the mic bug - broke this… and didn’t fix the mic bug…)

                                                I don’t understand why any program would use the PA api instead of the alsa ones. All my alsa programs (including several I’ve made my own btw, I love it whenever some internet commentator insists I don’t exist) work equally as well as pulse programs on the PA system… but also work fine on systems where audio actually works well (aka alsa systems). Using the pulse api seems to be nothing but negatives.

                                        2. 1

                                          Not sure if this will help you but I absolutely cannot STAND the default Firefox theme so I use this: https://github.com/ideaweb/firefox-safari-style

                                          I stick with Firefox over Safari purely because it’s devtools are 100x better.

                                        3. 10

                                          There’s also the fact that web browsers are simply too big to reimplement at this point. The best Mozilla can do (barely) is try to keep up with the Google-controlled Web Platform specs, and try to collude with Apple to keep the worst of the worst from being formally standardized (though Chrome will implement them anyway). Their ability to do even that was severely impacted by their layoffs last year. At some point, Apple is going to fold and rebase Safari on Chromium, because maintaining their own browser engine is too unprofitable.

                                          At this point, we need to admit that the web belongs to Google, and use it only to render unto Google what is Google’s. Our own traffic should be on other protocols.

                                          1. 8

                                            For a scrappy nonprofit they don’t seem to have any issues paying their executives millions of dollars.

                                            1. 1

                                              I mean, I don’t disagree, but we’re still talking several orders of magnitude less compensation than Google’s execs.

                                              1. 5

                                                A shit sandwich is a shit sandwich, no matter how low the shit content is.

                                                (And no, no one is holding a gun to Mozilla’s head forcing them to hire in high-CoL/low-productivity places.)

                                            2. 1

                                              Product design can’t fix any of these problems because nobody is paying for the product. The more successful it is, the more it costs Mozilla. The only way to pay the rent with free-product-volume is adtech, which means spam and spying.

                                              1. 4

                                                Exactly why I think the problem requires a political solution.

                                            3. 8

                                              I don’t agree this is a vague ethical reason. Problem with those are concerns like deforestation (and destruction of habitats for smaller animals) to ship almond milk across the globe, and sewing as an alternative to poverty and prostitution, etc.

                                              The browser privacy question is very quantifiable and concrete, the source is in the code, making it a concrete ethical-or-such choice.

                                              ISTR there even being a study or two where people were asked about willingness to being spied upon, people who had no idea their phones were doing what was asked about, and being disconcerted after the fact. That’s also a concrete way to raise awareness.

                                              At the end of the day none of this may matter if people sign away their rights willingly in favor of a “better” search-result filter bubble.

                                              1. 11

                                                I don’t think they’re vague (not the word I used) but rather abstract; maybe that’s no the best word either but what I mean with it is that it’s a “far from my bed show” as we would say in Dutch. Doing $something_better on these topics has zero or very few immediate tangible benefits, but rather more abstract long-term benefits. And in addition it’s also really hard to feel that you’re really making a difference as a single individual. I agree with you that these are important topics, it’s just that this type of argument is simply not all that effective at really making a meaningful impact. Perhaps it should be, but it’s not, and exactly because it’s important we need to be pragmatic about the best strategy.

                                                And if you’re given the choice between “cheaper (or better) option X” vs. “more expensive (or inferior) option Y with abstract benefits but no immediate ones”, then I can’t really blame everyone for choosing X either. Life is short, lots of stuff that’s important, and can’t expect everyone to always go out of their way to “do the right thing”, if you can even figure out what the “right thing” is (which is not always easy or black/white).

                                                1. 1

                                                  My brain somehow auto-conflated the two, sorry!

                                                  I think we agree that the reasoning in these is inoptimal either way.

                                                  Personally I wish these articles weren’t so academic, and maybe not in somewhat niche media, but instead mainstream publications would run “Studies show people do not like to be spied upon yet they are - see the shocking results” clickbaity stuff.

                                                  At least it wouldn’t hurt for a change.

                                                  1. 1

                                                    It probably wasn’t super-clear what exactly was intended with that in the first place so easy enough of a mistake to make 😅

                                                    As for articles, I’ve seen a bunch of them in mainstream Dutch newspapers in the last two years or so; so there is some amount of attention being given to this. But as I expended on in my other lengthier comment, I think the first step really ought to be making a better product. Not only is this by far the easiest to do and within our (the community’s) power to do, I strongly suspect it may actually be enough, or at least go a long way.

                                                    It’s like investing in public transport is better than shaming people for having a car, or affordable meat alternatives is a better alternative than shaming people for eating meat, etc.

                                              2. 7

                                                I agree to an extent. Firefox would do well to focus on the user experience front.

                                                I switched to Firefox way back in the day, not because of vague concerns about the Microsoft hegemony, or even concerns about web standards and how well each browser implemented them. I switched because they introduced the absolutely groundbreaking feature that is tabbed browsing, which gave a strictly better user experience.

                                                I later switched to Chrome when it became obvious that it was beating Firefox in terms of performance, which is also a factor in user experience.

                                                What about these days? Firefox has mostly caught up to Chrome on the performance point. But you know what’s been the best user experience improvement I’ve seen lately? Chrome’s tab groups feature. It’s a really simple idea, but it’s significantly improved the way I manage my browser, given that I tend to have a huge number of tabs open.

                                                These are the kinds of improvements that I’d like to see Firefox creating, in order to lure people back. You can’t guilt me into trying a new browser, you have to tempt me.

                                                1. 10

                                                  But you know what’s been the best user experience improvement I’ve seen lately? Chrome’s tab groups feature. It’s a really simple idea, but it’s significantly improved the way I manage my browser, given that I tend to have a huge number of tabs open.

                                                  Opera had this over ten years ago (“tab stacking”, added in Opera 11 in 2010). Pretty useful indeed, even with just a limited number of tabs. It even worked better than Chrome groups IMO. Firefox almost-kind-of has this with container tabs, which are a nice feature actually (even though I don’t use it myself), and with a few UX enhancements on that you’ve got tab groups/stacking.

                                                  Opera also introduced tabbed browsing by the way (in 2000 with Opera 4, about two years before Mozilla added it in Phoenix, which later became Firefox). Opera was consistently way ahead of the curve on a lot of things. A big reason it never took off was because for a long time you had to pay for it (until 2005), and after that it suffered from “oh, I don’t want to pay for it”-reputation for years. It also suffered from sites not working; this often (not always) wasn’t even Opera’s fault as frequently this was just a stupid pointless “check” on the website’s part, but those were popular in those days to tell people to not use IE6 and many of them were poor and would either outright block Opera or display a scary message. And being a closed-source proprietary product also meant it never got the love from the FS/OSS crowd and the inertia that gives (not necessarily a huge inertia, but still).

                                                  So Firefox took the world by storm in the IE6 days because it was free and clearly much better than IE6, and when Opera finally made it free years later it was too late to catch up. I suppose the lesson here is that “a good product” isn’t everything or a guarantee for success, otherwise we’d all be using Opera (Presto) now, but it certainly makes it a hell of a lot easier to achieve success.

                                                  Opera had a lot of great stuff. I miss Opera 😢 Vivaldi is close (and built by former Opera devs) but for some reason it’s always pretty slow on my system.

                                                  1. 1

                                                    This is fair and I did remember Opera being ahead of the curve on some things. I don’t remember why I didn’t use it, but it being paid is probably why.

                                                    1. 1

                                                      I agree, I loved the Presto-era Opera and I still use the Blink version as my main browser (and Opera Mobile on Android). It’s still much better than Chrome UX-wise.

                                                    2. 4

                                                      I haven’t used tab groups, but it looks pretty similar to Firefox Containers which was introduced ~4 years ahead of that blog post. I’ll grant that the Chrome version is built-in and looks much more polished and general purpose than the container extension, so the example is still valid.

                                                      I just wanted to bring this up because I see many accusations of Firefox copying Chrome, but I never see the reverse being called out. I think that’s partly because Chrome has the resources to take Mozilla’s ideas and beat them to market on it.

                                                      Disclaimer: I’m a Mozilla employee

                                                    3. 4

                                                      One challenge for people making this kind of argument is that predictions of online-privacy doom and danger often don’t match people’s lived experiences. I’ve been using Google’s sites and products for over 20 years and have yet to observe any real harm coming to me as a result of Google tracking me. I think my experience is typical: it is an occasional minor annoyance to see repetitive ads for something I just bought, and… that’s about the extent of it.

                                                      A lot of privacy advocacy seems to assume that readers/listeners believe it’s an inherently harmful thing for a company to have information about them in a database somewhere. I believe privacy advocates generally believe that, but if they want people to listen to arguments that use that assumption as a starting point, they need to do a much better job offering non-circular arguments about why it’s bad.

                                                      1. 4

                                                        I think it has been a mistake to focus on loss of privacy as the primary data collection harm. To me the bigger issue is that it gives data collectors power over the creators of the data and society as a whole, and drives destabilizing trends like political polarization and economic inequality. In some ways this is a harder sell because people are brainwashed to care only about issues that affect them personally and to respond with individualized acts.

                                                        1. 4

                                                          There is no brainwashing needed for people to act like people.

                                                          1. 1

                                                            do you disagree with something in my comment?

                                                            1. 3

                                                              In some ways this is a harder sell because people are brainwashed to care only about issues that affect them personally and to respond with individualized acts.

                                                              I’m not @halfmanhalfdonut but I don’t think that brainwashing is needed to get humans to behave like this. This is just how humans behave.

                                                              1. 2

                                                                Yep, this is what I was saying.

                                                                1. 1

                                                                  things like individualism, solidarity, and collaboration exist on a spectrum, and everybody exhibits each to some degree. so saying humans just are individualistic is tautological, meaningless. everyone has some individualism in them regardless of their upbringing, and that doesn’t contradict anything in my original comment. that’s why I asked if there was some disagreement.

                                                                  to really spell it out, modern mass media and culture condition people to be more individualistic than they otherwise would be. that makes it harder to make an appeal to solidarity and collaboration.

                                                                  @GrayGnome

                                                                  1. 1

                                                                    I think you’re only seeing the negative side (to you) of modern mass media and culture. Our media and culture also promote unity, tolerance, respect, acceptance, etc. You’re ignoring that so that you can complain about Google influencing media, but the reality is that the way you are comes from those same systems of conditioning.

                                                                    The fact that you even know anything about income inequality and political polarization are entirely FROM the media. People on the whole are not as politically divided as media has you believe.

                                                                    1. 1

                                                                      sure, I only mentioned this particular negative aspect because it was relevant to the point I was making in my original comment

                                                                    2. 1

                                                                      to really spell it out, modern mass media and culture condition people to be more individualistic than they otherwise would be. that makes it harder to make an appeal to solidarity and collaboration.

                                                                      I think we’re going to have to agree to disagree. I can make a complicated rebuttal here, but it’s off-topic for the site, so cheers!

                                                                      1. 1

                                                                        cheers

                                                        2. 3

                                                          I agree with everything you’ve written in this thread, especially when it comes to the abstractness of pro-Firefox arguments as of late. Judging from the votes it seems I am not alone. It is sad to see Mozilla lose the favor of what used to be its biggest proponents, the “power” users. I truly believe they are digging their own grave – faster and faster it seems, too. It’s unbelievable how little they seem to be able to just back down and admit they were wrong about an idea, if only for a single time.

                                                          1. 2

                                                            Firefox does have many features that Chrome doesn’t have: container tabs, tree style tabs, better privacy and ad-blocking capabilities, some useful dev tools that I don’t think Chrome has (multi-line JS and CSS editors, fonts), isolated profiles, better control over the home screen, reader mode, userChrome.css, etc.

                                                          1. 4

                                                            Anybody here know what the FF justification for this change is? This seems to be quite different from the XUL stuff (where XUL basically let you completely break FF, I feel like Web Extensions “fixed” that)

                                                            1. 2

                                                              Note: I’m not on the Fenix team and have no insight into their plans, thus I’m wearing my Firefox user hat and not my Mozilla employee one.

                                                              I haven’t seen any official announcements that could even be justified one way or the other at this point. There seems to be a lot of people assuming that add-ons are being phased out, but I haven’t seen any messaging that suggests this, on the contrary..

                                                            1. 22

                                                              No layoffs or pay cuts at the management level, of course! It’s not like they’re responsible for these problems, it’s not like anyone’s fucking responsible for any of this, it’s not like the very idea of personal responsibility has been forgotten by both executives and engineers, no sir!

                                                              I disagree with pretty much the whole post, but this is patently false.

                                                              1. 8

                                                                https://twitter.com/lizardlucas42/status/1293232090985705478

                                                                I imagine for those layed off, it was a bit of a financial burden too.

                                                                1. 7

                                                                  There were no pay cuts anywhere. Layoffs happened fairly uniformly across ICs and management. Not sure how that tweet disproves my comment.

                                                                  Fwiw I don’t remember Baker saying those words, and her response to the same question today did not follow that theme.

                                                                  1. 23

                                                                    https://answers.thenextweb.com/s/mitchell-baker-aGY62z

                                                                    Baker: Are execs, esp CEOs paid too much? I’m of the camp that thinks the different between exec comp and other comp is high. So then i think, OK what should mozilla do about it? My answer is that we try to mitigate this, but we won’t solve this general social problem on our own.

                                                                    Here’s what I mean by mitigate: we ask our executives to accept a discount from the market-based pay they could get elsewhere. But we don’t ask for an 75-80% discount. I use that number because a few years ago when the then-ceo had our compensation structure examined, I learned that my pay was about an 80% discount to market. Meaning that competitive roles elsewhere were paying about 5 times as much. That’s too big a discount to ask people and their families to commit to.

                                                                    So, the “difference between exec and other comp is too high” but also it’s okay for Baker to raise their compensation to closer to market rate because that is “too big a discount to ask people and their families to commit to”.

                                                                    I wonder how Baker feels about the 100% discount that the people fired are getting. The average salary at Mozilla is ~$100k according to glassdoor, so Baker’s salary ~$2.5M would pay for maybe 20 engineers and managers with room to spare. Could have maybe kept 50 or more jobs if the whole C-suite committed to pay cuts.

                                                                    Anybody who genuinely believes that they’re worth 25 times their employees’ wage is a vampire.

                                                                    1. 8

                                                                      Speaking for myself, I suspect most C-level executives don’t earn their salary. Maybe there are a few genius CEOs out there who do, I don’t know.

                                                                      Most of us (ICs and management) take some sort of pay cut to work at Mozilla. We could likely make more elsewhere, but believe in the mission enough to make the cut worthwhile. I’m willing to take a small cut, but if the pay wasn’t at least competitive, I’d go work for one of the tech giants instead.

                                                                      So while I don’t believe it’s right that the wage gap is so high, I’m also a practical person and understand that it needs to at least be competitive with industry standards to attract people with that type of experience. It would take an enormous stroke of luck to find someone with talent who is willing to work for a quarter of what they could be making elsewhere. I certainly wouldn’t do it.

                                                                      1. 4

                                                                        It’s pretty common for people in academia to take a 70% or more pay cut relative to industry wages to work on things that they’re passionate about. Top universities don’t seem to have any problem recruiting very smart people on that condition. My take-away message from this is that Mozilla C-level execs care less about Mozilla than a typical computer science academic does about their work. That doesn’t really fill me with confidence in their leadership. Particularly given that 30% is a competitive CxO salary still puts you in the top 1% by income. You can live very comfortably on 10% of a $2.5m/year salary, let alone 20-25%. If you offered $500K/year to run Mozilla Corp, does she really think you’d have a shortage of qualified and passionate applicants?

                                                                        1. 4

                                                                          I think that’s a reasonable opinion, and I honestly don’t know the answer to your last question. I will say that Mozilla spent 8 months searching for a replacement CEO and failed to find someone suitable (even with competitive salary). I think it might be a little harder than you’re making it out to be.

                                                                          1. 3

                                                                            The academic and CEO job markets are different enough that I don’t think this is a good comparison.
                                                                            CEO compensation is determined by the board (How Companies Actually Decide What to Pay CEOs) and they use other companies in the same industry as a benchmark. The average tech company CEO makes $6.6 million and many of them get stock options. It’s highly unlikely that the Mozilla board would decide to pay bottom of market under these conditions. Self interest is also a factor - Mitchell Baker is a member of both the Mozilla Corporation and Mozilla Foundation boards.

                                                                          2. 4

                                                                            Anybody who genuinely believes that they’re worth 25 times their employees’ wage is a vampire.

                                                                            CEOs don’t have to believe they are worth anything. They simply have to negotiate the best offer they can get.

                                                                      2. 2

                                                                        Same. I looked and looked and could not find any evidence of this.

                                                                        1. 1

                                                                          We’re any senior managers fired? Did the CEO cut salary? From Mozilla’s announcement it sounded like the entire 250 were from staff working in cancelled projects.

                                                                          1. 2

                                                                            Yes, and (as stated in another thread) no.

                                                                        1. 11

                                                                          Web browsers that will render the modern web cost millions of dollars to produce.

                                                                          Who else has the incentive to do that?

                                                                          Is he suggesting that someone (not him, presumably) fork Chrome and remove the extensions and features he doesn’t like, and backport security fixes weekly?

                                                                          Google’s incentives are clear, and no one is forced to run browsers with these featuresets he complains about.

                                                                          What, exactly, is he proposing, and to whom?

                                                                          1. 20

                                                                            What, exactly, is he proposing, and to whom?

                                                                            “I call for an immediate and indefinite suspension of the addition of new developer-facing APIs to web browsers. “

                                                                            The article is very short and doesn’t need a lot of interpretation. He simply wants the companies that create browsers to stop adding these new features and in some cases start removing them. This may happen with Firefox. By removing 25% of their workforce it might take a little bit longer to add new features.

                                                                            1. 9

                                                                              Firefox wants feature parity with Chrome.

                                                                              Google wants a large technical moat around browser competitors, as well as full, native-app-like functionality on ChromeOS devices (hence webmidi and webusb et c).

                                                                              Why would they stop? Because Drew said so?

                                                                              More importantly, why should they?

                                                                              1. 6

                                                                                Google wants a large technical moat around browser competitors

                                                                                More importantly, why should they?

                                                                                Should they be allowed to rig the market such that it’s impossible to compete in? It sounds like you agree they’re doing that, and I don’t see how that’s a good thing by anyone’s standards.

                                                                                1. 12

                                                                                  It seems to me that Google is playing the embrace-extend-extinguish game, but in a different way: they’re extending the scope so broadly and with features so hard to implement that even companies comparable in size to Google don’t can’t compete against it (think of Microsoft dropping trident and forking chromium, and think of opera basically becoming a chromium skin)

                                                                                  1. 1

                                                                                    Nobody’s rigging anything by releasing free software (Chromium).

                                                                                    1. 10

                                                                                      I’m not sure if that’s true. Google has arguably “won” the browser wars by open-sourcing chromium. Everyone (almost) chose to contribute to Google’s dominance rather than compete with them. You can’t realistically fork Chromium anyway, with the limited resources you left yourself with, so all you can do is contribute back to Google while sheepishly adopting everything they force upon you.

                                                                                  2. 2

                                                                                    They shouldn’t stop because Drew said so. It looks like they’ll stop whenever this becomes a financial burden.

                                                                                    1. 2

                                                                                      We’ll end up with a situation like before, with IE 6: All competitors well and truly crushed with a more featureful, “better” browser, and then decide to throw in the towel when it comes to maintenance. Yay…

                                                                                2. 11

                                                                                  Web browsers that will render the modern web cost millions of dollars to produce.

                                                                                  Yes, and the proposal is to stop adding features to keep the cost from rising further.

                                                                                  You know, there might be viable new competition, if writing a browser wouldn’t involve also writing a half-assed operating system, an USB stack, an OpenGL driver wrapper, …

                                                                                  1. 2

                                                                                    I’m not sure that there is a legal or moral argument that they shouldn’t be permitted to. There certainly isn’t a logical one that, from their perspective, they shouldn’t.

                                                                                    1. 4

                                                                                      how is moral that a private american corporation has de facto unlimited power over a technology developed by thousands of people around the world over the years and it’s free to steer the future of such a critical technology? If Google behaves like Google, this will lead to the exploitation of billions of user around the world. This is the equivalent of buying out all the sources of water and then asking for money at the price you decide. Web Technologies are now necessary to create and operate the tools we use to reproduce socially, to work, to study, to keep families and communities together: letting a bunch of privileged techbros in California exploit these needs freely is in no way moral.

                                                                                      1. 3

                                                                                        It’s nothing like buying out the water supply. In this case there are still alternate browsers with differing feature sets.

                                                                                        1. 4

                                                                                          Not if Google keeps breaking the standards and no dev supports the alternative browsers. Yes, you can have nice browsers that work for niche sites, but that might become a separate web entirely that will be simply ignored by the vast majority of the users.

                                                                                        2. 1

                                                                                          Because steering is an abstraction, at any point you can use the version of Chromium from that day for all time if you so wish.

                                                                                          Google gets free expression just like anyone else does, and can add any features they like to their own free software project.

                                                                                          1. 1

                                                                                            A browser can be used only if the websites are compatible. The situation where chromium is a viable, secure option now might change in the future, rendering it a non-viable option. Why do you think Google will keep supporting chromium after winning this war? It might happen but it might not.

                                                                                    2. 1

                                                                                      Yeah, I don’t really understand.

                                                                                      His proposal seems to be “give the last vestiges of control over the web to Google”? It might make more sense if the title were “Google needs to stop”.

                                                                                      1. 2

                                                                                        At the moment, Google is deciding where web browsers go, approximately unilaterally. The two aren’t precisely equivalent, but they’re far too close for comfort.

                                                                                    1. 98

                                                                                      I don’t write tests to avoid bugs. I write tests to avoid regressions.

                                                                                      1. 14

                                                                                        Exactly. I dislike writing tests, but I dislike fixing regressions even more.

                                                                                        1. 7

                                                                                          And i’d go even further:

                                                                                          I write tests and use typed languages to avoid regressions, especially when refactoring.

                                                                                          A test that just fails when I refactor the internal workings of some subcomponents, is not a helpful test – it just slows me down. 99% of my tests are on the level of treating a service or part of a service as a black box. For a web service this is:

                                                                                          test input (request) -> [black box] -> mocked database/services
                                                                                          

                                                                                          Where black box is my main code.

                                                                                          For NodeJS the combo express/supertest is awesome for the front bit. I wish more web frameworks in Rust etc also had this. I.e. providing ways to “fake run” requests through without having to faff around with server/sockets (and still be confident it does what it should).

                                                                                          1. 5

                                                                                            Now the impish question: what is the correct decision if the test is more annoying to write than the regression is to observe and fix?

                                                                                            1. 3

                                                                                              Indeed!

                                                                                              (I research ways[1] to avoid that. But of course they don’t apply when you’ve already chosen a stack and framework for development. In my day job we just make hard decisions about priority and ROI and fall back sometimes to code comments, documents or oral story-telling.)

                                                                                              [1] https://github.com/akkartik/mu1#readme (first section)

                                                                                              1. 2

                                                                                                Every project is different, but ideally you can invest time in the testing infrastructure such that writing a new test is no longer annoying. I.e, maybe you can write re-usable helper functions and get to the point where a new test means adding an assertion or copy / pasting an existing test and modifying it a bit. The tools used (test harness, mocking library, etc) also play a huge role in whether tests are annoying or not, spending time ensuring you’re using the right ones (and learning how to properly use them) is another way to invest in testing.

                                                                                                The level of effort you should spend on testing infrastructure depends on the scope, scale and longevity of your project. There are definitely domains that will be a pain to test pretty much no matter what.

                                                                                                1. 2

                                                                                                  In my experience such testing frameworks tend to add to the problem, rather than solve it. Most testing frameworks I’ve seen are complex and can be tricky to work with and get things right. Especially when a test is broken it can be a pain to deal with.

                                                                                                  Tests are hard because you essentially need to keep two functions in your head: the actual code, and the testing code. If you come back to a test after 3 years you don’t really know if the test is broken or the code is broken. It can be a real PITA if you’re using some super-clever DSL testing framework.

                                                                                                  People trying to be “too clever” in code can lead to hard to maintain code, people trying to be “too clever” in tests often leads to hard to maintain tests.

                                                                                                  Especially in tests I try to avoid needless abstractions and be as “dumb” as possible. I would rather copy/paste the same code 4 times (possible with some slight modifications) than write a helper function for it. It’s just such a pain to backtrack when things inevitably break.

                                                                                                  It really doesn’t need to be this hard IMHO; you can fix much of it by letting go of the True Unit Tests™ fixation.

                                                                                                  1. 2

                                                                                                    I don’t disagree, and I wasn’t trying to suggest using a “clever” testing framework will somehow make your tests less painful. Fwiw I even suggested the copy / paste method in my OP and use it all the time myself :p. My main point was using the right tool / methods for the job.

                                                                                                    I will say that the right tool for the job is often the one that is the most well known for the language and domain you’re working in. Inventing a bespoke test harness and trying to force it on the 20 other developers who are already intimately familiar with the “clever” framework isn’t going to help.

                                                                                                    1. 2

                                                                                                      Fair enough :-)

                                                                                                      I will say that the right tool for the job is often the one that is the most well known for the language and domain you’re working in. Inventing a bespoke test harness and trying to force it on the 20 other developers who are already intimately familiar with the “clever” framework isn’t going to help.

                                                                                                      I kind of agree because there’s good value in standard tooling, but on the other hand I’ve seen rspec (the “standard tool” for Ruby/Rails testing) create more problems than solve IMHO.

                                                                                              2. 4

                                                                                                When fixing testable bugs you often need that “simplest possible test case” anyway, so you can identify the bug and satisfy yourself that you fixed it. A testing framework should be so effortless that you’d want to use it as the scaffold for executing that test case as you craft the fix. From there you should only be an assert() or two away from a shippable test case.

                                                                                                (While the sort of code I write rarely lends itself to traditional test cases, when I do, the challenge I find is avoiding my habit of writing code defensively. I have to remind myself that I should write the most brittle test case I can, and decide how robust it needs to be if and when it ever triggers a false positive.)

                                                                                                1. 3

                                                                                                  +1

                                                                                                  This here, at the start of the second paragraphs is the greatest misconception about tests:

                                                                                                  In order to be effective, a test needs to exist for some condition not handled by the code.

                                                                                                  A lot of folks from the static typing and formal methods crowd treat tests as a poor man’s way of proving correctness or something… This is totally not what they’re for.

                                                                                                  1. 1

                                                                                                    umm…..aren’t regressions bugs?

                                                                                                    1. 9

                                                                                                      Yes, regressions are a class of bug. The unwritten inference akkartik made when saying “I don’t write tests to avoid bugs” is that it is refers specifically to writing tests to pre-empt new bugs before they can be shipped.

                                                                                                      Such defensive use of tests is great if you’re writing code for aircraft engines or financial transactions; whereas if you’re writing a christmas tree light controller as a hobby it might be seen as somewhat obsessive compulsive.

                                                                                                      1. 0

                                                                                                        I-I don’t understand. Tests are there to catch bugs. Why does it matter particularly at what specific point in time the bugs are caught?

                                                                                                        1. 9

                                                                                                          Why does it matter particularly at what specific point in time the bugs are caught?

                                                                                                          Because human nature.

                                                                                                          Often times a client experiencing a bug for the first time is quite lenient and forgiving of the situation. When it’s fixed and then the exact same thing later happens again, the political and financial consequences of that are often much, much worse. People are intensely frustrated by regressions.

                                                                                                          Sure, if we exhaustedly tested everything up front, they might never have experienced the bug in the first place, but given the very limited time and budgets on which many business and enterprise projects operate, prioritizing letting the odd new bug slip through in favor of avoiding regressions often makes a hell of a lot of sense.

                                                                                                          1. 5

                                                                                                            Not sure if you are trolling …

                                                                                                            Out of 1000 bugs a codebase may have, users will never see or experience 950 of them.

                                                                                                            The 50 bugs the user hits though – you really want to make sure to write tests for them, because – based on the fact that the user hit the bug – if it breaks again, the user will immediately know.

                                                                                                            That’s why regression tests give you a really good cost/benefit ratio.

                                                                                                            1. 3

                                                                                                              A bug caught by a test before the bad code even lands is much easier to deal with than a bug that is caught after it has already been shipped to millions of users. In general the further along in the CI pipeline it gets caught, the more of a hassle it becomes.

                                                                                                              1. 3

                                                                                                                The specific point in time matters because the risk-reward payoff calculus is wildly different. Avoiding coding errors (“new bugs”) by writing tests takes a lot of effort and generally only ever catches the bugs which you can predict, which can often be a small minority of actual bugs shipped. Whereas avoiding regressions (“old bugs”) by writing tests takes little to no incremental effort.

                                                                                                                People’s opinion of test writing is usually determined by the kind of code they write. Some types of programming are not suited to any kind of automated tests. Some types of programming are all but impossible to do if you’re not writing comprehensive tests for absolutely everything.

                                                                                                                1. 2

                                                                                                                  The whole class of regression tests was omitted from the original article which is why it’s relevant to bring them up here.

                                                                                                                  1. 2

                                                                                                                    The article says “look back after a bug is found”. That sounds like they mean bugs caught in later stages (like beta testing, or in production).

                                                                                                                    If you define bugs as faults that made it to production, then faults caught by automated tests can’t be bugs, because they wouldn’t have made it to production. It’s just semantics, automated tests catch certain problems early no matter how you call them.

                                                                                                                    1. 1

                                                                                                                      I’m of the same opinion. It means that the reason why we’re writing tests is not to catch bugs in general, but specifically to catch regression bugs. With this mindset, all other catching of bugs is incidental.

                                                                                                              1. 5

                                                                                                                Planning a blog post on this, but briefly:

                                                                                                                • Organized with Digikam (much better than Darktable for large collections), album per year.
                                                                                                                • Darktable for RAW editing.
                                                                                                                • Synology NAS mounted with NFS, backed up to Backblaze with its CloudSync App.
                                                                                                                • Phone pictures synced to Dropbox and imported
                                                                                                                • Subset uploaded privately to Flickr to share with a few remote family members.
                                                                                                                • Printing from ProDPI (their app the only reason I dual boot Windows besides gaming)
                                                                                                                1. 2

                                                                                                                  Very similar to my setup, except:

                                                                                                                  • Unraid for NAS
                                                                                                                  • Syncthing for syncing phone pics to the NAS (also for syncing photos I’m currently editing to local drive)
                                                                                                                  • Subset uploaded to Nextcloud for family sharing
                                                                                                                  • Don’t do my own printing
                                                                                                                  1. 1

                                                                                                                    Oh, and files named like 2020-01-31-Event-Name-001.RAW

                                                                                                                    1. 5
                                                                                                                      1. 3

                                                                                                                        Lol he forgot case 6:

                                                                                                                                case 5:
                                                                                                                                    //Demo over
                                                                                                                                    advancetext = true;
                                                                                                                                    hascontrol = false;
                                                                                                                                    state = 6;
                                                                                                                                    break;
                                                                                                                                case 7:
                                                                                                                        

                                                                                                                        Seriously though I can’t imagine writing 4099 cases.

                                                                                                                        1. 2

                                                                                                                          It skips tons of numbers all over the place. E.g, goes from 2514 to 3000. Seems like much of it was intentional? Either way, there are way fewer than 4099 cases.. not that that makes it much better :).

                                                                                                                        2. 3

                                                                                                                          If that’s not “Doing Things The Hard Way”, I don’t know what is :-)

                                                                                                                          1. 3

                                                                                                                            Haha, reminds me of the thousand case switch statement in Undertale’s source. Game code really can be scary – it’s seems like that’s especially true for 2D games for some reason…

                                                                                                                          1. 4

                                                                                                                            “Mattermost… Lacks ability to mute/ignore an individual user.”

                                                                                                                            Didn’t see that coming. That’s worth a pull request.

                                                                                                                            1. 16

                                                                                                                              Don’t expect it getting fixed (https://github.com/mattermost/mattermost-server/issues/6320) in this new open-core world!

                                                                                                                              1. 8

                                                                                                                                Wow. I was thinking of setting up a mattermost instance for my org, but reading this thread makes me think twice. This is such an anti-user stance that I don’t want to use the product.

                                                                                                                                It’s their product so they can do what they wish, but it’s unlike my open source experiences. It’s not a healthy open source project as the decisions are made by a company for their own reasons rather than the project.

                                                                                                                                1. 6

                                                                                                                                  Uh, what? It’s a paid feature? The one that open communities need the most?

                                                                                                                                  1. 4

                                                                                                                                    Seems community experience matters least to mattermost.

                                                                                                                              1. 8

                                                                                                                                You should use a distro that ships updates to you at the pace you wish, and let your users do the same.

                                                                                                                                Many users want/need to use bleeding edge versions faster than distros can package them. By making it inconvenient to install bleeding edge versions, you are also not letting your users get updates at the cadence they wish. So maybe the title should be something like “Developers should rely on distributions in addition to distributing their own software”.

                                                                                                                                1. 1

                                                                                                                                  llvm-9-dev package in particular. This is due to lit, LLVM Integrated Tester

                                                                                                                                  Looking on my FreeBSD laptop: llvm-lit70 is 2.7, llvm-lit80 and 90 are 3.6. It’s odd that Debian would use 2.7 for something as new as llvm9.

                                                                                                                                  Projects I care about, for example Firefox, uses Mercurial

                                                                                                                                  git-cinnabar works pretty well btw, moz-phab explicitly supports it.

                                                                                                                                  1. 2

                                                                                                                                    Looking at git-cinnabar’s README, it seems to require Python 2. Or is README outdated?

                                                                                                                                    1. 1

                                                                                                                                      Yeah, porting is in progress, and it calls into mercurial itself. This recommendation was not specifically about py2, just as a “not using hg” thing :)

                                                                                                                                      1. 3

                                                                                                                                        I actually prefer hg to git, as a matter of UI. In any case, thanks!

                                                                                                                                        1. 1

                                                                                                                                          Mercurial does have an experimental Python 3 build you can use:

                                                                                                                                          $ HGPYTHON3=1 pip3 install mercurial
                                                                                                                                          

                                                                                                                                          Though, expect some rough edges (especially around extensions). However, Firefox development itself requires Python 2 and will continue to do so past the EOL date.

                                                                                                                                          Edit: According to ngoldbaum above, looks like it might be the default with the latest release.

                                                                                                                                  1. 5

                                                                                                                                    Friendly warning to anyone manually updating, Firefox will trash any settings you have regarding updating. So if your machine is set for manual updates, and you install Firefox 70, it changes to automatic updates. Mozilla refuses to fix this:

                                                                                                                                    https://bugzilla.mozilla.org/show_bug.cgi?id=1576400

                                                                                                                                    1. 22

                                                                                                                                      Firefox works fine when managed by, for example, a Linux distribution’s package manager. This necessarily means that the auto updater is disabled. So this use case is handled fine. It’s also open source and Mozilla is non-profit, so I’m not sure why you’ve chosen Firefox as your evil straw man. Your bug report is not productive and your childish antics have only wasted developers’ time, who have plenty of actual work to do.

                                                                                                                                      1. 2

                                                                                                                                        I think the bug report is legitimate, as are the explanation, resolution and workaround that have been provided. You reply seems unnecessarily harsh to me, though I agree the submitter accepting the Firefox response would be appropriate.

                                                                                                                                      2. 18

                                                                                                                                        Tbh your behaviour on that bug wasn’t really acceptable. When a maintainer closes an issue please don’t re-open it simply because you disagree. As for the “bug” itself, you were given two possible workarounds. Yet for some reason you still expect developers to spend their time catering to your very obscure edge case.

                                                                                                                                        1. 9

                                                                                                                                          Thats interesting framing.

                                                                                                                                          They broke the feature. Its not me asking for something new. Its me asking them to restore the previously working behavior. Before, if you wanted to permanently disable updates, you just go into about:config and toggle, and done. Now you have to manually create a JSON file, a file which is removed the next time you manually update. Just because you call it “very obscure edge case”, doesnt make it so.

                                                                                                                                          I imagine, especially in Lobster community, and especially in the current environment of well deserved distrust with tech companies, that its not as obscure as you think or hope it is.

                                                                                                                                          LOL just checked your bio:

                                                                                                                                          Engineering productivity at Mozilla

                                                                                                                                          https://lobste.rs/u/ahal

                                                                                                                                          1. 10

                                                                                                                                            There is an XKCD which is precisely applicable to your situation.

                                                                                                                                            Your use case is an edge case as far as the Mozilla developers are concerned & since it’s a tiny, tiny minority of users that are relying on it (i.e., you) then the rest of the userbase comes first. Consider yourself fortunate that the mozilla developers were kind enough to tell you how to do what you want to do in future.

                                                                                                                                            This is the price of using a piece of software with millions of users in a unique fashion I’m afraid - your use case is never going to trump those millions of users.

                                                                                                                                            1. 11

                                                                                                                                              You seem to be under the impression that there’s a smoky back room at Mozilla HQ where they twirl their mustaches and cackle about how they’re deliberately taking away your freedom. Admittedly it’s been some years since I worked for Mozilla, and I was A) remote employee and B) didn’t work on the browser, but if there is such a room I certainly never heard about it, let alone got invited to go see it.

                                                                                                                                              And what I think from reading that bug report is that you used a feature (the distribution directory) for a purpose it wasn’t intended for, and then were unhappy when it behaved as documented, because it turned out not to support the use case you want. Your use case is apparently very important to you personally, but that doesn’t mean it has to be important to them, or that they have to support it. They have the freedom to decide not to support your use case; you have the freedom not to use their software. And in fact you’re better off than you’d be with some browsers, because you also have the freedom to grab the source, modify it to suit your use case, and use and distribute your fork. But you don’t and never will have a right – moral, legal, or otherwise – to force them to support your use case.

                                                                                                                                              1. 4

                                                                                                                                                You seem to be under the impression that there’s a smoky back room at Mozilla HQ where they twirl their mustaches and cackle about how they’re deliberately taking away your freedom.

                                                                                                                                                That is a strawman.

                                                                                                                                                Changes like this always have a reason. Usually, someone runs a study, or reviews a retrospective, and finds that like 20% (I don’t know the number, but I’m sure I could find it if I looked) of Firefox users had auto-updates disabled by some adware installer or whatever. And the only way Mozilla knows of preventing other software running on the same Windows machine from changing a setting is to hardcode it into the executable, where the Windows code integrity system will ensure it doesn’t get changed.

                                                                                                                                                That doesn’t change the fact that the solution here is removing power from the end user in ways that are frequently quite harmful. I’m pointing directly at Page Translator here. That kind of “collateral damage” is extremely messed up.

                                                                                                                                                Hard-coding auto-updates into the EXE probably isn’t that bad (running an outdated browser with known CVEs on the Internet is just stupid). Neither is the whole practice of shipping a blocklist (obviously, allowing the blocklist to be disabled in about:config, where adware installers can change it, would completely defeat the purpose of the blocklist). The fact that it ended with an add-on that clearly isn’t adware getting blocked, on the other hand, is a scandal.

                                                                                                                                                1. 7

                                                                                                                                                  I read the Bugzilla bug linked from that post, and it appears that there was a policy change from “side-loaded extensions can execute remote-source code” to “they can’t”.

                                                                                                                                                  I have a hard time seeing that as “a scandal”. Especially given how many times we’ve seen the pattern of an extension/add-on that used to be safe and gets taken over by an entity who abuses the extension’s privileges to do malicious things.

                                                                                                                                                  So it seems there’s been a decision that nobody gets trusted to execute remote code from an add-on, and while there are certainly going to be examples like the translator add-on that intuitively feel like they should get special exceptions to that policy, special exceptions for the “good” add-on authors don’t scale.

                                                                                                                                                  Meanwhile, the “freedom” arguments almost always really boil down to demanding that someone else write software in a way that the “freedom” supporter prefers. And I don’t see any principle of software freedom which supports forcing other people to write the things you want.

                                                                                                                                                2. 4

                                                                                                                                                  You seem to be under the impression that there’s a smoky back room at Mozilla HQ where they twirl their mustaches and cackle about how they’re deliberately taking away your freedom.

                                                                                                                                                  You missed last week’s meeting, BTW.

                                                                                                                                                  1. 3

                                                                                                                                                    We mostly talked about you and then assigned all the bugs to you. This is what happens when you miss a meeting.

                                                                                                                                                3. 7

                                                                                                                                                  As an industry, the risk of users being on outdated versions of software is huge. It is prudent to take measures to auto-update and ensure that users are on the latest versions of software to reduce this risk. An inconvenience to you is a huge boon to me, and the industry as a whole.

                                                                                                                                                  1. 4

                                                                                                                                                    Thats a false choice. If a user understands the consequences, and is warned loud and clear before making this type of change, they should be allowed to do so. Thats why sudo exists and UAC on Windows.

                                                                                                                                                    1. 4

                                                                                                                                                      TBH users been trained to click “Allow” and “I Agree” until the dialogs go away.

                                                                                                                                                      Those decisions such as enabling auto-updating to everyone are based on statistics. They are much more likely to help than to hinder. Just displaying a dialog box is not enough these days.

                                                                                                                                                      I too would like if it was simple toggle somewhere in settings to disable updates, but Firefox is a more complex project than people realize and there is a ton of checks, balances, and teams working on different aspects of what is in essence a little virtualized operating system with a poor choice of view model for apps.

                                                                                                                                                      I understand why you’re frustrated, I have my pet bugs too. The good thing is that you can change stuff, you can engage in constructive dialog and send a patch. And like everyone, you need to be prepared for the team who develop that app not to want your patch or feature.

                                                                                                                                                      The good news is that even if they don’t want that feature, there is nothing stopping you from building your own build at home or forking. Still, I’d think that if you’re forking because you don’t want auto-update because you distrust big tech, then how the hell do you expect a single person to maintain security updates for a browser? I think auto update is really good and brings in a ton of fixes in.

                                                                                                                                                      1. 2

                                                                                                                                                        That’s a bad analogy. You should probably thinking about how the browsers that come with Windows get updated. Mozilla needs to weigh multiple issues and stakeholders here. It does not serve them well to cater to edge cases which significantly increase risk.

                                                                                                                                                        This is also not a user “rights” issue like your language suggests. Your rights are to take the open source code and make your own build if what Mozilla provides doesn’t work for you. Your time might be better spent looking at the overall update space and lobbying for solution that gives you more of what you want while aligning to the high-level goals of Mozilla.

                                                                                                                                                      2. 3

                                                                                                                                                        I don’t think users end up in about:config without meaning to and accidentally turn off automatic updates. Mozilla’s response to this issue seems silly, since they should never have removed the about:config switch in the first place. At the same time, Mozilla’s decision to remove the distribution directory seems to positively affect a large number of non-technical users who would receive a custom copy of Firefox (maybe alongside another piece of software) and then try to install vanilla Firefox.

                                                                                                                                                        Good for non-technical users, bad for corporations trying to unify rollouts of software updates. Users like @cup are probably insignificant to Mozilla in making this decision (as they represent a very small vocal minority of the Firefox userbase).

                                                                                                                                                        1. 8

                                                                                                                                                          I don’t think users end up in about:config without meaning to and accidentally turn off automatic updates.

                                                                                                                                                          Third-party software, installed on the same computer, does that. A lot of the blocked add-ons have block descriptions like “overrides search behavior without user consent or control”. Because it’s adware.

                                                                                                                                                          I’ve seen people get infected with that kind of thing; it comes bundled with another application that they installed. If it’s in about:config, then the third-party installer can just change it. If it’s hardcoded in the EXE, then the app can’t change it without re-signing Firefox, which will get their signing key revoked by Microsoft and Apple, and likely get them sued by Mozilla for trademark infringement.

                                                                                                                                                          1. 6

                                                                                                                                                            That’s sneaky. I guess the fact that I wasn’t aware of that goes to show that Mozilla had more of a point here than I thought they did. Thank you for informing me.

                                                                                                                                                            I know that sandboxing on the desktop would solve this particular problem, but I’m afraid of the consequences of that on software development and particularly people learning to code. It’s pretty difficult to be exposed to real-world programming on a locked-down mobile device.

                                                                                                                                                            1. 1

                                                                                                                                                              I don’t think that’s a problem.

                                                                                                                                                              • There are perfectly good ways that an operating system vendor could allow users to turn off the sandbox without allowing arbitrary applications to do that. I particularly like the Chromebook method where you use a literal jumper on the motherboard to switch it off; it’s really just a skewmorph, to make sure the human understands that they’re doing something to their computer at a low level, but it seems effective enough.

                                                                                                                                                                Unfortunately, Mozilla’s attempt to ship an actual operating system didn’t go anywhere, so they never got the chance to implement anything like that.

                                                                                                                                                              • Breaking out of the sandbox is really only necessary if you want to do systems programming. I love systems programming, but most software is application code, and most of that is written with sandboxed systems like web-based JavaScript and spreadsheet macros in Excel. I can write that kind of stuff on locked-down mobile devices right now.

                                                                                                                                                          2. 1

                                                                                                                                                            Companies trying to unify rollouts of software is part of the problem. Many major malware incidents get investigated and the findings include well meaning administrators who wished to unify and manage updates - but, failed to update in certain situations.

                                                                                                                                                            We shouldn’t maintain the pretense that admins will get this right 100% of the time. They are people and they will fail. Their efforts are best spent elsewhere, including work to encourage devs to test compatibility, giving admins more of a stake in software acquisitions, etc.

                                                                                                                                                        2. 5

                                                                                                                                                          Thanks for reporting this behavior, and also thank you for pointing out the potential conflict of interest of the person who criticized you for the way you reported it. It’s really unfortunate that the Mozilla devs are optimizing for silently updating the browser and making it difficult for users to disable this behavior. If anyone is aware of a fork of Firefox that doesn’t do this, I’d love to hear about it.

                                                                                                                                                          1. 16

                                                                                                                                                            The initial report was fine, it’s the way they kept reopening that isn’t

                                                                                                                                                    1. 20

                                                                                                                                                      Sad :-( I still think Mercurial far better meets the needs of most people, and that the chief reasons for git’s popularity are that Linus Torvalds wrote it, GitHub, and that Linus Torvalds wrote it.

                                                                                                                                                      That said, I did end up switching from BitBucket/mercurial to GitHub/git a few years ago, simply because it’s the more pragmatical thing to do and I was tired of paying the “mercurial penalty” in missed patches and the like. I wrote a thing about it a few ago: https://arp242.net/git-hg.html

                                                                                                                                                      1. 6

                                                                                                                                                        Why do you think hg is better for most people? I honestly find it vastly more complex to use.

                                                                                                                                                        1. 15

                                                                                                                                                          The hg cli is light years ahead of git in terms of intuitiveness.

                                                                                                                                                          1. 6

                                                                                                                                                            I’d say it’s years behind ;)

                                                                                                                                                            1. 10

                                                                                                                                                              How long have you been using Mercurial? I find most people who dislike Mercurial’s UI, are mainly coming from years of experience with Git. I disliked Mercurial at first as well, but after a few years of forced usage it clicked. Now I appreciate how simple and well composed it is and get frustrated whenever I need to look up some arcane Git flag on StackOverflow.

                                                                                                                                                              In general, I’d say you need several years experience with both Git and Mercurial before you can draw a fair comparison.

                                                                                                                                                              1. 3

                                                                                                                                                                I used mercurial for about 2 years before using git.

                                                                                                                                                                1. 3

                                                                                                                                                                  Sorry if my post came across a bit accusatory (not my intent). In that case I guess to each their own :).

                                                                                                                                                                2. 3

                                                                                                                                                                  but after a few years of forced usage it clicked.

                                                                                                                                                                  I’m pretty sure that git clicked for me in a much shorter timeframe.

                                                                                                                                                                  1. 1

                                                                                                                                                                    Me too, but I know many (otherwise perfectly competent engineers) 5-10 years in who still don’t get it and aren’t likely to.

                                                                                                                                                                3. 9

                                                                                                                                                                  I’m going to strongly disagree. I’ve used git intensively and I find Mercurial to be a well-designed delight. I’ve run across features that Mercurial supports flawlessly, with a nice UI, and Git requires a hacky filter-branch that takes hours to run and doesn’t even behave correctly.

                                                                                                                                                                  IMO, a lot of the badness in projects is down to Git badness. it doesn’t scale and people feel compelled to break things down into tiny sub-projects.

                                                                                                                                                                  The only reason Git is winning anything is GitHub’s support of it.

                                                                                                                                                                  1. 3

                                                                                                                                                                    The only reason Git is winning anything is GitHub’s support of it.

                                                                                                                                                                    Why then was github ever used in the first place? Kind of a strange proposition.

                                                                                                                                                                    1. 1

                                                                                                                                                                      Network effect of the social network is pretty important.

                                                                                                                                                                      1. 1

                                                                                                                                                                        Why would there ever be a network effect in the first place if git was so bad that github was the only reason to use it. I get that the argument technically holds but it seems very unlikely.

                                                                                                                                                              2. 8

                                                                                                                                                                You find mercurial more complex to use than git? That’s an… unusual view, to say the least. The usual recitation of benefits goes something like this

                                                                                                                                                                • Orthogonal functionality in hg mostly has orthogonal commands (compare git commit, which does a half-dozen essentially unrelated different things).
                                                                                                                                                                • hg has a somewhat more uniform CLI (compare git branch -a, git remote -v, git stash list).
                                                                                                                                                                • hg either lacks or hides a bunch of purportedly-inessential and potentially confusing git functionality (off the top of my head, partial commits aren’t baked into the flow a la git’s index/staging area; and rebasing and history rewriting are hidden behind an extension).

                                                                                                                                                                I personally prefer git, but not because I think it’s easier or simpler; I’m more familiar with it, and I find many of those purportedly-inessential functions to be merely purportedly, not actually, inessential.

                                                                                                                                                                1. 5

                                                                                                                                                                  One more thing I like about mercurial that the default set of commands is enough for >90% of people, and that everything else is “hidden” in extensions. This is a very different approach than git’s “kitchen-sink” approach, which gives people 170 commands (vs. Mercurial’s 50, most of which also have much fewer options/switches than git).

                                                                                                                                                                  Git very much feels like “bloatware” compared to Mercurial.

                                                                                                                                                                  1. 3

                                                                                                                                                                    I used git for many years, and then mercurial (at FB) ever since we switched over. The cli interface for mercurial is definitely more sensible, crecord is delightful, and overall it was fine. But I was never able to build a mental model of how mercurial actually worked. git has a terrible interface, but it’s actually really simple underneath.

                                                                                                                                                                    1. 1

                                                                                                                                                                      I didn’t think that underneath they were different enough to matter much. What differences do you mean? I guess there’s git’s remote tracking stuff. Generally, it seems like they differ in how to refer to and track commits and topological branches, locally and remotely. (IMHO, neither has great mechanisms for all the things I want to do.) Mercurial is slightly more complex with the manifest, git is more complex with the staging area that feels absolutely critical until you don’t have it (by using hg), at which time you wonder why anyone bothers with it. I’m a heavier hg user than git user, but that’s about all I can come up with.

                                                                                                                                                                    2. 2

                                                                                                                                                                      You find mercurial more complex to use than git?

                                                                                                                                                                      I actually found – in a professional shop – mercurial far more complex to use. Now, the fact is that mercurials core – vanilla hg is IMHO absolutely without doubt vastly superior to git. Git keeps trying to make the porcelain less painful (including a release just a bit ago) – but I still think it is ages behind.

                                                                                                                                                                      The problem is – I never used vanilla mercurial in a professional environment. Not once. It was always mercurial++ (we used $X extension and $Y extension and do it like $Z) which meant even if I knew hg, I felt painfully inexperienced because I didn’t know mq, share, attic, collapse, evolve, and more… not to mention both the bigger shops I worked with using mercurial has completely custom workflow extensions. I suspect part of this was just the ease of writing mercurial extensions, and part of it was wanting to fall into a flow they knew (mq, collapse). But, regardless of how we got there, at each place I effectively felt like I had to relearn how to use the version control system entirely.

                                                                                                                                                                      As opposed to git, wherein I can just drop in and work from day one. It might be less clean, it might be more finicky and enable things like history rewriting by default. But at the end of the day, the day I start, I know how to generally function.

                                                                                                                                                                      I am curious how Mercurial would have faired if instead of shipping default extensions you had to turn on – if they had just baked a little more functionality, to try to cover the 80% of what most shops wanted (not needed, I think most could have gotten by with what vanilla mercurial had) – if the shop to shop transition would have been easier.

                                                                                                                                                                      1. 2

                                                                                                                                                                        mq, I think, is responsible for many of the “mercurial is too complicated” complaints people have. Evolve, if it ever stabilized and ships with core hg would really enable some killer capabilities. Sadly for social and technical reasons it’s perpetually in beta.

                                                                                                                                                                      2. 1

                                                                                                                                                                        whoa, no index? Admittedly I didnt really use index as intended for several years, but now its an important part of my workflow.

                                                                                                                                                                        1. 1

                                                                                                                                                                          In Mercurial, commits are so much easier to make and manipulate (split, fold, move), that you don’t miss the index. The index in git is just a limited special cased “commit”.

                                                                                                                                                                          1. 3

                                                                                                                                                                            The index in git is just a limited special cased “commit”.

                                                                                                                                                                            I disagree.

                                                                                                                                                                            The index is a useful way to say “these lines of code are ready to go”. If you are making a big commit, it can be helpful to add changes in logical blocks to the index as you go. Then the diff is not polluted with stuff you know is already fine to commit.

                                                                                                                                                                            You might say, “why not just make those changes their own commits, instead of trying to do one big commit?” That’s a valid question if you are talking about a 200 line commit or similar, but sometimes the “big” commit is only 50 lines. Instead of making a bunch of one line or few line commits, its helpful to “git add” small chunks, then commit at the end.

                                                                                                                                                                            1. 0

                                                                                                                                                                              You can as well amend to a commit instead of adding to the index.

                                                                                                                                                                              1. 3

                                                                                                                                                                                True, but all thats doing is bastardizing the commit process. If you are committing a one line change, just to rebase minutes or hours later, thats not a commit.

                                                                                                                                                                                Rebase to me is for commits that were intended to be commits, but later I decided it would be better to squash or change the history. The index is for changes that are never meant to be a full commit on their own.

                                                                                                                                                                                1. 1

                                                                                                                                                                                  Having a distinction between draft and published phases in mercurial I think makes it easier to rewrite WIP work. There’s also a number of UI affordances for it. I don’t miss the index using mercurial. There’s also academic user interface research that shows the index is a big conceptual barrier for new users.

                                                                                                                                                                                  1. 1

                                                                                                                                                                                    There’s also academic user interface research that shows the index is a big conceptual barrier for new users.

                                                                                                                                                                                    this isnt really a valid point in my opinion. some concepts are just difficult. if some goal can be achieved in a simpler way i am on board, but I am not a fan of removing useful features because they are hard to understand.

                                                                                                                                                                                    1. 1

                                                                                                                                                                                      But the point is the index is hard to understand and unnecessary.

                                                                                                                                                                                      There’s no need to have a “commit process”. Just commit whatever you want and rewrite/amend it for as long as you want. As long as your commits are drafts, this is fine.

                                                                                                                                                                                      Is the problem the word “commit”? Does it sound too much like commitment?

                                                                                                                                                                                      There’s no need to have two separate ways to record changes, an index, and a commit, each with different degrees of commitments. This is multiplying entities beyond necessity.

                                                                                                                                                                                      1. 1

                                                                                                                                                                                        That’s your opinion. The index is quite useful to me. I’d rather make a proper commit once it’s ready, not hack together a bunch of one line commits after the fact.

                                                                                                                                                                                        1. 2

                                                                                                                                                                                          The index is a commit. Why have two separate ways of storing the same sort of thing?

                                                                                                                                                                                          Also, it’s not my opinion that it’s hard to understand and unnecessary; it’s the result of usability studies:

                                                                                                                                                                                          https://spderosso.github.io/oopsla16.pdf

                                                                                                                                                                                          You’re also not “hacking together” anything after the fact. There’s no more hacking together after the fact whether you use git amend (hypothetically) or git add. Both of those mean, “record additional changes”.

                                                                                                                                                                                          1. 0

                                                                                                                                                                                            It seems you have a fundamental misunderstanding of the difference between add and commit. Commit requires a commit message.

                                                                                                                                                                                            1. 1

                                                                                                                                                                                              This isn’t a useful distinction. You can also create commits with empty commit messages in both git and Mercurial.

                                                                                                                                                                                              With both git and Mercurial you can also amend commit messages after the fact. The index in git could well be implemented as a commit with an empty commit message that you keep amending and you wouldn’t notice the difference at all.

                                                                                                                                                                                              1. 1

                                                                                                                                                                                                you keep amending and you wouldn’t notice the difference at all.

                                                                                                                                                                                                yeah, you would. again it seems that you either dont know git, or havent used it in some time. when you amend a commit, you are prompted to amend the message as well. another facet that doesnt exist with git add, because add doesnt involve a message.

                                                                                                                                                                                                if you wish to contort git internals to suit your agenda thats fine, but git add has perfectly valid use cases.

                                                                                                                                                                                                1. 0

                                                                                                                                                                                                  you are prompted to amend the message as well.

                                                                                                                                                                                                  This is UI clutter unrelated to the underlying concepts. You can get around that with wrappers and aliases. I spoke of a hypothetical git amend above that could be an alias that avoids prompting for a commit message.

                                                                                                                                                                                                  Don’t git users like to say how the UI is incidental? That once you understand the data structures, everything else is easy? The UI seems to have locked you into believing the index is a fundamentally necessary concept, but it’s not. It’s an artifact of the UI.

                                                                                                                                                                                                  1. 1

                                                                                                                                                                                                    The UI seems to have locked you into believing the index is a fundamentally necessary concept, but it’s not.

                                                                                                                                                                                                    Nothing has locked me into believing its a necessary concept. Its not necessary. In fact, for about 7 years I didnt use the index in any meaningful way.

                                                                                                                                                                                                    I think what you are missing is that Im not compelled to use it because its the default workflow, I am compelled to use it because its useful. It helps me accomplish work more smoothly than I did previously, when I would just make a bunch of tiny commits because I didnt understand the point of the index, as you still dont.

                                                                                                                                                                                                    The argument could be made to move the index into an option, like somehow make commit only the default workflow. Im not sure what that would look like with Git, but I dont think its a good idea. It would just encourage people to make a bunch of smaller commits with meaningless commit messages.

                                                                                                                                                                                              2. 1

                                                                                                                                                                                                You have a set of things you want to accomplish. With git, you have N+1 concepts/features/tools to work with. With hg, you have N (because you drop the index). That means you have to expand your usage of the remaining N.

                                                                                                                                                                                                Specifically, since you no longer have this extra index concept, you now expand commits to cover the scenarios you need. Normally, you’d make an initial commit and then amend a piece at a time (probably with the interactive curses hunk selector, which is awesome.) If you’re unsure about some pieces, or you have multiple things going on that you’d like to end up in separate commits, you can always make a series of microcommits and then selectively collapse them later. (In practice, it’s even easier than this, because of the absorb extension. But never mind that.)

                                                                                                                                                                                                Yes, those microcommits need commit messages. They don’t need to be good ones, because they’re temporary until you squash them out of existence. I usually use a one word tag to specify which of the separate final commits they belong to. (If you don’t have separate final commits, you may as well amend, in which case no messages are needed.)

                                                                                                                                                                                                …or on the other hand, maybe mercurial ends up with N+1 concepts too, because phases really help in keeping things separate. As I understand it, one reason git users love the index is because it keeps rapidly changing, work in progress stuff separate from mostly set in stone commits. Phases perform the same purpose, but more flexibly, and the concepts are more orthogonal so they compose better. In my opinion.

                                                                                                                                                                      3. 6

                                                                                                                                                                        I never particularly liked git and find it unintuitive, too.

                                                                                                                                                                        I wouldn’t consider myself a git poweruser. But whenever I had to work with alternatives I got the feeling that they’re just inferior versions of git. Yeah, maybe the usage was a bit more intuitive, but all of them seemed to lack things that I’d consider really basic (bisecting - hg has that, but e.g. svn has not - and shallow copying - not avaible in hg - are examples what I often miss).

                                                                                                                                                                        1. 3

                                                                                                                                                                          Mercurial was actually my first DVCS, and like you I ended up switching to git not out of a sense that it was technically better, just more pragmatic. For me, the change is more of a mixed bag, though. It is definitely the case that Mercurial’s UI is worlds better, and revsets in particular are an amazing feature that I sorely miss, but when I made the switch I found that the way git handles branches was much more intuitive to me than Mercurial’s branch/bookmark system, and that the affordances around selectively editing commit histories were very much worth the risk in terms of being able to manage the narrative of a project’s history in a way that makes it more legible to others. Ultimately, I found that git’s advantages outweighed its downsides for my use case, since learning its UI idiosyncrasies was a one-time cost and since managing branches is a much more common occurrence for me than using revsets. That said, I think this is a really unfortunate development.

                                                                                                                                                                          1. 2

                                                                                                                                                                            I occasionally convert people’s git repos to hg for my use. Stubborn like that.

                                                                                                                                                                          1. 9

                                                                                                                                                                            I’ve given this a try, and it looks pretty nice, and is fast. However, it doesn’t (yet?) have support for extensions like the regular mobile Firefox, and its built-in ad blocking is deeply inadequate for my needs. Regular Firefox on Android supports uBlock Origin.

                                                                                                                                                                            1. 5

                                                                                                                                                                              Extension support is coming, though I’m not aware of any official ETA.

                                                                                                                                                                            1. 24

                                                                                                                                                                              In other words, “Let’s all use Chromium but somehow Google isn’t in charge”. Controlling the web platform is power, and Google isn’t going to just hand over the keys to its biggest rivals. Heck, Blink was forked from Webkit in the first place because Google and Apple couldn’t see eye to eye.

                                                                                                                                                                              The assumption that if enough non-Google developers start working on Chromium that somehow they can outvote Google is also flawed since having everyone on Chromium gives Google more power, not less. At least now there is an alternative that browsers like Brave/Vivaldi could theoretically switch to (given that Mozilla is finally starting to prioritize Gecko embedding). If this proposal comes to pass the last check on Google’s power will be gone, and if they say “get bent” there will be nothing anyone can do about it.

                                                                                                                                                                              While it might be tempting to think that Microsoft will be able to wrest some control of Chromium away, the reality is that they made the switch out of desperation not desire. They have lost all their chips at the table and from now on will only be able to push the web in directions that Google agrees with.

                                                                                                                                                                              1. 10

                                                                                                                                                                                Yeah, if you needed any more reasons about how this is a terrible idea you have no further to look than Google’s lockdown of their DRM components to prevent competition from another OSS browser: https://boingboing.net/2019/05/29/hoarding-software-freedom.html

                                                                                                                                                                                1. 1

                                                                                                                                                                                  How do you feel about, say, https://iridiumbrowser.de/ ?

                                                                                                                                                                                  1. 7

                                                                                                                                                                                    It’s still fundamentally chromium though, isn’t it? They may have “stripped out the functionality which exposes data to others in a way [they] don‘t like”, but in all likelihood the project will continue to merge changes from chromium that are interesting, useful, and or necessary. Iriduimbrowser isn’t going to, for example and the sake of this discussion, write their own http3/quic implementation, right? By building on the chromium project they are still going in whatever direction that Google mandates only they’re stripping out privacy-oriented bits that they’ve deemed naughty. It looks like an interesting project, I like the transparency, and it looks like something I’d personally choose over chrome/chromium. However, the project as a whole, being a chromium derivative, remains entirely dependent on Google now and going forward.

                                                                                                                                                                                1. 9

                                                                                                                                                                                  I wouldn’t be so quick to write off static websites. The use cases you listed are entirely do-able with a static site, and modern generators (hugo, jekyll, pelican) are miles ahead of where static site generation was even a few short years ago.

                                                                                                                                                                                  I serve my blog with Github Pages, so deploying is git push (wrapped in a script that does some other stuff like re-generating the static files). Things like comments (or photo galleries) can be embedded if you really want to go that route. Though there are often clever ways to accomplish stuff like this anyway (e.g staticman for comments).

                                                                                                                                                                                  1. 8

                                                                                                                                                                                    modern generators (hugo, jekyll, pelican) are miles ahead of where static site generation was even a few short years ago.

                                                                                                                                                                                    I’m curious what innovations you’ve seen in static site generators in the past few years? I haven’t seen anything fundamentally different, but I’m curious if there’s something I’m missing!

                                                                                                                                                                                    1. 1

                                                                                                                                                                                      Me too.

                                                                                                                                                                                      I used to use and love Pelican for my blog, and I still have the utmost respect for that project and its maintainers (The code is solid and very approachable - something I really value.)

                                                                                                                                                                                      But I have zero web design talent and couldn’t get it looking the way I wanted, and also posting from a mobile device is pretty painful, so I turned back to the dark side and now use wordpress.com.

                                                                                                                                                                                  1. 16

                                                                                                                                                                                    Excellent read! A huge part of transitioning into more senior roles is just letting things go. Style doesn’t have to be perfect, code coverage doesn’t have to be 100%, the system doesn’t have to be designed to your exact liking. It’s ok to hold yourself to a high standard, just don’t try to push that standard on others. Being senior (and beyond) means being able to work alongside people who have different values and priorities than you.

                                                                                                                                                                                    1. 6

                                                                                                                                                                                      Firefox Monitor uses haveibeenpwned.com as it’s source and seems to provide exactly the same functionality. It’s not clear to me what the value-add is?

                                                                                                                                                                                      1. 15

                                                                                                                                                                                        There are a couple value adds:

                                                                                                                                                                                        1. Trust via brand recognition. I’ve asked my parents to check haveibeenpwned.com before and it took me 10 minutes to convince them it was safe to visit. I love the service, but the domain name alone makes it unsuitable for the vast majority of internet users.

                                                                                                                                                                                        2. Discoverability. Only a tiny minority has ever heard of haveibeenpwned and word of mouth won’t reach nearly as many people as a Firefox can.

                                                                                                                                                                                        Edit:

                                                                                                                                                                                        There’s also the possibility of future integrations with e.g Firefox Lockwise.

                                                                                                                                                                                        1. 8

                                                                                                                                                                                          Haveibeenpwned is English only. Monitor is available in dozens of languages.

                                                                                                                                                                                          The audience is non-technical. Being affected by a breach causes a lot of uncertainty and fear in a people. Monitor helps them understand what they need to do (basic password hygiene) in their own language. Tldr: localization, simplification, emails for new breaches.

                                                                                                                                                                                          1. 5

                                                                                                                                                                                            I guess the only difference is that Mozilla gets to collect your email address and (per their privacy policy) basically send you things and share it with salesforce and amazon:

                                                                                                                                                                                            If you sign up, we (and our email providers SalesForce and Amazon) receive your email address to contact you in connection with the Firefox Monitor Service, which includes Full Reports, Breach Alerts, and Safety Tips. You can unsubscribe at any time.

                                                                                                                                                                                            1. 2

                                                                                                                                                                                              @ahal put it very well.

                                                                                                                                                                                              Aaaand people use their emails to sign up for really shady services, which outsource their email to one of these Amazon/Sendgrid/Mailchimp companies anyway. The GDPR (allegedly, at least) helps a bit, but I think the bigger damage has been done a priori.

                                                                                                                                                                                              Mozilla’s business is not in mail delivery, though in this case it sounds like they could, and maybe should, take care of it themselves.

                                                                                                                                                                                              I’m taking this as a sign of them seeing outsourcing as a lesser evil and risk than hiring someone to maintain Postfix and in-house tooling.

                                                                                                                                                                                            2. 1

                                                                                                                                                                                              In Troy Hunt’s announcement from last year, he mentions that only 0.06% of pwned email addresses are signed up to the notification service.

                                                                                                                                                                                            1. 13

                                                                                                                                                                                              I really need to make the effort and transition to FF.

                                                                                                                                                                                              1. 21

                                                                                                                                                                                                It’s really not an effort. Firefox is just a better browser at this point.

                                                                                                                                                                                                1. 14

                                                                                                                                                                                                  Yet Firefox gets a LOT of hate for…. Just about everything.

                                                                                                                                                                                                  Given that it’s the only 100% open source browser with any market share to speak of, I struggle to understand people’s stance on this.

                                                                                                                                                                                                  1. 6

                                                                                                                                                                                                    Higher expectations, I suppose

                                                                                                                                                                                                    1. 4

                                                                                                                                                                                                      Yeah I think that’s a big part of it. Most people who like to throw shade at Firefox prefer some niche browser or other, because that meets their particular preferences, priorities and needs better.

                                                                                                                                                                                                    2. 2

                                                                                                                                                                                                      Lack of vertical tabs.

                                                                                                                                                                                                      :-P

                                                                                                                                                                                                      1. 1

                                                                                                                                                                                                        Can you articulate why lack of vertical tabs is such a deal breaker for you? Just aesthetics or is there a functional reason?

                                                                                                                                                                                                        1. 3
                                                                                                                                                                                                          • Vertical tabs conserve horizontal screen space; important as displays lose more and more height and gain more width with each year.
                                                                                                                                                                                                          • Switching tabs using the mouse requires a large (> 100px) and non-predictable (due to varying tab widths) amount of hand movement; vertical tabs always take the same, small movement.
                                                                                                                                                                                                          • Horizontal tabs start to get compressed and increasingly harder to read with >8 tabs; vertical tabs always keep the same width.

                                                                                                                                                                                                          These are the functional reasons, but this doesn’t mean that vertical tabs should allowed to be aesthetically repulsive, just as long as they provide these features.

                                                                                                                                                                                                          Compare this dog’s breakfast Firefox devs force upon people with this design for instance.

                                                                                                                                                                                                          1. 1

                                                                                                                                                                                                            I’m an unusual edge case where UX is concerned so I’ll appreciate your radically different perspective and thank you for taking the time to elucidate it!

                                                                                                                                                                                                            For me, the mouse is a productivity vampire. I avoid it like the plague. I use keyboard based random access to get to tabs and never have more than 9 open at once so it’s never a problem.

                                                                                                                                                                                                            I have fine and gross motor difficulties so getting the mouse to move where I want and to actually hit the accursed tiny clicky thing is torture :)

                                                                                                                                                                                                    3. 11

                                                                                                                                                                                                      Yeah, I don’t really understand this conception. I have the hardest time trying to convince my friends to switch, they always state it’s too much of a hassle. What hassle? Bookmarks, history, passwords and even settings all automatically imported on first run. Thanks to web extensions, most extensions are a simple re-install away (or worst case alternatives are easily found with a quick search).

                                                                                                                                                                                                      1. 1

                                                                                                                                                                                                        That´s all true both, and yet there is something freaking sticky about Chrome. But you are completely right.

                                                                                                                                                                                                      2. 7

                                                                                                                                                                                                        do they have user-friendly multiprofile? That’s always been the blocker for me

                                                                                                                                                                                                        1. 1

                                                                                                                                                                                                          Same here. Containers are nice but I use profiles a lot in Chrome. Having the separation of history is useful. Firefox still doesn’t have a good way of managing profiles.

                                                                                                                                                                                                          1. 1

                                                                                                                                                                                                            I’m using different profiles, a personal one, and a work one, and it works great. I’ve never used multiple profiles on chrome though, so I don’t know how it would compare.

                                                                                                                                                                                                            1. 3

                                                                                                                                                                                                              Chrome profiles are a first-class feature available by clicking on your profile picture on the menu bar: https://imgur.com/a/j6vIeG2

                                                                                                                                                                                                              While Firefox has profiles, they seem a bit tedious to set up and manage https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles. It looks like the only way of controlling them is through about:profiles - do you use them this way or some other way?

                                                                                                                                                                                                              1. 1

                                                                                                                                                                                                                I’m afraid I do use them through about:profiles. Chrome’s do look better, I must say, but Firefox’s work well enough for me :)

                                                                                                                                                                                                          2. 4

                                                                                                                                                                                                            Chromium’s UI is better than Firefox, IMO.

                                                                                                                                                                                                            On the same machine (2011 27” iMac, Debian, 16 Gb RAM, 3.6 Ghz i5) Chromium is noticeably snappier, smoother, and less glitchy.

                                                                                                                                                                                                            Right now, even as I’m typing this, I’m experiencing a glitch where popup menus (from right click or clicking the >> button, for example) show up for a fraction of a second and disappear.

                                                                                                                                                                                                            1. 3

                                                                                                                                                                                                              It is an effort. I switched a few months ago and it took me a few solid weeks to get comfy. I had to sink lots of time into configuring tridactyl.

                                                                                                                                                                                                              Just depends of workflows really.

                                                                                                                                                                                                              Other things that require a similar level of effort (or more): changing your email client, changing your shell, changing your window manager.

                                                                                                                                                                                                              1. 3

                                                                                                                                                                                                                I suppose I am a rather vanilla browser user - I hadn’t considered more niche use cases.

                                                                                                                                                                                                                Sidebar: thank you for making ripgrep! I use it daily and love it.

                                                                                                                                                                                                                1. 1

                                                                                                                                                                                                                  FWIW I find vim-vixen much easier to get going with than tridactyl.

                                                                                                                                                                                                                  1. 3

                                                                                                                                                                                                                    A brief look suggests that vim-vixen has far fewer features. Tridactyl wasn’t necessarily hard to use. It just took awhile to perfect my setup. One really nice feature it has is that I can configure it via a vim-style config file on disk that keeps everything consistent and under my control through all my workstations.

                                                                                                                                                                                                                    1. 1

                                                                                                                                                                                                                      I admit, I basically only use j, k, f, and / for the most part. Perhaps I don’t know what I’m missing.

                                                                                                                                                                                                                      1. 1

                                                                                                                                                                                                                        I don’t use too much more, but this is my config: https://gist.github.com/BurntSushi/393546a65db38d57cedcfd72c6d89bf3

                                                                                                                                                                                                                        1. 2

                                                                                                                                                                                                                          We fixed set findcase smart a few days ago by the way. No-one else had mentioned it. It isn’t quite in a stable release yet but will be soon.

                                                                                                                                                                                                                          1. 1

                                                                                                                                                                                                                            Thanks! :)

                                                                                                                                                                                                              2. 11

                                                                                                                                                                                                                Enable WebRender (set gfx.webrender.enabled and gfx.webrender.all to true in about:config), restart FF and it’ll be almost as fast as Chromium in most tasks, faster in some.

                                                                                                                                                                                                                1. 3

                                                                                                                                                                                                                  I switched over this morning after going back and forth between it and Chromium a few times in the past. Chromium’s UI is better, but I haven’t had any problems with rendering yet.

                                                                                                                                                                                                                  I’d love to use https://github.com/atlas-engineer/next, but it doesn’t have uMatrix or an adblocker yet, so I’m not going to use it full time.