发现一个不错的等宽字体:Vista的Consolas


发现一个不错的等宽字体:Vista的Consolas。以前我试过,感觉看不清楚。而且只要关闭了Cleartype,就没法看了。今天又试了试,发现只要改成粗体,看起来真是美。个人非常讨厌Courier类的衬线字体,看了就毫无编程的欲望。唯独此类Sans字体符合我的胃口。Bitstream Vera Sans Mono和Consolas是我目前使用的两款优秀的字体,分别来自于Linux和Windows阵营。相对来说,Bitstream Vera Sans Mono在使用标准体和粗体混显的时候效果比较好,但是l外形有点怪异,而且小字体的m显示的也不是很好看;Consolas则在11号以下要是用标准体就过于细小模糊。然而Consolas的粗体十分漂亮,非常合眼。我现在就把SlickEdit的字体改成Consolas了。不过这个Consolas经过我自己的小修改,让它变成正常状态下显示的就是粗体。这样显示起来中文就不会被连带显示成粗体,要好看许多。

下图就是我修改的Consolas Bold和我精心配置的IceAge配色在无敌的SlickEdit中显示的样子:

Posted in 编程. 2 Comments »

同时启动多个SlickEdit


原来一直以为SlickEdit只能启动一个实例,所以一直不得不使用SourceInsight配合其使用以便同时参考别的Project。痛苦了几个月终于发现SlickEdit是支持多实例的!!!
 
使用隐藏的命令开关“+new”即可。只要把SlickEdit的快捷方式修改成这样:
"E:Program FilesSlickEditwinvs.exe" +new
 
SlickEdit就能启动多个实例了。找不到官方对于vs.exe命令开关的说明,弄得神秘兮兮的都不知道里面还隐藏着什么秘密。

超级PK:SourceInsight和SlickEdit的C语言能力测试


Slickedit vs. SourceInsight,谁的代码分析能力比较强呢?今晚我来做个实验。题目就是C语言里面最容易让人晕得一塌糊涂的结构体、结构体指针、指向指针的指针和指针数组的问题~~

先构造如下的数据结构:

struct st_s {
    struct st_s *b;
    struct st_s **c;
};

typedef struct st_s *st_t;

st_t            tmp;
struct st_s     *arr[100];

OK,现在测试两位同学对指针的理解能力。简称SourceInsight为SI,Slickedit为SE。由于SI在国内风头明显比SE劲,先让SI在楼上做题,楼下是SE(调成反白大字体显示的那个)。

很遗憾,第一题SI就做错了。tmp是个st_t类型,也就是一个指向struct st_s的指针。那么如果打“·”,是应当不会出现任何东西的。显然SI没有分出结构体和指向结构体的指针的区别。只懂得傻傻地瞎蒙。SE明显做的要好的多,这题做对了。

接着继续变态一点:指向指向结构体的指针的指针

可以看见,SI还是在瞎蒙。c明显是一个指向指针的指针,无论是·还是->都不应该列出任何成员来。SE就比较精明。但是SE这样到底是它根本就不认得都不懂得列还是说就是正确呢?继续测试:

我们取这个指向指针得指针所指得数据(就是那个指向结构体的指针了):

SI这回死活想不出来:前面加个星星是啥玩意啊?交白卷了。SE显然又做对了,没话说。20年的功力不是白积累的!

下面再去取b成员,它是一个指向结构体的指针。进行这个测试实际上没什么意义了,因为通过上面的测试,大家已经对SI的水准有了了解 😉

结果和预想的一样。SI根本认不出这是什么东西,列不出任何提示。SE依然做对。所以我们的结论是:
SourceInsight的C代码分析能力就是猪头。根本分不清复杂的指针与结构体的关系。

该用哪个作为自己的代码编辑器,想必大家已经心中有数。当然SE并不是完美的,如果加入了宏,SE也是没有办法了。因为这种情况除非SE能对其进行预处理。这就必须和编译器结合,对于一个支持多编译器跨平台的代码编辑器来说,是根本不现实的。

我的两台爱机


我的两台爱机:刚上大学的时候买的电脑和刚开始工作后用自己的工资挣来的电脑。

大学时买的电脑当时是P4 1.7、256MB、40G、GF2 MX400 64MB、三星15寸1024×768、CD-ROM、10/100M网卡。等到毕业的时候慢慢升级已经变成了1G内存、120G硬盘和一个三星COMBO(这辈子见过的最垃圾的光存储产品)、802.11b无线网卡了。

