分类 编程相关 下的文章

今天下班后到超市买菜,付钱时,收银机“档机”了。那超市经理不断地打电话,从其对话中听到貌似是断了网络而引起的。就在等待付钱的时候,看着他们一堆人在乱搞。

说说那收银机吧。一开始以为它只是由一个显示器、键盘和钱柜(就是可以自动弹出来的那个小铁盒)组成。但是看到收银员拔网线时,居然从柜子底下抽出个电脑主机,那我就明白了--这就是一台完整个的电脑,只是多了钱柜这个外设。

然后看到收银员在操作时,退出了那个收钱软件,屏幕显示熟悉的Windows界面(应该是640×480的分辨率)。从图标来看应该是Windows 2000或者Windows ME。那整个收银机系统就明显是个古老的C/S解决方案,而且是基于Windows平台的。

该解决方案的优点是成熟稳定,还有价格便宜(古老的机器、盗版的软件)。一想到这,我就鄙视那它了。但是它有个功能我没有注意到,就是:由于基于C/S,所以客户端可以先在本地保存交易记录,然后手动上传到服务器。该功能的应用场合就是像现在,网络故障,或者服务器出了问题的时候,仍然可以记录交易,确保超市的交易不受影响。

其实技术和设备主要是为了满足应用而存在的,而在应用中只要找到满足需求的解决方案就可以了。就像我的表姐夫那样,配了台四核电脑,加上SLi双显卡,还有Apple键盘、24寸16:9宽屏液晶……但我经常看到他只是拿着台上网本来上网。

这几天看到网上的报道说,国产的“龙芯”CPU终于获得MIPS公司的授权,可以贴上“MIPS-compatible”标签,还支持Android操作系统。据说这授权费大约500万美圆左右(由此估计Intel公司的x86架构授权费会是个天价)。网上对这事情的评价褒贬不一。其中,有批评的言论居然说“CPU核自主产权战略失败”!

我觉得,从前景来说,是好事。首先,支持MIPS架构,就有了Linux操作系统的支持(这包括我天天在用的Android),然后就拥有了一大堆开源软件可用了。虽然说MIPS架构是别人的东西(主要是指令集系统),但毕竟“龙芯”是中国人自己研发的,(根据资料来看)就像是基于C语言标准的编译器的不同实现一样。如果“龙芯”是完全自己做的指令集,那操作系统要自己研发,驱动、应用软件等一大堆东西也要自己去做。这样不仅给自己添麻烦,还与世界脱节。最重要的是推广起来将会十分艰难(现在Linux难推广,其中最大的原因也是软件不足)。至于为什么是MPS,而不是x86、ARM、PowerPC或其它,别人已经说得很清楚了。相关的详细说明如下:(来自龙芯官方论坛)

胡伟武关于计算所购买MIPS结构授权的几点说明
http://www.lemote.com/bbs/viewthread.php?tid=23935&extra=page%3D1

关于龙芯拿MIPS授权的再一点理解
http://www.lemote.com/bbs/viewthread.php?tid=23886&extra=page%3D2

今年年头看到“龙芯”产品化后(上网本和迷你主机),看到其功耗非常低,于是想买个来做“二奶机”,主要是挂P2P和做移动存储。但售价还是比预想的高,加上购买不方便,而且同一价位可考虑的有ATOM和Nano这两个x86的CPU。后来没心思想这事情,那“二奶机”的想法便不了了之。

最后,希望胡伟武教授能够继续努力!

PS. 近来工信部出了个“绿坝”河蟹软件,据说花了纳税人3000万人民币。这软件的评价嘛,大家有目共睹,而且还无视别人开源软件的许可证……唉,让我无奈得无话可说……

这个星期五(2009-06-12),部门组织了一次WebService的学习。花了将近3个小时的培训中,竟不知其所云,只好用G1上网查资料。一看人家的资料,立马就把HTTP、SOAP、WSDL、UDDI等技术或标准理解清楚了。

