In my several recent articles about building Firefox from source,
I omitted one minor change I made, which will probably sound a bit silly.
A self-built Firefox thinks its name is "Nightly", so, for example,
the Help menu includes About Nightly.
Somehow I found that unreasonably irritating. It's not
a nightly build; in fact, I hope to build it as seldom as possible,
ideally only after a
git pull when new versions are released.
Yet Firefox shows its name in quite a few places, so you're constantly
faced with that "Nightly". After all the work to build Firefox,
why put up with that?
To find where it was coming from,
I used my recursive grep alias which skips the obj- directory plus
things like object files and metadata. This is how I define it in my .zshrc
(obviously, not all of these clauses are necessary for this Firefox
search), and then how I called it to try to find instances of
"Nightly" in the source:
find . \( -type f -and -not -name '*.o' -and -not -name '*.so' -and -not -name '*.a' -and -not -name '*.pyc' -and -not -name '*.jpg' -and -not -name '*.JPG' -and -not -name '*.png' -and -not -name '*.xcf*' -and -not -name '*.gmo' -and -not -name '.intltool*' -and -not -name '*.po' -and -not -name 'po' -and -not -name '*.tar*' -and -not -name '*.zip' -or -name '.metadata' -or -name 'build' -or -name 'obj-*' -or -name '.git' -or -name '.svn' -prune \) -print0 | xargs -0 grep $* /dev/null
gr Nightly | grep -v '//' | grep -v '#' | grep -v isNightly | grep test | grep -v task | fgrep -v .js | fgrep -v .cpp | grep -v mobile >grep.out
Even with all those exclusions, that still ends up printing
an enormous list. But it turns out all the important hits
are in the browser directory, so you can get away with
running it from there rather than from the top level.
I found a bunch of likely files that all had very similar
"Nightly" lines in them:
Since I didn't know which one was relevant, I changed each of them to
slightly different names, then rebuilt and checked to see which names
I actually saw while running the browser.
It turned out that
is the file that controls the application name in the Help menu
and in Help->About -- though the title of the
About window is still "Nightly" and I haven't found what controls that.
branding/unofficial/locales/en-US/brand.ftl controls the
"Nightly" references in the Edit->Preferences window.
I don't know what all the others do.
There may be other instances of "Nightly" that appear elsewhere in the app,
the other files, but I haven't seen them yet.
Past Firefox building articles:
Building Firefox Quantum;
Building Firefox for ALSA (non PulseAudio) Sound;
Firefox Quantum: Fixing Ctrl W (or other key bindings).
[ 18:23 Jul 29, 2018
More tech/web |
permalink to this entry |
We've been in the depths of a desperate drought.
Last year's monsoon season never happened, and then the winter snow season
didn't happen either.
Dave and I aren't believers in tropical garden foliage that requires
a lot of water; but even piñons and junipers and other native
plants need some water.
You know it's bad when you find yourself carrying a watering can down
to the cholla and prickly pear to keep them alive.
This year, the Forest Service closed all the trails for about a month
-- too much risk of one careless cigarette-smoking hiker, or at least I think
that was the reason (they never really explained it) -- and most the other
trail agencies followed suit. But then in early July,
the forecasts started predicting the monsoon at last.
We got some cloudy afternoons, some humid days (what qualifies
as humid in New Mexico, anyway -- sometimes all the way up to 40%),
and the various agencies opened their trails again. Which came as
a surprise, because those clouds and muggy days didn't actually include
any significant rain. Apparently mere air humidity is enough to
mitigate a lot of the fire risk?
Tonight the skies finally let loose. When the thunder and lightning
started in earnest, a little after dinner, Dave and I went out to the
patio to soak in the suddenly cool and electric air and some spectacular
lightning bolts while watching the hummingbirds squabble over territory.
We could see rain to the southwest, toward Albuquerque, and more rain
to the east, toward the Sangres, but nothing where we were.
Then a sound began -- a distant humming/roaring, like the tires of a
big truck passing on the road. "Are we hearing rain approaching?" we both
asked at the same time. Since moving to New Mexico we're familiar with
being able to see rain a long way away; and of course everyone has
heard rain as it falls around them, either as a light pitter-patter
or the louder sound from a real storm; but we'd never been able to
hear the movement of a rainstorm as it gradually moved toward us.
Sure enough, the sound got louder and louder, almost unbearably loud
-- and then suddenly we were inundated with giant-sized drops, blowing
way in past the patio roof to where we were sitting.
I've heard of rain dances, and songs sung to bring the rain,
but I didn't know it could sing back.
We ran for the door, not soon enough.
But that was okay; we didn't mind getting drenched.
After a drought this long, water from the sky is cause only for celebration.
The squall dumped over a third of an inch in only a few minutes.
(This according to our shiny new weather station with a sensitive
tipping-bucket rain gauge that measures in hundredths of an inch.)
Then it eased up to a light drizzle for a while, the lightning moved
farther away, and we decided it was safe to run down the trail to
"La Cienega" (Spanish for swamp) at the bottom of the property and
see if any water had accumulated. Sure enough! Lake La Senda (our
humorous moniker for a couple of little puddles that sometimes persist
as long as a couple of days) was several inches deep. Across the road,
we could hear a canyon tree frog starting to sing his ratchety song --
almost more welcome than the sound of the rain itself.
As I type this, we're reading a touch over half an inch and we're
down to a light drizzle.
The thunder has receded but there's still plenty of lightning.
More rain! Keep it coming!
[ 20:38 Jul 23, 2018
More nature |
permalink to this entry |
Such a classic Linux story.
For a video I'll be showing during tonight's planetarium presentation
Stars, and Satellites: Celestial Navigation Through the Ages, for
anyone in the Los Alamos area),
I wanted to get HDMI audio working from my laptop, running Debian Stretch.
I'd done that once before on this laptop
Presentation Setup Part I and
II) so I had some instructions to follow; but while
showed the HDMI audio device,
aplay -D plughw:0,3
didn't play anything and
only showed two devices, not the long list of devices I was used to seeing.
Web searches related to Linux HDMI audio all pointed to pulseaudio,
which I don't use,
and I was having trouble finding anything for plain ALSA without pulse.
In the old days, removing pulseaudio used to be the cure
for practically every Linux audio problem. But I thought to myself,
It's been a couple years since I actually tried pulse, and people have
told me it's better now. And it would be a relief to have pulseaudio
working so things like Firefox would Just Work. Maybe I should try
installing it and see what happens.
So I ran an
aptitude search pulseaudio to find the
package name I'd need to install. Imagine my surprise when it turned
out that it was already installed!
So I did some more web searching to find out how to talk to pulse and
figure out how to enable HDMI, or un-mute it, or whatever it was I needed.
But to no avail: everything I found was stuff like "In the Ubuntu
audio panel, do this". The few pages I found that listed commands
to run didn't help -- the commands all gave errors.
Running short on time,
I reverted to the old days:
aptitude purge pulseaudio.
Rebooted to make sure the audio system was reset,
and sure enough, there were all my normal devices, including the IEC958 device
for HDMI, which was indeed muted. I unmuted it, tried the video again --
and music blasted from my TV's speakers.
I'm sure there are machines where pulseaudio works. There are even
a few people who have audio setups complicated enough to need
something like pulseaudio. But in 2018, just as in 2006,
aptitude purge pulseaudio is the easiest solution
to a Linux sound problem.
[ 14:17 Jul 20, 2018
More linux |
permalink to this entry |
or: How Sausage is Made
I'm a big fan of the League of Women Voters. Really.
State and local Leagues do amazing work. They publish and distribute
those non-partisan Voter Guides you've probably seen before each election.
They register new voters, and advocate for voting rights and better
polling access for everybody, including minorities and poor people.
They advocate on lots of other issues too, like redistricting,
transparency, the influence of money in politics, and health care.
I've only been involved with the League for a few years; although my
grandmother was active in her local League as far back as I can
remember, somehow it didn't occur to me to get involved until I moved
to a small town where it was more obvious what a difference the
local League made.
So, local and state Leagues are great.
But after returning from my second LWV national convention, I find
myself wondering how all this great work manages to come out of an
organization that has got to be the most undemocratic, conniving
political body I've ever been involved with.
I have separate write-ups of the
and other program sessions I attended at this year's convention,
for other LWV members wanting to know what they missed. But the
Plenary sessions are where the national League's business is
conducted, and I felt I should speak publicly about how they're run.
In case there's any confusion, this article describes my personal
reactions to the convention's plenary sessions. I am speaking
only for myself, not for any state or local league.
The 2018 National Convention Plenary Sessions
I didn't record details of every motion;
check the Convention
2018 Daily Briefing if you care. (You might think there would be
a published official record of the business conducted at the
national convention; good luck on finding it.)
The theme of the convention, printed as a banner on many
pages of the convention handbook, was Creating a More Perfect
Democracy. It should have been: Democracy: For Everyone Else.
In case you're unfamiliar with the term (as I was), "Plenary" means
full or complete, from the Latin plenus, full. A plenary
session is a session of a conference which all members of all parties
are to attend. It doesn't seem to imply voting, though that's how
the LWVUS uses the term.
After the national anthem, the welcome by a designated local official, a
talk, an opening address, acceptance of various committee reports, and
so on, the tone of the convention was set with the adoption of the
A gentleman from the Oregon state League (LWVOR) proposed a motion
that would have required internal decisions to be able to be
questioned as part of convention business. This would include the
controversial new values statement. There had been discussion of the
values statement before the convention, establishing that many people
disagreed with it and wanted a vote.
LWVUS president Chris Carson wasn't having any of it.
First, she insisted, the correct parliamentary way to do this was
to vote to approve the rest of the rules, not including this one.
That passed easily. Then she stated that the motion on the table would
require a 2/3 vote, because it was an amendment to the rules which had
just passed. (Never mind that she had told us we were voting to pass
all the rules except that one).
The Oregon delegate who had made the motion protested that the first
paragraph of the convention rules on page 27 of the handbook clearly
stated that amendment of the rules only requires a simple majority.
Carson responded that would have been true before the
convention rules were adopted, but now that we'd voted to adopt them,
it now required a 2/3 vote to amend them due to some other rule
somewhere else, not in the handbook. She was adamant that the motion
could not now pass with a simple majority.
The Oregon delegate was incredulous.
"You mean that if I'd known you were going to do this, I should have
protested voting on adopting the rules before voting on the motion?"
The room erupted in unrest. Many people wanted to speak, but after
only a couple, Carson unilaterally cut off further discussion. But
then, after a lot of muttering with her Parliamentarian, she announced
that she would take a show-of-hands vote on whether to approve her
ruling requiring the 2/3 vote. She allowed only three people to speak
on that motion (the motion to accept her ruling) and then called the
The vote was fairly close but was ruled to be in favor of her ruling,
meaning that the original motion would require a 2/3 vote. When we
finally voted on the original motion it looked roughly equal, not 2/3
in favor -- so the motion to allow debate on the values statement failed.
(We never did find out what this mysterious other rule was that
supposedly mandated the 2/3 vote. The national convention has an
official Parliamentarian sitting on the podium, as well as
parliamentary assistants sitting next to each microphone in the
audience, but somehow there's nobody who does much of a job of keeping
track of what's going on or can state the rules under which we're
operating. Several times during the three days of plenary, Carson and her
parliamentarian lost track of things, for instance, saying she'd hear
two pro and two con comments but actually calling three pro and one
I notice in the daily briefing, this whole fracas is summarized as,
"The motion was defeated by a hand vote."
With the rules adopted by railroad,
we were next presented with the slate of candidates for national positions.
That sounds like an election but it's not.
During discussion of the previous motion, one national board member
speaking against the motion (or for Carson's 2/3 ruling, I can't
remember which) said "You elected us, so you should trust us."
That spawned some audience muttering, too.
See, in case there's any confusion, delegates at the convention do not
actually get to vote for candidates. We're presented with a complete
slate of candidates chosen by the nominating committee (for whom we
also do not vote), and the only option is to vote yes or no on the
whole slate "by acclamation".
There is one moment where it is possible to make a
nomination from the floor. If nominated, such a nominee has one minute
to make her case to the delegates before the final vote. Since there's
obviously no chance, there are seldom any floor nominees, and
on the rare occasion someone tries, they invariably lose.
Now, I understand that it's not easy getting volunteers for leadership
positions in nonprofit organizations. It's fairly common, in local
organizations, that you can't fill out all the available positions and
have to go begging for people to fill officer positions, so you'll
very often see a slate of officers proposed all at once. But in the
nationwide LWVUS? In the entire US, in the (hundreds of thousands? I
can't seem to find any membership figures, though I found a history
document that says there were 157,000 members in the 1960s) of LWV
members nationwide, there are not enough people interested in being a
national officer that there couldn't be a competitive election?
Though, admittedly ... after watching the sausage being made, I'm not
sure I'd want to be part of that.
Not Recommended Items
Of course, the slate of officers was approved. Then we moved on to
"Not Recommended Items". How that works: in the run-up to the
convention, local Leagues propose areas the National board should
focus on during the upcoming two years. The National board decides
what they care about, and marks the rest as as "Not recommended".
During the Friday plenary session, delegates can vote to reconsider
I knew that because I'd gone to
the Electoral College caucus the previous evening, and that was
the first of the not-recommended items proposed for consideration.
It turned out there were two similar motions: the "Abolish the
Electoral College" proposal and the "Support the National Popular Vote
Compact" proposal, two different approaches to eliminating the
electoral college. The NPV is achievable -- quite a few states have
already signed, totalling 172 electoral votes of the 270 that would be
needed to bring the compact into effect. The "Abolish" side, on the
other hand, would require a Constitutional amendment which would have
to be ratified even by states that currently have a big advantage due
to the electoral college. Not going to happen.)
Both proposals got enough votes to move on to consideration at
Saturday's plenary, though. Someone proposed that the two groups
merged their proposals, and met with the groups after the session,
but alas, we found out on Saturday that they never came to agreement.
One more proposal that won consideration was one to advocate for
implementation of the Equal Rights Amendment should it be ratified.
A nice sentiment that everyone agreed with, and harmless since it's
not likely to happen.
Friday morning "Transformation Journey" Presentation and Budget Discussion
I didn't take many notes on this, except during the
presentation of the new IT manager, who made noise about reduced
administrative burden for local Leagues and improving access to
data for Leagues at all levels. These are laudable goals and badly
needed, though he didn't go into any detail about how any of was going
to work. Since it was all vague high-level hand waving I won't bother
to write up my notes (ask me if you want to see them).
The only reason I have this section here is for the sharp-eyed person
who asked during the budget discussion, "What's this line item about
'mailing list rental?'"
Carson dismissed that worry -- Oh, don't worry, there are no members
on that list. That's just a list of donors who aren't members.
People who donate to the LWVUS, if they aren't members,
get their names on a mailing list that the League then sells?
Way to treat your donors with respect.
I wish nonprofits would get a clue. There are so many charities that
I'd like to donate to if I could do so without resigning myself to
a flood of paper in my mailbox every day for the rest of my life.
If nonprofits had half a lick of sense, they would declare "We
will never give your contact info to anyone else", and offer "check
this box to be excluded even from our own pleas for money more than
once or twice a year." I'd be so much more willing to donate.
The credentials committee reported:
delegates present represented 762 Leagues, with 867 voting delegates
from 49 states plus the District of Columbia. That's out of 1709
eligible voting delegates -- about half. Not surprising given the
expense of the convention. I'm told there have been proposals in past
years to change the rules to make it possible to vote without
attending convention, but no luck so far.
Consideration of not-recommended items:
the abolition of the electoral college failed.
Advocacy for the National Popular Vote Compact passed.
So the delegates agreed with me on which of the two is achievable.
Too bad the Electoral Abolition people weren't willing to compromise
and merge their proposal with the NPV one.
The ERA proposal passed overwhelmingly.
Rosie Rios, 43rd Treasurer of the US, gave a terrific talk on, among
other things, the visibility of women on currency, in public art
and in other public places, and what that means for girls growing up.
I say a little more about her talk in my
We had been scheduled to go over the bylaws before Rios' talk, but
that plan had been revised because there was an immigration protest
(regarding the separation of children from parents) scheduled some
distance north of the venue, and a lot of delegates wanted to go.
So the revised plan, we'd been told Friday, was to have Rios' talk and
then adjourn and discuss the bylaws on Sunday.
What actually happened: Carson asked for a show of hands of people who
wanted to go to the protest, which looked like maybe 60% of the room.
She dismissed those people with well wishes.
Then she looked over the people still in the room and said, "It looks
like we might still have a quorum. Let's count."
I have no idea what method they used to count the people sitting in
the room, or what count they arrived at: we weren't told, and none of
this is mentioned in the daily summary linked at the top of this article.
But somehow she decided we still had a quorum, and announced that we
would begin discussion of the bylaws.
The room erupted in angry murmurs -- she had clearly stated before
dismissing the other delegates that we were done for the day and
would not be discussing the bylaws until Sunday.
"It's appalling", one of our delegation, a first-timer, murmured.
But the plenary proceeded.
We voted to pass the first bylaws proposal, an uncontroversial one that
merely clarified some wording, and I'm sure the intent was to sneak
the second proposal through as well -- a vague proposal making it
easier to withdraw recognition from a state or local league --
but enough delegates remained who had actually read the proposals and
weren't willing to let it by without discussion.
On the other hand, the discussion didn't come to anything.
A rewording amendment that I'm told had been universally agreed to at
the Bylaws caucus the previous evening failed to go through because
too many of the people who understood the issue were away at the protest.
The amendment failed, so even though we ran out of time and had to
stop before voting on the proposal, the amended wording had already
failed and couldn't be reconsidered on Sunday when the discussion
(In case you're curious, this strategy is also how Pluto got demoted
from being a planet. The IAU did almost exactly the same thing as the
LWVUS, waiting until most of the voting members were out of the room
before presenting the proposal to a small minority of delegates.
Astronomers who were at the meeting but out of the room for the Pluto
vote have spoken out, saying the decision was a bad one and makes
little sense scientifically.)
There's not much to say about Sunday. The bylaws proposal was still
controversial, especially since half the delegation never had the
chance to vote on the rewording proposal; the vote required a "card
vote", meaning rather than counting hands or voices, delegates passed
colored cards to the aisles to be counted. This was the only card vote
of the convention.
Accessibility note: I was surprised to note that the voting cards
were differentiated only by color; they didn't have anything
like "yes" or "no" printed on them. I wonder how many colorblind
delegates there were in that huge roomful of people who couldn't
tell the cards apart.
The rest of Sunday's voting was on relatively unimportant,
uncontroversial measures, ending with a bunch of
proclamations that don't actually change anything.
Those easily passed, rah, rah. We're against gun violence, for the
ERA, against the electoral college, for pricing carbon emissions, for
reproductive rights and privacy, and for climate change assessments
that align with scientific principles. Nobody proposed anything about
apple pie but I'm sure we would have been for that too.
And thus ended the conference and we all headed off to lunch or the
airport. Feeling frustrated, a bit dirtied and not exactly fired up
LWV National Convention, June-July 2018, Chicago