Archive for the ‘不知所云’ Category

你是不是有强迫症

星期四, 七月 29th, 2010

突然发现,我竟然有强迫症倾向。症状是,常在桌面毫无意义的使用刷新功能;常在putty下重复执行cd和ls命令;总是在汉字输入后要进行输入法切换。哎,我的个神。。

当下列一条或一条以上的症状持续存在影响正常生活时,可能有强迫症:
  经常对病菌和各种疾病敏感,并毫无必要的担心;
  经常反复洗手而且洗手的时间很长,超过正常所需要;
  有时会毫无原因的重复相同的话语好几次;
  觉得自己穿衣,清洗,吃饭,走路时要遵循特殊的顺序;
  经常没有必要地反复做某些事情,例如检查门窗,开关,煤气,钱物,文件,表格,信件等;
  对自己做的大多数事情都要产生怀疑;
  经常不自觉地去想一些不愉快的回忆或想法,使人不能摆脱;
  经常认为自己的细小的差错就会引起灾难性的后果;
  时常无原因地担心自己患了某种疾病;
  时常无原因地计数或多次吟唱某一段歌曲;
  在某些场合,很害怕做出尴尬的事;
  当看到刀,匕首和其他尖锐物品时会感到心烦意乱;
  为要完全记住一些不重要的事情而困扰;
  有时会毫无原因的破坏某些物品,或伤害他人;
  在某些场合,即使当时生病了,也想暴食一顿;
  当听到自杀,犯罪或生病这类事情时,会心烦意乱很长时间,很难不去想它。

This Time For Africa

星期一, 六月 28th, 2010

昨晚在大屏幕看到一个美女,唱了首人间,还有一首歌很不错,可惜没记住名字。遗憾的是不太喜欢表演完她竟然在下边抽起烟来,有点小失望
IMAG0517

开始android之旅

星期天, 六月 13th, 2010

入手htc desire,开始android之旅:
未命名

我希望的世界

星期天, 五月 23rd, 2010

读高中的时候,“新概念”作文正是开始的时候,记忆特别深刻,第一名的作者是某校的“韩寒”,作文名字叫杯中窥人,当时就专门买了本新概念作文回来,就为了看一下这篇文章,一看才知原来自己才疏学浅到如此地步。
10年后,那个叫韩寒的成了全球最有影响力的人物之一。前几天韩寒发表的这段话我又开始记忆深刻了:
“不通过房地产或者卖地,不通过低端的加工业,一样有高GDP,而且是人均。好人不翻墙,坏人进监狱,有影响世界的文化,有别国模仿的文艺,一样干净的环境,一样自由的空气,看着被关进笼子的权力,把酒言欢,言无不尽。”

思考的时间

星期二, 五月 18th, 2010

如果一天花两个小时在公交车上度过,思考的时间就来了。我很庆幸终于有时间思考一下我原本感兴趣却没时间思考的问题了。

无语

星期五, 四月 30th, 2010

感冒,去诊所拿了一堆药,回来一看,里面赫然躺着一瓶眼药水。
tnnd!

中国移动飞信通信协议分析

星期二, 四月 13th, 2010

作者:刘华栋 2010.4.13
本文目的在于探讨学习,请勿用于非学习外的任何用途,否则后果自负。

出于某些需求,要用到手机短信提醒功能,自然还是免费的好。网上流传了很多版本关于飞信的通信协议,大同小异(基本都是基于2.0的,飞信现在2010协议版本为4.0),当飞信更新了一部分协议内容时,这些流行的协议似乎有些问题出现,最典型的就是:

旧版本飞信协议支持输入任何手机号码,只要是发送者好友,即可发送手机短信。
新版本飞信协议支持输入任何飞信号码,只要是发送者好友,即可发送手机短信。
新旧版本都支持发送登陆者自身手机号码为接收手机的短信。

如果我有100个飞信好友,莫非我要记住100个飞信号码?如果我要提供一个飞信接口给大伙,莫非大伙要记住他们好友的飞信号码?
当然,写本文的目的就在于从根本上解决上述两个问题(其实是一回事)。

通过对飞信协议多个版本进行了抓包分析,发现数据包格式没什么大的变化。唯一重要的变化是第五行:

