3

Python 的 ctypes 模块实在太方便了!

Posted by Elias on 三 24, 2010 in 混乱的IT世界

最近用到中文分词库 Bamboo ,开始时有点头疼居然没有 Python 封装。。后来发现用 ctypes 模块来封装实在是太简单、太方便了~几乎被感动到内流满面~有了庞大 C 库和 ctypes 模块的 Python ,真是可比当年的数理化——走遍天下都不怕~下面给出通过 ctypes 模块调用 Bamboo 分词的示例代码:

?Download seg.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
 
from ctypes import *
 
# 通过 C 接口载入 libbamboo ,“.dylib”是 Mac OSX 下的动态库后缀, Linux 下应该是“libbamboo.so”:
libbamboo = CDLL('libbamboo.dylib')
# 调用 bamboo_init() 函数得到一个分词器实例:
bamboo_init = libbamboo.bamboo_init
bamboo_init.restype = c_void_p
bamboo_handler = bamboo_init(c_char_p('crf_seg'), None)
# 如果返回的实例是 None (也即 C 中的 Null ),表示实例生成失败,那我们打印出错原因:
if bamboo_handler is None:
    bamboo_strerror = libbamboo.bamboo_strerror
    bamboo_strerror.restype = c_char_p
    print bamboo_strerror()
else:
    # 把文本传给分词器准备分词:
    # 待分词的文本必须是 utf-8 编码的 bytes string ,所以我们要把 unicode string encode 一下:
    libbamboo.bamboo_setopt(bamboo_handler, c_long(0), c_char_p(u'我爱北京天安门'.encode('utf-8')))
    # 真正开始分词:
    bamboo_parse = libbamboo.bamboo_parse
    bamboo_parse.restype = c_char_p
    # 下一行得到分词结果(空格分隔),格式还是 utf-8 编码的 bytes string ,我们把它 decode 成 unicode :
    segged = bamboo_parse(bamboo_handler).decode('utf-8')
    print type(segged), len(segged), segged
# 调用 bamboo_clean() 函数释放分词器实例:
libbamboo.bamboo_clean(bamboo_handler)

感谢国家,感谢什么什么TV,另外感谢沈仙人,当年正是他的博文用 Python 写自己的 C Module让 ctypes 在我脑海里留下了不可磨灭的印象^_^

标签:,

 
0

街舞准高手和真正高手的区别

Posted by Elias on 二 26, 2010 in 匪夷所思的平淡生活

说实话,如果都用他们自己准备好的音乐,跳他们准备好的舞,那他们的动作同样干净、编排同样巧妙,是很不容易看出他们之间差别的。只有现场 Battle 才是展示舞者真正实力的地方!今天跑去看了 KOD6 预选赛,在这一点上感受尤其明显。仔细看的话,“准高手”们动作到位、干净,并且漂亮地用出了很多高级甚至超高级技巧,常常也能令观众炫目。可是如果看的再仔细一些,会发现这些家伙每次上场比赛几乎总是“老一套”,无论 DJ 给的是什么样的鼓点、什么样的曲子,他们总是跳成差不多的节奏、差不多的动作组合,变化微小。换句话说,小伙子、小姑娘们自己闷头耍自己的,把音乐扔在一边,自己巍然不动。他们跳的不是舞,而只是舞蹈的动作;他们表现的不是美、不是音乐,而只是单纯的技巧。真正的高手则大大不同,给他/她不同风格的音乐,看到的一定是不同的舞蹈,几乎让人觉得是换了一个人(16进8的每局比赛每人会有两轮舞, DJ 会给不同的音乐,就尤其能看出这样的反差)。甚至不仅如此,他们会让人感到是他们的舞把音乐变得更美更传神!可是仔细看,他/她舞蹈的魂、舞蹈的基础仍然是 Poping 、仍然是 Locking 、仍然是 Hip-Hop 。今天 Hip-Hop 比赛中14岁的日本小姑娘 Maika 就凭此战胜了虽然拿过多次冠军可我总觉得他多年总是一个路子的李琦。

