2009-01-31

我的Palm Treo 680手机所安装的软件

从600换成680也一个多月的时间了,晒一下自己所装的软件。

(一)系统增强类

中文系统及掌易输入法,这个就不必多说了,都是大家所熟知的。
butler:从600开始就是我必装的一个软件。装上后可以不进电话界面即可通过长按键呼出收藏夹的应用程序或快速拨号,还可以呼出command bar用于拷贝粘贴比较方便,短信锁机功能,闹钟(最多可定义6个)。

与butler同公司软件phone technician,我只用它可以定时开关电话。

takephone,买了680后又换了新版本的takephone,是对电话的一个相当不错的增强。这个软件可以将拨号界面和找电话本的界面统一在一个界面里,十分方便,而且在它的界面里还可以定义一些程序的快捷方式以及快速拨号。另外还可以定义拨号规则,比如对0开头的号码加拨17951等。

nvbackup和rescobackup,以前用600时一直用cardbackup和rescobackup的组合,但是有一次我用cardbackup恢复时出现了一些问题,于是换成了nv,据说对nvfs支持较好,但是功能简单了些。装两个备份软件的原因是万一一个备份恢复不了还可以用另外一个恢复。每天用nv备份,然后一三五再用 resco备份一次。

TreoSelectText:装上之后可以用shift和箭头选择文本,比较有用。
Powerrun:将程序装在卡上的辅助工具。

McPhling:用于调用DA程序。

daynotez:记事本软件。或许这个软件不应该列在必装软件之列,只能是个工具而已,但是我却离不了它,就像离不了日历一样离不了它,从600开始就在用。相对于系统的 memopad它主要的特点是可以记住每条记事的日期和时间。平常想起什么都在这个软件里记。系统的memopad用psmemo增强一下后也倒可以,但是不能自动记住日期成为其短板。

resco explorer 文件管理器,类似windows资源管理器的界面,操作比较方便。

uninstall manager:软件删除,可以将软件以及与之相关的文件都删除。

kblightoff:关掉键盘灯,对于像我这样经常用手机上网和看电子书的人来说省电效果比较明显。

(二)工具软件:

splashshopper,用于记需要买什么东西或是出门带什么东西。

splashID:用于记一些账号和密码。

pmt&pst:记账软件,本来喜欢用adarian money的,但是不能记股票与基金。pst与pmt可谓配合完美使你时刻掌握自己的财产。

tibr pro:电子书阅读软件,可以看卡上的txt,打开2M多的电子书很快。

handcn(掌迅通):上网看新闻、天气预报、股票、查列车时刻表

xiino:浏览器,680时代的blazer依然不能让人满意,xiino虽然比较简陋,但是用来上上3gpda还是够用了。

snapper mail:同样680时代的邮件工具也还是不如snapper,最新的snapper支持imap,收gmail更方便。

datebk5:日程管理,尽管在用它的时候死了好几次机,但还是没有删除,就是冲着它的浮动事件。也奇怪,为什么680系统的日历不支持浮动事件了呢。600的时候我没有装第三方的日程管理软件。680的日历增加了today视图感觉还是不错的,但却有些短板。不知道datebk6怎么样,还没有试用过。

handbase:数据库软件,我最常用的就是那个菜谱数据库,做菜的时候查一下。

zdic:词典软件,卡上装了中文wiki,相当于带了本百科全书在身上。英汉、汉英词典都各装几个,再装个汉字的字典查一下不认识的字,基本就够用了。

netClock:以前用600的时候偶尔用它来对一下系统时间,可现在680用得比较频繁了,软件问题导致的重启后好像系统时间就不对了,每次被我搞死之后都得对一下时间。最新版本的nvbackup也有此功能,好像掌迅通也可以。

Atlas:地图软件,装上部分地区的电子地图出门的时候偶尔会用一下。

busline:查公交线路用。

rescoView:看图软件

treo battery:看电池信息软件,可看到当前电流、电压及容量。

掌上农历:老许作品,可用来看农历及计生日。

SMSbackup:05年至今的短信全都留着呢。

(三)DAs
机子上共装了tealtime、tealcalc、tealpad、zdic_da、cooldas共五个da程序,最经常用的是tealpad和coolDAs。tealpad用于在不退出程序的情况下记事,cooDAs用处比较多,我常用的功能是:开关红外、看系统时间、重启系统等。

(四)PC端工具

