更安全的原因所在

继续挑战Gregarius中积攒的未读feeds items,已经追到了2007年8月份,6666/17841条未读信息已经减少到3220/21258项:

吉利数字in my Gregarius

今天才看到fcicq的ActiveX 安全控件 = 不安全,不禁在想,到底什么原因导致ActiveX不安全呢?终于,我发现这并不能盲目归咎于微软产品质量不佳或者是ie的缺陷,也不能说是开发人员水平不行或者是不负责任,终极的原因,居然是小众和大众的区别。

简单说来,ActiveX是闭源的,那么真正了解它的完整工作机制的人必然是少数,每个人的智慧都有局限性,引申开来,每个团队也有考虑不到的地方,那么我们就可以认为,ActiveX必然存在着漏洞,并且小众之外的大众看不到、体会不到,甚至发现了一些端倪也无法判断原因出自何处,在无法得到充分、全面的用户检验的时候,维护团队仅靠一些自身质量控制和用户使用方面的反馈,也就有照顾不到的地方了。漏洞有了生存空间,安全性自然下降。更何况,ActiveX的运行平台,Windows以及ie,也具有类似性质,坏的效果往往不是累加而是乘积式的增长。

搞过一点软件开发的人都知道测试的重要性,初级一点的测试就是模仿用户操作,使用一些极限值、便捷值等来对软件进行检测,而高级一些的测试可不是谁都能作的工作,测试人员不仅要会“操作”软件,还要懂得软件实现的原理和机制,必要的时候要去翻文档、源码,来制定测试方案,这样才能找到一些深层次的问题。回到我们说的小众和大众的区别问题上来,当软件有了1000万用户时,可以把这1000万想像为初级测试用户,他们会反馈一些使用中遇到的问题,协助软件更改,这是闭源软件的方式,在开源软件的运作模式中,这些用户里可能会有万分之一的用户出于学习、好奇或进行改进的原因,去翻阅源码,在阅读过程中自然有一定的检查效果,其中的经验丰富精力充沛者还会进行测试、亲手修改,部分类似与高级测试人员的工作。只要施以得当的管理,让这些测试、修改的效果得以发挥,软件的质量及安全性自然会更高一些。

之所以会想到这些,是因为我记得以前微软还是谁在抨击开源软件的质量和安全性的时候提到过,闭源软件是由高素质的开发团队,有严谨的质量控制管理的情况下生产出来的,所以质量更好,安全性更优。我虽然不能全盘否定这一观点,但这么说太片面了。绝对的安全肯定是一个“无穷大”的数字,每一份努力都能够离这个“无穷大‘更近一些。广大人民的力量是无穷的,更不要说为了薪水工作和为了理想信念干活的结果差异了。

其实,小众和大众的影响在其它很多方面有体现:我们在颁布法律或规章的时候,要开听证会,要征集意见,就是要把小众群体起草出来的东西,让大众去检查、补充、完善;我们要讲团队合作,要讲民主,就是要避免小众决策的片面,能力的局限;我们把重要建设项目的方案公开让大家讨论,也是在借助大众的智慧。人多力量大,众人拾柴火焰高,三个臭皮匠还抵个诸葛亮呢,如果谁坚持要说有限的团队就能够生产出完美的产品,我们大可一笑置之。

最后,小众和大众都是相对的概念,应用的范围要适度,服务器的管理员只设一人是不安全的,公司里人人都是管理员也不安全,监狱安防设计图自然也不能搞什么全民共享,那《越狱》就失去大卖点了 :)。真正安全的方式是要绝对经得起推敲、检验的,在这方面,非对称加密如pgp、gpg堪称典范,充分利用公开的机制达到了保密的目的。

你最希望在哪里看到TIPS?

最近比较忙,疏于更新,已经是2008年了,总结畅想也过了季了,简单冒个泡,以示活着。

很多软件在启动时,都会显示一个tips提示,也有叫每日一xx的,内容嘛,有些是一些操作技巧,有些则是轻松的提示、笑话什么的,比如我以前也玩过(现在还在用)的fortune

