0%

使用 7.1.2 才过了不到 3 个月,我又将博客主题升级了,不过这次是因为 sidebar 出现了统计隐藏的样式 bug,没想到意外赶上了几个特别明显的优化。这次是真的值得所有 NexT 老用户去尝试了。

Read more »

《 The Pragmatic Programmer: From Journeyman to Master 》这本书已加入愿望单许久,最近终于在通勤路上读完了。对于处于或将处于熟练工阶段的程序员,毫无疑问这是本值得用心阅读的书,因此我也写一下短评和推荐理由。

Read more »

想必大家已经知道,EasyConnect 会在后台强行添加名为 EasyMonitor 的开机自启守护进程,网上已经有关闭教程了

1
sudo launchctl unload /Library/LaunchDaemons/com.sangfor.EasyMonitor.plist

可实际上 EasyConnect 还启动了另一个“杀不掉”的后台进程 ECAgent,活动频率很低,似乎不会造成内存泄漏,略显不起眼。但这无法作为它肆意常驻的理由。

Read more »

Smooth Weighted Round-Robin (SWRR) 是 nginx 默认的加权负载均衡算法,它的重要特点是平滑,避免低权重的节点长时间处于空闲状态,因此被称为平滑加权轮询。

该算法来自 nginx 的一次 commit:Upstream: smooth weighted round-robin balancing

在阅读之前,你应该已经了解过 nginx 的几种负载均衡算法,并阅读了 SWRR 的实现。

介绍此算法的文章有很多,但还没发现哪里用数学角度给出证明过程的,虽然并不复杂,这里把自己粗劣的思路分享一下。为了便于理解,只考虑算法核心的 current_weight,忽略受异常波动影响的 effective_weight。

Read more »

前言

先把干货放前面,辅助排查的 npm 模块有:wtfnode,why-is-node-running,active-handles 等,使用方法差不多如下,可以查看各自的文档。

1
2
3
4
5
6
const wtf = require('wtfnode');

// your codes

// track down
wtf.dump();

也可以更深入地排查,因为上述模块的核心都是 Node.js 文档未标注的两个接口:

1
2
process._getActiveHandles();
process._getActiveRequests();

好了,本篇到这里结束了,剩下的内容,劝你还是跳过吧:流水帐警告⚠️️ 翻车警告⚠️️

Read more »

从 2019 年 7 月份开始,Travis CI 默认开启 npm 缓存。这意味着 node_module 和 package-lock.json 会在初次构建时缓存,倘若后续更新 npm 依赖而不刷新该缓存,可能带来构建失败的问题。

Read more »

初衷是解决中文输入法在 vim/evil 键位下的 insert 模式和 normal 模式的切换问题,实现 normal 模式自动切英文、insert 模式回复之前的输入状态。

当然各编辑器都有各自知名的解决方案,本次主要吐槽 Mac 平台 fcitx-remote-for-osx 和 squirrel 输入法间的“摩擦”。

Read more »

前言

本篇是为 elastic-apm-node 编写拓展系列的第二篇,主要介绍 egg 框架的定制指南。

单独拿 egg 出来讲,是因为市面主流的 APM 工具几乎都没有为 egg 提供支持。一方面 egg 底层基于 koa ,并且 egg-router 也是 koa-router 的二次封装,两者相似以致插件可以平稳切换,agent 的补丁方式也基本是一致的。另一方面,agent 代码必须早于 egg 和 egg-router 的加载才能生效,egg-bin、egg-script 等生态决定了编写框架之上的插件很难做到零代码入侵。

APM agent 作为 npm package 不适合做这样的事,更好的方法是我们利用 egg 工具链的接口,在引入 agent 的代码层处理好 egg 的配置。

Read more »

Introduction

elastic-apm-node 提供了非常友好的定制化支持,本篇将示范如何为 express 框架添加路由 patch,以满足信息上报的优化。

Read more »

前言

苦于 hexo g 的效率问题,与其重新折腾框架,决定在彻底忍受不了之前再实行一点儿补救措施——依赖升级。

Hexo 主题 NexT 5.1.x 已经很久不维护,传说新版本 7.1.x 的速度有显著提升,它是本次的重点升级对象。这里只记录 Next 主题的变更,因为 Hexo 主体和其他依赖的升级都十分平滑,没有明显的 breaking changes。

Read more »