Today, I had to fill in a #PDF form to send to my insurer. I opened it with #GNOME Document Viewer and filled in the various fields without any problem 🙂
Unfortunately, at the end of the document, we have to write our name and sign, but the application doesn't offer any options for adding text and inserting an image 😬
Since everyone praising the functional richness of #KDE applications, I decide to install #Okular. Except that it doesn't let you insert images either. No sooner installed than uninstalled ☹️
So I decided to try my luck directly with #Firefox. And then, a miracle. It's only a web browser, but it allowed me to insert my signature with disconcerting ease. Thanks #Mozilla 🤗 💖
A quanto pare quelli di #Mozilla si sono finalmente svegliati e hanno iniziato quantomeno a lavorare ad una #UI per #Firefox ottimizzata per i #tablet Android, con (molto importante) una barra delle schede una cosa che è stata completamente persa nel passaggio al ridesign #Fenix… quanti anni sono già? 💀
#Notizia di un mese scarso fa infatti, “You can now try Firefox’s revamped tablet interface on Android“. L’articolo include anche un video che mostra la feature in azione. In realtà chissà anche se questa roba uscirà dalla fase di #Nightly del tutto e diventerà #feature per davvero… Vorrei averla già da adesso, peccato che uso la Beta sul tablet, e ho aggiornato all’ultima versione proprio ora, ma di queste nuove #schede manco l’ombra. 🤥
Di installare la notturna e trasferire a manina tutti i dati non ho la minima voglia, quindi temevo di dover creare una mia estensione per risolvere il #problema in modo estremamente hacky, già da prima di scoprire la notizia… fortunatamente, ho scoperto (proprio da quell’articolo lì lmao, la ricerca del sito di #addon di Mozilla fa schifissimo e non si trova nulla senza sapere il nome) che qualcuno lo ha già fatto, e proprio nell’unico modo possibile orrendo che avevo in mente io: “Tablet UI for Firefox“… praticamente visualizza una barra delle schede inserendo HTML nella pagina corrente, lol, con tutte le limitazioni e i punti di spacc del caso… 😖
Che poi gli sfigati siamo noi su #Android, perché sui tablet Windows o Linux c’è la normale versione desktop della volpe che si adatta bene anche al tocco, e a quanto pare persino la app per iPadOS è stata disegnata meglio… (lasciando da parte il fatto che è la solita inutile skin di WebKit nella pratica.) 😶🌫️ (E btw, mi sa che un add-on per esportare ed importare tutti i dati dei siti, quello va fatto davvero, in giro trovo soluzioni solo per cookies e LocalStorage.)
You suspect this has something to do with a code change because, wouldn’t you know it, the sharp decline starts around Feb 22 and we released Firefox 123 on Feb 20. But where do you go from here? Here’s a step-by-step of how I went from this plot arriving in Slack#data-help to finding the bugfix that most likely caused the change:
Ensure this is actually a version-specific change
It’s interesting that the cliff in the plot happened near a release day, and it’s an excellent intuition to consider code releases for these sorts of sea-changes in data volume or character. But we should verify that this is the case by grouping by mozfun.norm.truncate_version(app_version, 'major') AS major_version which in our case gives us:
Sure enough, in this case the volume cliff happens entirely within the Firefox 123+ colours. If this isn’t what you get, then it’s somewhat less likely that this is caused by a client code change and this guide might not help you. But for us this is near-certain confirmation that the change in the data is caused by a code change that landed in Firefox 123… but which one?
( This is where I spent a little time checking some frequent “gotcha” changes that could’ve happened. I checked: was it because data went from all-channel to pre-release-only? (No, the probe definitions didn’t change and the fall isn’t severe enough for that (would look more like an order of magnitude)) Was it because specific instrumentation within the group happened to expire in Fx123? (No, the first plot is grouped by specific probe, and all of the groups shared the same shape as their sum) Was it an incredibly-successful engagement-boosting experiment that ended? (No, there haven’t been any relevant experiments since last July) )
Figure out which Nightly builds are affected
Firefox Desktop releases new software versions twice a day on the Nightly channel. We can look at the numbers reported by these builds to narrow down what specific 12h period the code landed that caused this drastic shift. Or, well, you’d think we could, but when you group by build_id you get:
Because our Nightly population isn’t randomly distributed across timezones, there are usage patterns that affect the population who use which build on which day. And sometimes there are “respins” where specific days will have more than 2 nightlies. And since our Nightly population is so small (You Can Help! Download Nightly Today!), and this data is a little sparse to begin with, little changes have big effects.
No, far more commonly the correct thing to do is to look at what I call a “build day”. This is how GLAM makes things useful, and this is how I make patterns visible. So group by SUBSTR(build_id, 1, 8) AS build_day, and you get:
Much better. We can see that the change likely landed in Jan 18’s nightlies. That Jan 18-20 are all of a level suggests to me that it probably ended up in all of Jan 18’s nightly builds (if it only landed in one of the (normally) two nightly builds we’d expect to see a short fall-off where Jan 18 would be more like an average between Jan 17 and 19.).
Regardless of when during the day, we’re pretty sure we have this nailed down to only one day’s worth of patches! That’s good… but it could be better.
Going from build days to pushlog
Ever since I was the human glue keeping the (now-decommissioned) automated regression detection system “alerts.tmo” working, I’ve had a document on my disk reminding me how to transform build days or build_ids into a “pushlog” of changes that landed in the suspect builds. This is how it works:
Get the hg revisions of the suspect builds by looking through this list of all firefox releases for the suspect builds’ ids. You want the final build of the day before the first suspect build day and the final build of the final suspect build day, which in this case are Jan 17 and Jan 18, so we get f593f07c9772 and 9c0c2aab123:
This gives you a list of all changes that are in the suspect builds, plus links to the specific code changes and the relevant bugs, with the topic sentence from each commit right there for you. Handy!
Going from a pushlog to a culprit
This is where human pattern matching, domain expertise, organizational memory, culture and practices, and institutional conventions all combine… or, to put it another way, I don’t know how to help you get from the list of all code that could have caused your data change to the one (or more) likely suspects. My brain has handily built me a heuristic and not handed me the source code, alas. But I’ve noticed some patterns:
Any change that is backed out can be disregarded. Often for reasons of test failures changes will be backed out and relanded later. Sometimes that’s later the same day. Sometimes that’s outside our pushlog. Skip any changes that have been backed out by disregarding any commits from a bug that is mentioned before a commit that says “Backed out N changesets (bug ###)…”.
You can often luck out by just text searching for keywords. It is custom at Mozilla to try to be descriptive about the “what” of a change in the commit’s topic, so you could try looking for “telemetry” or “ping” or “glean” to see if there’s anything from the data collection system itself in there. Or, since this particular example had to do with Firefox Relay’s integration with Firefox Desktop, I looked for “relay” (no hits) and then “form” (which hit a few times, like on the word “information”, … but also on the culprit which was in the form detector code.)
This is a web view on the source code, so you’re not limited to what it gives you. If you have a mozilla-central checkout yourself, you can pull up the commits (if you’re using git-cinnabar you can use its hg2git functionality to change the revs from hg to git) and dump their sum-total changes to a viewer, or pipe it through grep, or turn it into a spreadsheet you can go through row-by-row, or anything you want. I’m lazy so I always try keywording on the pushlog first, but these are always there for when I strike out.
Getting it wrong
Just because you found the one and only commit that landed in a suspect build that is at all related, even if that commit’s bug specifically mentions that it fixed a double-counting issue, even if there’s commentary in the code review that explains that they expect to see this exact change you just saw… you might be wrong.
Do not be brusque in your reporting. Do not cast blame. And for goodness’ sake be kind. Even if you are correct, being the person who caused a change that resulted in this investigation can be a not-fun experience. Ask Me How I Know.
Firefox Desktop is a complex system, and complex systems fail. It’s in their nature.
And that’s it! If you have any comments, question, or (better yet) improvements, please find me on the #glean:mozilla.org channel on Matrix and I’d love to chat.
💌 Thunderbird to support both 2 main universal Linux packages :tux:
Flatpak ✅ /next: an official Snap :ubuntu:
'Tis the #1 free email client.
"We love our Linux users across all Linux distributions. That is why we’ve stepped up to help maintain the Thunderbird Snap available in the Snap Store.
We took ownership of the Mozilla Thunderbird Flatpak .. We are expanding to make sure the Thunderbird Snap is officially supported too".
Mozilla VPN trick for anyone in the New England region of the US - There's a NYC server and a Secaucus server.
NYC and Secaucus are practically right next to each other, only 10 miles in between. But, Secaucus is used a lot less. To the point where Mozilla VPN is 2x as fast if you use the Secaucus server.
Screenshot 1: NYC, NY server
Screenshot 2: Secaucus, NJ server #vpn#mozilla
🤦♂️ Mozilla has apparently decided to get into the advertising business.
"We are growing the #Mozilla#Ads team to create a digital #advertising platform that is consistent with Mozilla’s principles. As an early member of the product team you will help drive our vision to best serve users and advertisers with effective #privacy respecting ad products."
When Thunderbird for Android is ready for release, what will the upgrade path from K-9 Mail look like? Will both apps co-exist? Where does Mozilla Sync fit in?
Alex answers some of your burning questions about our Android plans in this short clip from our recent Community Office Hours session.
Po tym, jak udało mi się rozwiązać problem z ichnim sandboksem, udało mi się uruchomić Firefoksa, zbudowanego ze źródeł, z załączonym wsparciem #JPEGXL. Niestety, wygląda na to, że jest niekompletne.
#Firefox 124.0.2 is out now to fix an issue where some users experienced difficulties loading web pages due to changes made to the default AppArmor configuration in #Ubuntu 24.04 LTS, a crash that affected #Linux AArch64 builds, a Netflix issue, and an issue where users with a large amount of bookmarks would be unable to restore a bookmarks backup https://www.mozilla.org/en-US/firefox/124.0.2/releasenotes/
The #Mozilla#Hubs shutdown is also exactly why communities should be investing in #p2p tooling. Had they gone with a fully distributed model there would be no central service to close and the communities using it could have kept doing so regardless of Mozillas involvement. Instead they went "cloud native" and initially relied on a specific cloud platform which basically locks everyone into a final shutdown regardless of who "owns" the cloud.
Ça craint, Mozilla est en train de merdifier leur meilleur service : MDN, une enorme base de documentation sur les technos du web. Ils ont ajouté une IA qui raconte apparemment n'importe quoi mais de manière très convaincante.
Are there any addons as essential as uBlockOrigin?
I would love to find extensions that make me think “How did I live without this?”