2008年4月4日星期五

न्यू होम

My new site is here :http://www.leezii.com/
My new blog is here : http://www.leezii.com/blog/

Welcome~!

2008年3月5日星期三

RP守恒定律,恩

2008年3月3日,考研成绩出来啦~
,----
| 102138030000xxx xx
| 政治理论代码: 101
| 政治理论名称: 政治(含法律硕士)
| 外国语代码: 201
| 外国语名称: 英语(含法律硕士)
| 业务课1代码: 301
| 业务课1名称: 数学一
| 业务课2代码: 824
| 业务课2名称: 计算机专业基础
| 政治理论成绩: 73
| 外国语成绩: 64
| 业务课1成绩: 122
| 业务课2成绩: 116
| 总分: 375
`----
成绩远远超出了我的预期,特别是英语,本以为也就40来分,忐忑不安地考虑能不
能过小分~看来人品的确爆发了,但是这次RP耗尽了,绝对的!同一天的六级成
绩,417分,就差10分就过了,虽然我啥也没有准备,直接去裸考,不过,就差一
点点还是特别遗憾。考研太损RP了,今天凌晨的冠军杯,米兰在圣西罗最后时刻挂
掉了,郁闷,可怜的马队啊。。。有人YY马队再踢一年,可能么?希望如此吧。
God bless him!God bless us!God bless everyone!
Thanks god.I know you are very busy!
--
email:kevinmiter@gmail.com
No gnus is bad news~

RP守恒定律,恩

2008年3月3日,考研成绩出来啦~
,----
| 102138030000xxx xx
| 政治理论代码: 101
| 政治理论名称: 政治(含法律硕士)
| 外国语代码: 201
| 外国语名称: 英语(含法律硕士)
| 业务课1代码: 301
| 业务课1名称: 数学一
| 业务课2代码: 824
| 业务课2名称: 计算机专业基础
| 政治理论成绩: 73
| 外国语成绩: 64
| 业务课1成绩: 122
| 业务课2成绩: 116
| 总分: 375
`----
成绩远远超出了我的预期,特别是英语,本以为也就40来分,忐忑不安地考虑能不
能过小分~看来人品的确爆发了,但是这次RP耗尽了,绝对的!同一天的六级成
绩,417分,就差10分就过了,虽然我啥也没有准备,直接去裸考,不过,就差一
点点还是特别遗憾。考研太损RP了,今天凌晨的冠军杯,米兰在圣西罗最后时刻挂
掉了,郁闷,可怜的马队啊。。。有人YY马队再踢一年,可能么?希望如此吧。
God bless him!God bless us!God bless everyone!
Thanks god.I know you are very busy!
--
email:kevinmiter@gmail.com
No gnus is bad news~

2008年2月27日星期三

这两天累死我了~

4个多小时的飞行,我终于回到了寒冷的哈尔滨。

我没有想到,再冷的天气也不能阻挡我外出的步伐~

26日早上不到八点我就起床了,拿上硬盘就去俱乐部搞机器。满以为挺简
单的,可是没想到,回去改变的配置太多了,结果现在有些改不回来了
@_@,只能一边回忆一边试。转眼之间,三个小时就过去了。。

中午休息了一会儿,然后就是开会,老师批评了一顿,然后就把任务布置
下来了,我很奇怪,为什么别的实验室的同学,他们的任务就那么轻松?

开了会,就是去换手机业务。早就想换了,可惜一直没时间。一路走到骨
伤科医院,帅帅的小伙儿居然说半不了,机器出毛病啦,让我第二天再去~我
能被他忽悠吗?我再走,走到和兴路,人那儿就能办!!!我有些想投诉
那小伙儿。。。

今天也没闲着,去医院看病,又过敏了。医生说注意饮食,不要吃辛辣和
海鲜,想着前几天的火锅,汗,难怪过敏这么厉害~

昨晚听了一首歌,很好听,Bring me to life,我知道我很土~

