也谈谈汉语言编程的事儿

文章写出来肯定会挨骂,但是希望大家骂我就好了,放我我的家人和朋友。

说实在的,我是中国人,也却是希望能弄出些拥有自身专利,能够想国外现在技术那样横扫全球的技术。但是……

我是在我的blog上看到关于“汉语言编程为何引爆招生热”的文章,突然就想起看看汉语言编程来。经过搜索,找到了所谓的中国汉语编程网的地方,据说是官方网站。

先说说第一印象,打开以后就是乱码,我的浏览器自动将它识别为Westen (ISO-8859-1)编码。重新设置为GB2312以后才能正常显示。从内容上看,根本就不像一个技术型网站,全网站大篇幅的写了重要性、重要意义、成功实践,甚至还联系到了戒除网瘾。

我找了半天,终于在页面的最下方的一个区域中找到了一些关于汉语编程教程一类的东西。

我这里摘录一段代码:

  1. 0 给 累加器
  2. 编 求个数 ( n --- )
  3. 1
  4. 循环 内环数 ♂ ♂ ♂
  5. 2 求余数 0 =
  6. 就 ♀ ♀ ♀
  7. 否则 3 求余数 0 =
  8. 就 ♀ ♀
  9. 否则 5 求余数 0 =
  10. 就 ♀
  11. 否则 7 求余数 0 <>
  12. 就 1 +写入 累加器
  13. 然后
  14. 然后
  15. 然后
  16. 然后
  17. 回环
  18. 回车
  19. 显" 该范围内不能被2,3,5,7除尽的整数个数有:"
  20. 累加器 显
  21. 显" 个"

不知道大家看到上面这段代码是什么反应,说实话,我没看懂。♀♂等符号,是作为操作符出现的。我不清楚这样的符号对于编程来说是不是好事儿,但好歹,我我不愿意花好几分钟去软键盘里面找这样的符号输入。

我为了试验一下汉语编程的效果,特意下载了专用的编译器,并按照官方主页上的代码输入。反应自然是我的代码输入效率首先下降了很多。仅此一点,我就不能用了。

其次,主页上提供的编译器实际上是个类似于Command Prompt的东西(或者说有点儿像当年的Basic),代码都是在里面写的。问题是,我找遍了主页上的文档,也没有说明怎么能把我输入的代码变成EXE文件。另外,主页上有个据说是电子教程的东西,我也下载了。他里面写了关于GUI上面的一些介绍。即使是给出的例子,我都在他的开发环境中输入后报错。

再说其blog,有篇文章里面说:

汉语言编程曾经决定:一次拿出100款用汉语言编程开发的软件和益智游戏的源代码在网上公布,以便证明汉编的真实性和可行性,以便证明汉编的底层是汉字。可国家高层领导及时制止了这种“不理智的行为”。因为这100款软件几乎涉及到各个方面,“一旦全部开源,就会砸掉不少软件公司的饭碗。你让人家没饭吃,人家不砸你黑砖才怪!”某高层领导如是说。

我有点儿想笑,你100款软件拿不出来,几十款、十几款拿得出来吧?可我在官方主页上,根本就找不到某个传说用汉语言编程写的软件,并且有源代码的。哪怕给我一款吧?没有代码,没有说明,没有语法,没提供什么库函数,对了,对于Windows的程序,如何调用API也没有说明。我很难想象这样的语言能编出什么软件。虽然“他们”说有400多款软件,不过确实没有任何一个流行起来了。当然,Hello World也算软件,是吧。

不过,汉语言编程这种思想,这种潮流还是好的。投资的事情我不想评论,也希望汉语言编程能对得起这些投资。(像Perl一类的语言,也没见人家有多少投资。)

PS,不由的让我联想当但年麒麟操作系统被指与FreeBSD有高度代码相似度的事情。

至于官方主页、blog等上面对汉语言编程的评价,我想我也不准备评论什么。评价,都是看你站在哪个方向上的。像什么不感染病毒,运行速度块,树大招风大家心里都明白。

回到开头的blog上,各院校招收汉语言编程专业的事儿。我还是想,希望这些学生不会后悔。

Posted by Wei@14:27 30/30/2008 in diary | Permalink | Trackback | 2 Comments.

Zooomr - 免费的网络相册

Zooomr是个免费的网络相册服务,和FlickrPicasaWeb类似,都是可以上传和共享图片的服务。Zooomr提供了无限的存储空间、无限制流量,也不限制图片的大小和张数;单凭这一点,就比Flickr的200张照片限制和100MB/月的流量强了不少。

