从 EFI Shell 引导系统(转载) 2024-02-29 本文转载自 halfa 的博文 Boot from an EFI Shell,并进行了翻译。 今天启动 PVE 集群上的几个虚拟机的时候,出现了下图的报错。 ![启动错误](/images/boot-error.png ...
为 TypeScript 项目的 JS 依赖补充类型 2024-01-09 本文使用的 TypeScript 版本为 5.3.2。示例代码已上传到 GitHub。 在 TypeScript 项目中难免会用到一些 JS 库,TypeScript 官方支持使用 @types/ 的同名库来作为 JS 库的类型定义。如果 @types/ ...
调试 Flask 服务超时问题 2024-01-06 最近在项目里遇到个 Flask 内存泄漏的问题,前前后后 debug 了几天。 起因是有人报错,发现某个 Flask 服务出现了请求超过 3 分钟还没有返回结果。查服务日志有很多的 WORKER TIMEOUT,是 gunicorn 的进程超时后 kill 的机制。但是日志只能看到超时的进程 id,看不到是哪个请求超时了。正好这个服务上有一个比较耗时的 API(下称 API A),平均耗时在 ...
开始做 iOS 和安卓双机党 2023-12-03 最近买了第一部 iPhone,开始做安卓 + iOS 双持党。体验了半个月以后,觉得 iOS 和安卓各有优劣,双机党是个不错的选择。 为什么要做双机党 从准备买到下单 iPhone 只间隔了几个小时,很像是一次冲动消费。但其实我在之前很长一段时间都在考虑,用什么手机才能获得更好的体验。 在疫情那段时间(20 年初)我给自己的小米 MIX 2S 刷了类原生,从此对类原生的流畅不掉帧的动画 ...
实际开发中借助 React Profiler 调试 React Web app 性能问题 2023-10-08 最近写 React 遇到一个性能问题,调试了一段时间都没什么思路。后来以尝试的心态玩了玩 React Developer Tools 的 React Profiler,得到了一点线索,最终找到了问题 ...
搭建手游私服 2023-04-28 最近又有个手游停服了,是一款日本音游,叫 HoneyWorks Premium Live。为了能在停服后继续玩这款游戏(搓屏幕),我们尝试搭建游戏的私服。在我们搭建到一半的时候,被 HoneyWorks 国内代理制止,只好就此作罢(毕竟是实名上网的人,不太想在国内搞事情)。不过在这个过程中学到了不少东西,也证明了私服的可行性,故写一篇博客作作记录。 音游和其他游戏(如 LOL、绝地求生等)不同的 ...
2023 年了,该尝试用 Corepack 安装 pnpm 了 2023-04-28 正如 IE 的唯一作用是安装 Chrome,npm 的作用也是用来安装 yarn/pnpm 最近 pnpm 8 发布,把公司 monorepo 的 pnpm 版本升级到 8 了,借机测试了一下安装 pnpm 的各种方法,最后发现 Node.js 推出的Corepack 是最好用的。 Corepack 是 Node.js 推出的包管理器的管理器。类似于 nvm 可以一行命令安装、切换 N ...
在 pytest 中 mock 2022-12-25 最近开始用 pytest 写单元测试,发现 pytest 官方教程内容非常多,而且 pytest 里也有很多 unittest 的内容,很容易让人摸不着头脑。pytest 的 example 也很少/很抽象,因此写篇博客记录一下自己的使用。 由于 pytest 和 unittest 用法的变种很多(如 Mock.asserthascalls 的多个变种,patch 的函数形式和装饰器 ...
在安卓上抓包 2022-10-13 由于 https 的广泛使用,现在需要抓包的时候,就不得不考虑解密 https 流量。抓包软件解密 https 流量的原理很简单,运用了非常经典的攻击方法——中间人攻击。 > 中间人攻击的原理是,攻击者在客户端和服务器之间建立一个代理,代理会将客户端的请求转发给服务器,同时将服务器的响应转发给客户端。这样,客户端和服务器之间的通信就变成了客户端和代理之间的通信,代理和服务器之间的通信。这样,攻击 ...