旧纸上的一小片撕边纸尺,刻度渐疏,点缀一块群青色油墨

从进制到浮点数:计算机如何存储数字

笔者在数年前其实就在计算机组成原理的课堂中学习了这部分内容,但是今日在重新拾起的时候发现自己没有能够真正充分理解这部分内容。故写下这样一篇文章。 我们先问一个问题:计算机中的数究竟是如何被表示的? 进制与位权:同一个数的不同写法 我们都熟悉十进制,因为人类习惯用十个数字计数。但计算机底层处理的是二进制位。于是,我们需要一种办法,让同一个数能够在不同的表示方式之间自由转换。 先看一个例子: 同一个整数的四种写法 十进制13基数 10 二进制1101基数 2 八进制15基数 8 十六进制D基数 16 这四个数完全相等。进制只是书写同一个数量的不同规则。 为什么十六进制会出现字母?因为单个数字符号需要表示 0~15,总共 16 种可能,于是用 A~F 表示 10~15。 那么转换的本质是什么?其实就是每一个位置代表的权重不同。 例如十进制的 123: $$ 123 = 1 \times 100 + 2 \times 10 + 3 \times 1 $$二进制也一样,只不过相邻位置的权重不再相差 10 倍,而是 2 倍。 以十进制 13 为例: $$ 13 = 8 + 4 + 1 $$二进制各位置的权重从右向左是 1、2、4、8、16……需要哪个权重,就在对应位置写 1;不需要则写 0。 自己构造一个二进制数 点击下面的 0 或 1,切换该位,观察数值怎样变化。 1280 640 320 160 81 41 20 11 上排:位置权重 下排:该位的值 ...

创建于  · 8 分钟
仿旧米色纸面上的撕边描图纸,淡灰架构草图逐渐变成规整图形,其中一个矩形以群青标出

科研绘图入门:基于Codex的工作流

其实前两年就有一篇文章:如何用 Sonnet-3.7 画科研示意图 那个时候其实模型就有了非常令人惊叹的绘图能力。现在随着模型能力的发展,其实还有一个更好的方案能够去做到更优雅的布局和更加精细的调整。所以我在这里写一篇文章来分享我自己的经验。 本文是完全基于ChatGPT相关生态去构建完成的。所以请准备好可用的ChatGPT Plus及以上订阅。 我们首先需要确定我们需要画图的种类,比如我们选择SCI、IEEE风格。打开DrawIO网站:DrawIO 然后找到一下参考图,我去选了一个arxiv的文章比如2605.25553,然后截取了这里面的一个图作为参考: 绘图参考图我们打开Codex(ChatGPT),加载相关的代码库对我们的代码库做一个梳理。输入提示词(以我这个网站的评论区的实现方案为例,这边我调用的模型是GPT-6.1 Sol): 请你参考这幅图对我这个项目评论区的方案进行梳理,调用图像生成,画出SCI、IEEE风格的顶会架构图。 然后他给我返回了一幅图,看起来还不错: gpt-image画的第一幅图然后我们在同一个会话窗口里面先把模型切换到GPT-6 Astra,然后发送: 请你在桌面创建一个Drawio文件,把这幅图使用代码绘制出来。 然后他给了我一个文件,拖到drawio里面: 糟糕的绘图发现不大行,然后截图给ai,让他修: 修复后看起来好很多了,后面手工拖一下线就好了。 大家可以下载一下产物文件: 下载可编辑的评论区架构图(Draw.io) 后面的图形的思路微调其实也是大同小异。 有问题直接可以在评论区留言~

创建于  · 1 分钟
仿旧米色纸面上的撕边山景小图,淡灰山脊前是一道饱和群青山峰

从知乎到博客:使用AI了解世界的最佳实践

