取消Ubuntu的鼠标中键的粘贴功能
我的小本本是x60, 用IBM的都知道,它的Track Point功能非常的好用,但是用了Ubuntu之后,它的中键粘贴功能非常的不适应,尤其是写代码的时候,经常乱贴代码。
昨天乱逛,偶然发现一篇How to configure the TrackPoint的文章,它介绍了如何配置Thinkpad的中键功能,在一个hint中也说到了如何取消中键粘贴功能。
最近忙些啥?
最近好像一直很忙,但是回头看看也没做多少事情,todo list上还有很多事情要做,好像总有做不完的事情。毕业设计搞得焦头烂额,一个很小的项目竟然被我重构了三遍,我都服了我自己。项目的构架设计得真是太烂了,啊呀,啥时候我也能够设计出扩展性等各种性能都很好的框架呢?希望那天早日到来。
最近搞了两本充电书,都很不错,一本是《编程之美》一本是《Head First 设计模式》,都没看完,但是绝对是好书,看了很有收获,尤其是《Head First 设计模式》,对于没有上过设计模式课的人来说真是浅显易懂,而且书上的例子举到都很到位。《编程之美》是本讲实用算法的书,虽然是一本面试算法集,不过上面的算法到还是比较的经典,有些也是平时常见但没有深究的问题,像是找最大的k个数之类的。要不是最近时间紧,还真有种想把《编程之美》习题都做一遍的冲动,最好《Head First 设计模式》再写个读书笔记。
分解整数
今天在网上闲看,发现最近正在举行2008年百度之星大赛,于是看看了历年试题,挺有意思的
2005年有一道题目是这样的
15=1+2+3+4+5
15=4+5+6
15=7+8
请编写程序,根据输入的任何一个正整数,找出符合这种要求的所有连续正整数序列。
输入数据:一个正整数,以命令行参数的形式提供给程序。
最近正好在找实习,肯定会遇到当场写代码的,于是写下这个程序算个练习
eps文件显示变空白(Ubuntu 8.04)
今天要用latex写论文,其中要插些图片,于是用gimp来把bmp转成eps,可是发现怎么转,出来的结果都是空白了。。怪了。。用imagemagic里的convert工具转出来也是空白的。再看看原来转好的eps文件,发现竟然都变成空白的了。好了,应该不是gimp之类的问题了,应该是evince的问题,于是用google去搜evince eps,果然发现有人遇到过这个问题。原来最终的根源是ghostscript的问题,ubuntu8.04中的gs的版本是gs-afgl的,于是按照网上的指示,安装了gs-gpl的版本,然后用sudo apt-get update-alternative --config gs去修改版本,结果竟然不行,没办法,终极解决方法,卸载gs-afgl,然后用记事本记住同时卸载掉的其他包,然后安装gs-gpl,同时再把那些被卸载的包装上。。。折腾半天,用于有看到eps了。。不容易啊。。去喝口水。。
升级到8.04了。。
系统升级到8.04了,过程中出现了一些问题,好在有惊无险。不知道为什么,升级的时候总是出现一大堆的依赖问题。还有就是怪我平时太抠门,把根目录留的空间太少,好不容易腾出了2G的空间,但是升级了快结束的时候还是“空间不足”,而且还自动重启了X,心想这次完蛋了,不过还算幸运,系统还可以进去,查了查系统信息,确实是升到8.04了。好景不长,没用多久问题就来了,最严重的莫过于Compiz的问题,只要打开Compiz,应用程序的右键菜单显示不出来, 只有“Minimize"....之类。还有就是声音也有问题,firefox里有声音,Quolibet里就没声音,感觉是驱动出了问题。VirtualBox也打不开了。总之问题不少,不过极有可能是那个“空间不足”造成的问题。升级算是失败了,还是老老实实的重装吧。。
升级Ubuntu8.04中。。。。
终于还是忍不住了,虽然离正式发布只有7天。估计现在的RC版也应该可以了,用多了Linux,变得特别热衷于进行各种各样的升级。
本来也没打算今天就升级的,只怪太无聊。天特别热,只穿着短裤衬衫还是汗流浃背。一边做着无聊的作业,一边看着各种综艺节目。没过多久该看的综艺节目也看完了。心想包月的网络空着也是空着,不能就这样便宜了服务商,于是就开始升级Ubuntu了,现在在下载新的包,估计剩余时间1小时50分, 有得等了。。等。。。但愿升级完了还能进入系统。。
终于做了点有意义的事
这么几个月的辛苦努力没有白费,paper终于发了,虽然不是第一作者,但是还是很开心,毕竟凝聚着我的心血,毕竟是AAAI的paper啊,哈哈。第一次做research就能发paper真是开心啊,再接再厉!不过怎么看自己都像一个developer,不像一个researcher。做开发才是我的兴趣所在,不过惭愧的是到如今也没写出什么像样的软件。学校快毕业了,工作还没有着落,苦闷啊。。
--再接再厉,再接再厉!
连接两个头尾重合的字符串(KMP算法应用)
连接字符串A, B,但是要求把字符串A的尾部和B的头部重复的地方合并;
例如:
A: "12345"
B: "45678"
那么A+B = "12345678";
我第一个想法就是对A的每个位置都去检测剩下的是否和B可以合并,不过实现的效率很低O(strlen(A)*strlen(B)). 程序如下:
随便感慨一下
告别windows已经3个月了,虽然期间还时不时要用虚拟机来跑炮Word, Excel之类的。其实Word, Excel 也不用有一段时间了,但是基于负责的原则,帮别人改office文件的时候还是得用Office, 毕竟OpenOffice经常改出来会有问题。OpenOffice用起来实在是不顺手,操作性和MS Office简直没法比,所以我连OpenOffice现在也很少用了,一般记东西就用纯文本,要写论文就用Latex。
想起当初用Ubuntu的原因其实很简单,就是为了告别盗版软件,当时也是心血来潮加上以前折腾过Redhat, Gentoo。用了三个月的Ubuntu好像也没有特别需要Windows的地方(除了那个垄断的MS Office),几乎所有以前常用的东西在Linux都有高质量的替代品。而且Linux下也有一些我现在离不开的好东西,比如Quod Libet, Referencer...
再过20来天Ubuntu 8.04也要发布了,各方面的新闻很多,改进也很多,所以也很期待,不过当前我用的7.10也已经用的很爽了。其实很多人已经用上8.04了,不过我还不忍心当小白,还是等Release版吧。
现在用Linux已经不是一种坚持了,它已经变成了习惯。
看到一道Google的面试题
题目是这样的:写程序判断是否字符串A里每个字符在A中出现的次数都大于在字符串B中出现的次数。
我的想法是
1. 首先我们可以发现,如果判断成立的话,A的长度必定要比B的长度长。
2. 因为字符char的大小有限,所以可以建立一个对应所有字符的数组,一般情况下应该是char chars[2^8], 初始化为0,然后先统计A串中所有出现的字符的个数。对于A的字符c,我们可以用chars[c]++来进行统计。在统计完毕之后,对于B的每个字符进行反向统计,即对于B中的字符c', 计算chars[c']--。若在对B的统计过程中,有某一chars[c']<=0,这说明对于字符c',它在B中出现的次数不比A中少,由此返回0, 若所有chars[c']均满足chars[c']>0,则返回1。