终了2009

2009年又要过去了,一年又一年,日子总是追着走。 从工作、学习和生活三个方面去说,2009年做的事真是不多,有些得过且过的感觉了。年初我有许多的计划,可是到了年终,细细的数来却没能完成几样。生活上值得庆祝的事情,一来办了婚礼,二来呢做了准爸爸。工作上没有值得庆祝的事,只有值得反省的事。学习上的事情,是觉的学的太慢了,而且网撒的太大,有点收不住的感觉了。 2010年对自己的希望是: 做一个好爸爸。 多学一门外语。 把学习的重点放在计算机科学上,不要再搞民科了。要深一些! 广交好友,提升RP。 在人大的学习该有个了结了。 多了解一些微观经济学的东西。 克服拖沓症。

Automator Proxy Toggle Shell

人都是被逼出来的,为翻墙方便,用Automator写了一个Service,就执行一段shell,还设置了一个快捷键。 #!/bin/sh STAT=`sudo networksetup -getwebproxy Ethernet | head -1 | cut -d: -f 2|sed ‘s/ //g’` if [ “$STAT” == “No” ];then networksetup -setwebproxystate Ethernet on; /Users/guixing/bin/growlnotify -m “Proxy On”; else networksetup -setwebproxystate Ethernet off; /Users/guixing/bin/growlnotify -m “Proxy Off”; fi growlnotify是Growl的一个命令行工具。

Google的公共DNS服务

Google提供了公共的DNS服务,三金和老黄马上就想到了对CDN厂商的冲击。我看了下Google的Performance Benefits,记一笔。 发生在解析服务器和其它DNS服务器的传输时间,有三个原因。 无缓存。无缓存就要查其它的NS。 无法服务。要查的NS如果过载,就可能发生请求被丢弃或重发。 恶意的流量。DoS,重点是攻击,人为造成第二种情况甚至更严重。 无缓存的情况有一些数据,NS服务器拿到一个无缓存的请求,会导致至少1次的外部NS查询,一般情况会是2次以上。 根据Googlebot的情况来看,平均解析时间是130ms,然而还有4-6%的请求会直接超时,这通常是UDP丢包或服务器无法到达。把丢包,死NS,NS配置错误等因素都计算进来的话,实际的解析时间是300-400ms。 无缓存的情况较难避免,原因有三: internet太大而且还在成长。新用户和新网站都在增长,并不是所有的网站都是那么的流行,所以大部分的请求都是无缓存的情况。 TTL太短,这个好象是个趋势,短TTL带来的就是更多的NS请求。 缓存是相对隔离的,NS大多放在LB设备下,缓存是随机的。所以就增加了无缓存的情况。 Google采用了一些方法,如下: 提供足够的服务器。 避免恶意攻击。 LB使用共享的缓存。 预抓取名字解析。 提供全球服务。 其中新的东东是这个预抓取!

记一笔keep-alive和cache-control

以前看的时候大多走马观花,补补课,记一笔吧。 对于静态内容在HTTP Header中设置过期时间和最大时间,可以有效的使浏览器避免下载已经下载过的文件。 js,css,图片什么的都是静态内容,都应该考虑cache,但是html不是静态内容。 Expires和Cache-Control: max-age是资源终身鲜活的Cache控制。浏览器在过期之前不进行资源的鲜活检查。 Last-Modified 和ETag则是对资源的一种描述,属于启发式的Cache控制,浏览器在检查之后再决定使用Cache与否。 Expires 和Cache-Control: max-age,作用相同,设置其中一个即可,Last-Modified 和Etag也是冗余的设置,设置其中一个即可。 设置Expires,Cache-Control支持率不及Expires。这个值通常设置1个月,不要超过1年。如果不知道过期时间,就设长一点,当发生变化的时候使用URL的指纹。 要考虑到代理服务器的Cache情况,使用Cache-Control的public还是private。通常来说要set-cookie的地方就不要让代理Cache,所以设置为Private。 代理Cache的情况还有压缩与否的问题,有两种方法,一种是把Cache-Control设置为Private,使代理服务器不Cache这些内容。另一种是设置Vary: Accept-Encoding的Header,这可以使代理Cache两种内容,压缩的与不压缩的。 避免Firefox的URL哈希冲突,Firefox的URL哈希算法有8个字符的冲突边界。所以两个资源的URL差异应该在8个字符以上。 设置正确的Vary Header,IE对于设置了Vary头的资源是不Cache的,有例外,Vary头的值是Accept-Encoding和User-Agent的时候可以被IE给Cache,所以要么不设Vary头,要么就对Vary头进行裁剪。 HTTP Keep-alive呢,重点看以下几个文档: http://httpd.apache.org/docs/2.0/mod/core.html#keepalive http://en.wikipedia.org/wiki/HTTP_persistent_connection http://en.wikipedia.org/wiki/Keepalive Apache的KeepAlive设置与优化 – 老黄纸条箱(这篇是精华) Keep-alive是指在同一个连接中发出和接收多次HTTP请求。优点是: 使用较少的CPU和内存 开启HTTP 管道 减少网络拥堵 在接下来的请求中,减少传输时间。 错误可以被报告但是不关闭TCP连接。 在RFC 2617第47页里,一个用户客户端对任何服务器或代理不能维持2个以上的连接。代理可以维持2xN个连接。 IE6和7使用 2个长连接,IE8使用6个,都是在60秒之后超时。 Firefox的长连接都是在300秒超时,同时使用的连接可以自定义(按每主机或总计),Opera与Firefox类似。

卧底经济学的小记(1)

还价能力来自于稀缺性。 稀缺有两种,一种是自然稀缺,另一种是人为稀缺。人为的通过政策和法律限制”边际”资源,造成资源的稀缺,进而提高了还价的能力。 如果1蒲式耳粮食值1美元,那么5蒲式耳粮食就是5美元的地租。如果1蒲式耳粮食值20万美元,那么5蒲式耳粮食就是100万美元的地租。 现行的货币系统,因其本身做为一种商品,其价值的不稳定,对普通大众甚至是有一定的欺骗性。许多人认为货币是稳定不变的,至少认为变化不大,而实际上货币是有时间成本的,是在不断贬值的。当存款的利率低于当年的通货澎胀率,那么把钱存在银行实际上是在赔钱。实际这个例子是在说羊毛出在羊身上,地租的差异是因为地皮的差异,但是地租的高低则是议价的结果。而且地皮的差异并不是一承不变的,比如买房的时候周围还没有地铁,但是后来地铁新建之后就改变了地皮与地皮之间的差异。