人生到處知何似,應似飛鴻踏雪泥

Notes

I started MiaoYan in 2020, and six years later it's on iPhone and iPad too. It's a native Markdown editor written in Swift, one App Store purchase covers Mac, iPhone and iPad with the same iCloud Drive folder, and the Mac app stays free and open source.
miaoyan.app/

笑死了,居然经常小伙伴问我如何把自己改造得不这么程序员,以及刚好双十一怎么买一些衣服来搭配一下,哈哈哈,真没想到系列,刚好这里理一理分享给大伙,说不定用得上。

首先我认为不是先去买衣服,而是搜索一下周边比较不错的理发店,可以是之前自己理发价格的 double 的那种,然后约一个 Tony 老师,问问他你的头型适合什么发型,然后让他帮你设计一下,好好剪一下,不需要染发烫发,我认为这个反而是最低成本让自己看着清爽舒服一点的性价比最高的方式,遇到不合适的,就后面多找几个Tony试试,或者问问身边你感觉头发剪的不错的朋友在哪儿剪的。

然后第二步,才是买衣服,听我的一定一定假如是非在家穿的衣服,尽量不要选择优衣库、MUJI,之前几年我喜欢极简,买了不少 MUJI,现在看着有一种老大爷衣柜的感觉,除非你和金城武长得差不多,那就可以随便穿,特别是优衣库性价比非常高,但是剪裁其实一般,很难把你撑起来,不知道自己适合哪一个品牌,一定一定不要网购,而是去线下的商场转转,找在外面看着还不错的,进去找到导购给你推荐搭配,或者带上你的女友一起去,让他帮你选选,线下试衣服非常重要,因为可以帮你搭配里面穿的,外面穿的以及裤子一起来看,会好不少,也会让你自信不少。

说到选衣服,之前我犯了一个错误,特别喜欢三叶草、匡威这类,这几年感觉三叶草的设计越来越不好看了,匡威的鞋穿着又重又脚疼,首先衣服鞋子得穿着舒服,因为舒服你才愿意穿,不然放在那儿就吃灰了,这也是为啥需要线下试的原因,最近两年买了不少,尝试了一些还不错的品牌,假如家附近线下有,可以去试试。

说到品牌,我不太喜欢那种太贵的,感觉不值得这个价格,记得有一个冬天想买一个外套,去可隆试了试,看是好看,一看价格3000多,真不知道是谁给他的勇气,买不起买不起,当然我个人感觉 LULU 其实也不适合程序员,适合真搞瑜伽的,而且价格贵,店里太香了不是很喜欢。除了太贵,当然也不建议你买太多太便宜的,反而放到那儿浪费空间,可以买那种看着有点小贵但是质量非常好的。

假如你喜欢户外运动类的,很推荐去试试安踏冠军这个品牌,最近买了2条他家的裤子和一双鞋子,非常舒服好穿,也没有原来的 Logo,完全可以当做鸟的平替,而且版型很好。想买冬天衣服也可以是去试试哥伦比亚,偏老牌,虽然没有现在营销品牌那么潮,但是我认为很耐穿耐看。然后纯户外那种,我非常推荐 Montbell,国内线下店不是很多,假如你去日本旅游一定要去看看,他家不贵,但是衣服穿着也很舒服暖和耐穿,版型也适合亚洲人。然后假如想更户外一点,推荐Patagonia 巴塔,个人感觉很有型,质量也非常好。实在找不到适合自己的,也可以去 Nike 他家的 Jordan 这个子品牌看看,有些我感觉也不错。

假如你喜欢偏休闲类的,上面聊到不要去买优衣库MUJI外,也不推荐去买那种商场看着很小众性冷淡的那种衣服,我踩过坑,价格小贵质量很差,试穿时候感觉不错,穿一段时间就很旧的感觉,休闲类的也非常推荐去线下试试,比如想买牛仔裤,可以去 Levi's 让导购推荐适合你身材的,想买稍正式一点的,可以去看看 拉夫劳伦、Lacoste、Tommy、COS、Timberland,虽然看着有点年纪大,但是一般都可以挑出适合你的来,品质我感觉都不错,一定要多试,找到自己最最喜欢的。

关于鞋子,还是优先最舒服的,然后看是否好看,是否搭配你经常穿的衣服,之前我挺喜欢 Timberland 家的一些鞋子,迪桑特家有几双鞋子也很舒服,他家衣服太贵了不建议买,然后安踏冠军家的一些跑步鞋运动鞋很舒服很耐穿,然后 Keen 我感觉也有几双好看的,丑帅丑帅的那种,虽然不软但是穿着我冬天穿感觉还挺舒服的,亚瑟士家也有几双好看舒服的鞋子也可以去看看,不过我没有买过 Hoka、萨洛蒙、昂跑这几个品牌,每次想买,去试了试感觉都不是很适合我,就放弃了,当然你可以试试,不过我感觉都有点小贵。

