Skip to content →

Category: Blog

开发日记之二:体会颇多

“嘴”上谈来终觉浅,绝知此事要躬行。

我们在讨论的时候觉得好像没有太大的问题,每次讨论也是嘻嘻哈哈,每个人都一副成竹在胸的样子;而具体画E-R图的时候,却感觉不是那么愉快了:一方面是因为我们前期的讨论不到位,基本上没有达到讨论应有的效果,在基本所有问题上都没有达成共识,所以画图的时候每个人还是固执己见,都认为自己的观点更好,导致大家吵架吵了一遍又一遍;令一方面是需求分析做得不够,在项目初期对项目的分析不全面、不透彻,也没有到公司去做需求,需求上的东西有一些是我们自己捏造出来的,有一些不完全符合实际,导致画图的时候模棱两可。

还有一个很大的问题:对数据库的理解不够透彻。虽然大家上学期都学了数据库这门课程,但我们不得不承认自己认识的浅陋,抛开我们对知识点的遗忘不说,我们对E-R模型以及范式的理解深度不够是肯定的。几乎每个人都画了E-R图,但每个人的质量都不高,而且画出来的图也不全面,不是关系没有理清楚,就是实关系的基数没标好,总之没有达到应有的水平。

更要命的是,大家都觉得自己的东西没有问题,自己做的就是对的,不容易接受他人的想法和观点。架是吵了很多,有时候争得脸红脖子粗的,但似乎也于事无补,却导致进程陷入僵局。

最后迫于交文档的期限,大家才又重新开始画图。但即使在这个时候,大家的努力配合仍然不够,四个人的精力始终不能放到一件事情上去。我作为组长,肯定有我自己的问题,没能使大家的力量往一处使。希望以后在这方面可以加强。

E-R图画了好几遍,又经过缝缝补补,终于开始有了一点轮廓,开始还想用范式来验证一下,结果发现根本无法入手──这便又是需求没做好的缘故了。最后抱着以后再好好想想约束的想法,把E-R图确定了下来。又根据E-R图,初步确定了数据库的表结构。尽管有些模块的具体实现还没有敲定,但数据库的基本轮廓算是确定下来了。

这个项目的前期工作基本上就已经确定下来了,即使前期做得不够,也只能靠后期好好实现了。需求分析要尽可能的保持原状,对于数据库,其基本的表结构也已经确定。剩下的工作就是具体实现了,希望大家在后期的工作中团结一致,心往一起想,劲往一处使,以最高的热情与斗志,迎接挑战,做好每一个细节,充分完成、完善我们的项目!

现在才发现需求分析的重要性,也许我们的每一步,都会牵扯到项目后面的实现,所以,我们应该做好每一件我们应该做得事情。前面的错误过失也许无法再补救,但现在我们做的,以及以后我们需要做的,却不能再马马虎虎、嘻嘻哈哈了!

 

Leave a Comment

开发日记之一:前期感受

组好队,取完队名,经过讨论终于确定了项目。又通过讨论,基本上确定了需求的大致框架,但是这一步却走得比较困难。

最初看起来非常简单的事情,仔细分析起来却并不简单。虽然说做需求的时候不要想如何去实现,但实际做起来却总想往实现上靠。简单的模型越想越复杂,但还好最终把框架定了下来。

细想一下,要实现这个系统并不简单,单是用户查询这一模块,要想做得好就要费劲脑汁,如何将查询做到快、省、准,如何实现图像的整合,都是我们面临的较大的挑战;还有数据的获取,暂时也没有想到好的解决方案;还有,怎样做才能更贴近实际,而又避免把系统做得臃肿……

现在我们还有很多不足的地方,比如对项目不够重视,缺乏激情,动手能力亟待提高,理论分析做得不太到位,更糟糕的是,对有些模块的认识还是模模糊糊;这些不足,克服了我们就会有很大的进步,然而如果克服不了,这个项目估计就完成不了。现在以我们的能力,要将这一系统做好恐怕还要每个人不懈努力。在今后的两个月里,要重新拾起JAVA,把数据库理论再弄通弄懂,熟悉JDBC,数据库编程,加强数据结构与算法方面的修养,学习XML……

