qyb的博客

Kata海滩 5/3


Kata Beach Resort 有 5 个幼儿电视频道,迪斯尼的英语、泰语各一个频道,一个尼克动画频道,一个少儿综合频道以及一个少儿电影频道,简直就是儿童电视迷的乐园。尤其是对于我们家达达而言,根本不管英语还是泰语,第一天晚上严重打乱了作息规律。

在 Agent 那里已经登记了宾馆信息,一大早我们就在旅馆前厅等候,8:20 左右就有一辆小面包开过来接我们去 elephant trekking 地点。

象背上架一个木制的椅子,我们一家三口就挤在椅子上。驭者骑在象的脖子上吆喝着指挥其前进。所谓 trekking 其实就是骑象上山下山,细节就不必说了。这个驭者挺好的,还会说几句中文。问起来说是在昆明待过,而且在上海呆过一年。他给我演示在橡胶树上割一刀,橡胶汁就慢慢渗出来,然后他指给我们看那棵树上已经凝固的橡胶,让我们抓在手上弹弹。路上他给我们揪了三根大象毛,每人做了一个套在手指上的圈圈;并且主动要了照相机给我们和大象合影。感觉这里的旅游服务业还是很专业的。

乘车返回旅馆的路上我实在无聊,于是和两个看起来用网易拍之类产品的老外 mm 主动搭讪。问从那里来;英格兰。再问哪个城市;伦敦。实在没有问的了,就问喜欢足球吗;喜欢。伦敦球会我就会知道阿森纳和切尔西,热刺究竟怎么发音有些拿捏不定。于是问喜欢这两只球队的哪一只;喜欢曼联。呵呵,总算找到共同语言了,接下来问她们怎么看待美国人的入股......到这时发现复杂的句式交流起来还是不行,她们听不懂我问的问题。我只好把我认识的曼联名字挨个念一遍,说到鲁尼的时候双方均表示遗憾,一个 mm 还给我比划骨折的具体部位,然后一起感叹英格兰的世界杯前景不妙。

这天下午终于来到海滩边上。Kata 的沙很细,沙滩上没有贝壳,这点和后来在皮皮岛的沙滩形成了鲜明的对比。Kata 的浪比较大,旅游手册上说 Kata 是普吉岛上有限两个可以玩冲浪的海滩之一,如果有钱有时间,可以在这里上冲浪课,尝试一下平常不可能接触的运动。达达第一次接触大海,先是在沙滩上堆城堡,然后就享受在海水里浸泡了。

由于是我头一次在日光下爆晒,没有任何经验,就在大日头下呆了半个小时,上身就被晒成了煮熟的大虾状,一直等到回北京的几天后,才开始慢慢的掉皮。

晚饭有一道菜是黄咖喱和蟹肉一起煮,非常好吃。终于开始享用这次假期了...

Topic: 生活

曼谷CBD 5/2

行程计划 2 日下午2:30的飞机去普吉岛,所以上午也不能安排时间不可控的活动,只好在 Arnoma 附近逛街。

Arnoma 左近除了 Big C 外,街对面就是 Central World Plaza(以前叫世贸中心,World Trade Center,可惜当时还在装修中)和伊势丹。从 Arnoma 一楼餐厅临街的大落地玻璃窗向外看去,是小汤哥最新的 M.I.Ⅲ 广告,还有远远高楼顶上的巨幅 Johnnie Walker 商标,提醒人们这里实际上是亚洲最具活力的中心城市之一。

从 Arnoma 出来沿街向南走几分钟,十字路口处就来到曼谷另一处有名的佛教供奉地:四面佛。虽然在导游手册上把四面佛列为和大皇宫卧佛寺晓寺同一级别的观光地点,但比较起来是简陋的不可救药 —— 方圆仅20米(可能还不到)的围栏,中间是一座佛龛,没有任何建筑物为其挡风遮雨,也没有门票。我们观访的时候,佛龛四面都是用布幔挡着,看不见真身(后来知道是因为前不久被人毁坏)。由这里经过的行人几乎都是匆匆向它双手合十口中祝祷一句然后继续赶路。