我从初中开始就很喜欢刷知乎,一年的阅读量有数千万字。 知乎这个平台通常会展示一片一片长文,我们能看到每一个人对一个社会议题不同角度的剖析。 但是逐渐的我发现,我过于依赖知乎的推荐系统,阅读到的回答也逐渐变成那种情绪化的。于是我开始思考,有没有什么更好的方式去获取信息。 这个月,我订阅了ChatGPT Pro。其实我一直都是AI老玩家了,每年和AI交流无数的问题,逐渐越来越依赖ai。但是我发现一个问题,AI所能提供回答的信息量其实是不足的,可能一整个回答中,不仅要等待数分钟,最后获得的信息可能只有一个小小的观点,但是却不理解背后的东西。 AI擅长解题,但是不擅长把各种各样的信息的所有富含信息量的过程表述出来。 如何解决这个问题呢? 我想到了一个非常古老的方案:博客。 我自己也写博客,就像现在这样,虽然可能有点少就是了。 在互联网上有很多高价值的博客,由于大多数博客都是每位作者的一方小天地,所以AI内容的渗透率相对比较低。你能读到作者自己真正想要表达的东西,他们的故事、背景、心情,等等等等。 于是,我找到了一个非常好的办法: 找到你真正想要了解的东西,并和 ChatGPT 说:请你深度思考调研一下相关内容,找到高质量的博客或视频,我比较喜欢博客,最好都是博客。请千万不要给我书籍。 为什么不要书籍呢,因为书籍可能会过于系统化,导致无法快速解决自己当下的问题。也无法展开全貌。 我很喜欢自顶向下的学习方式,就像我们去观察一个风景一样,我们其实都会从大的宏观的景色出发,慢慢步入细致的细节。 这是我目前的一些观点。 玩得开心。

创建于  · 1 分钟
仿旧纸面左下角叠放三张撕边便签,最前一张印着群青色的海天小图,旁边有 day one 微文字

使用Memos记录属于自己的人生

既然我希望写本回忆录,那就从此刻开始记录吧。

创建于  · 1 分钟
极简 zine 风封面:五张撕裂纸片承载 C++ 调用链,一枚群青色结构榫将其连接

分而治之:高性能框架hikyuu上的Agentic Coding实践

在过去的数个月内,我向 GitHub 上的一个 C++ 高性能量化框架hikyuu提交了很多 PR。在此过程中,我积累了一些比较好用、可以复用的经验,在此做一个整理。 关于Repo的一切 这是一个非常庞大的高性能量化回测框架,里面不仅有 C++,还有 Python。如果单靠人去做优化、做贡献,很难去读懂这个框架。 我因为对量化交易比较感兴趣,于是偶然之间发现了这个框架。对我而言,稳定性、高效性和持续维护是一个框架被我使用的关键。 然而因为量化回测的特殊性,我需要确保我所使用框架的代码是自主可控的、正确的。于是我使用现在非常常见的 Coding Agent 对整一个 Repo 进行了深度详细的扫描。在其中发现了很多和正确性相关的 bug。于是我便开始着手进行修复工作。 关于开发环境 一些环境的搭建 C++ 的环境之前少接触到。以前上学校的 C++ 课时下了一个 Visual Studio 2022,于是我就理所应当地把这个环境复用下来了。由于我本机上没有 GCC,所以我就使用了 VS 2022 的 MSVC 作为本次实践的编译环境方案。 我使用 Git 对这个代码库进行了分支操作,在本地开了一个专门用于本地编译环境适配的 Branch。 模型的选择 在整个开发过程中,我非常喜欢使用的模型就是部署在 Ollama Cloud 上面的智谱 GLM 5.2,以及当时还采用了 Kimi 官方的 Coding Plan Kimi K3 进行整个开发修复。Codex 里面的 GPT 5.5 在当时也参与了部分 PR 的修复与提交。 同时使用了 Gemini 3.1 Pro Preview 进行结构的审计和质量监控。 Harness 选型 本次我们主要使用智谱的 ZCode 作为我们的 Harness 环境,同时,我们也部分采用 Codex 作为 Harness。 ...

创建于  · 2 分钟
极简 zine 风封面:一台灰度裂屏手机正滑入饱和群青色保护套,置于仿旧纸面之上

请为你的手机穿上保护套

今天我的手机又一次摔在了地上。非常不幸的是,它的屏幕碎了,外屏碎了。我在 6 月底的时候已经碎过一次了,这一次它又碎了。我起初以为是因为我没有贴好膜,所以这一次我非常在意、非常注意,去贴了钢化膜,但不幸的事情还是发生了,它就这样碎了。 其实我很多次都对自己说,我应该去贴膜,我应该去用保护壳。但因为我的注意力一直在其他地方,所以我一直不是很在意,或者说我根本不在意不在意保护壳这件事。这就让我非常非常被动。 你知道吗?维修一次外屏要 419 元,这相当于是我很久很久的生活费,大概 60 刀的样子。60 刀,我得花多长时间才能赚到这么多钱。 这就是因小失大。 所以伙计们,千万千万要给手机套上保护壳,这非常非常重要。其实贴膜真的不是很重要,随便来个水凝膜就行了,但保护壳真的非常重要,因为四角是最容易碎的地方。 希望如果有人能读到这篇文章,能够以我为戒。 今年我已经在手机上花了将近 900 元,而这台手机本身也就 3000 多块钱。 真的是为我本不富裕的生活添上了一笔浓墨重彩的血红色。 叹息,叹息。