PC端必装的工具:handstory,在palm上没有装,PC端的handstory可以在上网的时候将一些感兴趣的东西拷贝到系统的memo或是作成电子书同步到手机上。 handstory制作的电子书可以直接用tibr pro看,所以palm端的handstory完全可以不装,装了之后把我的home键搞到它上面了,一怒之下就删除了。

(五)游戏

一直没删除的游戏bike or die,不错的一款游戏,只是后来真的打不下去了,现在玩得也少了。

freecell:空当接龙。

(六)杂谈

再谈几个事情吧,关于launcher:以前用600的时候就一直用系统的launcher,因为分辨率实在有限,装zl之类的东西用起来不见得方便,炫一些而已。现在用680试了一段时间的treo launcher,不知道和什么软件冲突,然后还是用回了系统的launcher。

关于铃声管理:还是用系统自带的铃声,而且一直用treo那个音乐,听了几年了舒服。个人对手机铃声也是追求不高,所以就没装。手机只设三种铃声:电话本里有的treo,电话本里没有的就用那种类似固定电话铃声的那种声音,老婆的电话网上找了个midi,已经够用了。

关于拼音检索电话本:两年前(还在用600)用一个软件将电话本的所有人名first name都改成了拼音声母组合,以后添加的联系人都这样记,所以就没装拼音检索的库之类的东西,也没装chinesmate。

Linux下用cp -al实现增量备份


用以下代码实现增量备份:

rm -rf backup.3
mv backup.2 backup.3
mv backup.1 backup.2
cp -al backup.0 backup.1
rsync -a --delete source_directory/ backup.0/

说明:cp -al实现的是保留原来的用户、修改时候等信息建立硬链接,这样的拷贝是不会占用额外的存储空间的。而如果文件发生了改动,则进行rsync的时候会将最新的改动反映在backup.0目录中。

2009-01-14

版本管理——感受subversion和CVS

subverion和CVS


以前在学校里的时候做开发一直用CVS进行版本管理,那时候大部分需要管理的代码均在Linux下写,用Emacs编辑器,直接在里面调用CVS进行提交、更新访问分支等操作感觉十分方便。后来得知了subversion,知道了subverion是未来开源世界的主流版本管理系统,参加工作后一直用subverion。

下面从自身的感觉谈一谈相对于CVS subverion的优点(看官说了,难道subverion没有缺点吗?不好意思我至今还没有感受到subverion比CVS差的地方):

1. subverion能够很好的对文件名(包括目录名)的变更进行跟踪,而CVS做不到;
2. Subverion可以很好的管理目录,而CVS不能;
3. 相对于CVS,Subversion的版本分支更直观而且容易理解;
4. Subversion对二进制文件管理更成熟。这可能是我自己比较偏颇的看法,我是现在是在windows下用,经常用subverion管理word文件,配合tortoiseSVN可以很方便地对word文件的版本进行比较。
5. subverion服务易维护。以前用CVS建服务器,对权限进行分配,只能依靠Linux系统的账户安全机制,但我又不想把每个人都在服务器上拥有一个账户。而现在的subverion服务的权限管理机制比较灵活,可采用apache的权限管理机制。

再说一句,如果你喜欢编程,或者在从事开发,但你又没的听说过版本管理工具或者subverion,那么你真的应该试试,试过之后你就会发现离不开它。

2009-01-09

评价一下微软的vista系统

单位新进了一批机子,都是双CPU、8G内存的配置,而且每个cpu都是四核的,系统安装的是vista 64位操作系统,打开设备管理器可以看到8个cpu。最开始几天在上面安装了photoshop,把内存可用量调节到最大,打开600多M的 tif文件,进行色阶调整,那叫一个快啊,感觉机子好了是比较爽。

这几天没怎么用那台机子,都是别人在用,装了一些软件。昨天去用了一下发现已经没有了新机子的那种爽劲了。程序之前的切换经常莫名其妙的没反映。我就纳闷了,共有8个核,操作系统到底是怎么调度的,一个软件(现在机子上跑的还没有真正意义上的并行软件)最多也只用一个核,系统进程之前切换起来为什么还是那么慢,而且会没反应。真不知道这操作系统是怎么做的,到底有没有考虑到多CPU的问题。记得以前用双CPU的redhat linux时,感觉双cpu最起码在多进程运行时是感觉不到速度递减的,可是vista为什么就做不到。

前几天看到一篇文章:www.google.com/gwt/n?u=http%3A%2F%2Fwww.cnbeta.com%2Farticles%2F74192.htm,讲的是关于软硬件系统用户的需求到底是怎么样的,我也在想微软搞需求的人到底是做了些什么,仅在界面上花一些难道用户就会买账吗?
___
Sent with SnapperMail
www.snappermail.com

