一早起来,机器又不亮了。
我有点纳闷,记得昨天刚摆过乌龙,关机的时候应该没有调显示器的亮度。经过反复确认,试过两个显示器,确认机器果然出了故障。最后没有办法,还是call了dell的工程师。
第二天,dell的工程师过来换了主板、显卡,机器总算OK了。难道上次是电脑自知命不久矣,所以要用如此诡秘的手段来提醒一下我?
有时候,世上就是有这么神奇的巧合。
ps:看来电脑的保修服务还是很有必要的。这个机器我已经call过dell 5,6次了。
2010年9月26日星期日
肖传国与方舟子
事情的经过网上报道很多,且不赘述。
肖传国在中国不仅不少,反而很多,只是有胆量买凶杀人的没这么多罢了。其实中国学术造假,早就到了一个令人发指的地步,既不是这段时间才泛滥,也不是只有方舟子揭露的那么一点点。
中国早已是全民造假,所以近些年来,大家才纷纷鼓噪要“诚信”,所谓缺什么补什么,大抵就是这个道理。
其实学术造假属于最容易判断的一种,远比食品、卫生、医疗等等要容易诊断的多。学术成果是一个易于鉴定的内容,而且不需要什么太复杂的手段,各大权威论文、期刊都有据可查。而且,发现学术造假,事后也易于补救,不像食品问题,除了事往往以人命为代价,难以收拾。
只是,就是这么容易做到的事情,我们也没有做到。
从夸大其词的公益广告就能看出,许多人只管结果,不管手段;好大喜功、要面子,宁要假的一箩筐,也要充个数,虽说从外人眼里,我们不过是“止增笑耳”罢了,但是能忽悠一下自己人,那已经足够了。
我们就连求真的精神都如此缺乏,何谈科学?
可惜可惜,我们这个国家肖传国太多,方舟子太少。
刷牙的时候,顺手关上水龙头,一年能省多少水?满满109个浴缸!
如果把白炽灯都换成节能灯,就可以减少上千万吨的温室气体排放,你的举手之劳,却能防止地球变暖!
把用过的纸翻过来再用一面,一百个人在一年内,就能挽救整整一条街的树……
如果每个人都能及时拔掉充电器,那么每年将可关闭两百座百万千瓦火力的发电站。
肖传国在中国不仅不少,反而很多,只是有胆量买凶杀人的没这么多罢了。其实中国学术造假,早就到了一个令人发指的地步,既不是这段时间才泛滥,也不是只有方舟子揭露的那么一点点。
中国早已是全民造假,所以近些年来,大家才纷纷鼓噪要“诚信”,所谓缺什么补什么,大抵就是这个道理。
其实学术造假属于最容易判断的一种,远比食品、卫生、医疗等等要容易诊断的多。学术成果是一个易于鉴定的内容,而且不需要什么太复杂的手段,各大权威论文、期刊都有据可查。而且,发现学术造假,事后也易于补救,不像食品问题,除了事往往以人命为代价,难以收拾。
只是,就是这么容易做到的事情,我们也没有做到。
从夸大其词的公益广告就能看出,许多人只管结果,不管手段;好大喜功、要面子,宁要假的一箩筐,也要充个数,虽说从外人眼里,我们不过是“止增笑耳”罢了,但是能忽悠一下自己人,那已经足够了。
我们就连求真的精神都如此缺乏,何谈科学?
可惜可惜,我们这个国家肖传国太多,方舟子太少。
附我们夸张了10到100倍的公益广告词:
刷牙的时候,顺手关上水龙头,一年能省多少水?满满109个浴缸!
如果把白炽灯都换成节能灯,就可以减少上千万吨的温室气体排放,你的举手之劳,却能防止地球变暖!
把用过的纸翻过来再用一面,一百个人在一年内,就能挽救整整一条街的树……
如果每个人都能及时拔掉充电器,那么每年将可关闭两百座百万千瓦火力的发电站。
2010年9月24日星期五
在Mac OS X下动态挂接内存分配的模块
在hero项目的优化过程中,我注意到Mac版本下内存使用比Windows来得多,并且运行时会有缓慢的增长。而Mac下不同于Windows的一点就是没有安装小块内存的管理模块。
前两天尝试让同事将Mac版本下挂上小块内存的管理模块tinymemmgr,但是遇到了一些问题。其它一些没有挂接tinymemmgr的模块会申请内存,交给我们的模块进行释放(似乎是carbon申请的,而释放的代码会链接到我们的主模块hero),接下来是中秋假期,这个工作就暂停了。
中秋这几天,我尝试做一下试验,看看这个优化的效果如何。因为我没有足够的源代码,所以想用动态挂接的方法去加载tinymemmgr。一个比较便捷的方法是启动时增加环境变量:
DYLD_INSERT_LIBRARIES=./tinymemmgr.dylib DYLD_FORCE_FLAT_NAMESPACE=1 启动程序 & 参数
在tinymemmgr.dylib中定义malloc、free等 同名函数即可,这些函数会替换标准库中的malloc等函数。
将tinymemmgr.dylib强行注入进去,DYLD_FORCE_FLAT_NAMEPSPACE必须设置为1,否则不能工作。因为Mac下分为两级的名字,tinymemmgr.dylib中的malloc和libSystem.dylib下的malloc其实不在一个名字空间下。
没想到的是,我测试通过了,但是hero工程却无法跑起来。花了很长的时间诊断,没有找到原因,只是知道卡在pthread的库中,我想应该是有关键的函数重名了。手册上给的警告本来就有使用了DYLD_FORCE_FLAT_NAMESPACE=1有可能导致程序无法启动。像hero这种使用了太多第三方库,尤其是有一些重量库的工程,跑不起来简直太正常了。我试验了一下,cmake也无法启动。
如果不能使用这个方法,我就只能用最后一招了,就是强行hack malloc的代码,注入指令来实现我希望的功能,但是这个方法的移植性很差。暂时没有好的办法,我打电话找陈拓琳求助,他查资料果然有一手,很快找到了一个方法无需使用DYLD_FORCE_FLAT_NAMESPACE=1这个参数即可完成注入,大概方法如下:
typedef struct interpose
{
void *new_func;
void *orig_func;
} interpose_t;
static const interpose_t interposers[] \
__attribute__((section("__DATA, __interpose"))) =
{
{ (void *) my_malloc, (void *) malloc },
{ (void *) my_free, (void *) free },
}
在tinymemmgr.dylib中定义了这个数据段以后,dyld将知道用my_malloc/my_free函数去替换其他库引用的malloc/free入口。
使用这个方法,可以优雅无损的替换malloc/free等内存管理函数。当然,仅替换这些函数是不够的,还需要处理calloc/valloc/realloc/reallocf/posix_memalign等等函数。
接下来,就是我和系统库的斗争过程。有一些模块使用了malloc_zone_malloc这些方法,这很糟糕。这意味着我并没有100%的hook所有的内存申请(虽然可以这么做,但是这样未免太霸道了,不是一个游戏程序应该做的),我显然没必要给自己找这么多事情做。于是我只好增加了判断,根据标记判断内存是我申请的,还是malloc申请的。这并不是100%可靠,至少理论上不是,这只是权宜之计,不过就测试而言够了。
中途,我一度放弃了对malloc/free的接管,转而去替换new/delete这些C++的分配操作。使用nm可以查出,这些函数的导出符号是_Znam、_ZdaPv、_Znwm、_ZdlPv古怪名字。没事,不用担心,替换即可。但是我又遇到一些问题,编译器生成的代码并不是简单的通过使用上述的函数间接的调用malloc/free去分配释放内存,在某些时候(比如析构、异常处理的时),还是直接使用了malloc。这让我很头疼,于是只好放弃这个想法,转回去hook malloc/free。
标记斗争完毕以后,遇到了新问题。Mac是64位内核,并且有时需要使用SSE2的指令,这使得它要求内存必须是16字节对齐,这可真是一个噩耗:这意味即使分配4个字节,也要给它保留16个字节的空间以便对齐。因为我hook的是malloc而不是Ogre和我们自己工程的new/delete,所以无从知道对齐的要求(Ogre和我们自己的工程应该只要做到4字节对齐即可),只能按照最严格的来 - 就是16字节对齐。在解决了对齐问题以后,工程终于可以顺利的跑起来了。
测试结果是,内存可以略有节省(估计可以节约5-10M的样子),而且不会因为小片内存的频繁申请和释放导致碎片,对渲染效率会略有提升。总的来说,增加tinymemmgr还是有必要的,不过,更大的优化应该是在材质的管理上,目前频繁申请和释放材质的方法是一种糟糕的做法,降低了执行效率,提高内存miss的几率,并且对显卡驱动造成了负担,相比之下,材质管理的优化更加重要。tinymemmgr只要挂接到Ogre上就可以了(这是使用小块内存最频繁的模块),其他模块还是算了,这样可以回避和系统模块之间的冲突,而付出的代价是微乎其微的。
前两天尝试让同事将Mac版本下挂上小块内存的管理模块tinymemmgr,但是遇到了一些问题。其它一些没有挂接tinymemmgr的模块会申请内存,交给我们的模块进行释放(似乎是carbon申请的,而释放的代码会链接到我们的主模块hero),接下来是中秋假期,这个工作就暂停了。
中秋这几天,我尝试做一下试验,看看这个优化的效果如何。因为我没有足够的源代码,所以想用动态挂接的方法去加载tinymemmgr。一个比较便捷的方法是启动时增加环境变量:
DYLD_INSERT_LIBRARIES=./tinymemmgr.dylib DYLD_FORCE_FLAT_NAMESPACE=1 启动程序 & 参数
在tinymemmgr.dylib中定义malloc、free等 同名函数即可,这些函数会替换标准库中的malloc等函数。
将tinymemmgr.dylib强行注入进去,DYLD_FORCE_FLAT_NAMEPSPACE必须设置为1,否则不能工作。因为Mac下分为两级的名字,tinymemmgr.dylib中的malloc和libSystem.dylib下的malloc其实不在一个名字空间下。
没想到的是,我测试通过了,但是hero工程却无法跑起来。花了很长的时间诊断,没有找到原因,只是知道卡在pthread的库中,我想应该是有关键的函数重名了。手册上给的警告本来就有使用了DYLD_FORCE_FLAT_NAMESPACE=1有可能导致程序无法启动。像hero这种使用了太多第三方库,尤其是有一些重量库的工程,跑不起来简直太正常了。我试验了一下,cmake也无法启动。
如果不能使用这个方法,我就只能用最后一招了,就是强行hack malloc的代码,注入指令来实现我希望的功能,但是这个方法的移植性很差。暂时没有好的办法,我打电话找陈拓琳求助,他查资料果然有一手,很快找到了一个方法无需使用DYLD_FORCE_FLAT_NAMESPACE=1这个参数即可完成注入,大概方法如下:
typedef struct interpose
{
void *new_func;
void *orig_func;
} interpose_t;
static const interpose_t interposers[] \
__attribute__((section("__DATA, __interpose"))) =
{
{ (void *) my_malloc, (void *) malloc },
{ (void *) my_free, (void *) free },
}
在tinymemmgr.dylib中定义了这个数据段以后,dyld将知道用my_malloc/my_free函数去替换其他库引用的malloc/free入口。
使用这个方法,可以优雅无损的替换malloc/free等内存管理函数。当然,仅替换这些函数是不够的,还需要处理calloc/valloc/realloc/reallocf/posix_memalign等等函数。
接下来,就是我和系统库的斗争过程。有一些模块使用了malloc_zone_malloc这些方法,这很糟糕。这意味着我并没有100%的hook所有的内存申请(虽然可以这么做,但是这样未免太霸道了,不是一个游戏程序应该做的),我显然没必要给自己找这么多事情做。于是我只好增加了判断,根据标记判断内存是我申请的,还是malloc申请的。这并不是100%可靠,至少理论上不是,这只是权宜之计,不过就测试而言够了。
中途,我一度放弃了对malloc/free的接管,转而去替换new/delete这些C++的分配操作。使用nm可以查出,这些函数的导出符号是_Znam、_ZdaPv、_Znwm、_ZdlPv古怪名字。没事,不用担心,替换即可。但是我又遇到一些问题,编译器生成的代码并不是简单的通过使用上述的函数间接的调用malloc/free去分配释放内存,在某些时候(比如析构、异常处理的时),还是直接使用了malloc。这让我很头疼,于是只好放弃这个想法,转回去hook malloc/free。
标记斗争完毕以后,遇到了新问题。Mac是64位内核,并且有时需要使用SSE2的指令,这使得它要求内存必须是16字节对齐,这可真是一个噩耗:这意味即使分配4个字节,也要给它保留16个字节的空间以便对齐。因为我hook的是malloc而不是Ogre和我们自己工程的new/delete,所以无从知道对齐的要求(Ogre和我们自己的工程应该只要做到4字节对齐即可),只能按照最严格的来 - 就是16字节对齐。在解决了对齐问题以后,工程终于可以顺利的跑起来了。
测试结果是,内存可以略有节省(估计可以节约5-10M的样子),而且不会因为小片内存的频繁申请和释放导致碎片,对渲染效率会略有提升。总的来说,增加tinymemmgr还是有必要的,不过,更大的优化应该是在材质的管理上,目前频繁申请和释放材质的方法是一种糟糕的做法,降低了执行效率,提高内存miss的几率,并且对显卡驱动造成了负担,相比之下,材质管理的优化更加重要。tinymemmgr只要挂接到Ogre上就可以了(这是使用小块内存最频繁的模块),其他模块还是算了,这样可以回避和系统模块之间的冲突,而付出的代价是微乎其微的。
2010年9月17日星期五
观世博会有感
总的来说,这是一个超级无聊的盛会。
基本上,参观者主要做三件事情:
说起来,我还真佩服盖章这个活动的设计者(据说是蒙特利尔世博会发明的),这是一个设计的极度无聊而又非常成功的游戏。正因为有了盖章,才使得那些乱七八糟的展馆也有人到此一游,正是因为有了盖章,大家排那么久的队还会觉得物有所值。
世博会大概给我留下这么几个印象:
基本上,参观者主要做三件事情:
- 排队
- 看碟
- 盖章
说起来,我还真佩服盖章这个活动的设计者(据说是蒙特利尔世博会发明的),这是一个设计的极度无聊而又非常成功的游戏。正因为有了盖章,才使得那些乱七八糟的展馆也有人到此一游,正是因为有了盖章,大家排那么久的队还会觉得物有所值。
世博会大概给我留下这么几个印象:
- 搭个台子给老百姓看热闹
- 拉动GDP
- 场馆门口的队伍长度大抵和场馆所属国家的GDP成正比
- 非洲人民的确很穷,用不起投影,只能摆摆电视和总统像
- 非洲居然还有差不多十个国家我没听说过... 好歹我也是经常看地图的人
不按系统要求下线受惩罚?
在翻阅几个网游小说的时候,发现有几个共同的特点:
非常有趣的一点是,如果现实世界某个运营商提供的游戏真的是这么设计的,恐怕早就被玩家用口水喷死了。但是为什么作者会喜欢采用这种设定?是因为饱受官方服务之苦,还是说,觉得这样更合理?更有利于情节展开?
呵呵,如果这些作者去运营游戏,不知道是一种什么情形。
- 如果强制下线(不在安全区或是指定区域),可能会回档、掉级
- 如果系统重启,没有下线可能会无法登录或回档
非常有趣的一点是,如果现实世界某个运营商提供的游戏真的是这么设计的,恐怕早就被玩家用口水喷死了。但是为什么作者会喜欢采用这种设定?是因为饱受官方服务之苦,还是说,觉得这样更合理?更有利于情节展开?
呵呵,如果这些作者去运营游戏,不知道是一种什么情形。
《盗梦空间》
这个片子给我的感觉没有传闻那么好看,那么值得琢磨。
如果用计算机的术语来理解这个影片的话,每个人的梦境相当于是网站Website,而共享梦境的方法就是VPN,潜意识就是杀毒软件。当你进入另一个人的梦境(对方有管理员权限可以为所欲为)的时候,你的杀毒软件就开始工作,防止恶意站长的入侵。
受制于技术上的缺陷,如果断开VPN连接的时候,没有按照顺序优雅的切断的话,可能会导致帐号卡死(呃,早期的那些通讯设备还真有这些毛病),所以梦境要一层一层的kick,一层层的disconnect。
大抵就是这么回事吧。
ps:这个片子给我感觉其实更像是使命召唤那种FPS游戏,有一组场景组成,包括街头、贫民窟、雪地、桥梁等等,大家在这些场景不停的战斗,如此而已。
2010年9月9日星期四
2010年9月7日星期二
令人纠结的3G上网方案
因为地处没有固定链路的环境,所以需要找到一个比较好的上网解决方案。
调研了几个运营商,提供的服务各有优缺:
另外,华为有一个上网卡不错,可以自设一个wifi基站,通过3G访问互联网。这样,只要打开这个设备,所有支持wiki的设备诸如手机、笔记本、ipad都可以轻松使用网络。这个设备支持联通的sim卡,但是没有支持电信的类似设备 - 从技术上应该允许,这个可能是政治问题。而我试用的电信天翼的上网设备(中兴的)用起来不是那么爽,通过USB提供服务,而且只有windows才支持的比较好(Mac下10.6连U盘的内容都读不出,安装也成问题),这让我感觉很不方便。
联通最让人恶心的是网通出口,这样上网速度实在是有点令人难受。另外,15G的流量限制实在有点少,这点流量能干点啥?每天随便动弹一下,都要上百M。如果要走视频这些,一天几个G就干掉了。
ps:中兴的设备做的不如华为好用啊!
调研了几个运营商,提供的服务各有优缺:
- 移动 - 移动那个3G就不能叫3G,TD一下,土大了,没法用
- 联通 - 支持WCDMA,但是限制一个月最多15G,固定出口是网通
- 电信 - 可以使用wiki & 3G,但是不知道CDMA2000漫游方面表现如何
另外,华为有一个上网卡不错,可以自设一个wifi基站,通过3G访问互联网。这样,只要打开这个设备,所有支持wiki的设备诸如手机、笔记本、ipad都可以轻松使用网络。这个设备支持联通的sim卡,但是没有支持电信的类似设备 - 从技术上应该允许,这个可能是政治问题。而我试用的电信天翼的上网设备(中兴的)用起来不是那么爽,通过USB提供服务,而且只有windows才支持的比较好(Mac下10.6连U盘的内容都读不出,安装也成问题),这让我感觉很不方便。
联通最让人恶心的是网通出口,这样上网速度实在是有点令人难受。另外,15G的流量限制实在有点少,这点流量能干点啥?每天随便动弹一下,都要上百M。如果要走视频这些,一天几个G就干掉了。
ps:中兴的设备做的不如华为好用啊!
忍无可忍,抱怨IT
今天身体恢复得好了一些,打算通过VPN上公司内网看看。
前几天我试图上公司的VPN,但是未遂,我走之前刚好IT更换证书,更换以后号称好了,但是我当时没有试验。
结果果然不顺利。
首先,Tunnelblick(OpenVPN 客户端)报告了一个错误:“can't find GID 'adm'... ”,然后就退出了。
我打电话找IT求助,IT告诉我不好查,因为我用的是Mac系统,让我先切换到Win7下先用着。而我所有的办公环境都在Mac下,切换到Win7我实际上无法工作。我研究了一会,将adm组修改为admin,好了。
登录上VPN,感觉速度很慢(wiki、jira速度不佳,邮件根本无法读取),我不能肯定是我3G的问题还是其他原因,打电话给IT,IT说之前陈拓琳养病的时候也是用3G,速度很慢,最后不知道怎么就好了,可能是因为路由的缘故。OK,我先使用另一个VPN打底,从美国的VPN绕回来,在这个基础上另架一个公司内的VPN。
再收邮件,感觉速度还是很慢,我看了一下,邮件有1942封,估计大部分都是wiki、jira、OA等通知性邮件。我打电话给IT,让他们帮我删除清理一下。结果IT给我一个URL,让我自己上去删除,我说我这么卡,怎么操作?IT说不知道我哪些邮件是重要的,不好处理(我不是说了是通知邮件么?再说,能不能先备个份?)
此刻我实在忍无可忍,手术后积累的病痛,早晨换药的折磨,之前调整系统浪费的时间将我的耐心全部消磨干净。让我狠狠的抱怨了IT一顿:
想办法解决问题,而不要只是解释,这才是王道。所有的服务部门都应引以为戒啊!
前几天我试图上公司的VPN,但是未遂,我走之前刚好IT更换证书,更换以后号称好了,但是我当时没有试验。
结果果然不顺利。
首先,Tunnelblick(OpenVPN 客户端)报告了一个错误:“can't find GID 'adm'... ”,然后就退出了。
我打电话找IT求助,IT告诉我不好查,因为我用的是Mac系统,让我先切换到Win7下先用着。而我所有的办公环境都在Mac下,切换到Win7我实际上无法工作。我研究了一会,将adm组修改为admin,好了。
登录上VPN,感觉速度很慢(wiki、jira速度不佳,邮件根本无法读取),我不能肯定是我3G的问题还是其他原因,打电话给IT,IT说之前陈拓琳养病的时候也是用3G,速度很慢,最后不知道怎么就好了,可能是因为路由的缘故。OK,我先使用另一个VPN打底,从美国的VPN绕回来,在这个基础上另架一个公司内的VPN。
再收邮件,感觉速度还是很慢,我看了一下,邮件有1942封,估计大部分都是wiki、jira、OA等通知性邮件。我打电话给IT,让他们帮我删除清理一下。结果IT给我一个URL,让我自己上去删除,我说我这么卡,怎么操作?IT说不知道我哪些邮件是重要的,不好处理(我不是说了是通知邮件么?再说,能不能先备个份?)
此刻我实在忍无可忍,手术后积累的病痛,早晨换药的折磨,之前调整系统浪费的时间将我的耐心全部消磨干净。让我狠狠的抱怨了IT一顿:
- 连我这个懂点计算机,尤其对通讯方面从事过专业工作的人,折腾得都这么痛苦,那些不懂计算机的人怎么办?自动化系统对他们究竟是帮助还是折磨
- 我们需要考虑的是如何给团队贡献价值,而不是玩弄技术(我们的IT技术水平倒是相当不错)
- 如果IT部门不能给其他部门提供实质性的帮助,其他部门怎么认可IT的工作,IT如何提高自己部门的地位,提高待遇
想办法解决问题,而不要只是解释,这才是王道。所有的服务部门都应引以为戒啊!
石器时代的互联网络应用
互联网发展到了今天,已经有几十年的历史了,但是,以其易用度来说,我认为互联网应用只能算是原始的石器时代。
先描述我现在采用的上网方法:
第一层:笔记本 -> Wiki -> HUAWEI Router -> WCDMA -> 固网 -> 互联网
第二层:Reliablehost(翻墙VPN) -> 美国某服务器 -> 互联网
第三层:OpenVPN(公司内VPN) -> 公司服务器 -> 公司内网
之所以如此有物理因素,有政治因素,也有安全因素。
毫无疑问,能够把这一切都搞明白,平且顺利配置妥当的人并不是那么多,这给我们实际应用带来了很大的麻烦。上面只给出了网络结构,另外还有一大箩筐的各种证书(各银行、淘宝、VPN等)。而且,一旦有一个风吹草动,我可能就需要断开所有链接,重新恢复一次(否则DNS很容易出错),并且导致正在连接中的服务被终止(比如游戏、QQ)。
我期望的生活方式是这样的:
未来,互联网除了增加新的应用,增加基建设施水准,还需要提高易用性。这应该是一个具有广阔发展可能的领域。
先描述我现在采用的上网方法:
第一层:笔记本 -> Wiki -> HUAWEI Router -> WCDMA -> 固网 -> 互联网
第二层:Reliablehost(翻墙VPN) -> 美国某服务器 -> 互联网
第三层:OpenVPN(公司内VPN) -> 公司服务器 -> 公司内网
之所以如此有物理因素,有政治因素,也有安全因素。
毫无疑问,能够把这一切都搞明白,平且顺利配置妥当的人并不是那么多,这给我们实际应用带来了很大的麻烦。上面只给出了网络结构,另外还有一大箩筐的各种证书(各银行、淘宝、VPN等)。而且,一旦有一个风吹草动,我可能就需要断开所有链接,重新恢复一次(否则DNS很容易出错),并且导致正在连接中的服务被终止(比如游戏、QQ)。
我期望的生活方式是这样的:
- 一个可以上网的设备直接就可以上网。不需要知道各类莫名其妙的连接、协议,不需要时常维护
- 有一个固定设备的证书,可以访问所有的安全受限区域
- 固定证书具有不同级别的密码,用于访问不同级别的安全受限区域
未来,互联网除了增加新的应用,增加基建设施水准,还需要提高易用性。这应该是一个具有广阔发展可能的领域。
味如嚼蜡
在我了鼻炎相关的手术以后的恢复期,吃什么东西都没有味道。这一段时间我真是亲身体验了什么是“味如嚼蜡”。很难想像咸、酸、辣、苦都丝毫不能体验的情形。任何固体食物只有两种感觉,软或是硬。
人们往往在体验到不健康的时候才会格外的重视健康,而之前不论怎么的“重视”,都是停留在言语或是上不充分的行动上。
其实,人们在很多方面都如此。没有体验,就只会根据自己的理解去想像,而这点和事实的偏差是很大的。由于人们的经验并不匹配,这给人们的交流沟通带来了很大的障碍。也就是我们常说的“要换位思考”。实际上,换位实在太难了,因为经验背景不同。
一个可行的模式应该是,人们都在积累经验的时候,通过类似“通感”的方法去理解其他领域,进而能够达成沟通的基础,可以更好的沟通。只不过如果这样,缺乏阅历的人和有阅历的人沟通就变得格外困难了(类似代沟)。
若一个人能够在很小的年纪,用很小的阅历经验,就理解比自己经历丰富得多得多的哪些人,大概就是真正的天才吧!
有感而发。
人们往往在体验到不健康的时候才会格外的重视健康,而之前不论怎么的“重视”,都是停留在言语或是上不充分的行动上。
其实,人们在很多方面都如此。没有体验,就只会根据自己的理解去想像,而这点和事实的偏差是很大的。由于人们的经验并不匹配,这给人们的交流沟通带来了很大的障碍。也就是我们常说的“要换位思考”。实际上,换位实在太难了,因为经验背景不同。
一个可行的模式应该是,人们都在积累经验的时候,通过类似“通感”的方法去理解其他领域,进而能够达成沟通的基础,可以更好的沟通。只不过如果这样,缺乏阅历的人和有阅历的人沟通就变得格外困难了(类似代沟)。
若一个人能够在很小的年纪,用很小的阅历经验,就理解比自己经历丰富得多得多的哪些人,大概就是真正的天才吧!
有感而发。
3G应用的前景
如果说GRPS数据通讯方式是2G,相当于有线链路的modem,那么号称3G的WCDMA应该到ADSL这个水准才能有真正质的变化。
不过,就目前我体验的这段时间来看,感觉WCDMA不足以有这么大的提升。
GRPS的缺点主要有两个:
所以,3G应该可以给目前的互联网应用带来很大的变化和更广阔的前景,但是和传统应用应该还是有区别的。更多集中在在于资料共享,中等延迟的交互。比如新闻、邮件、网上服务、微博等,网络游戏等应用看样子不行。而视频这个3G主打的业务,至少需要再经过一段时间的基础设施的建设才能普及。
未来的数据通讯接入方式显然是无线化,但是3G不一定能够承受起这个责任。目前有线通讯最后一公里在可以预见的将来会进入百兆带宽时代,无线通讯速度要能达到10M才能跟上网络服务的主流,否则有线和无线还是要像现在这样,分道而治。
ps:中国将3G分为两套标准,WCDMA & TD-SCDMA,这个政策虽说对联通有优势。但是也有可能成为劣势,这种不兼容的竞争结果只怕是一死一活,最终用户面对的还是垄断。
不过,就目前我体验的这段时间来看,感觉WCDMA不足以有这么大的提升。
GRPS的缺点主要有两个:
- 带宽不够(因为许多网站都需要提供手机浏览版本)
- 延迟太大(需要大量交互的服务会很痛苦)
- 表面上带宽够了,但是如果一个基站访问的客户端太多,通讯量还是有可能饱和
- 延迟还是不小
所以,3G应该可以给目前的互联网应用带来很大的变化和更广阔的前景,但是和传统应用应该还是有区别的。更多集中在在于资料共享,中等延迟的交互。比如新闻、邮件、网上服务、微博等,网络游戏等应用看样子不行。而视频这个3G主打的业务,至少需要再经过一段时间的基础设施的建设才能普及。
未来的数据通讯接入方式显然是无线化,但是3G不一定能够承受起这个责任。目前有线通讯最后一公里在可以预见的将来会进入百兆带宽时代,无线通讯速度要能达到10M才能跟上网络服务的主流,否则有线和无线还是要像现在这样,分道而治。
ps:中国将3G分为两套标准,WCDMA & TD-SCDMA,这个政策虽说对联通有优势。但是也有可能成为劣势,这种不兼容的竞争结果只怕是一死一活,最终用户面对的还是垄断。
订阅:
博文 (Atom)