M fetion.com.cn SIP-C/4.0
F:88888888
I: 10
Q: 2 M
T: sip:99999999@fetion.com.cn;p=640
//上面一行旧版本协议这里是:
//T: tel:13599999999
C: text/plain
K: SaveHistory
L: 4

这里就出现一个问题,要想发送手机短信,提交过来手机号不行,需要提交手机号对应的飞信号码才能识别,如何才能把手机号码转换为飞信号码就是解决问题的关键。经对新协议抓包分析,发现并不能直接从手机号码转换成飞信号码,但是中间有一个很不错的变量叫做”user-id”,每个手机号对应一个飞信号码,同样对应每个user-id(至于为什么会多出来一个user-id,我想可能是飞信公司准备把飞信号码当做一种商业资源来使用吧)。其实我们用户的真正的飞信号码是这个user-id,所谓飞信号码,无非是一个数字昵称(another nickname)而已。明白这些,问题就好办了:

1.发送接收者手机号码,抓包获取该号码的user-id
2.发送请求好友列表信息(登陆后自动完成);
3.匹配1user-id,对应的飞信号码(注意格式:fetion_num@fetion.com.cn)
4.发送飞信号码、短信内容,Done

具体代码省略,关键正则函数:

//获取飞信号码
function get_fetion_id($userid, $rst) {
    
preg_match("/ri=\"sip:(\d{6,10}+)@fetion.com.cn;p=(\d{0,6}+)\"
        user-id=
\"$userid/i",$rst, $matches);
    
//同理重构函数获取user-id
    
//preg_match("/user-id=\"([0-9]+)\"/i", $rst, $matches);
    
return $matches[1];
}

这样同样还会存在一个问题:给自己手机号码发送的时候转换不到自己的自己的user-id。解决办法也很简单,只需要在手机号码提交过来最初判断一下是否为登陆号码即可,如果是,取消所有转换,直接进行第4步骤即可发送。

纸上谈兵无用,演示:
Demo1:http://www.liuhuadong.com/phoneme
Demo2:http://labs.liuhuadong.com/cmcc/index.php(暂无,睡醒后继续)
QQREADERC927A243851272DC

加上一个百度新闻和淘宝搜索

星期六, 四月 10th, 2010

博客增加一个百度关于google nexus one的新闻,和一个淘宝搜索推广,没什么实际意义。

面试经历

星期四, 三月 11th, 2010

一直认为在这个城市里面,没有多少php人才,直到昨天面试,发现一个问题竟然是从来没听说过的名词,巨受打击。
一:康盛ucenter跨域登陆的实现方式;
http协议头部分加入P3P(第一次听说这个名词)。至于p3p是什么,阅读这里。g了下发现国内对此技术关注并不是很高,只查到网易通行证在不同域登陆时采用了此;当然还有ucenter。
二:操作ucenter中实例实现同步登陆。
这个以前遇到过,只是没有总结。面试时一直把重点放在了解决通信正常的问题上,其实这完全不是重点。回来后网上查了很多此问题的解决方案,大多都不靠谱,正确解决方案应该是这样:实例ucexample_1.php中有获取cookie函数

$_COOKIE['Example_auth']

,这里面的Example_auth没有被赋值,所以不会被synlogin同步,赋值即可。解决方法有两种,都很简单,一是修改ucexample_1.php文件,把$_COOKIE['Example_auth']换成$_COOKIE['auth'],这里的auth是另外应用的cookie设置的值;

/**
 * 获取当前用户的 UID 和 用户名
 * Cookie 解密直接用 uc_authcode 函数,用户使用自己的函数
 */

if(!empty($_COOKIE['auth'])) {
    
list($Example_uid, $Example_username) = explode("\t", uc_authcode($_COOKIE['auth'], 'DECODE'));
} else {
    
$Example_uid = $Example_username = '';
}

二是修改同步应用的uc.php,在synlogin里面新增一个cookie赋值语句:

_setcookie('Example_auth', _authcode($uid."\t".$username, 'ENCODE'));

两种方法其实是一回事。
回顾这两个问题,发现这两个问题不是一般php人能问的出来的,所以,莫非提问题的那位是康盛的人??无论怎么说,这次面试给我留下了相当深刻的印象,让我学到了一些东西,也思考到很多东西,记之。

密码保护:虎年大吉

星期三, 三月 3rd, 2010

这是一篇受密码保护的文章。您需要提供访问密码: