{"id":38508,"date":"2023-02-17T16:24:52","date_gmt":"2023-02-17T21:24:52","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=38508"},"modified":"2023-07-13T11:51:40","modified_gmt":"2023-07-13T15:51:40","slug":"homecoming-for-mastodon-2-0","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2023\/02\/17\/homecoming-for-mastodon-2-0\/","title":{"rendered":"Homecoming for Mastodon 2.0"},"content":{"rendered":"<p><a href=\"https:\/\/underpassapp.com\/news\/2023-2-16.html\">Jeff Johnson<\/a>:<\/p>\n<blockquote cite=\"https:\/\/underpassapp.com\/news\/2023-2-16.html\"><p>As before, when you&rsquo;re viewing a Mastodon page in another instance, clicking the extension icon in Safari&rsquo;s toolbar opens that page in your own instance. On the other hand, when you&rsquo;re viewing a Mastodon page in your own instance, clicking the extension icon in Safari&rsquo;s toolbar opens that page in the original instance.<\/p><p>[&#8230;]<\/p><p>Returning to motivation, why would you want to open a Mastodon page in its original instance when you&rsquo;re already reading it in your instance? The answer is that a Mastodon instance is a kind of island. It can only show you the data stored locally. Unlike a centralized network such as Twitter or Facebook, Mastodon is decentralized and distributed: no individual instance has a copy of <em>all<\/em> the data encompassing the federation of Mastodon, only a subset of the data. Every Mastodon instance has gaps in its data, blind spots. An instance stores all of the posts of its local accounts, and it downloads new posts of anyone followed by its local accounts, as notified by the <a href=\"https:\/\/en.wikipedia.org\/wiki\/ActivityPub\">ActivityPub protocol<\/a>, but your instance doesn&rsquo;t download <em>old<\/em> posts from other instances. This is why when you view someone else&rsquo;s account profile in your instance, you might not see their older posts (unless someone else on your own instance was already following that account).<\/p><p>The data gaps are especially problematic on smaller Mastodon instances with fewer accounts, because on a smaller instance it&rsquo;s less likely that another account on your instance was already following someone you&rsquo;re interested in.<\/p><\/blockquote>\n<p>This is a great new feature, since the built-in <strong>Open original page<\/strong> menu command is not in a convenient location. It&rsquo;s also useful for finding the RSS feed of a user.<\/p>\n<p>Unfortunately, there is no way to assign keyboard shortcuts to extension buttons in Safari. So I wrote an AppleScript to click the button:<\/p>\n<pre>tell application \"System Events\"\n    tell application process \"Safari\"\n        set _items to entire contents of toolbar 1 of window 1\n        repeat with _item in _items\n            if _item's class is button and _item's description is \"Homecoming for Mastodon\" then\n                click _item\n                return\n            end if\n        end repeat\n    end tell\nend tell<\/pre>\n<p>and used <a href=\"https:\/\/redsweater.com\/fastscripts\/\">FastScripts<\/a> to assign the script a keyboard shortcut.<\/p>\n<p>Unfortunately, the script has yet to work for me <em>when run from FastScripts<\/em>, even though I gave Accessibility access to both FastScripts and FastScripts Script Runner. It always fails with:<\/p>\n<blockquote><p>Error Number: -1719<\/p>\n<p>System Events got an error: Can&rsquo;t get toolbar 1 of window 1 of application process \"Safari\". Invalid index.<\/p><\/blockquote>\n<p>I assume this is some sort of TCC issue since the script sometimes works from Script Debugger but sometimes fails with a similar error.<\/p>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2023\/02\/17\/creating-a-personal-mastodon-instance\/\">Creating a Personal Mastodon Instance<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2023\/01\/24\/homecoming-for-mastodon-1-1\/\">Homecoming for Mastodon 1.1<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2022\/11\/08\/migrating-from-twitter-to-mastodon\/\">Migrating From Twitter to Mastodon<\/a><\/li>\n<\/ul>\n\n<p id=\"homecoming-for-mastodon-2-0-update-2023-02-21\">Update (2023-02-21): <a href=\"https:\/\/appdot.net\/@lapcatsoftware\/109883053469197740\">Jeff Johnson<\/a>:<\/p>\n<blockquote cite=\"https:\/\/appdot.net\/@lapcatsoftware\/109883053469197740\"><p>Homecoming for Mastodon version 2.1 is now available in the Mac App Store.<\/p><p>What&rsquo;s New:\nControl-Command-M keyboard shortcut!<\/p><\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Jeff Johnson: As before, when you&rsquo;re viewing a Mastodon page in another instance, clicking the extension icon in Safari&rsquo;s toolbar opens that page in your own instance. On the other hand, when you&rsquo;re viewing a Mastodon page in your own instance, clicking the extension icon in Safari&rsquo;s toolbar opens that page in the original instance.[&#8230;]Returning [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2023-02-17T21:24:55Z","apple_news_api_id":"a5053a42-6ecf-4c57-aecb-80972c91bd56","apple_news_api_modified_at":"2023-07-13T15:51:43Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAAAQ==","apple_news_api_share_url":"https:\/\/apple.news\/ApQU6Qm7PTFeuy4CXLJG9Vg","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[2],"tags":[2430,159,1624,2341,31,2185,26,125,30,32,2223,1718,52,103,2246,1960],"class_list":["post-38508","post","type-post","status-publish","format-standard","hentry","category-technology","tag-activitypub","tag-applescript","tag-fastscripts","tag-homecoming-for-mastodon","tag-ios","tag-ios-16","tag-iosapp","tag-keyboardshortcuts","tag-mac","tag-macapp","tag-macos-13-ventura","tag-mastodon","tag-rss","tag-safari","tag-safari-extensions","tag-transparency-consent-and-control-tcc"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/38508","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=38508"}],"version-history":[{"count":2,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/38508\/revisions"}],"predecessor-version":[{"id":38525,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/38508\/revisions\/38525"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=38508"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=38508"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=38508"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}