熵思

RSS: https://entropicthoughts.com/feed
Entropic Thoughts,关于软件、系统与技术复杂性的深度分析博客。

缩小一个 Fedora 虚拟磁盘

作者因为长期双 GPU 笔记本直接跑 Fedora 的恐惧,选择在 Windows Hyper-V 虚拟机里跑 Fedora 当主系统,让 Windows 管理 GPU、电源和休眠,Fedora 只当界面。 实际能稳定用,但 VM 硬件受限严重:GPU、前置摄像头无法用,内存不足时 Linux 会异常卡顿,各种 quirks 都得绕开。他一直想迁到 bare metal,但准备开始缩盘(shrinking virtual disk)的过程充满波折。 全文是带悬念的第一人称踩坑叙事,结尾用“hero with hubris, mistakes, tension, cliffhanger”引出下一步;正文较长在网页继续,本段是摘要/前言。
评论点赞收藏6 天前

用便宜 LLM 做提交标签

作者在一个小项目里需要把 git commit 标记为「维护」或「新功能」,选择用 GPT 5.6 Luna 这类便宜但能力尚可的 LLM 来自动分类。 做法很简单:装 Simon Willison 的 llm CLI 工具,用 Perl 的 open2 把 prompt 写进管道、从 stdout 读回结果,再配一个轻量重试循环即可。 作者在小样本上人工核对后发现标签与自己判断完全一致,于是放心推广到更大规模。文末给出了完整的 Perl 子程序示例,属于「能用且够简单」的工程实操记录。
评论点赞收藏8 天前

Org Mode 博客的标签索引