Siam,暹罗的音译,虽然现在这个国家改名为泰(Thailand),但 Siam 仍然在广泛使用,好比我们现在仍在用"汉"甚至"唐"来称谓。我们在 5/2 日曼谷逛街的重点就是 Siam Square 的 Siam Paragon。因为 Siam Paragon 介绍说有东南亚最大的海底世界,才决定到那里。10:00 正式营业,杀进去的时候发现一楼就是"大食代",觉得倍儿哏。基本上类似赛特国贸这样的商城,东西都比较贵。在小孩物品那层看到一些好玩的东西,比如圣斗士的圣衣,小孩的游戏机,以及一个连我都认为极具可逛性的文具店。本来在这个文具店里计划回头买不少东西,可惜时间不够,再没有机会回到这里。

午饭就是在这里的大食代解决的,发现这种最为正规的餐馆最后结账都要再计 10% 的服务费和 7% 的税。在这里的泰华农民银行的 ATM 机上发现它支持我们的银联卡取钱。

再次体会到 WTS 的好处,我们就在酒店大堂等着,然后就有人来问是不是 WTS 的顾客,挺准时,接着把我们接到机场。从曼谷到普吉很快,1 小时后就在普吉降落了。下了飞机又是 WTS 把我们从机场运到了 Kata Beach Resort

这回 Kata Beach Resort 的 Doorman 很卖力的将我们的行李送入的房间后,开始滔滔不绝的介绍起客房内的设施,突然停了下来,似乎在等待什么。我反应了一会才明白是在等小费,正准备掏钱,结果这个家伙等待得不耐烦认为我没有会意,于是继续介绍贴在房门背后的逃生通道。我忍无可忍赶紧塞给他 20 铢和一句"Thank you",然后将其锁在门外,这是我这辈子第一次给别人小费。

在普吉岛上除了下海晒太阳,如果还想别的什么旅游项目就得自己出门找 Agent。这里到处都是挂着"Tourist Information"的小店,由于我们携带幼儿一名,不可能选择特别复杂长时间的项目,最后找的是最简单的"elephant trekking"+"young elephant show",我们宝贝太小免费,大人每人 850 铢,说实在的也不便宜。试图讲价,问有没有 discount,结果没有讲下来(当时也是时间很晚了,而且订的是第二天一大早的项目,Agent 肯定不会让步)。

出发之前在国内只兑换了 5000 铢,算上 elephant trekking 的费用的话身上就所剩无几了。正好这里唯一的 ATM 机上可以使用银联卡,于是用我的长城借记卡再次取了 5000 铢。

我们预定 elephant trekking 的那家 Agent 主业是网吧。每分钟1铢,15分钟起....比中国的网吧贵多了.

普吉最有名的海滩是 Patong Beach,因此人也多,也据说有些开发过度,酒吧等娱乐场所很多。本来我们也是预定 Patong 的旅馆,实在是因为没有订到才选择 Kata。Kata 也自有其好处,人少,真要是度假,还真是应该去这种人少的地方,而且已经有了一家 7-11 便利店,我觉得足够了。

 
Topic: 生活

晓寺 5/1

"塔的重叠感和重复感几乎令人窒息。充满色彩与光辉的高度层层积累而上,越向塔顶越细,仿佛是多重的梦从头上压下来似的。陡立的台阶的垂直面,也布满了花纹,每层都用浮雕的人面鸟支撑着。一层一层尽管被多重的梦、多重的期待、多重的祈愿压毁,仍然不断地积累,向天空徐徐逼近而形成一座绚丽多彩的宝塔。" —— 《晓寺》,三岛由纪夫

不愧为旅游城市,曼谷的机场和旅馆放置了各种版本的地图导游手册。很早就起来研究印制精美的地图,大皇宫(The Grand Palace)肯定是要去的,遂在大皇宫附近寻找还有什么可以当天一并游玩的古迹。该地图由英文日文两种语言标注,"晓の寺"引起了我们的注意,这可不就是三岛的《丰饶之海》里面的晓寺?从地图上看晓寺(The Temple of Dawn)离大皇宫仅有一河之隔,于是决定游览大皇宫后就去晓寺看看

地图上很明显,曼谷的老城区依湄南河而建设,而商业区,也正是我们下榻的 Arnoma Hotel 所在的地方,则位于老城区正东很远的地方。看得我这个来自北京的中国人很郁闷,如果一开始毛爷爷就决定从通州开始建设新北京就好了,而如今只能看看北京二环内一点点的被破坏殆尽。

