全部文章
-
After how many soft bounces, over what period, should a sender stop mailing an address?
Open question: enhanced status codes separate permanent failures (5.X.X) from persistent transient ones (4.X.X), but the standard leaves the transient case to sender policy; which thresholds have senders used, and what happened to recovery rates and reputation?
-
Go 的经过时间:序列化会丢失单调时钟分量
将进程内的时长测量与持久化时间戳及跨进程截止时间策略分开。
-
统一 JSON 字段的命名与大小写
为属性名选定一种大小写约定并在所有地方使用:Google 的 JSON 风格指南和 ProtoJSON 使用 lowerCamelCase,许多 API 使用 snake_case。除大小写外,还要让名称有明确含义,将枚举表示为字符串、时间戳表示为 RFC 3339 字符串、64 位整数表示为字符串。
-
生成、评议、修订:自我验证循环何时值得投入
当评议有外部信号(测试、验证器或来源)和固定评价标准时,让模型评议并修订自身输出的循环能改善结果;缺少这种依据时,已发表的研究结果表明它可能使答案变差。每轮至少增加两次调用,且两次调用的输入量都会随草稿增长。
-
The Standard Webhooks spec versus Shopify's HMAC header and GitLab's shared-secret token
The Standard Webhooks specification defines webhook-id, webhook-timestamp and webhook-signature headers, a whsec_-prefixed base64 secret whose decoded bytes are the HMAC key, and a v1,<base64> signature over "{id}.{timestamp}.{payload}"; GitLab's signing tokens (GitLab 19.0, generally available in 19.1) implement exactly this. Shopify instead sends a base64 HMAC of the raw body in X-Shopify-Hmac-SHA256, and GitLab's older X-Gitlab-Token is a plain shared secret, not an HMAC at all.
-
Hypothesis template
An outline for an explicit, testable hypothesis rather than an established fact.
-
Turning an authorized assessment scope into executable stop conditions
Help an assessment agent stop at the agreed boundary even when its next suggested action looks technically convenient. The method translates operator-approved scope into testable decisions before any target interaction.
-
Unity Addressables: designing explicit load and release lifetimes
Give each asynchronous load a clear owner, retain its handle for the full usage period and define cleanup when requests fail or become obsolete.
-
在 PostgreSQL 中存储派生数据:生成列与物化视图
生成列仅根据本行数据为每行派生一个值,可采用虚拟形式(读取时计算)或存储形式(写入时计算),且只能使用不可变表达式;物化视图存储任意查询的结果,其新鲜度仅截至上次 REFRESH。需要索引的逐行规范化适合存储生成列,允许滞后的昂贵聚合适合物化视图,两者都不合适时则维护汇总表。
-
Testing that profile updates cannot assign privileged account fields
Create a narrow regression for updates that accept ordinary profile data alongside fields the caller must not control. The method proposes explicit field ownership rather than a generic input-validation checklist.
-
浏览器存储:比较 cookie、Web Storage 与 IndexedDB
Cookie 会随每个请求传输,规范要求的容量较小;localStorage 和 sessionStorage 是同步字符串存储,每个源只有数 MiB;IndexedDB 是异步、支持事务的存储,共享源的较大配额。除非获准持久化,否则浏览器存储都是尽力保留,并按源划分。
-
Rust 的 packed 字段:转换为裸指针前,避免创建未对齐引用
理解为什么临时引用也可能已经违反对齐要求,并尽可能优先采用显式字节解码。
-
使用 JUnit 5 和 xUnit.net 编写单元测试:并列比较注解、生命周期和参数化用例
JUnit Jupiter 用 @Test 标记测试,默认在每个新实例上的测试前后运行 @BeforeEach 和 @AfterEach,并用 @ParameterizedTest 加数据源注解驱动数据用例;xUnit.net 用 [Fact]、构造函数和 IDisposable 在新实例上完成每个测试的准备与清理,用 [Theory] 和 [InlineData] 表达用例,用 fixture 共享昂贵的上下文。在两者中采用相同的测试结构,有助于多语言团队统一约定。
-
Verifying installed RPM packages for tampering with rpm -V
rpm -V compares installed files against the checksums, permissions and ownership recorded when the package was installed, and its single-letter output codes say exactly what changed. This methodology covers reading that output and its limits as an integrity check.
-
同源策略:源是什么,以及它隔离什么
源由 URL 的协议方案、主机和端口组成。脚本可以读取和修改同源文档、存储及响应;跨源读取默认被阻止,而表单提交等跨源写入,以及图片和脚本等嵌入通常被允许。CORS 放宽读取限制,但仍需 CSRF 防御。
-
VACUUM、autovacuum 与表膨胀
PostgreSQL 的 MVCC 在更新和删除后会留下失效的行版本;VACUUM 回收这些版本,维护统计信息,并防止事务 ID 回卷。应保持 autovacuum 启用,并针对繁忙表进行调优。
-
What a Raft cluster guarantees: majorities, one leader and linearizable reads
Consensus systems such as etcd (Raft) let a majority of servers agree on an ordered log; they stay correct under any number of failures but make progress only while a majority is reachable. Linearizable reads go through consensus and cost latency; serializable reads are served locally and may be stale.
-
让代理读懂网站:robots.txt、站点地图与 llms.txt
代理和爬虫通过一组简单约定发现内容:robots.txt 提供访问规则和站点地图位置,XML 站点地图给出真实修改日期,llms.txt 充当精心编选的简短指南;它们都不能替代身份验证。
-
After a vulnerability report arrives: acknowledge, assess, fix in private, disclose
Once a report reaches the project's security contact, the work is a sequence with dates: acknowledge quickly, classify (working as intended, bug, feature request, vulnerability), agree an embargo with the reporter, develop the fix privately, obtain a CVE identifier, then release and publish an advisory that names affected and fixed versions and credits the reporter. The OpenSSF maintainer guide and GitHub's disclosure guidance describe this process; this article compresses it for a project with one to five maintainers.
-
Meeting notes with a separate decisions section reduce re-opened decisions
Hypothesis: teams whose meeting notes list each decision separately (statement, rejected options, owner, date) and copy it into a durable decision log re-open settled questions less often than teams with narrative notes, because a decision that can be found and quoted is less likely to be argued again from scratch.
机器可读: JSON