文章列表


给 protobuf schema 代码排序

后端定义好接口 从后端代码生成 protobuf schema(proto 文件) 前端用 proto 文件生成请求接口的代码 这是我们团队里常见的工作流。 然而有个痛点:后端生成的 proto 文件内,代码的顺序是随机的。哪怕后端只改了一个字段,把文件放进仓库后会变成这样: 完全看不出来改了哪里 因此有了这个工具。 原理 protobuf schema 使用 message 等代码块定义数据结构。下面这样的定义: protobuf 复制 message Aaa
#protobuf
#工具
2026-02-11

rem 布局踩坑:样式冲突、宽屏适配和布局精度

TLDR 实现如下: css 复制 /** 假设屏幕宽度是 750 */ html { font-size: calc(100vw / 750 * 100); } 此时 7.5rem 等于 100vw。然而会有与外部样式冲突、屏幕太宽时不能正常展示、布局误差的问题,具体请看正文。 前言 为了让页面去适应不同的屏幕宽度,理想情况是为不同宽度的屏幕应用不同的样式。 但这样一来,设计、开发、测试都需要额外处理多种情况。 为了降低开发成本,一些移动端网页 / app 选择了使用 re
#前端
#CSS
2026-02-03

JSON 与 flexbuffers 相互转换

简介 简单搜了一下没找到这种在线工具,于是弄了一个。 输入框里面的文本太多会很卡,所以默认会截断,不全部展示。不想截断的话可以选中“在输入框里展示完整文件内容”。 要去掉选择的文件,可以点击选择文件后什么都不选,直接关掉弹窗。 懒得单独弄个删除按钮了 试了下几 M 大小的文件,是没有问题的。估计好几十 M 的文件处理起来会很慢,并且需要注意内存占用。 顺便,这是第一次尝试在浏览器使用 JS 原生模块和 esm.sh CDN。近两年的 Chrome / Firefox / Safari
#Web
#flatbuffers
#工具
2025-09-16

使用 Debian Snapshot 软件源回到过去

Debian Snapshot 是 Debian 官方提供的时间机器,保留着 Debian 官方软件源的历史。最早的快照可以追溯到 2005 年 ,每天至少快照一次。 把它设置为 apt 源就能搭建过去的环境,非常适合做考古研究或者跑老软件。 TL;DR 运行一个比快照的时间老的 debian 虚拟机 / docker 容器 / chroot / 随便什么别的东西 在 sources.list 的 URL 前面加上 [check-valid-until=no] 把 sour
#Linux
#Debian
2024-06-03

玩具哈希计算器

一个玩具哈希计算工具。 Showcase (可以同时选择多个文件) 在新窗口打开 ⚠️ 由于代码未经优化、操作系统的调度、CPU 大小核等因素,这个不能用来精确比较 WASM 与纯 JS 的性能差异。 仓库地址 介绍 写这个东西的初衷是熟悉在浏览器中使用 Rust + WASM 的一套流程。 主要有三个功能点要实现:计算哈希、并行计算、展示进度。 搭建项目 前端是典型的 Vue + TS 的 Vite 项目。这里主要提一下 Rust + WASM 项目的注意事项。
#Web
#玩具
#WASM
#Rust
2024-01-15

在浏览器中实现水平仪

2024-03-05更新 iOS Safari可以使用 devicemotion,详见下文 简介 为了试玩 Vue3 和浏览器的传感器 API 做了这个东西。 Showcase 请使用手机查看。 如何实现 挑选API读传感器数据,转换成 CSS transform 展示到页面上 读传感器 浏览器对传感器的支持比较有限。可用的 API 如下: API 能拿到的数据 文档 devicemotion 事件 加速度、角速
#Web
#玩具
2023-12-25

libdgc-static 初步完工

距离上次写博客的代码(libdgc-ssg)已经过去了10个月。之前写的东西不堪回首,于是重新写了一个更轻量的东西。 主要特点 使用 Markdown 编写博客正文,支持 html、GFM(GitHub Flavored Markdown)和 frontmatter 每篇文章拥有私有的资源(目录结构如下,可以使用相对路径引用;可以在文章中插入 iframe 来运行任意代码 plaintext 复制 - posts - post-name - index.md
#站务
2023-12-10

测试 Markdown 渲染效果

行内元素 包括粗体(bold、斜体(italic、 行内代码块、链接 某人:“〈排版〈‘试试’标点挤压(测试。” 块级元素 标题 四级标题 避免使用五级和六级标题 段落 Rust 程序设计语言的本质实际在于赋能(empowerment:无论你现在编写的是何种代码,Rust 能让你在更为广泛的编程领域走得更远,写出自信(这一点并不显而易见) 举例来说,那些“系统层面”的工作涉及内存管理、数据表示和并发等底层细节。从传统角度来看,这是一个神秘的编程领域,只为
#markdown
#测试
#站务
2023-01-20

注意

你的浏览器版本较低,可能无法正常显示本站页面。