世上没有无因的果,没有人喜欢停留在准高手,只是他们的“遭遇”也许各不相同。有些跳舞的朋友只学习、钻研了一个窄窄的路子,肚囊不宽,以这样的本事所能表现的风格也确实有限;也有的朋友技巧不错,可是接触的音乐不够多,不巧碰上陌生鼓点的时候也就抓了瞎;还有的朋友对技术、音乐都熟门熟路,可惜一直傻跳,没有仔细去想什么才是真正的“舞”、什么才是真正属于他/她的“舞”。

其实这一篇不是为了讲跳舞的,说的是做事的方法,但道理是共通的。就像舞蹈要能表现不同的音乐一样,好的做事方法应该是“随机应变”的。也就是说根据当时的具体情况和目标,实事求是地做出最好的选择;就像跳舞不能闷头傻跳一样,做事也不能因为自己有某方面的技能,就看哪都是“钉子”,想用自己这“榔头”去锤一下。但 Locking 里无论加入多少 Wave , Locking 也还是不可以变成 Poping ,而人在做事时也还是要明白自己的职责和特长,不能失去自己的“根”。上场 Battle 时任凭台下欢声雷动、粉丝们尖叫成群,台上任凭你舞姿帅气潇洒,在公正的裁判手里仍然是有可能落败的——无他,技不如人罢了。可见真正踏实做事的人也大可不必把他人的恭维及所谓的虚名太当回事。当然, Battle 是一种比赛。是比赛就会有偶然因素,就会有状态起伏。我这里也并不是说李琦输了就真是水平差多少,其中肯定有心态和发挥问题。但是结果已定,那么没别的话说,以后刻苦练习,下次比赛赢回来也就罢了。人生也是一样,坎坷难免,但努力奋斗,路总是在前方!

kod6

PS:现在真是老了,我的位子也不算近,比赛才看到一半就耳鸣不止,到现在还没缓过来。。

PPS:既然舞蹈和体育能帮助人调整心态、领悟人生的道理,那我将来的将来的将来有小孩的时候,自然应该鼓励娃整整这些方面的业余爱好,本人自当想方设法给娃提供便利条件^_^ 立此为记。

标签:,

 
0

北京到青岛最新路书简洁版

Posted by Elias on 二 13, 2010 in 匪夷所思的平淡生活

自奥运会以来,北京到青岛之间的高速真是半年一个样,直接导致以前的高速路书过时了。以下是今年春节从北京到青岛的最佳路线:

  1. 加满油(一般路过的天津、河北两省以及山东南部都是乙醇汽油,只有北京和山东北部有非乙醇汽油),五环东南角化工桥上京津高速(不要像以前那样走京津唐,新的京津不但路平、单向四车道,而且车也很少。所以关键的问题反倒是得在这样的路况下谨防超速)。
  2. 注意路标,大约40公里左右,有转向京沪的出口,由此进入京沪高速。
  3. 注意路标,进入京沪接近40公里左右,有转向津晋的路口,但路口写的不是津晋,而是写的指向滨海新区和东营。总之跟着指向东营的路标,进入津晋(进入以后很快会有一个牌子说这是津晋)。哈利路亚~津晋总算接通了,以前只能绕行塘津,要稍微远一点点。
  4. 注意路标,再走60到80公里左右,有指向荣乌高速的路标,由此转入荣乌,向荣成方向走。其实荣乌和津汕是一回事,只是不同段叫不同的名字就是了。
  5. 顺着荣乌一直走一直走,可以一直走到东营附近(这时从北京出发算起大约已经350到400公里了,一半多一点了),很多人会将东营作为一个休息站,在这里吃饭并且加97号非乙醇汽油加满。以前再往前走不大容易找到休息站,所以必须考虑加油的问题。
  6. 注意路标,在东营附近顺指向青岛方向进入青银高速,一直按照路标的青岛方向走就好了。

整个路程车都不多,路况超好(就因为路况太好所以反而容易困……)。仔细看路标,并且在进入山东境内后要注意加满非乙醇汽油就行。总行程大约680公里左右。

标签:, ,

 
2

共勉下个十年

Posted by Elias on 一 11, 2010 in 匪夷所思的平淡生活

泡开心网已经挺久的了,早过了玩小游戏的阶段,登陆上去也就主要就是为了看看朋友们的近况、看看转帖的八卦。这八卦看着看着,觉得似乎舆论导向认为80后、90后、00后是越来越非主流、越来越不靠谱。我自己算是80后最前头那一拨的,当然不乐意承认自己不靠谱,也就难免琢磨琢磨问题出在什么地方。答案其实也很容易发现——现在年轻的人们是有点迷茫。