<p> 由于不断有人询问这个博客是如何搭建的,而我又不想公开那些拼凑而成、糟糕透顶的代码,所以我决定分模块逐步讲解其中的各个部分。一般来说,每当遇到问题需要修复时,我都会记录下自己做了什么,以及它与哪些部分相关联。</p><p> 最近的一个问题是:在生成标签索引时,一个辅助函数导致栈溢出。我当时将其写成了显式的递归形式,在文章数量较少时运行良好,但随着文章数量的增加就不再适用了。标签索引的生成过程与上一篇文章中介绍的 RSS 订阅源生成模式类似。</p><p>In[1]: </p><pre><code>(defun tw-tag-index (project) "为 PROJECT 生成标签索引页面。" (let* ((filename (concat (project-dir "src" "org") "tags.org")) ;; 获取该项目中所有已公开列出的文件。 (files (seq-filter (lambda (entry) (plist-get entry :indexed)) (tw-get-all-files project))) ;; 转换为按标签排序的标签-文章对列表。 (all-tags (sort (tw-get-all-file-tags files)…</code></pre>
评论点赞收藏14 天前

更好的 AI 代码注释检测器

作者用公开数据重新训练了 AI 代码注释分类器,之前因使用私人数据无法开源。新工具提供网页界面,所有处理在浏览器本地完成,不会上传数据。 支持点击文本任意部分查看特征激活情况。早期测试者反馈正面。
评论点赞收藏21 天前

更好的AI代码注释检测器

一位开发者用公开数据重新训练了AI代码注释检测器,工具在浏览器本地运行,不上传任何内容。新版支持点击文本任意位置查看哪些特征激活及其对判断的贡献。
评论点赞收藏21 天前

蛇梯棋:儿童宣传册里的主题小游戏

儿童促销宣传册里常见的蛇梯棋主题变体游戏,掷骰子走格子,遇到特定位置触发前进、后退或再掷一次等事件。主题随推广方变化,画面元素丰富。
评论点赞收藏35 天前

一个老派程序员尝试 Language Server

<p>我写代码的方式和十年前差不多:在文本编辑器里改一改,切换到终端窗口,运行一条命令来编译并执行代码。看看结果,再切回编辑器。<br><br>如果不确定发生了什么,我就在代码里加些调试打印然后重新运行程序,或者用调试器启动程序。要是遇到异常让程序崩溃了,我就把问题修好,再重新启动。</p><p>我挺羡慕 Lisp 程序员的做法。Lisp 的开发通常是直接在 REPL 里输入代码,对正在运行的系统进行增删改操作。</p><ul> <li>Lisp 程序员不必“切换到”别的东西,因为他们本来就身处自己的程序进程之中。</li> <li>他们从不需要“编译并执行”代码,因为代码早已在运行,他们通过热插拔的方式直接修改它。</li> <li>他们也无需在调试器里重启,因为他们已经置身于程序进程中,可以随时检查任何想看的东西。</li> <li>遇到异常时也不用重启程序,因为条件系统允许在系统打上补丁之后,从调用栈的任意位置恢复崩溃处的代码。</li> </ul>
评论点赞收藏36 天前

用75%准确率识别AI生成的代码注释

用代码注释检测AI生成内容,准确率75%。作者发现AI生成的注释会编造"通常情况"等不存在的事实,于是训练分类器区分人机注释。特征包括字符频率、常用词、词性标注、n-gram等,其中em dash、分号、句末句号是机器人注释最强信号。 但模型主要识别Anthropic模型风格,对其他LLM无效。
评论点赞收藏40 天前

一个新手学习FFT的过程记录

有人从零开始学FFT,用一段5Hz正弦波(采样率100Hz)作为第一个实操例子,边学边记录过程。 这类"新手实战"文章对想理解FFT但被数学吓退的读者有参考价值,具体推导和代码实现可在原文继续阅读。
评论点赞收藏50 天前

用纯函数式 Haskell 重写 SICP 数字电路模拟器

有人用纯函数式 Haskell 重写了 SICP 第3.3章的数字电路模拟器,把原书里用可变全局变量和消息传递实现的面向对象方案,改成了无副作用的纯函数版本。 电路用 Change 事件流驱动,Wire 用字符串标识身份,通过 propagate 生成器逐时间步推进仿真,半加器、全加器、环形振荡器都能正确运行。
评论点赞收藏56 天前

用Haskell实现数字电路模拟器(SICP 3.3)

作者在Haskell中尝试复现SICP第3.3章的数字电路模拟器,对比了原方案使用可变状态与消息传递的面向对象写法与Haskell类型系统的等效性。 文章通过前两篇关于泛型函数实现的铺垫(标签分发与可变操作表),说明sum types与type classes可逼近SICP的隐式可变全局调度方案。 技术细节具体,适合对函数式编程、语言实现感兴趣的读者讨论纯函数与副作用建模的边界。
评论点赞收藏65 天前

Kuiper Q-Q Plot: Are These the Same?

介绍使用Kuiper Q-Q图来直观比较两组数据分布差异的方法。文中通过一个处理组与参考组的案例,展示了如何利用该图表识别出处理组分数具有更大变异性的统计特征,为理解分布函数差异提供了直观的可视化手段。
评论点赞收藏71 天前

对分布差异的直觉

<p>想象一下,一个国家里的每个人都会被赋予某种分数,而分数越高, 就越好。目前我无法透露我正在研究的分数的具体细节,但这些分数是在人口层面由政府机构收集的。以下是我在本国人口中这些分数的分布情况。</p><p></p>
评论点赞收藏78 天前

做一次全身体检MRI,相当于多吸了一年烟

文章将全身体核磁共振检查带来的辐射风险,与吸烟一年、怀孕高危、攀登马特洪峰等日常或极限活动的风险进行量化对比。 通过直观的数据类比,帮助读者理解医疗辐射的真实风险水平,打破对核磁共振辐射的过度恐惧。
评论点赞收藏85 天前

Haskell 中的数据导向编程(SICP 2.4.3)

<p>我有一本《SICP》,也被称为《魔术师之书》。 这本书广受赞誉,但我实在没时间把整本书都读完。 因此,我打算偶尔跳读那些看起来有趣的章节。 上周,我们学习了 Haskell 中的标签化数据。《SICP》的作者并不认为这是最佳方案,于是他们转而研究数据导向编程。 接下来,我们也将这样做。</p><p>复数可以以直角坐标形式存储,其中包含实部和虚部。 它们也可以以极坐标形式存储,此时会同时存在模值和角度。 无论复数以何种形式存储,我们都希望能够针对这四种量对它进行查询:</p><p>• 复数直角坐标形式中的实坐标。 • 复数直角坐标形式中的虚坐标。 • 复数极坐标形式中的模值。 • 复数极坐标形式中的角度。</p><p></p>
评论点赞收藏92 天前

Haskell 中的标记数据(SICP 2.4.2)

文章基于 SICP 第 2.4.2 节,在 Haskell 中实现数据标记以支持复数的不同存储表示。 旨在解决库开发中数据格式不统一的问题,通过动态类型模拟 Lisp 方案。
评论点赞收藏98 天前

学习一些对数:用记忆法提升心算与数学直觉

作者分享通过间隔重复记忆常用对数值,从而在脑中快速估算乘法、幂和开方的技巧。文中列举了核心数据及近似计算案例。 作者认为掌握对数直觉能带来类似“几何半值”的独特数学感知,并计划编写脚本练习以强化这种思维模型。
评论点赞收藏100 天前

GLM 5.2 玩文本冒险游戏

<p>我听说关于新的GLM 5.2开放权重模型的口碑不错。据说它能力非常强大! 我不会进行完整的基准测试,不过我在OpenRouter上有一些积分在流转, 所以我想把GLM 5.2与同价位的Gemini 3 Flash进行对比,看看它们的表现如何。</p><p>本次测试采用与之前基准测试相同的设置:每款LLM都会尝试玩几局游戏,每局游戏的预算固定为大约0.15美元。 LLM并不知情,但该追踪系统会记录每局游戏的成就,并统计LLM在每局游戏中获得的分数。</p><p>以下是本次运行中每局游戏的尝试次数。</p><p></p>
评论点赞收藏103 天前

大模型与“差不多好”的代码

作者通过实际工程案例指出,顶级大模型生成的代码虽然功能正确且测试通过,但往往比必要复杂约10%。这种复杂性在局部范围内容易被工程师因交付压力而接受,但长期积累可能带来维护隐患。 文章反思了开发者对LLM生成代码的容忍度,并质疑这种“差不多就好”的工程习惯对长期代码质量的潜在影响。
评论点赞收藏113 天前

摩纳哥大奖赛在排位赛就已决定胜负?

<p>一位一级方程式赛车手激起了我的事实核查欲。他们声称:</p><p>在蒙特卡洛举行的摩纳哥大奖赛,十次中有九次的胜负,完全取决于起跑位置。</p><p>这听起来很合乎情理,因为蒙特卡洛赛道是一条狭窄的街道式赛道,几乎没有超车的机会。但是……真的吗?这究竟是随口一说,还是对比赛的准确统计预测?</p><p></p>
评论点赞收藏120 天前

精益,而非背压

批评 Lucas Costa 用"背压(backpressure)"来比喻应对 AI 代码生成机器人是错的隐喻:背压是让上游减速(控制数量),而应对 AI 代码生成需要的是让上游改变产出方式(控制质量)。 作者从精益制造中提取单件流、自动化(jidoka)和防错(poka-yoke)三种实践,指出当 AI 机器人出错时只能怪流程不能怪机器人,这个道理其实对人也适用,只是对机器人时痛得更明显。 文章有鲜明的个人观点和讨论入口。
评论点赞收藏121 天前

t分布中的90%

William Sealy Gosset was great. He improved beer at Guinness by using the statistics that existed at the time. Not happy with that, he invented new statistics to brew even better beer. The things he i...
评论点赞收藏127 天前

登录芦苇

登录后关注作者、收藏内容和参与讨论。