2009-01-07

diskgen 救我于危难之中

关键字:硬盘分区被删除、恢复

今天上午想在windows中调整一下磁盘分区,把机器上以前装的Linux分区全部删除然后将磁盘空间留出来给windows用。当时linux有两个分区位于D盘和E盘之前,在winXP的磁盘管理里面右键点linux分区选择删除,答确定之后居然是两个linux分区和E盘都成了未分区空间,也就是说E盘所有的东西都不见了。可怜我所有重要的数据都在E盘上存着!

中午上网搜了搜,用了一个dos下的工具diskgen,这个工具可以对分区表备份恢复,更重要的是可以重建分区表。于是在dos方式下启动它,然后选择重建分区表,交互方式,一步步提示找到的分区,把除linux分区之外的分区居然全部都恢复出来了,真是救我于危难之中啊。

经验总结:如果是由于分区的操作造成分区表出问题而找不到磁盘或者驱动器成了可用空间等问题,磁盘上的数据一般不会丢掉,用diskgen的分区表重建功能即可以恢复分区表,但些时一定要注意做好分区表的备份,万一不午的话还可以恢复一下分区表。此外,我回想了一下这次分区表出问题可能还是因为pqmagic和linux下的分区工具存在兼容性问题所致。当时分出那两块linux分区时是用gparted调整windows分区大小然后再分的,但这次我本想用pqmagic分但是它却报错说要修复几个错误,回答了几个yes之后pqmagic便打不开了,之后只好用windows的磁盘管
理,结果就出现了上述问题。幸亏分区表可重建,不然哭也没用了。

Excel对单元格的相对引用与绝对引用

在输入公式时如果引用的单元格为A1这样的形式为相对引用,这种引用在粘贴时随着粘贴的位置不同而自动改变,而如果在行号和列号前均加$,则引用为绝对引用,粘贴后不改变。也可以仅在行号或列号前加$,如$A1或A$1。

对其它表格的引用sheet1!A1,中间用!隔开,如果表格名称中有空格则将表格名用单引号引起来。'my sheet'!B3。

Visio图形贴在Word里打印出现方块字或问号字的问题

有时候将Visio图像贴在word里打印的时候字体不能正常打印而是出现了方块或是问号(特别是将Visio图形在Word里进行了大小缩放后经常出现这种问题),这时可以在word里右键点Visio图,然后选择转换,将图形转换成Visio格式即可。

2009-01-06

Windows系统相关~driver information目录是干什么用的?

每个分区的根目录下都有一个driver information的隐藏目录,这个目录是由数据恢复软件finaldata产生的,里面通常会有一个比较大的文件,删除它基本也不影响使用。

另外还有一个每个分区都有的隐藏目录:system volume information,这个目录是系统还原产生的,在所有驱动器上关闭系统还原后此目录里的东西会变小。
___
Sent with SnapperMail
www.snappermail.com

C++编程基础~关于函数模板与其实现

模板在编译过程中要根据类型的不同生成不同的函数实现,如果编译器不知道用哪种类型生成这种模板的实现,则会报模板没有实现的错误。

这样讲可能比较难理解,下面看一个例子:
定义一个求最小值的模板函数,其声明在min.h文件中:

template<class T> T min(T x,T y);

然后在min.cpp文件中写入模板实现的算法:

template<class T>T min(T x,T y)
{ return x<y ? x : y;}

在main.cpp中包含了头文件min.h,并且用到了这个函数模板的float实例:

a = min(3.5, 4.4);

然后连接的时候将min.o和main.o一起连接为可执行文件,这时候编译器会报错,因为template没有实现,如果在min.cpp文件中添加这样一行则能够正常编译:

template double min (double,double);

模板的机制是虽然方便了编程者,但是对于编译器而言,你用到了哪种数据类型的模板,编译器还需要生成哪种类型的模板实现。在上述例子中。min.cpp文件中相当于定义了模板函数的算法规则,但是编译器在编译的时候并没有生成任何的关于函数实现的代码,因为它不知道该生成什么类型的实现,而在main.cpp中虽然知道该用到模板的double实现,但编译器不知道怎么去实现,因为实现部分代码在min.cpp中。如果在min.cpp中添加了那一行,则在编译min.o的时候编译器即将double类型的模板实现编译到了min.o中,与main.o连接便不会再出问题。

