博客迁移服务器,使用单体架构

柏舟 新冠6年 08-10 阅读次数 264

花了一个周末的时间将博客迁移都新的服务器上,我现在的时间是真的很值钱。

看博客User-Agent以及对读者的特别提醒

柏舟 新冠5年 10-17 阅读次数 437

网络安全注意事项(特别是使用最新的稳定的浏览器),以及对未成年读者的特别提醒。

自动微分的原理,基于接口的泛型实现,以及最小二乘迭代法求解优化问题

柏舟 新冠5年 03-24 阅读次数 524

仅需要定义一个简单的代数结构和使用泛型就可以求取函数的微分,使用泛型可以很容易支持不同类型的运算,同时获得微分信息。同时可以扩展到高阶导数(Jacobi, Hessian)。自动微分可以大大简化最小二乘迭代法,求解优化问题变得很容易。

以Rust和Go为例编程语言的错误处理

柏舟 新冠5年 01-23 阅读次数 502

Go和Rust这类错误处理方式需要显式处理错误。优点是错误类型都是显式定义的,缺点是会污染所有后续的函数,并且影响调用栈,很难调试。

从Python、C#、Java谈不可变类型和可变类型的赋值

柏舟 新冠4年 11-27 阅读次数 426

不可变类型(值类型)和可变类型(引用)的赋值行为有很大差异,具体表现在副作用的影响、装箱上。

编程往事:从CheatEngine修改造梦西游讲起

柏舟 新冠4年 10-30 阅读次数 680

我没有特别喜欢编程,却成了现在这个样子:高中的时候明知道996还去,上大学就自学了;上大学时我想算法这么卷傻逼才去,然后现在搞强化学习。真香!

C、C++、Rust、Go的赋值和生命周期管理

柏舟 新冠4年 07-11 阅读次数 522

编程语言的赋值的复杂性在于各种深浅拷贝、值引用传递、生命周期管理。理解赋值就理解了资源管理的复杂性。

CQRS架构:解决领域层事务性和分析性需求

柏舟 新冠4年 06-27 阅读次数 538

CQRS 将读取和写入分离,使用命令更新,查询读取。事件不可变的特点提高安全性。完整的事件日志易于分析。