13m0n4de's blog

将博客迁移到 Org-mode

当你不知道写什么时,就写你如何写作的。一定有哪一天,我也要分享“我为什么写作”了。

在这些人身上,你就看不到水往低处流、苹果掉下地,狼把兔子吃掉的宏大的过程,看到的现象,相当于水往山上流,苹果飞上天,兔子吃掉狼。我还可以说,光有熵增现象不成。举例言之,大家都顺着一个自然的方向往下溜,最后准会在个低洼的地方汇齐,挤在一起像粪缸里的蛆。但是这也不能解释我的行为。我的行为是不能解释的,假如你把熵增现象看成金科玉律的话。

当然,如果硬要我用一句话直截了当地回答这个问题,那就是:我相信我自己有文学才能,我应该做这件事。但是这句话正如一个嫌疑犯说自己没杀人一样不可信。所以信不信由你罢。

—— 王小波,《我的精神家园》

继续阅读

Versu: Agents and Utility AI

这是对交互式故事角色 AI 引擎 Versu 工作原理的简要介绍,主要是代理/角色(Agents)基于效用的决策系统(Utility-Based Decision-Making)部分。

内容从小组讨论会的会议材料修改而来,材料被 LLM 润色过(修改了分段和措辞,为了“更快更方便阅读”),与以往的博客语气会不太一样。

Versu 没有公开过具体实现,我所有的分析均来自 Richard Evans 和 Emily Short 的论文以及 Emily Short 博客上的零散文章,可能有不少错误。

继续阅读

Hello, Saya Lang

extern fn puts(s: *u8) -> i64;

pub fn main() -> i64 {
    puts(c"Hello, Saya!");
    0
}

我真正意义上的第一个编译型玩具语言,编译到 QBE IL

语法和关键字与 Rust 差不太多,基于表达式。编译器内部结构参考了 Hare 语言的编译器 harec,一些数据结构设计参考了 rustc

Saya 是圣诞节项目,想当做某种礼物送给自己,后来拖延成了跨年项目,再最后,要变成新年项目了……

总之,向您送出诚挚的圣诞祝福。

仓库:github.com/13m0n4de/saya

继续阅读

Functional Pipeline Programming in Python

用 Python 写了个小工具,根据手机号段信息生成 hashcat 掩码。

仓库:github.com/13m0n4de/purrify

平平无奇?看看这个:

87: _ = sys.stdin > (
88:     pipe
89:     | foreach(parse_csv_line)
90:     | where(X.__len__() > min_length)
91:     | where(X[type_idx] == "MOBILE")
92:     | where(in_cities, geo_indices=geo_indices, cities=cities)
93:     | foreach(lambda x: (x[prefix_idx], int(x[length_idx])))
94:     | foreach(as_args(purrify))
95:     | foreach_do(print)
96: )
继续阅读

Markdown to PDF with Pandoc and Typst

仓库:github.com/13m0n4de/pandoc-typst-catppuccin

自从团队使用 Obsidian 协作组织文档库以来,需要将 Markdown 转换为 PDF 的情况越来越多。Obsidian 的默认导出不好用,自定义功能太少,被逼无奈使用 Better Export PDF 了一段时间,边距、大纲书签以及页眉页脚等自定义功能不错,但它总是没法跟随我的暗色主题,自定义 CSS 又太过麻烦。

于是,我们写了个新插件。可惜,我们还是继续凑合用着。

直到我们需要批量导出多个 Markdown。

Obsidian 没有给我编写自动化脚本的发挥空间(也许宏可以,但……太恶心了,而且没办法集成到 CI 里)。

能花 6 小时写自动化脚本(然后失败),就绝不花 6 分钟动手完成它。

继续阅读

Refactor My Quiz App

花了几天把 NekoQuiz 完全重构,从 Axum + Yew 到 Axum + Leptos,从 CSR 到 SSR with hydration。

其实在这次重构之前,就已经很少有使用它的机会了,这也许是最后一次大更新。(尽管我不愿意这么想,这样的想法会成为项目被“遗弃”的第一步)

不过至少,现在是个适合总结的时候。

继续阅读

Including C File Over HTTPS

实现了一个有意思的效果,让 C 语言可以从互联网上 #include 头文件。

#define STB_SPRINTF_IMPLEMENTATION
#include <https://raw.githubusercontent.com/nothings/stb/master/stb_sprintf.h> // <- look at this
#include <stdio.h>

int main() {
    char buffer[20];

    // Using functions defined by stb_sprintf.h
    stbsp_sprintf(buffer, "Hello %s", "NAVI");
    puts(buffer);

    return 0;
}

你知道的,4202 年,Everything Over HTTPS(笑)。

继续阅读

Copyright © 2024 13m0n4de · CC BY-NC 4.0