2025-12-08 11:40:01
在多台 Mac 间同步笔记或脚本可以使用 Git ,它能帮我们保留历史、解决冲突,但手动 git add/commit/push 容易忘。下面这套做法用 LaunchAgents 定时执行一个 Git 脚本,把指定仓库的修改自动提交并推送到 GitHub(或任意 Git 远端),既省事又留痕。
[email protected]:demo/notes-sync.git,本机已配置好 SSH Key 或 Token。/Users/demo/Workspace/notes-sync,请替换成自己的目录。新建脚本 /Users/demo/Workspace/git-auto-commit.sh:
|
赋权:
chmod +x /Users/demo/Workspace/git-auto-commit.sh |
在 ~/Library/LaunchAgents 新建 plist 文件 com.demo.git-auto-commit.plist:
|
加载与调试:
launchctl load ~/Library/LaunchAgents/com.demo.git-auto-commit.plist |
如需停止或卸载:
launchctl stop com.demo.git-auto-commit |
main(或 master),与远端分支保持一致;多人协作时保留 git pull --rebase 以减少冲突。StartInterval 300 秒适合笔记类场景;频率过高会增加推送次数,可按仓库活跃度调整。.gitignore 中排除缓存、日志、临时文件,避免不必要的提交。git-auto-commit-error.log,常见问题是网络不通、权限不足或本地/远端存在冲突。这样配置后,Mac 会在后台定时把仓库的变更自动提交并推送,跨设备同步靠 Git 即可完成,同时保留完整历史记录。
2025-12-08 11:40:01
代码直接在部署分支 dev 提交了,没在功能分支提交,在 dev 环境没有问题,功能分支合并到 test 分支部署时,丢失在 dev 分支提交的代码,出现问题
示例:test 环境出现单元测试问题,dev 环境没有这个问题,单元测试提交到了 dev 分支,导致 test 分支代码丢失
使用规则保证正确性,而不让人来保证正确性,2 种方式解决:
vim .git/hooks/pre-commit |
!/bin/bash |
chmod +x .git/hooks/pre-commit |
流程化:推送代码自动触发部署,就没有不推送代码就部署的问题
2025-11-17 23:34:03
一直骑摩托上下班,前几个月一次雨后上班被一位女司机给撞了,责任清晰,对方全责。前两天雨后下班,2 个行人过马路不走斑马线,雨后路滑,制动距离变长,差点撞到了。一旦遇到交通事故,有监控还好,没监控万一遇到特殊情况,难免扯皮。为了安全,决定还是整个行车记录仪。自己规范行车,但保不齐别人不遵守规则。
适合的场景
正常运动相机效果没有手机好,不适合场景
优势
要解决的问题
摩托车的机震可能导致手机摄像头光学防抖损坏,我也是最近才知道这个知识点。如果行驶过程中还录像,因为光学防抖会主动矫正摄像头,那会加速光学防抖损坏。
即使不在行驶过程中使用手机录像,也会经常使用手机导航,虽然不使用手机录像相比使用手机录像时机震影响要小很多,但是还是有一定风险。最好还是使用个减震的手机支架,我试用了下摩多狼的减震支架,但发现没有用,减震固定得太死了,找摩友要了他正在使用的「灯昕磁悬浮减震支架」,减震可以灵活移动,效果要好不少。
不过最好不使用手机导航时揣兜里,人体的减震性最好。
山狗与其它运动相机没有裸机防水功能而没有考虑。主要考虑大疆与速影 C200 系列。纠结的点主要在于大疆的价格,觉得 1000 多的售价,与基本只做行车记录仪的定位有点不匹配。看到了速影 C200 系列,就买来对比了下。
特点
注意点
价格
C200 优势:便宜 200
C200 PRO 优势:
实测 2 个防抖都不太行,直接安装在摩托车镜座支架上都不太可用
C200 PRO 优势
Action4 优势
两者都不能云端自动备份,不能丢失时也能看到之前录制视频。
C200 系列因为有车载模式 / 有防水充电线,更适合直接固定安装在车上,但其防抖性不太行, 可能配置个运动相机减震支架会好点。但如果不安装在车上使用,其车载模式与防水充电线优势也就没了。又多了劣势:如果不取掉充电口盖子,不太易用,每次充电要拆边框。取掉了又没有了防水的优势。
Action4 相比有了防抖优势,可以配合支架直接安装在车上使用,也可以使用挂脖与安装上头盔上使用,当不安装在车上使用时,也不需要车载模式与防水充电线。
我想平时还是挂脖使用,离车后也可以连续录制。最后天猫买了大疆,总价 1220,1170 + 50 挂脖支架,原来有 A2 内存卡。
天猫旗舰店
京东
拼多多
PS:拼多多「品牌好货」不是拼多多自营的,拼多多的「品牌好货」是聚合的三方商家店铺,只提供了一个「品牌好货」的入口,消费者看不了具体的三方店铺信息,客服也第三方店铺的。
只当行车记录仪可以上 C200,使用相对防盗的方式直接安装上车上。满足基本行车记录仪需求,可以区分事故责任,晚上可能看不清车牌号,防抖性一般。或者直接买更便宜不防水的汽车行车记录仪,自己 DIY 一下。
如果考虑还会拍点东西,建议直接上 Action4。其颜值更高,更愿意拿出去拍,易用性也很好。C200 PRO 有点不上不下,当运动相机拍可能功能不太够;安装上车上防抖跟 C200 差不多,有点划不来。贵的东西除了贵,确实优点更多。而大疆 Action4 做行车记录仪,完全够用了,完全不用什么 Action5 PRO 什么的了。
下大雨或者可视距离变少同时又下雨(如晚上下雨)的情况建议还是不要骑摩托车了,使用其它交通工具更安全。
顺便说一句,大疆还是有点格局的,可以激活试用。在中国,像京东/大疆这样的大厂,还是越多越好。
2025-11-01 16:15:40
我 Apple TV 现在是配合极米投影仪在使用,现在基本只偶尔使用 VLC + NAS 看电影。买过一段时间 Arcade 玩游戏,玩的频率不高加上订阅制不太划算,Apple TV 就只用来看电影了。
前两天突然想到能不能 Apple TV 玩下小时候的魂斗罗之类的游戏,折腾试了一下,还真可以。

