博客上线「图书馆」模块:在线读 EPUB / PDF + 下载
博客新增 图书馆 模块,可以: 在线阅读 EPUB(基于 Epub.js,支持翻页 / 目录 / 进度记忆) 在线阅读并一键下载 PDF(浏览器原生查看器,零依赖) 每本书同时提供 EPUB / PDF 两种格式的下载 前往 图书馆 看看示 …
阅读全文 »博客新增 图书馆 模块,可以: 在线阅读 EPUB(基于 Epub.js,支持翻页 / 目录 / 进度记忆) 在线阅读并一键下载 PDF(浏览器原生查看器,零依赖) 每本书同时提供 EPUB / PDF 两种格式的下载 前往 图书馆 看看示 …
阅读全文 »开发手记 · 第 1 / 3 篇 合集目录 下一篇 › 这套程序里有几个动作是发出去之后要等的。让一个网站停下来,等它真的停了才能换文件;让一批文件复制完,等它们都落地了才能继续。 这类「等」的地方一共有 8 处,我全部用了同一套办法,每 …
阅读全文 »开发手记 · 第 1 / 5 篇 合集目录 下一篇 › 有回我打开一个算法相关的文件夹,里面整整齐齐排着几个策略文件,名字都规规矩矩。唯独其中一个,名字里夹了一句不该说的话,不是技术词,是那种平时不会当着同事面说出口的词,被原样写进了文件 …
阅读全文 »开发手记 · 第 1 / 11 篇 合集目录 下一篇 › 翻一套工业数据 WebApi 的源码时,我先被一个拼写卡住了。 项目里有个业务层目录,叫 Bussiness。多了一个 s。 (等价改写,名字换掉了)它长这样: namespace …
阅读全文 »开发手记 · 第 1 / 9 篇 合集目录 下一篇 › 翻一台常年开在工业现场的测控设备配套程序时,我先是被一段循环卡住了。 那段采集线程的主循环长这样(等价改写,名字换掉了): while (!_stopRequested) { if …
阅读全文 »开发手记 · 第 2 / 3 篇 合集目录 ‹ 上一篇 下一篇 › 这套程序升级之前会先备份。把要被替换的文件复制一份到备份目录,然后再动手。 我一直觉得这一步挺稳妥的。直到我把它的三处细节连起来看了一遍。 备份目录里只有最近一次 备份的 …
阅读全文 »开发手记 · 第 2 / 5 篇 合集目录 ‹ 上一篇 下一篇 › 早些年我负责一块挺重复的功能,好几种差不多的东西,都要走同一套「收请求、取数据、转格式、回结果」的流程。我嫌麻烦,不想给每种东西都重写一遍,就琢磨了个偷懒的法子,做一个通 …
阅读全文 »开发手记 · 第 2 / 9 篇 合集目录 ‹ 上一篇 下一篇 › 读一段老代码时,我注意到它处理旋转信号的方式和我习惯的完全相反。 它要测的是回转件一圈的径向变化,回答两个问题:偏差最大是多少,出现在圆周哪个位置。信号毛得很,传感器漂、 …
阅读全文 »