首先是WebService,它是一种面向服务的架构的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用服务可以互操作(摘自http://zh.wikipedia.org/wiki/Web%E6%9C%8D%E5%8A%A1)。最简单的理解是提供XML数据的Web服务,其XML数据是基于WSDL标准的。

接着是UDDI,找到不错的文章《理解UDDI》,原文地址:[http://www.ibm.com/developerworks/cn/webservices/ws-featuddi/

该文章有个很清晰的图,解释了这几个东西的关系,如下:

UDDI 的分层 Web 服务协议栈

然后是SOAP,即简单对象访问协议,全写为Simple Object Access Protocol。它是一种简单的基于 XML 的协议,它使应用程序通过 HTTP 来交换信息(摘自http://www.w3school.com.cn/soap/)。最权威的说明,参看http://www.w3.org/TR/soap/。我的理解是,SOAP利用XML来封装数据,再利用HTTP协议封装后进行传输。

WSDL就更好解释了,就是个XML,只是格式标准化了。这样,服务提供方(服务端)只要按照WSDL的标准封装数据,接收方(客户端)就可以读取。但是,好象不同WSDL实现存在一些细微的差别。培训中,曾爆发了对WSDL的内容的争论,我是在争论变成争吵时才发现的,所以不知道具体吵什么。

其实这几个东西就是SOA所需的技术。唉~~已经是很老的东西了。

今晚很热,也很无聊,所以到外面逛逛——首选的地方是房子附近的中大。无它的,只是对当代大学生的夜生活有点兴趣,并怀念一下当年夜闯战场看野合的经历。但是,没什么收获,只是看到一些穿着暴露的MM,行色匆匆地往校外跑……

还是说点正经的吧。在校内的路上,偶然看到手机有WiFi信号的提示,有点惊讶!(但是再想想,宿舍里装个无线网络也不奇怪吧?)于是产生了一个想法——去寻找可用的WiFi!这样以后就可以在校园里上上网、吹吹风,顺便看看MM……

中大里逛了一圈,发现“动感地带”的营业厅(类似那种校园里交话费的地方)那里找到无加密的WiFi,附近还有一对情侣拿着笔记本上QQ。可是连上去就发现,网关加密了(要输入用户名跟密码才可以上外网)。登陆页面上除了英文就是问号,估计是编码不被支持。幸好有个咨询电话,打过一问才知道只是个搞网络维护的(技术支持),对帐号怎么申请一无所知,他推荐我打10086。于是又咨询10086的人工服务,那MM最后的答复是,中国移动没提供无线上网服务,这边的3G网络也没开通,让我打10000号咨询一下中国电信,顿时晕倒~~~没办法,只好等明天到那营业厅咨询一下。

然后又到了附近的商业区,看看有没有地方有免费WiFi,又可以坐下来喝东西的地方。又逛了一圈,发现很多WiFi信号,应该是附近的公司和住宅的,但不是信号弱就是加了密。最后找到了两个:一个是在一栋大厦前发现的,估计是那公司内部的WiFi,但由于附近阴暗,感觉不安全,于是测试过能连上就跑了(不知道能不能再作进一步行动,比如进入那公司的内部网之类)。另一个是一家酒店的CoffeeShop(咖啡馆),平时走过都不知道这酒店还有个CoffeeShop!居然跟踪WiFi信号找到这家店,但是进去前要经过酒店大堂,而且不知道里面的消费如何,还是没进去。

经过今晚的行动,深深感受到WiFi已经溶入我们的生活,变成很平凡的东西了。同时证明我买G1的选择是正确的!拿着它,比MID、上网本等都要好(轻便、实用,想象一下拿着笔记本在街上找WiFi就知道了)。

PS. 1、生活中的无线信号非常多——电视信号、GPS、手机信号、FM调频、WiFi等,究竟这些无线信号除了方便我们的生活以外,对我们的健康有没有带来什么影响呢?如果我们的生命受到这些东西的危害,又应该怎么去维护自己的权益,或者找谁去赔偿我们的损失呢?答案还是Who Knows。

2、渐渐地,G1已经溶入到我的生活了。例如:见到有趣的事物就用G1拍下来,到CoffeeShop就用G1来上网,在车上就用G1来看书、听歌、看电影,做饭、洗碗、洗澡都用G1来放歌(音质很一般,没有低音,带上原配的耳机也一样),甚至上厕所也带着G1。这东西完全替代了那老迈的e310之余,还带来很多新乐趣。是时候复习一下Linux命令了。

3、晚上十一、二点一个人在大街上找WiFi,Crazy~!这就足够证明我有多无聊了……

2009-06-07补充:中大的那个WiFi没戏了,那负责人说该WiFi主要是建给自己用的,如果别人用的话收费很贵,要两毛一分钟。明显是说,我这个WiFi你就别想了。

还没买G1之前就看到网上有人说可以在G1上跑Debian。那时就想,能运行Debian,G1不就万能了吗?今天通过实践,证明了我的想法是正确的。

其实几天前就把Debian装到G1上了,也用apt-get来安装而了nginx。昨晚把nginx(一个俄罗斯的HTTP服务器,以小巧、占用资源少、高并发等优点著称)重新以编译源码方式安装,然后把它的HTML文件夹挂到SD卡上,以便把SD卡上的一些HTML文档挂上去。最终的目的是实现本地HTTP服务,并用系统自带的浏览器(Chrome Lite)来看HTML文档(由于Chrome Lite不支持查看本地文件系统中的HTML文档,而用HTML Viewer又没Chrome Lite那么强大)。虽然这做法非常Crazy,但实现后很有满足感。今天把G1连到公司的WiFi,然后用台式机访问其HTTP服务,感觉很炫。同事们看了,也十分惊讶。

后来萌生了个想法。由于G1上不能无线传送文件,那可不可以绕个圈子来实现呢?首先装个aNetShare,该软件可以使G1变成无线AP(同类的软件还有WiFi Tether)。这样其它机器就可以通过WiFi连我的G1,然后我只要提供个HTTP服务或者FTP服务,那就可以共享我的文件,别人就可以下载了。呃,好像好麻烦……不过挺好玩的。明天再借个笔记本试试,看我的想法可不可以实现。

近来就忙着玩G1,还比较认真地开始去看C语言,以致很多事情都来不及做了,希望这个周末能赶赶进度。

PS. 1.看着程序在G1上慢慢编译,是一种很写意的感觉,但编译过程中出现error的情况除外。

2.看了C语言,才知道,原来两个数交换可以不用再建个临时变量的,用“异或”就可以了。感觉很神奇,而且节省时间跟空间。例如:
一般做法是这样:

int a=111;
int b=222;
int tmp=0;
tmp=a;
a=b;
b=tmp;

用“异或”实现:

int a=111;
int b=222;
a=a^b;
b=a^b;
a=a^b;

终于,终于有机会触摸屏G2了!

今晚又跟表姐两夫妇去了Jack Magic Pea咖啡馆,这次还把表妹拉了出来。

废话少说,还是先说说表姐夫的G2。拿在手里,第一感觉是轻薄!对于拿惯了G1的我来说,是一种非常意外的惊喜!当初还担心没有键盘和滑盖,会让G2变得不方便,但是随着的Android系统的成熟,却没有想象中的难用。不过还是不喜欢那虚拟键盘,按键小(iPhone也是这样),容易按错。系统就不用多说了,而且以可随便刷,不错。

但是跟iPhone比起来(正好表姐夫有台iPhone,可以比较一下),还有一定的距离。首先是让全世界都遗憾的多点触控,虽然硬件上已经准备好,但由于版权问题,还是没有出现在系统中(网上已有了Android上支持“多点”的软件,但没玩过)。其次是动画效果,Cupcake(Android 1.5的代号)出来后,增加了很多过渡动画,但只是在读取下一个画面前插播一个动画,反而加长了读取时间,这跟iPhone的不同(所以我屏蔽了这些特别效果)。然后就是软件问题,虽然日渐丰富起来,但还是有点少,还有旧软件有不支持Cupcake的情况(或者说新系统不兼容旧软件)。

总的来说,G2还是非常不错的!G1给人的感觉是一款试验性产品,很适合开发人员使用,而G2则感觉是实用性产品,更接近于iPhone。

记得五一假期看见表姐沉迷与开心网(www.kaixin001.com,跟校内网类似的网站,不过面向的用户群不同),于是跟她说,帮她写个程序,简化她每天的操作。

今晚想起这件事,于是去看看该网站的页面的HTML代码。一看,全是JavaScript代码,汗一个……然后找到主要关注的对象——一个Flash游戏,就是表姐沉迷的游戏。打开IE6的HTTP Watch(要自己装),监视游戏中发起的请求。一看就明白了——就是利用Flash做客户端,利用JavaScript发起异步请求,返回的数据(XML封装的数据)给该Flash调用。而Flash就接收用户的操作,再发起异步请求,获取数据。这样就形成了3层结构:Flash客户端,JavaScript的异步请求(与服务器通信)和PHP页面(处理请求的服务)。有点像Flex,跟我想的差不多。而我要做的就是写个JavaScript获取、处理数据,并返回给服务器,其实就是代替该Flash。好像就是个外挂,晕……

真的要做的话,还是要对其请求的数据做进一步分析。这个嘛,等有心情时再做吧。

PS. 感觉现在的B/S系统都成了C/S的Internet版。主要由于浏览器对JavaScript和CSS的支持不同,造成很多懒惰的程序员只让其系统支持某一浏览器(我公司的就是这样,在FireFox上肯定有问题)。这问题不知道在IE7和FireFox上有没有得到改进(要完全解决还是不太现实)。还有就是,现在的网页太依赖于JavaScript了(胖客户端,或者叫Rich Client的发展趋势吧)。这样就等于每次访问网站都自动下载一个客户端程序一样。至于这样是好是坏,现在看,应该是好的,但可能存在未知的问题。

由于“五一”假期买了G1,所以这几天一直沉迷于此。

第一眼见到这家伙就觉得充满“苹果”的味道(黑色版和灰色版便没有这感觉了)!简洁的机身,白色的钢琴键烤漆,圆滑的边角,金属底盘的键盘,整齐的USB接口……这些都是APPLE经典设计!真让人爱不释手。其另类的侧滑风格,相信会成为又一经典。据说屏幕是夏普的,加入点距小,看起来清晰亮丽。

Android系统操作起来很舒服,果然是专为手机而设计的系统。将其升级到1.5(Androidin.net提供的1.5MOD3)后,对中文的支持堪称完美。安装Google拼音输入法后,完全解决了中文输入的问题,使得搜索条、短信等都变得更加可用!结合机子自带的触摸屏、GPS、重力感应、磁铁等硬件,可以开发出各种有趣的应用程序和游戏。例如有个叫“Metal Detector”的软件可以用来探测铁,很好玩!又如Google Map加上GPS定位,便成了导航系统。但是,目前还缺少许多基本的应用软件,给日常使用带来诸多不便。相信随着时间的推移,这情况将会得到改善。

最后不得不说的是电池问题。续航时间短是个致命伤(现在好象大部分的智能机都存在这个硬伤),经常用的话,一天可能要充两次电。今天测了一下,把电池的电全部耗光,直到机器自动关机,然后用电脑的USB充电,大概就花了4个小时才充满。

还有个问题,就是机子背面的盖做得非常不好!当要换sim卡时,打开机子的背盖比较麻烦,这个问题不知道G2有没有改进。

三天的“五一”假期过去了。很高兴终于在5月2日跟表姐夫到广州买了HTC Dream G1(以下简称G1)!其实在G1发布之后就计划着想买了,但那时刚出,国内没货,机器也没有中文版,于是只有下载其模拟器来YY。当拿着G1时,那感觉好象还不太真实。

虽然价格比原来的2800贵了400,但拿到的是一直梦想着的白色版,所以把那400的悲痛忘掉了。由于拿到手的机器已经汉化了(属于早期的汉化版本),但用起来还是满爽的。主要是系统设计得好,各个操作都很流畅,但除了发短信。由于系统本来不支持中文短信的,所以外加了个软件——这软件嘛……就凑合用着了。还有照相的功能完全只是个功能,效果勉强接受(可能是没有背光补偿的关系)。

现在基本熟悉了其操作,就等着明天去刷个新系统了。据说新系统增加了几个对中文的支持,很期待!

PS. Android计划已经迈出第一步了,以后更加忙了!

记得是几天前,回宿舍时在路边的地摊偶然发现这本书,原价39RMB,却以4RMB购得,非常超值!(唉,现在的学生就是浪费,不动珍惜好书。)买来后就一直在看,本来以为一两天就看完的,却看了一个多星期。

作者主要探讨了页面设计与用户的感觉,从而讲述Web页面应该怎样设计才吸引人。其实书中讲的都是很简单的事情,但是很多时候我们都没有注意到。例如菜单的名字、按钮的样式、导航条的设计等等,都是围绕这用户会不会一看就明白这是什么、怎么用(就是要不要思考)来分析。以前,我总是觉得页面一定要做得很酷很炫才好看,但是完全忽略了实用性。网站跟软件不同,一般都不会有人看使用说明书,也没有网站会有使用说明,而且用户在上网的过程中已经形成一定的习惯,所以网站只要简洁方便就可以了,这也是我现在所追求的。