惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园_首页
M
MIT News - Artificial intelligence
月光博客
月光博客
WordPress大学
WordPress大学
Google DeepMind News
Google DeepMind News
Y
Y Combinator Blog
The Cloudflare Blog
D
Docker
阮一峰的网络日志
阮一峰的网络日志
L
LangChain Blog
Engineering at Meta
Engineering at Meta
Last Week in AI
Last Week in AI
Vercel News
Vercel News
MyScale Blog
MyScale Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Martin Fowler
Martin Fowler
U
Unit 42
Stack Overflow Blog
Stack Overflow Blog
A
About on SuperTechFans
The Register - Security
The Register - Security
B
Blog
Recorded Future
Recorded Future
J
Java Code Geeks
Recent Announcements
Recent Announcements
Microsoft Security Blog
Microsoft Security Blog
H
Help Net Security
F
Fortinet All Blogs
B
Blog RSS Feed
Project Zero
Project Zero
The Hacker News
The Hacker News
T
Threatpost
D
Darknet – Hacking Tools, Hacker News & Cyber Security
L
LINUX DO - 热门话题
Jina AI
Jina AI
宝玉的分享
宝玉的分享
云风的 BLOG
云风的 BLOG
AWS News Blog
AWS News Blog
G
Google Developers Blog
GbyAI
GbyAI
S
Securelist
T
Tenable Blog
博客园 - 【当耐特】
Security Latest
Security Latest
人人都是产品经理
人人都是产品经理
T
Tor Project blog
Latest news
Latest news
P
Proofpoint News Feed
T
The Blog of Author Tim Ferriss

Pierce Freeman

A browser for agents | Pierce Freeman The grey market of podcast appearances The way I travel | Pierce Freeman Fixing slow AWS uploads | Pierce Freeman Local tools should still use vaults We solved scratch content first Starting a podcast in 2025 Being late but still being early Automating our home video imports Adding my parents to tailscale A deep dive on agent sandboxes Language servers for AI | Pierce Freeman My simple home podcast studio We need centralized infrastructure | Pierce Freeman Coercing agents to follow conventions using AST validation My unified theory of social selling My personal backup strategy | Pierce Freeman July updates to the homelab How the KV Cache works httpx is the right way to do web requests in Python Reputation is becoming everything | Pierce Freeman Building a (kind of) invisible mac app Updated knowledge in language models Making an ascii animation | Pierce Freeman How speculative decoding works | Pierce Freeman Under the hood of Claude Code Doing things because they're easy, not hard Speeding up sideeffects with JIT in mountaineer Firehot for hot reloading in Python Misadventures in Python hot reloading How text diffusion works | Pierce Freeman The tenacity of modern LLMs The ergonomics of rails | Pierce Freeman How language servers work | Pierce Freeman Just add eggs | Pierce Freeman Unfortunately SEO still matters | Pierce Freeman The futility of human-only web requirements Setting up Input Leap | Pierce Freeman Checking in on Waymo | Pierce Freeman The react revolution | Pierce Freeman Speeding up many small transfers to a unifi nas Quick notes on swift libraries AI engineering is a different animal San Francisco | Pierce Freeman Debugging a mountaineer rendering segfault Building our home network | Pierce Freeman Introducing Envelope.dev | Pierce Freeman Legacy code and AI copilots Typehinting from day-zero | Pierce Freeman Generating database migrations with acyclic graphs Lofoten | Pierce Freeman Mountaineer v0.1: Webapps in Python and React Constraining LLM Outputs | Pierce Freeman Passthrough above all | Pierce Freeman Accuracy in kudos | Pierce Freeman How quick we are to adapt The curious case of LM repetition Costa Rica | Pierce Freeman Debugging chrome extensions with system-level logging Speeding up runpod | Pierce Freeman Inline footnotes with html templates Parsing Common Crawl in a day for $60 An era of rich CLI All or nothing with remote work The Next 10 Years | Pierce Freeman Adding wheels to flash-attention | Pierce Freeman LLMs as interdisciplinary agents | Pierce Freeman New Zealand | Pierce Freeman Representations in autoregressive models | Pierce Freeman Let's talk about Siri | Pierce Freeman Minimum viable public infrastructure | Pierce Freeman Reasoning vs. Memorization in LLMs Automatically migrate enums in alembic Greater sequence lengths will set us free On learning to ski | Pierce Freeman Dolomites | Pierce Freeman Using grpc with node and typescript Opportunity years | Pierce Freeman Buzzword peaks and valleys | Pierce Freeman Buenos Aires | Pierce Freeman Network routing interaction on MacOS Independent work: November recap | Pierce Freeman Debugging slow pytorch training performance The provenance of copy and paste Debugging tips for neural network training Patagonia | Pierce Freeman Santiago | Pierce Freeman My 2022 digital travel kit AWS vs GCP - GPU Availability V2 Independent work: October recap | Pierce Freeman Planning Patagonia | Pierce Freeman Relationship modeling | Pierce Freeman The power of status updates A new chapter | Pierce Freeman Give my library a coffee shop AWS vs GCP - GPU Availability V1 Switzerland | Pierce Freeman Headfull browsers beat headless | Pierce Freeman Webcrawling tradeoffs | Pierce Freeman Copenhagen | Pierce Freeman
Local network config on macOS
2025-02-28 · via Pierce Freeman

Screenshot of Local Network Privacy Settings

Since Sequoia (15.0), versions of macOS have shipped with a "Local Network" privacy setting that governs access to devices on your local network. It's a good idea but it could use a redesign.

When a third party app requests access to any device that shares your local network (ie. a private IP address provided by your router instead of a public IP address), it checks your Local Network permissions. If this app has never requested access to your local network before, it will pop up a dialogue asking you to approve it. So far so reasonable.

Allow XCode to find devices on the network

Because this alert pops up any time the networking APIs are accessed, it sometimes happens right on first launch or when you're not intuitively expecting it to. And in those cases, no, I don't want to allow blanket permission for some software to access my local network. That's a security feature that's working as intended.

From that point forward, you can't access any local devices from that app's command line or browser. And no matter how long ago you gave that initial deny, the network connection is still blacklisted.

In theory, applications can detect that they've been blocked and show a helpful error message. If TCP requests are being made through NWConnection, the connection will enter a waiting state when access is denied. localNetworkDenied indicates that the system has denied local network access.1 Bonjour has a similar callback.

In reality, most applications don't implement this handler or are using different networking APIs that don't have access to the same state. User-facing errors end up being incredibly cryptic about what's going on.

In third party Terminals like Warp or Ghostty2:

$ ssh [email protected]
ssh: connect to host 192.168.1.60 port 22: No route to host

Or in Chrome:

Screenshot of Chrome Error

These errors themselves aren't Apple's fault. Developers could implement a fallback that checks the Local Network permissions for blocks. But until they do, user experience is hurt for the worse by this new privacy setting.

Instead, I'd suggest Apple redesign these privacy settings to consider applications that don't enumerate this full universe of permission errors:

  • Pop up a Control Center notification when network access is blocked. These notifications are non-blocking and give the additional context of what's being blocked. They should also be infrequent: they can be capped at once per app launch.
  • Expand the NSPrivacy framework to let apps check their system permissions on bootup without having to make a proactive request to NWConnection.

Sometimes platforms can throw too much weight on the shoulders of developers. If all third party apps immediately adopted the new callbacks, this would be a non-issue. But for software that's older or just doesn't consider the changes, it's a worse experience for users. That's on the platform to fix, not just the ecosystem.

  1. Full details in the tech note. ↩

  2. The default Terminal is automatically whitelisted to allow local network access. ↩