数据结构和算法在存储中的经典应用

Algorithms + Data Structures = Programs —— Niklaus Wirth 先搬出写了 Pascal、又拿了图灵奖的大师的名言,这里不讨论该断言的合理性,只作为本文的引子。在数据库领域,究其原理,绕...

MySQL Binlog 解析组件 open-replicator 原理介绍

open-replicator 是一款高性能的 MySQL binlog 解析组件,通过 open-replicator 可以对 binlog 进行实时的解析、过滤、广播。业界常用的数据同步中间件 databus 就是基于 open-replicator 抓取 MySQL 的 binlog。 在探索 open-replicator 原...

动手搭建一个梯子

由于众所周知的原因,大陆的互联网在一定程度上受限的。这归功于北京某高校校长主导的防火墙项目,我们时不时会看到类似下面这种地图—— 出现防火墙后...

LeetCode-39 Combination Sum

39. Combination Sum Medium Problem Given a set of candidate numbers (candidates) (without duplicates) and a target number (target), find all unique combinations in candidates where the candidate numbers sums to target. The same repeated number may be chosen from candidates unlimited number of times. Note: All numbers (including target) will be positive integers. The solution set must not contain duplicate combinations. Example 1: Input: candidates = [2,3,6,7], target = 7, A solution set is: [ [7], [2,2,3] ] Example 2:...

LeetCode-136 Single Number

136. Single Number Easy Given a non-empty array of integers, every element appears twice except for one. Find that single one. Note: Your algorithm should have a linear runtime complexity. Could you implement it without using extra memory? Example 1: Input: [2,2,1] Output: 1 Example 2: Input: [4,1,2,1,2] Output: 4 Solution Actually it’s quite simple to solve, but we should make clear that it requires O(N) complexity and no extra memory usage....

JavaScript ES6 和 Python 中的 Generator

这几天折腾的一个 RSS 聚合爬虫,前端部分涉及到 redux-saga,对 ES6 里引入的 Generator 运用很花哨,看起来会云里雾里,其实和 Python 的 generator、y...

Java 8 Stream API 和函数式编程

流式操作我们在很多地方都使用过,比如 Shell 操作时经常用到的 ps aux | grep xxx、Python 中的 mapreduce 方法。Java 8 也引入了 Stream API,并且加入 Lambda 表达式,...

扔掉鼠标,开始键盘流编程

之前曾和朋友讨论,为什么很多程序员舍得买千元价位的键盘,却很少愿意买个同级别的鼠标……最后一致认为原因在于代码是键盘敲出来的,不是鼠标点出来...

Spring AOP 那些事儿

AOP 即 Aspect-Oriented Programming,面向切面编程,是对 OOP 编程思想的补充。OOP 核心是继承、封装、多态,是实现 OOP 模块化的基础。当 OOP 达到一定规模后,对...

Thrift 学习笔记:RPC Server 和 Client

在了解 Thrift IDL 后,就能开始编写自己的 RPC 服务端和客户端了。对 Thrift 的安装过程和命令操作略过不表,主要还是关注如何利用 Thrift 实现 Java 的 RPC 服务端和客户端。 服务接...