-
从五笔转向拼音
五笔还是我在高考完的时候学的,当时我们那个小地方学电脑的主要课程都是学打字,大部分出路都是打字员。学会了,过了几个月,到了学校,又忘了。当时比较有决心,坚持用五笔,没过多久就记起来了。 记得那时候还有人问我借五笔打字的书来着,不过已经有同宿舍的同学开始讲拼音输入法的好处。那时用的是智能陈桥,在机房的破机器上,切换出来要几秒钟。 用五笔也有不知道编码的时候,就用拼音打,我最开始习惯用智能ABC,微软拼音是从来不想用。到现在搜狗拼音、Google拼音盛行并传出绯闻,五笔的确是要退出普通人的生活了。 如果有一个五笔输入法可以像Google拼音一样自动网络同步,该多好。如果可以方便地修改默认的中文输入法该多好,改注册表真麻烦。如果我不添加拼音输入法,别人过来用机器又很不方便。主要就是这两点促使了我转向拼音输入法,Google拼音刚推出时用了一下,太舒服了。 当然五笔也有好处,上大一的时候同班一个MM用“恩”作QQ昵称,我问为什么,她说打不出口字旁的。。。(可能应该打ng而不是en)于是我用五笔打了个“嗯”(KLDN),看着别人的QQ昵称是自己创作的,别提多有成就感了。有时候在BBS上看到有人问,那个“有”字缺两横怎么打啊?五笔很简单,DMB,冇。又有人问,Orz那个O换成汉字是什么啊?是冏(MWKD)。尤其对着手写的花名册输入一些生僻的人名时,五笔真的有拼音起不到的实际作用。当然,可以用手写板解决。 去年到Meimei家的时候,她二哥拿着对讲机跟同楼的哥们一起打传奇。我发现他竟然用的是五笔输入——原来他不会拼音,呵呵。跟用五笔的人聊天,一出错就能辨别出来是五笔用户,比如用五笔的人打“程度”可能打出“程序”,而拼音不会,最多是“成都” 🙂 一个是音,一个是形。还真希望Google弄个五笔输入法出来,虽然可能性不大。
-
Google的圆角生成器
有一次想在页面中做圆角矩形效果,无意中搜索到了这样一篇文章:Googles Rounded Corner Generator 代码<img src=”http://groups-beta.google.com/groups/roundedcorners?c=E8EEF7&bc=white&w=50&h=50&a=tr” alt=”google round corner” />的效果就是这样一个图片: 参数说明: c(color): 前景色 bc(background-color): 背景色(默认为透明) h(height): 高度(默认8 px) w(width): 宽度(默认8 px) a(angle?): 要产生哪个角。有四个值:tl(top left), tr(top right), bl(bottom left), br(bottom right) 太方便了,太方便了
-
Google如何纠正错别字?
刚刚看新浪一个搞笑新闻日本媒体称官兵缺爱易陷中国桃色陷阱(组图),里面有一段的标题中写了个“攻城掠地”。我记得就应该是“攻城略地”,可是上网一搜,“攻城掠地”也到处都是。 后来看到有一些网页是出找错别字的题目的,才看出“攻城掠地”确实是写错了。 而我在Google拼音中输入gongchengluedi的时候,竟然出来两个成语,一个“攻城略地”,还有一个“攻城掠地”。这样对于文化的传播真的有很坏的影响。。 Google输入法的词库据说有来源是网民搜索关键字,造成这种错误也不足为怪了。但用Google搜索英文的时候它都会提示拼写错误,什么时候可以对汉字检查拼写错误呢?就算现在没有能力检查,在生成词库的时候为什么不把这样的错误除掉呢?
-
如何安装Subversion,及通过Apache提供HTTP服务
服务器上httpd,Subversion都是自己编译的。 最初安装Subversion时,配置Apache,HTTP访问不了。查Apache的Log发现有segmentation fault. 曾经也在网上找过合适的mod_dav_svn.so恰好能用,但这只是投机取巧,自己也不放心,还是找到根本的解决办法比较好。 问题的原因在于Apache和Subversion都使用了APR库,然而用的不是一个版本。我不知道Subversion为什么带着apr 0.97发布(该版本似乎不支持大文件),apr的最新版本已经是1.2.8了。Apache里的版本是比较新的,我用Apache的APR替换Subversion的来编译,这样它们用的就是同一版本了,不再有segmentation fault,使用过程中也没有发现其它问题。 下面是安装的过程。安装swig-py是为了能够将svn与trac结合,你当然可以不安装它。 将subversion-1.4.3, subversion-deps-1.4.3在同一目录解压,然后把subversion-1.4.3目录中的apr和apr-util两个目录删除,将apache源代码中的两个目录复制过来。 先安装neon # ./configure -with-zlib –enable-shared –enable-static –with-libs=/usr/local # make && make install 将neon目录改名: # mv neon neon-back 安装subversion/swig-py # make clean # make clean-swig-py # ./configure –prefix=/etc/subversion –with-apxs=/etc/httpd/bin/apxs –with-swig –with-neon=/usr/local # make && make swig-py # make install && make install-swig-py 安装过程中假设Apache的安装目录是/etc/httpd/,make会自动把mod_dav_svn.so安装到/etc/httpd/modules目录,在httpd.conf中load,就可以配置Subversion的HTTP访问了。
-
收到sohu寄来的耳机
昨天突然有陌生号码打电话给我,说有快递送给我。因为不在住址,我就告诉他我在的地方,等他送来。心里想,哪个好朋友给我送东西来了呢? 听到快递进了门我赶紧迎接过去,生怕是什么见不得人的东西。不过收到的却是一个耳机,而且是Sohu送来的。我和Sohu向来没有什么瓜葛啊。 过了一会看到快递单子上有个电话号码,打过去问,说是我参加了Nokia的一个活动,中奖了。 冥思苦想。仿佛曾经有一天打开MSN,弹出广告,不小心点了一下,填了个表。早知道,忘了用这点人品去买彩票了。 耳机是买N7x系列送的那种,Cosonic CD-850V,值几十块钱,冬天可以给耳朵保暧。
-
如何为Yourkit配置以jsvc方式运行的Tomcat
我们一般在Linux服务器上用jsvc(Java Service)来运行Tomcat 5.5。Tomcat的源代码中带了jsvc,在bin目录中。jsvc工具是属于commons-daemon项目的,Tomcat中带的是最新的稳定版本1.0.1。 用Yourkit来profile一个J2EE Web应用,首先需要在Tomcat启动时加上profile agent的参数,-agentlib:yjpagent. 然而,1.0.1版本的jsvc并不支持Java 1.5的参数”-agentlib”。当然,你可以在catalina.sh中加参数,用startup.sh启动Tomcat,但应该还是有许多人希望用jsvc运行。 我最初Google的结果来自Yourkit的服务论坛。2005年的问题,到现在还没有解决,甚至yourkit的人都不知道jsvc是什么东西。 终于在Apache的bugzilla里看到有人提出了jsvc不支持Java 5的新参数的问题,而下面有开发人员回复说在trunk里已经修正。又搜到这样一个网页,可以看到parse函数中处理了agentlib这个参数。 但jsvc在Apache SVN的什么地方呢?坚持找了好久,终于找到了这个地址。 好,从这里co一份代码替换原来的jsvc,编译。编辑/etc/init.d/tomcat,加上agentlib参数。如果按照Yourkit的文档做好了准备工作的话,启动Tomcat,在%TOMCAT_HOME%/logs/catalina.out中就可以看到Yourkit的agent已经工作了,且可以知道它在哪个端口上工作。 打开Yourkit的图形界面,连接到这台服务器,就可以监视上面的J2EE应用了。 不知道新版本的commons-daemon什么时候发布,或者新的jsvc代码什么时候被打包进Tomcat. 但如果你需要JVM 1.5的新参数,就应该使用最新的SVN代码。
-
猫
今天来上班的时候路过一家理发店,几个店员看着一只猫,猫嘴里有一只鸽子。我开始以为是死的,他们告诉我是这只猫刚抓的。他们都惊讶猫能抓住鸽子真厉害,可是鸽子那么 笨,猫抓它其实很容易。可怜那只鸽子。去年春节回家,我一个邻居家说他家的猫经常去山上抓野兔回来。我二奶奶家的猫会抓麻雀,这难度比抓鸽子可大多了。 会抓鸟的猫不一定会抓老鼠。并且那个抓鸽子的猫不一定愿意抓老鼠。我姥姥家有一只猫,长得很漂亮,其实是邻居家的。当时它快死了,我姥姥把它养活,它就不走了。但它留 下来不是报恩抓老鼠,而是去抓鸡吃。于是只好把它拴起来。 我姥姥家还有另外两只猫,应该是同一胎的。去年我见到的时候它们还小,有一只想爬上一个很矮的箱子。轻轻一跳就上去了,它没有。它把前爪搭到箱子边上,后腿蹬啊蹬,蹬 了好久也上不去,放弃了。我无话可说了,懒到这种程度!今年去,它们还是一样的懒,白天睡,晚上也睡。据姥姥说,它们在地上玩,老鼠在高处害人。下面是其中一只睡觉的 照片,真惬意: 就这样,我姥姥家的老鼠和猫过着和谐的生活。
-
事情太多了
我连去寄个信的时间都没有,宿舍的电脑上已经落了一层灰。 Ubuntu 7.04发布了,我是没时间去尝试了,另外对Gnome这个笨重的家伙也越来越不感冒,在它基础上也做不出什么用着舒服的东西来。开源是好,但说实话,反应速度和界面的可用性上,Gnome跟Window$没法比。你可以说,界面还是Mac为尊,但作为抄袭者,显然还是微软更专业一点。可惜了那么酷的beryl. 现在所做的工作和所处的境地也逼着我,得装Windows了。 快5.1了,回家好好休息休息。嗯,回到家,跟这里就是两种人生观,就想去弄块地,盖个小房子,鸡,鸭,羊,牛,。。。
-
祸兮,福之所倚
一周前,我的校友信箱被发垃圾邮件的盯上了,发得那个疯狂,过了一天,系统就发出警告信,说容量超过警戒线了。毕竟校友信箱不是Gmail。 我一直是将其中的信件自动转发到Gmail中的,已经好久没登录过了。这一警告,赶紧去邮箱里删信,删完了发现还有许多空间被使用,就到发件箱去看。意外收获,大三时图像处理的作业乖乖地躺在那里呢!其时我正在被一门选修课的作业所困扰。把它放到Linux里,touch一下再拿回来,写个报告交上去,完事了。 多么宝贵的人生经验,平凡的生活中蕴含着这么深奥的哲理。 Update: 发现里面还有详尽的文档,但遗憾的是当时不知道为什么转成了PDF还加了密。。。不过省得动脑筋了,打字还是很快的。
-
IE float元素的一个恶心Bug
这种问题不好Google,也许已经有许多人知道怎么解决了,不过我没有搜索到,为解决这问题,加起来花了应该有半天时间。我大致知道了一个重现的过程。 在一个比较窄的元素中,我想把几个词排成两列。用如下的代码(容器宽度是在外面的元素限制的): <div style=”width:250px”> <div style=”border:1px solid #0066CC;padding:10px;font-size:14px;text-align:left;”> <div style=”margin-left:10px;float:left;width:100px”>Test</div> <div style=”margin-left:10px;float:left;width:100px”>Test</div> <div style=”margin-left:10px;float:left;width:100px”>Test</div> <div style=”margin-left:10px;float:left;width:100px”>Test</div> <div style=”margin-left:10px;float:left;width:100px”>Test</div> <div style=”margin-left:10px;float:left;width:100px”>Test</div> <div style=”margin-left:10px;float:left;width:100px”>Test</div> <div style=”margin-left:10px;float:left;width:100px”>Test</div> <div style=”clear:both”></div> </div> </div> 但效果是这样: Test Test Test Test Test Test Test Test 显然我想边框把这几个条目全部包起来(而且行间距也不应该那么大!)。最初的时候这几个词是相等字数即等宽的,于是我把”Test”的float属性去掉,加上display:inline。这时,宽度就无效了,但因为字符串等长,我就给它加了固定的margin,可以实现两列了,而且IE的border也把它们都包起来了。 不过最近需求变了,这几个词的长度不等了,用display:inline再加margin的办法不行了。该面对的问题还是要面对,尽管IE很垃圾,用它的人还是太多。仔细看上面代码显示的效果,IE似乎是认为那个框里只有三行(在我的应用里,它是认为只有一行),显然是处理float的高度有问题。知道这点后,我就在那些float元素的前面加了一个空的div,NND,这就没事了。 代码: <div style=”width:250px”> <div style=”border:1px solid #0066CC;padding:10px;font-size:14px;text-align:left;”> <div></div> <div style=”margin-left:10px;float:left;width:100px”>Test</div> <div style=”margin-left:10px;float:left;width:100px”>Test</div> <div style=”margin-left:10px;float:left;width:100px”>Test</div> <div style=”margin-left:10px;float:left;width:100px”>Test</div>…