Firefox 89 tab appearance #

Firefox 89 has a new appearance, removing features (ugh) and annoying some people while delighting others. It can be disabled by setting browser.proton.enabled to false:

Firefox 89 with Proton disabled
Firefox 89 with Proton disabled

I mostly like the new design though, but I strongly dislike some elements, especially the tabs:

Labels: ,

Automatically generate IDs for emacs org-mode headings #

I write some of my web pages with emacs org-mode, and then export to html. Like markdown, org-mode is a convenient format to write a simple subset of html.

Each heading in the document will get exported with an ID so that it can be linked to from the table of contents. The default IDs look like #org3091de9. I usually replace these with a custom id that matches the section heading, so a heading Bounding box will get an id #bounding-box.


OpenTTD on Windows 10 + Steam #

Transport Tycoon / OpenTTD is my favorite game of all time, and I wanted to play it on Steam. I kept getting "file not writable" error. I tracked it down to the Windows security system blocking it. To unblock:

  1. Start →
  2. Settings →
  3. Update & Security →
  4. Windows security →
  5. Open Windows Security →
  6. Virus & threat protection →
  7. Manage settings →
  8. Controlled folder access →
  9. Manage Controlled folder access →
  10. Allow an app through Controlled folder access →
  11. Add an allowed app →
  12. openttd.exe

I am not a fan of making exceptions like this but I didn't find anything else that worked. If you have an alternate method of solving the permissions error, please let me know.


Building Emscripten on Apple ARM M1 #

Update: [2021-01-24] The workarounds in this blog post are now obsolete, as openjdk, yuicompressor, and emscripten are now available in ARM homebrew.

On Mac, Emscripten is available in the Intel version of Homebrew, but not the ARM version of Homebrew. I use Emscripten rarely enough that this doesn't bother me. However, I thought I'd try compiling it on the ARM version.

I couldn't get openjdk working in ARM homebrew, but I was able to get emscripten installed in ARM homebrew by using the Intel/Rosetta version of openjdk:

Labels: ,

Tags vs labels #

In online collections (photos, bookmarks, blog posts, emails, etc.), “labels” and “tags” are typically words attached to the content. For example I have a photo of a hummingbird on which I used the labels hummingbird (what it is) and coyote hills (where it was). These words are non-hierarchical, unlike “categories” or “folders”.

But are “labels” and “tags” the same thing?

A long time ago, I read that they're different. The distinction as described was:

  • “labels” are when you mark your own content (first party)
  • “tags” are when you mark other people's content (third party)

This matches the behavior I see in other contexts:

  • the “label” on a t-shirt is what the manufacturer (first party) put on, while the “price tag” is what the store (third party) put on
  • in emacs and vi, there's a "tags" program that creates a mapping of words to source code, but it's attached by a third party (the tags program), not by the author of the source code
  • a “car label” is put on by the manufacturer (first party), while a “car tag” in the U.S. is given out by the state vehicle registration agency (third party)
  • “tagging” is graffiti, most often put on someone else's building
  • web servers have an “etag” which is attached to content not created by the web server itself, so that makes it a third party addition

But I think the distinction isn't clear. For example, Flickr uses “tags” when you mark your own content, but also “tags” when you annotate other people's content and also “tags” when the algorithms mark content automatically. And Gmail uses “labels” for your own emails, but also for other people's emails. Maybe this distinction is not relevant anymore.

Separately, “hashtags” are something that started on Twitter. They're tags, but using the # symbol. This is different from “channels” on IRC, where topics are named #dogs, #cats, etc. Slack and Discord get the # channel names from IRC. Twitter's use is different from channels. Instagram, YouTube, and other sites also have hashtags like Twitter.

(I wanted to write this down as a reference for myself, the next time I'm wondering about tags vs labels.)