TIL
TIL 全称为 Today I Learned,旨在简短的分享自己获得的知识/经验,或者仅仅是自认为有趣的事物。受到 Simon Willision 和 Julia Evans 的启发。形态上可能类似于微博(广义的 micro-blogging),但是不受平台限制。
我曾经让 LLM 找对应 TIL 的两个字的中文翻译,但似乎都不太满意,因此暂时保留原始名字。未来如果找到合适的可能会换上。以下是一些可能的翻译:今学;今知;今悟;今得;今获;今识;今明;今晓;今解。
游牧计算
在使用 LLM 的时候很容易陷入两个极端之一:完全信任服务提供商(无论是 OpenAI/Deepseek 这样的官方服务,还是像 SiliconFlow/OpenRouter 这样的推理提供商),或者是完全自己部署。前者很方便,外包了复杂度,但是也意味着模型不受自己控制;后者很自由,但前提是得有足够多的钱买卡。 但其实全托管-自托管是一段连续的光谱,游牧计算(Nomadic Compute)则是其中一个有趣的中间点。这个概念似乎一位外国博主 Xe Iaso 创造的,指的是像游牧民族那样,带着自己 …
在使用 LLM 的时候很容易陷入两个极端之一:完全信任服务提供商(无论是 OpenAI/Deepseek 这样的官方服务,还是像 SiliconFlow/OpenRouter 这样的推理提供商),或者是完全自己部署。前者很方便,外包了复杂度,但是也意味着模型不受自己控制;后者很自由,但前提是得有足够多的钱买卡。 但其实全托管-自托管是一段连续的光谱,游牧计算(Nomadic Compute)则是其中一个有趣的中间点。这个概念似乎一位外国博主 Xe Iaso 创造的,指的是像游牧民族那样,带着自己 …
用 LLM 计算可视化文字的信息增量
读 LLM 推理相关的资料时,想到:在 LLM 前向推理的过程中,会计算从输入开头到当前 token 的所有 token 的 logit,最后采样的时候只用了最后一个 token 的 logit;是否可以构建一个工具,用户输入一段文本,让LLM计算每个token上出现用户输入token的概率,并且加点可视化(概率大:说明这个接续很常见,没什么信息增量;概率小:说明这个接续不太常见,可能有点意思),来得到一个展示文本信息增量的工具? 搜了搜,发现果然已经有人做过了,用的是 GPT-2 (虽然老了一 …
读 LLM 推理相关的资料时,想到:在 LLM 前向推理的过程中,会计算从输入开头到当前 token 的所有 token 的 logit,最后采样的时候只用了最后一个 token 的 logit;是否可以构建一个工具,用户输入一段文本,让LLM计算每个token上出现用户输入token的概率,并且加点可视化(概率大:说明这个接续很常见,没什么信息增量;概率小:说明这个接续不太常见,可能有点意思),来得到一个展示文本信息增量的工具? 搜了搜,发现果然已经有人做过了,用的是 GPT-2 (虽然老了一 …
Emoji Kitchen - 用 2 个已有的 emoji 生成新的 emoji
虽然我是 Gboard 输入法的用户,但是因为日常用 Emoji 不多,直到最近才了解到 Emoji Kitchen 这个功能(或者说项目?)。简而言之,给定两个 Emoji,可以生成一个符合加法语义的新 Emoji (实际上是图像,而不是 Unicode 标准的字符)。例如 热狗+花束=热狗花束。 阅读相关资料可以发现,每一个组合都是 Google 的设计团队手绘的[1];虽然有一些组合原则[2],但是没有自动化(至少从我能找到的信息来看是这样)。考虑到图像生成模型已经广泛可用了,可能未来会有 …
虽然我是 Gboard 输入法的用户,但是因为日常用 Emoji 不多,直到最近才了解到 Emoji Kitchen 这个功能(或者说项目?)。简而言之,给定两个 Emoji,可以生成一个符合加法语义的新 Emoji (实际上是图像,而不是 Unicode 标准的字符)。例如 热狗+花束=热狗花束。 阅读相关资料可以发现,每一个组合都是 Google 的设计团队手绘的[1];虽然有一些组合原则[2],但是没有自动化(至少从我能找到的信息来看是这样)。考虑到图像生成模型已经广泛可用了,可能未来会有 …
用 PATH 里的脚本是更好的别名
我自己的 .bashrc 里有不少小工具,但是要每次改起来得写 shell script 着实烦人(即使能用 LLM 写,也免不了来回调试几次才能满意)。读到这篇文章,我才意识到原来可以写脚本放到 script 里,还有一些额外的优势(不用手动 source 重载、用 shell script 之外的任何语言、各种 shell 都能用)。 src: https://evanhahn.com/why-alias-is-my-last-resort-for-aliases/
我自己的 .bashrc 里有不少小工具,但是要每次改起来得写 shell script 着实烦人(即使能用 LLM 写,也免不了来回调试几次才能满意)。读到这篇文章,我才意识到原来可以写脚本放到 script 里,还有一些额外的优势(不用手动 source 重载、用 shell script 之外的任何语言、各种 shell 都能用)。 src: https://evanhahn.com/why-alias-is-my-last-resort-for-aliases/
Rust 的日期库的奇妙实现
问题:实现一个函数,输入 (year, day-of-year) ,输出 (year, month, day) 基本做法:硬编码一个月份-日期数组,简单写一个循环 Rust 的新做法:利用一些神奇的数学关系(仿射函数),可以在无循环的情况下实现判断,核心是这两个公式: let month = (ordinal + 30) * 10 / 306 + 2; let days_in_preceding_months = (month + 3) * 306 / 10 - 122; 最终优化后的代码如下 …
问题:实现一个函数,输入 (year, day-of-year) ,输出 (year, month, day) 基本做法:硬编码一个月份-日期数组,简单写一个循环 Rust 的新做法:利用一些神奇的数学关系(仿射函数),可以在无循环的情况下实现判断,核心是这两个公式: let month = (ordinal + 30) * 10 / 306 + 2; let days_in_preceding_months = (month + 3) * 306 / 10 - 122; 最终优化后的代码如下 …
用 Unicode 变体选择器隐藏信息
用 variation selector (VS 变体选择器) 把二进制数据藏在 unicode 字符串里;VS 有 256 个(VS1~VS256),刚好一个 byte 一个,二进制数据甚至不需要特殊处理(例如 base64) 一般应用(如浏览器)不会渲染出来 LLM 可以阅读(很适合做 prompt injecting) src: https://paulbutler.org/2025/smuggling-arbitrary-data-through-an-emoji/
用 variation selector (VS 变体选择器) 把二进制数据藏在 unicode 字符串里;VS 有 256 个(VS1~VS256),刚好一个 byte 一个,二进制数据甚至不需要特殊处理(例如 base64) 一般应用(如浏览器)不会渲染出来 LLM 可以阅读(很适合做 prompt injecting) src: https://paulbutler.org/2025/smuggling-arbitrary-data-through-an-emoji/
LLMSerp - 把大语言模型当作搜索引擎
LLM 内部已经存储了很多事实性信息。如果通过一些 prompt,让 LLM 输出 [{title, abstract, url}],就能实现一个搜索引擎。通过把这个"假"搜索引擎和真搜索引擎(例如 Google)的结果混合,Jina.AI 发现可以解决 RAG 中“什么时候需要调用外部搜索”的问题(可以阅读他们的博客文章了解更多信息)。但即使没有这个作用,单纯把 LLM 当作搜索引擎用也是一个很神奇的想法。 demo: https://jina.ai/llm-serp-demo/ blog: …
LLM 内部已经存储了很多事实性信息。如果通过一些 prompt,让 LLM 输出 [{title, abstract, url}],就能实现一个搜索引擎。通过把这个"假"搜索引擎和真搜索引擎(例如 Google)的结果混合,Jina.AI 发现可以解决 RAG 中“什么时候需要调用外部搜索”的问题(可以阅读他们的博客文章了解更多信息)。但即使没有这个作用,单纯把 LLM 当作搜索引擎用也是一个很神奇的想法。 demo: https://jina.ai/llm-serp-demo/ blog: …
debugpy - VSCode 无配置文件调试 Python
VSCode 里用 debugpy 可以直接启动 debug session,无需配置文件(launch.json)。基于 Debug Adapter Protocol,和 Language Server Protocl 类似的调试协议。 src: https://github.com/microsoft/vscode-python-debugger/wiki/No%E2%80%90Config-Debugging via: …
VSCode 里用 debugpy 可以直接启动 debug session,无需配置文件(launch.json)。基于 Debug Adapter Protocol,和 Language Server Protocl 类似的调试协议。 src: https://github.com/microsoft/vscode-python-debugger/wiki/No%E2%80%90Config-Debugging via: …
要求 LLM 在完成任务时留下笔记
ref: https://addyosmani.com/blog/automated-decision-logs/ 在项目目录下放一个 fyi.md 或者 notes.md 在 prompt 里要求 LLM 完成任务时同时更新此笔记,包含目标、方案和实际执行的行动 这看起来是一个显而易见的有效做法,但是之前却没有人提出过!下次使用 cursor 或者其他 LLM 加持的编辑器时我肯定会试试这样做。
ref: https://addyosmani.com/blog/automated-decision-logs/ 在项目目录下放一个 fyi.md 或者 notes.md 在 prompt 里要求 LLM 完成任务时同时更新此笔记,包含目标、方案和实际执行的行动 这看起来是一个显而易见的有效做法,但是之前却没有人提出过!下次使用 cursor 或者其他 LLM 加持的编辑器时我肯定会试试这样做。
curl 有 LTS 了
curl 有 5 年 LTS (Long Time Support) 版本了,不过只有签了商业协议的用户才能使用 https://rock-solid.curl.dev/ via: https://daniel.haxx.se/blog/2024/11/07/rock-solid-curl/
curl 有 5 年 LTS (Long Time Support) 版本了,不过只有签了商业协议的用户才能使用 https://rock-solid.curl.dev/ via: https://daniel.haxx.se/blog/2024/11/07/rock-solid-curl/
Excel 的自动填充实际上是程序生成
原来 Excel 里自动填充是有论文的,底层是实现了程序生成;另外据说 Google Sheets 的自动填充之所以没有微软的好,是因为微软申请了专利,Google 绕不过去。 Automating String Processing in Spreadsheets Using Input-Output Examples https://www.microsoft.com/en-us/research/wp-content/uploads/2016/12/popl11-synthesis.pdf …
原来 Excel 里自动填充是有论文的,底层是实现了程序生成;另外据说 Google Sheets 的自动填充之所以没有微软的好,是因为微软申请了专利,Google 绕不过去。 Automating String Processing in Spreadsheets Using Input-Output Examples https://www.microsoft.com/en-us/research/wp-content/uploads/2016/12/popl11-synthesis.pdf …