最后,最有效的还是尽量让自己不胖,人到中年,不胖不掉头发不油,每天洗澡洗脸,每天换衣服,干净一点反而比上面选衣服更好,然后稍微大太阳的时候防晒一下,然后睡好一点,多喝水,找一个自己喜欢的运动,我喜欢的运动是骑车,几乎每天骑10km的样子,非常舒服,不像其他运动那么无聊。

碎碎念终于完成了,有一点像假如你把自己也当做一个产品来做,如何改造你的产品让他看着舒服一点,不别扭,其实也和这个差不多。

展开全文

看一下今晚发布的新 iPad mini8,立马冒出一句话苹果是在哪儿进货的 2026 年的还是 60hz 的 OLED 屏幕的?

依然觉得我这两个小设备最适合我,完全可以不换 mini8 或者 duo 了。

潮流周刊居然已经写了 6 年多了,发布到了 287 期了,AI 时代前的产物,比 ChatGPT 的发布还早 2 年,欢迎大伙有事没事去看看 weekly.tw93.fun/ ,找找有没有自己顺手的工具、不错的文章以及围观我的封面拍照,哈哈。

非常感谢支持,这里邮件本身是我手写的,多语言使用 AI 来翻译的,考虑到各个国家的阅读习惯,我尽量用的当地的语言发送

Mole CLI just passed 72.8K stars, and October is its busiest month yet: 18 releases across Mac and Windows.

The Windows CLI now matches the Mac one, any AI agent can drive it with the official skill, and mo slim strips Intel code from universal apps.

github.com/tw93/Mole

给关注者比较多的小伙伴一些建议。

假如你以后想做自己的独立产品,那就不太建议你去接商单,一方面这可能是你未来用户不喜欢的点,另一方面会让你感觉还是自媒体来钱快,可能弄独立开发就坚持不下去了。

刚刚做了一个非常简单但有用的事情,几句话把我的 Android 小平板上的系统广告、无用通知、牛皮藓图标、以及没有用的预装应用全部干掉了,非常适合当你刚买了Android 手机、平板,或者是给你的家人来优化手机,现在我的 Android 小平板非常干净了。

首先把 Android 机器使用自带数据线连接

今天去线下摸了摸,感觉质感和尺寸都非常好,在折叠屏里面应该是最好的,但是我觉得还是有点重了,还是更喜欢我的 Air。

0:25

AI 的确让应用的迭代速度大幅增强,但是对于普通用户而言,好像更新意愿却不高,看看大伙的 App Store 有多少应用没有更新的?

Mole CLI 开源版本最近更新了非常多的很不错的功能,想着这个推一起告诉大伙,持续迭代,当然非常高兴一转眼已经 72.5K Star 了!

首先首先,Windows 版本的 CLI 经过最近密集的 7个版本迭代,集中迭代了非常多功能,终于终于和 Mac

书接上上文,前两篇文章我们聊到了客户端研发的技术选型考虑,以及我是如何在 Mac 上开发 Windows 软件的,当时留了一个尾巴,今晚来和大伙聊聊,我们在进行客户端应用研发的时候,如何利用各种技术语言的特性来帮助我们产品做得更好。

比如说写 Mac 应用你的主语言是

非常推荐小伙伴听一听这一期的小珺和曾鸣聊 AI 时代的产业观、组织升级、以及各种思考。

很有高度,让我受益匪浅,我发现我最近很喜欢听这种长访谈,很有人味!

Kaku 也可以远程使用啦 kaku.fun/

最近上线了一个好用功能,在 Mac Kaku 里运行 kaku remote,会生成一个链接,换台电脑或者 Pad,在任何浏览器打开就能顺畅操作家里这台 Mac 的 Kaku,特别推荐浏览器也全屏使用。

特别适合当你家里是一台性能不错的 Mac,以及你想在外用的场景。

书接上回,接着聊昨晚聊的多端技术选型,今天我们来聊第二篇,说说我是怎么在 Mac 上来开发原生 Windows 软件的,以及我是如何搭建编译、测试环境的,还有最近一个月做 Mole Windows 版踩过的一些有意思的坑。

技术栈上,Mac 版本的 Mole 使用的也是原生的 Swift + SwiftUI,能够让我很好调用系统能力以及非常好的性能体验,想着不将就,所以在 Windows 上我也是想着直接用本身写 Windows 软件最直接的语言, C# 加 WinUI 3,跑在 .NET 10 上,过程虽然难搞,但是相比十年前我了解轮子哥谈的 Windows 开发要简单好理解一些了。

