在 MacOS 上激活 Chrome Devtools 的远程调试功能
在 MacOS 上激活 Chrome Devtools 的远程调试功能 关键在于除了指定 --remote-debugging-port,还需要指定 --user-data-dir。 下面的命令能解决问题: `shell rm -rf ~/tmp/user-data-dir mkdir -p ~/tmp/user-data-dir cp -r...
#Develop
在 MacOS 上激活 Chrome Devtools 的远程调试功能 关键在于除了指定 --remote-debugging-port,还需要指定 --user-data-dir。 下面的命令能解决问题: `shell rm -rf ~/tmp/user-data-dir mkdir -p ~/tmp/user-data-dir cp -r...
Espressif Rust 安装:RISC-V 与 Xtensa 来源(官方文档):https://docs.espressif.com/projects/rust/book/installation/riscv-and-xtensa.html (访问时间:2025-09-22) 摘要 - 使用 espup 一站式安装并维护 Espressif 目标所需的工具链(同时覆盖 RISC-V 与...
Git忽略文件:.gitignore vs .git/info/exclude 📍 文件位置 | | .gitignore | .git/info/exclude | |----------------|-----------------------|-----------------------| | 路径 | 项目根目录/子目录 | 本地仓库的 .git/info 目录 | | 是否提交...
跨项目共享本地 Git 子模块配置 配置现有子模块 1. 修改子模块 URL S 是子模块名称。 `bash cd /path/to/parent_repo 进入父仓库(A/B/C) git config submodule.S.url /projects/S 指向你的本地仓库 ` 2. 强制重新初始化 `bash rm -rf S 删除旧子模块 git submodule...
Rust 嵌入式:STM32G474 通过 XIP 扩容 Flash * [ ] 等待 PCB 打样和焊接 * [ ] 验证 > 目前开发项目,写着写着固件体积超了,不得研究 XIP 技术来将程序放到外部扩展的存储器中使用。可惜 G4 系列只有少数高端系列支持 XIP,目前没时间折腾,直接换了大容量的版本 G474 先开发项目,等有时间了再用 G474 验证 XIP。 背景知识 eXecute...
Blessed.rs: Rust 生态精选库索引,通过社区共识筛选出各领域最稳定、实用的第三方 crate,提供类似 Linux 发行版软件源级别的依赖推荐。
gibo: 基于 GitHub gitignore 模板库的命令行工具,通过 gibo dump 可快速生成 200+ 编程语言/开发环境的 .gitignore 文件配置。
搓个小脚本,用来将 Blinko 目前所有的笔记转成公开(分享)。 使用 bun 执行: `shell bun run blinko-share-notes.ts ` 脚本地址
toastify-js 是一个纯 js 的消息提示库。
在自部署的 Gitea 中,使用 Actions 和 actions/checkout@v4 拉取子模块 先准备一个机器人账户,专门用来在 actions 中对 gitea 进行访问。如果不在意安全性或做功能验证,可以把自己的账户当作这个机器人账户使用。 首先通过 ssh-keygen -t ed25519 -C "your_email@gitea.example.com" -f...
在 Git 中,使用下面的命令删除子模块: `shell git submodule deinit -f path/to/submodule git rm -rf path/to/submodule ` 完整的参考请看评论
dummyhttp 是一个超级简单的 HTTP 服务器,它返回固定的主体和固定的响应代码。使用 Rust 语言编写。 这是一个简单、小型、自包含、跨平台的命令行工具,用于调试和测试。它允许您返回任意 HTTP 响应并记录传入请求数据。包括 HTTP/2 支持。
书接上文 我打算做个 PD 诱骗器,用来获取几个固定档位的电压,以便测试我的 [[Project/PowerDesk]]。第一版大概因为开发到功率计算时,flash 用尽,对应的高配 MCU 还没发布,这次也正好结合之前发现的问题,重新做一个第二版。 改进之处 系统供电 之前使用 LDO 进行供电,诱骗到 12V以上后,温度是真的有亿点点高,所以这次换了 DC-DC...
Git 项目中,可以通过生成 git 差异,向 LLM 换取 commit message. 获取暂存取差异并复制到剪贴板: `shell git diff --staged | pbcopy ` 获取工作取差异并复制到剪贴板: `shell git diff | pbcopy `
使用 Bacon 在 Rust 项目中自动执行测试 cargo watch 作者的推荐使用 Bacon 替代 cargo watch。 bacon is a background rust code checker. 安装和更新: `shell cargo install --locked bacon ` 基本使用: `shell run default job, usually based...
记录一下我开发 LumiDock Flex 的过程。
更新 Node.js 项目中的 packages npm-check-updates 是一个非常好的第三方工具,比包管理器自带的功能丰富很多。 `shell 交互式更新整个 monorepo 的包到符合 semver 的最新版本,并更新 package.json 中的版本 pnpx npm-check-updates -i -ws --root --upgrade --target semver...
miniserve 是一个用 Rust 语言编写的 HTTP 服务器。可以用来部署静态站点,支持 MPA、SPA。 1. 轻量级 HTTP 文件服务器 2. 跨平台,单一可执行文件 3. 快速部署,适合临时文件共享 4. 支持 HTTPS 和基本身份验证 5. 提供网页界面和文件上传功能 6. 可自定义端口和 IP 绑定 7. 支持 QR 码生成和 zip 压缩下载 8. 命令行工具,易于集成
CSS Bed 是一个提供多种无类 CSS (no-class or classless) 主题效果预览的网站,为网页开发提供了起始模板。这些主题响应迅速,支持良好,且体积小巧,便于开发者快速应用。 更多: - dbohdan/classless-css: A list of classless CSS themes/frameworks with screenshots
natemoo-re/micromorph: A very tiny library for diffing DOM nodes 可以通过对比提供的 DOM 节点或 DOM 字符串与现有 DOM 节点的差异来更新当前的 DOM。可用来将 MPA 实现为 SPA。
检查并更新 Cargo 依赖 使用 cargo-edit 实现。 安装 cargo-edit `shell cargo install cargo-edit ` 检查是否有更新 `shell cargo upgrade -i --dry-run ` 更新 `shell cargo upgrade -i `
Rinky-Dink Electronics 提供了许多嵌入式开发可用的 C 数组风格的字体文件。
背景与目标 最近正在开发一款支持多协议快充的桌面供电设备,需要测试输出的情况,所以迫切需要拥有一个 PD Sinker。之前还没机会用到相关的芯片,这次借机搓一个。 因为自己的首要需求是测试快充输出,其次是其他场景下也能发挥最大的功能,所以考虑要实现的目标如下: 1. 支持 PD sink 1. 5-20V 支持,不追求细分的电压档位 2. 数控,避免误操作 3....
一些关于 git commit 的风格 Conventional Commits (Conventional commits are based on the Angular conventional commits) gitmoji | An emoji guide for your commit messages Conventional Emoji Commits
sxyazi/yazi: 💥 Blazing fast terminal file manager written in Rust, based on async I/O. 使用 Rust 编写的终端文件管理器。
vscode 中格式化 python 代码 插件:autopep8 调整缩进 如果 vscode 显示的缩进空格数不正确,执行 >Detect Indentation from Content 捕获。
dprint 是一个快速、多语言的代码格式化工具。 主要特点包括: - 性能:使用 Rust 编写,比 Prettier 更快。 - 多语言支持:类似 Prettier,支持多种语言。 - 配置灵活性:比 Prettier 提供更细粒度的配置选项。 - 一致性:与 Prettier 类似,确保团队代码风格统一。 - 插件系统:支持扩展,类似 Prettier。 与 Prettier 的主要区别:...
vscode 调试 Rust 项目时,提示:Oops! The debug adapter has terminated abnormally. 将插件删除后恢复正常。 `shell rm -rf ~/.vscode/extensions/vadimcn.vscode-lldb-1.* ` Rust Analyzer Not Working in VSCode for Mac x86 with...
Three.js 的光照贴图(lightMap)~~无法在金属度(metalness)大于 0.9 时体现效果,原因不明。~~babylon.js 上未发现这个问题。 Lightmap for metal does not work - Questions - three.js forum Lightmaps not visible with dark base colors or metal...
在 Intel Hackintosh 中无法启动 Android Emulator (AVD),一直黑屏的解决方法: Create the file ~/Library/LaunchAgents/emulatorfix.plist with the content below. `xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist...
在 Git 中,可以使用以下命令同时克隆主仓库和其子模块: 1. 克隆主仓库并初始化子模块: `shell git clone --recurse-submodules <主仓库 URL> ` 这个命令会自动克隆主仓库,并且同时初始化和克隆所有的子模块。 2. 克隆主仓库,但不初始化子模块: `shell git clone <主仓库 URL> ` 然后手动初始化和更新子模块: `shell...
ncdu 是一个用户友好的 TUI 程序,用于分析磁盘空间使用情况,是 du 命令高级的替代品。 `shell install on ArchLinux sudo pacman -S ncdu usage sudo ncdu / `
将本地最新版本的 docker image 上传到指定服务器: `shell docker save $(docker images foo/bar --format "{{.Repository}}:{{.Tag}}" | awk "NR==1") | bzip2 | ssh user@example.com 'bunzip2 | docker load' `
公开的测试视频直播源: - HLS - https://sf1-cdn-tos.huoshanstatic.com/obj/media-fe/xgplayer_doc_video/hls/xgplayer-demo.m3u8 - https://sf1-cdn-tos.huoshanstatic.com/obj/media-fe/xgplayer_doc_video/hls/xgplayer-...
ImHex 是一个免费、开源的 Hex 编辑器。支持解析文件。
readable-stream-clone 能够将 Node.js 可读流克隆出多份。
HTTPie 是一个 API 测试客户端,有桌面版和 CLI 版本。
httpbin.org 是一个简单的 HTTP 服务器,能够帮助开发人员测试 HTTP client。它提供了在线服务和自部署服务。
MongoDB 在 Docker 中备份和恢复 Archive 格式数据 备份: `bash docker compose exec mongo mongodump --archive > ./backups/date +%Y-%m-%d"_"%H_%M_%S.archive ` 恢复: `bash docker compose exec -T mongo mongorestore...
maildev 是一个用于开发环境的电子邮箱服务器,将发信服务器配成它之后,可以在他的 Web 界面查看发信的内容。 这是一个名为Maildev的开源项目,它提供了一个本地SMTP服务器和web界面的组合,用于邮件开发和测试。 主要特点包括: - 本地运行一个SMTP服务器,用于捕捉开发过程中发送的测试邮件。 - 提供web界面,可以在浏览器中查看、预览收到的邮件和其附件。 -...
使用 vite-bundle-visualizer 分析 Vite 项目捆绑包的内容。 `bash npx vite-bundle-visualizer --open `
Colima 是一个在 Mac OS 或 Linux 上的容器运行时。 目前我使用它来代替 Docker。 Colima 日常使用
使用 PNPM 的 overrides 选项,可以可靠地将指定依赖替换成你想要的,非常适合本地修补其他包时临时测试使用。 如果是 workspace 项目,需要在根的 package.json 中配置。如果未启用 shared-workspace-lockfile (默认是 true)则应在相关的项目中的 package.json 配置。
httpstat.us 是一个提供指定 HTTP 状态码响应的网站。
msgpackr 是一个高性能的 JSON 序列化/反序列化的 JS 实现。支持 Node.js、Deno、Bun 和 Browser 平台。 NPM
vite-plugin-swc-transform 这个 Vite 插件能够让 Vite 正确构建带有装饰器和元数据的 TypeScript 项目。 它能让下面的编译参数正确生效。终于可以在 Vite 项目中快乐地使用 async-injection 了。 `json { "compilerOptions": { // ... "experimentalDecorators": true,...
canvas-hypertxt 能高效地在 Browser Canvas 中帮助我们简单排版文字,它作为一个帮助方法使用,本身不接管渲染。
将本地构建的 Docker image 传送并加载到服务器中。 `shell docker save <image_tag> | bzip2 | pv | ssh <user@host> 'bunzip2 | docker load' ` 上面的代码将本地镜像通过管道符压缩并传递到另一台主机上,并在那台主机上解压并加载到 docker 引擎中。 可以同时传多个: `shell docker...
Rust 工具链相关操作 查看已安装和可用的工具链 `shell rustup show ` 安装和卸载工具链 `shell install rustup toolchain install <toolchain> uninstall rustup toolchain uninstall <toolchain> ` 切换工具链 `shell rustup default rustup...
更新 Cargo installed 的程序。 `shell cargo install $(cargo install --list | egrep '^[a-z0-9_-]+ v[0-9.]+:$' | cut -f1 -d' ') ` 上面的脚本能将通过 cargo 安装的程序更新到最新的版本。 来源:https://github.com/rust-lang/cargo/issues/95...
JSON 与 Base64 互转 `typescript // Encode { const obj = {"Hello": "World"} const bytes = new TextEncoder().encode(JSON.stringify(obj)); const binStr = String.fromCharCode(...bytes); const base64Str...
WebUI 是一个支持多种编程语言开发 GUI 的库,GUI 部分直接使用操作系统中已安装的 Web 浏览器来展示。
WakaTime 是一款为软件开发者提供的编码时间统计工具。 WakApi 是其开源的替代品,可以作为 WakaTime 的后端,而 IDE 插件可以直接使用 WakaTime 的官方插件。 GitHub: WakApi
traefik/whoami 是一个用于回显 HTTP 请求的工具 Docker Image。 Docker Hub: traefik/whoami - Docker Image | Docker Hub GitHub: traefik/whoami: Tiny Go server that prints os information and HTTP request to output...
Browser 中,dataURL 与 ArrayBuffer 互转 `js const dataURL = `data:${file.mimeType};base64,${btoa( String.fromCharCode(...new Uint8Array(buffer)), )}`; const buffer = fetch(url) .then(res =>...
nocodb 将任何 MySQL、PostgreSQL、SQL Server、SQLite 和 MariaDB 变成智能电子表格。 Airtable Alternative。
限制 Docker 日志体积 Docker 默认使用 json driver 记录日志,但没有限制日志体积。 将以下配置放入 /etc/docker/daemon.json 后重启 docker 服务,可以使以后创建的容器都应用日志数量和体积限制: `json { "log-driver": "json-file", "log-opts": { "max-size": "10m", ...
Docker 跨平台构建镜像 首先检查一下现有的 driver `bash docker buildx ls ` 默认的 driver 目前不支持。如果除了 default 外没有其他的,需要重新创建一个: `bash docker buildx create --name mybuilder --bootstrap --use ` 然后使用刚刚创建的 driver: `bash docker...
TypeScript 源文件中,找不到 process 定义,可能是因为: 1. 没有安装 @types/node 2. 没有在 tsconfig 中配置 compilerOptions.types: ["node"] `json5 { "compilerOptions": { // ... "types": ["node"] } } ` 3. 没有将文件 include 到项目中...
Pure ESM package 这篇文章详细说明了如何构建一个纯的 ESM 包,带有一些解释和错误排查方法。 它的作者是一个 ESM 教徒,开发了很多只支持 ESM 的 node modules.
使用 Vitest 或 Jest 进行测试用例开发时,可以使用 Snapshot 简化期望值的设置。
dirname-filename-esm 简单地帮助我们在 ESM 项目中获取 dirname 和 filename 的工具。 `ts import { dirname, filename } from 'dirname-filename-esm'; const __dirname = dirname(import.meta); const __filename =...
satisfies 操作符 用于确保表达式与指定的类型匹配,但不影响返回的类型。 官方示例(具体说明点上面标题的链接): `ts type Colors = "red" | "green" | "blue"; type RGB = [red: number, green: number, blue: number]; const palette = { red: [255, 0, 0], ...
小结三个 JS/TS 代码测试框架 Jest:目前最流行的测试框架 - ✓ 主流 - ✓ 通过扩展支持 TypeScript - ✓ 支持 cjs Mocks,实验支持 mjs Mocks - X 性能不好,似乎有内存泄露的问题 Vitest:零配置 - ✓ 开箱即用的 ESM、TypeScript、JSX 支持 - ✓ 智能且即时的监视模式,有效地自动避免无关文件的测试 - ✓ 支持...
pg-mem 一个适合用于测试的、在内存模拟的 PostgreSQL 数据库。
normalize.css 浏览器默认样式重置 `bash pnpm i normalize.css ` `js import 'normalize.css' `
cloc 代码行数统计工具: `bash install brew install cloc use cloc . --vcs=git `
tsx 使用 esbuild 增强 Node.js 以运行 TypeScript 和 ESM。
NVM Node.js 版本管理工具使用 安装:brew install nvm 安装最新的 Node.js LTS:nvm install --lts 使用 zsh-nvm 自动安装和使用对应版本的 node.js: `bash echo 'zinit load lukechilds/zsh-nvm ' >> ~/.zshrc ` 在项目根目录中,指定项目使用的 Node.js 版本:...
GIt 本地忽略路径 The .git/info/exclude file has the same format as any .gitignore file. Another option is to set core.excludesFile to the name of a file containing global patterns. Note, if you already...
VS Code 中使用 Chrome 调试网页的启动配置 `json { "version": "0.2.0", "configurations": [ { "type": "chrome", "request": "launch", "name": "Launch Chrome against localhost", "url": "http://localhost:3000",...
Docker Image 镜像查看与分析工具 Dive Repo:https://github.com/wagoodman/dive `bash docker run --rm -it \ -v /var/run/docker.sock:/var/run/docker.sock \ -e DOCKER_API_VERSION=1.37 \ wagoodman/dive:latest...
批量更新并启动子目录的所有 docker compose container 脚本。 `bash #!/bin/bash 获取当前目录下的所有子目录 directories=$(find . -maxdepth 1 -type d) 遍历每个子目录 for dir in $directories; do if [[ $dir != "." ]]; then echo "进入目录: $dir"...
valtio 一个基于 proxy 的状态管理。 适用于 React 和 Vanilla。
使用 AudioContext 解决 iOS Safari UGM 之后,无法自动连续播放音频的问题。
Sqids 一个从数字 ID 编码成适合 URL 的短字符串库,支持解码
判断 Safari 是否是 iPadOS 版本 根据网络上资料来看,由于 iPadOS 13 开始,iPad Pro 将自己的 navigator.platform 报告为 MacIntel, UA 也从包括 iPad 字样变成只包括 Macintosh。但是目前 Macintosh 还没有支持触摸屏的产品,所以可以这么判断: `js const isIPadPro =...
在TypeScript monorepo项目中,启用 “declarationMap” 选项以避免在跳转到定义时跳转到“. d.ts”文件。 tsconfig.json `json { "compilerOptions": { "declarationMap": true, // ... } } ` 参考: - Go to definition goes to \*.d.ts when...
pmndrs/detect-gpu 根据设备信息和基准库对比,获取 GPU 性能指标。 适合为三维场景渲染做默认质量设置。
CBOR 是一个类似 JSON 但是二进制的序列化表示 cborg 是一个优秀的 CBOR 实现。
natural-orderby 自然排序
React-Toastify 很不错的消息提示库
fetch-progress 让 fetch 也能有 onProgress 回调。 `js fetch(this.props.src) .then( fetchProgress({ // implement onProgress method onProgress(progress) { console.log({ progress }); // A possible...
SpacetimeDB 您可以将 SpacetimeDB 视为数据库和服务器合二为一。 它是一个关系数据库系统,允许您通过称为“模块”的奇特存储过程将应用程序逻辑直接上传到数据库中。 您的客户端无需部署位于客户端和数据库之间的 Web 或游戏服务器,而是直接连接到数据库并在数据库本身内部执行应用程序逻辑。您可以将所有权限和授权逻辑写入模块内,就像在普通服务器中一样。 这意味着您可以使用单一语言...
Astro 一个 MPA、All in One 的全栈框架。
批量执行 NPM 脚本时常用的工具: - concurrently - wait-on - npm-run-all2
Three.js VR UI 库 - felixmariotto/three-mesh-ui: ⏹ Make VR user interfaces for Three.js - ion 3D Engine
Observable Hooks React 🤝 RxJS
async-injection 支持异步的依赖注入库。使用装饰器标记。
yuka JavaScript 游戏 AI。 提供寻路、转向、触发器等功能,以及 AI 逻辑设计
UPBGE 带有 3D 游戏引擎的 Blender Fork。
React TwinwindCSS 组合: - Twind.style 😂 这个项目好像有点凉了 - daisyUI — Tailwind CSS Components
在 .npmrc 增加下面的内容,解决无法使用 pre 和 post 前缀脚本: ` enable-pre-post-scripts=true ` ref: How to fix "postbuild" and "prebuild" not working with pnpm? | The David Dias
UnoCSS 类似 TwinwindCSS 的 Atomic CSS 引擎 Onu UI React UI with Uno CSS
让 pnpm 在网络状态不太正常的环境下尽快重新获取资源: .npmrc ` fetch-retries=5 fetch-retry-mintimeout=1 fetch-retry-maxtimeout=10 `
Vite 开发服务器反向代理 Parse Server 时,会出现较大的响应(29KiB) 被截断的问题 表现是 cURL 测试时,响应内容在固定位置停止,连接保持未断开。 经过测试,问题出在 node-http-proxy 上。使用 fast-proxy 没有出现问题。如果不使用 Parse Server 作为上游,直接用 express 返回静态的结果,在 node-http-proxy...
在Vite 配置文件中使用项目的 .env 环境变量: `ts // https://vitejs.dev/config/ export default defineConfig(({ mode }) => { process.env = { ...process.env, ...loadEnv(mode, process.cwd()) }; return { your_config:...
killport 是一个 Rust 语言写的命令行程序,可以杀死占用指定端口的进程。 安装: `shell install with brew brew install killport or curl -sL https://bit.ly/killport | sh ` 使用: `shell killport 8080 `