Sander van Dragt's Notes
-
-
How to export Safari's Reading List into other services
I'm always collecting interesting links to read later, but like to try out a bunch of services. It's very easy to add links to Safari's reading list (particulary on iOS), so I used it quite a bit. Now I've switched to Pocket, I'd like to get those links out.
The thing you might not know is that Reading List items are stored as bookmarks.
Pocket can import browser bookmarks, but you might not want to import non Reading List items. This is how you do that:
Step by step
- In Safari, File > Export > Bookmarks. Save all your bookmarks, this is the disaster recovery backup.
- Delete all your non-reading list items.
- Export the bookmarks again, as
reading-list.html. Delete them from Safari. - Import the reading-list bookmark file into Pocket.
If you use Safari for regular bookmarks, restore the browser bookmarks without the reading list items:
- Import the bookmarks you exported in step 1.
- Delete your reading list items.
Bonus
If you have other browsers with bookmarks you want to add to your reading list, you can use the same idea to get them into pocket, using Safari as a way to prune any bookmarks you don't want to import.
-
Truly Muting Gmail Conversations
You might have noticed that after muting a Gmail conversation it pops back into the inbox.
Google says:
“Muted conversations will only pop back into your inbox ready for your attention if a new message in the conversation is addressed to you and no one else, or if you’re added to the ‘To’ or ‘CC’ line in a new message.”
If you find conversations are popping back into the inbox you can create a new Apps Script (from Google Drive) with the following contents and add a Timed project trigger (most easily available from the classic editor) to run it every 15 minutes:
function archiveMuted() { var threads = GmailApp.search('is:muted',0,100); GmailApp.moveThreadsToArchive(threads); }Adjust the number 100 to the amount of muted email threads you expect in your inbox every 15 minutes.
-
Global node packages
This is non-obvious, but might save you some time when using node based tooling:
- When installing a package globally in system node it works across all versions of node ✅.
- When installing it globally in a non-system node, it works only in that particular version of node.
-
Managing homebrew package updates
I've taken to upgrade
homebrewpackages once a week on Monday morning, and replacing any packages that cause issues in my workflow and managing them some other way. This seems to work quite well, and is a better workflow than waiting until a new package needs to be installed and then breaking lots of things. -
In the terminal the unix timestamp can be listed by
date +%s -
Privacy Forest
It turns out Mail's "Mail Privacy Protection" warns you it does not work, this can be because you have Network's "Limit IP Address Tracking" enabled (it also doesn't work with proxy's and VPNs). The latter works only in Mail and Safari, so if you use another main browser you could simply disable the "Limit IP Address Tracking" option and benefit from Mail privacy. How both these options work with iCloud Private Relay on Mac I'm not sure.
-
I typoed
npm ruin buildand I was not disappointed! -
Tip: set a weird background color on your npm build, so that it's apparent when you forget to run the watcher #webdev
-
Whenever Firefox is updated my pinned searches are restored and they have to be deleted again. I understand it's where money comes from, but in this workflow nobody is winning. #browser
