密码学系列之:NIST和SHA算法
简介SHA算法大家应该都很熟悉了,它是一个用来计算hash的算法,目前的SHA算法有SHA1,SHA2和SHA3种。这三种算法都是由美国NIST制定的。NIST的全称是美国国家标准与技术研究所,主要来制定各种标准。本文将会讲解下NIST和SHA各种算法的关系。SHA1在密码学中,SHA-1(SecureHashAlgorithm1)是一种加密哈希函数,它接受一个输入,并产生一个160位(20字节)
腾讯 Code Review 规范出炉!
作者:cheaterlin前言作为公司代码委员会golang分会的理事,我review了很多代码,看了很多别人的review评论。发现不少同学codereview与写出好代码的水平
理解 LSM 树:写入密集型数据库的秘诀
日志结构的合并树(log-structured merge-tree LSM 树)通常是在处理大量写任务时使用的数据结构。通过顺序写来优化写入路径。 LSM 树是许多数据库(包括 BigTable, Cassandra, Scylla,和 RocksDB)背后的核心数据结构。 …
用流程图来理解 - ZooKeeper 中的 ZAB 协议
ZAB 协议全称 ZooKeeper Atomic Broadcast,是 zookeeper 维持数据一致性的核心算法。基于该协议,zk 实现了主备模式的系统架构来保持集群中各副本的一致性。对于改变服务状态的写请求,通过一致性协议处理同步。对于读请求可以在本地副本上进行返回。…
[译] 5 种主流的软件架构模式
在全球软件架构峰会上,我们讨论了很多软件架构模式,我决定写一篇关于它的文章,重点介绍领先的软件架构师的见解。 架构模式是经过验证的良好架构设计,以便我们继续重用。软件架构师一直在获取和重用被证明是成功的架构模式。 更具体地说,架构模式是在实践中反复发现的设计决策,具有良好的可重…
[译] 如何写好 Go 代码
但首先,我想给阅读这篇文章的读者解释一点。好代码是主观的。你可能对于好代码这一点,有完全不同的想法,而我们可能只对其中一部分意见一致。另一方面,我们可能都没有错,只是我们从两个角度出发,从而选择了不同的方式解决工程问题,并不意味着意见不一致的不是好代码。 包很重要,你可能会反对…
探索 Go 中接口的性能
在 Go 中使用接口(interface{})好像有性能问题,但是真的如此吗,或者我们有哪些可以提升的空间,来看一下 golang 的一个 issue。例子中跑了三个 benchmark,一个是接口调用,一个是直接调用,后面我又加了一个接口断言后调用。 常多。但是,当我们将类型…
Go 并发模式
Actor 模型是一个通用的并发编程模型,可以应用在几乎任何一种编程语言中,典型的是 Erlang。多个 actor(进程) 可以同时运行、不共享状态、通过向与进程绑定的消息队列(也称为信箱)异步发送消息来进行通信。 actor-1 与 actor-2 进程通信依赖一个消息队列…
基础:Java中的基本数据类型讲解(数值型、字符型、布尔型)
来源:程序猿的内心独白数据类型整数型注意事项:占用的字节数越大,取值范围也就越大,存储的数据也就越大现实开发中,我们应选择合适的数据类型,切记不要超过数据类型的取值范围补充:开发中一般使用int类型来代替short和byte类型代码展示:publicclassTest{//编写main方法,写法固定
switch多值匹配骚操作,带你涨姿势
我们都知道switch用来走流程分支,大多情况下用来匹配单个值,如下面的例子所示:大概的意思就是,周一到周五输出:1,周六到周日输出:0,默认输出-1。这样写,很多重复的逻辑,冗余了。也许这个例子不是很合适,用if/else更恰当,但这只是个例子,实际开发中肯定会有某几个case匹配同一段逻辑的情况
最受程序员欢迎的20本书
程序员书库(ID:CodingBook)猿哥整编书单来自:https://dev.to/awwsmm/20-most-recommended-books-for-software-developers-5578
数据传输过程详解
一、FTP客户端发送数据到FTP服务器端,详述其工作过程。两台机器的连接情况如下图所示:详细解答如下1.1、假设初始设置如下所示:客户端FTP端口号为:32768服务器端FTP端口号为:211.2、不同网络段上的两台计算机通过TCP/IP协议通讯的过程如下所示:协议是水平的,服务是垂直的。物理层,指
Windows、WSL 与 Linux 的性能对比
Phoronix网站发布了关于Windows、WSL和Linux的性能基准测试结果。测试的内容包括网络性能、I/O性能、编程语言运行性能和图形处理性能等。所有操作系统和WSL实例均在其现成的配置中进行了测试,所有这些基准测试都是使用PhoronixTestSuite进行的。测试的系统版本为:Ubun
计算机是怎样跑起来的 -- 数据结构的七要诀
程序中的变量是指什么?变量是数据的容器。变量中所存储的数据是可以改变的。变量的实质是按照变量所存储数据的大小被分配到的一块内存空间。要点1:了解内存和变量的关系计算机所处理的数据都存储在了被称为内存的IC中。在一般的个人计算机中,内存内部分割成了若干个数据存储单元,每个单元可以存储8比特的数据。因为
2020年7大技术趋势
我们正处于第四次工业革命之中,技术的发展比以往任何时候都快。每个人都应该在2020年做好准备的七个最迫近的趋势2020年7大技术趋势AI即服务人工智能(AI)是当今时代最具变革性的技术发展之一。大多数公司已开始探索如何使用AI来改善客户体验并简化业务运营。这将在2020年继续,并且尽管人们将越来越习
Java的学习内容有哪些?
Java的学习内容有哪些?概括来讲,可以将JAVA学习分为5个部分,第一是JavaSE(Java基础),第二是数据库,第三个是前端,第四个是JavaEE(企业级开发),第五的话就是框架了。下面分阶段详细说明。一、学习Java基础,需要认真对待,要学的扎实,更要拓展。在面试的时候,一些大公司注重的是基
学习Java需要英语基础吗
Java的各种代码都是由英语组成的,这使得很多不懂英语的人担心自己学不会,从而放弃学习Java。今天小编就给大家分析下学习Java需要英语基础吗?
MySQL 性能优化神器 Explain 使用分析
Java技术分享简介MySQL提供了一个EXPLAIN命令,它可以对SELECT语句进行分析,并输出SELECT执行的详细信息,以供开发人员针对性优化.EXPLAIN命令用法十分简单,在SELECT语句前加上Explain就可以了,例如:EXPLAINSELECT*fromuser_infoWHER
Python DataComPy 库实现Pandas DataFrame 差异比对
DataComPy是一个比较两个Pandas.DataFrame的第三方库。它最初是用来替代SAS的PandasDataFrames的比较程序的,它的功能比Pandas.DataFrame.equals(DataFrame)更多,如支持打印详细的统计数据,并允许我们通过参数设置匹配的精确程度。同时将
了解一下:机器学习性能优化的6个指标
机器学习性能优化的6个指标根据要进行的机器学习的类型,有许多度量标准可以衡量机器学习模型的性能。在本文中,我们研究了分类和回归模型的性能指标,并讨论了优化效果更好的指标。有时,要看的指标会根据最初要解决的问题而有所不同。分类问题的优化分类表示例分类图示例:来源1.真实肯定(召回)真实肯定率(也称为召