早餐是免费提供的(后来发现我们住的所有旅馆的早餐都相当丰盛,而且提供到上午10点,其实相当于北京时区的11点,如果利用得当,可以节省一顿午饭钱),在开始品味异国风味的水果时"给小费"这个念头突然浮现在脑海中,我赶紧同老婆讨论这个问题,她告诉我出发前就网上搜寻到的资料如下:泰铢纸币最低面额是 20,硬币最高面额是 10,给小费 20 即可,但不能更低,因为硬币是打发乞丐的。BTW:目前大致的汇率为 5 泰铢兑 1 元人民币。

计划从酒店打车去湄南河水上轮船的起点站,然后坐船去大皇宫,一路上还可看看河流沿岸的风光。出租车司机用中文和我们交谈,自称是潮州人,一开始竭力毛遂自荐直接把我们带到大皇宫,遭冷遇后把我们拉到了一个小码头,这里因为都是小船所以坐船很贵,虽然水上BUS的大码头离这里不远,但是还是绕了相当的路途才走到。后来我们总结如下:如果私营服务业者用中文和你说话,肯定会宰你一刀。

大皇宫门票很贵,250 泰铢,实际也还合理,毕竟人家的地位相当于北京的故宫。穿短裤者不得入内,但进门的地方提供了给游客免费准备的长裤和长裙,交纳 100 铢压金即可。

大皇宫内玉佛寺(护国寺?)内供奉的翡翠玉佛对于我来说没有任何吸引力,反而是绘制《罗摩衍那》的长廊让我产生了强烈的兴趣,可惜旅行之前没有做好功课,根本不知道画的是什么内容。除此外我觉得吴哥窟的模型也十分不错。大皇宫内时常可以见到一些明显是中国风格的泥塑,比如类似吕洞宾造型的人物,捧桃的猴子,据老婆胡诌说是因为曾有中国人当过泰国皇帝的缘故。

从大皇宫出来后找了一个餐馆,首次拿起满是英文的菜单点菜,因为临行匆忙,甚至连本英汉词典也没有准备,顿时有种哭笑不得的感觉。除了对捧着的东西叫 menu 这个单词异常熟悉以外,别的什么 prawn/fried 这样的单词都是日后慢慢自己悟出来的。

泰国有种叫 shakes 的饮料,可能是因为天气炎热,当地人把果汁和冰渣混合制成了各种各样的 shakes,饭馆里通常价格在 50-70 铢之间,后来基本上每顿饭我们都会要上一份 shakes。

第一顿饭下来就发现泰国物价实在是便宜,这个餐馆看起来还算不错,而且在著名旅游点大皇宫附近,但我们4大人1小孩吃下来只要 525 铢。事实上从这里出租车价格也能看出来,起步价 2 公里 35 铢,然后每次蹦字都只有 2 铢。

午饭后摆渡到对岸,直奔晓寺。在围绕晓寺的高塔拍了许多照片后实在受不了午后的太阳灼射,打车回旅馆午睡。

旅游Tips:应该在日出的时候首先到晓寺参观,然后到对岸去大皇宫,卧佛寺,这样的组合更合理一些。

晚上出去吃饭的餐馆的领班是泰国第二个用中文和我们对话的,结果是吃到了一顿巨不划算的饭。可能并不怪那个餐馆,因为我们住的旅馆附近本来就是商业区,试想在北京国贸附近想吃一顿经济实惠的晚饭对旅游者来说也是一件很困难的事。

晚饭后去旅馆隔壁的 Big C —— 类似家乐福或沃尔玛的一家大超市。发现 DQ 冰激凌超级便宜,总结:如果要在 Arnoma 附近吃饭想省钱就去大商场找"汉堡王"这样的快餐店或者"大食代"这样的地方。

 
Topic: 生活

风兰假期 4/30

老婆的密友之一 A 的老公 B,两年前在泰国工作了几个月,对当地的风土人情算是有一定了解;这次5/1邀请我家一起去泰国度假,遂欣然前往。

风兰假期Royal Orchid Holidays)是泰航推出的一项特别服务,除了机票之外,还包括了旅馆预定,以及 WTS 的机场接送服务.

在北京机场登机的时候就体会到带小孩的好处,可以和头等舱的乘客率先登机,不晓得国航有没有这样的体贴,反正从一开始就对泰航增加不少好感。抵达泰国的时候已近午夜,航班给每位乘客准备了一朵紫色的兰花,风兰之旅就这么开始了。

设想你地处异国他乡,从机场到酒店实在是不那么可靠的一段路——机场通常建在城市远郊,有高速费过桥费,既要和司机讨价还价,还要担心他给你绕远,甚至谋财害命也不是没有可能。而这次泰国之行 WTS 就解决了我们从机场到酒店的接送问题,由于我们一行是 5 个人,所以还是配置不错的丰田小面包车,非常舒适。

