Alby's blog

世上没有巧合,只有巧合的假象。

0%

前言

Rust 编译器帮助我们避免了许多常见的内存安全和并发错误,但依然存在一些“坏味道”。这些坏味道不会直接导致编译错误,却可能意味着代码在可维护性、性能或抽象设计上存在问题。本文参考《重构》的风格,整理了常见的 Rust 坏味道及改进方式。

阅读全文 »

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/bin/bash
set -e

# 基准日期(2 年前)
CUTOFF_DATE=$(date -v-2y +%Y-%m-%d)

echo "📅 删除 $CUTOFF_DATE 之前的 Chrome 历史记录..."

# 查找 Chrome 历史记录文件
HISTORY_FILE=$(find ~/Library/Application\ Support/Google/Chrome -type f -name "History" | head -n 1)

if [ -z "$HISTORY_FILE" ]; then
echo "❌ 找不到 Chrome 历史记录文件"
exit 1
fi

echo "✅ 找到历史记录文件: $HISTORY_FILE"

# 备份
BACKUP_FILE="${HISTORY_FILE}.bak.$(date +%Y%m%d%H%M%S)"
cp "$HISTORY_FILE" "$BACKUP_FILE"
echo "💾 已备份到 $BACKUP_FILE"

# 转换为 Chrome 时间戳(从 1601-01-01 起的微秒数)
CHROME_EPOCH_DIFF=11644473600
UNIX_TS=$(date -j -f "%Y-%m-%d" "$CUTOFF_DATE" +%s)
CHROME_TS=$(( ($UNIX_TS + $CHROME_EPOCH_DIFF) * 1000000 ))

# 删除旧记录
/usr/bin/sqlite3 "$HISTORY_FILE" <<EOF
DELETE FROM urls WHERE last_visit_time < $CHROME_TS;
DELETE FROM visits WHERE visit_time < $CHROME_TS;
EOF

echo "🧹 清理完成!请重启 Chrome 以生效。"

本脚本由 ChatGPT 辅助生成。

一、概述

从网络下载视频数据,再进行本地 AI 分析,接着调用 LLM(ChatGPT、DeepSeek、Gemini、Qwen等) API,最后生成文档
整个任务链涵盖了 IO 密集型、GPU 密集型、CPU+IO 混合型运算。
本文讲述了如何使用分布式计算框架 Ray 来满足需求。

方案 并发性 资源效率 备注
独立 placement group 每组绑定同一节点 ⭐⭐ 安全、可控但排队严重(strategy=”PACK”)
Actor 保持节点定位 + 并发执行 ⭐⭐⭐ 状态管理方便,适合流式任务或推理类任务
共享节点资源调度 + 同节点约束资源标签 ⭐⭐⭐⭐ 灵活调度,但实现稍复杂
阅读全文 »

一、概述

用常规编程语言绘制图表的工具非常多且功能强大,比如 matplotlib 就几乎能绘制所有类型的二维图表,甚至可以做一定程度的三维绘图。
但是,如果要使用 ChatGPTDeepSeekQwen3LLM 来一次性正确地生成绘制代码,声明式图表语言(Declarative Diagram Languages)可能是更好的选择。
再加上需从“对 Pandoc 友好”、“配置难度”等方面考虑,相较而言最合适的是 Mermaid

语言/工具 Pandoc 支持度 Markdown 支持度 配置难度 适合场景 备注
Mermaid 通过过滤器(mermaid-filter)或 CLI 高,许多 Markdown 编辑器原生支持 中,需安装 Node.js 和 mermaid-cli 流程图、时序图、类图、甘特图 语法简洁,多图表类型,现代且广泛应用
Graphviz DOT 原生支持代码块 + pandoc-graphviz 过滤器 中,需插件或预先渲染图片嵌入 低,安装 graphviz 即可 复杂流程图、网络图、层次结构图 自动布局优良,图结构复杂时首选
PlantUML 通过 pandoc-plantuml 过滤器调用 Java 中,部分 Markdown 编辑器支持插件 较高,需 Java 环境及 PlantUML UML 建模(类图、时序图、用例图等) 专业 UML 设计工具,适合软件设计文档
WebSequenceDiagrams 无原生支持,需手动生成图像插入 低,需插入生成的图片链接 低,在线使用即可 简单时序图,快速在线生成 依赖网络,适合临时绘图
Ditaa 通过 pandoc-ditaa 过滤器支持 低,需转换为图片插入 低,Java 环境,轻量 ASCII 艺术风格简单流程图、小示意图 轻量快速,风格独特,适合纯文本环境

阅读全文 »

一、准备工作

1、安装 node

1
brew install node

可以不预先安装 meson(ninjia)flatc, 编译时会自动使用 pip 安装。故需确保安装了 python3

2、获取源码并安装 node 包

1
2
3
4
5
# 当前目录:/Users/alby/Workspace/OpenSource/Multimedia/versatica
git clone https://github.com/versatica/mediasoup
cd mediasoup
# 如果不关心 node 部分,可以不运行下行。
npm i
阅读全文 »

曾好几次尝试在 Hexo 中使用 hexo-mathhexo-renderer-markdown-it-plus 等包以支持 LaTeX 皆不成功,要么不行要么错乱。刚刚了解到如果使用 NexT 主题的话则不需要手工安装任何包。本文是一篇备忘录。

hexo: 7.0.0
hexo-theme-next: 7.8.0

阅读全文 »