好吧,什么是“迷茫”?我觉得说的是那种不知道自己真正想做什么、怎样做才是“对”的那种状态。其本人通常不会承认自己没有理想,觉得自己心中还是有一片想要追逐的美景在。但如果这种“理想”脱离了一条能够到达的路径(或许短些,或许要漫长到一生的时间,但总归应该是能够到达的),那其实不是理想就是梦想了。于是即便现实生活丰衣足食、前途宽广的时候,我们心里仍然可以觉得“这不是我想要的、不是我想要的”。这时“踏实”的孩子一般会选择压抑自己的内心,尽力去做“应该做”的事,其中不少有才华的家伙也仍然可以做出相当不错的成绩。只是我总觉得里面带有太多“勉强自己”的味道,效果比自己心甘情愿的时候要差得太多了,实在是有些浪费才智的嫌疑。当然也有像我这样比较“拧巴”的人,就把日子过成了这样:大家都在努力学习的时候我在试图搞对象,大家都在努力工作的时候我还窝在那读书,大家已经脚踏实地解决了对象问题的时候我又翻回来琢磨事业。^_^这么个折腾法当然每一样的结果都不会太顺当,离一般师长认为的传统意义上成功年轻人的标准肯定也相去甚远。

其实迷茫本身不至于算是问题。我父母那一辈年轻时赶上“上山下乡”十有八九也是够迷茫的,后来倒基本算是挺过来了。也许迷茫是年轻时代的一个必然阶段,展现的是对自己价值观的建立、确定和追求。问题在于这年头迷茫的时间有点儿太长了。前些年我帮导师面试新研究生的时候,明显感觉到过来的学生对为啥要读研、读博几乎都没有认识,对即将面临的状况也没什么概念。结果入学以后很快无论精神面貌和工作表现,都得说有点儿差强人意。我也认识一些工作的“小朋友”,在大学毕业时随大流杀入了公认还算不错的企业,在直属经理的翅膀保护下躲避了大企业的复杂纷争,勤勤恳恳地干活、加班,却觉得自己越来越空虚,离想要的生活似乎越来越远。“小朋友”都不清楚自己真正想要什么,那即便随后按照标准模式跑出来读了MBA又能如何,结果十有八九是再次毕业后又一次随大流卷入加班折腾、没有自己的人生、感觉所做的事没有意义的死循环。

以前一般认为,大学阶段是完善人生观的最后时期。按照这样的标准,我可是足足多迷茫掉了好几年的青春时光。听起来有些可惜,不过至少现在是明白了自己想要的东西,心里也有了一份预期和规划。我中学时代的班主任曾经说,大家获得的成绩要在大学毕业十年以后再来看,更早的状况说明不了什么问题。以这样的十年算来,我手中还有充足的时间可以利用。其实又何必在意和别人的比较呢,只要找到了自己的路,靠谱地、踏实地做事,即便再等下一个十年又有什么关系。在此与诸君共勉吧~

× × × × × × × × × ×

PS:看看博客的存档就知道,以前我是每月至少写一篇的。虽然顾虑爹娘或导师没准偶尔也会来看看,有很多东西不敢写,不过毕竟这是一段生活的印记,一点痕迹没有就真的成为过眼云烟了。去年春节后在新加坡呆了一个月,一下就把这个规律打破了。当时因为不知道会短期在那还是长期,也就没有去建立新的朋友圈,每次下班以后都自己到处转转玩玩来打发时间。本来当时可以写的东西是挺多的,比如怎么寻找最好吃的榴莲,在大排档搜刮便宜又好吃的美食或者逛逛景点什么的。应该说正在玩的时候我是挺开心的。在蝙蝠馆碰上一对男的要留在新加坡读书、女的得回中国的情侣,姑娘都指着我跟他男朋友说:你看人家一个人都玩得挺开心的,你在这里也可以加油啊^_^ 可是一回到家里剩自己一个人的时候又完全不想动笔了,觉得就算写了也不会有人来读,无论如何都没什么意义。。结果一停也就成了惯性,09年成为我写博客最少的一年,感觉自己的文字都似乎变得不那么流畅了。好消息是,现在我的状态回来了!

标签:,

 
0

北京Open Party小建议

