跑步阶段性总结(一)
进入 11月 份,广州也开始降温,白天都开始穿长裤衬衣了。所以跑步前还得去公司洗手间换上短袖短裤,这一个新的动作的引入,导致我匆匆出门时忘了带上导汗带。不过也没关系,我不是已经很久跑步时不戴 MP3 了么。
还是在天河公园绕圈,这条线路现在我已经太熟了。知乎上有个问题,叫你跑步的时候在想什么?里面有各种令人忍俊不禁或是会心一笑的答案。今天,我大概想了这么几件事:
- 今天能不能破一万米呢?
- 今天还是不按圈计了,改成按每千米来计吧。
- 天冷了,跑步的人果然少了。看来能坚持的人也不是很多嘛!
- 到一千米了,三圈能刚好一万米吧?
- 又碰到前几天碰到的也来跑步的老外了。老外长得高,动作也轻盈舒展,不错。
- leetcode 上的那道题是怎么回事?
- 不好,开始下雨了。希望别下太大。
- 三千米了,这一圈快完了。
- 又碰到那个老外了。(我们在反方向绕圈)
- 这雨要是变大了还跑步跑了?还是跑吧!
- 回忆一下动作要领!
- 又碰到那个老外了。
- ……(略)……
- 终于跑完三圈了,可还没到一万米啊,怎么办?是继续跑一段再回来还是干脆再跑一圈?算了,继续马不停蹄往快餐店跑吧。
Nginx 如何控制某个特性是否打开
提到 Nginx,大家首先会想到它的高性能、事件框架、模块化、upstream 等耳熟能详的技术实现。这些确实也是 Nginx 的核心,但作为一个优秀的开源项目,Nginx 可以供我们借鉴的远不止这些,例如本文的话题:如何控制某个特性是否打开?
我们知道,在 Linux 下用源码安装方式编译安装一个软件时,标准情况下是有一个 configure 的动作,这个动作即是在编译前对环境进行检查,服务于后面的编译和安装,Nginx当然也不例外。
Nginx 的 configure 文件是一个入口,在里面调用了很多其他脚本,这些脚本都位于源代码的 auto
目录下。本文重点涉及其中两个脚本:auto/have
和 auto/define
。
跑步是一件快乐的事情
跑步是一件快乐的事情,这似乎是无庸置疑的,不然无法解释每年各地举办的马拉松比赛都爆满甚至要用抽签来决定参赛名单的现象。如果跑步不是一个快乐的事情,这些人怎么能忍受几个小时的枯燥乏味呢,更别说身体上的煎熬。
但对我来说,跑步真正是一件简单、快乐的事情,是最近才有的。
之前有过一年坚持每天跑步,但那个时候,“成就感”的驱动大于快乐的驱动。跑步已经不仅仅是一项运动了,它似乎变成了一种精神象征,只要我还在跑,那么我就没被打倒。但跑步本身的乐趣却被忽略。
这个转变是由两本书促成的,《当我谈跑步时我谈些什么》和《跑步,该怎么跑?》。
用 proxy_intercept_errors 和 recursive_error_pages 代理多次 302
注意:此文写作时间比较久远,请谨慎参考,自行阅读代码、文档以及测试。
302 是 HTTP 协议中的一个经常被使用状态码,是多种重定向方式的一种,其语义经常被解释为“Moved Temporarily”。这里顺带提一下,现实中用到的 302 多为误用(与 303,307 混用),在 HTTP/1.1 中,它的语义为“Found”。
302 有时候很明显,有时候又比较隐蔽。最简单的情况,是当我们在浏览器中输入一个网址 A,然后浏览器地址栏会自动跳到 B,进而打开一个网页,这种情况就很可能是 302。
比较隐蔽的情况经常发生在嵌入到网页的播放器中。例如,当你打开一个优酷视频播放页面时,抓包观察一下就会经常发现 302 的影子。但由于这些 url 并不是直接在浏览器中打开的,所以在浏览器的地址栏看不到变化,当然,如果将这些具体的url特意挑出来复制到浏览器地址栏里,还是可以观察到的。
上一段提到了优酷。其实现在多数在线视频网站都会用到 302,原因很简单,视频网站流量一般较大,都会用到 CDN,区别只在于是用自建 CDN 还是商业 CDN。而由于 302 的重定向语义(再重复一遍,302 的语义广泛的被误用,在使用 302 的时候,我们很可能应该使用 303 或 307,但后面都不再纠结这一点),可以与 CDN 中的调度很好的结合起来。