qyb的博客

今天达达掌握了跳绳技巧....

幼儿园没教会,只能家长带着了。

现在太阳落山晚,回家后就在外面跳跳绳,飞飞盘。。。今天的成功让我信心大增,决定趁这段时间把基础的运动项目都练一遍

打算把跳绳和飞盘都带到亚龙湾去,周一出发,哈

Topic: dada

用 js 做 URL 跳转带来的 Referer 丢失问题.

http 302 重定向是可以保持 referer 的。例:在 A 页面上提交登录表单到 B,B 返回一个重定向页面到 C,在 C 处理里面检查 Referer 可知道它的来源是 A 而不是 B。

但是如果用 window.location 或 document.location 做这个跳转就不一样了。假如在 A 页面上执行 window.location = B,如果是 IE 浏览器,会发现 B 页面的 Referer 为空。firefox 倒是可以保持 Referer,不过在 IE 占绝大部分市场份额的中国,必须想办法避免这个影响。

最后从网上找到这么一个解决方案:

  1. function goTo(url) {
  2.     var a = document.createElement("a");
  3.     if(!a.click) { //only IE has this (at the moment);
  4.         window.location = url;
  5.         return;
  6.     }
  7.     a.setAttribute("href", url);
  8.     a.style.display = "none";
  9.     document.body.appendChild(a);
  10.     a.click();
  11. }

现在我可以追踪到所有跳转到搜狐邮件的来源了

Topic: 技术

为什么不用ntpdate,而要用ntpd

搜狐的服务器在被 Tech-NO 安装的时候,缺省都会设上一个每天自动 ntpdate 同步时间的脚本。这个精度对付一般的应用可能也就够了,但我们的几台 pv 统计服务器最大的时间差能到10s,对于计算用户访问的入口点来说就可能产生极大的偏差。

本文的题目来自 Xin Li 的这篇文章,其实他说的已经很好了,我这里再详细补充一下:

NTPD 在和时间服务器的同步过程中,会把 BIOS 计时器的振荡频率偏差——或者说 Local Clock 的自然漂移(drift)——记录下来。这样即使网络有问题,本机仍然能维持一个相当精确的走时。

NTPD 唯一的问题,可能就是安全性了。我理解为什么 Tech-NO 大规模装机不用 ntpd,但我觉得技术上还是应该这么去做的。

Topic: 技术

介绍一下SystemTap

很久以前听说的 SystemTap,自从 Mac 和 FreeBSD 先后从 Solaris 那里移植来 DTrace 后,Linux 就在系统性能调优方面,成为一个很受果粉和F粉鄙视的操作系统(老实说,其实我们三方一直在互相鄙视),偶们L粉这方面唯一可以拿来自慰的,就是 SystemTap 了。

听说归听说,但从来没有用过。直到这个星期某同事调查设备IO Wait极高的故障,我就建议他从 SystemTap 入手。既然给别人挖了一个坑,我也顺便试了试该功能:

  1. 从宽泛的层面看,DTrace/SystemTap更像是一个给系统管理员定位瓶颈的工具。程序员若要解决自己程序的问题,可能优先会去考虑profile工具。但有些情况,比如Daemon进程,要去profile这个不间断运行,不断fork的环境,估计力有未逮,DTrace/SystemTap这就能排上用场
  2. 使用SystemTap,本质上是写一段小小的脚本,SystemTap会将它处理为一个C程序,然后编译成一个内核模块(!!!),插入内核,在各个系统调用的进出点执行脚本里定义的计数等任务,并打印出来
  3. 没有用过DTrace,反正看评论是大家都说其比SystemTap好使。想要用好SystemTap,必须对syscall很熟悉才成。估计DTrace对各类系统任务封装的更好,可能不会 C 语言,不懂什么是 syscall 也能使用。
  4. SystemTap 脚本语言居然支持 hashtable 数据结构,这还真是一个挺高级的特性
  5. SystemTap从2.6.11才在标准内核里出现,RedHat从RHEL4(尽管是2.6.9)开始内置了这个特性——注意还得同时安装kernel-debuginfo
  6. 最后,我觉得任何一个在 Linux 下工作的程序员/管理员都应该关注这个东西,在这个互联网时代,找出服务的瓶颈并改进可能将是最重要的技能之一。
Topic: 技术

八卦一则

话说当年为了降低视频服务的带宽成本,搜狗开发出一个p2p技术,内部叫PXP,整合在搜狗工具条里发布。但是刚开始推广搜狗工具条的时候有些障碍,每天也就几千的装机量,于是在一个会上大家就集思广益,看看怎么去推广下去。某人一拍桌子:这有何难,以前我们在新浪的时候是如此如此操作滴......

So, 搜狗工具条就此走上了一条不归路,再加上这个PXP技术,显然是要自己开端口的,是会产生莫名的流量的。搜狗工具条顺理成章的成为人人喊打的流氓软件,连带着这个PXP的插件,也成为流氓软件特征库里的重要一员。直到现在,搜狗的同事说起这个技术来还是连呼可惜。