本本是T43,P4M 1.83G、1G、80G、X300 64MB、14寸1400×1050、COMBO、802.11b/g无线加有线和猫。

过几天这个台机就要搬到隔壁房间去了,合影留念一下。

写了个宇宙无敌超猛二进制计算器


平安夜在家没事,写了个二进制计算器。

这个计算器已经想写很久了,因为自从做底层软件开发以后就开始忍受数制转换和二进制判读之苦。绝大部分的计算器拿来二进制一看就满眼0和1,再根据CPU的Datasheet找寄存器位真是吐血。而且二进制的输入一直是很烦的事情。不知道那些开发二进制计算器的人自己用不用二进制输入,用0和1来输入二进制真是最傻最烦人的方法。而且大多数计算器做数制转换都要频繁地在DEC/HEX/BIN之间切来切去。实在是非常烦人的事情。经常输入了十进制以后才发现进制开关打在HEX上,真是吐血。天底下做底层开发的人这么多,怎么就没有一款好使的计算器呢?

经过了长期忍受以后,终于要爆发了。俺只好自己操刀写一个俺理想中的计算器。首选目标是PalmOS平台。因为对于我来说,它是真正的“跨平台”哈哈,随便再哪用,掏出我的Palm就OK。至于PC上面,实际上移植到Windows平台十分容易。几乎只要改几行代码就好了。不过我还在犹豫要不要把它做个跨平台的版本。Java我是不想碰,实在是讨厌这种技术。但是JavaScript感觉不错,至少用户无须安装庞大的JRE。只是这样我的东东等于就是开源了~~不是很爽。算了,PC的先不管了,还是看看Palm版本的用户接受程度再说吧。毕竟我这个东西实在是比较另类。

2008年1月11日更新:Windows桌面版已经完成啦!见:BinCalc最新版本发布

经过一个晚上的奋战,终于出炉了这个BinCalc:
三种进制同屏输入。要输入数据的时候只要直接在对应的键盘输入即可,无须切换。三个进制同步刷新。
二进制读取和输入方便。其中带有标尺的二进制结果显示是从SC-102PC上借鉴来的。至于二进制输入采用了个人构思的全新的位指示器输入方式,直接点击对应位即可。实际使用后效果十分满意。输入二进制非常便捷。并且位指示器也让你关注数字中特定位非常容易,所以在调试汇编或者开发板的时候,只要输入调试输出的HEX数据,就可以很容易地借助位指示器对照CPU的Datasheet快速判读寄存器的对应位。
还有ANSI字符显示,这个功能其实一点用也没有。只是因为标题栏右侧空了一大块,我就随手加上了:)

下载见:BinCalc最新版本发布

Posted in 编程. 5 Comments »

弄掉Firefox的地址栏自动全选功能


突然发现升级到Firefox 1.5以后地址栏不好使了,每次只是想选中一部分但是总是一点击就是全选,烦死了。搜索栏也是这样。

所以在about:config里面翻了翻,发现有个browser.urlbar.clickSelectsAll默认是true~~改成false就好了。

对Thinkpad键盘的严重不满


1.没有Win键,非常郁闷。不过用左Alt做了映射以后,基本没有什么影响,可以克服
2.F功能键和Esc键排列严重错位,极其郁闷!!!!已经到了无法忍受的地步。Esc键的位置现在是F1,然后F1-F4的位置整体右移一个键的距离。实在是令人郁闷!!用拼音输入法的时候,Esc正好是清除打错的拼音,结果每次都是按出F1帮助来。F2是存盘,一按就按到F3,结果一下子跳到下一个搜索结果(Find Next)去。最经常用的这几个键都乱套了。
现在先使用按键映射软件,把F4挪到Esc的位置,再把F1-F4依次映射成Esc,F1-F3。勉强解决问题。但是有的时候不小心用眼睛看了键盘,反而会按错~~
3.方向键上面多了两个前进、后退键。经常想按左右键一下会按到那两个键上面去。想重新映射这两个键,KeyTweak居然捕获不到扫描码(不过我试了自己编程能捕获)。但是这两个键还算是小问题,不像F键错位那么严重。

所以IBM键盘手感虽好,但是键位排列简直就是狗屎。还不如我原来用的紫光101小键盘键位来的科学。

干掉开始菜单里面的Access IBM图标


