Here's a tool I put together this evening.
**The Problem**
Sometimes I'm on a #Zoom call and need to unmute my mic quickly. There's a keystroke for this (by default Alt-A), but this only works if Zoom has focus. It's not uncommon for me to have switched to the PDF or email we're discussing, so I have to dig up Zoom before I can unmute and chime in, often missing the conversational opportunity.
**The Solution**
I wrote a script that:
1. checks if any audio streams are going into Zoom, otherwise quits
2. finds the numerical ID of the audio stream going into Zoom
3. toggles the mute flag on said audio stream
I bound it to the keystroke Control-Alt-A in my desktop environment, so I can easily toggle the mute no matter what application has focus.
**The Dependencies**
This is written in #Bash for #Linux systems using #PulseAudio and depends on its control tool `pactl` being installed.
**The Code**
```
#!/bin/bash
```
```
PASOPS=$(pactl list source-outputs)
```
```
if echo "$PASOPS" | grep -q 'ZOOM VoiceEngine' ; then
```
```
SOPID=$(echo "$PASOPS" | head -n $(($(echo "$PASOPS" | grep -n -e 'application.name = "ZOOM VoiceEngine"' | cut -f1 -d:) - 1)) - | grep -o -e 'Source Output #[0-9]\+' | grep -o -e '[0-9]\+' | tail -n 1);
```
```
pactl set-source-output-mute $SOPID toggle; fi
```
Tip for anyone composing in #Frescobaldi:
If you want to use MIDI input but get errors about an "invalid running status" when you attach a physical MIDI instrument, your instrument or interface may be generating SysEx messages that Frescobaldi can't understand. To work around this, you can use an app like #VMPK - in VMPK's "Connections" menu, set the input to your MIDI hardware; and in Frescobaldi's "Preferences" dialogue, set the input to VMPK. This makes your instrument change the internal state of VMPK's keyboard, and VMPK then generates appropriate MIDI events reflecting those changes. Since it's tolerant of SysEx messages in its input but won't generate them in its output, this effectively filters the stream to make it safe for Frescobaldi to consume.
As a bonus, you can see the keys light up on the VMPK interface to reflect the notes currently sounding, which may be more intuitive than reading the #Lilypond source Frescobaldi generates. If you also set something like #FluidSynth as the output in the "Connections" menu, you'll be able to hear what you're playing, too.
Lots of celebratory gunfire mixed in with the fireworks this year. I'm sandwiched between office buildings to the east and a pretty expensive residential area to the west, so I wouldn't have expected that much shooting around here. But I'd guess I've heard upwards of a hundred rounds fired just now, maybe two hundred.
Working around Twitter in 2020, a play in two acts.
***Summer 2020***
**My browser**: Hi, #Twitter! I'm #PaleMoon.
**Twitter**: We don't like you, so we're going to pop up a modal warning on every page you request to force you into retirement.
**My browser**: That's okay, I can suppress the warning with #uBlockOrigin.
***This week***
**My browser**: Hi, Twitter! I'm Pale Moon.
**Twitter**: Seriously, how are you still here? Every page is now an error page advertising browsers we like.
**My browser**: Wait, that's it? I can't just suppress the warning to show the webpage behind it?
**Twitter**: No. And if you pretend to be a supported browser, we'll serve you content that you can't display correctly and it'll look stupid.
**My browser**: The hell? You're just a microblogging service. Your roots are in SMS messages, for crying out loud. Why on earth can you not make do with normal #HTML?
**Twitter**: This is 2020; who would want a normal HTML webpage anyway?
**My browser**: Hmm, who would want normal HTML, you say?
*puts on false moustache*
Hi, Twitter! I'm Googlebot!
Friends, today was the anniversary of the Polytechnique attack. Please take a moment to consider the obstacles still faced by women and minority STEM students in many parts of the world, and, if you can, lend your support as they confront those obstacles.
@QOTO this is my third test message
@freemo I'm pleased to say that my IRL friend @Peyman_majidi has just joined QOTO. I recommended he check out our instance on the basis of his engineering background and interest in data science.
@Peyman_majidi I hope you have great conversations here - in particular with @freemo, the administrator of the site as well as a data scientist himself. Welcome!
@dragfyre Just want to bring to your attention that the IRC bots (SubWatch and BahaiFYIBot) seem to have disappeared from the channel. If you're already aware of this, please disregard.
The story of the first girls' schools in #Iran, which began operating at the turn of the 20th century at the behest of #Bahai spiritual leader 'Abdu'l-Baha.
"...the higher access for #women's #education observed in today's Iran is the result of that #development effort made more than a century ago."
@dragfyre Hey bahaibot on reddit is all of a sudden posting a lot of biographies to the history subreddit. Looks like it's been going off pretty close to every ten minutes for the last hour. I have a guess you might run that bot too - is this the intended behaviour?
Hey @freemo the web interface looks to have changed recently. The "read more" link used to expand a long status in-place; now it just loads it in the rightmost column. Any way to bring back the old behaviour? If I want to load a status in the rightmost column, I'll click the body text itself. If it matters, I'm using the material theme.
This week I discovered the ηMatrix browser add-on. It presents a nifty user interface which gives you fine-grained control over what each website is allowed to transclude from other sources. You whitelist the elements that are necessary for the website to function, and leave the rest blocked. In particular, this makes it really easy to block things like those annoying modal dialogues that adblockers don't cover - but it can function as an adblocker or noscript in its own right.
This post (as with all from this author) doesn't appear on QOTO's local timeline when I'm logged in. Nor do I see it when using the "See what's happening" feature while browsing the web interface and logged out. It looks like it's set to public, so I'm surprised it's not appearing. Any thoughts? This seems similar to the behaviour with the bots from last week - but now it's affecting local accounts.
Hey @dragfyre, for some reason, I only see a small subset of @bahai's and @bahai_wiki's posts from my account, but many more (I presume all of them) when I visit the page directly in a browser. The problem seems to have started around 4 March 2020. Do you have any idea what might be happening here?
Here's a kind of non-explanation ("we saw a lot of other people doing it and the activists said it's good"): https://cbc.ca/1.5626669
I've recently noticed a number of media outlets capitalising "Black" when referring to a person's race. Here's an example, from a CBC story:
"Officer Garrett Rolfe fatally shot Brooks in the back after Brooks fired a Taser in his direction while running away after a struggle with officers outside a Wendy's restaurant on June 12. Rolfe, 27, is white. Brooks, 27, was Black."
Here's another, from FiveThirtyEight:
"Some political science research shows that Black people vote at higher rates when a Black candidate is on the ballot, although that finding is somewhat contested, and that research is about voting for a Black candidate, not a white candidate with a Black running mate."
This is an error in English because "black" doesn't derive from a proper noun (unlike "African" which does). However, these are both fairly respected news organisations - the CBC in particular is supposed to serve as something of a language model - and the pattern is consistent enough it's clearly intentional.
Would anyone care to offer any insight as to why the writers or editors are deviating from conventional English practice here, and selectively so (note that in both examples, "white" is not capitalised)? I'm specifically interested in the reasoning from their perspective; if all you have to contribute is "the media is full of liberals" then you're not going to advance the conversation much.
#LinuxMint 20 #Ulyana is now available for download! It's based on #Ubuntu 20.04 LTS #Focal.
Get it while it's hot!
Here's another handy rule for your XPath-aware adblockers, to improve your viewing experience on QOTO.
By default, when you create a filter in Mastodon, any matched post is replaced by a useless stub - you can't expand it to see the original post, you can't dismiss it, you can't do anything but leave it there. Each stub takes up less space than the original post, but many of the nuisance posts you'd want to filter come in swarms, so it still ends up occupying a big chunk of screen space.
Here's a rule to remove those stubs. To the viewer, they're invisible, but the original text remains in the browser's memory in case you want to have a look.
qoto.org##:xpath(//div[contains(concat(' ',normalize-space(@class),' '),' status__wrapper--filtered ')]/ancestor::article)