6/11/2009

To support QPF font

最近比较忙而且blogspot 仍然被封锁中,因此很久没更新了,手头上的任务比较多阿,比如其中一个活儿就是为公司的一款老设备增加QPF 字体的支持,因为使用QPF,能进一步提高UI 的速度并减小占有的资源,现在已经做的差不多了(不然也没空来写这个了:-))。

那么什么是 QPF 呢,全称 Qt Prerendered Font ,是用于QT/Embedded下的不可缩放的字体,对于QPF 字体以相同格式的存储,所以在字体显示时,Qt只要读取字体,做相应分 析,然后显示就完成了,这样进一步减少了对RAM 资源的浪费,另外QPF字体是基于UNICODE 编码的,因此具有良好的可移植性。

我们定义的字体名称格式为:type-family-style-width-height-charset-encoding1[,encoding2,...]
另外QPF 结构的定义为:
typedef struct _QPFMETRICS
{
    char ascent, descent;
    char leftbearing, rightbearing;
    unsigned char maxwidth;
    char leading;
    unsigned char flags;
    unsigned char underlinepos;
    unsigned char underlinewidth;
    unsigned char reserved3;
} QPFMETRICS;

typedef struct
{  
    char font_name [LEN_UNIDEVFONT_NAME + 1];
    unsigned int height;
    unsigned int width;
       
    unsigned int file_size;
    QPFMETRICS* fm;
   
    GLYPHTREE* tree;
} QPFINFO;

对于 QPF 字体就是围绕该结构体进行一系列的操作了。

6/03/2009

What is the nc(netcat)?

今天偶然在我们的产品中看到 nc 这个命令,就试了一下,还挺好用,呵呵~

最简单的,先在机器A 运行 nc -l -p 4444,再在机器B 运行 nc 192.168.8.112 4444,这样 A 和 B
两台机器就建立的连接,可以进行聊天了,功能虽然简单,但由此扩展的功能就比较强大了,比如:

(A) nc -l -p 3333 > backup.tar.bz2

(B) nc 192.168.8.170 3333 < data.tar.bz2

这样就将 B 上的 data.tar.bz2 拷贝到了 A 中。

再举一例:

(A) nc -l -p 4444 | tar xvf -

(B) tar cf - . | nc 192.168.8.112 4444

这样就把 B 上的当前目录下所有文件上传到了 A 中。

参考:

http://netcat.sourceforge.net/
http://en.wikipedia.org/wiki/Netcat