Windows 上的原生界面框架其实挺多的,包括很多年前了解过的 Win32、WinForms、WPF、UWP 这一波,WPF 是 2006 年出的,到现在还在维护,但控件和设计语言不是很好看,非常上一代的感觉,然后 UWP 又被沙盒和应用商店给绑定住,现在微软主推的是 Windows App SDK 里的 WinUI 3,界面框架从系统里面拆出来单独发版,这样就有一个好处,普通的 Win32 程序也能用,基础组件就是 Windows 11 自己的 Fluent 风格,我还挺喜欢,高分屏缩放和 ARM64 都是原生支持。

然后这里 .NET 10 是去年 11 月发的长期支持版本,打包时我把运行时一起打进去,用户不需要另外装 .NET,x64 和 ARM64 这里各出了一个原生安装包,骁龙的 Windows 笔记本就不要走转译了,相当于尽量让用户使用简单不折腾。这里安装和更新用的是开源的 Velopack 框架,可以很方便做增量更新,也很好用。

工程师开始写代码时候肯定会想到能复用尽量复用,所以我开始写的时候也非常想复用 Mac 的 Swift 代码,后面让 AI 分析了一下,十几万行代码 Swift 代码可以脱离 AppKit、SwiftUI 这些系统框架使用的20%都没有,处理的逻辑也是 ~/Library 这类 macOS自己的路径规则,基本用不上,所以 Windows 版几乎是从零开始写的。

两边的关系其实非常简单,外观和交互我尽量完全一致,尽可能让大家意识里面认为的 Windows 软件不那么精致美观的感觉在这里也保持我认为好的水平,然后底层代码各写各的,关于视觉的一致性还原有了AI以后很简单,我把原本的 Mac 版写在 Swift 里的颜色、字号、间距、圆角这些设计 token,直接写了一个脚本生成为 Windows 里面XAML 资源,文案也是从 Mac 的多语言文件转成 Windows 的格式,11 种语言一起转过来,甚至大家看到的菜单栏里面的那个runner动画也是用的同一个脚本同步来的。

虽说同步,可能大家会觉得很简单,其实这里需要花点精力防止 AI 直接给你跑偏了,每次同步其实我会记录对应的是Mac的哪一个提交,这样两边就不会走偏去,然后功能上会有一份 SYNC.md 当做对账表,Mac 每加一个功能、修一个安全问题,Windows 这边都会标清楚哪些是已经实现、哪些是刻意不同还是不适用,以及为什么这样判断。

通过这两个机制,我可以很好的让两边的底层完全各写各的,但是又能很好地保持功能对齐,完全不需要刻意去硬写一层兼容去磨平,反而会变复杂,这里能复用的反而是设计、文案以及踩坑后定下来的各种规则,反而这些是 AI 非常喜欢的“能力抽象层”,也就是说随着时代发展,慢慢所谓的代码抽象没有那么重要了,反而是规则抽象更重要。

另外 Windows 开发还有一块比 Mac 要麻烦不少,就是证书签名,没有签名的,一打开会出现「Windows已保护你的电脑」,甚至 Windows 11 的智能应用控制会直接不让运行,国内不少安全软件也会把没签名的程序当成可疑报毒,这和 Mac 上没签名、没公证的软件提示「已损坏」差不多,平时 Mac 上大家还可以跑一条命令解掉,Windows 上想正规分发,这一步没有啥好办法,就是需要。

调研下来微软的签名生态的确比苹果差太多了,微软有自己的 Azure Artifact Signing,一个月 9.99 美元最省事,居然个人只开放给美国和加拿大的开发者,没办法使用,很奇葩的规定,然后行业还规定从 2023 年起签名私钥必须放在硬件或者云端 HSM 里,不能再是电脑上的一个文件,今年起单张证书最长只能用 460 天,差不多一年多就得换一次证书

最后我买的是 Certum 的云端 OV 证书,3 年 3百多美元,签名时登录电脑上的 SimplySign,再用手机上的 App 给一个动态码,SmartScreen 的信誉也跟着证书上审核过的名字慢慢积累。刚开始一段时间的签名包在 ThinkPad 上也会一样被 SmartScreen 拦了下来,后来我每次发版都把安装包提交到微软的恶意软件分析门户,让信誉慢慢积累起来,而且 SimplySign 的登录会话闲置几个小时就会断开,需要再次输入动态码才能继续签名,所以这里其实很难做成云端自动打包。

