LEXUGE

LEXUGE

V2EX 第 280281 号会员,加入于 2018-01-06 11:10:00 +08:00
LEXUGE
分享创造  •  LEXUGE
Linear Algebra In Diagrams: 插图式的线代学习笔记
2022 年 9 月 14 日  •  最后回复来自 hackpro
8
分享创造  •  LEXUGE
Oceanix, 基于 Nix 的 OpenCore 配置管理工具
2022 年 8 月 29 日  •  最后回复来自 sxiaojian
3
DNS  •  LEXUGE
dcompass v0.2.0 发布:真正可编程的 DNS 服务
2022 年 6 月 23 日  •  最后回复来自 LEXUGE
15
DNS  •  LEXUGE
dcompass - 纯 Rust 实现的高性能混合 DNS 服务器
2020 年 12 月 20 日  •  最后回复来自 LEXUGE
69
程序员  •  LEXUGE
个人的 NixOS 系统/用户 配置/框架
2020 年 3 月 11 日  •  最后回复来自 LEXUGE
2
程序员  •  LEXUGE
XCH-CEB:一个由 Rust 编写的化学方程式配平工具
2018 年 12 月 4 日  •  最后回复来自 Wichna
8
程序员  •  LEXUGE
Rust 编写的化学方程式配平库
2018 年 5 月 20 日  •  最后回复来自 LEXUGE
25
LEXUGE 最近回复了
回复了 Seventh7 创建的主题 › APP 赠送激活码 ~2023 年 6 月 23 日
XRWLL9XX4EWX 已用
回复了 LEXUGE 创建的主题 › Linear Algebra In Diagrams: 插图式的线代学习笔记2022 年 9 月 14 日
@ColorfulBoar 感谢你的批评!

网站是纯 HTML 的,可能在反应上并不是很友好。

Done Right 我其实也看了。能具体说一下哪里“念念不忘 matrix”吗?

谢谢你的指点,我一直想找一些 category theory 的 diagrams 来入门,因为没有找到好的材料,就直接用了一些原始的方法来作图。

最后,tensor 入门在我看的其他几本书中都未涉及( Linear Algebra by Serge Lang, "Done Right"),所以只是最简单的从 basis 出发做了一些介绍。请问你有什么 tensor 和 penrose diagram 的 reference (书本、文章、笔记等)可以推荐吗?感激不尽。
回复了 LEXUGE 创建的主题 › Linear Algebra In Diagrams: 插图式的线代学习笔记2022 年 9 月 14 日
@WillBC 很不错的资料!
我粗略看了一下,它的 interactive parts 应该是注重于 example,可以直观看到结果.

LAID 的插图比较 generalized, 笔记里也比较少有 examples. 后续或许会增加
回复了 LEXUGE 创建的主题 › Linear Algebra In Diagrams: 插图式的线代学习笔记2022 年 9 月 14 日
@zhs227 感谢你的时间!

在购买成功后会有提示指导在哪里下载,以后考虑做成单独的“库”,更加直观一些。

使用 Google 登录应该可以直接免注册登录?我没办法复现这个的情况
回复了 LEXUGE 创建的主题 › dcompass v0.2.0 发布:真正可编程的 DNS 服务2022 年 6 月 24 日
@zzl22100048 那或许你目前的做法比较合适。如果需要高效的话可能直接在 Rust 中实现一个函数并在脚本中调用会更快
回复了 LEXUGE 创建的主题 › dcompass v0.2.0 发布:真正可编程的 DNS 服务2022 年 6 月 24 日
@zzl22100048 嗯,如果你需要对非 IP 前缀返回上游解析结果的话,可以这样写:


try {
resp.push_answer(create_record(qname, "IN", ttl, 3600, create_a(ip)));
} catch {
return upstreams.send(...);
}

直接把 replace 后的结果放入 create_a 尝试创建 A rdata ,如果 ip 并不是一个合法的 IPv4 地址,那么 create_a 就会出错,然后执行 catch 部分并返回上游结果。

这样做的话可以避免拆分再重建域名部分,更加简单,也可以提升性能。
回复了 LEXUGE 创建的主题 › dcompass v0.2.0 发布:真正可编程的 DNS 服务2022 年 6 月 23 日
简单实现了一个 XIP 功能,对于非法格式会返回 SERVFAIL 。可以进一步判断 qtype 来正确支持 A 和 AAAA resource record 。
```yaml
script:
route: |
let resp = query;
resp.header.qr = true;

let ip = query.first_question.qname.to_string();
ip.replace(".xip.io", "");

resp.push_answer(create_record(query.first_question.qname, "IN", 3600, create_a(ip)));

resp
```
回复了 LEXUGE 创建的主题 › dcompass v0.2.0 发布:真正可编程的 DNS 服务2022 年 6 月 23 日
也可以参考 README 中 quickstart 里的示例快速添加 EDNS Client Subnet record:

script:
route: |
let query = query;

// Optionally remove all the existing OPT pseudo-section(s)
// query.clear_opt();

query.push_opt(create_client_subnet(15, 0, "23.62.93.233"));

upstreams.send("secure", query)
回复了 LEXUGE 创建的主题 › dcompass v0.2.0 发布:真正可编程的 DNS 服务2022 年 6 月 23 日
@zzl22100048
在最新的 build 中,可以参考如下代码实现自定义 response:
```
let resp = query;
// 表明这个 DNS message 是 response
resp.qr = true;

// 在不同的 section 加入 resource record ,目前支持创建 TXT ,A ,AAAA record ,欢迎 file issue 来表明你的需求。
// query.first_question.qname 是第一个 question 的请求“域名”, 3600 是 TTL
resp.push_additional(create_record(query.first_question.qname, "IN", 3600, create_txt("vfs.global")));
resp.push_answer(create_record(query.first_question.qname, "IN", 3600, create_a("127.0.0.1")));
resp.push_answer(create_record(query.first_question.qname, "IN", 3600, create_aaaa("0000:0000:0000:0000:0000:0000:0000:0000")));
```
回复了 LEXUGE 创建的主题 › dcompass v0.2.0 发布:真正可编程的 DNS 服务2022 年 6 月 22 日
@Buges 感谢建议。此外也有现成的请求域名匹配规则集如 https://github.com/felixonmars/dnsmasq-china-list/
© 2026 V2EX · 23ms · 3.9.8.5