自新世界 #0x10:Link Blog

日期:
分类: 周报 7
标签: RemNote 6 Rust 3 CSS 2 VS Code 1
  • 我在读什么

  • Build you a link blog for great good

    • Xuanwo shared Simon Willison's approach to running a link blog and wrote:
      • I decided to follow simon's approach to creating a link blog, where I can share interesting links I find on the internet along with my own comments and thoughts about them.
    • This is a nice idea, and I am going to follow suite as well.
      • 💡实际上,我之前已经以某种形式在做了——比如以“我在读什么”等为标题。而且,本身就是一种 link blog,link blog 可能只是没有主题的超文本写作。
    • I don't want to boombard my readers with a flood of items in the RSS, so I'll keep the aggregate form, rather than splitting them into many snippets, although they may be stored like that in the source code. Another reason is that I don't want to acquire, or suffer from, the instant feedback of posting it like in social media.
    • In my opinion, the core of a link blog is to try to add something extra, that is to cite and append whatever thoughts you have. They do not have to be deep insights. Nor do you need to stop yourself from digressing. If you agree with the original author, then write down your resonances. If you disagree, then argue against their opinions. If any part recalls your memory or blows your mind, write them down. To me it is not some kind of read-laters (you have to read it first), but a good way to ease your FOMO — rather than forwarded tens of Hacker News posts, you now act as a news filter for your readers by providing your personal commentary.
    • Here are some rules:
      • As for personal reviews, no AI generated content (AIGC); translations may be.
      • To better express my thoughts, I will write in the language in which I feel appropriate for each link.
      • Content may be further re-used in other posts.
      • Content may be re-arranged in the future.
  • 频繁使用AI可能让人越来越笨?来自一项最新研究的结论

    • 重思什么是效率:
      • 频繁使用这类工具的用户被要求切换到纯大脑写作时,他们仍然背负着“认知债务”:……记忆痕迹较弱、自我监控能力下降,写作内容呈现碎片化。……人工智能工具虽然有助于提升学习表现,但可能会无意中阻碍深度认知处理、记忆力以及对书面材料的真正参与。用户……可能会获得表面上的“流利”,但无法内化知识或产生对知识的归属感。
      • 是有这样一种感觉,vibe writing 后整个人是懵的。
    • 由于使用 ChatGPT 等工具写作时理论上花费的时间更少,用户反而更容易花更长时间投入其中,结果延长了原本完成这一任务所需的时间。
      • 这是好是坏呢?对于 ADHD,如果能减少克服启动困难所需的精力,增加干事情的时间,这无疑是不错的。说不定更长时间的投入在学习上更好呢?
  • Bandizip編輯檔案後未提示更新?別慌!教你秒速找回臨時存檔

    • Personal anecdotes: Edit Word document and save and happily closes Bandizip — I once did the same thing many times in a single zip.
  • 毕业十年

    • 正值博主毕业,看到别人的回忆
    • 因为那正好是我在农业部的一个奇葩的“体制内研究所”当科研民工的时段,所以只写了很少的文章。现在已经过去很多年了,有些事情保密性没那么强,可以补个档了
      • 感觉我这“周”报也可以这样,延迟一段固定的时间。
    • 因为搞人才引进办理深圳户口时需要体检,那里的护士看了我的身份证之后瞪大了眼睛:“北京户口都不要了?”
      • 来去自由。
    • 不知是不是因为老板经常拿这个网站去学术会议上炫耀,引起了上级领导的警觉。
      • 现在国内学术网站、数据集,似乎也直接挂 GitHub (Pages) 了。
  • In China, Coins and Banknotes Have All But Disappeared

    • Personal anecdotes: I try to use cash for whole ¥ amounts (i.e. no cents when prices are added up). To my surprise the cashier is practiced. Also there are middle school students who cannot use mobile phones, which makes my pament in cash not that weird.
    • 💬
      (In reviews) They mistake addiction for convenience and the Tech industry loves them for it.
      • Not using coins seems convenience at least for me. I cannot promise that I am able to keep a good care of my coins.
    • In Yangzhou, coins are called "铅角子" kaengã'ze [outdated] / "硬币" ènbèi. The vowel of 币 should be [ɪ] / [əi] but some may pronounce it as a fricative [ɿ].
  • 排版技术笔记1:杂感

    • 野望是,搞文档产品,总是有人用。我想想,可能结合我那个内部的字体软件,可以搞一个很原子化的,自由组合式的排版库。你什么牛档马档,最后落实,不都还是字符的二维有限空间组合?
      • 输出是二维的,不过使用时不一定是。3D plotting & typesetting 你崛起吧
  • 我在听什么

    • 字体站在人文和科技的十字路口。
      • 非常好的描述。新世界的大门在人文和科技上也需要有所建树(
    • 字体作为一个基建 / 工具:例如汉仪给华为做的 Symbol,在用字体的技术解决一些更广阔的问题。
    • Words of Type, a Multilingual Encyclopedia for Typography - ATypI在 ATypI 上说自己的网站的维护费用很贵。看样子这个网站是个百科性质的?
    • 如今已不是一个字体匮乏的时代。可能有上千款中文字体,AI 可以帮助用户快速选择合适的。
      • AI 的应用之一,说实话比其他场景都更靠谱。
    • 来自璇璣造字的暴论
      • 📽️在 ATypI 2025 Copenhagen 上:Towards Infinite Styles: Do We Even Need Fonts?
      • Considering our vision that digital fonts as a product may eventually disappear, let us imagine the potential future roles that future type designers may become.
      • 璇玑造字」是智琮科技的字库品牌。基于 AI,他们做了朱雀仿宋,以及本站标题的字体光锥宋
        • 播客中提到,关于 AI 模型的训练「完全使用免费、免费商用、开源、自由版权和已进入公有领域的字体。」
      • 这个暴论再不放的话就晚了,再不放就有别人放了。反正迟早都要有人放的,所以我要先把它放出来。
        • 之前其实在去年 6 月他们一次和量子位的直播上我就听过这个暴论,这次更详细,即:
        • 我们现在都非常习惯于并且接受了日常生活当中大多数时候看到的文字基本上都来自于一个字体的设定,但这个设定它是否真的合理?我们已经掉进了字体的坑里,并且沉溺于字体的繁荣了。……为什么一定要贝塞尔曲线?为什么一定要勾这个贝塞尔曲线?为什么不换一种别的字形的表示方式呢?……字体(Fonts)作为一种文字的实现形式,总会有终结的一天。
      • 不管是手写的也好,还是印出来的也好,它都是字。……现在这些所谓人文温情……其实彻底从我们生活当中离开了。字体设计师在做到让大家生活在一个纯净无暇的这样的一个文字环境当中的同时,也让更多写字不好看的人可以去产出非常漂亮的文字。但另外一方面,我们又发现我们把这些手写的温情给砍掉之后,有非常多的文字风景几乎永远的消失了。
        • 好多把手写招牌、手写体石刻换成印刷的标准宋体黑体的,完全大奸大恶。
      • 我们处于这样一个惯性的时期,现在所有的文字渲染,所有的文字显示都是基于字体和编码这样一个模型之上的。……这套模型最早是模仿的活字印刷,非常拉丁的一个思维逻辑去做的,在很多文字上面是踢到了铁板,有很多文字它的书写和排版需求其实会给技术提出更高的要求。现在我们其实一直是在已有的技术之上去做提案,然后去修补,然后会去形成一个连人类都很难去理解的的模型。
      • 用户买一个字体,他可能就为了排一个海报标题。……蒙纳有订阅制,但用户不需要几千款字体。
        • 虽然标题字体是这样,但是如果字体是 on-demand 提供,需要人交流来购买字体感觉就好怪。
      • …模型突然在那段时间普遍具有了能非常好的去生成图像当中的文字的能力……我们是很早就相信这样的事情会发生。
        • 有时可以以假乱真。
      • 坚信我们现在所处的这样一个文字视觉环境,仍然处于吃糠咽菜阶段。我们作为一家技术公司,我们的目标是让大家吃上预制菜。
        • 以及,什么时候人人可以吃上丰富的开源字体预制菜、做出开源字体预制菜呢?
  • 我在写什么

  • CSS

  • telegram-cloud-photo-size-5-6314281574086068091-y.jpgtelegram-cloud-photo-size-5-6316810287621195753-y.jpg

说说最近遇到的 CSS 问题。

UnoCSS

一两个月前发现的 bug:

.aaa {
  @apply text-blue-500;
  font-size: 1.5em;
  /* {} ← empty curly brace in comment will lead to wrong parsing */
  font-weight: 900;
}

生成了

/* layer: playground */
.aaa {← empty curly brace in comment will lead to wrong parsing */
font-weight: 900;
}

Reproduction 在 https://unocss.dev/play/~

另外提交了一个 PR,支持了 Tailwind 4.1 新增的 @noscript 指令。发现 Unocss 的 mini 和 tailwind 两个 preset 有很多功能是重复的,并非继承关系。

<div class="text-blue-500 @noscript:text-red-500">
  新世界的大门
</div>

如果你禁用了 JavaScript,下面这行字应该是红色的。

新世界的大门

VS Code

写 Zeno 的桥桥给了我一段GitHub 登录页的 CSS 文件 中发现的代码,是以 --数字开头的 CSS 变量 --7-grid-columns-minus-last-gap。我并不知道这是合法的 CSS,结果 VS Code 也没法正常高亮出这个来。

目前 VS Code 的语法高亮无法正确地识别
目前 VS Code 的语法高亮无法正确地识别

查找了一番,发现根据 spec,一个标识符(<ident-token>)不能以数字开头。但是,对于以双破折号 -- 开头的变量(CSS 自定义属性),紧跟在后面的名称可以以数字开头。

翻岁月屎书,这个对词法语法的改动是在 2014,然后 W3C 搞偷袭,还没有清晰说明:

Change the definition of ident-like tokens to allow "--" to start an ident. As part of this, rearrange the ordering of the clauses in the "-" step of consume a token so that <CDC-token>s are recognized as such instead of becoming a -- <ident-token>.

旧的形式语言如下:

于是便着手修复水 PR。VS Code 的 grammar 是我们的老熟人 tmLanguage.json,之前在《仓颉语言的 AST 操作》里讲过。内置的语法是在额外仓库 microsoft/vscode-css 维护的。但还不是 JSON,而是 cson,是 CoffeeScript 的语法。不过无妨,似乎有字符串的糖会 trim 掉多行之间的 whitespace,方便分隔正则表达式的不同部分。

  (?:[-a-zA-Z_]    | [^\\x00-\\x7F])     # First letter
  (?:[-a-zA-Z0-9_] | [^\\x00-\\x7F]      # Remainder of identifier
    |\\\\(?:[0-9a-fA-F]{1,6}|.)
  )*

把它的 First letter 行删了然后把末尾的 * 改成 +。这个变量的语法还有两处,一个是定义时,一个是使用时,后者直接是固连着 var( 的。

然后是写测试。这个测试也只是检测 token 的第若干个 token 是否是我们想要的:

it('tokenizes custom variables with a leading digit', function () {
  var tokens;
  tokens = testGrammar.tokenizeLine('.flex { grid-template-columns: var(--7-grid-columns-minus-last-gap) var(--4-grid-columns); }').tokens;
  assert.deepStrictEqual(tokens[10], { scopes: ['source.css', 'meta.property-list.css', 'meta.property-value.css', 'meta.function.variable.css', 'variable.argument.css'], value: '--7-grid-columns-minus-last-gap' });
  assert.deepStrictEqual(tokens[15], { scopes: ['source.css', 'meta.property-list.css', 'meta.property-value.css', 'meta.function.variable.css', 'variable.argument.css'], value: '--4-grid-columns' });
});

提交 PR + 解释,然后签 CLA,收到的反馈很好:

Thank you for the detailed description and fix!

LGTM

结果发现两个 approved 的人只是有 read-only 权限的,还需要一个 maintainer approve,现在还卡在这里。唉大企业

Servo

在 macOS 上尝试构建 FireFox,一切正常,非常顺利(里面有个 servo 文件夹),但构建 Servo 遇到问题,开了个 PR #37811。感觉挺搞笑的,servo 自己 rust-analyzer 可以正常工作,但构建不起来;FF 则是反过来,r-a 不行,但构建正常。前述的问题后来被 maintainer 修好了。除此之外本身没什么说头,不过我发现这位同时是 ohrs 的维护者……

Servo 运行在 macOS 上
Servo 运行在 macOS 上

评论

评论将在审核后显示,阁下可以在本博客的 Github 仓库的 拉取请求列表 中查看。提交成功后会自动跳转。

本站不支持 Dark Reader 的暗色模式,请对本站关闭后再访问,亮色模式的对比度、亮度等选项不受影响。部分页面右上角提供暗色模式切换按钮,如果你没看到,说明你的浏览器尚不支持此特性。本提示不依赖于 JavaScript,你可自行查找其他用户在本站发表的关于如何关闭此提示的评论。