LEXUGE |
| 分享创造 • LEXUGE cascade - 自动从代办事项生成日程计划 2025 年 9 月 13 日 |
| 分享创造 • 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 (书本、文章、笔记等)可以推荐吗?感激不尽。
网站是纯 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. 后续或许会增加
我粗略看了一下,它的 interactive parts 应该是注重于 example,可以直观看到结果.
LAID 的插图比较 generalized, 笔记里也比较少有 examples. 后续或许会增加
| 回复了 LEXUGE 创建的主题 › Linear Algebra In Diagrams: 插图式的线代学习笔记2022 年 9 月 14 日 |
| 回复了 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 部分并返回上游结果。
这样做的话可以避免拆分再重建域名部分,更加简单,也可以提升性能。
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
```
```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)
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")));
```
在最新的 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/