,----
| Evanescence - Bring Me To Life
| (feat. Paul McCoy)
|
| How can you see into my eyes
| like open doors.
| Leading you down into my core
| Where I've become so numb.
| Without a soul
| My spirit's sleeping somewhere cold
| until you find it there and lead it back home.
| Wake me up.
| Wake me up inside.
| I can't wake up.
| Wake me up inside.
| Save me.
| Call my name and save me from the dark.
| Wake me up.
| Bid my blood to run.
| I can't wake up.
| Before I come undone.
| Save me.
| Save me from the nothing I've become.
|
| Now that I know what I'm without
| you can't just leave me.
| Breathe into me and make me real
| Bring me to life.
|
| Wake me up.
| Wake me up inside.
| I can't wake up.
| Wake me up inside.
| Save me.
| Call my name and save me from the dark.
| Wake me up.
| Bid my blood to run.
| I can't wake up.
| Before I come undone.
| Save me.
| Save me from the nothing I've become.
| Bring me to life.
| I've been living a lie
| There's nothing inside.
| Bring me to life.
|
| Frozen inside without your touch,
| without your love, darling.
| Only you are the life among the dead.
| All of this sight
| I can't believe I couldn't see
| Kept in the dark
| but you were there in front of me
| I've been sleeping a 1000 years it seems.
| I've got to open my eyes to everything.
| Without a thought
| Without a voice
| Without a soul
| Don't let me die here
| There must be something wrong.
| Bring me to life.
| Wake me up.
| Wake me up inside.
| I can't wake up.
| Wake me up inside.
| Save me.
| Call my name and save me from the dark.
| Wake me up.
| Bid my blood to run.
| I can't wake up.
| Before I come undone.
| Save me.
| Save me from the nothing I've become.
| Bring me to life.
| I've been living a lie
| There's nothing inside.
| Bring me to life
|
|
| END
`----


--
email:kevinmiter@gmail.com
No gnus is bad news~

2008年1月22日星期二

Just a test!

The fucking game is over~
I have enough time to play with emacs...
--
email:kevinmiter@gmail.com
No gnus is bad news~

2007年5月22日星期二

Nothing Finished

太多的事情要做,却没有一件能够完成,至少没有一件能够稍微完美一些,如果完美也可以比较的话。
如此长的时间,我一直沉侵在一种沮丧的感觉中,无力感包围着我,眼看时间就那么轻易的从我的身边溜走,我像在做梦。意识清醒,清楚地知道身边的每一件事,你却无力去做些什么,哪怕一点改变?仿佛我已经是生活的观众,也许更像是服下了慢性毒药,一点点地却又不可阻挡的滑向深渊。
,----
| #include
| int STRLEN(char* p);
| int main()
| {
| char *str="Hello";
| int len=STRLEN(str);
| printf("%d\n",len);
| return 0;
| }
| int STRLEN(char *a)
| {
| return (*a)?STRLEN(a+1)+1:0;
| }
`----
这样的trick有什么意义?

2007年5月7日星期一

SF中collect和format主要cpu耗费

我使用oprofile分别生成了bin/collect.exe和bin/format.exe的opreport
对于 collect.exe的日志分析,我发现主要在于
12105 17.7277 collect.exe SFC::SFCommunicationSocket::GetLine(std::string&)
11837 17.3352
collect.exe SFC::SFCommunicationSocket::Recv(void*, int) 这两个方法上, 总共占用了35%的cpu时间,也是耗费最多的两个方法。我想这是值得我们关注的东西,应该这是程序自己封装的,也许更有改变的可能。。。
继续看collect.exe 的日志文件
9908 14.5102 anon (tgid:9213 range:0xb7fbc000-0xb7fbd000) (no symbols)
9605 14.0665 anon (tgid:8943 range:0xb7f79000-0xb7f7a000) (no symbols)
5506 8.0635 collect.exe HandleUnixAndWindowsStyleList(char const*, struct_file_info&)
3167 4.6381 collect.exe
GetDir(struct_site_info&, std::string const&, SiteFile&, SFC::SFFTPClient*, unsigned short, bool)
这是耗费排在3-6位的四个函数,可以看到前六个函数的耗费在总耗费的3/4左右,所以我们也应该把主要精力放在这些函数上。其中两个anon我不是太清楚怎么回事,从网上的一些资料看到,好像表 示的是一块连续内存的操作,我猜测是mmap,xyb提到过他使用了mmap,我猜也许是 这里,我没有看源码,纯粹的猜测。。
再看format.exe的日志文件
18229 10.0997 format.exe MergeIndex(File&amp;, File&, std::vector<unsigned int, std::allocator<unsigned int> >&, int)
这就是format.exe中cpu时间最长的函 数,format.exe有一个特点,就是cpu占用在0.01和0.1之间的函数特别多,不像 collect.exe那样有两个显著的寡头,这样有个不好的地方就是重点比较分散。我结合了valgrind的callgrind产生的日志看了一下,大概是IndexDB和FileDB两个类中的CreateIndex Update比较耗费时间,应该引起注意上边是我对日志文件的一些 分析,基本没有接触源代码,现在我想说我看到的一个和源码有关的问题 ,


