IT技术博客大学习 共学习 共进步

技术文章精选

低噪声、高可扫读;标题、摘要、来源、标签一目了然。

最新文章

采集自各技术站点的近期文章。

IT MySQL/ 2019-04-08 00:54:00 / 浏览 1,540

MGR监控及优化点

​mysql group replication官方在监控及优化方面文档较少,为了在教学中方便使用,总结一下。

IT 网络系统/ 2019-03-28 22:28:54 / 浏览 2,600

重要的事情说三遍:ARQ协议

这是一个能应用在一个不可描述的场景中的协议。 ARQ 是一种在数据传输过程中,错误控制的策略,保证了数据的完整性和顺序性。核心目的是在不可靠的网络上实现可靠的数据传输。比如,在短波无线电传输,GSM 网络,电报等领域都有很广泛的应用。在当今因为各种原因导致的复杂互联网环境上,某些点对点传输的服务,也变得不那么可靠,可以考虑引入 ARQ 策略。 在服务器端开发方面,ARQ 的思想,也可以给我们在服务实现时候,很多的启发。此外,这种策略的学习和理解,也是理解更复杂的网络协议的基础。

IT Android开发/ 2019-03-28 22:20:17 / 浏览 1,680

react-native-navigation 简单分析和跨页跳转

虽然 react-native-navigation 是 Facebook React Native 官方文档推荐的导航库之一 ,但我也不得不说使用它做 APP 导航主框架的体验简直糟糕透了。当然,这本身可能就是 React Native 自身的问题。

IT 安全/ 2019-03-27 21:16:21 / 浏览 1,960

手机 APP 应该选用哪个加密算法 - 兼吐槽 TEA

很多 APP 产品都有通信加密的需求,一部分出于市场的要求,比如苹果对于“ATS”的强制性规定,一部分出于自身安全的考虑,比如对账号和密码的保护。这些需求大部分都可以用简单的 HTTP -> HTTPS 升级来搞定,而且几乎不用付出什么成本(除加解密的计算开支外),例如使用我之前文章介绍到的 Let's Encrypt 免费证书。 但还有一类特殊的需求,HTTPS 解决不了,也就是防协议分析的需求。很多 APP 开发者应该知道,只要在手机里安装一个代理 CA 证书,就可以实现中间人攻击,通过代理软件抓到 HTTPS 包的明文内容。虽然这样的攻击很难在公开网络上进行,但对自己的手机进行抓包分析,作为 APP 和服务端通信的调试手段是被广泛使用的。

IT 用户研究/ 2019-03-26 22:21:59 / 浏览 2,240

ABTest 平台设计 - 如何进行流量分桶

在 2018 年,我相信 ABTest 这个名词已经不用过多地解释了。但我发现很多公司,尤其是初创企业,虽然能理解这件事是什么,却不知道这件事该怎么做,以及该怎么做好。 这一系列文章,就是想讲清楚在设计具体的 A/B 测试平台这种基础架构时,要考虑哪些问题,以及有哪些推荐的做法。

IT 用户研究/ 2019-03-26 22:21:54 / 浏览 2,840

ABTest 平台设计 - 如何进行流量分桶

在 2018 年,我相信 ABTest 这个名词已经不用过多地解释了。但我发现很多公司,尤其是初创企业,虽然能理解这件事是什么,却不知道这件事该怎么做,以及该怎么做好。 这一系列文章,就是想讲清楚在设计具体的 A/B 测试平台这种基础架构时,要考虑哪些问题,以及有哪些推荐的做法。

IT JavaScript/ 2019-03-26 22:18:33 / 浏览 1,400

Atag - Web Components 最佳实践