所以stl库中所有的函数(类)模板实现均以内联函数的方式写在了.h中,这样每次在引用这些模板声明时实际上也包含了这些模板的实现代码,在程序中调用这些模板的实例时便能够正确生成其相应的实现。

___
Sent with SnapperMail
www.snappermail.com

2009-01-05

sudoers文件配置(转)

以下内容摘自:http://tanger.javaeye.com/blog/190362

sudo是linux下常用的允许普通用户使用超级用户权限的工具。

它的主要配置文件是sudoers,linux下通常在/etc目录下,如果是solaris,缺省不装sudo的,编译安装后通常在安装目录的 etc目录下,不过不管sudoers文件在哪儿,sudo都提供了一个编辑该文件的命令:visudo来对该文件进行修改。强烈推荐使用该命令修改 sudoers,因为它会帮你校验文件配置是否正确,如果不正确,在保存退出时就会提示你哪段配置出错的。

言归正传,下面介绍如何配置sudoers ,首先写sudoers的缺省配置:

#############################################################
# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.
#

# Host alias specification

# User alias specification

# Cmnd alias specification

# Defaults specification

# User privilege specification
root ALL=(ALL) ALL

# Uncomment to allow people in group wheel to run all commands
# %wheel ALL=(ALL) ALL

# Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL

# Samples
# %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users localhost=/sbin/shutdown -h now
##################################################################


1. 最简单的配置,让普通用户support具有root的所有权限


执行visudo之后,可以看见缺省只有一条配置:
root ALL=(ALL) ALL
那么你就在下边再加一条配置:
support ALL=(ALL) ALL
这样,普通用户support就能够执行root权限的所有命令,以support用户登录之后,执行:
sudo su -
然后输入support用户自己的密码,就可以切换成root用户了。

2. 让普通用户support只能在某几台服务器上,执行root能执行的某些命令


首先需要配置一些Alias,这样在下面配置权限时,会方便一些,不用写大段大段的配置。Alias主要分成4种
Host_Alias
Cmnd_Alias
User_Alias
Runas_Alias
1) 配置Host_Alias:就是主机的列表
Host_Alias HOST_FLAG = hostname1, hostname2, hostname3
2) 配置Cmnd_Alias:就是允许执行的命令的列表
Cmnd_Alias COMMAND_FLAG = command1, command2, command3
3) 配置User_Alias:就是具有sudo权限的用户的列表
User_Alias USER_FLAG = user1, user2, user3
4) 配置Runas_Alias:就是用户以什么身份执行(例如root,或者oracle)的列表
Runas_Alias RUNAS_FLAG = operator1, operator2, operator3
5) 配置权限
配置权限的格式如下:
USER_FLAG HOST_FLAG=(RUNAS_FLAG) COMMAND_FLAG
如果不需要密码验证的话,则按照这样的格式来配置
USER_FLAG HOST_FLAG=(RUNAS_FLAG) NOPASSWD: COMMAND_FLAG

配置示例:
############################################################################
# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.
#

# Host alias specification
Host_Alias EPG = 192.168.1.1, 192.168.1.2

# User alias specification

# Cmnd alias specification
Cmnd_Alias SQUID = /opt/vtbin/squid_refresh, /sbin/service, /bin/rm

# Defaults specification

# User privilege specification
root ALL=(ALL) ALL
support EPG=(ALL) NOPASSWD: SQUID

# Uncomment to allow people in group wheel to run all commands
# %wheel ALL=(ALL) ALL

# Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL

# Samples
# %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users localhost=/sbin/shutdown -h now
###############################################################

visual studio里的预编译头文件

Visual C++在自动生成的代码中,每个cpp文件都会在第一行包含一个stdafx.h的头文件,在项目中还会自动生成一个stdafx.cpp文件,其内容中仅有#include"stdafx.h"一行。

VS的这种机制是为了加快编译的速度,将所有经常用到的头文件均放在stdafx.h文件中将其include,这样不同的文件包含这些头文件时便不会被重复编译。

但一些在网上下载的跨平台源程序里面不会有这种针对VS的设计的,如果直接在VS下编译可能会出问题。在project设置里面(或单纯那个源文件的设置)precompiled headers,选择not using precompiled headers即可。
___
Sent with SnapperMail
www.snappermail.com

2009-01-04

word应用技巧~去除页眉上讨厌的横线

