2025-08-31 12:38:08
Logseq 在打开的时候,会自动创建当天的 Journal 页面。正常来说,当打开 Logseq 的时候,确实大部分可能都是要记录,这样的 feature 看着没什么问题。然而如果 Logseq 打开后没有彻底退出,也会照常每天创建 Journal 页面。久而久之,打开 Logseq 后你将会看到一堆的空白页,让人非常不爽,而且想要浏览此前的 Journal 记录也非常不方便。
为了避免这种情况,之前都是提醒自己在用完之后,记得 commond + q 完全退出 Logseq,然后偶尔忘掉的情况,再手动删除空白页。但实际上非常容易就忘掉退出,然后又可能因为工作可能过了一周再打开,一次就积累了一堆空白页,手动一个个删除也比较费力。
一开始想的是简单写个脚本,扫一下目录里面空白的 markdown 文件,但是打开本地目录发现,空白的 Journal 页面还不一定会创建空白文件。后面上网搜了一下发现,原来自带就有这个移除功能的,而且移除的范围还不止空白的 Journal,所有的空白 Page 都能扫出来然后移除。
具体入口路径:All pages -> ... -> Remove orphaned pages
2025-07-19 14:46:50
我一直是 Bitwarden 的忠实用户,并且为了数据自由和可控性,以及省钱,选择了自建服务。我的整套配置如下:
这套组合一直稳定运行,直到今天……
今天像往常一样,我打开手机上的 Bitwarden App,想添加一个新的登录项。但奇怪的是,当我点击保存后,在列表里却怎么也找不到刚刚添加的项目。
起初我以为是 App 的 Bug,但为了保险起见,我打开了电脑客户端尝试添加,结果客户端直接提示我保存失败。
这时我意识到,问题可能没那么简单,大概率是客户端与我服务器之间的接口通信出了问题。
我首先想到的是检查我的 Vaultwarden 管理页面。我通过域名访问,结果发现了第一个问题:
(图:腾讯云因未备案拦截页面)
破案了?看起来八九不离十。证书过期导致 API 接口的 HTTPS 请求失败,客户端自然无法正常保存数据。
但新的问题也随之而来:我使用 Caddy 就是因为它能自动实现 HTTPS,可以自动申请证书并续签,为什么这次偏偏就失效了?更奇怪的是,我同一台服务器上的其他服务的域名都能正常访问,证书也都是有效的,唯独 Bitwarden 的这个域名出了问题。
我尝试重启 Caddy 服务、重新加载配置,但都无济于事。无奈之下,只能去看 Caddy 的运行日志。
日志中的错误信息揭示了真相:Caddy 在尝试申请新的 HTTPS 证书时,需要通过 HTTP 端口进行验证(HTTP-01 challenge)。然而,这个验证请求被腾讯云的直接拦截并返回了一个未备案提示的页面。
所以,核心原因找到了:腾讯云升级了防火墙策略。以前对于未备案的域名,仅仅是拦截了 80 端口的访问,而现在,它会拦截所有端口的对外服务。
这个策略直接导致了 Caddy 的证书续期 / 申请机制完全失效。
既然是腾讯云的问题,我心想,能不能把域名解析迁移到 Cloudflare,利用 Cloudflare 的 DNS 服务来绕过这个限制?
然而,当我尝试在腾讯云后台修改域名的 NS (Name Server) 记录时,发现这个选项是锁定的!想要修改,必须通过一个独立的“DNS 服务器修改”入口,比较隐蔽。
然后迁移后发现其实也没有作用,拦截实际上是发生在服务器上而不是 dns 解析上(也可能是两边都会有拦截)
最后为了稳定性和省心,选择了付费订阅 Bitwarden 高级会员,$10 一年,不再折腾。这境内的个人云服务器感觉用处越来越小,要不是博客需要备案号需要云服务器,绝对停掉转用境外的云服务器。
2025-06-13 22:30:09
Logseq 是一个与 Obsidian 类似的双链笔记软件,断断续续地用了应该有几年了,但是同步/备份比较麻烦,尤其是在不同系统类型的设备多个设备上。Logseq 与 Obsidian 都是通过加载一个本地文件夹作为笔记仓库的形式来运行的,因此笔记的同步,本质上还是同步这个文件夹,但是这样的同步,在不同的系统和设备上,达到完美的体验,实际也有点烦的。
总结下来有几个阶段,每个阶段基本都尝试了一些方式,然后都不太好搞。因此最后的我现在还是选择官方的同步功能,每月 $5.
最开始使用的时候只在电脑上面使用,甚至都没想过用手机查看或者记录,因此最开始的时候只有在两台 PC 之间同步笔记的需求。这样就比较简单,选择一个可以实时同步文件夹内容的云盘,比如 OneDrive 或者坚果云都可以。当时用的就是 OneDrive,同步流畅度还可以,再加上基本有不会有同时在两台设备上编辑的情况出现,基本没出过什么问题。
后面换了 iPhone,需要在 iPhone 和 PC 上同步笔记。iPhone 上很自然就考虑选择使用 iCloud 同步,而且 Windows 实际上也是可以安装 iCloud 进行同步的,最开始的时候我就是使用 iCloud 在 iPhone 和 Windows 上面同步。
然而 iCloud 同步实际上很容易出现问题,尤其是在 Windows 设备上。有些时候文件在正常使用的时候,会因为同步问题而出现多个版本。有时候文件的某个版本因为莫名的原因无法下载,这个时候 logseq 就会一直卡在下载文件阶段,然后阻塞界面,卡死程序。
这种情况需要手动地去 iCloud 的存储位置把多出来的同步不成功的文件删掉才好。Obsidian 也有这个问题,但是这种卡死的情况只会出现在打开软件的时候,在使用过程好像还没见过。而这个在 iCloud 目录找出重复文件并删除的操作,在移动端上基本搞不了,因此如果是在外面手机打开出现了这个问题,基本等于无解。
后面电脑换成了 Mac,这种同步出现冲突多版本的问题基本没有出现过了。但是后面在实际使用的时候也发现了一个另一个问题:文件的同步和拉取可能会有延迟,导致有可能电脑记了今天的日记,然后手机在打开前没有识别到今天实际上是有更新的,在打开软件的时候默认会创建今天的笔记,而这个新创建的笔记日期更新,就会直接把电脑端的笔记给覆盖掉。不过原来logseq里面有个bak文件夹可以做备份,找还是能找回来的,但是就得手动在程序外操作。
在换到 Mac 之前使用,Windows 使用 iCloud 同步容易出问题,当时还尝试了另一个通过 Git 同步的办法:
这样的方式只能做到笔记文件在不同设备上面同步,但如果真的出现同时修改的情况,感觉会出问题。
流程看着很可行,但实际用下来体验也很差,很多问题
后面手机换回 Android 了,移动端用不了 iCloud,换到了 Google Drive 上面。这时候才发现各家云服务商在安卓上面原来都没有像 iCloud 这种实现文件夹在本地与云服务上双向同步的能力,需要的话,必须使用第三方的软件(比如 AutoSync)来实现双向同步。而这些服务用下来体验也很一般,首先使用前必须将云端存储的读写权限全部授权给三方软件,这样就已经有点担心了,然后实际的同步也只是通过周期性执行同步任务,调用 Drive 获取最新文件的方式来同步的,同步很慢,也容易失败。试了几次我就删掉,并且撤回授权了。
上面提到的各种同步方式,本质上还是在程序外通过系统或者软件,同步更新存放笔记的文件夹内容。这样无可避免一个问题:Logseq 本身是感知不到这个同步过程,以及文件内容是否已经同步好了的。每次打开其实都会是当作一个已经同步好的状态来处理,读写文件。这样 logseq 和外部就可能会出现对文件的同时读写,继而出现问题。这也是上面出现各种同步问题的主要原因。
题外话:obsidian 上面有很多内部插件实现同步的能力,logseq 是否可以提供像 obsidian 一样,基于内部插件的方式来进行同步呢?为什么 logseq 上面基本都没有同步的插件?有可能官方对这能力依赖的口子没有打开?
在 Android 上折腾同步实在是折腾不动了,最后选择了氪金。现在 Logseq 提供了同步功能,虽然还是 beta 阶段,但是实际用下来已经非常丝滑,各个设备轻松同步(Android+Mac+iPad)。现在最低只需 donate 5$ 每月,就可以启用,详细的方法可以看官方文档,支持通过银行卡(Visa/Master),Google Pay,或者 PayPal 付款。
官方的同步功能支持最多 10 个 graph 的同步,我看 v2ex 上面也有出合租车位的,只要几块钱。虽然说每个 graph 都有单独的密码加密,但是感觉这种出租空位的方式,还是有点安全问题,因为给别人创建 graph,需要把帐号给别人登陆才能创建,而试了一下,remove 远程的 graph,好像是不需要密码的,可能有数据被恶意删掉的可能性,有点危险。
同步方法 | 适用场景 | 优点 | 缺点 |
---|---|---|---|
OneDrive 同步 | PC 间同步 | • 同步流畅 • 操作简单 • 基本无冲突问题 |
• 仅限 PC 设备 • 移动端支持有限 |
iCloud 同步 | iPhone + PC/Mac | • Mac 环境下相对稳定 • 原生 iOS 支持 |
• Windows 上容易出现文件冲突 • 同步延迟可能导致数据覆盖 • 移动端难以处理冲突文件 • 程序可能卡死 |
Git 同步 | 跨平台技术方案 | • 版本控制能力强 • 支持自动提交 • 理论上支持所有平台 |
• 网络问题导致同步失败 • 需要手动解决冲突 • 配置复杂 • 移动端操作困难 |
Google Drive + 第三方同步 | Android + PC | • 支持 Android 平台 | • 需要授权第三方软件 • 安全风险较高 • 同步慢且容易失败 • 只能周期性同步 |
官方同步功能 | 全设备同步 | • 程序内置,体验丝滑 • 支持多设备(Android+Mac+iPad) • 数据加密安全 • 支持最多 10 个 graph |
• 需要付费($5/月) • 仍处于 beta 阶段 • 合租存在安全风险 |
2025-04-29 10:17:04
这两年一直有把 iPhone 换成安卓手机的想法,去年尝试过换成小米 14,但坚持了不到一周,就因种种问题和不习惯而放弃,退掉后又换回了 iPhone。这次选择换成 OPPO X8 Pro,已经使用了两周多,逐渐适应,没有感觉有什么问题,算是暂时迁移成功了。这里记录一下迁移相关的一些细节。
有些替代方案算是降级,但还是可以接受。
其余基本没有什么 loss
2025-03-15 15:21:17
总是习惯性地把所有软件都更新到最新,然后在写博客的时候发现,Hugo 更新后,本地运行出问题了。
ERROR deprecated: site config key paginate was deprecated in Hugo v0.128.0 and subsequently removed. Use pagination.pagerSize instead.
ERROR deprecated: resources.ToCSS was deprecated in Hugo v0.128.0 and subsequently removed. Use css.Sass instead.
ERROR deprecated: .Site.IsMultiLingual was deprecated in Hugo v0.124.0 and subsequently removed. Use hugo.IsMultilingual instead.
ERROR deprecated: .Site.Author was deprecated in Hugo v0.124.0 and subsequently removed. Implement taxonomy 'author' or use .Site.Params.Author instead.
从报错提示来看,就是 Hugo 更新搞出了 breaking changes,升级后直接一些把字段和方法移除掉了。一开始看它的提示,还很贴心地给出替代的字段,然后直接简单替换后发现,跑不起来,并不是那么简单替换就行。于是只能把 Hugo 的版本降回原来的版本。
具体操作如下
brew info hugo
. 找出需要降级应用所在的 repo 和路径
brew install url
Error: Non-checksummed download of hugo formula file from an arbitrary URL is unsupported! brew extract or brew create and brew tap-new to create a formula file in a tap on GitHub instead.
brew install ./hugo.rb
,安装成功brew 应用降级成功之后,可以通过 brew pin hugo
锁定版本,避免后续又把它升级了。
在通过 install url 失败之后,又看到一个办法可以降级,看着也很可行,但是构建脚本本地执行的时候出错了,也可以参考下。
|
|
以下是 AI 的解释:
这四条 Homebrew 命令的目的是创建一个本地 tap 并安装特定版本的 CMake。我来逐条解释每个命令的作用:
brew tap-new $USER/local-cmake
这条命令创建一个新的 tap(软件仓库)。$USER
是当前用户名的环境变量,所以这个 tap 的名称会是 "你的用户名/local-cmake"。
$(brew --repo)/Library/Taps/$USER/homebrew-local-cmake
目录下创建一个新的 tap 结构brew tap homebrew/core --force
这条命令强制重新 tap Homebrew 的核心仓库。
--force
参数强制执行,即使该 tap 已经存在brew extract --version=3.31.1 cmake $USER/local-cmake
这条命令从 homebrew/core 中提取特定版本的 CMake 公式到你的本地 tap 中。
[email protected]
公式文件brew install $USER/local-cmake/[email protected]
这条命令安装你本地 tap 中的特定版本 CMake。
2025-03-15 13:06:54
之前就一直心动想要摆脱苹果生态,尝试使用其他的设备,避免被生态绑架住。首当其冲的,就是电量有点不太行的 Apple Watch。原本想要换一个安卓的手表,但是看了一下各家的安卓手表,基本也需要绑定自家的手机和软件生态。然后现在使用 iPhone 的情况下,支持也不太好,很多功能会缺失掉,因此迟迟没挑好。
既然各家的安卓手表挑不中,干脆挑一个运动手表,不绑定手机厂商,安卓与 IOS 阵营都能通用。于是刷了几天小红书,选中了几乎是最多人用的佳明,挑了一个价格和 Apple Watch 差不多价格的手表下单。
用了几天之后发现,从 Apple Watch 转向运动手表,真的像是从现代社会退化为原始社会,运动手表,可谓是与智能没有一点关系。运动手表,尤其是像佳明这种专业的运动手表,其实是 for 专业运动水平的人和跑者使用。而我对手表更需要的,可能还是因其智能性能在生活当中带来的便利,我更需要的,还是智能性,能够帮我在日常生活在手表上完成一些很方便的操作,而不是在运动上的专业性。尤其是手表不能控制手机闹钟,没有了我才意识到这个对我来说,其实是个刚需。就运动记录上,感觉佳明和我之前的 Apple Watch 差不了多少,该有的,我能看懂的好像大家都有,对我来说好像也没有太大的提升和意义。
看来还是逃离不了苹果生态,逃离不了 Apple Watch,只能乖乖退掉佳明手表,重新戴上 Apple Watch。