这位从新浪跳槽而来的老兄,咳咳,就是前不久的新晋亿万富翁,王滔同学。

当我听到这个八卦的时候,总觉得林总嘴里,有那么一点酸酸的味道,呵呵。前不久在另外一次技术讨论中,几个同事对于另外一位新晋千万富翁洪晓健同学,也隐隐有些相轻的意思,哈哈。

不管怎么说,畅游是一个很好的榜样,给其它的VP、Director们凭空增加无穷的动力,实在是一石N鸟啊。

Topic: 生活

open(2)

直到今天才注意到一个问题,就是以 O_CREAT 模式打开一个新文件,比 O_APPEND 追加一个文件要慢得多!同事简单测试了一下,结果是这样:

  1. O_CREAT 比 O_APPEND 至少慢三倍。(以前只是直观的感觉创建文件会慢,但没想到会慢这么多)
  2. 创建一个文件,写4次,每次4k,(共16k)再关闭。所耗费的时间,大概是给一个文件追加16k时间的1.5倍
Topic: 技术

用 apxs 辅助工具在 Win32 下编译 Apache Module

最近 Passport Module 有一个重大升级,在自己的 WinXP 上做开发的同事需要我们提供一个 win32 的新模块。

上次编译 module 是 2 年前了,那时候环境为 Apache 2.0.x + VC7.1 (2003),现在则是 Apache 2.2.x + VC9.0 (2008),按以前的套路三下五除二搞出来一个 mod_passport 后,发现 apache 无法加载。

折磨了半天,最后是从一个专门作 apache module win32 build 的地方,弄到一个专门给 Win32 平台用的 apxs (http://www.apachelounge.com/download/apxs_win32.zip)。用它编译则轻松搞定,看起来原因是必须用 MT.exe 加入 manifest 后,才能正确加载模块(上网搜了一下,从 VC8.0/VS2005开始就是介个样子了)。就是:

cl /MD /D "WIN32" /c mod_foobar.c
link /DLL mod_foobar.obj libhttpd.lib libapr-1.lib
mt /manifest mod_foobar.dll.manifest /outputresource:mod_foobar.dll;#2

PS: 对于一个需要偶尔在 win32 下编译开源程序的 console控来说,Windows SDK for Windows Server 2008 and .NET Framework 3.5 就足够了,已经自带了 VC 9.0,不用再去安装 Visual C++ 2008 Express 了

Topic: 技术

达达语录

- 你们以后帮我照顾小孩好不好?
- 当然没问题
- 哎,一个人带一个小孩真是困难啊
- (难道现在就有了做单亲母亲的计划?我觉得这个太过骇人听闻了)你以后要一个人带孩子吗?我小心翼翼的问

- 以后我们要生两个孩子,就是一个人带一个啊。。。。(显然达达觉得他老爹很白痴)

- 爸爸,xxx是我最好的朋友
- 哦...
- yyy他们喜欢打人
- 哦,男生小时候都是这样。我保证他们打你是因为他们喜欢你
- 可是我不喜欢他们
- ......
- 以后我会有好朋友的
- ......
- 等我到了生小孩的年纪,我会找到答案的。

- (汗...这么狗血的台词,是从哪里学到的,我们在家里可从来不看什么韩剧日剧的)

Topic: dada

闺中风暖,陌上草薰

上午10点的阳光洒进来,偶赖在躺椅上,手捧一本《古代汉语》,为自己的装X行径很是心旷神怡。虽然是《别赋》,可这句还是蛮贴切春意盎然的景致的。

继最近两周的coding生活后,这几天空闲里倒是看了几本书。列一下书单:

《百年诅咒》,无意中在网上看到,本以为是网络写手所为,但开头就以茨威格为噱头让我吃了一惊,然后又扯到达利,进而是弗洛伊德。觉得有那么一点点好莱坞所喜爱的商业小说的意思,比如那本《达芬奇密码》,虽然结尾有些草率。这本书也挺适合拍成电影的,哈

阿巴拉岛,魔幻小说。大概和《纳尼亚传奇》类似,一个小女孩无意中从我们这个世界到了另一个魔法世界。里面丰富的插画确实是一绝,3个小时一口气读完了。当让人纠结的是这本只是第一卷,按欧美的习惯,估计下面应该还有2本。

《古拉格群岛 》,只看了上册的大半部分,就不想再看了,因为太沉重,因为很容易联想到我们中国的现状。

《姜夔词》

还有就是这本《古代汉语》下册的第二分册。当初在旧书店买滴,只看了上册的一点儿,觉得繁体字看起来太艰深就没有继续,到现在至少5年了。这一册开头是赋类的文选,比经史读起来好理解多了。学习到“业精于勤荒于嬉”是韩愈说的,而且知道下面还跟着一句“行成于思毁于随”,奇怪这么工整的对仗为啥没有一起流传。“清风徐来 水波不兴”、“如怨如慕 如泣如诉”这样的名句原来都集中在前赤壁赋里,以前自己还真是小白啊。

Topic: 生活
订阅 RSS - qyb的博客