有时候页眉明明删除了,但是页 眉上那个讨厌的横线仍然存在。有两种方式可以去除它:
1. 编辑页眉,然后打开样式与格式任务窗格,点击清除格式即可。
2. 选中页眉中的所有文字(如果没有文字就选中那个回车),然后选择菜单边框与底纹,将边框改为无。
___
Sent with SnapperMail
www.snappermail.com

2009-01-02

我的下一个手机

这几天有幸试用了一下三星的一款windows手机,i688,是基于TD网络的。最明显的感觉就是快,上网快(3G的速度是要明显快多了)、打开软件快。只是这款手机没有全键盘让人打字很不爽,实在忍受不了手写的速度。

自从用了palm的treo600之后,对palm的手机便情有独衷了,特别哲学它的简单高效,用全键盘打五笔真的很快,所以用palm来记事真的能发挥其最大的效能。后来那支600不行了,也不想修它了,只好买了个680。680让人感觉还是比较失望的,虽然处理器速度高了内存大了,但是运行软件的速度却慢了。系统开机启动比较慢、软件之间切换也比较慢,唯一能感觉快的地方是当你运行着一个大软件的时候,比如像dtg这样的巨无霸。心里想,怪不得palm在走向末落,它在设计这款手机的时候到底有没有考虑到用户的感受啊。

但缺点规缺点,对于680用习惯了还是一款很不错的手机,所以一直也没有想换手机的冲动,直到这几天试用了一下三星的i688。倒不是因为这款三星的手机怎么样,因为我是习惯了全键盘操作的人,是不喜欢做什么事情都用笔去点的,主要是因为通过试用这款手机,发现手机还可以这样用。突出的一个特点便是上网的速度,花同样的钱谁不想上网速度能快一些。再就是其软件十分丰富,不像日渐走向末路的palm软件那么难找。

我想我下一个手机大概要满足以下几个条件了:
1. 全键盘,有五笔输入法。这一条永远是排第一位的。
2. 智能机,操作系统待定(其实不太喜欢windows)
4. 3G网络支持,我用手机不可能不上网的,既然北京有3G的网络。
5. 待机时间在三天以上(正常使用的情况下),因为已经有些烦680的电池了,两天整就得充电,太耗电了。
6. 屏幕稍微大一点.

___
Sent with SnapperMail
www.snappermail.com

Windows下小巧实用的文件同步工具PalSynchronizer

有时候觉得得实在想不通,为什么Linux下的简单的rsync没有windows版,如果有的话我就不用费心思再找什么文件同步工具了,但实在没有办法经常用两台机子,文件(目录)同步的需求确实比较迫切。只能找别的工具,试了很多但都不尽人意。allwaysync的免费版30天内不能超过多少个文件的限制满足不了我的应用,微软的synctoy真是个玩具,对中文文件名支持很差,totalCommander里自带的文件文件同步工具也有 Bug,用了几次感觉很不爽。无意中在sf.net搜到了一个PalSynchronizer感觉很不错。

这个工具软件体积很小不到1M,需要.net Framework2.0支持,但同步目录的功能做得还算比较完善,选择两个目录,然后可以对两个目录的文件进行比较。有更新的文件可以选择将Folder1更新到Folder2也可以相反,对于folder1下没有的文件,从folder2也删除也可以不删除。界面比较简单,但很实用,也比较酷(半透明的)。


可以将常用的同步的两个目录做成一个Job,其相应的配置也与单独的Job相关,想同步这两个目录的时候只需要在Jobs菜单里选择一下就可以了。在选项里可以选择忽略隐藏文件,这样对于同步带有.svn目录的程序文档比较有用,可以减小需要拷贝数据量的大小。

强烈推荐!
___
Sent with SnapperMail
www.snappermail.com

关于google

一直以来对微软都有一种抵触的情绪,那天一个同事告诉我在VB.net里访问XML文件十分简单,虽然我对自己能够较快的学会VB编程比较有自信,但是还是不想学习VB,因为实在是对微软有些抵制的情绪,不可否认微软还是做了很多有益于IT业发展的事情,但是现在的微软总让我有一种固步自封而且阻止别人前进的感觉。所以我可以很快地学习一下PHP,然后用PHP编写一些很小的动态网页程序,但是却抵制学习VB。

再说一下google,最近看了一本书《撬动地球的google》,对google的印象越来越好,从gmail开始,觉得google出口的东西用户的认可度较高,而且google的产品对于个人用户大多数都是免费开放。刚在自己这个网页上添加了google ADSense的链接,希望能够推广一下自己的博客,能给自己带来点收入最好,不能带来的话也权当玩玩。