Posted by Elias on 一 8, 2010 in 混乱的IT世界

北京Open Party是我很喜欢的一个非官方技术爱好者集会,不但主题有趣,氛围也很好。虽然不如新加坡、马拉西亚地区的BarCamp那样规模大,但质量绝对不输给他们。稍微夸张一点讲,Open Party是让我觉得北京的开源技术氛围称冠全国的一个重要原因。参加上次Open Party(会议代号:岩上)时,感到会议的时间安排仍嫌不够紧凑,就和组织者之一的田同学交流了一下,这里把他的回信贴出来,以便关心Open Party、愿意献计献策的高人们参与讨论。相信Open Party一定会越办越好的!

× × × × × × × × × ×

Hi 宋博士:

那天你说的是合理的。我们现在网上社区建立的很不到位。基本上不具备网上投票的功能,我们几个人已经商量在做了。我们会做一个简单的社区,用来管理在Open Party里面的人际关系。我们争取在下次活动前把这个应用搞定。

如果那个时候有了网络投票的基础设施,我们就会鼓励大家在线下提前投票。然后结合现场投票。

我们的活动最早是有一个集体Standup的,每个人只回答三个问题(‘名字’, ‘公司或社团’, ‘角色或者兴趣’)。这样一般15~20分钟就能搞定,而且促进大家相互了解。可是后来因为人越来越多就没法搞了。

现在的方式就是突出话题和拉票。因为现场的拉票可以锻炼演讲者在短时间内总结自己话题的能力。我们国内的开发者这方面的能力都有所欠缺。所以我们觉得这会是个有意义的环节。可是因为引导的问题,现在经常会时间失控,我们会着手解决。

方法可能包括:
# 你所说的增加一个计时的闹钟(或者锣),提醒演讲者注意时间,每个人压缩在1分钟至1分半种。
# 修改投票的方式,这个我们没有想好:
** 以前尝试过贴条和画正字,投票会很拥挤
** 还有一种尝试是最后一同投票,缺点是人家都忘记话题内容了
# 减少前面不容易受控的环节:
** 如新人介绍可以修改为只回答(‘名字’, ‘公司或社团’, ‘角色或者兴趣’)并多问几个人
** 美女时间剪短,因为不好控制
** lighttalk要限定将单一主题,不能一个人讲好几个问题。时间控制在每人2分钟以下
** 重量参与者时间也减去自我介绍,只需要介绍名字和背静就可以,主要是让大家脸熟就可以。时间控制在每人20-30秒
# 落榜话题的问题,我们最好给他们提供一面墙,约定自己的话题时间和小房间,如果有兴趣的朋友可以在那里汇合。解决因此造成的现场的混乱,这次有很多朋友过来问我那些落榜话题在哪里。
# 活动的记录。我想我们可以鼓励大家多带DV并录像,如果不能录像就录音。我下次争取带DV。因为留下视频让没有参加的朋友享受是很好的。而且对于演讲者来说这也是一个宝贵的资源,可以提高他/她的满足感,也能帮助他/她纠正演讲中的瑕疵。
# 我们下次争取把结束时间提前到5:30,解决5:00以后参与人员散场太多的问题(这造成了对最后一轮的speaker不够尊重)

最后,希望宋博士能够在博客中把信中的反馈记录下来,然后ping back回open party的blog,方便更多的朋友能参与到这个讨论中。

2009/12/14 Elias Soong elias.soong@gmail.com

  大田你好,

  周末这次OpenParty中间休息时候我有跟你提过说建议增加会前的主题网络投票, 这样根据投票结果提前确定部分主要Session的房间安排,以便一定程度上压缩整 个会议时间。

  其实我觉得网络投票等形式是否有所帮助可以慢慢探讨,这次的主要感觉是主题很 有意思,但主题正式开始前的几个阶段时间没有控制好。

  记忆里,这次确定各个房间安排开讲时大约已经2点40了,后面每个房间安排了3个主题,大约总共又需要3小时左右,最后全部完成就接近6点了,而实际上一般5点左右就有人开始退场,这就不是很理想了。我觉得主持人可以有意识地控制场面,将主题的开始时间控制在2点左右,这样大致可以在5点左右完成全部活动,会是比较理想的。当然,不能说这是由于前几个阶段过于拖沓,应该说和这次活动开始的时间就有所拖延也有关系。活动最好还是按照预定通知,在一点钟正式开始,虽然每次一点以后还总是有陆续迟到的,不过毕竟他们不至于错过正式主题,应该影响 不大。

  仅此以供参考,致礼~

  宋

  –
  —————————————-
  Personal Site: http://www.elias.cn
  —————————————-