证书搞定后,就是开发环境的事情了,我的研发要求是代码和 AI 的上下文必须全留在 Mac 上,Mac 用习惯了,真的很难使用 Windows 去研发,这里 Windows 只负责编译和验证效果和各种测试,所以我在 Mac 上装了 Parallels Desktop,大概 3 百多块一年,之前也挺不少小伙伴吐槽过这个软件,不过在我的 M5 Pro 上跑 Windows 11 还挺顺滑,让我感觉这个钱花得很值。

它最好用的一点是我的 Claude 能很顺手地操作它,仓库直接作为 Parallels 的共享文件夹挂进虚拟机,变成一个 X 盘,Mac 上改完代码,虚拟机里直接编译,不需要来回 Copy 文件,只是两边的编译产物要分到不同的目录,对于编译、启动、看日志的工作都被我写成了脚本,通过 Parallels 自带的 prlctl exec 直接在虚拟机里执行,程序启动就崩的时候 Windows 只给一个 0xc000027b,Mole 会把真正的异常写进日志,脚本跑完顺手打印出来,Claude 直接就能读到。相当于写代码还是在 Mac 上的 Claude Code 里,调试和运行都在虚拟机里,脚本不能解决的地方,直接用 Codex 的 computer use 去点,只有少部分那种系统确定弹框点不了,我在这里就是这个职责,点点系统弹框确定,哈哈。

说到这里,可以和大伙分享一下 Mole Windows的架构分层,一共四层,最底下的 Core 只依赖 .NET,不碰任何 Windows 接口,清理规则、路径安全检查、卸载残留的判断都放到这里,测试用的是一个按 Windows 路径规则模拟出来的内存文件系统,这样在 Mac 上也可以很好的跑;往上是 Platform 层,注册表、文件系统、Win32 调用这些真正的系统接口都放在这一层,打开 EnableWindowsTargeting 以后,Mac 上也能编译通过;再往上就是写过应用同学非常熟悉的界面状态的 ViewModel 层,这里和 Mac 版本会一一对应,这样也能够在 Mac 上测,只有最上面这一层的 WinUI 界面必须去 Windows 里编译。

这也是让我一个月时间可以写8 万多行 Windows 代码、4000 多个测试,但是几乎大部分可以在 Mac 上完成的一个很方便的地方,也是架构设计的巧妙处,当然这里我只提供之前做架构时候的想法建议,大部分是 Opus 5.5 去帮我整的,很牛逼。

接着可以聊测试了,我反而认为 在 AI 时代,工程师最大的价值,除了架构设计外就是这个测试验证了,所以为了保证产品是可以售卖的,肯定需要在真实环境测试验证,反复找体验问题去修复的,所以我整了一台 ThinkPad X1 Carbon,这个机器质感还不错的,我把它当成真机环境,设置永不休眠,可以让我和我的Agent 24 小时去验证测试回归,包括获取各种真实系统环境的参数验证,400 多款 Windows 软件的卸载、残留清理、注册表、启动项测试,大部分在虚拟机里跑,x64 安装包、真实的高分屏、电池、SmartScreen 这些虚拟机看得不准确的,就直接放到这台机器上验,所以这台机器让我感觉也非常值。

然后为了不想在两台机器拷来拷去,最后还是用了 UU 远程,直接在 ThinkPad 那边开一个远程终端,我这边在 Mac 上直接操作,然后还把 ssh 连接当做备用,大部分软件的安装、卸载和调试,都是通过命令行脚本去完成的,剩下需要看界面的,直接通过远程桌面让 computer use 去操作,非常方便,最终相当于我还是在 Mac 上做的所有的事情。

差不多就是这些啦,这个过程下来,到最后成品让几个 Mole 天使用户去试用,大伙用着很爽,感觉这个过程的开发非常值,很有意思,而且可以帮助大家解决不少痛点,加上 Windows 上小白用户应该比 Mac 要多不少,让他们也享受到好软件的体验其实很值得开心。

差不多这两天这两篇文章算是把我这一个月的思考和想法聊完了,欢迎交流,有在做 Windows 开发的小伙伴也可以一起聊聊你们的最佳实践,假如还有空,下一篇我想着给大伙聊聊怎么在研发过程中借其他程序语言的生态来补桌面端的短板,这里也非常有意思。

展开全文

发现不少小伙伴很好奇我是怎么用 Mac 来开发Windows软件的,以及Windows软件现在一般用什么技术栈来实现,刚好有空,来和大伙随便聊聊关于多客户端下技术选择的思考以及我的一些想法。

以下是第一篇,给大伙介绍介绍各种桌面、移动端开发技术的选择以及对应选择的思考。

