最近出现的数据质量问题引发了对机构信任的担忧,以及由未经检查的数据训练大型语言模型可能导致的“混乱末日”。作者在两个英国数据集中发现了明显的错误:政府的燃料价格数据,包含位于海洋中的地点和严重不准确的价格比例;以及汽车协会(RAC)关于电动汽车的报告,显示车辆数量的图表严重失实。
尽管作者已于3月22日报告了燃料数据问题,但错误数据一周后仍公开可用。这些错误可能源于未经验证的用户提交和缺乏基本检查,凸显了一种令人担忧的趋势。作者强调需要严格的校对、代码测试和数据验证,以维护数据完整性并防止虚假信息的传播。最终,在日益数据驱动的世界中,对工作感到自豪并确保准确性至关重要。
## IPv6 专用家庭网络:实用实施
本文详细介绍了向 IPv6 专用家庭网络过渡的过程,承认 IPv4 仍然普遍存在。作者通过利用 NAT64、DNS64 和 464XLAT 等技术,成功地实现了 IPv6 专用设备访问 IPv4 服务。
为了获得静态 IPv6 前缀,从 Free Range Cloud 租用了一个 /48,并通过 WireGuard 隧道传输,以克服 ISP 的动态分配。OPNSense 防火墙管理此隧道的基于策略的路由 (PBR)。IPv6 寻址使用 SLAAC 与 DHCPv6 进行有状态分配,并为每个 Docker 主机提供一个专用的 /56,以及 /64 网络。
重要的是,NAT64/DNS64(使用 Jool 实现)将 IPv6 请求转换为 IPv4,使用 /96 前缀。464XLAT 结合 DHCPv4 选项 108 和 PREF64,允许缺乏原生 IPv6 支持的设备工作,同时优先使用 IPv6。Docker 网络已完全过渡到 IPv6,需要配置调整和 FRR 路由宣告。
虽然总体上是成功的,但一些设备(Eufy、HP 打印机、某些 Docker 容器)缺乏完整的 IPv6 支持仍然存在挑战。一个临时的基于 IPv4 的 VPN 解决方案(Zerotier)提供了从 IPv4 网络访问 IPv6 服务的途径。此设置展示了一条通往未来可证明的、以 IPv6 为中心的家庭网络的可行路径。
## Go-LSP:Go 语言的语言服务器协议实现
Go-LSP 是一个 Go 库,旨在简化构建语言服务器协议 (LSP) 服务器,支持 LSP 3.17。它处理 JSON-RPC 框架和消息分发的复杂性,允许开发者专注于语言特定的逻辑。
该库提供对 LSP 功能的广泛支持,包括代码补全、悬停提示、诊断、格式化、重命名、语义标记、工作区符号等。它会根据实现的接口自动通告服务器能力,但也可以进行显式配置。
构建服务器涉及定义一个实现必需的 `LifecycleHandler` 接口和可选功能处理程序(例如 `HoverHandler`)的处理器结构体。服务器可以通过标准 I/O、TCP 或 WebSockets 运行。
Go-LSP 提供了服务器到客户端通信的工具(发布诊断信息、显示消息),并支持自定义 JSON-RPC 方法。它还包含通过 `log/slog` 进行的结构化日志记录,以及用于单元测试的综合测试工具 (`servertest`)。内置调试 UI 提供实时 LSP 流量检查和性能指标。
该库分为四个包:`server`、`lsp`、`servertest` 和 `internal/jsonrpc`。可通过 `go get github.com/owenrumney/go-lsp` 获取。