当前位置

qyb的博客

狐狸尾巴

SOHU 有相当一部分人,门卡是如此携带的:

卡放在屁股兜里,露出一长条黄色的带子直垂过膝盖窝

实在是不雅观,不知道这个风尚是怎么流行起来的。

Topic: 

Softpedia Editorial Team 发来的信!!


没想到已经决定暂时中止开发的程序居然获得了承认.

Hello,

Your product "DV-2-XviD 0.8" has been tested by the Softpedia labs and found to be
completely clean of adware/spyware components.

We are impressed with the quality of your product and encourage you to keep
this high standards in the future.

To assure our visitors that "DV-2-XviD 0.8" is clean, we have granted it with the
"100% FREE" Softpedia award. Moreover, to let your users know about this
certification, you may display this award on your website, on software boxes
or inside your product.

More information about your product's certification and the award is available
on this page: http://www.softpedia.com/progClean/DV-2-XviD-Clean-57206.html

Your product review page is located at:
http://www.softpedia.com/get/Multimedia/Video/Encoders-Converter-DIVX-Related/DV-2-XviD.shtml

Please feel free to link to us using the URL above.
If you choose to link to the award page for your product, you may use the
award graphic or a text link such as: "100% FREE award granted by Softpedia"

Don't hesitate to contact us for more information.

Sincerely,
       The Softpedia Team
Topic: 

无题...

一上班,收件箱里就躺着一封信:

大家好,
 
按404的要求,公司....

刚看了抬头,我突然觉得把萨-奥法案命名为404相当的搞笑,因为 404 的另外一个含义是 URL Not Found 么..为什么不这么写:

大家好,
 
按第22条军规的要求,公司....

又:mailteam 的内部服务器(上面跑着 wiki/bbs)有一颗巨古怪的 CPU,最老的 P3 核心 Katmai,500MHz 的频率,但有 1M 的 cache!!! 上网简单搜了一下,也没有这类 CPU 的发布消息。该 CPU 来自 DELL PE6300,DELL 还真是牛,不会是自己 remark 吧

Topic: 

用 libevent 实现一个简单的 http server

今天由于要查询 memcached 的使用,转到了 libevent,发现它大概一个月前发布了 1.2 版本,一个很重要的更新就是增加了对 http 协议的封装。

于是尝试自己写一个 http server,查看 manual 无迹可循。google 之,看到一个人写的 sample,而且他还写了其它一些的 libevent 的例程。强烈推荐学习。

嘻嘻,练好 google 大法很重要哦。用 google generate 代码的能力比 Visual Studio 的 wizard 强多了。以后写程序之前首先打开浏览器 search,然后 copy & paste 到编辑器里面去.... (YY 中)

最后要说的是,感觉用 libevent 来完成一个 http application server 似乎也是相当的可行呢。至少上手比 apache module 简单多了。比如 JEP/XEP-0124 , http binding. 传统上都是在 java 上实现的,现在我看到了 C 上实现的曙光。可惜最近业余实在没有精力去写什么程序了。

Topic: 

跨域(cross-domain)访问 cookie (读取和设置)

Passport 一方面意味着用一个帐号可以在不同服务里登录,另一方面就是在一个服务里面登录后可以无障碍的漫游到其他服务里面去。坦白说,目前 sohu passport 在这一点实现的很烂(不过俺的工作就是要把它做好啦,hehe)

搜狐的 SSO 需求比较麻烦,因为它旗下有好多域名:sohu.com、chinaren.com、sogou.com、focus.cn、17173.com、go2map.com,登录用户漫游的主要障碍也来自于此。

以前亿邮的邮件系统在和别的系统整合的时候是提供一个 URL,用户从第三方系统里面点击这个链接就可以生成访问邮件界面所需的 cookie,然后进入邮件。这个方式的确很有效,但问题是:
1. 每个外部链接都必须用特殊的 URL 跳转,维护很麻烦
2. 两个系统集成已经很麻烦了,若是集成的系统有好几个,彼此都需要跳转而缺乏一个中心机制就成了噩梦
3. 根本无法处理用户直接在地址栏输入地址进行访问的情况