1 #include <stdio.h>
2 #include <ctype.h>
3
4 int alpha1(char c);
5 int alpha2(char c);
6 int main()
7 {
8 char c='M';
9 long int i;
10 for(i=0;i<6553500;i++)
11 {
12 alpha1(c);
13 alpha2(c);
14 }
15
16 return 0;
17 }
18 int alpha1(char c)
19 {
20 if(c >= 'A' && c <='Z')
21 printf("OK\n");
22 return 0;
23 }
24 int alpha2(char c)
25 {
26 if(isupper(c))
27 printf("OK\n");
28 return 0;
29 }

在sf的代码中,采用了alpha1的方法,而更有可移植性的方法显然是alpha2,不过在效率优先的原则下,我们还是有必要考虑效率。在实际测试之前,我原来以为是alpha2更快,迷信库函数。。。
我首先看了两者的汇编代码,看不出明显的结论:alpha2汇编指令少,但是多一次函数调用。我只好测试,实际运行,测试结果:在分别调用6553500次的情况下,alpha1耗费时间19.7,alpha2耗费时间45.3,两倍的差距。。。我想说两点:1,不要迷信库函数;2,在同一种算法甚至写法有多种实现的时候,如何抉择?不要想当然,测试才是最可靠的。
-- email:kevinmiter@gmail.com
No gnus is bad news~
_______________________________________________

2007年4月28日星期六

Emacs配置文件


