Category: 未分类

  • 并行?

    并行的应用其实已经很久了,不过最近几年普通PC的CPU也普遍采用多核,并行普及的时代已经到来了。Intel又开始在桌面系统中推它的四核处理器,前几天还看到消息说它几年后将推出32核到48核的图形芯片。

    编写桌面程序的人可以不用太担心,依赖操作系统的调度就可以了。而如果是开发专用的算法之类,那就得自己处理,使得多个核心或CPU能够联合起来发挥足够的优势。还有针对32核、48核的图形芯片编程,怎么办?微软的DirectX会支持吗?

    想当年刚刚有计算机的时候0101地写程序是多么变态,到现在写个漂亮的程序如同搭积木一样简单(微软不是想让奶奶级别的也会变成吗)。并行的概念虽然很早提出,应用也比较早,但我觉得到现在也没有一个像当初编译器出现那样的飞跃。将来会有吗?

    OpenMP、MPI之类基本都是在现有编译器的基础上加东西,对很多人还是有一定的难度。程序员还得精心地考虑如何调度进程(或线程),如何降低调度引入的负载。如同编译器的出现一样,尽管编译器的优化不可能完美,但它毕竟使得大型的项目更容易开发了。对于关键部位的代码,仍然可以用汇编来写。

    嗯,其实我的认识也很粗浅,随便联想一下。

  • 本地连接受限或无连接

    伸缩网线挺好玩的,不用时收起来成为一个小盒子,不用为纷乱的线烦恼。生活中的烦恼太多了,是吧。

    起初在海龙买了一只,在那里测试没有问题。但拿回来后街上,插口旁边的指示灯闪烁都跟其它网线不同,系统托盘显示“本地连接受限或无连接”,换普通的网线是好的。心里暗骂奸商,可是当时连票都没开,在几楼买的也忘了。于是又上淘宝买了一只,叮嘱卖家一定帮我测试好。收到后赶紧试用,结果竟然跟在海龙买的一样,这下我开始怀疑自己了。跟卖家联系,他说是测试过的,而且以前也有客户遇到这样的情况。

    在网上搜了一下,找到这个网页。打开本地连接,属性,配置网卡,高级,选择speed/duplex属性,默认为auto,根据自己网络环境改,不知道可以试,我选择了10Mbps/Full。

    终于可以用了,不过只能用10M,太慢了。原来海龙那家没骗我。。。

  • 从五笔转向拼音

    五笔还是我在高考完的时候学的,当时我们那个小地方学电脑的主要课程都是学打字,大部分出路都是打字员。学会了,过了几个月,到了学校,又忘了。当时比较有决心,坚持用五笔,没过多久就记起来了。

    记得那时候还有人问我借五笔打字的书来着,不过已经有同宿舍的同学开始讲拼音输入法的好处。那时用的是智能陈桥,在机房的破机器上,切换出来要几秒钟。

    用五笔也有不知道编码的时候,就用拼音打,我最开始习惯用智能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” />的效果就是这样一个图片:

    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结合,你当然可以不安装它。

    1. 将subversion-1.4.3, subversion-deps-1.4.3在同一目录解压,然后把subversion-1.4.3目录中的apr和apr-util两个目录删除,将apache源代码中的两个目录复制过来。
    2. 先安装neon

      # ./configure -with-zlib –enable-shared –enable-static –with-libs=/usr/local
      # make && make install
      将neon目录改名:
      # mv neon neon-back

    3. 安装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了,回家好好休息休息。嗯,回到家,跟这里就是两种人生观,就想去弄块地,盖个小房子,鸡,鸭,羊,牛,。。。