数据库压缩技术探索
作者:雷鹏,Terark核心技术发明人。曾就职奇虎360,负责搜索引擎核心研发;曾就职Yahoo!北研所负责搜索广告、广告交易(AdExchange)等项目。在数据库、高性能计算、分布式、系统架构上都深有造诣。...
View Article用神经网络训练一个文本分类器
理解聊天机器人的工作原理是非常重要的。聊天机器人内部一个非常重要的组件就是文本分类器。我们看一下文本分类器的神经网络(ANN)的内部工作原理。多层神经网络我们将会使用2层网络(1个隐层)和一个“词包”的方法来组织我们的训练数据。文本分类有3个特点:模式匹配、算法、神经网络。虽然使用多项朴素贝叶斯算法的方法非常有效,但是它有3个致命的缺陷:这个算法输出一个分数而不是一个概率。我们可以使用概率来忽略特定...
View Article基于 Redis 实现分布式应用限流
限流的目的是通过对并发访问/请求进行限速或者一个时间窗口内的的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务。前几天在DD的公众号,看了一篇关于使用 瓜娃 实现单应用限流的方案,参考《redis in action》 实现了一个jedis版本的,都属于业务层次限制。 实际场景中常用的限流策略:Nginx接入层限流...
View Article如何正确实现 Java 中的 HashCode
相等 和 Hash Code从一般角度来看,Equality 是不错的,但是 hash code 更则具技巧性。如果我们在 hash code上多下点功夫,我们就能了解到 hash code 就是用在细微处去提升性能的。大部分的数据结构使用equals去检查是否他们包含一个元素。例如:List<String> list = Arrays.asList("a", "b", "c");...
View Article区块链原理最清晰最直观的解释
(A minimal blockchain command-line interface.)维基百科上对区块链的描述:维护不断增长的记录(称作区块)的分布式数据库。听上去很简单,但到底是怎么回事呢?我们用一款开源命令行界面 Blockchain CLI来详细说明区块链。我也做了一个 浏览器可以访问的在线版。安装命令行界面首先请确保安装 Node.js然后在终端里运行下面命令:npm install...
View ArticleWeb GIS 离线解决方案
1、背景在离线环境下(局域网中)的GIS系统中如何使用地图?这里的地图主要指的是地图底图,有了底图切片数据,我们就可以看到地图,在上面加上自己的业务数据图层,进行相关操作。要在离线环境下看到GIS地图,就要有底图切片数据,地图的底图切片数据在一定时间内是不会变化的,可以使用一些地图下载器下载地图切片,如这个 地图下载器。在CS系统中可以基于GMap.Net来做,参考《...
View Article自建一个电话呼叫中心要多少钱?
我十分看不惯任何行业的潜规则行为。自建一个电话呼叫中心的报价是多少钱?没有人敢公开报价。我明说吧,自建一个电话呼叫中心,只需要3万元左右,而且还能更省钱。这个报价是针对小型企业的,也就是广大人民群众。至于大型企业,它们自己去定制,钱不是问题。3万元建一个电话呼叫中心,包括什么?包括硬件设备,软件。软件是硬件设备上免费赠送的,不要钱!有了这个呼叫中心,你可以有语音导航功能(也就是按0转人工客服),还有...
View ArticleGIF vs APNG vs WebP
再转一个 我在知乎的回答简介GIF 是一个非常古老的格式,1987 年诞生,最后一个版本是 1989 年。(这就是为什么 GIF 文件头的 magic number 是 GIF89a)APNG 相对新一些,是 Mozilla 在 2004 年推出的,十几年的科技进步是不容小觑的,所以 APNG相对于 GIF 的优势十分明显,后面会分析。APNG 格式是 PNG 的扩展,第一帧储存方式和普通的 PNG...
View Article一个20秒SQL慢查询优化的经历与处理方案
背景前几天在项目上线过程中,发现有一个页面无法正确获取数据,经排查原来是接口调用超时,而最后发现是因为SQL查询长达到20多秒而导致了问题的发生。这里,没有高深的理论或技术,只是备忘一下经历和解读一些思想误区。复杂SQL语句的构成这里不过多对业务功能进行描述,但为了突出问题所在,会用类比的语句来描述当时的场景。复杂的SQL语句可以表达如下:SELECT * FROM a_table AS a...
View Article从Gitlab误删除数据库想到的
昨天,Gitlab.com发生了一个大事,某同学误删了数据库,这个事看似是个低级错误,不过,因为Gitlab把整个过程的细节都全部暴露出来了,所以,可以看到很多东西,而对于类似这样的事情,我自己以前也干过,而在最近的两公司中我也见过(Amazon中见过一次,阿里中见过至少四次),正好通过这个事来说说一下自己的一些感想和观点吧。...
View ArticleLinux下正确删除海量文件的姿势
这里说的“海量”并不是指体积大,而是指数量,比如一个目录下有数百万个小文件。最近在优化服务器时发现postfix下的maildrop目录和clientmqueue目录下发现有大量的文件,进入这些目录里使用ls命令是愚蠢的做法,而直接执行 rm *,没有任何反应,文件数量也没有减少,也就是说,在海量文件目录里直接使用rm命令进行删除是无效的。那么正确的方法是什么呢?有两种方法可选: 第一种:find...
View Article一个轻量级分布式 RPC 框架 — NettyRpc
1、背景最近在搜索Netty和Zookeeper方面的文章时,看到了这篇文章《 轻量级分布式 RPC 框架》,作者用Zookeeper、Netty和Spring写了一个轻量级的分布式RPC框架。花了一些时间看了下他的代码,写的干净简单,写的RPC框架可以算是一个简易版的...
View Article自建一个电话呼叫中心要多少钱?
我十分看不惯任何行业的潜规则行为。自建一个电话呼叫中心的报价是多少钱?没有人敢公开报价。我明说吧,自建一个电话呼叫中心,只需要3万元左右,而且还能更省钱。这个报价是针对小型企业的,也就是广大人民群众。至于大型企业,它们自己去定制,钱不是问题。3万元建一个电话呼叫中心,包括什么?包括硬件设备,软件。软件是硬件设备上免费赠送的,不要钱!有了这个呼叫中心,你可以有语音导航功能(也就是按0转人工客服),还有...
View Article谈一下我们是如何开展code review的
众所周知,代码审查是软件开发过程中十分重要的环节,楼主结合自己的实际工作经验,和大家分享一下在实际工作中代码审查是如何开展的。笔者水平有限,若有错误和纰漏,还请大家指正。代码审查的阻力我想不通公司不同部门对代码审查这项工作的重视程度还是不一样的,对于代码审查的阻力总结了以下几点:国内的整体环境,国内的公司,尤其是互联网公司,讲究速度致上,软件开发的迭代周期周期短,速度快,因为竞争太大,开发的产品要求...
View Article实现前后端分离的心得
实现前后端分离的心得对目前的web来说,前后端分离已经变得越来越流行了,越来越多的企业/网站都开始往这个方向靠拢。那么,为什么要选择前后端分离呢?前后端分离对实际开发有什么好处呢?为什么选择前后端分离在以前传统的网站开发中,前端一般扮演的只是切图的工作,只是简单地将UI设计师提供的原型图实现成静态的HTML页面,而具体的页面交互逻辑,比如与后台的数据交互工作等,可能都是由后台的开发人员来实现的,或者...
View Article欢迎来到后 ASO 时代
6 月 WWDC 上所宣布的「App Store 将迎来大改版」的消息,给 ASO 界砸下了一枚重磅炸弹。虽说 iOS11 要到今年秋季才会正式推送,且正式版面世到大面积使用还需要一定时间,到底会不会迎来一个新的 ASO 时代,目前尚不可知。为了做好迎接新时代的准备,咱们先来看看苹果砸下的到底是一枚什么样的「炸弹」。搜索改动还算小「搜索」入口所带来的可观流量,是我们「做关键词」的立足点。ASOer...
View Article如何理解并正确使用 MySQL 索引
1、概述索引是存储引擎用于快速查找记录的一种数据结构,通过合理的使用数据库索引可以大大提高系统的访问性能,接下来主要介绍在MySql数据库中索引类型,以及如何创建出更加合理且高效的索引技巧。注:这里主要针对的是InnoDB存储引擎的B+Tree索引数据结构2、索引的优点1、大大减轻了服务器需要扫描的数据量,从而提高了数据的检索速度2、帮助服务器避免排序和临时表3、可以将随机I/O变为顺序I/O3、索...
View Article数据库压缩技术探索
作者:雷鹏,Terark核心技术发明人。曾就职奇虎360,负责搜索引擎核心研发;曾就职Yahoo!北研所负责搜索广告、广告交易(AdExchange)等项目。在数据库、高性能计算、分布式、系统架构上都深有造诣。...
View Article