6 ms·
Mmmh... I rewrote big chunks of Firefox's Session Restore to ensure that people stopped losing their data in case of crashes. Pretty big impact on both Firefox
by Yoric 7y ago
Mmmh... I rewrote big chunks of Firefox's Session Restore to ensure that people stopped losing their data in case of crashes. Pretty big impact on both Firefox and, hopefully, the life of a few hundred million users.
I rewrote the Firefox Shutdown so that it actually worked.
I also introduced structured async programming, async testing, async exception reporting in our codebase.
And yes, I do enjoy bragging :)
- kingludite 7y agoOh, thanks!
- rayuela 7y agoThis has saved my ass more than I can count. You've earned your bragging rights
- drywater 7y agoWhy do you think they weren't working so good in the first place? I mean, why was a bad solution implemented in an open-source product?
- Yoric 7y agoFor Session Restore, there were two problems. One of them was that it had gained lots of features and the architecture wasn't adapted anymore. That's the kind of things that happens with all long-lived projects. The other one is that getting file safety correctly is really hard. The OS likes to the developer, the filesystem lies to the OS and the hardware lies to everyone. For most applications, that's not a big deal, but for something that used to run every 15 seconds on hundreds of millions of computers, this can cause data loss. That's why you really want to use a DBMS rather than roll your own format if data safety is critical. For shutdown, it was also a case of initial architecture not matching the current situation anymore. Firefox was initially a synchronous, single-threaded, single-process architecture, but this had stopped being the case for a few years already. At some point, shutdown needed to be re-architectured, I happened to be the one who managed to convince people that the time was now :)
- ignoramous 7y agoIn my time writing databases, I found that not only the mount-flags could result in data-loss despite fsync, given you use fsync as it is supposed to be used [0], but even enterprise-grade hardware would at times (at that scale [1]) drop and/or corrupt a few bits here and there. That reminds me of the case where AWS famously revealed that a single NIC in their ginaromous S3 fleet flipped a single bit once in a while and that caused an outage because their gossip-daemon responsible for fleet health-checks failed spectacularly [2]. Bryan Cantrill's talk on the realted topic of hardware/firmware bugs is pretty good [3]. [0] https://danluu.com/fsyncgate/ https://danluu.com/fsyncgate/ [1] https://perspectives.mvdirona.com/2017/04/at-scale-rare-events-arent-rare/ https://perspectives.mvdirona.com/2017/04/at-scale-rare-even... [2] https://youtube.com/watch?v=swQbA4zub20&t=46m02s https://youtube.com/watch?v=swQbA4zub20&t=46m02s [3] https://youtube.com/watch?v=fE2KDzZaxvE https://youtube.com/watch?v=fE2KDzZaxvE
- tomaskafka 7y agoThis! I love the companies that care. For example, when a Garmin watch runs out of battery during workout (or if a software crashes), the workout always gets saved, and you can resume it when you turn the watch back on.
- codesuki 7y agoThank you!
- nbaksalyar 7y agoThat's a feature I sorely missed after the demise of the original (pre-Blink) Opera Browser, and one of the reasons I strongly prefer Firefox over Chrome. Thank you so much for this!
- bberrry 7y agoAs a firefoxer and tab-hoarder, with more than 200+ open as I write this, thank you!
- jlokier 7y agoI lost Firefox sessions so many times last year! As I have a few thousand tabs over several windows, some being placeholders for things I regard as important, that sort of thing is really bothersome. Every so often, after a system restart due to running out of battery on my laptop, I'd start Firefox and get the dreaded "only one window, home tab". I was able to recover by going through backups, but it was a fiddly and manual process, and for a while last summer it happened annoyingly often. There were a couple of times I couldn't recover what I'd been working on the previous day.
- Onawa 7y agoGood lord, what possible workflow leads you to having that many open tabs without bookmarking them or using some other plugin that allows you better tab management? Seems like a recipe for disaster, especially since you said you end up having to dig through backups to restore state.
- kqr 7y agoSome people use tabs as a sort of bookmarking/selective history thing. Firefox makes this especially easy with tree-style tabs. I'm still undecided whether it's good or bad.
- travisjungroth 7y agoIt’s terrible! Do you leave every single piece food and cooking utensil you own out on the kitchen counter at the same time? No, cause it’s a workspace and that obviously makes no sense. Tabs are an ephemeral system that you can clean with a single mouse click. If there’s anything in your life you should be able to keep tidy, that’s it.
- hazz99 7y agoDifferent people use tabs in different ways. Tree style tabs lend themselves to having a larger number of more permanent ones.
- 7y ago