dblohm7's recent activity

  1. Comment on Getting tired of Firefox in ~tech

    dblohm7
    Link
    (Former Firefox/Gecko engineer here) Yeah, the whole data loss thing you're seeing is definitely some kind of bug. It's unfortunate that these kinds of things go on as long as they do. In my...

    (Former Firefox/Gecko engineer here)

    Yeah, the whole data loss thing you're seeing is definitely some kind of bug. It's unfortunate that these kinds of things go on as long as they do. In my experience, things like this are unfortunately the result of not having enough data to figure out what's going wrong. Back when I used to spend a lot of time on /r/firefox, I'd quite often see the same two or three issues go by, but most people don't want to provide a bunch of data to help fix the issue, they just want the issue to go away. (To be clear, this is a perfectly rational thought process on the part of user; it just unfortunately means that it's also very hard to get the right information about the root cause of the problem!) So instead we end up with users who just blow away all their data and reinstall, and move on with their lives. Meanwhile, the root cause lives on...

    As for userChrome, there's not much to expect there; it's unsupported. The front-end devs are under no obligation to preserve the underlying structure of the UI from version to version, with good reason: Nobody's going to commit to freezing that because it would tie developer hands even when making important changes for security, performance, or ease of development.

    13 votes
  2. Comment on Help with web accessibility problem for screen readers - ARIA in ~comp

    dblohm7
    Link Parent
    Huge plus 1 to using NVDA on Windows.

    Huge plus 1 to using NVDA on Windows.

    3 votes
  3. Comment on Down and to the right: Firefox got faster for real users in 2023 in ~tech

    dblohm7
    Link Parent
    Not really, sorry. That wasn't my area of expertise, unfortunately.

    Not really, sorry. That wasn't my area of expertise, unfortunately.

  4. Comment on Down and to the right: Firefox got faster for real users in 2023 in ~tech

    dblohm7
    Link Parent
    (Former Firefox developer here) I could help you troubleshoot that if you want.

    (Former Firefox developer here)

    It's a pity, but the weird and uncontrolable tab crash bug was enough for me

    I could help you troubleshoot that if you want.

    22 votes
  5. Comment on Google user data has become a favorite police shortcut in ~tech

    dblohm7
    Link Parent
    "Arguing that you don't care about the right to privacy because you have nothing to hide is no different than saying you don't care about free speech because you have nothing to say." Edward...

    "Arguing that you don't care about the right to privacy because you have nothing to hide is no different than saying you don't care about free speech because you have nothing to say."

    • Edward Snowden [1]
    28 votes
  6. Comment on Mullvad on Tailscale: Privately browse the web in ~tech

    dblohm7
    Link Parent
    (Tailscalar here) I normally don't jump into discussions like this, but since this post is a Tailscale-themed post, I will point out that Tailscale does all of the above things too. :-)

    (Tailscalar here)

    I normally don't jump into discussions like this, but since this post is a Tailscale-themed post, I will point out that Tailscale does all of the above things too. :-)

    2 votes
  7. Comment on Mullvad on Tailscale: Privately browse the web in ~tech

    dblohm7
    Link Parent
    (Tailscalar here) Agree with you 100%. We built this because we were receiving a lot of requests for such an integration, but we're also fully aware that this isn't for everybody.

    (Tailscalar here)

    Agree with you 100%. We built this because we were receiving a lot of requests for such an integration, but we're also fully aware that this isn't for everybody.

    1 vote
  8. Comment on Prepare your Firefox desktop extension for the upcoming Android release in ~tech

    dblohm7
    Link
    (I used to work on Firefox for Android via GeckoView) When I was there, my colleagues had more or less achieved extension API parity with Fennec, but not the entire WebExtensions API as a whole. A...

    (I used to work on Firefox for Android via GeckoView)

    When I was there, my colleagues had more or less achieved extension API parity with Fennec, but not the entire WebExtensions API as a whole.

    A lot of the restrictions on extension installation were product management decisions, not engineering, however there were still some technical concerns around the extensions process for Android...

    Your desktop browsers essentially host extensions in their own sandboxed process. Unfortunately the programming model for those extensions pretty much operated under the assumption that the extensions process would never be killed for the duration of the browsing session (notwithstanding anomalies like crashes and such).

    These assumptions completely break down on mobile, where the OS pretty much reserves the right to terminate processes at any time as it sees fit. This didn't matter much with Fennec because it was single-process. OTOH, as the new Firefox for Android adopted multiprocess to an ever-greater degree, it became pretty apparent to us that the existing extension process code was not ready to deal with the realities of running on a mobile OS, and the WebExtension APIs weren't either.

    A lot of progress has been made over the past couple years to get things into a state where everything could work in this environment.

    23 votes
  9. Comment on Android Mozilla browsers with access to about:config in ~comp

    dblohm7
    Link
    I used to work on Firefox for Android, particularly on GeckoView, which is the framework for embedding Gecko into apps. I was there when we transitioned the app from the old Fennec architecture...

    I used to work on Firefox for Android, particularly on GeckoView, which is the framework for embedding Gecko into apps. I was there when we transitioned the app from the old Fennec architecture over to the new Fenix+GeckoView architecture.

    At the time, I supported the hiding of about:config in release builds, and I still do today. The reason is because GeckoView and Android are both significantly different from their desktop counterparts.

    A lot of users assume that they should be able to set various about:config knobs the exact same way that they can on desktop, and it just isn't true. In fact, on Android, changing the wrong setting to the wrong value might completely break the installation: in the worst case, it could completely disconnect the rendering engine from the rest of the app. Unless your device is rooted, the only way to fix it is to reinstall the browser (a destructive operation).

    A lot of people now say, "I'm willing to take the risk." Well, if you're going to use untested and unsupported settings, then use the beta channel.

    "But I want the stability of the release channel." Guess what: you're already significantly breaking stability by tweaking about:config! I would suggest that changing config settings affects stability far more than choosing the beta channel anyway.

    As a final digression, a lot of people make changes to about:config settings without even understanding what those settings do. I can't tell you how many times I've seen outdated guides telling users about settings that don't even exist anymore.

    Bottom line: if those non-default settings were tested and reliable, they'd either be made default or be made available via the normal preferences GUI. Nobody's intentionally concealing things just to mess with you.

    1 vote
  10. Comment on Windows 11's latest endearing mess contains rigorously enforced Britishisms in ~tech

    dblohm7
    Link Parent
    I read something somewhere (HN, maybe?) where somebody claiming to be a Microsoftie said that the Windows design team has more or less been replaced by a bunch of young Mac users who want to make...

    I read something somewhere (HN, maybe?) where somebody claiming to be a Microsoftie said that the Windows design team has more or less been replaced by a bunch of young Mac users who want to make Windows more like macOS, without understanding their customer base.

    Take that with a grain of salt, of course, but it certainly seems to fit the situation.

    3 votes
  11. Comment on The ideal backend language to write web apps in 2023? in ~comp

    dblohm7
    Link
    With respect, Go was never taking "baby steps" toward web development; Go is absolutely designed for web development, and I personally think that it would be my primary choice for a new web...

    And now, we also have the evolving languages like Golang, Rust, etc. taking their baby steps towards web development too!

    With respect, Go was never taking "baby steps" toward web development; Go is absolutely designed for web development, and I personally think that it would be my primary choice for a new web backend in 2023.

    7 votes
  12. Comment on Fifteen years after 'Iron Man,' the MCU has lost what made its debut so special in ~movies

    dblohm7
    Link Parent
    As I wrote, (Emphasis mine.) And the other franchises maybe don't have as tangled a web as Marvel does, but they are also building up the same complexity in their canon.

    As I wrote,

    if you're a movie buff, and you're sitting out the big franchises because of this... then what's left?

    (Emphasis mine.)

    And the other franchises maybe don't have as tangled a web as Marvel does, but they are also building up the same complexity in their canon.

  13. Comment on Fifteen years after 'Iron Man,' the MCU has lost what made its debut so special in ~movies

    dblohm7
    Link Parent
    In general I agree with you, with the exception of the fact that the state of the film industry has reached the point where, if you're a movie buff, and you're sitting out the big franchises...

    In general I agree with you, with the exception of the fact that the state of the film industry has reached the point where, if you're a movie buff, and you're sitting out the big franchises because of this... then what's left?

    EDIT: (Obviously there are indie cinemas and such, but not everybody has access to those and are stuck with whatever's playing at the multiplex)

    2 votes
  14. Comment on Is there a digital compass app (Android) for walking around? in ~tech

    dblohm7
    Link
    Back in the day, Google used to actually ship an app explicitly for this purpose. I think it was made by some Googlers on some 20% time, so it was probably discontinued. I can't remember what it...

    Back in the day, Google used to actually ship an app explicitly for this purpose. I think it was made by some Googlers on some 20% time, so it was probably discontinued. I can't remember what it was called, though.

    2 votes
  15. Comment on Tell me your worst experience with database performance (as a developer) in ~comp

    dblohm7
    Link
    Part 1 Probably the worst one I can think of was an application I used to be a developer for in the mid-2000s. The application used a royalty-free clone of dBASE. To understand the rest of this...

    Part 1

    Probably the worst one I can think of was an application I used to be a developer for in the mid-2000s.

    The application used a royalty-free clone of dBASE. To understand the rest of this story, you need to understand something about the state of that database technology: it was not relational. It couldn't do things that we expect of modern databases, like joins. If you wanted to join two tables, you were obtaining cursors for each of those tables and then rolling your own nested-loop join within your application.

    Our application, like most, had the concept of users. Each user could be assigned various attributes.

    Our application was also very enterprisey, so it was typically sold through enterprise sales channels or indirectly by managed service providers. In this particular situation, the sale occurred through multiple middlemen, so we as the vendor did not get a very good contractual say as to how the product would be deployed.

    Unfortunately for my employer, that contract did release them from obligations to provide tech support. Soon enough, support started receiving calls, and I am the developer who eventually received the escalation.

    It turns out that an MSP hired by another MSP to install our product decided to hack around our per-seat licensing by only creating one single user, and then attaching all the attributes across thousands of physical
    users onto that one single logical user in our app.

    As I mentioned before, our database did not have a query optimizer or proper execution engine. It could create individual tables, slap indexes on them, and query them individually. Complex queries were hand-rolled in the app itself, completely unequipped to deal with substantial changes to the shape of the data. There were no column statistics, there was no way to change query plans to accommodate data whose cardinality differed from what we expected. In other words, the only way to fix the customer's problem was to manually rewrite every single affected query!

    As you can imagine, a situation like that was intractable in terms of responding to an urgent support request. IIRC that client was eventually "fired."

    I was originally going to leave this as the conclusion of the story, until I realized that it kicked off a series of events that led to even more database performance problems in the future...

    Part 2

    Various experiences such as the one above finally convinced upper management that we had to switch to a relational database. Since the application contained nothing but hand-rolled queries, this changeover would necessitate a massive rewrite of most of the application so that we could decouple data access from business logic.

    The edict from the VP of development was that queries would be placed into stored procedures. There would be a hand-rolled ORM that would call the stored procedures and then deserialize their results into appropriate data structures in memory.

    You might have noticed the preceding paragraph mentioning things like an "edict" from an executive containing specific ideas as to how to do the rewrite. You might have also thought, "uh-oh," and you would be correct.

    This development team possessed a culture of distrust and micromanagement. Only managers were considered to be competent; the ICs were expected to just be drones who did what they were told. This resulted in developers who often were afraid to think for themselves; to do so would just invite a world of hurt. I don't think that the developers were stupid people, but the culture was so stifling that they were coerced into doing stupid things.

    Remember how this rewrite was needed to eliminate the hand-rolled queries? Our developers were too shellshocked to recognize that sometimes they needed to do multiple passes over the business logic: they would remove the first layer of joins, but then take those results and join them together in business logic.

    That all performed just fine under dBASE, when there was virtually no latency. It performed decently on a developer's freshly installed local VM which was running the DBMS inside of it.

    It did not perform well when any amount of latency was introduced between the application and the DBMS, or when there was actual data populated in the database.

    Once again, nobody realized any of this until the new version of the app was being used in production.

    As people started to smarten up about the situation, one developer added telemetry to track how many round-trips were required between the application and the DBMS to render a single web page in its admin panel. Each page needed dozens.

    Of course, management learned the wrong lesson from this: it reinforced their views that the developers were all a bunch of mouth-breathing idiots who needed even more supervision. But that's another story for another day...

    4 votes
  16. Comment on Once praised for its generous social safety net, Denmark now collects troves of data on welfare claimants in ~tech

    dblohm7
    Link
    Yet another reason why I support UBI.

    Yet another reason why I support UBI.

    1 vote
  17. Comment on <deleted topic> in ~tech

    dblohm7
    Link Parent
    Which kind of proves GP's point, unfortunately for front-end developers. Instead of throwing up something that says, "We only developed against the newest nonstandardized gee-whiz APIs in Chrome,...

    Which kind of proves GP's point, unfortunately for front-end developers.

    Instead of throwing up something that says, "We only developed against the newest nonstandardized gee-whiz APIs in Chrome, you need to download that instead," Front-end devs are forced to support WebKit's idiosyncrasies because (in Canada and the US, at least), iOS users are a significant market that cannot be ignored. It effectively serves as a brake that holds back the broader state of the webdev community.

    4 votes
  18. Comment on <deleted topic> in ~tech

    dblohm7
    Link Parent
    Absolutely. Containers are plumbed through Gecko in its entirety. That is an implementation detail in the Gecko engine that is unique to Gecko.

    That's a good point, but are you sure those are WebKit limitations?

    Absolutely. Containers are plumbed through Gecko in its entirety. That is an implementation detail in the Gecko engine that is unique to Gecko.

    5 votes
  19. Comment on <deleted topic> in ~tech

    dblohm7
    Link Parent
    Alternate engines allow for capabilities that just cannot be achieved using the iOS WebKit. eg Firefox using Gecko could bring WebExtensions and containers to iOS.

    Alternate engines allow for capabilities that just cannot be achieved using the iOS WebKit.
    eg Firefox using Gecko could bring WebExtensions and containers to iOS.

    9 votes
  20. Comment on <deleted topic> in ~tech

    dblohm7
    Link Parent
    I feel the same way, even though I used to work on Firefox for Android!

    I feel the same way, even though I used to work on Firefox for Android!

    5 votes