一出曼谷机场大楼,就吃了一惊,满眼看去都是日本车,丰田的牛头标志似乎无所不在(后来发现这里的出租车基本上都是花冠/Altis或者limo),在跟随 WTS 的司机穿梭在停车场之间的时候,只看到两辆非日本车——都是奔驰。日本车+奔驰,这就是我对泰国的第一印象。

到达 Arnoma Hotel 时已经是疲惫至极,checkin 的时候还收了每个房间 100$ 的押金。服务生帮我们把行李送到门口后,我昏头昏脑的将行李从他手里一把夺下扔进房间内,然后毫不犹豫的关上房门,到头大睡。

只剩下一个等待小费的服务生讪讪离去,2006年4月30日到此结束。

 
Topic: 生活

对面的男孩看过来

前天在出租车上,听到改编的《对面的男孩看过来》,顿时陷入 yy 中,想像如下唱歌场景:

dada:对面的男孩看过来
dada:看过来看过来
dada:这里的表演很精彩
data:...
data:不要被我爸爸样子吓坏
qyb:其实我,很可爱
....

现在她喜欢看《蚯蚓日记》,里面有一幕:
小蚯蚓走过父母的结婚照前,那照片上是两只蚯蚓在互吻,小蚯蚓撇嘴说:"恶心"

dada 学会"恶心"这个词后乐不可滋,我和老婆就故意在她面前碰碰嘴,她就大笑着说"恶心"

 
Topic: dada

当用 Python ctypes 模块调用动态链接库,如何传入一个结构体指针

最近用 dv2xvid 这个东东很多,上两周几乎每天都用它跑一个晚上压缩2个小时的视频。于是又萌发了把它改进得更通用的念头。

目前 dv2xvid 有一个很严重的问题,就是只支持 xvid-1.1.0-beta2 的压缩。而事实上目前大家用的最多的是应该都是正式版本,比如 1.0.3 或者 1.1.0 之类。如果想能支持更多版本的 xvid codec,就必须能在压缩之前判断 xvid 的版本。

恶心的是安装的 xvid 的目标文件没有 Windows Dll 的版本属性,查了半天,调用 xvidcore.dll 里面的一个函数可以获得 xvidcore.dll 的版本号

  1. #include "xvid.h"
  2.  
  3. {
  4.   xvid_gbl_info_t info;
  5.   HINSTANCE m_hdll;
  6.  
  7.   memset(&info, 0, sizeof(info));
  8.   info.version = XVID_VERSION;
  9.   m_hdll = LoadLibrary(XVID_DLL_NAME);
  10.   if (m_hdll != NULL) {
  11.     ((int (__cdecl *)(void *, int, void *, void*))
  12. GetProcAddress(m_hdll, "xvid_global"))(0, XVID_GBL_INFO, &info, NULL);
  13.    
  14.    printf("xvidcore.dll version %d.%d.%d (\"%s\")",
  15.                 XVID_VERSION_MAJOR(info.actual_version),
  16.                 XVID_VERSION_MINOR(info.actual_version),
  17.                 XVID_VERSION_PATCH(info.actual_version),
  18.                 info.build);
  19.  
  20.     FreeLibrary(m_hdll);
  21.   } else {
  22.     printf("xvidcore.dll not found!");
  23.   }
  24. }

如果在 python 里面做到这个事情,可以通过 ctypes 模块来完成。但查遍 ctypes 有关的中文文档,都没有关于怎样在函数中传入结构体指针的说明,只能自己 google 之,后来发现应该这么来做:

  1. from ctypes import *
  2.  
  3. ### 定义结构体
  4. class xvid_gbl_info_t(Structure):
  5.     _fields_ = [("version", c_int),
  6.                 ("actual_version", c_int),
  7.                 ("build", c_char_p),
  8.                 ("cpu_flags", c_uint),
  9.                 ("num_threads", c_int)]
  10.  
  11. XVID_GBL_INFO = 1
  12.  
  13. dll = cdll.load("c:\\windows\\system32\\xvidcore.dll")
  14. xvid_global = dll.xvid_global
  15.  
  16. ### 构造 pinfo 结构体, 然后赋值
  17. pinfo = xvid_gbl_info_t()
  18. pinfo.version = ((((1)&0xff)<<16) | (((0)&0xff)<<8) | ((0)&0xff))
  19.  
  20. x = c_voidp(0)
  21. y = c_voidp(0)
  22. ### 用 byref 传入指针
  23. if xvid_global(x, c_int(XVID_GBL_INFO), byref(pinfo), y) == 0:
  24.     major_version = (pinfo.actual_version>>16)&0xff
  25.     minor_version = (pinfo.actual_version>>8)&0xff
  26.     patch_version = (pinfo.actual_version>>0)&0xff
  27.     print major_version, minor_version, patch_version
  28.     print pinfo.build
  29.     print pinfo.cpu_flags
  30.     print pinfo.num_threads
  31. else:
  32.     print "ERROR"