问题是,我们最希望在哪里看到tips呢?换个说法,tips在哪里出现,才会让我们觉得不讨厌呢?我先扔点砖吧,希望能砌成“5000个最希望tips出现的地方”,2008年终总结就指望它了!

  1. Windows或者Gnome、Kde启动的时候来一条吧,我的机器很慢,足够让我看清楚了。
  2. Firefox启动的时候最好能先快速弹出一个tips窗口,然后再后台处理启动任务,这玩意儿虽然好用,启动确实慢了些,tips内容最好就是firefox加速技巧或节省内存占用的技巧。
  3. 图片啊图片,大图片还没加载的时候别显示alt了,来点tips吧,如果图片放在flickr上,tips内容当然是那些忍者之术最好不过了。此招数对在线视频应该更加适用。
  4. ADSL猫的灯也别总是有数据传输的时候就闪,把tips转换成摩尔斯电码,di-di-di-DAH-DAH-DAH-di-di-dit,此方法对所有网络设备led灯有效。
  5. 程序编译出错时,除了错误信息,也来一条tips吧,内容就是300条良好的编程习惯。
  6. 马路上等红灯的时候,多无聊啊,如果旁边有一显示屏,来点路况tips或者笑话来解闷就好了。
  7. 安装进度条,好像大部分软件都没有聪明到让用户狂等待的时候再给他们灌输点啥,windows都白装了么,多好的一个例子啊,还是现在都用深度什么的ghost直接装了?
  8. 说到ghost,那个灰蓝的界面上,有太多的空地儿可以显示tips了。
  9. 说到安装,apt dist-upgrade的时候能来点tips解闷么?以前安装linux的时候还有俄罗斯方块玩咧。
  10. 用随机的tips作im的状态签名、邮件签名、论坛签名,虽不算新鲜,也不是谁都能搞出来的。
  11. 用语音tips来作闹钟铃声,天天被一种声音闹醒,真怕被训练成条件反射。
  12. xx或bb的时候,tips出现在目光自然聚焦的地方,这个已经有人做了,不过广告居多。
  13. im机器人,每天放出一条tips,不知道会不会有无聊的人加这种好友,但再怎么着总比qq尾巴好吧。
  14. 老是用枯燥的数字来作产品序列号太没劲了,用tips吧,哪天Windows的序列号就会变成“30+ Basic Linux Commands”才好玩呢。
  15. 在名片上印点tips效果肯定不错。

大家继续,解放思想,tips是无处不在滴~

另外预告一下,2008年依然会很忙碌,blog质量和频率估计都会有所下降,没办法,人老了嘛。。。

真正的“AI”,是不是可以这样?

看到Cat ChenS.T.A.L.K.E.R中胡侃这个游戏的AI如何优秀,不禁产生了一种念头,一种新的AI实现思路。

AI就是人工智能,通俗一点说就是控制游戏中NPC如何行动的指令,简单的AI很容易公式化,比如反恐精英cs中的bot,基本上都是按照脚本的规定来行动,更复杂和高级的AI会加入思考、互动的因素,也就更“聪明”一些。

AI往高了说,属于计算机科学的尖端领域,但往简单了说,只不过是科学家设计好公式,利用计算机运算速度快的优势来模拟的思考过程罢了,高深也就高深在了公式/算法和了,计算机只是一个跑得比较快,会先飞的笨鸟罢了。但在很多时候,AI还无法达到普通人的程度,这也就是我的念头了,能否在游戏中,用玩家行为来作为AI,或者为AI提供数据呢?

假想一个游戏,分为两个阵营,拉据战的格局,苏、德双方展开坦克大战,攻夺据点。把游戏分为两个服务器,苏服和德服,苏服上的玩家都是苏军,敌人是AI,不过这个AI就是德服上扮演德军的玩家。这样,以往的NPC就不会再笨呼呼的了,而是“像”真实的玩家一样战斗,甚至血少的时候也会偷懒等等。

最关键的,就是要体现不同于单机游戏的,真实的模拟另一个服务器上玩家的行为模式,同时还要和玩家之间对战区分开来。比如坦克的配置是copy玩家数据,而作为AI的坦克被打爆了玩家可不会掉经验等等。能够把这两点都体现出来,现在的游戏好像还没有。

还想到一个更远一点的例子,在mmorpg中打怪的时候,怪物一般都形成规律了,在什么地方、有什么招数,怎么配置队伍就能打倒它,甚至捡到相同的宝贝。。。这样不腻么?为高级玩家开通变身为怪的功能吧。呼呼,别人组队再来打toj的时候,怎么怪物变了?以前都呆着不动的,今天满大街溜达,也不发招。。。如此这般,也等于是在这段时期内用人的智慧让npc更加完善了,如果聪明的玩家还会在变身为怪物的时候,模拟真实怪物的以为,诱骗其它玩家上钩的话就更加有趣了。

想法扯完了,写完再想实现起来还是有些难度的,不过算是一个思路吧,不要一味钻进如何完善npc自身“功能”的死胡同,引入玩家的隐式互动。关于那个苏德坦克大战的游戏,以前倒还真是玩过(直接玩家对抗的),不过好像网站上不去了,http://www.blitz1941.com/,我这里也仅存三张截图,还算有一定代表性,一起怀念一下吧:


Go to ImageShack® to Create your own Slideshow