标签:

 
5

在Lighttpd上使用wp-super-cache

Posted by Elias on 五 11, 2009 in 个人网站的工具与思考

wp-super-cache是WordPress的一个静态缓存插件,对访问量大的博客或是在系统中使用了性能较差的插件时都是挺有用的。但这个玩意需要Apache的mod_rewrite来支持,lighty下可没有这玩意儿。所以需要咱们自己添加一个lua脚本,配合lighty的mod_magnet模块来代替mod_rewrite的功能。整个操作步骤是这样的:

lighty中博客站点的配置文件要这么写:

$HTTP["host"] == "blog.elias.cn" {
  server.document-root = "/home/public_html/elias"
  magnet.attract-physical-path-to = ( server.document-root + "/rewrite.lua" )
}

这里能用magnet.attract-physical-path-to的前提是mod_magnet已经安装并启用了,否则在lighty的error.log会报错。Debian里mod_magnet是单独的一个包,叫做lighttpd-mod-magnet,安装以后就可以把mod_magnet加入lighty的配置文件了。

然后再在博客站点的根目录新建一个名为rewrite.lua的脚本文件,文件内容为:

?Download rewrite.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
function serve_html(cached_page)
  if (lighty.stat(cached_page)) then
    lighty.env["physical.path"] = cached_page
    print("Serving cached page: " .. cached_page)
    return true
  else
    return false
  end
end
 
function serve_gzip(cached_page)
  if (lighty.stat(cached_page .. ".gz")) then
    lighty.header["Content-Encoding"] = "gzip"
    lighty.header["Content-Type"] = ""
    lighty.env["physical.path"] = cached_page .. ".gz"
    print("Serving gzipped page: " .. cached_page .. ".gz")
    return true
  else
    return false
  end
end
 
attr = lighty.stat(lighty.env["physical.path"]) and lighty.env["physical.path"] ~= lighty.env["physical.doc-root"]
 
if (not attr) then
  lighty.env["uri.path"] = "/index.php"
  lighty.env["physical.rel-path"] = lighty.env["uri.path"]
  lighty.env["physical.path"] = lighty.env["physical.doc-root"] .. lighty.env["physical.rel-path"]
 
  query_condition = not (lighty.env["uri.query"] and string.find(lighty.env["uri.query"], ".*s=.*"))
  user_cookie = lighty.request["Cookie"] or "no_cookie_here"
  cookie_condition = not (string.find(user_cookie, ".*comment_author.*") or string.find(user_cookie, ".*wordpress.*") or string.find(user_cookie, ".*wp-postpass_.*"))
  if (query_condition and cookie_condition) then
    accept_encoding = lighty.request["Accept-Encoding"] or "no_acceptance"
    cached_page = lighty.env["physical.doc-root"] .. "/wp-content/cache/supercache/" .. lighty.request["Host"] .. lighty.env["request.uri"] .. "/index.html"
    cached_page = string.gsub(cached_page, "//", "/")
    if (string.find(accept_encoding, "gzip")) then
      if not serve_gzip(cached_page) then serve_html(cached_page) end
    else
      serve_html(cached_page)
    end
  end
end

这个lua脚本源自tempe.stthedomz.com,不过我对其中的第23行做了修改。原始版本永远不会对博客首页启用缓存,因为lua脚本仅在请求的原始地址不存在时才进行重定向操作,但首页也就是博客根目录总是存在的,因此也就永远不会被重定向到静态缓存。我对这一行的修改就是让脚本在请求的地址与站点根目录相同时也启用静态缓存重定向机制。

这样折腾完之后,调整一下站点的Permalink规则,使之不要掉进wp-super-cache的忽略规则里面,应该就可以了。在页面的html源代码最后,应该能够看到super-cache的时间戳。正常工作的wp-super-cache是不会在频繁刷新页面时每次都更新这个时间戳的。附带说一下,我这个博客是没有使用wp-super-cache的,本文提及的内容应用在了blog.laiyonghao.com

