2005年9月30日星期五

给电影打分

昨晚去看了神奇四侠(Fantastic Four), 散场时我和LP讨论应该给这场电影打多少分. 我们一致的观点是60分, 可以算是及格, 毕竟是一部典型的好莱坞大片, 美女,帅哥, 科幻, 暴力, 感情, 动作一个都没有少. 不过提到打分, 就应该有一个参照系. 讨论的结果是, 我们一致认为<七剑>可以算是0分电影, 不过100分电影却没有找到, 因为每个电影都有自己出色的地方, 但是每个方面都出色的电影却太少了. 想<七剑>这样每个方面都烂到不能在烂的片子, 不当作零分电影真是对不起徐客同志. 无形中应了一句俗话: "没有最好, 只有最烂"
^_^

2005年9月29日星期四

一个Idea - AutoLog

想起来一个关于工作日志的问题. 写日志是一个比较难的抉择, 如果是写项目日志, 那就比较简单, 只要记录每天做了多少关于这个项目的工作就可以了. 但是如果想记录一天做过的所有事情(上网看新闻聊天就算了)就比较麻烦. 很多事情是没有什么体系的, 比如说去了解某项新的技术, Google一个问题的解决办法, 整理一些资料, review一些代码, 等等. 这些事情常常会做, 需要花费不短的时间, 可是却很难把它们组织起来, 在日志里面说自己做了某某事情. 所以我想, 是不是可以做一个程序, 自动记录自己一天来做过的所有事情(当然是在电脑上面做的事情, 如果是吃饭睡觉抽烟打屁这类的, 可能交给秘书来记录比较现实).

我先给这个软件起名叫AutoLog好了, 至少在哪天会灵机一动想出更酷的名字之前. 这个程序可以常驻内存, 放在System Tray里面, 它可以自动记录用户在电脑上做的每一件事. 因为我们工作时会打开很多个窗口, 但是每一刻总是有一个窗口处于激活状态, 那这个程序就可以记录下每一个窗口处于激活状态的时间段. 例如VC, Word, IE, MSN, 等等....再根据这些程序的标题栏, 我们就可以大致了解具体是在做什么内容的工作, 比如在做哪个工程/文件的编写, 在和某人聊天, 在Google关于什么的资料. 可以将这些资料保存起来, 按照时间或工作内容进行组织, 就可以大体描绘出自己一天来做的工作了. 如果还可以检测键盘和鼠标的动作, 感知无用户动作的时间, 还可以记录用户的发呆时间^_^

初步想了一下, 会用到的技术包括对Windows窗口的枚举, 激活和隐藏, 关闭等消息的捕获, 系统空闲的感知和记录. 数据组织方式和存储方式是一个需要研究的问题, 而从大量数据中选择合适的规则进行挖掘也是一个需要仔细考虑的方面.

想了这么多, 不知道这个想法是不是早就有人想到了, 并且已经作出完整的实现, 有空的时候我得找找看, 嘻嘻.

使用Unicode开发所有的应用程序

在做过繁体中文的应用程序后,终于受够了面对程序界面上的一大堆乱码,调试时在不同内码的平台上来回切换,不时的打开南极星进行内码转换和big5字符输入. 前两天看到了上面作者无情抨击那些不懂Unicode为何物并且自认为只有在自己的系统中显示正确就可以的程序员的文章. 终于下定决心, 告诉自己, 今后除非客户明确提出, 否则一定要使自己的程序支持Unicode.

其实这样做的好处真的很多, 首先在编写非简体中文平台的程序会变得比较简单, 因为无论在何种语言的OS中表现都是一样的, 不需要去转码, 也不需要把build好的程序拿到其他语言的平台上去测试; 其次, 在做web开发时, 不用去操心在不同内码间转换错误造成的显示不正常. 因为Java和ASP.NET都是支持unicode的, 如果要处理多字节字符, 反而需要进行转换, 麻烦; 再次, 现在无论是COM开发还是中间件开发, 默认支持的字符都是unicode, 更不用说Visual Basic根本就是unicode的. 硬让这些程序去处理多字节字符, 简直是一种倒退!!

不好的地方嘛, 也有. 在Windows 98和NT上面想要做Unicode简直是Mission Impossible, 虽说不是真的不可能, 不过还是不试的好.