Pinned toot

Over the 15+ years I've been using GNU/Linux, there are many programs that have become second nature to me. As a hacker, I enjoy tinkering with my system---why use a desktop environment when I could do the same thing with 100s of programs and hand-written scripts...!?

Each day I feel up to it, I'll give thanks to a free/libre program that has made a positive impact on my life, from every corner of my operating system, with the hope that others will find them interesting too.

Pinned toot

Over the past year, my GNU Social timeline has gone almost completely silent; it seems that many people have moved to Mastodon and maybe those instances have stopped federating.

Further, GNU Social development has been stalled for a long time.

So this seems like an inevitable decision to give Mastodon a try. I'll start by following people and will post both on here and GNU Social initially. See social.mikegerwitz.com.

My wife and I are installing new flooring, which first involved tearing up what's already there.

First I was horrified by how much dirt was underneath the carpet padding (we have dogs) from ~6y of use.

Then we started tearing up the tongue and groove hardwood under that, which was installed (naildown) in the 1960s, and it too had a ton of dirt underneath it, even in areas with virtually no damage.

Apparently the only way to get a deep clean is to strip down to the subfloor.

Important #LibrePlanet 2021 news: 1) the Call for Sessions deadline has been extended to November 11th, and 2) the conference will be held in March 2021 entirely online, opening it to participation from the entire (libre)planet! u.fsf.org/36e

I primarily use GNU Emacs as my editor, but I've been using Vim for much longer (~15y). I find the keybindings of Vim to be superior for text editing (and so use evil-mode in Emacs), though I will mix Emacs keybindings in when they are more appropriate. I tend to use Vim for quick edits, or when I use heavy macros on large files.

But Emacs is so much more than a text editor, and I use it for many things. That will be the subject of a number of future posts.

The commands `kill` and `pkill` are useful for more than just killing processes---they can send many different signals (see `kill -l`).

For example, I have `pkill -STOP icecat` and `pkill -CONT icecat` as i3 keybindings to pause and resume IceCat (a Firefox derivative), since most of the time I'm just working out of a terminal and don't need wasted battery. (Despite allowing JS only on my self-hosted Mastodon instance, it still uses more CPU than I'd like it to.)

You can also copy images (and more) to the clipboard. For example, here's a command that'll let you take a screenshot using ImageMagick by selecting a screen area with your mouse:

$ import png:- | xclip -i -selection clipboard -t image/png

I used a password manager and more as examples of xsel/xclip in my LibrePlanet 2019 talk:

mikegerwitz.com/talks/cs4m.pdf

For interacting with the clipboard on GNU/Linux, I use xsel and xclip. The former is more concise, but the latter provides some useful features.

For example, `xsel` to read primary, `xsel -b` for what most users know as the clipboard, `-i` for writing. `xsel | xsel -ib` to copy from primary to clipboard.

`xclip -l 1 -quiet` to block until one paste. Useful to e.g. pipe a password from a password manager so that it gone after you paste it, or to chain pastes (user then pass).

There's been a LOT going on but nonetheless, 8 seconds before midnight, we technically did manage to get an episode of @fossandcrafts out this Thursday fossandcrafts.org/episodes/11-

It's about an ethical framework I've been workshopping for quite a while, one centered around increasing agency of everyone as an ethical good and and the inverse, subjection, as an ethical wrong (where a clear and strong case of subjection is slavery, and obviously there are many lesser forms from there).

For playing video, I use `mpv` (successor to mplayer). It also supports URLs, notably YouTube (if you have `youtube-dl` installed), allowing you to play videos without having to run non-free JavaScript.

If you prefer a GUI, VLC is a good media player which also supports playing YouTube videos.

The email came from email@exec.ny.gov, but I don't know if replies reach the Governor Cuomo. The official contact form is here:

governor.ny.gov/content/govern

NYSDOH can be reached at dohweb@health.ny.gov

The announcement contains an email address, but I can't read it, because it is obfuscated by CloudFlare and requires non-free JS to display:

coronavirus.health.ny.gov/covi

If someone else observes it, please reply with it so I can send mail there as well.

New York State announced today a COVID-19 tracing app using Google and Apple's framework.

I responded with an email to the Governor and NYS Department of Health explaining that rather than asking for the trust of New Yorkers, they should release the source code for this taxpayer-funded software under a free/libre license; that way, we can all verify that the software is doing what it claims to do.

If you are a New Yorker, please consider doing the same.

Looking at archives of photos taken by my wife and kids, I'm always holding this mug that someone gave me many years ago that has "Go Away" in big bold letters, followed by "or I will replace you with a very small shell script". I don't look very approachable. And the other side is blank, so I often forget it says anything at all, including when we have visitors (pre-COVID-19), or when I'm outside.

Funny mug, but I don't actually think that. ...though a small shell script does go a long way.

@mikegerwitz And there's 'batch' for jobs which don't need to be run right now, but should be started when system load is low, and send mail with output on completion.

'batch' jobs will queue in submitted order and run when system load is below a defined value.

For tasks that need to happen at a certain date or time in the future, there's the `at` command. For example, I just received an email from myself reminding me that my GPG key is set to expire soon.

You can view your queue with `atq`, and remove them with `atrm`.

If you need to schedule tasks to happen more than once, see `crontab -e`.

I submitted a proposal for a session. I did not speak last year because of worries around COVID-19, and this year I'll almost certainly be attending remotely. The @fsf will be considering both remote and in-person proposals, should in-person be an option.

Consider submitting your own proposal! For more information, see:

fsf.org/blogs/community/submit

How can you stop data thieves, data brokers, and police from snooping on your credit card payment history? Pay in cash. We support the federal Payment Choice Act, which would require retail stores to accept cash from in-person customers. eff.org/deeplinks/2020/09/pass

Want to render plain text in a more interesting (or obnoxious) way? `cowsay` and `figlet` offer good fun.

Bonus points if you can actually use them in a context that is productive and useful. You've almost certainly seen figlet's output before in a number of different contexts, such as motds and headings.

I work mostly from the command line, but sometimes I need to open an external GUI program to do something visual.

Since I don't often use those programs, I may forget what I installed to open a particular file.

The command `xdg-open` from xdg-utils will try to DTRT and invoke the right program for you. You can query and change preferred programs using `xdg-mime`. And this works without a desktop environment (e.g. I use i3wm).

My last post on free software I use mentioned a substitute for using search engines for word definitions.

Another common use of search engines is unit conversions (e.g. 3 miles to km). For that and more, I use GNU units (gnu.org/software/units/).

I can't do any justice to this program with the number of characters I have left, so please, check it out; you won't be disappointed.

Show more
Mike Gerwitz's Mastodon Instance

Mike Gerwitz's personal Mastodon instance