另:最近一周: qyt 完成了 blog 搬家, www.dup2.org 已经通过 ICP 备案. Logo 和 favicon 也正在热情实施中...(不得不承认我弟比我有美术天赋)

Topic: 技术

Mozilla Relicensing Complete

当我昨天(4月1日)从订阅的"mozillaZine feedHouse"读到这条新闻时,第一反应就是"这个应该是 mozilla 的愚人节玩笑了",Mozilla 以罕见的tri-license发布,开什么玩笑。

但是从 Mozilla 许可证网页以及其 FAQ 上,他们似乎是认真在做这件事情耶。所以到今天(4月2日),我想可以确认这是真真切切的事件了。

把原有的代码转换License是一件无比麻烦的事情,对于哪些在 NPL 条款下的贡献代码而言还轻松些,因为 NPL 确保 mozilla 可以把贡献代码按任何许可协议发布,但对于那些以 MPL,或者 MPL/GPL dual-license 的贡献代码而言,就必须一个一个的取得贡献者的许可......于是 "After four and a half years, 445 contributors and 28522 files",mozilla 终于完成了这一步.

现在,用户可以选择:
1. MPL,将 mozilla 代码和自己的代码混合在一起编译出专有软件,只需发布出 mozilla 相关的那部分代码就可以
2. LGPL,将 mozilla 代码和部分LGPL代码(可能自己编写)编译出一个链接库,然后配合自己的专有软件发布
3. GPL,将 mozilla 代码和 GPL 代码或者库混合在一起发布新的软件,比如在地址栏或者搜索框里调用 readline 做编辑..

总之,在这样的授权下,mozilla 期望,"making our code available to as wide a group of developers as possible, as part of our mission to promote choice and innovation on the Internet. We hope that this will enable people to build even more cool and innovative products."

 
Topic: 技术

青鸟(The Blue Bird)

周六上午,全家一起去东城区少年宫剧场看青鸟。演出大约1小时20分钟,我家宝贝能安安静静全神贯注看完,着实难得。这是她第二次去剧场了,上一回是在中国儿童艺术剧场看小蝌蚪找妈妈

说来惭愧,这是我第一次上剧场。去现场的感觉很好,演员和观众能有很好的互动,这点比电影电视强多了,打算怎么时候去看相声小剧场去。

青鸟的作者后来获得了诺贝尔奖(但肯定不只是因为《青鸟》的缘故)。从网上查到的信息看,原文情节和这里改编后的儿童剧还是有很大出入,比如"鸽子变成青鸟"这个情节就被改了,料想这群小学甚至学前的孩子是无法理解"追寻的目标其实就在身边"这个主题。

在演员和小观众们的互动也颇有趣,孩子们都能理解勇敢、团结、正义这样的100%正面理想,但是在享乐是否就是幸福的问答中,正反两方的比例大概是一半对一半..hehe.

现在我们家宝贝已经把"蝌蚪"当作儿童剧的代名词,时不时就说要看"蝌蚪",以后看来会多去。其实门票比电影大片便宜多了.

 
Topic: 生活

精准的 B-plan

周四下午和一个做 SIP 的公司的老板谈事情,中间他感叹起技术 forecasting(新海龟和老海龟的重大区别就是在日常言谈中夹杂英文单词的数目,随着回国年头的增加,运用母语的能力会越来越自如,hoho). 说最佩服的就是邓峰, 从 97 年创业到 03 年上市,产品研发和推出顺序是完全按照当初的 business plan 里面执行的,虽然商业上起起落落,未免和 b-plan 有所出入,但这份技术前瞻能力却着实了得。

听到该事迹后,我和讲述者都不约而同发了一会儿呆,沉浸在对牛人的无限崇拜和追思之幽情中.

Topic: 商业
订阅 RSS - qyb的博客