引子上一次社区中谈论起 Web Components 已经可以追溯到三四年前了,彼时 Web Components 仍处于不稳定的草案阶段,Polymer 的出世使大家似乎看到了新一代的前端技术,但直到今天,在今年五月 Google I/O 发布 Polymer 3 之后, Web Components 的规模化应用才看似成为了可能。 过去一段时间,我一直在使用 Web Components 构建淘宝小程序的 基础组件 Atag。MDN 上对 Web Components 这个名词的解释是:Web Components是一套不同的技术,允许您创建可重用的定制元素(它们的功能封装在您的代码之外)并且在您的web应用中使用它们。 我们从中提取几个关键字:可重用 定制元素 封装 这些特性刚好能满足可复用组件的需求,更重要的是,这是由 W3C 标准提供的。

IT 其他/ 2019-03-26 09:52:05 / 浏览 2,100

折腾 Python logging 的一些记录

Python 自己有成熟的日志模块 logging,使用中遇到一些原生组件无法满足的功能,或有一些使用方式上的坑,记录一下。

IT JavaScript/ 2019-03-26 09:50:55 / 浏览 2,020

管理 Node.js 进程从未如此优雅

说到 Node.js 的进程模型,脑子里第一个闪现的可能是 Cluster 模块,亦或是 Master / Worker 进程模型,在长期的使用过程中,我们逐渐发现,这样在应用的开发早晚会有局限性,除了不够优雅之外,每次增减进程或者自定义进程都会产生不可预知的问题。 在一些特定的场景下,我们甚至在 Master 下面加入了一个 Agent 进程用来运行一些中间件 SDK 。在这些修修补补的过程中,传统的进程间通信,数据交换都变的困难,甚至 Worker 到 Agent 之间通信都无法很优雅的进行。 除了一些内存共享的通信场景, 也出现了 Worker 进程跑一些定时任务占用时间过长,导致 Web 接口超时等问题(或者系统容量降低)。更有甚者,把定时任务放到 Agent 中去执行,直接拖挂了基础的中间件服务,导致应用全盘崩溃。

IT 奋斗/ 2019-03-26 09:48:04 / 浏览 2,200

一位资深Java的阿里系公司实战面试经验,套路还是面试官的多

面试官在一开始会让你进行自我介绍,主要是想让你介绍一下自己做过的一些项目,看看你对这些项目的了解程度。 因为很多人简历上写的项目并非都是从头到尾都参与的,有些只是参与并实现了其中的一些模块而已,或是接手维护别人的项目,所以在你简历上所写的和面试过程中所说的项目经验,你自己必须能够了解来龙去脉。之后,面试官也会根据你的项目描述,对项目中的实现原理,或为什么要这样实现进行提问,如果你木讷住,不知如何作答,只会大大降低面试分。

IT 算法/ 2019-03-25 23:35:42 / 浏览 2,020

阿里面试题:为什么Map桶中个数超过8才转为红黑树

​这是笔者一个好友面试阿里时,被问及的一个问题,应该不少人看到这个问题都会一面懵逼。因为,大部分的文章都是分析链表是怎么转换成红黑树的,但是并没有说明为什么当链表长度为8的时候才做转换动作。笔者第一反应也是一样,只能初略的猜测是因为时间和空间的权衡。

IT 安全/ 2019-03-25 23:34:37 / 浏览 2,400

从php源码分析mkdir()函数

本文通过php中mkdir()函数在不同环境下表现结果不一致的现象,分析了php内核对mkdir()函数的实现,引申出php中线程安全与非线程安全两个重要的机制。

IT Linux/ 2019-03-25 23:30:48 / 浏览 2,320

在 Linux 中运行特定命令而无需 sudo 密码

我有一台部署在 AWS 上的 Ubuntu 系统,在它的里面有一个脚本,这个脚本的原有目的是以一定间隔(准确来说是每隔 1 分钟)去检查某个特定服务是否正在运行,如果这个服务因为某些原因停止了,就自动重启这个服务。但问题是我需要 sudo 权限来开启这个服务。正如你所知道的那样,当我们以 sudo 用户运行命令时,我们应该提供密码,但我并不想这么做,实际上我想做的是以 sudo 用户的身份运行这个服务但无需提供密码。假如你曾经经历过这样的情形,那么我知道一个简单的方法来做到这点。今天,在这个简短的指南中,我将教你如何在类 Unix 的操作系统中运行特定命令而无需 sudo 密码。