Zoomr目前提供英文、简体中文、繁体中文、日文、西班牙、葡萄牙语、巴西葡萄牙语、荷兰语、意大利语等多国语言界面。而且支持OpenID,可以直接使用OpenID登录和使用Zooomr。

我最喜欢的是他的Infinite Upload ∞界面,只要点击Browse Files,选择多个文件。然后点Upload就可以了。每个上传的文件都提供单独的上传进度条。上传的速度也是不错的。

infinite_upload

在上传图片时,可以一并设置公开性、tag等信息。上传完成后,即可将这些照片设置为指定的信息。

不仅如此,对于上传的照片,还可以设置SmartSet。可以理解为照片集。SmartSet实际上是一组搜索条件,符合该条件的图片,都会自动的加入该set之中。

smart_set

Zoomr还提供了图片PeopleTag功能,即标记照片上的人。这对于很多情况下,尤其是大家合影时非常有用。People Tag还可以用于创建SmartSet。

people

只要选择添加People,就会在照片上出现一个框,可以移动和改变他的大小。而在框的下方,则可以输入对这个people的信息,包括Zooomr的用户名和Note。对于非Zooomr用户,也可以点击“Not a Zooomr User”后,输入该people的名字和邮箱地址。Zooomr通过email address来区分不同的人。

Zooomr还提供Pro帐户,但目前来看,除了Zipline Complete、Social Stream和Discovery Pro外,最吸引人的就是无广告了。但每年19.95美元的费用,确实有点儿对不起这些服务。

Zooomr同时还是一个社会化的聚合网站。所有注册的用户都可以相互Follow。并且可以像使用Twitter一样更新自己的What’s going on right now?信息。

当你follow一个用户以后,还可以设置对方为自己的Friends和/或Family。同时,因为上传时也指定了照片的公开权限(可以设置照片为公开,与Friends和/或Family共享),对于非公开的图片,对应的Friends或者Family则可以看到。

说了这么多Zooomr的好处,当然它也是有不少缺点的:

  1. 没有类似Flickr的Originaze功能。对于批量组织照片,还是比较困难的。
  2. 没有Bulk Edit功能,如果你要对一组照片添加一个tag,或者修改共享权限,那么恭喜你,一张一张的改吧。(Zooomr已经在增加该功能了,希望能够尽快的搞定)
  3. SmartSet只能用于Public的照片。即,SmartSet无法搜索Private的照片,如果你将一张照片设置为Private,哪怕是Share with Friends/Family,也不可能出现在任何一个SmartSet里面。
  4. 没有类似于Album功能,对于图片多的情况下,不利于浏览。当然SmartSet在一定程度上可以实现Album,却不能完全取代。
  5. 帮助文档不够详细,很多时候找不到说明,只能靠自己实践。
  6. $19.95的Pro帐户没有过多的吸引力,功能上没有实质性的增加。
Posted by Wei@0:50 30/30/2008 in Computer Science | Permalink | Trackback | 1 Comment.

解决网上下载CHM文件无法显示的问题

当我们打开网上下载的CHM文件的时候,会碰到如下的问题:

chm_unlock

左侧的目录可以显示,但右侧的页面无法显示,无聊是刷新,还是重新下载都没办法解决。

其实这并不是因为文件损坏造成的,而是操作系统对于未知CHM文件进行的保护。

要解决这个问题很容易,右键点击文件选择“属性”。

locked-chm-properties

之后在General选项卡最下方的Security中,点击“Unlock”,并确定。

Tags: , ,
Posted by Wei@22:26 27/27/2008 in Computer Science | Permalink | Trackback | No comments.

FireBug真的是个非常好用的插件

FireBug是个FireFox的插件,就在FireFox推出它的3.0版本的时候,FireBug也跟着升级到了可以支持FireFox 3的版本

相信如果你对HTML、CSS有着一知半解的认识,或者你对于网页还停留在以前table layout阶段时,对于网页上的HTML、CSS代码的调试,是个非常头疼的问题(我就是这样)。尤其是你的网页不是本地的,且有服务器端的代码的时候。

FireBug就是这样一个插件,它可以帮你检查HTML、CSS代码,可以帮你把代码和网页的显示效果结合起来,甚至可以直接修改HTML、CSS代码,并且不需要刷新就可以立即把修改应用到网页上。