任务虽然艰巨,但是我们不是懦夫,我们不能退却。我们要合理的安排自己的学习活动,相信自己,相信队友,相信我们Crazy_Bus!在未来的一段时间里,我们是室友,是队友,也是战友!想信通过大家的努力拼搏和奋斗,我们一定可以优雅的谢幕!

 

Leave a Comment

VIM C++ (全能)自动补全: OmniCppComplete

下载:http://vim.sourceforge.net/scripts/script.php?script_id=1520

1.把下载的 omnicppcomplete.zip 解压到 ~/.vim 中

2.建立 tags:
root@ROK:/home/rok# cd /usr/local/share/
root@ROK:/usr/local/share# mkdir tags
root@ROK:/usr/local/share# cd tags/
root@ROK:/usr/local/share/tags# ctags -R –c++-kinds=+p –fields=+iaS –extra=+q /usr/include/c++/4.1.2/

3.在 .vimrc 中添加:
set nocp
filetype plugin on
filetype indent on
set tags+=/usr/local/share/tags/tags
au BufWritePost *.c,*.cpp,*.cc,*.h !ctags -R –c++-kinds=+p –fields=+iaS –extra=+q .

Leave a Comment

终于搞定 Slackware 12.0 挂载的乱码问题了

只需要改一下fstab就可以了:

/dev/hda2 swap swap defaults 0 0
/dev/hda1 / ext3 defaults 1 1
/dev/hda5 /home ext3 defaults 1 0
/dev/hda3 /win vfat defaults,codepage=936,iocharset=utf8,umask=000 1 0
/dev/sda1 /mnt/usb1 auto
noauto,codepage=936,iocharset=utf8,user,umask=000 0 0
/dev/sda /mnt/usb auto noauto,codepage=936,iocharset=utf8,user,umask=000 0 0
#/dev/cdrom /mnt/cdrom auto noauto,owner,ro 0 0
#/dev/fd0 /mnt/floppy auto noauto,owner 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
proc /proc proc defaults 0 0

 

Leave a Comment

Mother’s Day: What I have done and What I should have done for my Mother

It’s Mother’s Day today. I’ve never celebrated Mother’s Day anyway. But, I think it’s time to express my gratitude and my deep feelings; and we shall always learn to express our feelings, gratitude, regret, etc.

I’m not going to ‘celebrate’ Mother’s Day though; instead, I don’t think Mother’s Day should only be celebrated on this particular day. In fact, I do think that everyday may be the same; and we should ‘celebrate’ Mother’s Day EVERYDAY!

Well, my mother has nothing in particular indeed; she is much like every the other mother in the world. She gave me my life; she taught me to walk, to speak, and to be a man with responsibility; she has been loving her son ever since I was born.

Then what I have done?

Well, if I think hard, I do realize something I’ve done sometimes. I have been getting along very well thanks to my family; I have been working very hard towards my destination; and above all, I’ve been living, safe and sound.

But I did make make mistakes. Some of them even made my mother rather sad at times. There was a time when I don’t want live in this world any more owing to the heavy stress of school work. This dangerous and ridiculous idea really scared my mother. She got heartbroken and extremely angry. Fortunately I realized my fault and, very fortunately again, I did very well in the Senior Middle School Entrance Examination.

And what I should have?

Actually I having been thinking about questions like this every single day. And I believe that as long as I’m living soundly, my mother should be quite happy. So, keep in good health and work hard to realize my dreams, that’s all I should have done; and that’s what I have done.

So, on this particular day, I have a clear conscience. And I believe it will be the same for me as well tomorrow and the day after tomorrow.

 

Leave a Comment

一些零碎的记忆・揪耳朵

每每想起这件事,都不由得对父亲肃然起敬。

那是我四岁那年夏天的一个晚上,窗外知了“吱吱”叫个不停,屋内空气凝滞,昏黄的日光灯让小小的房间变成了橙色的蒸笼。我趴在桌子上,手无力的握着铅笔,挣扎着抬起似千斤的眼皮,脸上的汗珠一粒一粒的往下坠。父亲在旁边一边扇着扇子,一边用他那威严的眼睛盯着我:“快写!”