标签:,

 
8

《1973年的弹子球》

Posted by Elias on 一 8, 2009 in 匪夷所思的平淡生活

根据不大准确的记忆,我读的第一本村上的书应该是《挪威的森林》,从此一发不可收拾。然而奇怪的是,至今应有8年,村上的书我仍然没有读全。我读书通常逐字逐句读的很慢(虽然我确定自己有速读的能力),记忆力也完全谈不上过目不忘,不过仍然极少把一本书读上第二遍——例外是每次中学考试前,本来应该是在家用功复习的时间,每每在这个时候会忽然觉得每本书都是那么有趣。很多消耗数月零用钱从书市着实辛苦弄回来却又失去兴趣的书常常都是在这样的时间里看完的。也同样是在这样的时间里,会把一小部分书翻来覆去地看。

《挪威的森林》我喜欢,但我不敢多看,这本书每每让我认识到自己的情绪其实并不如自己预期的那样坚固。在已经看过的村上长篇里,今天我觉得自己还是最喜欢《1973年的弹子球》。我喜欢村上年轻时代笔锋的清新,喜欢整部书的干练,喜欢情节的错综想象。是这些理由么?是也不是。或许书里的主人公刻意与人保持距离的生活状态,让我觉得像是有时候的自己……有些牵强的理由呢~村上的好几部书里面不都是遵循如此的氛围么。重读08再版的《1973年的弹子球》,我确认整部书我肯定完整读过,并且读的一定不是跳跃遗漏的网络版本(亦或许,那个所谓网络版本并非林少华所译),在何处读到却不记得了,是另一个网络版本抑或是从老大那儿一时借来的?

总之我可以确认自己喜欢这本书。在拉斯维加斯的时候,就因为这本书而差点把老板搁置一边,自行投入Quarter,体验最新的弹子球游戏。前两天在中关村E世界偶然看到了弹子球机,没多想就投入两枚游戏币,才发现这台机器少了斑斓的灯光闪烁,没有通电而白白地把币吃掉了^_^找机会一定要复仇才是~

好像喜欢的村上短篇更多一些:《遇见百分百女孩》、《袋鼠通讯》、《羊男的圣诞节》、《再袭面包店》。今天觉得最喜欢《袋鼠通讯》,不知道明天又会如何~手头这一本《1973年的弹子球》我已决定要送出,不知道收到我书的人会在什么时间看到这篇博客呢^_^

1973年的弹子球

1973年的弹子球

标签:,

 
1

福珑2F的高频噪音问题探讨

Posted by Elias on 一 6, 2009 in 混乱的IT世界

看网上的一般观点都认为福珑还比较安静,不过我得说这是跟普通台式机比。我希望其工作噪声可以不影响睡眠,因此对我到手的这一台仍然不是十分满意。最初我以为是风扇的问题,是因为风扇本身的工作噪声太大造成了整体的噪音。于是我采取了给原配风扇点润滑油的办法(原装风扇是油封轴承,到我手上的时候有点儿缺油),总体噪声有所降低,但是噪声中的高频部分反而由此显得更加突出。(哪来的高频噪声?这是个问题。)进一步考虑给风扇降低转速来降低噪音,不过不会DIY,只能采取换风扇的做法。偏偏这么小的风扇不好找(3厘米见方),我找来找去只找到一个叶片更小转速更高的。新找到的这一只风扇虽然转速更高,但在未固定到主板上之前其实噪音极小,只有安装上去之后才出现比较刺耳的高频震荡噪声。这才终于弄清了噪声所在:当风扇工作产生震动时,福珑主板由于被螺丝与风扇固定在一起,而被带动形成共振,产生了类似扩音器的效应,扩大了噪声。偏偏福珑的外壳与主板是采用卡槽式比较松散的组装方式,于是无法帮助主板吸收风扇的震动。试验了用塑料泡沫薄片作为螺丝口处缓冲垫的做法,有所改善,但没有彻底消灭问题。

其实把风扇去掉,让福珑工作在无风扇的状况下,拷机也没有出现死机的现象。只是不知道如果在夏天进行无风扇工作,是否会超出龙芯的正常工作温度范围,缩短芯片寿命。总之这个问题还没能解决,需要进一步探讨。