即使是跨域,上述的解决方法相对来说还是容易的。
A. 首先是所有登录必须首先通过一个中央服务器进行认证,然后在它那里给浏览器种下 cookie(下面称之为 sso cookie)
B. 当用户访问另外的域名 app 的时候,浏览器是无法直接发送 sso cookie 给服务器认证的。此时应该利用 javascript,动态创建一个隐藏的 iframe,让其访问 sso
C. 这个 iframe 的请求是可以把 sso cookie 送给 sso server 的。sso server 验证 cookie 后,返回一个重定向页面到 app 的某个 URL,由该 URL 设置 app cookie
D. 此时浏览器上可看见的页面容器实际上也是可以和重定向回来的内容交互的。比如可以用 js 控制发现重定向页面成功返回后,就刷新整个页面,让它看起来和用户登录后访问没有什么区别。

下面是真正的技巧:怎样才能在 IE 里面跨域去设置 cookie
上述技术看起来是不是很好?但它的前提是所有的登录都 post 到 sso server 上,认证成功后再返回 app 页面。可我接受到的需求之一就是要支持页面无刷新登录。

哈!就是说本来在 chinaren.com 上提交登录表单的 action 应该是 passport.sohu.com 这个 sso server。可是在 AJAX 大潮下,chinaren 计划采用 XMLHTTPRequest 提交,这个就麻烦了,因为是不能跨域来提交的。

那么解决方法就是跨域产生 cookie,即 js 发现口令校验成功后,再在 passport.sohu.com 上种上合法的 cookie.

套用上面的跨域读 cookie 的方案似乎很简单去推论:就是创建一个隐含的 iframe,让那个 iframe 去调用 passport.sohu.com 的 URL 来产生 cookie。很遗憾,此方法在 Fx 下工作的很好,但是不能在 IE 上应用。(在 IE 状态栏上显示 cookie 隐私警告,红色圆底白横杠)

我试了很多很多方法,包括创建 、 node,包括用 js 设置,但都一次次被 IE 无情的挡在了浏览器外。google 之,也没有任何真正可用的答案,中文网页要么介绍的方法是错的,要么说无解。

最后还是在 chinaren 一哥们的帮助下,翻出了他们所使用的,以和 alumni.sohu.com 交互的方法(不知道是哪位牛人发现的),只需要设置 P3P HTTP Header,在隐含 iframe 里面跨域设置 cookie 就可以成功。他们所用的内容是:

P3P: CP="CURa ADMa DEVa PSAo PSDo OUR BUS UNI PUR INT DEM STA PRE COM NAV OTC NOI DSP COR"

最后是我做的一个小小的演示:cookie 怎么在 vmx.cn 和 dup2.net 之间交互

1. http://qiuyingbo.test.vmx.cn/cookie.php

2. 随便输入什么,点 reset cookie,就可以看到 vmx.cn 的 cookie 已经被设上了

3. 在该页面点连接到 http://www.dup2.net/vmx/cookie.html

4. 点"get corss-domain cookie" .. (此时 js 会去创建一个iframe,请求 qiuyingbo.test.vmx.cn ,返回页面把 cookie 值作为 GET 参数重定向回 dup2.net 的另外一个URL。)

5. 点 "display corss-domain cookie" .. 就可以看到 vmx.cn 的 cookie 了

6. 在该页面的输入框中输入其它的值,然后点 "set cross-domain cookie",该行为将主动设置 vmx.cn 的 cookie

7. 点链接回到 http://qiuyingbo.test.vmx.cn/cookie.php ,就可以看到新的值了

MySQL, 万里开源

真没有想到,几个月前刚刚写了一篇关于万里开源的blog,今天就和这家公司的售前在一起讨论其对 MySQL 的支持。

