Archive for November 8, 2022

Tuesday, November 8, 2022

Migrating From Twitter to Mastodon

Twitter has lots of problems, but it also has the advantages of lots of users I want to follow and some great client apps. I also haven’t been impressed with the alternatives. However, some people I follow are leaving for Mastodon and cohost, so I’m starting to look at them a bit. What I like about Mastodon is that it supports RSS—just add .rss to the end of a user’s URL.

Mike Rockwell:

Mastodon is like taking Twitter’s short-form, approachable publishing mechanism and combining it with email’s distributed, protocol-based system. And while that’s cool for nerdy folks like you and me, I understand that it can sound a bit intimidating. Honestly, you can also just sign up for an account and start using it without ever knowing about those underlying technologies.

If you’re migrating from Twitter, though, you might benefit from some of what I’ve learned along the way. Here’s my recommendations for migrating and how you can get the most out of it[…]

Mark Hughes:

Pick any instance except or, those are run by mstdn gGmbh (aka Gargamel), gigantic, massively overloaded, poorly moderated now and for the foreseeable future. Also don’t join an instance blocked by everyone else, see the list of moderated servers - if in doubt, ask a friend on already on fediverse.


[Content Warning] anything that might annoy or trigger someone. If you don’t do this, you will be rapidly blocked by almost everyone. This is maybe the single most important bit of etiquette.


Full-text search doesn’t exist mostly; some servers allow searching your own toot text only.

Nicolas Magand:

The things is — since I continue to follow a few beloved Twitter accounts thanks to the magic of RSS and one of Nitter instances, allowing me to still consume a lot of tweets daily — I don’t really miss Twitter. Maybe that’s why deleting my account was not as emotional as I thought it would be. To me, it didn’t feel like leaving the party.

Twitter no longer supports RSS, but you can get RSS feeds for individual Twitter users through Nitter or Feedbin.


Detecting and Affecting Lockdown Mode in Ventura

Joel Bruner:

Lockdown mode is new feature for macOS Ventura and for many MacAdmins we’ve been wondering how to detect this state. Why? Lockdown mode affects how macOS and Mac apps behave. This is something a helpdesk might like to know when trying to troubleshoot an issue. Also, due to some ambiguous wording by Apple, they made it seem like MDM Config Profiles could not be installed at all when in Lockdown mode, however this is not always the case.


[The defaults] key uses the LDM acronym/mnemonic: LDMGlobalEnabled.


This totally blew me away: You can enable and disable macOS Lockdown mode by writing to your .GlobalPreferences preference domain! […] That’s right, it’s not written to a rootless/SIP protected file like TCC.db!


PowerPoint’s Connected Experiences

Roger González Gutiérrez (via Hacker News):

Microsoft is phoning home the content of your PowerPoint slides.


Make a new slide with a title of your choice. Choose “Designer.” Look at your network traffic as you do.

It makes sense: the tool is reading your text and suggesting designs/delivering stock photography. But this means that any data that you might want to keep private is being sent to Microsoft.


Connected experiences that analyze your content are experiences that use your Office content to provide you with design recommendations, editing suggestions, data insights, and similar features. For example, PowerPoint Designer or Translator.

It looks like you can turn off PowerPoint Designer in the preferences, though it’s not obvious that this pane of the pre-Ventura-style preferences window lets you scroll down to see more settings.


Swift Concurrency Tips

Wojciech Kulik (Hacker News):

If you add @MainActor attribute to a function, it is not the same as wrapping the whole method in DispatchQueue.main.async. If your method contains await keyword, the code will be split into two pieces – one before await and one after await, and as mentioned before, once the method hits await another pending call can start running even before the first one is finished.


You should remember to always mark a code with @MainActor if you require the Main Thread. You shouldn’t make implicit assumptions. The problem is when you suddenly start adding async-await to an existing project that was implemented without using Swift Concurrency. You can easily get into trouble if you don’t pay enough attention when mixing old code with async-await.


First of all, you should avoid long-running synchronous work in Task. For that, you should use GCD and custom queues. This way you will prevent blocking unintentionally some TaskPriority. However, you should be also aware that having too many custom queues is not recommended because of possible Thread Explosion. Therefore, you may try using OperationQueue to limit concurrency.


[If] you test your code on a simulator each TaskPriority will be limited to only 1 task running at the same time.


Update (2022-11-09): Rob Jonson:

Another misleading article saying @MainActor guarantees a function runs on the main thread. It doesn’t. It only guarantees that code you compile will call on the main thread. System callbacks can still call this function on any thread. Apple should document/emphasise this.