snehan kekre

RSS: https://snehankekre.com/rss.xml
Snehan Kekre 的个人博客,开源开发者关系与文档领导者。

在 21 个月未登录后,将我的 Tor 桥从 Debian 10 升级到 13

作者因收到 Tor 官方邮件称其 bridge 版本过旧即将被剔除,才想起一台 21 个月没登录的 VPS。文章以第一人称复盘 8 月 21 日的操作:先通过 fish/bash 历史、apt/dpkg 日志、systemd journal 和浏览器记录重建过程;解释 ecdsa-sk YubiKey SSH 认证机制(含 NEO 仅支持 ECDSA、5 支持 Ed25519 的细节),并记录因手滑把私钥指向公开 key、误触 fail2ban 把自己 IP 封掉后用 VPN 自救的步骤。 随后在 55 分钟内完成 Debian 10→11→12→13 三次跨版本升级,给出 apt 命令顺序(upgrade --without-new-pkgs 先升 apt 与核心库再 full-upgrade)以及每次跳板后的内核/ tor/openssh/fail2ban 版本对照表。 整体信息密度高、一手踩坑记录清晰,适合 DevOps/开源运维读者。
评论点赞收藏4 天前

两只手腕,一次潜水:匹配冗余潜水电脑日志

<p>技术潜水员会配备两台电脑以实现冗余。如果有人在洞穴内75米处死去, 在90米距离的残骸上,另一辆车能帮你脱困。我的是 左手腕戴着Garmin Descent Mk3i,右手腕戴着Shearwater Perdix 2,他们 两者都会记录所有内容。这意味着我每次潜水都会产生两个描述 同一小时在水下,几乎没有什么行政上的意见一致。既不确定开赛时间,也不确定 持续时间,有时甚至连潜水次数都不记得。的工作是找出哪一个 原木是同一个物理潜水,但从未合并。这篇文章就是讲怎么做的。</p><p>没人说得通现在是几点</p><p>我最深的潜水,#202,101.5米,地点在图兰本的投放点。Perdix说它始于 2025-09-27 11:55:43.Garmin显示2025-09-27 03:56:02。两者都说得对。</p><p>Perdix在一个没有时区的挂钟上记录其纪元。那个11:55:43是 穿着UTC服装的巴厘时间。Garmin记录的是真实的UTC时间,同时分别记录本地时间 偏移时间(+480分钟)。从Perdix的数字中减去八小时,得到 03:55:43 UTC,距离Garmin开始还有19秒。十九秒是我按了两 我游向入口时,双手腕上的按钮。</p><p>但答案是“减去八小时”,匹配者的第一个问题是 Shearwater Log 从未明确说明这个问题。所以它借用了另一只手腕的答案。对于每次Shearwater潜水,试试附近Garmin潜…</p>
评论点赞收藏69 天前

Proving byte 25

In the last post I claimed that byte 25 of a Shearwater dive sample is GF99 (the live readout of how close your tissue load is to the decompression model’s limit), byte 24 is the deco ceiling, byte 18...
评论点赞收藏70 天前

确证第25个字节:一份关于潜水电脑日志逆向工程的实证分析

<p>在 中,我曾指出,Shearwater 潜水样本的第 25 字节 是 GF99(即实时读取的组织负荷与减压模型极限之间的接近程度);第 24 字节代表减压上限;第 18 字节为电池电压;而第 26 至 27 字节则对应于 @+5 的预测值——也就是如果你再停留五分钟,返回水面所需的时间。然而,Shearwater 从未对这些数据进行过任何记录或验证。也就是说,这一说法与背后的证据完全不相称,“在几次潜水中,曲线看起来确实很合理”这种说法,其实不过是将你的组织负荷错误地解读了整整一年,直到你才意识到这一点。</p><p>因此, 将每一个字节映射都视为一个假设,并提供了一套验证工具——“底部时间验证”, 旨在针对商店中每一条潜水记录,逐一检验并推翻所有这些假设。 这套工具由四个独立的“预言者”组成,其中第五个预言者后来被发现来自外部。 但这些预言者所给出的结果,无一能真正反映我对于一次合理潜水的主观判断。</p><p>预言者 1:供应商的另一种渲染方式</p><p>Shearwater Cloud 可以将潜水数据导出为 XML 格式。虽然该 XML 数据存在一定程度的失真——它缺少了我本应反向还原的那些通道信息——但其实际承载的通道数据, 却源自 Shearwater 自己编写的代码,而该代码正是基于相同的原始日志进行解析的。 因此,这些数据可以作为每次采样对应的“样本关键值”,用于记录已知的偏移量。 如果我的…</p>
评论点赞收藏70 天前

The bytes my dive computer keeps to itself

My Shearwater Perdix 2 computes a number called GF99 every ten seconds of every dive. It’s the leading tissue’s supersaturation as a percentage of its Bühlmann M-value at my current depth. In plainer ...
评论点赞收藏71 天前

我的潜水电脑保密的那些字节

作者逆向解析 Shearwater 潜水电脑的内部日志格式(Petrel Native Format),发现官方导出文件缺失的关键数据。通过对比开源库 libdivecomputer 和解编译 Shearwater Cloud 的.NET 程序集,确认了 GF99(组织过饱和百分比)、减压天花板、电池电压及 @+5 预测值在二进制记录中的确切偏移量。 作者编写了 Python 解码器 bottomtime 验证了数据准确性,为需要底层潜水数据的爱好者提供了完整的技术实现路径。
评论点赞收藏71 天前

我的主页有心跳

<p>如今,我的个人主页上多了一颗小小的红色心形图案,它正在跳动。旁边显示的数字正是我实际的心率——心脏以这样的频率搏动:每1.25秒跳动一次,心率是48次/分钟;每0.75秒跳动一次,心率则是80次/分钟。<br><br>我之所以写下这段文字,只是因为我自己想这么做,也因为最终的设计中,包含了比我预想中更加丰富、有趣的决策与选择。我佩戴的这款手表是佳明Descent Mk3i,表壳直径43毫米,采用碳纤维灰色DLC涂层钛金属打造。<br><br>我把它当作主要的潜水电脑来使用,与我的Shearwater Perdix 2并肩作战——因为在洞穴和沉船等技术潜水及高海拔环境里,冗余设计至关重要。<br><br>如果在洞穴深处75米处,某台电脑突然失灵,你可不能直接浮出水面去给它充电。洞穴潜水员会为自己的备份做备份。自2025年4月以来,它已经和我一起完成了400多次下潜,其中最深的下潜深度达到了100米。<br><br>除非我需要给它充电或洗澡,否则我从不摘下它。在每次下潜之间,它会全天候追踪我的心率、睡眠质量、HRV、步数、卡路里消耗,以及其他十余项生命体征,并将所有数据同步至我手中的Pixel 9 Pro上的佳明Connect应用程序。<br><br>我的健身房训练和街头举重课程也会被记录在这款手表上。换句话说,佳明早已为我的一生记录下了连续而细致的生理数据。我只是需要把这些数据从佳明导出,并上传到我的个人主页上。<br><br>一个更贴近个人生活的“在线”状态指示器——过去那些…</p>
评论点赞收藏76 天前

登录芦苇

登录后关注作者、收藏内容和参与讨论。