简单说一下今天学习到的知识:

万里开源销售的 MySQL 产品主要是 3 类:嵌入式,企业版,Cluster 版。

MyISAM 发音为 "my-z[ei]m";InnoDB 发音为 "in-no-db"

InnoDB 是企业版的缺省引擎,InnoDB 应该能得到更完备的商业支持,这点从我上次给 MySQL 报告的 Bug 只出现在 MyISAM 引擎就看出来了(而且2个月后才被fix)。

MySQL/InnoDB 的性能直逼 Oracle。在一次模糊查询测试中(like 查询,所以什么索引优化都不起作用),同等硬件下从 30,000,000 行数据里查找,Oracle 花了 32 秒,MySQL/InnoDB 花了 36 秒。

在洛斯阿莫斯实验室的一个环境(1 Master + 7 Slave)里,MySQL 4.0 存储了 1,400,000,000 行数据(售前说是单表,我感觉虽然理论上说不定能存储这么多,但生产环境真这么用还是很可疑),7T 容量。

我们的 DBA 看中的MySQL 5.1 最大的特性是分区,还有就是 NDB/Cluster 的复制的支持,可惜现在还是 Beta 状态。据说中移动的卓望现在正在测试 5.1,正式的产品估计今年是不会出来了。

我们 DBA 最迫切需要的另外一个功能就是实时复制和延时复制,目前 MySQL 的复制只能说是异步复制。一方面无法保证对 Master 的写操作可以立刻在 Slave 上看到,另一方面无法避免误操作给 slave 带来的损害(如果有延时复制就可以每小时产生一套备份什么的了)。据 MySQL 一个开发者在 blog 中提到正在考虑延时复制的支持,最起码 6.0 才能看到这个功能了吧。

MySQL Cluster 是按照 CPU 来卖的,由于 MySQL Cluster 部署是分为 Server 节点和 Data 节点的,如果谈判手腕的得当,或许 Server 节点的 CPU 数可以打折计算价格。

万里开源有42个技术人员(他们几乎是不假思索就回答了这个问题),其中 15 名经过 MySQL 认证了的技术支持,另外就是研发人员中还包括 5 人是 MySQL 全球开发团队的一部分,属于 MySQL Cluster 产品组,因为 MySQL Cluster 的研发经理是华人的缘故吧。

最后是感想:

MySQL DBA 绝对是一个有前途的职业,正如 Linux 管理员需求越来越大一样。从 MySQL 5.0 支持存储过程/视图/触发器开始,MySQL 不再只是黑客和毛头小伙子的工具,将越来越在企业里被广泛应用。

GPL 还是需要广泛宣传,不仅仅是我们资深的DBA,甚至 MySQL 的售前都不能正确理解 GPL 的含义。

不过 MySQL 企业版产品的一些条款的确十分古怪。可以肯定购买的 MySQL 企业版产品肯定不是 GPL 的。以后会不会有公司销售基于 GPL MySQL 的服务呢?

Q: Do all my MySQL Enterprise subscriptions need to be at the same tier?
A: MySQL Enterprise subscriptions must be at the same tier (Basic, Silver, Gold, Platinum) 
for all database servers that power that specific application.

secure cookie

你还记得服务器端发送 Set-Cookie: 头部的时候可以包括哪些属性么?name=value、path、domain、Expire...这就是全部么?

不知道有多少人能记得这个 secure,并且能第一时间正确说出它的用途,hoho

基本上我们所有的 web 安全都是依靠 cookie 维系的,虽然多多少少会有一些方法来保证攻击者不能随便生成一个 cookie,但对于非加密的 HTTP 来说,监听到别人的 cookie 后然后伪造身份是非常容易的事情。

即使用户通过 https 提交用户名/口令,但 cookie 一旦在 http 通道上被传递给服务器,安全隐患就随之而来了。