“快写完了来睡觉,远远!”妈妈也躺在床上一边用力的扇着扇子,一边朝我喊到。我已经写完了“李”和“道”,只剩下这最后一个“远”字了,但我终究没有坚持到底的毅力,把铅笔扔到一边:“我不写了!”父亲可不同意,眼神依旧威严,由不得我讨教还价。可我确实已经感觉到了周公对我的呼唤,于是“哇哇”的哭了起来──这似乎不是襁褓之中婴儿的专利。这下父亲可怒了,还没站起来手已经先揪住了我的耳朵。但是可能是我的耳朵上汗太多(也有小孩子的皮肤太细滑的可能),每次父亲想揪着我的耳朵把我从座位上提起来时,每次都以失败告终,父亲这时似乎已经丧失了理智,他一把拽过旁边的毛巾,保住我的耳朵,硬是把我给提了起来。

“耳朵梗子”再“硬”恐怕也难以承受一个人身体的重量,等父亲松开手时,血已经流到了脖子上。剩下的事情我记不太清楚了(当然,我没有昏倒,只是耳朵那里裂开了,问题似乎没想象的那么严重),后来从母亲和其他一些亲戚口中了解到,我有好长时间没和父亲说话──母亲也是。

几年之后,我依然淘气,整天在家翻箱倒柜,一次偶然的机会,我翻到了父亲的帐目本。翻到中间部分,突然发现了一篇“忏悔书”,我细细将它看完,原来父亲那次揪我的耳朵之后后悔万分,便写下了忏悔书。又过了几年,姑妈在也我家看到了父亲的忏悔书,于是,她将它撕了下来,对我说:“等你考上大学之后我再把这个给你!”

后来我考上了大学,成了家族唯一的大学生,但姑妈并没有把父亲的“忏悔书”给我──我依然记得其中的字字句句,而且该忏悔的不是父亲,而是我。

我被揪了耳朵之后,父亲并没有因此而放下他的威严,我不听话的时候他仍然会打我,只是他再也没有揪过我的耳朵,而是打屁股──但从来没有打得皮开肉绽。-:)

现在长大了,偶尔也和父母提及这件事,父亲有时侯会说那次打得还不够狠,以后我不听话了他还会揪我的耳朵;有时也会报怨母亲当时不该催促我快写完了睡觉;有时还会问我有没有留下“后遗症”……不管父亲说什么,我都知道他的心里在想着什么。

但我终究没有“成龙”,也许以后会吧,或者也许真如父亲所说──那次打得还不够狠……

 

Leave a Comment

佛偈

身是菩提树,心如明镜台,时时勤拂拭,勿使惹尘埃。
──经常擦擦眼镜,别让它们沾上灰尘。

菩提本无树,明镜亦非台,本来无一物,何处惹尘埃。
──不戴眼镜,便无所谓尘埃。

黄庭坚自赞偈
似僧有发,似俗无尘,
作梦中梦,见身外身。

来说是非者,
正是是非人。

法本法无法,
无法法亦法。
今付无法时,
法法何曾法。

七佛通戒偈
诸恶莫作,诸善奉行。
自净其意,是诸佛教。

 

Leave a Comment

C++ STL Notes: String Replacement

Macro

You are asked to do some replacements on a string. Can you work it out?

Input and Output

 

Each test case will begin with a string in a single line, and followed by an integer N which means the number of replacements. The next N lines will give you two strings s1, s2, you should replace all the s1 into s2. For more details, see the
sample below.

Sample Input

 

abc
3
a b
bb a
c d
aaabaaaa
1
aa a

Sample Output

 

ad
aabaa

Note:
For the first sample:
After the first replacement, the string will be bbc.
After the second replacement, the string will be ac.
At last, the string will be ad.

My Code:

#include 
#include 
#include 

using namespace std;

void myreplace(string & strBig, const string & strsrc, const string &strdst)
{
string::size_type pos=0;
string::size_type srclen=strsrc.size();
string::size_type dstlen=strdst.size();
while( (pos=strBig.find(strsrc, pos)) != string::npos)
{
strBig.replace(pos, srclen, strdst);
pos += dstlen;
}
}

