原文链接 : https://lfkdsk.github.io/
原文作者:lfkdsk
可以参考我写得代码:First&Follow
这次我们来讲一个学习编译原理的常见项目,对一个非终结符和一个产生式集求First&Follow集。这是很简单和基础的内容,但是国内的教科书,又犯了计科类教材经常出现的毛病,爱乱给东西起名字,而且还讲不清概念,所以在学习编译原理的时候我记了一本笔记,专门用来翻译国内教材书上的概念到底是怎么回事。
闲话少说我们先来把First&Follow集说清。
1.First集求法
First的本质意义在于处理字符流的前驱子串,比如在LL构建预测分析表的时候就
继续阅读 »
HTTPS 目前正在逐步得到广泛应用,本篇文章通过不断剖析HTTPS的原理,基于对此的深刻理解不断的分析其性能瓶颈。立足在安全的基础上达到与HTTP同样的性能。
HTTPS
HTTPS 可以认为是 HTTP + TLS/SSL,所以我们只需要了解 TLS/SSL 原理即可。在进入原理之前,我们需要了解两个基础概念:数字证书、证书授权中心
继续阅读 »
在阅读《解析深度学习:语音识别实践》时,也会参考一些博客,看到好的也会整理一下分享出来。本文主要通过浅显的语言来展示语音识别的基本过程和原理。本文大部分内容转载至:语音识别的技术原理是什么?。
语音识别技术,也被称为自动语音识别AutomaTIc Speech RecogniTIon(ASR),其目标是将人类的语音中的词汇内容转换为计算机可读的输入,例如按键、二进制编码或者字符序列。与说话人识别及说话人确认不同,后者尝试识别或确认发出语音的说话人而非其中所包含的词汇内容。下面我们来详细解读语音识别技术原理。
首先,我们知道声音实际上是一种波。常见的mp3等格式都是压缩格式,必须转成非压缩的纯波形文件来处理,比如Windows P
继续阅读 »
有穷自动机
为了实现对于正规式(可理解为正则表达式)的识别,我们提出了有穷自动机理论,有穷自动机接受正规式的定义符,并不断的识别符号,移动到新的状态,如果出现了识别错误就会报错。
有穷自动机包含确定的有穷自动机(DFA),和不确定的有穷自动机(NFA)。两者的主要区别在于,在同一个状态时,是否通过同样的符号输入能达到不同的状态。如果能就是不确定的,反之就是确定的。另外:NFA还可以接受空字串已达到不同的状态。
三个主要的算法
这其中有三个主要的算法:
正规式 => NFA Thompson算法
这个算法使用了一些模版去对应正则表达式中的符号,只要记住模版,就能推出相应的NFA。
继续阅读 »
前言
最近对 Git 又有了更深入的了解,本想用自己的语言解释 Git 原理,但见珠玉在前,没自信做得更好,索性罗列自己看过的好文章。
一个问题
Git 只是一个用来管理源码的工具,一般来说,只要了解几个常用命令和遵守团队操作规范,在直到遇上一些奇怪的问题之前,足够应付日常工作了。
继续阅读 »
文字版: Erasure-Code: 工作原理, 数学解释, 实践和分析
more
继续阅读 »
原文链接:How Browsers Work: Behind the scenes of modern web browsers
原文日期:2011年8月5日
序言
这是一篇全面介绍基于 Webkit 和 Gecko 内核浏览器内部原理的入门文章,是以色列开发人员 Tali Garsiel 大量研究的成果。在过去的几年中,她查阅了所有公开发布的关于浏览器内部机制的数据(请参见参考资料),并花了很多时间来研读网络浏览器的源代码。她这样写道:
在 IE 占据 90% 市场份额的年代,我们除了把浏览器当成一个“黑盒”,什么也做不了。如今,开源浏览器拥有了过半的市场份额,因此,是时候来揭开神秘的面纱,一探网络浏览器的内幕了。呃,里面只
继续阅读 »
懒加载也称为延迟加载,即在需要的时候才加载。
1. 懒加载的实现原理
图片懒加载的思路:
提前设定好图片的宽、高(或用默认图片占位)
不设置图片的src属性,把图片的地址存储到data-src属性里
判断当前屏幕的位置,把当前屏幕内的图片的src属性设置为data-src的值
继续阅读 »
Bloom Filter概念和原理
焦萌 2007年1月27日
Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合。Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某个集合时,有可能会把不属于这个集合的元素误认为属于这个集合(false positive)。因此,Bloom Filter不适合那些“零错误”的应用场合。而在能容忍低错误率的应用场合下,Bloom Filter通过极少的错误换取了存储空间的极大节省。
继续阅读 »
mdtoc start
内容简介
分布式系统的可靠性问题: 冗余和多副本
EC的基本原理
栗子🌰1: 实现k+1的冗余策略, 大概需要小学3年级的数学知识
栗子🌰2: 实现k+m的冗余策略, 大概需要初中2年级的数学知识
增加1个校验块, 变成k+2
实现k+m 的冗余
EC编码矩阵的几何解释
k=2, 为2个数据块生成冗余校验块
k=3, 4, 5...时的数据块的冗余
通过高次曲线生成冗余数据
从曲线方程得到的系数矩阵
EC解码过程: 求解n元一次方程组
[Vandermonde] 矩阵保证方程组有解
新世界: 伽罗华域 [Galois-Field] GF(7)
EC在计算机里的实现: 基于 伽罗华域 [Galois-Fiel
继续阅读 »