创建于  · 1 分钟
极简 zine 风封面:两张错位的旧纸程序剖面上,一条番茄红运行轨迹从灰色电路迷宫中穿出

从静态分析到动态调试:Agent 时代的逆向工程

如果有一天,有人让你去逆向一个应用、一个 App、一个网页,你会怎么做? 如果是我,在两年前,我可能完全束手无策。或者说,遇到各种各样的问题。我可能会直接丢给聊天框里的 AI,让它帮我寻找思路。老实说,这样的方法非常非常低效,也容易错过很多细节。 但现如今,我们有了真真正正的 AI,也就是 Agent,或者说 Coding Agent,所有的一切就都发生了改变。 找到合适的工具链 那么我们究竟该如何通过 Agent 去展开我们的逆向工作呢?其实非常简单,最关键的问题是让 Agent 能够长出适合逆向的手和脚。 现在市面上的 Coding Agent 一般会有两种工具接入方法,一种是 Skill,一种是 MCP。但对于我们逆向来说,MCP 基本上是一个更好的选择。 我现在比较常用的主要是两个 MCP,一个是针对本地应用的,通过和 IDA Pro 集成,也就是 IDA Pro MCP1;一个是用来做网页逆向的,叫做 Chrome DevTools MCP2。 只要我们接入了这个 MCP,就能够非常快地展开逆向。 至于 Agent Harness,我个人比较推荐 Zcode,因为它的 MCP 管理相对来说比较简洁易懂。 对于模型来说,我比较推荐智谱的 GLM 5.3 Flash 模型和 DeepSeek V4.1 Flash 模型,截止今天。一是因为它们的性能都还不错,有很强的逆向性能;二是因为它们有着不错的输出速度,且安全围栏相对较低。这几点保证了它们在逆向过程中流畅的体验和不错的交付物。 但是请注意,千万不要使用 Codex,或者说 Claude Code 进行逆向。我们主要说的是 GPT 系列模型和 Claude 系列模型,这两个系列的模型有着比较高的安全防护围栏,尤其是 Codex,严重者可能会直接封号。 动手开始逆向 在明确的工具接入之后,我们就真真正正地动手展开逆向了。一般情况下,我们去做逆向非常非常关键的一点,就是知道我们逆向的目标到底是什么。 如果是本地软件,我们用 IDA Pro 对它进行反编译。举个例子,如果我们要逆向它的数据库,可以把相关的字段、数据表、可能的东西,所有信息都发给模型,这样模型就会有一个比较不错的上下文,从而获得一个非常棒的性能。 如果我们的目标是网页,那就非常简单了,只要接入 Chrome DevTools MCP,然后大部分模型都会通过抓包去分析网络包,再分析整个 JavaScript 脚本,这样就可以非常清晰地对网页所有接口进行调研。3 ...

创建于  · 1 分钟
极简 zine 风海报:仿旧纸面上一张打印校样卡片,灰度流程图中有一个群青色节点

渲染 Demo

这页用来验证站点当前开启的全局渲染能力,也作为中英双语文章切换的第一篇样例。 数学公式渲染 行内公式可以正常显示:\(e^{i\pi} + 1 = 0\)。 块级公式也可以正常显示: $$ \int_0^1 x^2 \, dx = \frac{1}{3} $$ Mermaid 图表渲染 下面的代码块用于检查 Mermaid 代码围栏和站点的交互式图表包装逻辑。 - + Fit flowchart TD Start[开始] --> Write[写 Markdown] Write --> Build[运行 Hugo] Build --> Deploy[推送到 Vercel] 原始 HTML 渲染 这个折叠组件是直接写在 Markdown 中的原始 HTML。 展开一个原始 HTML 区块 这段文字是嵌入在 Markdown 中的原始 HTML。 行内 SVG 渲染 下面的徽章使用行内 SVG 编写,应该不会被转义。 SVG OK 交互式 Canvas 渲染 这个轻量 Canvas 例子用来确认文章中的脚本、滑块和动态图形可以正常运行。 ...

创建于  · 1 分钟