Set-Cookie 的 secure 属性就是处理这方面的情况用的,它表示创建的 cookie 只能在 HTTPS 连接中被浏览器传递到服务器端进行会话验证,如果是 HTTP 连接则不会传递该信息,所以绝对不会被窃听到。凡是计划采用 HTTPS 来保证用户帐户安全的同志们都要注意对这个参数的使用,搞不好木桶上的最短板就在这里。

附:SOHU Passport 这个项目的 Web 技术和 cookie 关系很大,最近也着重研究了这方面的东西,下一篇 blog 仍然是和 cookie 相关的。

Topic: 

转贴 xjb 的《世界真小》

www.xiaojb.com

double dup2–世界真小
2006年11月10日 11:48 · PageRank:0 · Filed under 有一说一 

刚才看邱氏兄弟的blog,发现了一个巧合,是关于生日的。
我(xjb)和我弟弟(xjt)的农历生日分别是11月24和11月初九。
qyb和qyb的弟弟qyt的阳历生日分别是11/24和11/09

我弟弟的最后一个字也是涛。 
Topic: 

SOHU 一周见闻

时间过的很快.. 总结这个星期都发生了什么事情

1. SOHU 的 ES 部门实际上就是别家所谓的行政部/Admin,但是 SOHU 后来改名为"员工服务"部。这个名字不错,什么时候我们的国务院改名叫"中国公民服务中心"就好了

2. 邮件中心除了李博达老大外,负责后台服务的是一位长发帅哥,如果我去年没有剪头发留到现在估计和他有一拼,负责前台Web的是一位美女,好在和 cress 同事的这几年我已经学习到女生也能在研发方面做的很出色,所以没有太吃惊。

3. 我的新老大 KCN 其实从 98 年就仰慕不已,虽然曾称为"毒中之毒",实际上为人还是很和善的。现在其 MSN 昵称为"狂招打手中",本来想把自己的名字换成"打手乙"的,不过实在拍马屁的痕迹太重,遂放弃此想法。

4. 我被分到的员工号为 bj2183,咳咳,9527 看来是 2010 年以后的事情了

5. 非正式场合里,称张朝阳为老张,老王则是王建军。正式场合里,要说 Charles。

6. SOHU 一共 12 级,老张就是唯一的12级,据说 9 级就是副总裁了。我猜 11 级是核心管理团队,10 级是高级副总裁或者日后业务扩展到国外后的地区总裁。

7. 突然发现偶还是很功利的,选了 Passport 这个项目来做就是为了快速混入 SOHU 经理队伍。果然一周下来,SOHU 几大业务线的主管以及技术负责人都认识了,包括见到了方刚(胡一郎是谁?)

8. 今天和一个牛人聊了点技术上的东西,前天看了他写的 ppt 就开始汗了。人家是 guru 级别,偶只能算 senior system programmer 吧。传说这样的人有 3-4 个。SOHU 把业务和研发分开了,所以能有提供比较好的土壤让 guru 生根发芽。BTW: 这个牛人每天下午4点来上班,长的很帅,典型的南方人脸型(azhuang那种)...

9. 这五天里,偶大部分时间是在 Outlook、Word、MSN 之间切换。偶尔用用 Maxthon 和 Excel。MSN 是 SOHU 非常重要的办公工具。

10. 今天试图在 VMware Player 上安装 Ubuntu ,结果总是失败,换成 Sarge 也不行,看来我真的要切换到 Python 上了。

11. SOHU 的笔记本和服务器采购似乎首选是 HP,估计有特殊折扣。

12. SOHU 技术研发的学生气还是很浓,从上到下都是如此。应该来自清华的人也很多罢

13. SOHU 专门有个 IA 部,内部审计。在 11 层长期占据属于邮件中心的会议室,几个人躲在里面不出来神神秘秘。大家谈论起它好像是在说锦衣卫,无可奈何。成立这个部门当然是为了通过 SO404,也算功不可没。

Topic: 
订阅 RSS - qyb的博客