在 FreeBSD 上使用 ss5 搭建 Socks5 代理服务器
Aug 07, 2025
ss5 作为 Socks5 代理服务器的配置非常简单。 安装 ss5 $ sudo pkg install ss5 ss5 默认是以 nobody 身份运行的,它的 pid 文件路径是硬编码在 /var/run/ss5/ss5.pid ,所以在启动服务之前需要先配置一下 pid 目录的权限 …
在 FreeBSD 上加载自定义的 sshd_conf 配置
Aug 03, 2025
在自动化配置服务器的时候,需要统一配置 sshd_conf 文件,但是又不想使用诸如 sed,awk 之类的工具对原文件进行修改。 有一个简单的方案,就是让 sshd 先加载原配置,然后再加载我们的自定义配置,这样自定义配置就可以覆盖原配置的值,就能做到不改动原配置的情况下进行自定义。 …
UITextView 回退到 TextKit 1
Jul 27, 2025
iOS 16 开始把 TextKit 2 作为默认的文本渲染引擎,但是一直都有很多小问题,直到 iOS 17 中的 TextKit 2.1 才达到稳定状态,但是在 iOS 18 中苹果又对 TextKit 2 进行了大版本更新,最终对开发者的影响就是如果使用 TextKit 2 而且要兼容 iOS 16 的用户,那么必须自己处理一些列的兼容性问题,这对开发者来说显然得不偿失(即使你只想使用 UITextView 为产品提供简单的编辑功能)。 …
Firefox 禁用磁盘缓存
Jul 13, 2025
默认设置下,Firefox 浏览器会同时使用内存和磁盘的作为缓存,在内存充足的情况下我们可以关闭磁盘缓存,仅使用内存缓存来提高性能。 about:config 进入高级设置页面,搜索 browser.cache.disk.enable ,把值修改为 false: …
统一替换源码中行尾的回车换行
Jul 08, 2025
先看一下不同操作系统各自默认的行尾换行符: macOS: CR Linux/Unix: LF Windows: CRLF 如果在 git 的配置中: [core] autocrlf = auto 如果 autocrlf 配置为 auto,那么在 macOS 上的源码检出的时候,行尾就会被替换为 CR ,但是现在 macOS 上早已经和 Linux/Unix 一样统一使用 LF 作为行尾换行符了。 …
理解 UIControl 的 State 用法
Jun 25, 2025
UIControl 组件有 normal,disabled 和 selected 3 种状态,normal 和 selected 状态下又有 2 种额外的状态 disabled 和 highlighted 状态用来表示被点击时的状态。 所以 state 一共有 6 种有效组合: …
在 Xcode 中把 Folder 转为 Group
Jun 20, 2025
使用 Xcode 管理项目时,文件的组织形式有 Group 和 Folder 两种方式。 Group 是逻辑目录,只有显示在里面的文件会被包含在项目里进行编译、打包。 Folder 是磁盘上的文件夹,里面所有的文件都会包含着项目里进行编译、打包。 …
在 macOS 26 中找回 LaunchPad (启动台)
Jun 14, 2025
打开终端执行以下两条命令: $ sudo mkdir -p /Library/Preferences/FeatureFlags/Domain $ sudo defaults write /Library/Preferences/FeatureFlags/Domain/SpotlightUI.plist SpotlightPlus -dict Enabled -bool false 重启系统,然后使用快捷键 ⌘ + 空格 打开 Spotlight, 然后搜索 LaunchPad ,把它拖到 Docker 栏中就可以了。 …
让 Apple AI 相关的域名走代理
Jun 13, 2025
Apple Intelligence、Siri 和搜索 Apple 设备必须能够连接到以下主机,才能处理使用私有云计算的 Apple Intelligence 请求以及处理 Siri 请求,包括听写和在 Apple App 中搜索。 …
iOS 开发:适配 iOS 26
Jun 12, 2025
使用宏判断 SDK 版本 iOS 26 发布了开发者测试版本,Xcode 26 beta 也来了。 开发者需要提前适配新系统,同时有需要兼顾正式版本能正常编译,最好的方案就是根据当前编译的 SDK 版本进行处理,因为要在编译期进行,所以最佳方案就是使用宏: …