书接上回,接着聊昨晚聊的多端技术选型,今天我们来聊第二篇,说说我是怎么在 Mac 上来开发原生 …书接上上文,前两篇文章我们聊到了客户端研发的技术选型考虑,以及我是如何在 Mac 上开发 Win…

谢谢喜欢!用的是 C# + .NET 10,界面用 WinUI 3,Mac 那边是 SwiftUI,两边都是原生开发,共用了一套设计规范和素材,颜色、间距和交互细节也尽量保持一致

昨晚聊到喝茶,推荐小伙伴试试这一款清香型铁观音,一点淡淡的兰花香,而且比较耐泡,好喝的!

最近养成了一个非常好的习惯,想推荐给小伙伴们,我想把它叫做刷新或者重置。

每次快到晚上,你从外面回来,第一件事其实就是去刷牙洗澡。把自己洗干净,吹干头发,换上干净的衣服,然后再去做自己的事情。

比如说,你 7 点到家,洗完澡 7 点半,到晚上这段时间,都是你非常新鲜、非常开始的时间。你的心态、你的心情会完全不一样。特别是对于上班族而言,这个时候下班直接回家立马洗澡,可以洗掉你很多“班味”。

正如此,这很像大模型里面的 reset 重置。所以我还有一个习惯,就是每天早上起来的第一件事情就是刷牙洗脸,然后泡一杯茶迎接新的一天。

那个时候你的感觉会特别特别好,会非常有新鲜感,就好比“哦,一天终于来了”。这样其实会让你的心情或者身体有一种“我要开始干活了”的仪式感。

非常推荐这个时候不要先刷手机,而是起来以后先把这两件事做了。然后吃完早饭再去干活,或者可以先不吃早饭,先干着活,等到吃早饭的时候再去吃,都没事。

比如说平时你坐得比较久了,也可以站起来走一圈,去接一杯茶、做杯饮料或咖啡,或者去上个厕所、洗个手,诸如此类。这就是给你长时间的专注注意力去重置一下,等到你回来以后,感觉会很好。

对长时间而言,家庭其实也是一样的。

比如说,每隔 20 天叫几个阿姨过来打扫卫生,把家里收拾得非常干净,就好比给家里也重置了一下。对于不用的东西,及时扔掉或者二手卖掉;包括到换季的时候,把旧衣服进行一次整理,把不要的东西扔掉,或者去买一些更新的,这也是一种很好的重置。

包括经常换被子被套,其实也是一个重置的办法。你会发现,换完被子被套以后,第一次睡上去的感觉是真的很爽。

可能人生也是这样,你得时不时地把你持续很长时间做的事情,或者做得有点疲累的事情尽快重置掉,然后重新开始。就好比洗去尘埃,重新开始做些事情的心态会好太多了。

在一个地方待久了,你可以去远一点的城市找一个好酒店住一晚,或者找个好一点的地方玩一玩、歇一歇,其实这也是一个重置地区的办法。

大概就是这个意思,不知道我有没有表达清楚。其实就是尽可能地把自己持续长时间的东西 reset 掉,然后等你重新来的时候,你会觉得有特别新的感觉。

展开全文

上周 Mole 的 Windows 版本发布啦

在这之前其实就累计在小范围人群,迭代了差不多 14 个版本,手工自测了 372 款软件的卸载、更新、残留清理、启动等,然后经过 Mole 天使用户多天内测,提了非常多的建议,终于差不多可用了,非常感谢大伙帮助!

本次为了更好的用户使用体验,我使用了 Windows 原生的 C# 开发,开发和调试难度远大于熟悉的 Mac,为了保障测试效果整了一台 ThinkPad X1被我给玩起来了,挺不错。

加上本身代码和 Mac 版本由于系统的特性、清理内容完全不一样,除去皮肤外,几乎没有可以复用的代码,来来回回差不多写了一个月,大概 7.8 万行代码和 4000 多个测试案例。

除了桌面版,Mole 的 Windows 命令行版其实年初就开始做了,最早是一位印度开发者提的需求,还顺手给我提了 PR,非常感谢,到现在 9 个半月发了 9 个版本,最近一个月我也在密集迭代,用法和体验基本和 Mac 的命令行版对齐了,开源免费,有需要的小伙伴可以直接去 GitHub 上用。

价格上为了感谢大伙, Windows 版在 11 月 11 日之前是早鸟价 15.20 美元,之前买过 Mole Mac 的朋友,到 12 月 31 日结账时输入 MOLEAGAIN 只要 10 美元。

mole.fit/zh/windows

0:55
展开全文
更早的 Notes