我是使用的 RetroArch 实现的,可以按这 2 个视频教程操作,讲得挺详细。
RetroArch 的核心 Core 是模拟原来经典游戏主机的模拟主机系统,它提供一系列 Core,可以模拟原来各种经典游戏的主机,是一个 Core 集合,但它不提供具体的游戏,需要你自己去找。
这几个网站的资源实测可用:

因为 tvOS 本身没有 Files APP,RetroArch 是利用 tvOS 的 80 端口,即 Apple TV 对应 IP 地址 ( http://192.168.31.111/ ) 上传资源 。当打开 RetroArch 时,就会弹出这个提示。同一个局域网的其它设备或者说连同一个 WIFI 的设置,可以直接通过这个地址上传游戏资源。
但需要注意:要使用 Safari 浏览器打开这个地址,我使用 Chrome 就打不开,折腾半天。
在玩「超级马里奥」时发现「跳跃键」跳不高,换了个游戏资源也不行,最后发现是输入映射时不小心将跳跃键键映射到了 Turbo 这个键上,按 Y 键取消映射了就好了。


FC游戏机,是任天堂(Nintendo)生产、发行和销售的8位第三世代家用游戏机。日本版官方名称为家庭电脑(日版名:ファミリーコンピュータ,Family Computer,Famicom),俗称“红白机”,1983年7月15日在日本推出;欧美版名称为任天堂娱乐系统(英文版名:Nintendo Entertainment System,NES),俗称“灰机”,1985年10月18日在美国推出。
所以:
| FC | NES |
|---|---|
![]() |
![]() |


2025-10-24 21:45:11
现在经常在打羽毛球,羽毛球等级森严,级别差太多根本没法打,只要差上半级,差的这边肯定打不过,差上两级,双方就没有体验感。有一位名叫「波澜不惊」的网友写了个很好的「业余羽毛球等级说明」,对级别的描述很精确,对每个等级具体需要掌握什么技术与这个等级的特点写得很清楚。
我作为软件后端工程师,虽然我们也有初级/中级/高级工程师的划分,但每个级别具体需要掌握什么,界限往往很模糊。我就在想能不能像羽毛球等级一样,也做一个「后端工程师等级说明」?这样既能认清自己的水平,也能更有针对性地进步。

对于业余羽毛球初学者来说,正常的学习顺序是技术 -> 脚步 -> 球路 -> 体能,对应后端工程师,我将其它映射为技术 -> 业务 -> 架构 -> 兴趣。
羽毛球技术:握拍 / 发球 / 正手高远球 / 反手高远球 / 杀球 / 吊球,映射为后端工程师技术:编程语言 / 框架 / 数据库 / 缓存 / 中间件 / 容器化。其它一些技术如「勾搓扑挑」等映射为对工具的掌握,如「IDE、Linux Command、Git、Maven」等
对应羽毛球室外打球阶段,核心特征是会刚接触编程。对 IDE、Git、Shell 等工具几乎陌生,只能照着教材输出“Hello World”,还分不清接口、数据库、部署之间的关系,只求代码能跑起来。
对应羽毛球会握拍阶段,核心特征是会点编程语言。开始使用 IDE,能写变量、条件、循环、集合等基础特性,偶尔能写出小算法,可以照需求描述实现简单脚本或 demo,对数据库、缓存等还不太了解。
对应羽毛球会发球阶段,核心特征是会使用一种基础框架(如 Spring Boot)。开始理解接口开发的 POST GET 的区别,了解 Maven 命令,还不太会写数据库 SQL,还不能进行简单的业务开发。
对应羽毛球会打高远球阶段,核心特征是会能在指导下完成简单需求开发。会使用 MySQL 数据库,会写一些简单的 SQL,会使用 Git 。了解 MVC 开发,理解 ORM 等概念。能在指导下完成简单需求开发与 bug 修改,对表结构、用户登录原理与 Session 机制有初步认识。这个阶段更多是编码实现,也开始建立自己「实验室」通过 demo 代码实现各个技术点。
对应羽毛球小对抗、会挑球 / 偶尔会吊球阶段,核心特征是能在指导下完成小模块开发。技术上熟练使用主力语言、框架、MySQL 关系数据库,会使用基础的 Linux 命令,理解 Git 原理。可以写简单 CURD 增删改查代码,但 Bug 较多。
对应羽毛球小对抗、会杀球 / 吊球阶段,核心特征是能在指导下完成中等模块开发,能独立完成小模块开发与设计。技术上会使用常用中间件,会用缓存 Redis,理解 Maven 原理,理解 Spring 框架的核心原理,熟悉 Docker 基本用法。业务上熟悉基本的 API 设计,可独立设计 API;熟悉数据库设计,可以独立设计数据库表;有一定业务抽象能力,可以将简单业务抽象为数据库表结构与 API,会写单元测试;理解用户登录原理。开始形成以完成一个让别人 / 用户来用的比较完整的软件功能为主的「工作室」。
对应羽毛球中对抗、会反手高远球阶段,核心特征是能在指导下完成中大模块开发,能独立完成中小模块开发与设计。技术上熟练使用 Redis,熟练使用常用中间件,如 Kafka。具备初步的业务设计模式意识,不只是按需求实现,开始理解业务需求背后真实的意图,可以指出需求中问题,帮助需求闭环。知道需求的优先级与重要性,合理分配精力与时间。开始对安全编程有一定想法与实现,代码不只是考虑功能实现。 开发的功能维护性在中等水平。可以快速定位独立解决中等难度的技术问题。开始建立起来对自己技术的自信。
对应羽毛球中对抗、普通大学校队水平、掌握各种杀球/吊球的阶段,核心特征是能独立完成中等模块功能的设计与开发。技术上掌握部分中间件原理,掌握 Docker 容器化原理,阅读过其源码。掌握数据库、Redis 关键机制。业务上可以快速的熟悉与理解新业务,并完成从需求分析、方案设计、编码上线工作。写的代码质量好,bug 少。开始在团队内形成个人影响力。开始建立自己的「工厂」,相比「工作室」,「工厂」有一整套的规范和标准。
对应羽毛球大对抗、普通大学校队主力水平、会跳杀的阶段,核心特征是能独立完成大模块功能的设计与开发,独立解决复杂技术问题。技术上掌握中间件核心原理,从源码上理解。写的代码 Bug 非常少。各种业务系统的实现方式都已掌握,编码熟练使用各种设计模式,业务实现简洁但稳定,实现不仅考虑功能还兼顾安全,能承担核心技术攻关。开始发现现有架构的不足。这个等级需要掌握计算机基础知识,不然到不了这个级别。在团队内形成稳定的个人影响力。
PS:羽毛球技术的核心是通透的发力,后端工程师技术的核心我认为是计算机基础。发力可以分为:手指发力、手腕发力、内旋发力、鞭打发力、腰腹发力等。计算机基础可以分为: 计算机组成原理、Linux 操作系统,编译原理、网络原理、数据结构与算法等。业务球友不掌握发力,可以到 4.0 级,但绝对到不到 4.5 级。同样,我认为后端工程师不掌握计算机基础可以到高级工程师,但绝对到不了「高级工程师 +」这个等级。
对应羽毛球大对抗、普通教练水平阶段,核心特征是可以根据需要修改、扩展、优化架构。高级工程师主要是在已有的架构框架下完成设计,而技术专家会根据需要修改、扩展、优化架构。各种技术运用自如,熟练运用各种技术完成业务开发。并且有一两项突出的技术,比如对 Redis 的研究非常深,给它贡献过核心代码。可以快速定位独立解决很复杂的问题。独立开发与团队配合都很好,几乎是没有 bug 的。系统安全做得好。在团队内形成极强的个人影响力
对应羽毛球比赛级、地区普通组冠军水平阶段,核心特征是独立完成一个系统的架构设计。可以是从 0 到 1 设计一个新系统,也可以是将架构从 1.0 重构到 2.0。初级架构师负责的系统复杂度相对来说不高,例如后台管理系统、某个业务下的子系统、100 万 PV 量级的网站等。6.0 级别要么初级架构师,要么就是技术 leader,可以带一个小团队,开始有团队影响力。
做这么一个等级表不容易,涉及不少东西,写了很久,但水平有限,可能不太准确。本来让 AI 写,不太满意,全部手敲。后面可能不定时更新这个等级表。
后端工程师依次提升的 4 维度是技术、业务、架构、兴趣,而针对全栈工程师(独立开发),4 个维度又不太一样,我认为是技术、产品、需求、推广。每个职业都有自己的 4 维度划分。
还有一点小感受,学习计算机技术与学习羽毛球技术一样,关键是要有成就感,要有瘾,也就是正反馈,所以这就是需要有正确的方式与路线来学习,每个人情况不一样,需要找到最适合自己的方式与路线。
2025-08-15 23:05:30

打开手机,短视频软件在推送今天的热点,社交软件的红点提醒你有新消息,游戏的活动通知吸引你再玩一局。我们生活在一个注意力被无限分割的时代。
每个人每天的注意力总量是有限的,就像手机电池一样,用一点就少一点。当我们把注意力过多地消耗在娱乐和消遣上,留给工作、学习和成长的注意力自然就减少了。更糟糕的是,频繁的注意力切换会让大脑疲惫,即使想要专注时也难以进入状态。
有时候无法集中注意力并不完全是意志力的问题,一些客观因素确实会影响我们的专注能力:
这些客观因素虽然存在,但相对还是比较少的。更多时候,是我们主动选择了分心。
人性是有弱点的,我们的大脑天生喜欢轻松愉悦的事物。刷短视频、追热点、看资讯,这些活动不需要深度思考,还能带来即时的满足感。经不住诱惑是正常的,关键是要认识到这一点,然后主动创造一个减少诱惑的环境。
与其依靠意志力对抗诱惑,不如从源头上减少诱惑的出现。
断舍离策略
iPhone 专属技巧(安卓应该也能实现)
正因为大脑天生喜欢轻松愉悦的事物,所以我们不可能不去做不用脑的事。但我们可以主动构建自己的信息获取渠道,避免被动接受算法推送。比如:
资讯与新闻
稍后阅读
个人关注
成长的速度,取决于专注的时间。
当我们能够持续专注地投入到一件事情上,不仅能够产出更高质量的成果,还能进入心流状态,体验到深度工作带来的满足感。这种满足感远比刷短视频等获得的即时快感更持久、更有价值。
每一次选择专注而非分心,都是对未来的自己的投资。这些投资会像复利一样累积,最终带来质的飞跃。在这个注意力稀缺的时代,能够掌控自己注意力的人,才能真正掌控自己的人生。