Five figures, and each one is about the reader rather than the subject. Which of the three ways of showing an inside you actually need. How to break a dense picture into steps without making the reader find it again each time. When to hand them the control. When a notation beats a picture. And what a figure has to carry if somebody screenshots it and sends it on.五张图,每一张讲的都是读者,不是被画的那个东西。三种「把里面画出来」的方法你到底需要哪一种;一张很密的图怎么分步,而不让读者每一步都重新找一遍;什么时候该把控制权交出去;什么时候文字记号反而赢过图;以及一张图被人截屏发走之后,它身上必须带着什么。
The subjects here — a chip package, a memory array, a transfer, a configuration grammar — are vehicles. Every dimension and every timing is illustrative and each figure says so on its face. What is not illustrative is the drawing method: the rules in the strips and callouts are meant to be applied literally, and one of them is enforced by a machine check rather than by good intentions.这里的题材——一颗封装、一片存储阵列、一次传输、一份配置文法——都是载体。所有尺寸和时间都是示意,每张图自己也这么写了。不是示意的是画法:那些规矩带和提示框里的条目是照着用的,其中有一条已经由机器检查强制,而不是靠自觉。
Cut it open and you get adjacency and thickness, at the cost of seeing only the plane you cut. Make the shell see-through and you get how many parts there are and how they sit, at the cost of everywhere they overlap. Pull it apart and you get order and reversibility, at the cost of the real adjacency the first one showed. Picking without noticing you were picking is how a figure ends up careful and unhelpful at the same time.切开,得到的是相邻和厚度,代价是只看得见你切的那个平面。把外壳变透明,得到的是里面有几个、怎么摆,代价是所有重叠的地方。拆开,得到的是顺序和可逆性,代价是第一种画法展示的那些真实相邻关系。在没意识到自己在选的情况下选了一种——图就是这样变成既仔细又帮不上忙的。
You do not pick a drawing, you pick a question你挑的不是画法,是问题
What is next to what and how thick → cut it. How many and where → make it see-through. What order and can it come apart → pull it apart. A figure that tries to answer all three grows ghost outlines and stray axes, and the reader stops trusting the parts that were right.谁挨着谁、多厚 → 切开。有几个、在哪 → 透视。什么顺序、拆不拆得开 → 拆开。想一张图答完三个问题,它就会长出幽灵轮廓和多余的装配轴,而读者会连原本对的那部分也一起不再相信。
The instinct with a dense figure is to redraw it for each step, showing only what matters this time. It backfires: the reader has to locate the structure again in every panel, and by the third one they have stopped reading carefully and started skimming. Lock every coordinate instead, paint everything neutral, and let one row come forward. Now nothing has to be re-parsed and the difference is the only thing moving.面对一张很密的图,本能是每一步重画一次,只画这次要紧的部分。结果适得其反:读者在每一格里都要重新定位这个结构,到第三格就已经从「读」切换成「扫」了。改成把每一个坐标都锁死、其余全部画成中性,只让一行站出来。这时没有东西需要重新解析,唯一还在动的就是那个差别。
An interactive figure is the strongest form here and the only one that can fail invisibly. The screenshot gate captures exactly one state: whatever the figure looks like before anybody clicks. If that state is empty, every mechanical check still passes and the page ships a blank box. The failure direction is “let through”, which is the expensive direction, so this one is not left to good intentions — it is a machine check.交互图是这里最强的一种形式,也是唯一一种能悄无声息失败的。截图检查只会拍到一个状态:这张图在任何人点击之前长什么样。如果那个状态是空的,所有机器检查照样全绿,页面就带着一个空盒子发出去了。坏的方向是「放过」,而这是最贵的方向——所以这一条不交给自觉,它是一道机器检查。
the driver fills a descriptor · still just memory writes — the engine has not been told anything yet
the processor starts it · one register write. after this line the processor is free, which is the entire point
the engine moves the bytes · the only step where data actually moves, and the only one the processor is not in
the engine raises an interrupt · the transfer is already over. this step is only how anybody finds out
interactive-figure-blank-defaultinteractive-figure-blank-default
It fires as an error when a figure has controls and every panel is hidden before interaction, and as a warning when all of them are showing at once, which is what you get when the script has not run. It was written before this figure was drawn, and it was mutation-tested: a fixture with every panel hidden goes red, a compliant one stays green, and removing the fix turns the compliant one red again. A check nobody has watched fail is not yet a check.一张图带控件、而交互之前所有面板都隐藏时,它报 error;所有面板同时显示时报 warn——后者正是脚本没跑起来时的样子。这道检查是在画这张图之前先写的,而且做过变异测试:全隐藏的夹具会变红、合规的保持绿、把补丁撤掉合规的那个立刻变红。一道没人看着它红过的检查,还算不上检查。
A railroad diagram beats grammar notation on exactly three questions — may I leave this out, may I repeat it, which of these do I pick — because each answer becomes a different shape rather than a different bracket. It loses badly on recursion: notation states that a term contains an expression in one line, while the picture can only point back at an earlier track and hope. A page that only ever argues for pictures is selling something.铁路图在恰好三个问题上赢过文法记号——能不能省、能不能重复、要在几个里挑哪个——因为每个答案变成了一种不同的形状,而不是一种不同的括号。它在递归上输得很惨:记号一行就能说清 term 里含 expr,图只能指回上面那条轨,然后指望读者跟得上。一个页面如果永远只替图说话,那它在推销东西。
That is the normal fate of a good figure, and almost none of ours survive it. The page had been quietly supplying four things: a title saying what the figure is, one line saying what it answers, a source with a date, and the limits. Strip the page away and all four go with it, leaving a picture that looks authoritative and cannot be acted on. A figure meant to travel has to carry its own four.这是一张好图的正常命运,而我们的图几乎没有一张扛得住。页面一直在悄悄替它提供四样东西:一个说清它是什么的标题、一句说清它答什么的话、带日期的出处、以及边界。把页面拿走,这四样一起没了,剩下一张看起来很权威、但没法据以行动的图。要出门的图,这四样得自己带。
Everything above only matters if the figure is still readable when it leaves上面那些,只有在图离开页面之后仍然读得懂时才算数
The other four sections improve a figure in place, on a page you control, next to prose you wrote. This one is about the version of it that ends up in a chat window at 2am with none of that. If a figure only works in its original setting, most of the work put into it never reaches anybody.前面四节改善的是图在原地的样子——在你能控制的页面上,紧挨着你自己写的正文。这一节讲的是它最后出现在凌晨两点某个聊天窗口里、上述一样都不在的那个版本。一张只在原生环境里成立的图,投进去的功夫大部分没有到达任何人。