标签列表

Elasticsearch

Elasticsearch 内存那点事

March 11, 2017

今天,我们不谈世界上最好的语言,来聊一聊 Elasticsearch。使用 ELK 栈也有一段时间了,踩了不少坑,今天就给大家分享一个。 先铺垫一下背景,ELK 做为日志收集服务相信大家都不陌生。我最开始选型 ELK 也并没有脱离它最擅长的场景 – 收集业务上报日志。对上报后的日志,我们需要统计加工,最后生成统...

MySQL

大数据切分 - MySQL分区表初探

April 03, 2016

3月是个多事之秋,原本计划上周完成的分享被生生拖到了现在,以上纯属吐槽(笑)。近期我的主要工作在于为系统中的大数据量表做切分,过程中考虑使用MySQL分区表特性,做了一些探索和分析,现整理如下。 什么是分区表 将逻辑上的数据表在物理层面按指定的规则拆分成多个部分存储。 分区表解决的场景 当某张表的数据到达...

数据库结果行转列实践

March 06, 2016

在使用数据库进行数据分析的过程中, 我们时常会遇到将数据做行转列的操作. 假设我们有以下数据: SELECT * FROM foo; +----+-------+------------+-------+ | id | name | date | score | +----+-------+--...

PHP 内核

PHP 内核分析:Zend 虚拟机

February 26, 2017

PHP 是一门解释型的语言。诸如 Java、Python、Ruby、Javascript 等解释型语言,我们编写的代码不会被编译成机器码运行,而是会被编译中间码运行在虚拟机(VM)上。运行 PHP 的虚拟机,称之为 Zend 虚拟机,今天我们将深入内核,探究 Zend 虚拟机运行的原理。 OPCODE 什么是...

PHP7内核

[译] PHP7 数组:HashTable

November 17, 2016

简介 几乎每个C程序中都会使用到哈希表。鉴于C语言只允许使用整数作为数组的键名,PHP 设计了哈希表,将字符串的键名通过哈希算法映射到大小有限的数组中。这样无法避免的会产生碰撞,PHP 使用了链表解决这个问题。 众多哈希表的实现方式,无一完美。每种设计都着眼于某一个侧重点,有的减少了 CPU 使用率,有的更合...

PostgreSQL

PostgreSQL 扩展开发基础教程

April 20, 2017

由于业务需要,我们实现了解析客户定义的伪代码并计算的功能。所需计算数据大多存储在 PostgreSQL 中,因而我们需要利用 PostgreSQL 函数实现一部分计算。但有时,原生的函数的行为并不完全贴合我们的需求,同时也无法通过函数的组合来达到目的。因此,我们决定扩展 PostgreSQL 的函数。 我将我们...

写作心得

写作进化论

April 07, 2017

昨晚失眠了,不是因为焦虑,而是为自己的发现而欣喜。 过去,我一直对写作秉持着好奇且敬畏之心。好奇且敬畏的是一回事,到底是什么决定了一个人的写作水平。怎奈一直无解,尝试观察高人的作品,亦或是自己磨炼技巧,却始终不得法。写作的大门似乎一直对我紧闭着。这不由让我思考,写作究竟是什么?顺着这个问题,原本交错繁杂的线...

哈希表

[译] PHP7 数组:HashTable

November 17, 2016

简介 几乎每个C程序中都会使用到哈希表。鉴于C语言只允许使用整数作为数组的键名,PHP 设计了哈希表,将字符串的键名通过哈希算法映射到大小有限的数组中。这样无法避免的会产生碰撞,PHP 使用了链表解决这个问题。 众多哈希表的实现方式,无一完美。每种设计都着眼于某一个侧重点,有的减少了 CPU 使用率,有的更合...

实用性

如何阅读计算机科学类的书

August 08, 2017

