帮助怡帆

| | Comments (0) | TrackBacks (0)
看到拯救怡帆:请帮助这位漂亮、坚强的女孩。我自己到今年5月底就会成为一名父亲,深感这样的事情是大不幸,希望怡帆能够挺过去,去拥有她应该拥有的童年。
捐赠方式
1. 银行转账 
怡帆妈妈农业银行账户: 
户名:周萍 
账号:6228480010211053011 
开户行:中国农业银行北京市分行白石桥支行 
2. 支付宝 
怡帆基金支付宝账户:yifanfoundation@gmail.com 
3. 和睦家基金会 (美元捐款) 
另有网站:http://www.help-yifan.org,网站上也可以看到捐款信息。望怡帆重返健康!

终了2009

| | Comments (0) | TrackBacks (0)

2009年又要过去了,一年又一年,日子总是追着走。

从工作、学习和生活三个方面去说,2009年做的事真是不多,有些得过且过的感觉了。年初我有许多的计划,可是到了年终,细细的数来却没能完成几样。生活上值得庆祝的事情,一来办了婚礼,二来呢做了准爸爸。工作上没有值得庆祝的事,只有值得反省的事。学习上的事情,是觉的学的太慢了,而且网撒的太大,有点收不住的感觉了。

2010年对自己的希望是:

  1. 做一个好爸爸。
  2. 多学一门外语。
  3. 把学习的重点放在计算机科学上,不要再搞民科了。要深一些!
  4. 广交好友,提升RP。
  5. 在人大的学习该有个了结了。
  6. 多了解一些微观经济学的东西。
  7. 克服拖沓症。

人都是被逼出来的,为翻墙方便,用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服务

| | Comments (0) | TrackBacks (0)
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使用共享的缓存。
  • 预抓取名字解析。
  • 提供全球服务。
其中新的东东是这个预抓取!

以前看的时候大多走马观花,补补课,记一笔吧。
  • 对于静态内容在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呢,重点看以下几个文档: Keep-alive是指在同一个连接中发出和接收多次HTTP请求。优点是:
  • 使用较少的CPU和内存
  • 开启HTTP 管道
  • 减少网络拥堵
  • 在接下来的请求中,减少传输时间。
  • 错误可以被报告但是不关闭TCP连接。

在RFC 2617第47页里,一个用户客户端对任何服务器或代理不能维持2个以上的连接。代理可以维持2xN个连接。

IE6和7使用 2个长连接,IE8使用6个,都是在60秒之后超时。 Firefox的长连接都是在300秒超时,同时使用的连接可以自定义(按每主机或总计),Opera与Firefox类似。

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

内存是新的硬盘

| | Comments (0) | TrackBacks (0)
High Scalability有篇基于内存构建云的展望。顺手做一下笔记:
  • Google的一个查询能够在200ms之内完成,其性能主要来源就是索引信息完全在内存里。数以千记的服务器处理每一个查询,以使搜索结果能立刻返回。
  • Linkedin和digg都把自己的社会关系网络给塞到内存里了。
  • Facebook使用了800个memcached,存储了25T的数据,并且保持了99%的cache命中率。
  • 在基于内存的结构中,内存将是一套存储系统。与基于缓存的结构不同之处是,内存中的数据即是最终数据。
  • 缓存系统是以最小化磁盘读取数据的瓶颈为目的,而内存系统则可以定址整个应用的栈。 数据存储在内存里比之传统方式将获得更高的可用性。
  • 内存=高带宽和低传输时间。
  • 内存的带宽是5GB/s,硬盘是100MB/s。内存比硬盘快数百倍。
  • 硬盘的读传输时间大约在几秒的范围之内,内存则在5纳秒之内。内存比硬盘快了2000倍。
  • 内存是新的硬盘
  • 通过网络在内存中提交一个事务要比写在硬盘上快。同样的读内存也要比读硬盘快。
  • 所以思想就是要跳过硬盘。
  • 硬盘是新内存,内存是新缓存。50个硬盘的集群可以达到与内存相同的带宽。但是传输时间上的问题就要靠组织数据结构和优化算法实现了。
记的比较乱,大概留个映像吧。要让数据靠CPU足够近。

Update: 刚才看到了几幅图和这个题很近。

Wave和科技创新

| | Comments (2) | TrackBacks (0)

周末参加了豆瓣举办的Python聚会,直播使用了Google的新产品----Wave,发现Wave真的可以把会议室给解放出来。

刚刚接触到Wave的人,大多都有些失望,发现Wave和一个即时通信工具没有什么两样,只不过组的成员是不固定的。同样也没有带来想象中的信息爆炸。

然而在这次聚会直播中,我们发现了Wave的真正实力,与IM相比Wave多出了这样几个功能。

  • 可以在任何时间把一个人拉入一个Wave中。(与其说是Wave不如说是Topic)
  • 可以对消息进行再次的编辑、删除操作。
  • playback,回放可以让后来的人了解过程或者回顾讨论的顺序,比如讨论过程中拉了谁进来,谁说了什么话,谁修改了自己的或者别人的发言,哪句话被谁在什么时候给删除了等等,Wave让我们了解了这是一个过程。

就上面这些功能就足以让我们不必到会议室进行讨论,而是直接在线上进行交流,快速的讨论,如果讨论过程中觉的某某人也应该参加这个讨论,那么就把他拉进来吧,就是这样,很简单,但是我们有会议记录,可以回放的会议记录。相对于会议室,缺少的可能是一个白板,我相信不久就会有这样的Widget出来。

科技创新改变生活方式,也改变行业的规则。twitter提供了个人的即时广播电台,YouTube提供网络电视,Wave提供了网络会议室,Facebook提供了网络的社会关系。如果有一天机器人可以送快递,我们就真的可以足不出户的生活了。

BTW: 当国际科技发展在改变国际友人的生活方式的同时,国内科技的发展同样的在改变国人的生活方式,比如翻墙。鬼子们通过网络(也许是免费的)看YouTube 1080p高清电影的时候,我们还在为自己1M ADSL付费。

那个洞

| | Comments (0) | TrackBacks (0)
在Practice of System and Network Administration中有一章是Climb out of the Hole。这个洞就是:

一个家伙掉到了一个深到他不可能出来的洞里。他听到有人来了,然后他引起了那个人的注意。那个路人听完了他的境况,想了一会儿,也跳进了那个洞。

"你为什么要这样做?现在我们都被困在这儿了。"

"呃〜至少你现在不再孤独了。"那个路人说。

终于入手了本人的第一台数码单反机。败家记录如下:

  • Canon 450D单机,¥3850。
  • Canon Lens EF 50mm f1.8 II,¥700。
  • SanDisk Extreme III 4GM,¥150。
  • Kenko UV,¥70。
  • 普通包一个,¥70。
  • 3'屏贴一个,送。
总计¥4830(免了¥10,真少啊,T_T)。

半年前,岳父给我了一个美能达X300的单反和一个VR神镜,胶片机的,还有一些很老很老的设备,比如红梅的机器。可惜,到现在一次也没有用过。