我的 2025 年月度订阅服务开销

我的 notion 里有一份专门记录月度、年度订阅的数据库。前几日整理时发现订阅的总月度开销已经超过了 600 元。

Share
我的 2025 年月度订阅服务开销
Photo by Jacob Padilla / Unsplash

在用的订阅

我的 notion 里有一份专门记录月度、年度订阅的数据库。前几日整理时发现订阅的总月度开销已经超过了 600 元。

其中消费最高的是联通宽带服务。前段时间搬了家,不再使用自如房源,宽带服务就得自己掏钱办理了。149 套餐是帝都联通千兆宽带最基础的套餐,结合两点位 FTTR,能覆盖 80 平的两室一厅户型。体验下来还是蛮不错的,速度比之前自如的长城 300M 宽带快得不是一星半点。

其次是 Digital Ocean 的服务器。这是我用 GitHub 学生包体验了一年后选择继续续费的。服务器位置在美国的旧金山,从帝都 ping 的延迟是 156ms。服务器的配置不算高,但胜在带宽几乎没有限制,每月 4T 流量等于无限流量。上面部署了我的软件 API 服务,FreshRSS 订阅服务,还有科学上网服务等。

然后是 Ghost Pro,也就是这个博客站点的订阅费用。我曾经用过 GitHub Page(Jekyll 静态)、Wordpress 等平台的博客站点服务,各有各的长处和缺点。 GitHub Page 虽然免费,但是发表文章很麻烦,还要处理 SEO 问题。Wordpress 或者 Hexo 等技术,需要自己购买服务器部署对应的系统。虽然我有自己的服务器,但是把博客部署上去需要防范网络攻击,而且同样要处理 SEO 问题(Google 不怎么青睐个人搭建的网站)。选来选去,不如选择一应俱全的 Ghost Pro,它自带 SEO 优化服务,支持发送邮件给网站订阅者,而且自带的后台系统、编辑器等都很好用,省心。

每年 99 刀的Apple Developer 会员服务,今年是第二年。幻想自己上架一个 App 挣点小钱,虽然上架了一个,但是钱是一分没挣得。

Grammarly 和 Medium 是写英文文章用的。迄今收益不到 10 刀,还无法提现。

剩下的 iCloud、Bear、Ulysses、Switch 会员、Apple music、爱奇艺、京东 Plus 就不多说了,工作生活常备的。

悠兔 VPN 是我一直在用的上网工具。节点多,质量好。奈何最近一直在涨价,再续费的话,就要按每月 29 元收费了。我自己搭建的🪜目前稳定可用,所以这项订阅可以取消了。

除了 DO 的服务器,我还在腾讯云上开了一个轻量应用服务器,目的是给软件备案以及部署软件的网站。

已经取消的订阅

买了电动车后,小黄车订阅就取消了。

MindNode 是一个画思维导图的 App,几年前临近毕业时写各种文档需要,就购买了订阅。虽说最近这两年也会偶尔画图,但开源免费的 Draw.io 够用了。

滴答清单是被 Apple 自带的提醒事项取代的。公司的网络用不了滴答清单(防数据泄漏)。

QQ 音乐是被 Apple Music 取代的。QQ 音乐的中文曲库比 Apple Music 多,但是它广告很多、界面杂乱,体验和性价比不如 Apple Music。

Read more

在 AI 时代,做 iOS 逆向分析有哪些高效手段

在 AI 时代,做 iOS 逆向分析有哪些高效手段

AI 发展如此迅猛,传统的代码手艺活已经被 AI 取代了很大一部分。除了生成代码外,AI 在其他的研发流程也能提升很多效率,例如这次要说的 AI 逆向分析。 在手工时代,我们逆向分析一个 iOS app,通常是使用 Hopper 或者 IDA 等软件查看解密的 Mach-O,然后利用软件提供的能力加上人工去分析逻辑流程。这个过程还要求我们懂一些基础的汇编语法。有时候还要去猜测哪些类哪些方法是负责某个逻辑,靠试验去验证。 现在来到了大模型时代,AI 不仅能自己通过一些简单的工具去分析 ipa 和 Mach-O ,也能使用更准更稳的 MCP、Skill 工具来做深度的分析。 Hopper MCP Hopper 在新版本支持了 MCP Server。 把 framework、Mach-O 或者解密后的 IPA 直接丢给它,

By Gray
Cinder:基于 Swift Macro 与 Mach-O Section 的解耦注册机制

Cinder:基于 Swift Macro 与 Mach-O Section 的解耦注册机制

Cinder(Github) 是一个无需逐模块启动注册、支持字符串、类型和函数调用的 Swift 编译期注册框架。 Cinder 是什么 在 iOS app 里借助 Mach-O 注册能力做一些二进制的插桩操作并不罕见。以往这些操作大都使用 objc runtime ,借助 __attribute__((used)) 和 __attribute__((section("name"))) 实现。在 Swift 上实现有一些难度,因为 Swift runtime 能力弱,以及早期的版本没有类似 objc 的 __attribute__ 能力。 * 在 Swift 5.10 版本,Apple 提供了 @_used 和

By Gray