装上AccessIBM以后,XP的开始菜单就多出了一个黑乎乎的Access
IBM图标,巨难看!还不能弄掉。实际上有一个蓝色的硕大的AccessIBM按钮就让我觉得挺过头的了,居然还要在开始菜单占用一个坑,而且美工严重有
问题,和我的Windows主题极其不和谐。不得不想办法去掉它。

结果发现方法很简单,只要在注册表里面搜索Access IBM.lnk就可以了。找到以后将它所在的键整个删掉(一串数字和英文的混合物的那个键)就行了。此时开始菜单上面还会看到那个图标,但是已经不起作用了。这只是因为没有刷新的缘故。只要注销再进去就会完全消失。

办第二代身份证


接到通知,今天下午全家人都得去办理第二代居民身分证。

通知的时间是2-5点。俺2.30从公司出发,将近3点到达办理的地方。老远就看见排队的人从一个小门一直延伸穿过楼梯到另一边楼的走廊上……很郁闷地站入队尾,体验该死的FIFO策略。

显然系统的处理机效率出了问题,在FIFO里面等了N久还是队伍只是前进了一点点,一看表都快4点了,想到那些家伙5点下班,就开始担心会不会被这个FIFO队列的超时机制丢弃~~

好不容易挨到了门口,一看表4点15了。再看前面,惊讶地发现居然有两个处理机!!有一组GG和一组MM在办理户口验证手续。真是FT,都双核心了还是这
种鸟速度~~中国公务员的办事效率真是够可以了。百无聊赖中看了4遍换证流程,大意是先要排队去做户籍信息检查(就是我所在的FIFO队列等待被调度的事
务),然后要去照相(所谓免费数码照),最后再回来交钱(吐血,干嘛不一次搞定)。看到照相,俺不禁生长脖子看了看远处一群人,原来他们都阻塞在两个相机
资源上,郁闷地等待调度。真是FT。

正在数着前面的人数的时候,终于可怕的timeout daemon被激活了:一个MM开始扯着嗓门喊“单子收到5点单子收到5点!!你们这些人回去吧回去吧别排了!!”。幸好声音是从我后面来的~~寒了我一个~幸好早了几分钟来。

熬到4点半,在FIFO里面等待了1.5h之后终于进了传说中的办理厅。看见那组MM正在空闲,赶忙过去办。结果发现她们很郁闷地说网络不通了,一直有毛
病,昏倒啊……然后耐心等待她们重启win2k。终于知道这个双核心的效率实在是低得可怕,所以这么一百多号人的FIFO等了这么久还没处理完。

折腾完了户籍验证(就是看你的那些信息对不对,有没有更新的),俺忘记是几点了,估计我折腾了有15分钟,还算比较快因为没啥好改的。然后领到一张令牌,
让我挂到1号相机资源的等待队列里。俺又开始等,挂了有N久吧,反正俺的腿开始酸了,发现原来在我后面的人指派到2号相机资源的家伙居然都弄完了,我
靠!!!看来这个相机出了问题。等了老半天才看见闪光灯一闪,郁闷到要死啊!!总之最后还是等进去了,咔喳照了像,一下就好了。从摄影师的谈话中才听到原
来那些女的居然还要化妆弄头发什么的o_O,难怪这里的处理速度这么慢!!

最后就是去交钱,20大元。这个倒是非常快,收钱的事情不含糊。全部搞定出来,一看表已经6点了。花了3个多小时搞定一个信息验证一个照相一个交钱,效率真是够高的……新的证要过两个月再取,取证应该不会也这么费事吧……

Posted in 其他. 3 Comments »

重新给小黑弄系统恢复


最近又给我的小黑装上了Windows XP Version 2002
SP2英文版(因为发现小黑的显卡比家里的台机好,所以……),想起了原来的“一键恢复”,觉得每次都这么麻烦地重装驱动还是挺郁闷的(虽然后面发现了把
IBMTOOLS拷到C下面就能用IBM的工具自动安装-_-b,但是终归麻烦),所以想到了Ghost~~

后面不必多说,就是把干干净净装好了IBM配套软件的XP SP2做个Ghost了,一看镜像只有907MB o_O昏倒,恢复也只要10来分钟,远比一键恢复好使还能随便分区。真是不知道原来隐藏分区吃掉的5G都干啥用了~~

看来没有不去掉一键恢复的理由了。