int main(int argc, char** argv)
{
string s;
while(cin>>s)
{
int n;
string s1,s2;
cin>>n;
while(n–)
{
cin>>s1>>s2;
myreplace(s,s1,s2);
}
cout<

Leave a Comment

C++ STL Notes: List->unique

Syntax:

void unique();
void unique( BinPred pr );

The function unique() removes all duplicate elements from the list. Equality is tested using the == operator, unless pr is specified as a replacement. The ordering of the elements in a list should not change after a call to unique().

unique() runs in linear time.

E.g: JOJ 2274

Write a program that reads a single line of input, not greater than 10000 characters long, consisting of a number of lower case words separated by spaces, the number of letters of a word no more than 100, and print the words, one per line, in alphabetical order. Print each word only once regardless of how many times it appears in the input.

Sample Input

how green is my
valley

Sample Output

green
how
is
my
valley

My Solution:

 

#include <iostream>
#include <string>
#include <algorithm>
#include <list>

using namespace std;

void Print(string& s)
{
cout<<s<<endl;
}

int main(int argc, char** argv)
{
list<string> slist;
string s;
while(cin>>s)slist.push_back(s);
slist.sort();
slist.unique();//The order of sort() and unique() can NOT be changed!
for_each(slist.begin(),slist.end(),Print);
return 0;
}


Leave a Comment

Experience of Geany — A lightweighted IDE

Geany’s homepage: http://geany.uvena.de/Main/HomePage

Well, since it’s lightweighted, it’s small and, above all, FAST. For personal user, I think it’s much faster than eclipse, and much easier to use than emacs.

It’s basic features:

syntax highlighting
code folding
code completion
auto completion of often used constructs like if, for and while
auto completion of XML and HTML tags
call tips
many supported filetypes like C, Java, PHP, HTML, Python, Perl, Pascal
symbol lists

It’s code completion function is of great help, and will help us a lot!

But there are problems. I’ve used this IDE for only a day, but the auto
indentation function can’t work correctly. For example:

for(i=0;i<10;i++) [press enter here]
[it should be indented like this]
[but not this]

or maybe it’s my problem.

If anyone works this problem out, please email me! Thanks.

 

Leave a Comment

LumaQQ的一点优化

我用的是不带jre版本的LumaQQ,每次启动都狂读硬盘,于是我改了其启动脚本:
PREFIX=
if [ -L “$0” ]; then
PREFIX=`readlink -f $0`
if [ $? -eq 0 ]; then
PREFIX=`dirname $PREFIX`
else
PREFIX=`file $0`
PREFIX=${PREFIX##*symbolic link to }
PREFIX=`dirname $PREFIX`
fi
else
PREFIX=`dirname $0`
fi
case $PREFIX in
/*)
;;
*)
cd $PREFIX
PREFIX=`pwd`
;;
esac
if [ ! -e $HOME/.lumaqq ]; then
mkdir $HOME/.lumaqq
fi
cd $HOME/.lumaqq
ln -sf $PREFIX/log4j.properties $HOME/.lumaqq/log4j.properties
ln -sf $PREFIX/xml
ln -sf $PREFIX/sound
ln -sf $PREFIX/QQWry.dat $HOME/.lumaqq/QQWry.dat
cp=
for i in $PREFIX/lib/*.jar; do
cp=$i:$cp
done
/soft/jdk1.5.0_08/bin/java -Djava.library.path=$PREFIX/swt -classpath $cp
edu.tsinghua.lumaqq.LumaQQ “$HOME/.lumaqq” &
#为了方便,我去掉了原有的注释。
#改动的便是最后一行
#注意:/soft/jdk1.5.0_08/bin/java 为java路径

以上改动如有不妥,还希望大家批评指正,谢谢!

 

Leave a Comment

2006年总结

现在已经是二零零七年,但是过去的一些事情还是值得总结的,现在闲着没事,姑且简单的总结一下吧。

回想过去一年,似乎也没有什么值得得意的事情,从头到尾想一遍:2006年我没有白过,虽然浪费了一些时间,但毕竟人是不能不犯错误的。

二月份到了学校,电脑联网了,当时兴奋得不得了,估计有一个月的时间没认真上课,但有得有失,自己还是从网上学到了一些东西。自己的视野也开拓了许多,正是从那个时候起,自己对自己的专业才有了一个初步的了解,虽然很不全面,很不深入,毕竟是自己的一个很初级的想法。

三月份同样昏昏噩噩,后来听说奶奶走了,自己似乎收敛了一些。但是对于亲人的离去,我却麻木了。也许是自己和奶奶的接触少了,也许是自己长大了,对待死亡没有先前的恐惧了,对于自己的麻木,我也无可奈何,不知道人长大了是不是都会变成这样,唉,还是对自己听之任之吧,毕竟自己还不是那种感情淡漠的人。

四月五月,无话可说,好像参加了学校的ACM选拔赛,名次当然不理想,不过因为自己在JOJ上做的题比较多,最后还是被选进了学校的集训队,这也不是什么很光彩的事,但也不足为耻。

六月,先考了英语四级,后来应该是在准备期末考试,半年没怎么学,考前一个月无论如何也要认真学学。25号考完,他们走后,寝室里就剩下我一个人,可以安静一下了。

七月,本来准备去当家教,没想到初一的知识都忘记了,没办法,还想去餐馆端盘子,终究还是没去。在寝室学习吧,一打开电脑,就在网上找电影,一个暑假,好的坏的电影看了一大堆,到头来什么意思都没有。不过后来看了一点JAVA,学了Photoshop,不过花了好多时间看Photoshop,估计以后用的也会比较少。毕竟自己交一万多的学费不是来学美工的。也好,醒悟得还是比较早。苦海无边,回头是岸啊!

八月,开了学,陪他们去买了电脑,现在每个人都有电脑了,寝室里也疯了。小学期的课也没什么,只有《离散数学》是必修课。这一个学期基本上没怎么上课,先是在寝室学ACM,后来又弄Linux,废寝忘食,终于把Linux装到了电脑上。虽然浪费了自己一点时间,但自己在摸索的过程中也学到了一些东西,比如汉字的编码,字体的显示等等。也好,摸索一下Linux总比天天“优化”Windows好,况且,装上了Linux,不能玩游戏,看电影也不太方便,天天用键盘,不用鼠标,对自己的帮助也是很大的。

九月,新生入学,才想起自己也在大学呆了一年了。唉,光阴似箭啊!去推销《英语周报》,竟然只卖出去三份,如果学弟学妹们都像我当时那么“聪明”,那我能赚多少钱啊!过了几天,竟然发现自己《离散数学》只得了32分!想一想自己也没怎么学,32分也应该是比较正常的。最后大头劝我去复查分数,去学院教务处填了表,每天就呆在教师自习,受打击了!过了两个星期,再去看分数,给我找回来了。老师把我第一大题的分数当成总分了,现在70分了,有二等奖学金了,哈哈!但后来还是没把我的名字加上去,奖学金没了,证书没了,这一年的什么奖都没了。也没什么可惜的,正好刺激自己一下。

剩下的几个月,每天认认真真的学习,准备英语六级,无话可说。

总之,虽然2006年这一年没得到什么,甚至失去了好多,但既然已经过去,就让这些烦恼,这一切的一切,随风飘走吧。外面的阳光正灿烂,何必孤守自己回忆的一隅呢?

该失去的已经失去,该得到的也将得到,不必去争论,不必去强求。宠辱不惊,闲看庭前花开花落;去留无意,漫观天外云展云舒!

 

Leave a Comment

第一次成功优化Slackware Linux

参考1:http://www.linuxsir.org/bbs/showthread.php?t=68094

参考2:http://www.linuxsir.org/bbs/showthread.php?s=&threadid=85045

参考3:http://www.linuxsir.org/bbs/showthread.php?s=&threadid=133294

Step1 字体以及中文的显示问题

1. 更改英文为中文:修改 /etc/profile.d/lang.sh 找到一行是: export LANG=C 在它前面加#注释掉,然后增加一行: export LANG=zh_CN.gbk

2. 复制字体:创建/usr/share/fonts/;复制windows下面的simsun.ttf, tahoma*.ttf等字体到/usr/share/fonts/目录下

3.
修改XF86Config配置文件:修改/etc/X11/XF86Config 文件,加入路径: FontPath “/usr/share/fonts/” Section “Module” … Load “freetype” #<—– 这一行前面如果有#,应删除 Load “xtt” #<—– 这一行前面如果有#,应删除;如果没有这一行,自己加到文件里 Load “type1″ … EndSection

4. 下载或复制一些中文的ttf字体到 /usr/X11R6/lib/X11/fonts/TTF下

Step2 使用鼠标滚轮

改/etc/X11/xorg.conf。在mouse段的Option里,”protocol”设为“imps/2″,再加两行,最后成为: Option
“Protocol” “imps/2″ Option “Buttons” “5″ Option “ZAxisMapping” “4 5″ 或者另外一种说法: Section “InputDevice” # Identifier and driverIdentifier “Mouse1″Driver “mouse” Option “Protocol” “IMPS/2″ <==修改这里 Option “Device” “/dev/mouse” Option “Buttons” “5″ <==添加这里 Option “ZAxisMapping” “4 5″ <==添加这里

Step3 安装fcitx输入法

1.下载fcitx3.3 2.tar jxvf fcitx-3.3.tar.bz2 3.cd fcitx-3.3 4../configure 5.make 6.make install 7.make clean

Step4
安装LumaQQ

1.下载LumaQQ2005,解压 2.下载patch

Step5 slackware 9 普通用户不能访问mount的分区问题

更改/etc/fstab文件:/dev/hda10 swap swap defaults 0 0/dev/hda3 / ext3 defaults 1 1/dev/hda9 /boot ext3 defaults 1 2/dev/hda1 /mnt/winC vfat defaults,iocharset=gb2312,umask=022 1 0/dev/hda5 /mnt/winD vfat defaults,iocharset=gb2312,umask=022 1 0/dev/hda6 /mnt/winE vfat defaults,iocharset=gb2312,umask=022 1 0/dev/hda7 /mnt/winF vfat
defaults,iocharset=gb2312,umask=022 1 0/dev/hda8 /mnt/winG vfat defaults,iocharset=gb2312,umask=022 1 0/dev/cdrom /mnt/cdrom iso9660 noauto,owner,ro 0 0/dev/fd0 /mnt/floppy auto noauto,owner 0 0devpts /dev/pts devpts gid=5,mode=620 0 0proc /proc proc defaults 0 0###########/dev/hda7 /mnt/win vfat defaults,iocharset=gb2312,umask=022 1 0###########我改了winC-winD的defaults,原来是defaults

Step6
安装java和eclipse

1.j2sdk-1.4.2-nb-3.5-bin-linux.bin2.在~/bash_profile中加入JAVA_HOME=/opt/j2sdk_nb/j2sdk1.4.2/PATH=.:$JAVA_HOME/bin:$PATHexport CLASSPATH=$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/tools.jar:.export JAVA_HOME PATH3.eclipse-SDK-3.3M1-linux-gtk.tar.gz4.在/usr/local/bin中新建eclipse.sh:#!/bin/bash## 执行 eclipse 2.1.1#export Java_HOME=/opt/j2sdk_nb/j2sdk1.4.2export CLASSPATH=/opt/j2sdk_nb/j2sdk1.4.2/lib/opt/eclipse/eclipse -vm /opt/j2sdk_nb/j2sdk1.4.2/bin/java -data
/home/workspace &# -vm 参数用以指定使用哪一个 jvm 来执行Eclipse,# -date参数用以指定Eclipse的数据目录。在此指定其存在用户根目录(~)下的workspace目录中#将脚本保存到/usr/local/bin中,叫runeclipse.sh,并给runeclipse.sh分配755权限 ************************chmod -R 777 /home/workspace**************************

经过以上优化,系统基本可用了。以上优化对我的机器有效:联想旭日125F,Slackware9.0。本人 接触Linux的时间不长,上述方法如有不妥,请不吝赐教!

 

Leave a Comment