安装FireBug首先要求你有一个FireFox浏览器,然后去FireFox Addons网站上安装最新版本的FireBug。最后重新启动FireFox就可以了。

当你打开一个网页的时候,只要按下键盘上的F12键,或者用鼠标点击浏览器右下角的image图标。就可以打开FireBug。

firebug_main

而当你对页面上的某个元素需要详细的信息时候,右键点击对应的页面上的元素,然后选择菜单中的“Inspect Element”即可。

如果你对页面的显示效果不满意,在HTML代码上直接修改就可以了。鼠标移动到对应的元素上,页面上的该元素所代表的显示区域也会高亮。

不仅如此,对于CSS的盒子模型,FireBug也能从容对应。在FireBug右边窗口上方选择Layout,即可打开与当前元素相关的盒子模型,包括border、margin、padding和offset。直接修改对应的数字,页面也会做出相应的更改。

image

除此之外,FireBug还可以评估页面的加载速度。

image

对于AJAX,一般的网页调试工具是比较不容易处理,而FireBug则可以轻松应对。另外还有JavaScript,也可以像程序一样的进行调试。

应用在我的身上,FireBug帮我解决了好几个网页上的问题。包括Gravatar、Author Comment Highlight等等。

Posted by Wei@22:21 18/18/2008 in Computer Science | Permalink | Trackback | No comments.

Plurk - 基于时间线的Twitter

Twitter最近实在是不太稳定,更为过分的是,我登陆我的Twitter后,只剩下最后一条了,以前都不不知道哪里去了。基于这个原因,我逐步转到了Plurk上面。

Plurk是个基于时间线的Twitter。如果你很熟悉Twitter,那么你只要登录Plurk,就知道怎么用了。

 

image

Plurk是个神奇的东西,我只用了几天,就爱上它了。这也让我几乎完全抛弃了Twitter。

Karma值是Plurk里面用来评价用户经验、活跃度等信息的,类似于论坛里面的威望、经验等。

时间线可以通过鼠标拖拽、鼠标滚轮、键盘左右方向键移动。同时,当鼠标移动到时间线的最左侧和最右侧的时候,也会出现一个箭头图标,点击该图标即可移动时间线。

此外,Plurk还支持一些发布的格式:

发布格式 在Plurk中写 显示为
链接 URL (Text) Text
粗体 **bold** *bold*
斜体 *italic* *italic*
下划线 __underline__ __underline__

Plurk也支持发布YouTube、TinyPic、ImageSearch、ImageShack、PhotoBucket以及Flickr的视频或者照片,只要贴入对应的URL即可。详细的方法,Plurk给出了官方的解决方案