;; For my language code setting (UTF-8)
(setq current-language-environment "UTF-8")
(setq default-input-method "chinese-py")
(setq locale-coding-system 'utf-8)
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-selection-coding-system 'utf-8)
(prefer-coding-system 'utf-8)

;;(set-language-environment 'Chinese-GB)
;; (set-keyboard-coding-system 'utf-8)
(set-clipboard-coding-system 'utf-8)
;; (set-terminal-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
;; (set-selection-coding-system 'utf-8)
(modify-coding-system-alist 'process "*" 'utf-8)
(setq default-process-coding-system '(utf-8 . utf-8))
(setq-default pathname-coding-system 'utf-8)
(set-file-name-coding-system 'utf-8)
(setq ansi-color-for-comint-mode t)


;; get around the Ctrl+SPACE key binding for inputing method
(global-set-key "\C-cm" 'set-mark-command)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(global-set-key [(meta left)] 'backward-sexp)
(global-set-key [(meta right)] 'forward-sexp)
(global-set-key [(meta g)] 'goto-line)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; highlight marked region
(transient-mark-mode t)

;; enable syntax highlight
(global-font-lock-mode t)

;; show column number on status bar
(setq column-number-mode t)

;; close toolbar
(tool-bar-mode)

;; enable mouse wheel support
(mouse-wheel-mode)
(put 'upcase-region 'disabled nil)
(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(column-number-mode t)
'(current-language-environment "Chinese-GB")
'(ecb-options-version "2.32")
'(show-paren-mode t)
'(tab-width 4)
'(transient-mark-mode t))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
)

(setq default-major-mode 'text-mode);
(fset 'yes-or-no-p 'y-or-n-p);
(scroll-bar-mode nil);
(mouse-avoidance-mode 'animate);
(setq x-select-enable-clipboard t);
(setq make-backup-files nil);
(load-file "/home/lizhi/myEmacs/color-theme.el")
;;(color-theme-dark-blue)
(color-theme-pok-wob)
;;(color-theme-blue-sea)

(setq inhibit-splash-screen t);
(setq default-process-coding-system '(utf-8-unix . utf-8-unix));

;;install speedbar
(add-to-list 'load-path "~/myEmacs/cedet-1.0pre3/speedbar/")
;;(autoload 'speedbar-frame-mode "speedbar" "Popup a speedbar frame" t)
;;(autoload 'speedbar-get-focus "speedbar" "Jump to speedbar frame" t)
(define-key-after (lookup-key global-map [menu-bar tools])
[speedbar] '("Speedbar" . speedbar-frame-mode) [calendar])
(global-set-key [(f4)] 'speedbar-get-focus)
;; Texinfo fancy chapter tags
;; (add-hook 'texinfo-mode-hook (lambda () (require 'sb-texinfo)))
;; HTML fancy chapter tags
;; (add-hook 'html-mode-hook (lambda () (require 'sb-html)))

;;install eieio
(add-to-list 'load-path "~/myEmacs/cedet-1.0pre3/eieio/")
;;install ede
(add-to-list 'load-path "~/myEmacs/cedet-1.0pre3/ede/")
;;install cogre
(add-to-list 'load-path "~/myEmacs/cedet-1.0pre3/cogre/")

;;install semantic
(add-to-list 'load-path "~/myEmacs/cedet-1.0pre3/semantic/")
;;(require 'semantic-load)
(setq semantic-load-turn-everything-on t)
(setq semantic-idle-scheduler-idle-time 432000)
;;(setq semantic-load-turn-useful-things-on t)
(load-file "~/myEmacs/cedet-1.0pre3/common/cedet.el")
(setq semanticdb-project-roots
(list "~/Desktop/compiler/"))

;;install cedet
(load-file "~/myEmacs/cedet-1.0pre3/common/cedet.el")

;;install ecb
(add-to-list 'load-path "~/myEmacs/ecb-2.32/")
(require 'ecb)

;;emacs server
(server-start)

;;image view
(require 'thumbs)
(auto-image-file-mode t)

(show-paren-mode t)

(global-set-key [f5] 'gnus) ; 启动新闻组客户端 gnus
(global-set-key [f6] 'eshell) ; 一个 elisp 写的 shell
(global-set-key [f11] 'compile) ; 在 Emacs 中编译
(global-set-key [f12] 'gdb) ; 在 Emacs 中调试

(global-set-key "\C-xk" 'kill-this-buffer)
(global-set-key "\M-/" 'hippie-expand)

;;mini buffer
(setq rezize-mini-windows nil)

;;cc-mode
(add-hook 'c-mode-hook
'(lambda()
(c-set-style "linux")
(c-toggle-auto-state)))
(setq comment-multi-line t)
;;(define-key c-mode-base-map "\M-/" 'semantic-ia-complete-symbol-menu)

;;emacs-w3m
(require 'w3m-load)

;;dired
(setq dired-recursive-copies t)
(setq dired-recursive-deletes t)
;;(add-hook 'dired-mode-hook 'turn-on-gnus-dired-mode)

;;display-time
(setq display-time-24hr-format t)
(setq display-time-day-and-date t)
(setq dispaly-time-use-mail-icon t)
(setq display-time-interval 10)
(display-time-mode 1)

;;calendar
(setq calendar-latitude +45.75)
(setq calendar-longitude +126.63)
(setq calendar-location-name "Harbin")

;; hippie-expand
(setq hippie-expand-try-functions-list
'(try-expand-line
try-expand-line-all-buffers
try-expand-list
try-expand-list-all-buffers
try-expand-dabbrev
try-expand-dabbrev-visible
try-expand-dabbrev-all-buffers
try-expand-dabbrev-from-kill
try-complete-file-name
try-complete-file-name-partially
try-complete-lisp-symbol
try-complete-lisp-symbol-partially
try-expand-whole-kill))

;;(require 'uniquify)
(require 'flyspell)

(add-to-list 'load-path "/home/lizhi/myEmacs/lisp/")
;;boxquote
;;(require 'boxquote)
(load-file "/home/lizhi/myEmacs/boxquote.elc")
;;svn
(require 'psvn)

2007年4月15日星期日

Blogger七大行为准则

Blog并非永久的净土,最近Blog上的过激言论也越来越频繁,甚至有人遭受到了死亡威胁,于是Web2.0先驱蒂姆·奥莱利(Tim O’Reilly)和维基百科创始人吉米·威尔斯(Jimmy Wales)联手起草了“Blog行为准则”,台湾的龜趣來嘻已经做了翻译,我就不再重复劳动了,转过来给大家看看(将部落客替换为Blog):


BLOGGER行为守则


我们褒扬Blog圈,因为Blog圈有着直率与公开的对话,但是直率不代表不文明。我们提出这份部落客行为守则,就是希望这份守则能协助创造一个鼓励个人思想传达以及具建设性对话的文化。你可以不同意某个人的看法,但不需要闹得不愉快。


1. 我们为我们说过的话(打过的字)负责,同时保留权利来限制我们Blog上那些不遵守基本文明标准的回响内容。


我们遵循‘励行文明’标准:我们竭力于发表高品质、可为人接受的内容,而且我们会删除那些无法为人接受的回响。


我们以下面这些来判断何谓无法为人接受的回响:


回响被用来咒骂、骚扰、跟踪、或威胁其他人
毁谤、明知有误、诉诸情感、错误呈现他人
侵犯作者权或商标
违反保密义务或责任
侵害他人隐私


我们以个别案例来判断何者为‘无法为人接受的内容’,我们的定义不受限于此列表。如果我们删除某则回响或炼结,我们会说清楚、解释明白。[我们保留权利在任何时候更动这些标准而不需要提醒]


2. 我们不会在网路上说那些我们无法面对面说出口的东西。


3. 如果情势渐趋紧张,我们会在公开回应之前先私下联络。


如果我们在Blog上遇到冲突与错误呈现,在我们发布任何相关文章跟回响之前,我们会尽一切力量在私底下直接与相关人士沟通–或是找一位中间人来帮忙。对于尚未解决的争议,Blogger应该进行线上调停。Mediate.com将会提供调停人。


4. 当我们相信有人正不公平地攻击他人,我们会采取行动。


如果有人发表了攻击性的回响或Blog文章,我们会告诉他(尽量在私底下),然后请他公开修正他的言论。如果那些已经发表的回响可被视为威胁,犯者也不愿意撤回回响或是道歉,我们将会与诉诸法律来保护当事者不受威胁。


5. 我们不容许匿名回响。


我们要求回响者在回响之前必须提供有效的电子邮件,不过我们容许回响者不用真名,而以化名来回响。


6. 我们不理会戳乐。


我们不回应关于我们或我们Blog的那些污秽且令人不愉快的回响,只要内容不流于咒骂或毁谤。我们相信喂食这些戳乐只会助长他们的气焰–‘别跟猪打架。你们都会弄得满身脏污,但猪就是喜欢脏污’。别管那些公开的攻击通常是制止他们的最好方法。


7. 我们鼓励Blog服务提供商确切落实他们的服务声明。


当Blogger做了这种过份滥行,像是创建假的个人Blog来骚扰其他Blogger,Blog服务提供者应该为他们用户的举措负起责任。

2007年4月13日星期五

无奈

找不到答案并不悲哀,悲哀的是答案在你眼前,你却是视而不见。。。
一直在折腾gnus+leafnode的news reader,在网上找了很多资料,主要参考了"gnus伴侣之leafnode篇"一文,参照着作下来,没有遇到什么大问题,本来也比较简单。。。
直到最后一步,设置gnus之后,发现怎么也连不上nttp://localhost。我找不到问题所在,出www.newsmth.net问,没有理, 555555。我只好自己来,上网一顿google,还是没有线索。
我没有办法,只好重新做一遍,希望奇迹发生。奇迹没有出现,问题让我发现了,呵呵。leafnode don't support rlinetd's version of updating inet。虽然这是一个warning,但是这是唯一的线索了,我别无选择,再次来到google,找到leafnode的FAQ,找到了相关的问题。
Leafnode itself expects incoming connections on stdin and responds on stdout. Therefore, you cannot run it as a standalone server but have to use other programs which do the work for you. The most common one is inetd; some alternatives are xinetd and tcpserver. One of these programs must be running; check for inetd with
ps axu | grep inetd
If your distributions uses a different program, change the grep expression accordingly. Any of these programs should be running once.
OK,原来这样,rlinetd不能转发leafnode的包,我换xinetd!!!
小心地换了xinetd,根据提示,配置/etc/xinetd.conf

# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/

defaults
{

# Please note that you need a log_type line to be able to use log_on_success
# and log_on_failure. The default is the following :
# log_type = SYSLOG daemon info

}

service nntp
{
socket_type = stream
protocol = tcp
wait = no
user = news
server = /usr/bin/leafnode
}
includedir /etc/xinetd.d

重启服务,一切OK,万岁!!