3,555 karma · joined December 25, 2016
Ideally, I'd like a bookmarking system which allows for referencing tab history, past visits and other tabs viewed in each visit's timeframe, manual tagging, external references, and more, yet that doesn't exist yet. I've looked into developing such an extension, yet tab history APIs are clunky enough I haven't bothered going further. If anyone knows of other extensions that fill this niche, I'd love to hear of them.
[0]: https://addons.mozilla.org/en-US/firefox/addon/panorama-view... This used to be a built-in feature of Firefox, which I used until I was forced to switch to the addon.
If you're doing generative artwork or any procedural work with a non-fixed palette, a good color library and working in linear or Oklab based colorspace is a must. Using sRGB or HSV/B when interpolating for gradients or generating palettes or complementary colors is extremely painful; a 50% brightness (HSV) yellow is visually much brighter than a 50% brightness purple, with similar issues cropping up for saturation. Balancing the lighting and contrast of programmatically generated colors is so much simpler when you have a perceptually uniform colorspace like OkLCh, or linear RGB if you're working with predefined hex values.
This might be worth looking into for Purism since it takes a lot less effort than painting each screwhead, which I believe has also been defeated without detection (it's mentioned in the linked article). Maybe a combined approach would work best for narrowing down the tampered with areas.
0: https://news.ycombinator.com/item?id=31897530
1: https://dys2p.com/en/2021-12-tamper-evident-protection.html
One aspect of working with digital books I haven't solved yet is syncing bookmarks and highlights across devices, or making them easily searchable. I'm sure there's a plugin or tool which makes it easy, yet I just haven't found it yet.
Engineering Magnetics -- practical introduction to the BH curve (49:56)
Here's the relevant section copied from my config, copied from right at the top:
;; Straight bootstrap
(defvar bootstrap-version)
(let ((bootstrap-file
(expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
(bootstrap-version 5))
(unless (file-exists-p bootstrap-file)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el"
'silent 'inhibit-cookies)
(goto-char (point-max))
(eval-print-last-sexp)))
(load bootstrap-file nil 'nomessage))
;; Set up use-package for tidier package configuration/installation
(straight-use-package 'use-package)
(setq straight-use-package-by-default t)
;; Add diminish, which makes it easier to customize lighters (minor mode display)
(use-package diminish)
I use it since it allows for transparent installations, meaning you can find the straight folder (in my case "~/.config/emacs/straight/repos/") and see git repos for all of your installed packages. From there you can edit them, commit to upstream, pull, all of the usual stuff.Another main reason to use it is that it allows for repeatable installations, something I had struggled with previously with `package.el`. Run `M-x straight-freeze-versions`, and you have a lock file made with the exact commits of all of the dependencies you're running. That way, you don't need to push your entire emacs config folder up to your dotfiles repo, and can get a new install of emacs set up feature-(and bug)-exact on new machines easily.
One gripe I have about it though is that flycheck no longer recognizes `use-package` syntax in my init file and throws a bunch of warnings as a result. If anyone knows a quick fix, please let me know!
I always find it interesting to track the updates for google fonts on their repos (when possible), since you can see fixed bugs and also sometimes find people who've forked it to add features.
That comment is from the submitter of the issue (and HN post), the poem is from Eliza Callahan (copy found here): https://durationandthebodyelizacallahan.cargo.site
The relevant excerpt: "I thought about my body. It’s past. It’s present… Which made me think about the word and. And. And. And. And. And. Then."
Wiki (linked from one of the githubs, has links to all apps and more info than the githubs): https://wiki.servarr.com/
Lidarr (Music): https://github.com/Lidarr/Lidarr
Radarr (Movies): https://github.com/radarr/radarr
Readarr (Books): https://github.com/readarr/readarr
Sonarr (TV): https://github.com/sonarr/sonarr
Also interesting, and even cheaper, is a paper spectrometer which attaches to a phone camera by the same designer as this Lego one [1].
As for the right, as some other commenters have noted it really isn't that bad to use your non-dominant hand with a mouse. Most of the movement precision comes from the wrist and elbow, rather than finer finger control.
There's a trailer they made for a recent update that shows off some of the terrain results:
(Not the previous commenter, yet thought this context was the most relevant)
For a real-ish world example of this effect, one of the OverTheWire wargame challenges [1] (spoilers for bandit) has a user login "shell" be a message saying login was prohibited, printed with `less`. When you resize your console window to a point where scrolling is needed and then attempt login, you can then interact with `less` and use '!' to run commands as the current user and print the key. Now you may say this isn't relevant to the `sudo` category of risk since who runs `sudo less` without also being able to run `sudo anything`, but many other apps use less as their pager, and some of those make much more sense to allow for general use with sudo (like say allowing all users to update apps, or any of hundreds of other insignificant things).
In short, I think the `sudo` and `setuid` notices might be better considered as "permission transparent", i.e. any permissions or access you hand to the listed tools are handed directly to the user as well. There are secure ways to not do this when writing programs, like by setting all of the real, effective, and saved uids [2] to something non-root (or the original calling user, if available) and totally wiping the capabilities sets before `exec()`ing anything, yet that's just what I remember from a computer security class a few years ago, you would probably be best off looking into it further if you're writing anything security sensitive.
[0]: https://gtfobins.github.io/gtfobins/less/