2008年9月2日 星期二

谷歌浏览器 google chrome试用体验

当天早上第一时间下载并安装了google chrome,试用了一下总体来说超乎想象,因为之前试用的google拼音和google金山词霸都不是很好,特变是金山词霸,第一次输入词慢的让人忍受不了
用google chrome在blogger上写blog的时候,中午字体和IE,firefox不一样,黑体,很醒目,哈哈
总体用下来是有优点可说的
1)速度快,JS8效率惊人
2)少了很多toolbar,显示面积明显加大
3)占用内存比Firefox少,比IE7更少,尤其是IE7加载新浪后有内存的泄露
4)显示中午网站让人满意,不像Safari那么不容易让人接受

缺点
1)有些网站显示有问题,比如新浪的股票行情不能自动刷新,www.fangdi.com.cn里的价格不能显示
2) CPU占用高,Google的一贯通病
3)显示Google的自家网站竟然有问题,http://www.google.com/chrome/intl/zh-CN/features.html明显layout有问题

不过总体来说很是很不错的!

2008年8月27日 星期三

更加激进的计划

随着调试的顺利进行,遗留的基本工作,
1) TimerQue
2) Log
3) Domain

当然前2个很重要,尤其是Log是调试的手段之一。

更加激进的计划是,
1)9月份完成基本的coding和test case的编写
2)10月份进行编译配置文件,其他平台上的调试
3)11月份进行bug fix,编写release文档,example code,更新wiki ,争取11月底发布第一个release

Linux POSIX message queue 经验总结

Linux的Posix message queue是一个特殊的文件系统(file system).在使用之前需要mount
$ mkdir /dev/mqueue
$ mount -t mqueue none /dev/mqueue

the default max message number( attr->mq_maxmsg): 10
the upper limit of max message number ( attr->mq_maxmsg): HARD_MAX or (131072 / sizeof(void *)) (32768 on Linux/86).
The default and minimum value for msgsize_max is 8192 bytes; the upper limit is INT_MAX (2147483647 on Linux/86).
system message queue max number: default 256, the range 0 to INT_MAX.

if a message que is not removed by mq_unlink(), a message queue will exist until the system is shut down.

message queue的命名规则,
Each message queue is identified by a name of the form: /somename.
Two processes can operate on the same queue by passing the same name to mq_open().

函数用法:
Message queues are created and opened using mq_open(3)
Messages are transferred to and from a queue using mq_send(3) and mq_receive(3).
When a process has finished using the queue, it closes it using mq_close(3).
When the queue is no longer required, it can be deleted using mq_unlink(3).
Queue attributes can be retrieved and (in some cases) modified using mq_getattr(3) and mq_setattr(3).
A process can request asynchronous notification of the arrival of a message on a previously empty queue using mq_notify(3).

优先级定义
Message priorities range from 0 (low) to sysconf(_SC_MQ_PRIO_MAX) - 1 (high). On Linux, sysconf(_SC_MQ_PRIO_MAX) returns 32768, but POSIX.1-2001 only requires an implementation to support priorities in the range 0 to 31;

特殊Notify
mq_notify,可以不用阻塞方式来获取有空到队列有消息的通知,用来注册callback函数。

2008年8月26日 星期二

gFSM 计划

第一个release计划在2008年12月底之前完成,
1)9月份完成基本的coding
2)10月份进行test case的编写
3)11月份进行编译配置文件
4)12月份进行bug fix,编写release文档,example code,更新wiki

2008年8月25日 星期一

gFSM顺利进展中

coding style文档上周已经release了,发现如果要写的全,写的好的话,完全可以写一本书,呵呵。
gFSM的coding已经开始一星期了,进展非常顺利,当然也遇到很多问题,特变是在定义宏和如何用C实现C++的一些特性方面,走路很多弯路,也总结了很多经验。
1)在C里,数据的继承就是包含父结构的所有数据定义
2)在C里,方法的重载就是调用预定义的结构,同时输入参数强制转换为父结构类型。
3)在C里,方法的重写,根本就是重新写一个函数,哈哈

coding过程中发现pjlib的memory pool,list用起来不方便,虽然memory pool使用了垃圾回收机制,但是对于内存的使用效率不高,没有显示的free,无法重复利用已分配的内存。
list没有获取单个node的方法,还得对list进行原始操作,并且没有单项列表,只有双向列表。
有一个fifo buf好像是loop buf,需要好好看看。

FSM的基本框架已经搭起来了,还需要下面方面努力,
1) Message Send
2) Timer Queue
3) Message Queue
4) Log
5) Domain

其中,同步消息和domain的实现可以以后考虑,Log需要结合pjlib进行实现。

2008年8月19日 星期二

SVN搞定,feature request文档released

Feature request v0.01 released!但是接下来可能就要借助sf.net上的feature request来加入新的需求了,也好跟踪。
SVN checkin了一些基本的目录结构,剩下就是coding工作了!第一步先定义好头文件和宏,有个问题就是常用类型名的定义和OSAL函数的使用问题,现在看来比较好的选择是:
1)让应用直接使用第三方pjlib的函数接口,这样省去了维护和接口的重复定义
2)gFSM提供自己的数据类型,从长远C++,Java的支持来看,采用DWORD这样大写的数据名称比较合适,但是对于长期使用C的潜入式编程者,初次使用会有些抵触情绪。

2008年8月7日 星期四

2008.8.8 gFSM

完成了gFSM在sf.net上主页的设置,donation帐户Paypal的设置,mailing list的设置,sf.net真是功能强大并且很容易上手,如果在公司这样简便易行而且又极具扩展性的开发环境支持是多好!
Fedora 7的vmware也按照好了,一切顺利!
晚上可以看奥运开幕式了,哈哈!