作为一个研发工程师,无论你是否喜爱阅读,相信你都一定读过不少关于计算机技术的书籍。这其中不乏《21天学会JAVA》这样的语言入门书籍,也有《算法导论》这样的专题书籍,也有《人月神话》这样关于软件管理学的实用性的书籍。也许你已经读过他们中的大部分,也许你现在还在不断地购入新的书籍来补充你的知识库。但请稍等一下,你是...

实践技巧

使用gdb调试PHP段错误

May 15, 2016

最近在灰度测试PHP7的过程中,php-fpm出现间歇性的段错误。系统的错误信息如下: php-fpm[7664]: segfault at 7f6ff4600000 ip 00007f6ff782176f sp 00007fff2e9c2fe8 error 4 in libc-2.12.so[7f6ff779...

数据库结果行转列实践

March 06, 2016

在使用数据库进行数据分析的过程中, 我们时常会遇到将数据做行转列的操作. 假设我们有以下数据: SELECT * FROM foo; +----+-------+------------+-------+ | id | name | date | score | +----+-------+--...

总结

问题分析方法论小结

May 19, 2017

一个复杂系统运行的过程中,我们总会面对各式各样的问题。有的问题的原因显而易见,而有的问题的原因却隐藏在表象之后。我们常常注意到系统里的奇怪现象,却为不能找到其根源所在,而深感困扰。今天,我们通过一个案例来探讨,当面对一个问题时,我们应该如何分析。 现象 这是一个发生在服务器上的问题。我们有多台服务器,运行 P...

感悟

组织者的困境

November 06, 2016

上周,公司组织去八大处香山的一次徒步拓展活动。大家被分成了几个小组,小组的任务是所有组员都完成15公里的徒步行程。我是其中一组的小组长。作为小组长,组织大家一起完成任务,保证没有成员掉队。我把自己定位为后勤人员,自己负责垫后,帮助落后的小伙伴,给他们打气。结果有些同学走的比较快,导致和整个队伍脱节,有的同学走...

我看拖延症

March 19, 2016

周末的午后, 我看到我的桌面凌乱不堪, 放在以往我可能就睁一只眼闭一只眼就过去了, 然而此刻我脑海里突然冒出这样的话– “很多事情, 如果我们现在不去做, 就永远不会去做; 很多事情, 如果我们现在不争取做好, 也永远不会做好” 嗯, 想到这里, 我决定闭上眼睛睡我的午觉. 去他大爷的鸡汤! 这是我与自己的...

成长的代价

不做自大的蠢货

April 26, 2015

这是一个没有硝烟的战场, 所有人的目光都盯着那个即将开口的人, 就像猎人盯着猎物一般, 时刻等待着猎物露出破绽的那一瞬间. 每一句话, 每一个观点, 都可以成为猎人们的武器, 去撕开猎物的防御, 去击溃猎物的意志. 而当你开口时, 你随时可能从猎人变成别人的猎物. 这样的场景隔三差五地发生在会议室, 一群工程师...

搬运

如何有效地贡献开源项目

March 14, 2015

为开源项目做贡献有许多好处. 当你贡献一个项目时, 你能学习到许多大型组织所实行的开发方式. 这些技能对于一个人的职业生涯有着很大的帮助, 并且能学习到很多在学校/工作中可能学习不到的知识. 本文面向那些初级或者中级的开发者, 为他们开始贡献开源项目提供帮助和指导. 我会使用 Mozilla Foundatio...

新技能GET

备份 MySQL 的数据到 Dropbox

March 22, 2015

导出 MySQL 的数据 使用命令行 (mysqldump) 导出数据 执行以下命令 $ mysqldump --opt -u [uname] -p[pass] [dbname] > [backupfile.sql] [uname] 数据用户名 [pass] 数据密码 [dbname...

方法论

如何阅读计算机科学类的书

August 08, 2017

作为一个研发工程师,无论你是否喜爱阅读,相信你都一定读过不少关于计算机技术的书籍。这其中不乏《21天学会JAVA》这样的语言入门书籍,也有《算法导论》这样的专题书籍,也有《人月神话》这样关于软件管理学的实用性的书籍。也许你已经读过他们中的大部分,也许你现在还在不断地购入新的书籍来补充你的知识库。但请稍等一下,你是...

日常解决问题

一个问题引发的 Nginx Rewrite 和 FastCGI 模块探索

July 31, 2016

问题背景 某日,线上出现了一个小问题。我们的 iOS 应用在上一次的发版中,由于测试不完整导致部分功能请求的接口 URL 出现了错误,业务功能受到了影响。鉴于 iOS 的审核机制,我们决定在服务端做兼容。 方案其实很简单,将类似如下请求转向新的地址: GET /foo => GET /foo/bar ...

时间管理

时间管理随想

February 21, 2017

上周给自己制定了一个周计划,把博客从 Linode 里迁移到 Github Page,顺便换一个 SS 服务器。这个想法早在去年就诞生了,却一直被拖延到了现在。以前一直觉得是拖延症在作祟,觉得自己有病,总想找个什么药方治一治。有时喝了点鸡汤,就觉得自己被治好了,可没过几天又旧症复发。最后,我觉得自己可能都没有救了...

杂谈

组织者的困境

November 06, 2016

上周,公司组织去八大处香山的一次徒步拓展活动。大家被分成了几个小组,小组的任务是所有组员都完成15公里的徒步行程。我是其中一组的小组长。作为小组长,组织大家一起完成任务,保证没有成员掉队。我把自己定位为后勤人员,自己负责垫后,帮助落后的小伙伴,给他们打气。结果有些同学走的比较快,导致和整个队伍脱节,有的同学走...

我看拖延症

March 19, 2016

周末的午后, 我看到我的桌面凌乱不堪, 放在以往我可能就睁一只眼闭一只眼就过去了, 然而此刻我脑海里突然冒出这样的话– “很多事情, 如果我们现在不去做, 就永远不会去做; 很多事情, 如果我们现在不争取做好, 也永远不会做好” 嗯, 想到这里, 我决定闭上眼睛睡我的午觉. 去他大爷的鸡汤! 这是我与自己的...

生活感悟

藏在爱的外衣下的自私

August 02, 2016

我的孩子已经八个月大了。有一天,我和他在床上玩耍,发现他对婴儿用的抽纸特别感兴趣,喜欢不停地把纸抽出来。看到这样的场景,我下意识地将抽纸从他的身边拿开。过了一会,我突然意识到,我刚才的那“不经意”的行为犯了一个错误。我赶紧将抽纸重新拿回他的跟前,看着他乐此不疲的一张张把纸抽出来玩。 事后,我重新思考了几个问...

生活杂谈

写作进化论

April 07, 2017

昨晚失眠了,不是因为焦虑,而是为自己的发现而欣喜。 过去,我一直对写作秉持着好奇且敬畏之心。好奇且敬畏的是一回事,到底是什么决定了一个人的写作水平。怎奈一直无解,尝试观察高人的作品,亦或是自己磨炼技巧,却始终不得法。写作的大门似乎一直对我紧闭着。这不由让我思考,写作究竟是什么?顺着这个问题,原本交错繁杂的线...

系统设计

设计一个可扩展的安全的长连接订阅/推送服务

April 02, 2017

提起设计一个基于 HTTP/WebSocket 的长连接订阅/推送服务,大家马上能想到市面的不少开源产品。像 SocketIO、Faye 等产品已经提供了相当成熟的实现。但是,这类服务出于其通用性和方便上手考虑,往往只包含推送服务的基本模型。当我们将其应用于具体业务时,会发现还是有以下问题需要解决: 如何...

问题分析

问题分析方法论小结

May 19, 2017

一个复杂系统运行的过程中,我们总会面对各式各样的问题。有的问题的原因显而易见,而有的问题的原因却隐藏在表象之后。我们常常注意到系统里的奇怪现象,却为不能找到其根源所在,而深感困扰。今天,我们通过一个案例来探讨,当面对一个问题时,我们应该如何分析。 现象 这是一个发生在服务器上的问题。我们有多台服务器,运行 P...