介绍
困难系列涵盖高级 TypeScript 类型系统概念,包括逆变推断、模板字面量递归和联合类型操作。
困难系列涵盖高级 TypeScript 类型系统概念,包括逆变推断、模板字面量递归和联合类型操作。
在本章内, 俺们将快速的完成所有的 easy 系列的 TypeChallenge.
俺将会分享俺的思路与代码, 以及一些补充的内容.
由于中级系列的题目较多,为了方便大家查阅,俺在这提供了一个导航,方便大伙查找。
四月是那种让我停不下来的月份。大约两周内做了六个项目,全部用 Python,全都在挠不同的痒——但回头看这些项目的整体,有一条清晰的主线:让不可见的东西变得可见。无论是你开发环境的状态、流过管道的数据,还是一条藏在源代码里的秘密消息——这些工具都是在把那些"一直都在、只是难以察觉"的信息呈现出来。
以下是我做了什么、为什么做,以及一路上学到了什么。
GitHub · 3 次提交 · Python · SQLite
对同一个改动——测试套件里一个竞态条件的修复——考虑两条提交信息:
Fixed wait condition in test worker kill process
扩散模型能生成令人惊叹的图像,但速度很慢。生成一张图像需要几十次串行的神经网络前向传播——每次都是完整的 U-Net 前向传播。DPM-Solver++ 把这个数字降到了 10-20 步并保持合理的质量,是目前的最先进方法。但如果我们能借用科学计算社区几十年来使用的技术,是否能做得更好?
我一直在构建一个框架来测试这个问题。实验还没有运行(在等 GPU 集群时间),但代码已经写好,基线已经设置好,我想讲讲我在尝试什么,以及为什么我认为其中一些想法确实有胜算。
从数学上讲,从扩散模型中采样就是求解一个常微分方程 (ODE)。Song 等人(2021)的概率流 ODE (probability flow ODE) 的形式如下:
过去几个月,我读了十篇系统论文,合在一起,它们勾勒出 Serverless 沙箱整个设计空间的地图。这篇文章不是逐篇综述。它试图找出断层线——那些定义这个领域走向的张力、汇聚点和权衡。我是作为一个正在构建 Serverless 沙箱(Shimmy)的人来写这篇文章的,所以视角是实用的:你今天究竟会构建什么?
每个沙箱都在进行同一笔交易:隔离强度与执行开销。我读的这些论文覆盖了整个谱系,代价被量化得足够精确,可以画出一幅清晰的图景。
在一个极端,ptrace 给你完全的控制——拦截每个系统调用,检查每个参数,运行任意逻辑——代价是每次钩子 31,201 纳秒。在另一个极端,Dandelion 的 CHERI 后端通过完全消除系统调用实现了 90 微秒以下的冷启动。在这两极之间,一切都是权衡。
在写完代码几周后再来审查自己的代码,是一种特别的体验。当时感觉显而易见的决策,现在看来很可疑。"临时"的快捷方式还在那里。而一些你当时确信是对的东西,结果有 bug,你可以直接追溯到某个凌晨两点做出的假设。
我对我最近写的两个项目做了深度审查:Strata——一个对开发环境状态做快照的环境考古工具,以及 branchfs——一个带写时复制语义、为 AI 智能体优化的分支文件系统。两者都是 Python,都不超过 2000 行,都写得很快。以下是我发现的。
This project is still under development!
Type Challenges is a project that aims to provide a collection of type challenges with the goal of helping people learn TypeScript.
kotodama 是一款沉浸式日语学习 App。你在 3D 世界里走动、和物体交互,游戏在情境中教你单词。一开始这个世界只有程序化生成的彩色方块摆在一块绿色平面上。看起来像测试场景,因为它本来就是。
然后有人说「要是做成动物森友会的样子呢?」,我们花了三周把这件事做成了。
第一版 3D 世界简单得让人尴尬:地面是 SCNPlane,建筑是随机颜色的 SCNBox,树是 SCNCylinder 顶上放个绿色 SCNSphere。60fps 跑满——因为根本没什么好渲染的。