PS:说点无关的,我觉得腾讯现在应该收购云端平台(成都朗弘科技(杨小锋)),然后嵌入到自己的客户端中。这样凭借QQ的装机量,腾讯将有可能成为新一代的操作系统霸主。

标签:

 
0

诚实不等于正直,开放不等于透明

Posted by Elias on 十二 29, 2008 in 无责任乱弹

原始思想来自于《代码之道——I.M.Wright’s “Hard Code”》第八章“2007年3月1日:‘不只是开放和诚实’”一文。原文是打算讨论一些关于软件工程实践的要点,但这一章节也完全可以用于生活到其他方面。其实所谓软件工程,也无非是做事的方法之一,而如何做事也可以说是如何为人,因此当作是一回事自然不会冲突。(由此莫非可以引申出:与不晓得如何做事的人交朋友是一个高危事件?^_^)

原书的观点已经表达得非常明确,我暂时没有太多打算补充说明的,在此仅摘录原文中提及的名言一段,与诸君共享:“诚实就是……使我们的言论跟现实保持一致。正直就是使现实跟我们的言论保持一致。”——Stephen R. Covey

标签:,

 
2

选择恐惧症是这样产生的~

Posted by Elias on 十二 9, 2008 in 混乱的IT世界

今天算是被源代码版本控制工具雷到了。话说我刚读研那会儿,比较流行的只有CVS一个,于是我踏踏实实地给实验室架了CVS,感觉比较晕,只学会了最简单的用法。后来Subversion出来了,感觉比CVS清晰易用一些,踏踏实实劝说实验室全面转向了Subversion,并且后来还购买了一些相关的技术支持服务。再后来分布式版本控制工具出现了,我考察了一下实验室的具体情况,认为短期内没有必要替换Subversion,而对于业余自用来说,Bazaar-ng是最合适的,因为发布时往静态网站空间上一扔就行了,成本比较低,所以试着在实验室学生中推广Bazaar,但是没有人理我。。再后来想为自己的项目做一些准备,考虑方便合作者使用,因此最好与常用IDE整合插件的成熟度能好一些,于是狠狠心切换成了Mercurial-hg。近期有个项目需要和其他人合作,郁闷地发现对方已经使用了git,这下主要流行的分布式版本控制工具算是都玩过一遍了。这事闹的,怪不得人会变得什么都懂点、什么都不精,这下算是有点明白了,这事儿多少还是较真儿闹的。

话说回来,事情总是发展变化的,我开始用Mercurial的时候,它也开始支持向静态网站空间的发布方式了,而在选用Bazaar的时候还是不灵的;我开始用git的时候,已经有很好的Windows下的二进制移植了(非Cygwin方式),客户端的图形化界面辅助也大大进步,只是与重量级IDE的整合刚刚开始而已,这在以前都是我担心给团队推广造成困难的地方。所以,选择是很难一劳永逸的,我们得经常去重新了解形势发展,还得经常反思到底自己要的是什么(这一点不仅仅适用于IT)。

比较麻烦的是,人的精力是有限的,忘性也总是有的,所以做选择通常还都是一件费劲的事儿。话说国内Python社区里面的ZQ同学首次注意到我的个人网站的时候,大大感叹了一番用Wiki管理个人知识体系要比博客或是书签等方式合理的多,而我当时反而觉得用博客来记录其实更有助于被搜索引擎注意到,因而也更利于积累人气和名声。隔了一阵给ZQ发邮件和他提起一个开源软件的时候,ZQ想起了我这个用Wiki做个人知识管理的家伙,则劝我把内容转移到其他Wiki上更靠谱,毕竟靠个人力量做Wiki是没什么前途的。前者何赞、后者何劝,把我干这儿,都没词回复了。比较明显地,ZQ同学是忘记了咱整这玩意只是个人知识管理,方便自己查询之用,既不是想自建社区,也不是服务于某个项目。我要把我主页上一些零七八碎的非技术内容整到别人Wiki上,人家不因为我乱放垃圾把我屏蔽了那我真得烧个高香^_^忘了就忘了吧,本来就P大点儿事罢了~

标签:,

Elias的邪异门 is proudly powered by WordPress.(京ICP备10013669号 瑞豪开源提供VPS)Theme design by Laptop Geek.
Copyright © 2018 All rights reserved. Entries (RSS) and Comments (RSS).