技术笔记
工程实践、系统设计、编程语言和技术原理的长期笔记。
-
对感知机算法的一些理解
机器学习假设了对于某个问题存在一个上帝函数,给定一个输入就能得到一个确定的输出,计算机可以通过样本数据在假设的函数空间中找到一个近似上帝函数的函数,我们可以利用这个近似函数来进行预测。
-
怎样写线程安全的代码
多线程编程是软件开发中最棘手的问题之一。
-
MAB 问题的解法与应用(万字长文)
MAB 是多臂老虎机(Multi Armed Bandit)的缩写,MAB 问题就是假设有个赌徒到赌场里面摇老虎机,赌场里面有 10 个老虎机,每个老虎机的赢钱概率是不一样的,此时他不知道每个老虎机的赢钱概率,而且他只有 100 个币。
-
50 行代码实现一个 KV 数据库
最简单的 KV 数据库需要多少行代码实现?
-
从零开始写 KV 数据库:基于哈希索引
新的 KV 数据库层出不穷,我们经常听说的 KV 数据库如 RocksDb、Hbase 等都是基于日志结构的存储引擎。
-
Java 类隔离加载的正确姿势
只要你 Java 代码写的足够多,就一定出现这种情况:系统新引入了一个中间件的 jar 包,编译的时候一切正常,一运行就报错:java.lang.NoSuchMethodError,然后就哼哧哼哧的开始谷歌找解决方法。
-
Java 日志框架冲突问题排查与总结
Java 有很多的日志框架可以选择,当同一个项目中出现多种日志框架时就很容易出现日志框架冲突的问题,导致日志打印不出来。
-
多视角看区块链
像很多新技术一样,区块链开始火起来的时候评价是两级分化的,有人觉得区块链会成为下一代的互联网的基础设施,有人觉得区块链没有任何价值。
-
分布式系统:一致性协议
一致性模型本质上是进程与数据存储的约定,通过一致性模型我们可以理解和推理在分布式系统中数据复制需要考虑的问题和基本假设。
-
分布式系统:Lamport 逻辑时钟
分布式系统解决了传统单体架构的单点问题和性能容量问题,另一方面也带来了很多的问题,其中一个问题就是多节点的时间同步问题:不同机器上的物理时钟难以同步,导致无法区分在分布式系统中多个节点的事件时序。