本博客最早一篇文章创建于 2008 年 7 月,当时我从自己开发的 ASP 博客系统迁到 WordPress,之前的文章未迁移。2013 年 3 月,又从 WordPress 迁到自己开发的 Python 博客系统(详情),文章迁移了一部分。2014 年初再次改用 NodeJS 重新开发了博客系统(详情),数据完全保留,使用至今。
我有使用 Kindle 阅读的习惯,从 Paperwhite 到 Voyage 到 Oasis,我都第一时间入手。几年下来,我在亚马逊和图灵社区购买并读过的 Kindle 版书籍加起来也有几十本了。如果你也喜欢用 Kindle 阅读,请下载本站合辑 Kindle 版。
2024 年
- 本博客最近的一些变化 (2024-06-30)
- 2024 上半年我买了啥 (2024-06-11)
- 聊聊墨水屏阅读器 (2024-06-04)
- 我失业了 (2024-04-10)
2023 年
- 记一次图片访问异常排查过程 (2023-04-28)
2022 年
- 聊聊一些近况 (2022-03-19)
2017 年
- 如何为 ThinkJS 3 网站优化 TTFB 时间 (2017-11-28)
- 本博客开始支持 TLS 1.3 (2017-08-06)
2016 年
- HTTPS 常见部署问题及解决方案 (2016-12-12)
- 开始使用 VeryNginx (2016-12-10)
- iOS 10 Safari 视频播放新政策 (2016-10-07)
- 开始使用 ECC 证书 (2016-08-27)
- HTTP Alternative Services 介绍 (2016-08-21)
- 谈谈 Nginx 的 HTTP/2 POST Bug (2016-08-20)
- 开始使用 Docker (2016-08-14)
- 移动 WEB 通用优化策略介绍(二) (2016-08-14)
- 博客统计报告(2016 上半年) (2016-05-27)
- 为什么我们应该尽快支持 ALPN? (2016-05-18)
- 为什么我们应该尽快升级到 HTTPS? (2016-05-16)
- 关于启用 HTTPS 的一些经验分享(三) (2016-05-05)
- 如何压缩 HTTP 请求正文 (2016-04-18)
- HTTP 协议中的 Content-Encoding (2016-04-17)
- Chrome 中 scrollingElement 的变化 (2016-04-16)
- 移动 WEB 通用优化策略介绍(一) (2016-04-16)
- 谈谈 HTTP/2 的协议协商机制 (2016-04-14)
- 三种解密 HTTPS 流量的方法介绍 (2016-03-28)
- 本博客 Nginx 配置之完整篇 (2016-03-21)
- 从无法开启 OCSP Stapling 说起 (2016-03-13)
- 利用图片传输数据的另类思路 (2016-03-10)
- 使用 nghttp2 调试 HTTP/2 流量 (2016-03-07)
- HTTP Public Key Pinning 介绍 (2016-03-05)
- Certificate Transparency 那些事 (2016-02-03)
- 从启用 HTTP/2 导致网站无法访问说起 (2016-01-17)
- 使用 Elasticsearch 实现博客站内搜索 (2016-01-05)
2015 年
- Let's Encrypt,免费好用的 HTTPS 证书 (2015-12-25)
- 关于启用 HTTPS 的一些经验分享(二) (2015-12-22)
- 从 Nginx 默认不压缩 HTTP/1.0 说起 (2015-12-15)
- 关于启用 HTTPS 的一些经验分享(一) (2015-12-04)
- 域名小知识:Public Suffix List (2015-11-28)
- 基于 HTTP/2 的 WEB 内网穿透实现 (2015-11-23)
- HTTP/2:新的机遇与挑战 (2015-11-22)
- HTTP 代理原理及实现(二) (2015-11-20)
- HTTP 代理原理及实现(一) (2015-11-20)
- Golomb-coded sets 原理介绍 (2015-11-16)
- TLS 握手优化详解 (2015-11-08)
- ThinkJS 2.0,带你超越梦想一起飞 (2015-10-30)
- HTTP/2 头部压缩技术介绍 (2015-10-25)
- 使用 Wireshark 调试 HTTP/2 流量 (2015-10-24)
- H2O 中的 Cache-Aware Server Push 简介 (2015-10-21)
- 使用 BoringSSL 优化 HTTPS 加密算法选择 (2015-10-15)
- Disqus,我又回来了! (2015-10-14)
- AMP,来自 Google 的移动页面优化方案 (2015-10-10)
- window.opener.location 安全风险讨论 (2015-10-09)
- Content Security Policy Level 2 介绍 (2015-10-05)
- 让多说评论框完美支持 HTTPS (2015-09-27)
- 使用 SRI 增强 localStorage 代码安全 (2015-09-26)
- Subresource Integrity 介绍 (2015-09-23)
- 像素化你的代码 (2015-09-19)
- 本博客零散优化点汇总 (2015-09-12)
- 诡异问题排查之「DataURI 引发的血案」 (2015-09-12)
- HTTP Client Hints 介绍 (2015-09-10)
- 关于本站备案那点事 (2015-09-03)
- HTTP/2 资料汇总 (2015-08-31)
- 开始使用 Vagrant (2015-08-23)
- Bugtags, 让移动应用测试变得更轻松 (2015-08-17)
- Nginx 开始支持 HTTP/2 了 (2015-08-16)
- HTTP/2 中的 Server Push 讨论 (2015-06-16)
- ThinkJS 中的 Behavior 介绍 (2015-06-11)
- 开始使用 HTTP/2 (2015-06-07)
- 浏览器中常见网络协议介绍 (2015-06-03)
- HTTP/2 与 WEB 性能优化(三) (2015-06-01)
- 使用两步验证提高账号安全性 (2015-05-31)
- 本博客 Nginx 配置之性能篇 (2015-05-27)
- 本博客 Nginx 配置之安全篇 (2015-05-24)
- HTTP/2 与 WEB 性能优化(二) (2015-05-22)
- HTTP/2 与 WEB 性能优化(一) (2015-05-19)
- 改进 ThinkJS 的异步编程方式 (2015-05-15)
- Referrer Policy 介绍「续」 (2015-05-11)
- 9.9 美元一年的 VPS 及配置指南 (2015-05-11)
- Referrer 还是 Referer? (2015-05-09)
- Referrer Policy 介绍 (2015-05-06)
- HTTP 协议中的 Transfer-Encoding (2015-05-04)
- HTTP 请求头中的 X-Forwarded-For (2015-05-02)
- HTML5 视频直播(三) (2015-05-01)
- HTML5 视频直播(二) (2015-04-25)
- HTML5 视频直播(一) (2015-04-24)
- 针对不同主机使用不同 SSH Key (2015-04-19)
- 搭建 ngrok 服务实现内网穿透 (2015-04-19)
2014 年
- 1.5kb 代码让图片抖起来 (2014-08-11)
- 移动 Web 与 JavaScript 定时器 (2014-03-27)
- Chrome 和 Web Fonts 二三事 (2014-03-24)
- SPDY 3.1 中的请求 / 响应头 (2014-03-15)
- Chrome 32 开发者工具的几个变化 (2014-01-19)
- HTTP 协议中 Vary 的一些研究 (2014-01-01)
2013 年
- Webkit 异步加载 CSS 的奇怪现象 (2013-12-25)
- 小成本实现部分选中的复选框 (2013-12-22)
- devicePixelRatio = 1.5 引发的问题 (2013-12-20)
- 页面动画滚动的交互细节 (2013-12-08)
- BOM 和 JavaScript 中的 trim (2013-12-07)
- AMD 的 CommonJS wrapping (2013-12-05)
- Chrome 滚动条冻结现象 (2013-12-02)
- Genymotion:超赞的安卓虚拟机 (2013-11-28)
- 两个常见的 Affix 交互问题 (2013-11-25)
- 开始用 Markdown 写博客 (2013-11-24)
- 本博客正式启用 HTTPS (2013-11-22)
- Chrome 31 的一个 Bug(已修复) (2013-11-14)
- 打造 Mac 下的完美开发环境 (2013-10-09)
- iOS7 中 Safari 的一个离奇 Bug (2013-10-08)
- FileSystem API 实现文件下载器 2 (2013-10-01)
- 用 FileSystem API 实现文件下载器 (2013-10-01)
- 不会被 iOS 停掉的网页定时器 (2013-09-25)
- ES6 中的 Set、Map 和 WeakMap (2013-09-23)
- ES6 中的生成器函数介绍 (2013-09-20)
- image-orientation: 让图片自动旋转 (2013-09-15)
- 如何在 Mac 下使用 Fiddler (2013-09-13)
- 尝试 ES6 中的箭头函数 (2013-09-11)
- 中英文混排及中文引号 (2013-09-10)
- IE 的浏览器模式和文本模式(二) (2013-09-07)
- 看懂 Fiddler 的瀑布图 (2013-09-04)
- 打造自己的在线收藏服务 (2013-09-01)
- firebug1.12 更新 (2013-08-29)
- Http 请求头中的 Proxy-Connection (2013-08-26)
- 四种常见的 POST 提交数据方式 (2013-08-21)
- 使用 Canvas 绘制背景图 (2013-08-18)
- [小Tip]用好浏览器的控制台 (2013-08-11)
- 一些安全相关的HTTP响应头 (2013-07-23)
- Content Security Policy 介绍 (2013-07-22)
- 你所不知道的HostOnly Cookie (2013-07-10)
- 《奇舞周刊》有 Kindle 版合辑啦 (2013-07-03)
- 关于提高 Tab 切换速度的思考 (2013-07-01)
- cocos2d-html5 文字自动换行 (2013-06-25)
- 异步编程:When.js快速上手 (2013-06-23)
- Web Search Workflow for Alfred (2013-05-09)
- getAttribute和getAttributeNode (2013-04-25)
- 页面变灰二三事 (2013-04-22)
- [小Tip]给元素命名时容易踩的坑 (2013-04-06)
- Alfred2工作流推荐 (2013-03-28)
- 用Alfred2快速搜索QWrap文档 (2013-03-27)
- Chrome扩展与用户隐私 (2013-03-20)
- Google Reader二三事 (2013-03-19)
2012 年
- [彩蛋]这是什么? (2012-12-13)
- JavaScript动画漫谈 (2012-11-15)
- 第三方Flash组件带来的安全问题 (2012-07-22)
- [小Tip]Webkit下设置hash的一个坑 (2012-07-19)
- firebug1.10更新 (2012-07-16)
- [小Tip]IE9中focus执行顺序差异 (2012-07-10)
- 在Mac下使用berserkJS (2012-07-10)
- 如何更好的使用Cookie (2012-06-19)
- [小Tip]ABP扩展对前端开发的影响 (2012-03-29)
- 用Weinre远程调试移动网页 (2012-03-14)
- Webkit下最无敌的跨大域方案 (2012-03-02)
- 让Sublime Text2支持浏览器中预览 (2012-02-20)
- 图片自动旋转的前端实现方案 (2012-02-15)
- 关于浏览器模式和文本模式的困惑 (2012-02-08)
- [小Tip]IE矩阵滤镜Matrix一个大坑 (2012-01-13)
- 如何获取浏览器的DNS解析时间 (2012-01-07)
- 一个浏览器诊断小工具 (2012-01-01)
2011 年
- [小Tip]JavaScript转整数杯具两则 (2011-12-30)
- Sublime Text2:超赞的现代编辑器 (2011-12-23)
- [小Tip]下载.lnk遇到的怪事 (2011-11-29)
- QWrap简介之核心库定制 (2011-09-28)
- 恭喜月影结婚啦 (2011-09-23)
- 也谈跨域数据交互解决方案 (2011-09-12)
- FaceBook的NoScript策略 (2011-09-10)
- 关于前端代码Review的一些思考 (2011-08-27)
- 用Opera Mobile调试手机版网页 (2011-07-19)
- 一种效果还不错的图片排列策略 (2011-07-12)
- QWrap简介之组件编写 (2011-07-06)
- IE10 Platform Preview 2 (2011-07-04)
- [自己动手]让Editplus更好用 (2011-06-26)
- 如何使用Flash来实现本地存储.续 (2011-06-23)
- 使用浏览器原生函数优化动画 (2011-06-20)
- CSS裸奔节2011 (2011-04-08)
- Django博客系统部署小结 (2011-03-26)
- IE9、Opera11.10和firefox4 (2011-03-21)
- 换域名的一些后续工作 (2011-03-18)
- 两个激进的前端优化手段 (2011-03-16)
- Pingback和Xml-RPC (2011-03-14)
- Django博客系统开发小结 (2011-03-13)
- 又换新博客了~ (2011-03-12)
2009 年
- 使用Gears获取当前地理位置 (2009-09-05)
- 用flash计算图片平均颜色 (2009-09-02)
- 跨浏览器的“复制到剪贴板”.续 (2009-08-25)
- Javascript与Flash通信全解析 (2009-08-24)
- 轻松去掉web中flash右键菜单 (2009-04-07)
- 使用js callback的一个小技巧 (2009-04-03)
- Flash10安全策略更新 (2009-01-30)
- 用Fiddler来调试web应用 (2009-01-11)
2008 年
- 利用服务器返回header来传输数据 (2008-10-05)
- Maxthon引发的系列问题 (2008-09-20)
- 如何使用Flash来实现本地存储 (2008-09-12)
- 一种很帅的JS代码书写方式 (2008-09-09)
- 如何控制浏览器的历史记录 (2008-09-05)
- 不同浏览器处理后退的一些异同 (2008-09-03)
- IE与Firefox处理Attribute的几点差异 (2008-09-02)
- Opera下自定义右键菜单的研究 (2008-08-10)
- 跨浏览器的“复制到剪贴板” (2008-08-09)
- 慎用keyup事件 (2008-07-28)