awsome-tech

Summary

罗列最近看到的不错的技术文章/新的东西 如果实际上用了会移动到具体方面

Rust

https://www.0xatticus.com/posts/understanding_rust_niche/ https://llvm.org/docs/LangRef.html https://blog.yoshuawuyts.com/placing-functions/ 就地放置(我的skip list实现里面有类似这个部分可以推迟初始化时间)

协同编辑相关 CRDTs 1.可以降低服务器带宽开销 2.更加实时的交互体验

https://github.com/TimelyDataflow/timely-dataflow

https://github.com/TimelyDataflow/differential-dataflow

对于某些要求全局正确性的强状态服务的可能是必须的,看起来是可以做一个分布式的计算,并且根据增量的数据自动更新结果,缺点是需要把很多现有算法都重新实现成图对工程要求非常高 可能需要了解下datalog才能理解这种范式

https://github.com/frankmcsherry/blog

他的产品就是Materialize.io

https://salsa-rs.github.io/salsa/about_salsa.html

另一种增量计算框架

https://github.com/j178/prek

工具链需要用到的git钩子,主要是为了学库的结构

https://github.com/astral-sh/uv

python版本管理

这个uv对python的版本依赖使用的PubGrub算法来进行的

这也是下一代cargo要替换到的算法

介绍性博客 https://medium.com/@nex3/pubgrub-2fb6470504f

https://github.com/dart-lang/pub/blob/master/doc/solver.md (详细解释)

基于 https://potassco.org/book/ ASP (Answer Set Programming)

https://rust-lang.github.io/rust-project-goals/2024h2/pubgrub-in-cargo.html

https://github.com/astral-sh/ruff

类似python black但是更快

https://docs.rs/good_lp/latest/good_lp/index.html

线性规划求解器 https://docs.rs/lol_html/latest/lol_html/

html重写,他的api风格非常有趣

https://github.com/rust-lang/rust/issues/92985

LendingIterator 需要下一代求解器才能工作,不损耗性能的情况下,能证明生命周期的话,可以直接使用裸指针绕过

而不是把结构体设计成包含RefCell/Cell的结构,最好是从行为上封装,把unsafe的地区压到最低

https://docs.rs/dynosaur/latest/dynosaur/

提供一个方案来dyn调用async 函数,并且还能保留静态调度的优势是async_trait的直接上位替代品

https://rust-for-linux.com/arc-in-the-linux-kernel

这个其实也是为啥要搞arbitrary_self_types的原因

而且需要一个SmartPointer 的drive

https://rust-for-linux.com/

rrdebug 得阅读看看感觉实现原理挺神奇的

https://arxiv.org/pdf/1705.05937

Server

https://www.codedump.info/post/20220129-weekly-3/ https://www.cnblogs.com/fingerpass/p/game-server-programming-paradigm.html non-trivial buffer,ringbuffer,bufferlist https://github.com/hyperion-mc/hyperion 他的网络buffer确实跟我的类似rkyv https://github.com/juhaku/utoipa/ 快速搞openapi

Misc

Z-order curve https://mcyoung.xyz/2023/08/01/llvm-ir/

https://www.gabrielgambetta.com/lag-compensation.html https://best33.com/325.moe https://developer.valvesoftware.com/wiki/Latency_Compensating_Methods_in_Client/Server_In-game_Protocol_Design_and_Optimization https://forums.unrealengine.com/t/how-can-i-use-navmesh-data-in-server-side/318281/1 //# Lamport用于分布式系统确定顺序(接受数据后比较本地和远程的Lamport取大值+1,如果不能比较就使用进程id,除此之外就是并行,本质只是一种划分方法) https://www.codedump.info/post/20220703-weekly-21/ 卡尔曼滤波实质就是将预测状态量的高斯分布和观测量的高斯分布做融合,生成一个新的高斯分布,其中新的高斯分布的均值和方差是两个独立的高斯分布的相关参量的加权,这个加权就是卡尔曼增益,但是预测状态量和观测量可能维度不同,需要将他们同时转换到一个向量空间中,所以观测量前面有线性变换矩阵

Connect


Reference

#fact