最后,如果你也愿意注册Plurk,可以点这里(里面有我的推荐ID,我提前说了。如果不想用推荐,从http://plurk.com/进去就可以了。

Posted by Wei@22:22 12/12/2008 in Computer Science | Permalink | Trackback | No comments.

合理使用IM的几个习惯

以前看过类似的文章,没当回事。不过有个良好的使用IM的习惯,还是非常有必要的。这里IM包括Live Messenger、QQ、Yahoo等等。

使用能表达自己的昵称,或者使用自己的名字

早年用QQ,现在上面绝大多数人已经不认识了。IM既然是通信工具,就该有个能让别人识别的名字。我当然不是反对展现个性,但好歹在展现个性的时候把自己的名字写上。

另外,推荐把个性的信息放在名字的后面,在联系人比较多的时候,可以依据名字来排序。MSN最近经常传播鼓励大家在MSN昵称上增加一些信息来表达什么含义的,我向来不反对,但加在名字后面远比加在前面来的更reasonable。

MSN、QQ新版中都有添加备注名称(nickname)的功能,设计本来是很好的,但却在设置nickname之后,隐藏了原来联系人的个性信息。所以,除非是你的名字让我认不出来,我一般不修改nickname,因为我更愿意看到你的个性信息。

将联系人分组管理

这是很重要的,尤其是联系人比较多的时候。在公司环境中,还可能出现重名的情况,再按照部门分类一下,就更容易查找了。

保存聊天记录

说真的,有时候我觉得自己的记忆力很好,有时候却很差。不管好坏,聊天记录功能都是很重要的。经常碰到忘记了某个人,但是看看聊天记录,就想起来了。

尊重联系人的状态

这个其实是重中之重。联系人既然设置了Away、Busy、In a Call、Be Right Back状态,就要尊重人家的状态设置。我经常发现在我设置为Away之后,有人发消息给我:“Hi,在吗?”。

另一个重要的状态就是Busy。既然是busy,自然人家是不希望被打扰的。所以不要不知趣的给人家发消息。如果真的有急事,就尽量在一条消息里面发完,而且不要期待对方有很快速的回复,更不要追着人家问。不要看着人家是busy状态,还“hi,在吗?”的问,很容易打扰别人。

当然,作为联系人,也不要轻易设置这些状态。只要你能够接受别人发消息,就不要轻易隐身;只要能有时间处理别人的请求,就不要设置轻易设置busy。

最为我自己,我最反感的就是我在设置busy状态后(我不会轻易设置busy),仍然有人“hi,在吗?”的问我。一旦碰到这种情况,如果我心情不好,我会block掉这个人,直到我free。

谨慎使用自动回复

如果你在线,就不要开启自动恢复。经常会看到,两个人聊天,你发一句话,对方回复的首先是“你好,我有事儿不在……”(这事儿以QQ为主)。如果你愿意和人家聊天,而且聊天已经开始,就即使关掉自动恢复。

一次说完

好多人都有这个习惯,一句话分好几次说:“上次”“我去那那那了”“然后碰上谁谁谁了”。有事儿一次说完,现在的IM都有输入状态反馈,对方不会认为你不理他的。在聊天的人多或者对方忙的情况下,一句话分好几次说,是很招人烦的一件事。

Tags:
Posted by Wei@11:28 12/12/2008 in Computer Science | Permalink | Trackback | No comments.

HTML and CSS

最近一直在给同事面试一个HTML/CSS方面的职位。说实在的,我对HTML和CSS一直停留在“可以写,但复杂的不会”的阶段,就像我的Blog一样,一直就是麻烦不断。

今天更是这样,在更新了几个Widget之后,突然间发现第二侧边栏被移动到第一侧边栏下面,底部的Recent Post和Blog roll也都窜到右边去了。很明显,某个地方的<div>不匹配。这种情况实际上多发生于我的Text widget,因为里面的HTML代码基本上都是我写的。

这次其实也不例外,最终发现在About ME中的<div>不匹配。这倒不是什么大问题,真正的大问题是我几乎删除了所有的widget才最终找到问题的根源。

之所以会联想到给同事面试的事儿,是因为我的面试几乎都会问一道题目:table layout和div layout有什么区别。当然答案是五花八门的。想当初我在上世纪90年代(别紧张,其实就是上世纪的最后一年)的时候,网页还在使用table做布局,之后才逐渐变味div布局。

今天面试的candidate是这样回答我的:两种布局方式没什么区别。div更倾向标准一些,但table比较不容易把页面变得很混乱

我不评论他的答案,但他说的table比较不容易吧页面变得很混乱,确实是真的。比如这次我的blog布局中,就因为少写了一个</div>,结果导致页面乱七八糟的。其实table也存在同样的问题,但好歹人家有th、tr、td,一个一个匹配一下就好了。<div>不同,所有的结束标签都是</div>,弄得你也分不清哪个对着哪个。

当然,<div>的优点是不言而喻的,当你的网页更改布局的时候,<div>的修改成本是要远远低于<table>的。另外,对于像我的blog那样widget based的页面,<div>也更容易一些。

———- 分割线 ———-

我写这篇问题,倒不是为了评论table和div哪个好,哪个更标准,只是在这里发发牢骚,说说我碰到的问题。当然,对于那些直接说我“啥都不懂呢,还写HTML呢啊”,这种评论必然会存在。我将完全忽视。

Tags: , , ,
Posted by Wei@23:04 11/11/2008 in Computer Science | Permalink | Trackback | No comments.

dispity - 你我的时间线

dispity是个免费的Web的时间线,可以同步你的PicasaTwitterWordPress (Blog)、Last.fmFlickr、Yelp、BloggerYouTube,以及其他的RSS。

dispity会将上述feed中的内容,以时间线的方式,显示在屏幕上,如下图所示。

dipity

同时,dispity还提供了embed到网页的功能。在上面的画面中,点右上角的image链接,即可得到embed到网页的代码。不仅如此,还提供Blog Navigator的代码(如本站最右侧效果)

Posted by Wei@23:22 2/02/2008 in Computer Science | Permalink | Trackback | No comments.