常用库
记录一下我用过的优秀的库。
Nginx 配置简记
Nginx
配置文件类似 C 语言的层级结构。
配置原语称为指示。指示后面的为参数。某些指示 (http、
server、location) 可以跟一个块参数。
很多原语只能在特定的块里使用。
if
原语的使用方法 if (测试条件){执行块} 但不应该放在
location 块里。
设置散列表请参照文档
匹配常用的修改符参考这篇文档
做负载均衡时请参考这篇文档
设置 HTTPS 服务器可以参考这篇文档
有关 Nginx 如何处理请求参考这篇文档
Typescript 与 Vue 的重点
记录一下使用 Vue 3 开发前端时的一些经验。
Vimscrip 和 Lua 的大坑.
作为一门几十年的老语言, Vimscript 的坑可谓罄竹难书. 但因为它好死不死就是 Vim 生态里兼容性最好的配置语言, 该捏着鼻子用就得捏着鼻子用. Lua 作为 Neovim 社区苦于 Vimscript 的语法和效率的替代品, 也是正好赶在 QuickJS 之前进入主线. 其诡异的语法, 寥若晨星的第三方库也是让人用的时候得捏住鼻子.
立直麻将牌理
整理一下打日麻的技巧和牌理
立直麻将规则
为了自己打日麻方便, 所以记录一些自己不熟悉的规则.
Rust 的包管理工具 Cargo 以及 Rust 的奇葩模块系统
介绍 Cargo 本体和 Rust 的模块系统, 包括 mod, use 还有 include.
Rust 面向对象与模块化
泛型
如果你要使用一个禀赋的方法,
那么你需要将该禀赋引入当前的作用域中.
完全限定语法
类型或禀赋::方法名
<类型 as 实现的某个禀赋>::那个禀赋的方法名
同名方法调用顺序
对于对象.方法名(参数):
编译器检查它是否可以直接调用
类型名::方法名(对象接收器, 参数), 称之为值方法调用.
如果 类型名 里直接有方法名的定义,
则调用类型名::方法名(对象接收器, 参数).
如果 类型名 实现了 禀赋名. 恰好 禀赋名
里有 方法名 的定义,
则调用 <类型名 as 禀赋名>::方法名(对象接收器, 参数),
如果第一步失败,那么编译器会尝试增加自动引用,例如会尝试以下调用:
<&类型名>::方法名(对象接收器, 参数) 和
<&mut 类型名>::方法名(参数),
称之为引用方法调用.
如果第二步失败,编译器会试着解引用 类型名 , 然后再进行尝试.
若 类型名: Deref<Target = 目标类型名>,
那么编译器会使用 目标类型名 类型从第一步开始继续尝试,
称之为解引用方法调用 ...
Rust 模式匹配
随着物联网的发展,外包计算正在快速普及。本文提出了一种基于区块链的非智能合约公平支付方案用于外包计算。优化了多项式外包计算的结果验证算法,设计了一种不依赖智能合约的部署方法,可应用在任何基于 Nakamoto
2009 年设计的区块链模型上。这种部署方法减少了智能合约带来的复杂性和攻击面,使得代码优化以及方案的更新和扩展变得更加容易。测试结果表明,本方案在保持原有的公平性不变的前提下具有更好的执行效率。