IT MySQL/ 2019-03-25 23:29:04 / 浏览 1,820

删库跑路救命策略

首先看下mysql误删数据排名最前的几种是: 1.误删文件 2.误删库、表 3.错误全表删除 / 更新 4.升级操作失误 都来看看你命中过几个,hoho。

IT 算法/ 2019-03-25 23:27:39 / 浏览 3,540

机器学习算法之LightGBM

这篇文章我们继续学习一下GBDT模型的另一个进化版本:LightGBM。LigthGBM是boosting集合模型中的新进成员,由微软提供,它和XGBoost一样是对GBDT的高效实现,原理上它和GBDT及XGBoost类似,都采用损失函数的负梯度作为当前决策树的残差近似值,去拟合新的决策树。

IT 互联网/ 2019-03-25 23:24:30 / 浏览 1,900

区块链将会如何影响开源

在中本聪十年前创立比特币伊始,就引来来众多的追随者,并慢慢演变为去中心化的一场运动。甚至于,对于某一些人来说,区块链技术就像互联网那样深刻影响着人类社会的技术,当然,也有很大一部分人认为,区块链不过是另外一场庞氏骗局罢了,就在这众说纷纭之中,区块链也在进化并不断的尝试寻找自己的位置。无论怎样,有一件事是确定的,那就是区块链是一项颠覆性的技术,将从根本上改变一些行业。我深信开源就是其中之一。

IT 算法/ 2019-03-25 23:07:36 / 浏览 1,800

你是如何了解或者进入NLP这个领域的?

前两天在AINLP公众号上发起了一个话题留言活动:你是如何了解或者进入NLP这个领域的?没想到,活动发布后,大家参与的热情极高,收到了200多条留言,但是限于微信公众号留言只能精选100条放出,所以有些遗憾,很多后来的同学的留言虽然写得很好,但是没有办法放出来了。今天是周末,我又认真的从前到后读了一遍,感慨每个人都有自己的NLP故事,这里做一次汇总,尽量把留言都放出来,就不一一回复了,感谢大家的支持与参与。

IT iOS开发/ 2019-02-21 21:53:48 / 浏览 2,120

Swift ABI 稳定对我们到底意味着什么

Swift 社区最近最重大的新闻应该就是 ABI 稳定了。这个话题虽然已经讨论了有一阵子了,但随着 Xcode 10.2 beta 的迭代和 Swift 5 的 release 被提上日程,最终 Swift ABI 稳定能做到什么程度,我们开发者能做些什么,需要做些什么,就变成了一个重要的话题。Apple 在这个月接连发布了 ABI Stability and More 和 Evolving Swift On Apple Platforms After ABI Stability 两篇文章来阐述 Swift 5 发布以后 ABI 相关的内容所带来的改变。虽然原文不是很长,但是有些地方上下文没有说太清楚,可能不太容易理解。本文希望对这个话题以问答的形式进行一些总结,让大家能更明白将要发生的事情。

IT JavaScript/ 2019-02-13 17:16:23 / 浏览 3,340

Rax 系列教程(长列表)

Rax 提供的长列表标签有很多,在什么场景下使用什么列表组件,怎样选择列表组件性能会更好,这些问题可能会给刚接触 Rax 的同学带来困扰。本文结合 Rax 0.5 发布版本对列表能力进行一次详细的梳理。 如何让页面滚动在开始正题之前先说说为什么要有长列表的概念,以及如何让页面可以滚动。 传统的 Web 页面天生在浏览器里就是可以滚动的,我们额外引入一个滚动容器的概念好像比较多余。但当我们做跨容器开发时,这一层概念就变的有意义。native 的页面天生不可滚动,需要借助滚动容器的滚动能力,比如 iOS 中的 UITableView、Android 中的 RecyclerView,通过组件的方式让页面的部分内容可以滚动。