2007-10-08
利用程序最大化或最小化窗口
Send(Handle(windowname), 274, 61488, 0)
Send(Handle(windowname), 274, 61728, 0)
2007-09-10
SQL Server 安装:以前的某个程序安装已在安装计算机上创建挂起的文件操作
以前的某个程序安装已在安装计算机上创建挂起的文件操作。运行安装程序之前必须重新启动计算机。
解决:
删除
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations
项目。
摘自:张光见博客
http://www.proxyserve.net/index.php?q=aHR0cDovL3d3dy5jbmJsb2dzLmNvbS93aWxscG93ZXIvYXJ0aWNsZXMvNjExODUuaHRtbA%3D%3D
2007-09-07
Access data values from composite datawindow
datawindowControl.Object.columnname[row]
In order to access nested object values of composite datawindow, we can use:
datawindowControl.Object.Reportname.Object.value[row]
Sometimes, we need to modify nested report object properties. we may use Getchild() function to get nested report handle, and then manipulate it as if the neasted report is a datawindow control. Here is an example:
//There is a composite datawindow control named dw_product_info
//A composite datawindow has dw_master and dw_detail neasted report.
//We need to sort the rows of dw_detail by the first column
datawindowchild ldwc_detail
dw_product_info.getchild("dw_detail",ldwc_detail)
ldwc_detail.setsort("#1 A")
ldwc_detail.sort()
2007-09-06
Evaluating the display value of a DropDownDataWindow
DropDownDataWindow column called state_code. You must execute the code after the ItemChanged event, so that the value the user selected has become the item value in the buffer. This code is the script of a custom user event called getdisplayvalue:
string rownumber, displayvalue
rownumber = String(dw_1.GetRow())
displayvalue = dw_1.Describe("Evaluate('LookUpDisplay(state_code) ', " &
+ rownumber + ")")
This code, as part of the ItemChanged event’s script, posts the getdisplayvalue
event:
dw_1.PostEvent("getdisplayvalue")
Quoted from PowerBuilder 10.5 DataWindow Reference
2007-08-27
卖车的伎俩
1. 报价很有可能就高于官方报价,为客户砍价预留空间。
2. 客户要求优惠,JS就问你是否今天订车,如果订车,他们再去申请优惠。
3. 所谓向经理、主管、上级申请优惠,是一幌子。有时甚至会带来"经理",再"痛苦"地做出让步。
4. 送东西,送多少。客户要求送的东西都比较贵,当客户想折现的时候,这些东西就不值钱了。
5. 没有现车,车厂按订单生产,下订金才能调车等,都是套你下订金的手段。
6. 挑车的时候,仅提供1~2部车。除非你挑不到合格的车,让客户等一段时间,再提供1~2部车。总之,不会带客户去车库挑车了。
2007-08-24
Enable access over anonymous
1. Enable Guest/Guests account
2. Modify the value of
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\restrictanonymous
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\restrictanonymoussam
to 0.
3. Reboot Windows
2007-05-11
Emacs 边学边用
1. 光标移动
下翻页
ctrl + v
上翻页
alt + v
本行显示在屏幕中心
ctrl + l
上移1行
ctrl + p
下移1行
ctrl + n
左移1字符
ctrl + b
右移1字符
ctrl + f
左移1单词
alt + b
右移1单词
alt + f
移至行始
ctrl + a
移至行末
ctrl + e
移至句始
alt + a
移至名末
alt + e
移至文章的最前面
alt + shift + ,
移至文章的最后面
alt + shift + .
2. 中文支持
Ubuntu的repository带的是emacs 21版,对中文支持不好。建议使用最新版本的emacs 23。下面的网址下载:
http://mail.ustc.edu.cn/~abxeeled/edgy/emacs_23.0.0.1-2_i386.deb
sudo dpkg -i emacs_23.0.0.1-2_i386.deb
参考文章:
1. Emacs Tutorial,
启动Emacs,下面命令即可打开Tutorial
ctrl + h, t
2. cvs20070127 的 emacs23 deb 包
http://forum.ubuntu.org.cn/viewtopic.php?t=40210
FreeNode IRC 边学边用
在什么地方输入命令?
就在你聊天的窗口。
1. 注册呢称
/msg nickserv
2. 设置你的email
/msg nickserv set email
隐藏你的email地址
/msg nickserv set hide email on
3. 将你的另一个呢称,链接到注册的呢称。
/msg nickserv link
To be continued...
参考文章:
FreeNode FAQ:
http://freenode.net/faq.shtml#projectfreenode
2007-05-08
Mplayer Installation
1. Install Mplayer
sudo aptitude install mplayer
2. Install codecs
In order to play a variety of media, all-codecs package is strongly recommended. All-codecs package for different platform can be found:
http://www.mplayerhq.hu/MPlayer/releases/codecs/
I'm using Intel platform, so I download all-20061022.tar.bz2.
tar -xvjf all-20061022.tar.bz2
sudo cp all-20061022/*.* /usr/lib/codecs/
3. Configure
I change video output to xv (X11/Xv) in Preferences->Video, but this configure may not apply to you. Just have a try if it pops video output error message.
水平型微指令/垂直型微指令
(1)水平型微指令并行操作能力强,效率高,灵活性强,垂直型微指令则较差。
(2)水平型微指令执行一条指令的时间短,垂直型微指令执行时间长。
(3)由水平型微指令解释指令的微程序,有微指令字较长而微程序短的特点。垂直型微指令则相反。
(4)水平型微指令用户难以掌握,而垂直型微指令与指令比较相似,相对来说,比较容易掌握。
微指令的编译方法是决定微指令格式的主要因素。
微指令的格式大体分成两类:水平型微指令和垂直型微指令。
1.水平型微指令
一次能定义并执行多个并行操作微命令的微指令,叫做水平型微指令。 其一般格式如下:
按照控制字段的编码方法不同,水平型微指令又分为三种:全水平型(不译法)微指令,字段译码法水平型微指令,以及直接和译码相混合的水平型微指令。
2.垂直型微指令
微指令中设置微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能 ,称为垂直型微指令。
其结构类似于机器指令的结构。它有操作码,在一条微指令中只有1—2个微操作命令,每条微指令的功能简单,因此,实现一条机器指令的微程序要比水平型微指令编写的微程序长得多。它是采用较长的微程序结构去换取较短的微指令结构。
下面举4条垂直型微指令的微指令格式加以说明。设微指令字长为16位,微操作码3位。
(1)寄存器-寄存器传送型微指令
其功能是把源寄存器数据送目标寄存器。13—15位为微操作码(下同),源寄存器和目标寄存器编址各5位,可指定31个寄存器。
(2)运算控制型微指令
其功能是选择ALU的左、右两输入源信息,按ALU字段所指定的运算功能(8种操作)进行处理,并将结果送入暂存器中。左、右输入源编址可指定31种信息源之一。
(3)访问主存微指令
其功能是将主存中一个单元的信息送入寄存器或者将寄存器的数据送往主存。存储器编址是指按规定的寻址方式进行编址。第1,2位指定读操作或写操作(取其之一)。
(4)条件转移微指令
其功能是根据测试对象的状态决定是转移到D所指定的微地址单元,还是顺序执行下一条微指令。9位D字段不足以表示一个完整的微地址,但可以用来替代现行μPC的低位地址。 测试条件字段有4位,可规定16种测试条件。
3.水平型微指令与垂直型微指令的比较
(1)水平型微指令并行操作能力强,效率高,灵活性强,垂直型微指令则较差。
(2)水平型微指令执行一条指令的时间短,垂直型微指令执行时间长。
(3)由水平型微指令解释指令的微程序,有微指令字较长而微程序短的特点。垂直型微指令则相反。
(4)水平型微指令用户难以掌握,而垂直型微指令与指令比较相似,相对来说,比较容易掌握。
转自:
http://teach.jwc.bupt.cn:4213/jsjzcyl/pan1/Chap05/5.5.3.htm
2007-05-07
解决KTorrent在Kubuntu Feisty崩溃的问题
解决方法:
下载 ktorrent_2.1.4~0jdong1~7.04prevu1_i386.deb 文件,安装即可(sudo dpkg -i...)
这个链接可以下载到:
http://buntudot.org/people/~jdong/ktorrent/2.1.4/feisty/
Rear Window - 后窗
2007-05-02
First Blood - 第一滴血
2007-05-01
IE4Linux和网上银行
IE4Linux可以让你的Linux拥有微软的Internet Explorer。整个安装过程只需要回答几个问题即完成。下面以Kubuntu Fesity Fawn为例,来安装IE4Linux。
1. 修改源
打开/etc/apt/sources.list文件:
sudo kwrite /etc/apt/sources.list
将下删除或标为注释
deb http://us.archive.ubuntu.com/ubuntu edgy universe
添加下行
deb http://wine.budgetdedicated.com/apt edgy main
关闭并保存sources.list文件。
2. 安装wine和cabextract
wget -q http://wine.budgetdedicated.com/apt/387EE263.gpg -O- | sudo apt-key add -
sudo apt-get update
sudo apt-get install wine cabextract
3. 下载安装IE4Linux
wget http://www.tatanka.com.br/ies4linux/downloads/ies4linux-latest.tar.gz
tar zxvf ies4linux-latest.tar.gz
cd ies4linux-*
./ies4linux
4. 安装过程
Welcome, ***! I'm IEs4Linux.
I can install IE 6, 5.5 and 5.0 for you easily and quickly.
You are just four 'enter's away from your IEs.
I'll ask you some questions now. Just answer y or n (default answer is the bold one)
IE 6 will be installed automatically.
Do you want to install IE 5.5 SP2 too? [ y / n ] <-- y-如果你想安装IE5.5 SP2
And do you want to install IE 5.01 SP2? [ y / n ] <-- y-如果你想安装IE5.01 SP2
IEs can be installed using one of the following locales:
EN-US PT-BR DE FR ES IT NL SV JA KO NO
DA CN TW FI PL HU AR HE CS PT RU EL TR
Default is EN-US. Hit enter to keep it or choose a different one: <-- 指定语言,回车即为的英文
By default, I will install everything at /home/aaron/.ies4linux
I will also install Flash 9 plugin and create Desktop shortcuts.
Is that ok for you? (To configure advanced options type n) [ y / n ] <-- y - 安装Flash 9 plugin
Next a few files will be downloaded, and the three Internet Explorer versions will be installed:
[...]
Installing IE 6
Initializing
Creating Wine Prefix
Extracting CAB files
Processing inf file
Installing IE 6
Installing TTF Fonts
Installing RICHED20
Installing ActiveX MFC40
Installing DCOM98
Installing registry
Finalizing
[ OK ]
Installing Flash Player 9
Extracting files
Installing flash on ie6
[ OK ]
Installing IE 5.5
Copying ie6 installation
Extracting files
Installing registry
Finalizing
[ OK ]
Installing IE 5.0
Copying ie6 installation
Extracting files
Installing registry
Finalizing
[ OK ]
IEs 4 Linux installations finished!
To run your IEs, type:
/home/falko/bin/ie6
/home/falko/bin/ie55
/home/falko/bin/ie5
If you have 5 minutes, help me translating IEs4Linux to your language.
Visit: http://tatanka.com.br/ies4linux/forum/viewtopic.php?p=2
That's it already.
参考文章:
1. IE4Linux install Ubuntu/Kubuntu/Xubuntu
http://www.tatanka.com.br/ies4linux/page/Installation:Ubuntu
如果你是Ubuntu/Kubuntu/Xubuntu的其它版本(如:Edgy,Dapper等),也请参考这篇文章。
2.How To Install Internet Explorer On Ubuntu (Feisty Fawn, Edgy Eft And Dapper Drake)
http://www.howtoforge.com/ubuntu_internet_explorer
如果你的Linux是Fedora、Gentoo、Debian或者其它,请参考IE4Linux官方安装帮助。
http://www.howtoforge.com/ubuntu_internet_explorer
2007-04-29
Stephen Hawking does a flip
2007-04-17
Go for Gentoo
By the end of semester, as we’ve got tons of assignments, and should concentrate on dissertation, there was no time to spend too much time on configuring and adjusting Gentoo. On the other hand, as a guy recommended me Ubuntu for it’s easy to use, I changed to use Ubuntu.
After campus life, we dropped down to ‘real world’. As the consequence, Linux (Ubuntu and Gentoo) is far away from my world.
Luckily enough, current job gives me a chance to study Linux. After several months of swimming in Ubuntu, I start to miss Gentoo because of its performance, even though Ubuntu is probably the most widely used distribution in these day. As I realise that the procedure must be difficult and time-consuming. But to get advance performance, and enlarge my view, of Linux it’s worthy to go for it. I’d like to conclude my experience of installation and configuration of Gentoo regularly. Hopefully, I can work out a Gentoo for my old laptop finally.
Here is a comparison between Ubuntu and Gentoo from My first time to use Gentoo is a special release customized for my Compaq X1000 laptop. The release of Gentoo can not only enable all functions of the laptop including Power Saver, PCIMA, Video card, Modem and so on, but run in an amazing speed. At that time, Gentoo was my only operating system on the laptop, and brought me a lot of fun. Unfortunately, the release is not update any more, and X1000 forum was isolated. However, Gentoo’s performance and functionality give me a strong image.
By the end of semester, as we’ve got tons of assignments, and should concentrate on dissertation, there was no time to spend too much time on configuring and adjusting Gentoo. On the other hand, as a guy recommended me Ubuntu for it’s easy to use, I changed to use Ubuntu.
After campus life, we dropped down to ‘real world’. As the consequence, Linux (Ubuntu and Gentoo) is far away from my world.
Luckily enough, current job gives me a chance to study Linux. After several months of swimming in Ubuntu, I start to miss Gentoo because of its performance, even though Ubuntu is probably the most widely used distribution in these day. As I realise that the procedure must be difficult and time-consuming. But to get advance performance, and enlarge my view, of Linux it’s worthy to go for it. I’d like to conclude my experience of installation and configuration of Gentoo regularly. Hopefully, I can work out a Gentoo for my old laptop finally.
Here is a comparison between Ubuntu and Gentoo from a variety of aspects.
http://polishlinux.org/choose/comparison?distro1=Gentoo&distro2=Ubuntu
2007-04-08
笔记本购买记
9点半出发,首先去了华强北顺电,到Sony专卖柜台,一眼就看到了我想要的这款机。向营业员要求介绍一下,人家说机器上都写着的呢。问他C21和C22有什么区别,人家回答不同的颜色标出来了。好象我是个不认识字的色盲。问价钱有没优惠,有没什么东西送?回答没有。确认他一定要我花8988买台裸机回家,我撤了。人家实在对我们没有兴趣,没办法。
跑到赛博的Sony专卖店,商家同意优惠100元,并送鼠标和包。OK,我也不想跑了,拿出货来验吧!她说要去南山调货,需等1个小时。为什么会没货呢?他们说这就是“零库存”。总觉得在这里买不放心,算了,还是去顺电吧,大钱都花了,不在乎省这100块。可华强北的那家我是不想去了,于是打电话至万象城顺电。确定有货,虽然没鼠标,可有包送,可以接受。
于是驱车到万象城,吃了顿午饭。上顺电,直接说我刚打电话来过,谈好了,现在拿出货来吧。一人说没货,但又不确定,于是把经理叫来。经理说刚才是他接的电话,现在确实没货了。不过东门分店有货。调货需要一个小时。无奈,我说你就去调货吧,我在这里等着。经理要求先付全款。没见到货就要我付全款?经理强调这是流程。我不理会什么流程,总之没见一台新电脑摆在我面前,我是不会交钱的。经理要求我相信他以及顺电。我觉得这世道没有谁相信谁,再说他已经失信一次了。最终,经理同意在我未付款的前提下去调货。我问能否多调几台来看看,他说只有一台。这么大的顺电只有一台?是的!如果发现新机有故障呢?经理强调这是不可能的。万一有故障呢?经理只能承诺等有了货给予调换。我彻底失望了,走人。
回到赛格,找一家Sony授权店(Acer专卖店),营业员爽快同意便宜188,送鼠标和包,现在就有库存。那就去验机吧。人家又要我先付全款再验机。我非常反感,扔出200块订金,验机去了。在所谓技术部兼仓库等待新机器,过了20分钟,还未等到,并且周围也有许多人在等待。不耐烦,上前问询。答复:我们正在审核你的订单。再问审核个什么?答日:要审核电脑的配置。都是笔记本电脑,里面的配置还需审核吗?难道一个个零件拆出来审核?同来的朋友忍无可忍道:又不是报关?这有什么好审核的?!你不该不是去别的地方调货吧。换了个答复:我们这是小仓库,已经派人去大仓库取电脑了。无语。
半个小时后,电脑来了。验机,检查包装,看亮点,试功能,查验装机单。好了,拿上鼠标和包就可以走了。这时只见到从货架上取来一黑色电脑包,走到半路上又换了个大红色电脑包给我。一看这大红色的电脑包,问其是否可以换个黑色的。答复:不行,这是原配的包。和我同来的朋友火了:你这怎么是原配的电脑包呢?原配的几百块钱,你们楼下售货员都说这是杂牌包。经过几分钟的争执,他才不情愿的给我个红色的电脑包。细看和刚才那一模一样,只是颜色不同。
这时已是下午4点半了。终于花了8700块钱买下了这台电脑。但这次购买充满了不愉快。是现在的奸商太多,还是我的思路不对?
2007-04-05
Ubuntu Feisty Fawn 安装配置手记
1. 解决LiveCD检测不到硬盘的问题。
2. 安装中文输入法
3. 安装文泉驿(v0.8“嬴政”)中文字体
4. 安装Nvidia驱动程序
5. 安装多媒体codecs,解决不能播放rmvb格式文件的问题
6. 安装Realplayer
1. 解决LiveCD检测不到硬盘的问题。
症状:
SATA接口硬盘。
sudo fdisk -l
显示空白。
用LiveCD安装到第4/5步,得不到硬盘分区表。
解决:
硬盘接在SATA4口上,将其接到SATA1口上。LiveCD即检测到了。
2. 安装中文输入法
sudo apt-get install im-switch
sudo apt-get install fcitx
具体配置方法见英文locale下输入中文
3. 安装文泉驿(v0.8“嬴政”)中文字体
下载Debian Deb安装包
sudo dpkg -i wqy-bitmapfont-0.8.0-6_all.deb
4. 安装Nvidia驱动程序
sudo apt-get install nvidia-glx
sudo nvidia-xconfig
sudo nvidia-xconfig --add-argb-glx-visuals
5. 安装多媒体codecs,解决不能播放rmvb格式文件的问题
sudo apt-get install totem-xine libxine-extracodecs
下载w32codecs
将文件:
.xine/catalog.cache
里的
/usr/lib/xine/plugins/1.1.4/xineplug_decode_real_audio.so
decoder_priority的值改为10
注意:一定要把所有的播放器关闭之后再修改
6. 安装Realplayer
http://www.real.com/linux/ 下载
sudo chmod -c 755 RealPlayer10GOLD.bin
sudo ./RealPlayer10GOLD.bin
To be continued...
参考文章:
1. 解决feisty里面xine播放部分real格式的视频没有声音的问题
得到Huahua,及#ubuntu-cn里朋友的解答。
2007-04-04
超越时空的悲歌-读马致远《【双调】庆东原》(转)
“拔山力,举鼎威,暗鸣叱咤千人废。阴陵道北,乌江岸西,休了衣锦东归,不如醉还醒,醒而醉。”
“明月闲旌旆,秋风助鼓鼙,帐前滴尽英雄泪。楚歌四起,乌骓漫嘶,虞美人兮,不如醉还醒,醒而醉。”
项羽的事业虽然壮观,他领导的那支起义军摧毁了无道的秦王朝。但项羽没有在人间创造光明,因为他用黑暗代替黑暗,用屠杀代替屠杀,所以他的事业如流水般失去。当辉煌的力量,气盖山河地冲杀用失败打上句号时,诗人就想到了“醉而醒,醒而醉。”当然,也是想到了苍生,想到了神洲的未来。项羽和范增都没有像萧何那样,制定宽松的法律,与民休息,政治清明。这两人反而想以兵威压服天下,是一起手就败亡的政策。明月映旌旗,秋风如鼙鼓,当为失败而潸然泪下,当眼望苍天而感到疑惑时,最好看一下大地,看一下苍生,看一下江河的奔流。深邃的宇宙和辽阔的大地环绕着猥琐的人生,但人生能迸出火焰,文明就能放射光芒。就是因为世界上有真理和美德,治理天下的陈平和扫荡天下的范增斗智,结果范增败了下来。汉朝主宰山河,一统寰宇已经是定局,大民族的文明将震撼世界,这是项羽和范增灭亡的原因了。“不如醉而醒,醒而醉”,这也许在感叹壮士冲阵的英勇和穷途末路的感伤,也从另一个角度来证实人间的美需要“道”来扩充,需要仁德来滋养。
三顾茅庐问,高才天下知, 笑当时诸葛成何计?出师未回,长星坠地,蜀国空悲,不如醉还醒,醒而醉。
夸才智,曹孟德,分香卖履纯狐媚。奸雄那里?平生落的,只两字征西。不如醉还醒,醒而醉。
诸葛武侯是美的化身,他的功业因为没有成功,所以实质的贡献是没有的。但他的坚强的心灵,强大的智慧,为真理奋斗一生的决心,却是伟大和崇高的。悲剧使人类的进化逐渐加快,悲伤也是美。才高天下的诸葛亮用生命如一来报效国家,用鞠躬尽瘁来实现人生价值,是比曹孟德要伟大的。当辉煌的大星在军前坠落,当苍天茫茫,秦岭如奔,这位古代杰出的军事统帅眼望苍天,终于找到了人生的要义。生命在五丈原升华,进而名扬宇宙,在人间留下了智慧、力量、和勇气。
诸葛亮的对手曹孟德,他在心灵中不如诸葛忠诚,在现实不如诸葛亮忠厚,竟然改变了当大汉征西将军的理想,所以在历史中有恶名。在海天苍茫中前进的人类,要冲出迷雾,要得到光明,首先就得有善,就得有道。当思想局限在儿女恩怨里,当生命结束时想得都是分香卖履的小事,那人类精神的高级境界就要退后了。“莫以恶小而为之,莫以善小而不为,惟贤惟德,可以服人。”诸葛亮写下这些句子,也是对大汉丞相曹孟德的批判了。千年恍然,万古如镜,我们的诗人将思绪流连在遥远的古代,为古人担忧,用如椽之笔,既写下了光明,也写下了悲伤,所以最后总结道:“不如醉而醒,醒而醉。”
画筹计,堕泪碑,两贤才德谁相配? 一个力扶汉基,一个恢张晋室,可惜都寿与心违,不如醉还醒,醒而醉。
珊瑚树,高数尺,珍奇合在谁家内?便认做我的,岂不知财多害己,直到东市方知。则不如醉还醒,醒而醉。
诸葛亮为国家设谋定计,羊怙为官深得民心,他们的才德如日月运行,似大地绵延。当无常的冷酷降临,当事业在命运地笼罩下,我们民族的贤哲只讲奋斗,不管结局。他们的心灵在延伸,他们的道德在运行。神州大地光明照耀,山河生辉。有限和无限在斗争中得到了融合,大地和苍天成了贤哲的舞台。虽然短暂的生命像火光一样飘没,但在峰岭之中,在蜿蜒的道路里,人类自身的力量却越来越坚强。当石火电光一样的生命在奋斗后进入不可知的境界,我们的生活就有了目标,像星辰一样灿烂的理想就照耀我们的心灵。
人间有太多的财宝,但没有太多的善良。当灿烂的珊瑚惊人心魄,当奇珍异宝熠熠发光,尘世的俗人就微笑起来,他们感到很满足,很快乐。“岂不知财多害己,直到东市方知。”真正的财宝是善行、义举和理想,是一切人对一切人的爱。当人间的痛苦增加时,就是一个好人的工作之时。要保藏心灵的珍珠,要增加人间的光明,就是最大的财富。当人类社会地逐步完善成了生命的动力,那无边的黑暗就要隐退了,真理必胜!我的是虚幻,而人民的光荣是永恒,这是定律,所以“不如醉而醒,醒而醉。”
马致远的歌声在时空震响,有高扬的气魄,有伟大的胸怀,有自然的意志。悲欢离合在生活中,深沉地思考在人间。当歌声感动人世,当自由的理想覆盖大地和山河,我们的生命就会和人民的未来一起旋转。历史是带着光明前进的,沉重的劳作,不竭的追求,都展示了壮丽的画卷。当亘古长存的理想在时代闪耀光芒,当我们的语言和文字一次次地被动地惊天的声音环绕,我们的心灵就被净化,我们的智慧就在延伸。当智慧在大地和苍天中伸展,当征服一切的力量以善和真的面目出现,我们就没有克服不了的困难。我们的志士仁人的声音温暖而真挚,其追求真理的决心执着而稳定。当歌声不断地响起,当亲切地召唤不断地激动人心,我们的精神面貌,我们的大地山河就壮观起来。醉和醒是一种升华,是一种对罪恶的蔑视,是一种对本原的认识。在强大的认识中,在对祖国和人民命运地反思中,我们的语言花团锦簇,我们的旷野鲜花盛开,我们的心灵陶醉在善行当中。在滚滚黄河的岸边,读着马致远创作的曲子,感受先贤的思想境界,望着一望无际的翠绿,我们的心胸就会无限开阔,我们就能看到真理的光荣。当个人的生命无条件地和祖国与人民连接,当个人的一切都献给了祖国,悲伤就会悄然失去。马致远的歌以悲伤为基点,讽刺富贵荣华的不长久,将作品放在自然的风景下,用语言和自然衔接,其艺术力量是巨大的,其对人生的感悟是崇高的。当我们读马致远的作品,能读到对罪恶的抗议,能读到理想的炽热,能读到人间的温暖。悲歌将变成赞歌,像征了人类必然走向光明,走向欢乐。前景的美好和当世的污浊对立,而光明必然胜利,这就是诗人地艺术思索了。
如何访问被封杀的网站
用Tor,可以自动找到代理路径,无需多次配置。Tor具有跨平台,支持各种浏览器的优点。但缺点是访问速度不理想。
在MS Windows下安装配置Tor
在Linux下安装配置Tor
如果你用的是Ubuntu + Firefox(跟我一样),那就更简单了:
sudo apt-get install tor
sudo apt-get install privoxy
在/etc/privoxy/下找到config文件,
forward-socks4a / 127.0.0.1:9050 .
再下载一个Firefox的plugin,就可以随时开关tor了。
Torbutton
重启privoxy即可。
sudo /etc/init.d/privoxy restart
2007-04-01
失眠了
10点多钟就入睡了,睡得很香。突然被一小男孩的哭声吵醒。小男孩被他妈妈打,边挨打边说我知道错了。哭声中夹杂着叫声,可能被打得很痛。
回想起我小的时候,也常常挨打。通常都是罚跪,边跪边挨打。家长打累了(更多的是伤心了),我就接着跪。在老家的时候,妈妈的心情总不太好。我可能也常常不听话,或者根本听不懂家长的话,所以经常挨打。挨打的次数之多,使我现在记不起来到底是为了些什么事挨的打。其实当时也不知道,妈妈问我知错了吗?我想了想摇头说:不知道。后果就是接着挨打。长大后和妈妈谈起,她也不记得为什么要打我了。
让我印象最深的一次是妈妈教我系鞋带。由于鞋带较长,要系成蝴蝶形(横8字形)。我学不会。:( 妈妈想了一招,先系一根,然后再把剩下长的那根,这样就系好了。我学会了。:) 接下来,妈妈教我一气呵成,两根同时系,一下子就可以系出来。我就是学不会。:( 妈妈火了,:insane: 抓起我就打。但我越挨打,越是学不会。直到今天,我还是不会一气呵成的打鞋带打好,都要分两个步骤系。
总之,都是为了一些小事,被莫名其妙的打。可是,我也是有救星的。我们家的一个朋友,我称呼他为“贺爷”(老家的土话,妈妈的长辈)。他常常会来我们家玩。有几次我被妈妈打出门外,蹲在家楼梯口“反思”:irked: ,他看到了,就可以把我带回家。妈妈看到外人把我领回家,气也慢慢地消了。所以我很喜欢“贺爷”,因为他可以解救我。现在对他仍旧无比思念。
除了我妈妈以外,我爸爸也会打我。打的方式和妈妈不同,并且找不到什么预兆。妈妈打我之前,我可以通过她的脸色,或者什么不知名的磁场感应、判断出来。而当我爸爸出手时,那就和小李飞刀一样的快。我要说错什么话,忍得他心情不爽,他就把筷子,或者其它什么东西扔了过来:yikes: 。或者干脆就给我一耳刮子。快如风,使我通常都没什么闪躲的机会:eyes: 。
幸运的是,我爸妈不会同时打我!:irked:
长大后,妈妈不打我了。不知道是我听话了,还是她不好意思再打了。但妈妈会唠叨,这招往往比武力更具有教育性。她唠叨得多了,想想她讲得还是有一定的道理,为了耳根清净,就依的办法。:zip: 所以,外人都我说我很听妈妈的话。其实就是怕烦。
至今我对我爸还有点怕,虽然他也是很开明,具有幽默感,但我看到他严肃起来,就知道要小心了。他虽然不再打我了,但有时会把我叫到他跟前,严肃的指出我什么事情做得不对。:eek:
挨了这么多打,长大后的我丝毫没有怨恨他们。这点连我自己都觉得奇怪。而且,很早就明白可怜天下父母心的道理。理解和体量他们的苦衷。也许他们的教育有独到之外,我没有体会出来。
一眨眼,自己也从挨打毛孩愣青已变成为人夫,快为人父的男人了。和老婆常谈到将来小孩的教育问题,我当然认为“武力教育”必不可少。可今晚听到小男孩的痛哭,联想起自己的小时候,顿起一股恻隐之心。其实,天下哪对父母真心想打自己的骨肉?选择武力这个下下策,也是不得以。
望天下父母亲多理解小孩,让他们少挨些打。也望天下子女多包容父母,他们做的一切都是为了子女好。
2007-03-30
让Azureus跑上200K
快速设置指南
http://wiki.ubuntu.org.cn/%E5%BF%AB%E9%80%9F%E8%AE%BE%E7%BD%AE%E6%8C%87%E5%8D%97
安装Java环境
http://leyingcn.blog.hexun.com/5798509_d.html
安装Azureus很简单,在Terminal键下面的命令(或者通过Synaptic Package Manager安装)即可。
sudo apt-get install azureus
安装成功后为在Applications -> Internet里看到Azureus。
许多人反映Azureus的下载速度很慢(甚至为0),一个主要的原因是没有正确的配置Azureus。下面将讲到一些常用的配置:
1. 你电脑是不是直接连接互联网?(你是不是在内网?)
如果你的电脑不是直接连接到互联网上的(比如:通过一个ADSL路由器上网),那么你需要配置NAT。通俗的说,配置NAT的目的就是:让你的网络设备(可能是路由器/猫)开放用于Azureus下载的端口。
2. 如何配置NAT?
如果您符合上述条件,就需配置NAT。当然,你必须知道如何进入该网络设备(路由器或猫)。在网络设备的设置界面里寻找Port forwarding/NAT rules/Virtual Server或类似的字眼(不同厂商的网络设备的用语可能不一样)。设置相应的端口。该端口为Azureus用于Incoming TCP Listen port的端口;设置你电脑的内部IP地址,即用Azureus电脑的IP地址。
下面举一个例子:
我是通过ADSL路由器上互联网的,本机的IP地址为:192.168.101.104(见图1)。
路由器的牌子是NetGear(网件)RP614v2,进入路由器设置界面,选择Port Forwarding(见图2)。
添加一条Port Forwarding规则,点击Add Custom Service(见图 3)。
Service Name可以自己命名;
Staring Port和Ending Port可以定义对一段连接的端口进行Forwarding;
Server IP Address填您安装Azureus电脑的IP地址(本例为:192.168.100.104)。
设置好了以后,点Add按钮。回到上一级页面后,点Apply按钮。
如何查看Azureus所使用的端口?启动Azureus,从Tools -> Options -> Connection的Incoming TCP Listen Port即是(见图 4)。
你的网络设置支持(UPnP)吗?
如果支持UPnP,请把它也打开(见图 5)。
同时确定Azureus是否启动UPnP功能。启动Azureus,Tools -> Options -> Enable UPnP(见图6)。
3. 检验Azureus监听端口是否打开。
如果你配置了NAT,这时就要检验一下配置是否成功。启动Azureus,选择Tools -> NAT / Firewall Test,点击Test即可测试监听端口是否打开(见图 7)。
4. 什么端口最好?
Azureus的默认端口为3万多。Azureus推荐使用49152 - 65534。我用了这几个端口试验了一下,觉得5万多的端口比较快。如果你们知道得更多,可以帮我补充一下吗?谢谢。
5. 根据网络带宽来配置上传最大值(为什么要关心上传值?)
原因一:如果大家都只下载而不上传,很快这个文件会因为没有种子而下载不了。
有人说:那我象征性的上传一点点就行了。
原因二:举一个例子,当你和其它用户都在从同一个种子下载,如果你的上传速度够快,其它用户可以直接从你这里下载到他们没有的部分,那么种子可以空闲出一些带宽以提供给你更快的下载速度。这只是一个例子,总之,你上传的越多,你也得益最多。
原因三:如果上传速度过快,你的电脑会疲于读写磁盘而影响你的下载速度。
所以,我们要找出最佳的上传值。
根据ISP公布的上传带宽,可以参考下表设置上传最大值(见图8)。
[COLOR=red]注:有些上传参数要将Tools -> Options -> Mode设置成Intermediate或Advance才看得到。[/COLOR]
6. 最大下载值
本人按照上表(图8 , 512列)设置了max. simultaneous downloads和max. active torrents,速度反而变慢了。所以我把这两项值设为0(即不限制)。大家不防试试。
这是我家Azureus(图 9)。你得到了绿色的笑脸了吗?你状态栏右边的两个绿灯都亮了吗?
我也有几个不懂的问题:
为什么Azureus在屏幕右下角的提示无法Hide?
怎样加大缓存?好象会涉及到Java的什么东西?
希望得到解答。谢谢。
参考文章:
1. 非官司方新手入门指南 – 如何安装 P2P BT 客户端 (Azureus)?
http://wiki.ubuntu.org.cn/%E5%AE%89%E8%A3%85Azureus
2. How to find out if you have NAT problem and how to fix it
http://www.azureuswiki.com/index.php/NAT_problem
3. Why you need good settings for high download speed
http://www.azureuswiki.com/index.php/Good_settings
2007-02-25
软件开发项目可行性分析报告样例
1 引言
1.1 编写目的:阐明编写可行性研究报告的目的,提出读者对象。
1.2 项目背景:应包括
◆ 所建议开发软件的名称
◆ 项目的任务提出者、开发者、用户及实现软件的单位
◆ 项目与其他软件或其他系统的关系。
1.3 定义:列出文档中用到的专门术语的定义和缩写词的原文。
1.4 参考资料:列出有关资料的作者、标题、编号、发表日期、出版单位或资料来源,可包括
◆ 项目经核准的计划任务书、合同或上级机关的批文
◆ 与项目有关的已发表的资料
◆ 文档中所引用的资料,所采用的软件标准或规范
2 可行性研究的前提
2.1 要求:列出并说明建议开发软件的的基本要求,如
◆ 功能
◆ 性能
◆ 输入/输出
◆ 基本的数据流程和处理流程
◆ 安全与保密要求
◆ 与软件相关的其他系统
◆ 完成日期
2.2 目标:可包括
◆ 人力与设备费用的节省
◆ 处理速度的提高
◆ 控制精度或生产力的提高
◆ 管理信息服务的改进
◆ 决策系统的改进
◆ 人员工作效率的提高
2.3 条件、假定和限制:可包括
◆ 建议开发软件运行的最短寿命
◆ 进行显然方案选择比较的期限
◆ 经费来源和使用限制
◆ 法律和政策方面的限制
◆ 硬件、软件、运行环境和开发环境的条件和限制
◆ 可利用的信息和资源
◆ 建议开发软件投入使用的最迟时间
2.4 可行性研究方法
2.5 决定可行性的主要因素
3 对现有系统的分析
3.1 处理流程和数据流程
3.2 工作负荷
3.3 费用支出:如人力、设备、空间、支持性服务、材料等项开支
3.4 人员:列出所需人员的专业技术类别和数量
3.5 设备
3.6 局限性:说明现有系统存在的问题以及为什么需要开发新的系统
4 所建议技术可行性分析
4.1 对系统的简要描述
4.2 与现有系统比较的优越性
4.3 处理流程和数据流程
4.4 采用建议系统可能带来的影响
◆ 对设备的影响
◆ 对现有软件的影响
◆ 对用户的影响
◆ 对系统运行的影响
◆ 对开发环境的影响
◆ 对经费支出的影响
4.5 技术可行性评价:包括
◆ 在限制条件下,功能目的是否达到
◆ 利用现有技术,功能目的是否达到
◆ 对开发人员数量和质量的要求,并说明能否满足
◆ 在规定的期限内,开发能否完成
5 所建议系统经济可行性分析
5.1 支出
5.2 效益
5.3 收益/投资比
5.4 投资回收周期
5.5 敏感性分析:指一些关键性因素,如:
◆ 系统生存周期长短
◆ 系统工作负荷量
◆ 处理速度要求
◆ 设备和软件配置变化对支出和效益的影响等的分析
6 社会因素可行性分析
6.1 法律因素:如
◆ 合同责任
◆ 侵犯专利权
◆ 侵犯版权
6.2 用户使用可行性:如
◆ 用户单位的行政管理
◆ 工作制度
◆ 人员素质等能否满足要求
7 其他可供选择的方案
逐个阐明其它可供选择的方案,并重点说明未被推荐的理由。
8 结论意见
◆ 可着手组织开发
◆ 需等待若干条件具备后才能开发
◆ 需对开发目标进行某些修改
◆ 不能进行或不必进行
◆ 其它
希赛网软件工程
http://51cmm.csai.cn/SoftDocuments/200702131518241396.htm
面向对象软件设计说明书模板
1 概述
1.1 系统简述
对系统要完成什么,所面向的用户以及系统运行的环境的简短描述,这部分主要来源于需求说明书的开始部分。
1.2 软件设计目标
这部分论述整个系统的设计目标,明确地说明哪些功能是系统决定实现而哪些时不准备实现的。同时,对于非功能性的需求例如性能、可用性等,亦需提及。需求规格说明书对于这部分的内容来说是很重要的参考,看看其中明确了的功能性以及非功能性的需求。
这部分必须说清楚设计的全貌如何,务必使读者看后知道将实现的系统有什么特点和功能。在随后的文档部分,将解释设计是怎么来实现这些的。
1.3 参考资料
列出本文档中所引用的参考资料。(至少要引用需求规格说明书)
1.4 修订版本记录
列出本文档修改的历史纪录。必须指明修改的内容、日期以及修改人。
2 术语表
对本文档中所使用的各种术语进行说明。如果一些术语在需求规格说明书中已经说明过了,此处不用再重复,可以指引读者参考需求说明。
3 用例
此处要求系统用用例图表述(UML),对每个用例(正常处理的情况)要有中文叙述。
4 设计概述
4.1 简述
这部分要求突出整个设计所采用的方法(是面向对象设计还是结构化设计)、系统的体系结构(例如客户/服务器结构)以及使用到的相应技术和工具(例如OMT、Rose)
4.2 系统结构设计
这部分要求提供高层系统结构的描述,使用方框图来显示主要的组件及组件间的交互。最好是把逻辑结构同物理结构分离,对前者进行描述。别忘了说明图中用到的俗语和符号。
4.2.1 顶层系统结构
4.2.2 子系统1结构
4.2.3 子系统2结构
4.3 系统界面
各种提供给用户的界面以及外部系统在此处要予以说明。如果在需求规格说明书中已经对用户界面有了叙述,此处不用再重复,可以指引读者参考需求说明。如果系统提供了对其它系统的接口,比如说从其它软件系统导入/导出数据,必须在此说明。
4.4 约束和假定
描述系统设计中最主要的约束,这些是由客户强制要求并在需求说明书写明的。说明系统是如何来适应这些约束的。
另外如果本系统跟其它外部系统交互或者依赖其它外部系统提供一些功能辅助,那么系统可能还受到其它的约束。这种情况下,要求清楚地描述与本系统有交互的软件类型(比如某某某数据库软件,某某某EMail软件)以及这样导致的约束(比如只允许纯文本的Email)。
实现的语言和平台也会对系统有约束,同样在此予以说明。
对于因选择具体的设计实现而导致对系统的约束,简要地描述你的想法思路,经过怎么样的权衡,为什么要采取这样的设计等等。
5 对象模型
5.1 系统对象模型
提供整个系统的对象模型,如果模型过大,按照可行的标准把它划分成小块,例如可以把客户端和服务器端的对象模型分开成两个图表述。
对象图应该包含什么呢?
在其中应该包含所有的系统对象。这些对象都是从理解需求后得到的。要明确哪些应该、哪些不应该被放进图中。
所有对象之间的关联必须被确定并且必须指明联系的基数(一对一、一对多还是多对多,0..1,*,1..*)。聚合和继承关系必须清楚地确定下来。每个图必须附有简单的说明。
可能经过多次反复之后才能得到系统的正确的对象模型。
6 对象描述
在这个部分叙述每个对象的细节,它的属性、它的方法。在这之前必须从逻辑上对对象进行组织。你可能需要用结构图把对象按子系统划分好。
为每个对象做一个条目。在系统对象模型中简要的描述它的用途、约束(如只能有一个实例),列出它的属性和方法。如果对象是存储在持久的数据容器中,标明它是持久对象,否则说明它是个临时对象(transient object)。
对每个对象的每个属性详细说明:名字、类型,如果属性不是很直观或者有约束(例如,每个对象的该属性必须有一个唯一的值或者值域是有限正整数等)。
对每个对象的每个方法详细说明:方法名,返回类型,返回值,参数,用途以及使用的算法的简要说明(如果不是特别简单的话)。如果对变量或者返回值由什么假定的话,Pre-conditions和Post-conditions必须在此说明。列出它或者被它调用的方法需要访问或者修改的属性。最后,提供可以验证实现方法的测试案例。
6.1 子系统1中的对象
6.1.1 对象:对象1
用途: 约束: 持久性:
6.1.1.1 属性描述:
1. 属性:属性1 类型: 描述: 约束:
2. 属性:属性2
6.1.1.2 方法描述:
1. 方法:方法1 返回类型: 参数: 返回值: Pre-Condition:
Post-Condition: 读取/修改的属性: 调用的方法:
处理逻辑:
测试例:用什么参数调用该方法,期望的输出是什么……
7 动态模型
这部分的作用是描述系统如何响应各种事件。例如,可以建立系统的行为模型。一般使用顺序图和状态图。
确定不同的场景(Scenario)是第一步,不需要确定所有可能的场景,但是必须至少要覆盖典型的系统用例。不要自己去想当然地创造场景,通常的策略是描述那些客户可以感受得到的场景。
7.1 场景(Scenarios)
对每个场景做一则条目,包括以下内容: 场景名:给它一个可以望文生义的名字 场景描述:简要叙述场景是干什么的以及发生的动作的顺序。 顺序图:描述各种事件及事件发生的相对时间顺序。
7.1.1 场景:场景1 描述: 动作1 动作2
7.2 状态图
这部分的内容包括系统动态模型重要的部分的状态图。可能你想为每个对象画一个状态图,但事实上会导致太多不期望的细节信息,只需要确定系统中一些重要的对象并为之提供状态图即可。
7.2.1 状态图1:
8 非功能性需求
在这个部分,必须说明如何处理需求文档中指定的非功能性需求。尽可能客观地评估系统应付每一个非功能性的需求的能力程度。如果某些非功能性需求没有完全在设计的系统中实现,请务必在此说明。另外,你也需要对系统将来的进化作一个估计并描述本设计如何使系统能够适应这些可预见的变化。
9 辅助文档
提供能帮助理解设计的相应文档。
10 词汇索引
摘自 希赛网软件工程
2007-02-24
系统分析报告
在系统分析报告中,数据流图、数据字典和加工说明这3部分是主体,是系统分析报告中必不可少的组成部分。而其他各部分内容,则应根据所开发目标系统的规模、性质等具体情况酌情选用,不必生搬硬套。总之,系统分析报告必须简明扼要、抓住本质、反映出目标系统的全貌和开发人员的设想。
一份完整的系统分析报告应该包括下述内容:
1、组织情况概述。
- 对分析对象的基本情况作概括性的描述,包括组织的结构、组织的目标、组织的工作过程和性质、业务功能。
- 系统与外部实体(其他系统或机构)间有哪些物质以及信息的交换关系和联系。
- 参考资料和专门术语说明。
- 现行系统现状调查说明。通过现行系统的组织结构图、数据流图、概况表等,说明现行系统的目标、规模、主要功能、组织机构、业务流程、数据存储和数据流,以及存在的薄弱环节。
- 系统需求说明。用户要求以及现行系统主要存在的问题等。
- 新系统拟定的业务流程及业务处理工作方式。提出明确的功能目标、并与现行系统进行比较分析,重点要突出计算机处理的优越性。
- 新系统拟定的数据指标体系和分析优化后的数据流程,各个层次的数据流图、数据字典和加工说明,以有计算机系统将完成的工作部分。
- 出错处理要求。
- 其他特性要求。例如系统的输入输出格式、启动和退出等。
- 遗留问题。根据目前条件,暂时不能满足的一些用户要求或设想,并提出今后解决的措施和途径。
5、与新的系统相配套的管理制定和运行体制的建立。
6、系统设计与实施的初步计划。
- 工作任务的分解。根据资源及其他条件确定各子系统开发的先后次序,在此基础上分解工作任务,落实到具体组织或个人。
- 根据系统开发资源与时间进度估计,制定进度安排计划。
- 预算。对开发费用的进一步估计。
参考书籍:
1. 《系统分析师教程》P77
可行性分析报告
1、引言
引言一般包括以下内容:
- 摘要,包括现行系统的名称、目标和功能等;
- 背景,说明系统的用户、开发者,本系统与其他系统或机构的关系;
- 参考资料,包括下达本系统可行性研究的文件、合同或批文;
- 本报告引用的专业术语说明。
2、现行系统调查与分析
主要包含以下内容:
- 现行系统初步调查,包括组织机构层次,任务和范围;
- 主要业务流程及对信息的需求;
- 当前系统的工作量;
- 当前系统运行的各项费用开支、人员和设备;
- 已有计算机的配置、使用效率和存在的问题;
- 现行系统存在的主要问题和薄弱环节;
- 需求调查和分析,包括用户提出的和开发人员分析得出的需求。
3、新系统建设方案
主要包括:
- 新系统的目标和范围;
- 新系统规模以及初步方案(规模、组成和结构等)
- 系统及人员培训实施方案;
- 投资方案(投资金额、来源和时间安排等)
4、其他
可行性分析报告还应包括可行性论证,主要从技术可行性、经济可行性、社会可行性等方面进行论述;其他方案以及方案间的比较分析,以及结论。
参考书:
1. 《系统分析师教程》P51-P52
2007-02-23
关键成功因素法
例如:学校有一个目标是成为国际一流大学,那么,教学成果是影响一流大学的因素,而教学环境、课程水平、学生质量是影响教学成果的子因素。同样,学术水平也是关键成功因素,与之有关的科研力量、科研成果是影响学术水平的子因素。因此,要增多教学成果,就得教学环境、提高课程水平和学生质量。要提高学术水平,就得增强科研力量,鼓励更多的科研成果。
可见,抓住一个问题的主要因素是很重要的。关键成功因素法正是要求识别关键成功因素,突出重点,从重要需求引发规划。
这是一种多好的思维方式呀!
联想起昨天有个朋友问我:出国留学如何才能成功?年龄是决定出国留学是否成功的主要原因吗?我当时的回答是:应人而宜。为什么如此回答?因为我感觉她没有抓住问题的主要因素。
例如:怎么才能学好英语?要回答这个问题,应该先对英语好的学生做一个统计、分析。如果没有抓住关键因素,分析出来的结果可能很有趣。比如对全班英语最好的10个同学做统计分析,发现他们的都爱吃川菜,那是否可以推而广之,喜欢吃川菜同学英语就能学得好呢?如果统计分析出来他们脚大,可否证明脚板大的同学英语学得好?
如果没有抓住问题的主要因素,那就会得出错误的,甚至荒唐的判断。在计算机世界如此,在我们社会也是这样。
2007-02-22
从Pentium III到扣肉 SSE指令集发展历程回顾
为获得LeftSum和RightSum的结果,分别要执行6条指令。所以为确保获得连贯的CD音质,每秒钟要执行的指令总数为:44100次采样×2个声道×6条指令=529000条!电脑显示的道理与此相似,但情况会糟得多—想想在1024×768的分辨率和24位真彩色下,假定每秒显示30帧(虽然好但非特别出色的3D加速性能),仅仅为了访问每个像素,而不做任何实际工作,每秒便要执行70778880条指令,这显然是个沉重的负担。设想一下,假如有这样的一种处理器,虽然它只能执行单个指令序列,但能将那些指令同时应用于几个独立的数据流,速度显然就会快上许多。我们称之为“单指令多数据”(SIMD)处理器。而我们平常所说的SSE(Streaming SIMD Extensions)便属于此类单指令多数据。
一、 SSE指令集
其实,早在PIII正式推出之前,Intel公司就曾经通过各种渠道公布过所谓的KNI(Katmai New Instruction)指令集,这个指令集也就是SSE指令集的前身,并一度被很多传媒称之为MMX指令集的下一个版本,即MMX2指令集。究其背景,原来“KNI”指令集是Intel公司最早为其下一代芯片命名的指令集名称,而所谓的“MMX2”则完全是硬件评论家们和媒体凭感觉和印象对“KNI”的评价,Intel公司其实从未正式发布过关于MMX2的消息。而最终推出的SSE指令集也就是所谓胜出的“互联网SSE”指令集。
新数据类型排列
这里有一个问题,既然MMX没有定义新的寄存器,那么她又有什么寄存器可操作呢?事实上,MMX是和原来的浮点寄存器共享的.一个浮点寄存器是80位长的,她的低端64位被用做MMX的寄存器.这样,一个应用程序就不能在执行MMX指令的同时进行浮点操作了.同时,处理器还要花掉大量的时钟周期去维护寄存器状态从MMX操作和浮点操作之间的切换。SSE指令集就没有这些限制了。由于她定义了全新的寄存器,应用程序可以在进行整数SIMD操作(MMX)的同时进行浮点数的SIMD操作(SSE),同样,SSE还可以在执行浮点数的非SIMD操作的同时进行SIMD操作。
MMX和SSE的寄存器排列见下图:
MMX和SSE的寄存器
(a)是MMX和浮点数共享一个寄存器的情况(b)是SSE的独立寄存器排列
MMX和SSE寄存器有一个共同点,那就是都有8个寄存器.MMX的寄存器被命名为mm0—mm7,SSE的寄存器名字是xmm0—xmm7。?Pentium III的SSE指令集是为SIMD设计的,她可以同时操作4个单精度浮点值.因此,利用这些加强的浮点计算能力,对3D应用程序的细节表现是有实质性的提高的。事实上,SSE就是为3D应用创建的.游戏和其他的使用后端3D来显示2D和2.5D图象的程序,和使用矢量图形的应用程序一样都能分享到这种好处。
电脑表示的3D图形是用大量的表示图形顶点的浮点数组成的,通过操作这些顶点数据就可以改变3D图形的外观.通过使用SSE指令集,应用程序可以获得更多的帮助,处理器可以在一个时钟周期内处理更多的数据,大大加快了3D图形的顶点计算速度,可以给用户带来更深刻的3D体验。同样,应用程序开发者还可以用更多的顶点数据和更复杂的算法来创造出更为生动的3D图象效果来。使用SSE指令集可以显著的改善一些在3D操作中经常用到的计算,像矩阵乘法、矩阵变换以及矩阵之间的加、减、乘、向量矩阵相乘、矢量化、 矢量点相乘和光照计算等等。
比如玩Quake时,3D对象均由多边形构成,而这些多边形以一系列点的形式保存。每个点都有对应的3轴坐标。如限制成只用整数,便不能精确地表示这些位置(如每个坐标轴使用16位,那么只能得到65536个坐标点),造成图形显示非常糟糕。
自奔腾开始,Intel各型处理器的浮点运算能力便非常强大,游戏开发者几乎都情愿选用浮点运算。由于MMX不能对浮点进行操作(更糟的是,从MMX切换到浮点模式时,还会造成性能的瞬间剧降),所以MMX并不能将游戏提速至比设备驱动程序更高的一个水准,这正是MMX令许多人失望的原因。假如你用3D加速卡做图形渲染,游戏中完成的运算(模拟、3D变形、照明等)会耗去约90%的处理器时间。也就是说,MMX只为处理器留出了10%的时间来做其它工作,这还是在你使用了3D卡的前提下。
而SSE可以有效解决了这个问题,除保持原有的MMX指令外,又新增了70条指令,在加快浮点运算的同时,也改善了内存的使用效率,使内存速度显得更快一些。对于用户来说,这意味着3D物体更生动,表面更光滑,“虚拟现实”更“现实”。按Intel当时的说法,SSE对下述几个领域的影响特别明显:3D几何运算及动画处理;图形处理(如Photoshop);视频编辑/压缩/解压(如MPEG和DVD);语音识别以及声音压缩和合成。
SSE另一大优点是可以大大减小数据计算的指令操作数目.如果不使用SIMD和SSE,要进行一个400次的浮点数乘法计算,需要循环使用400次的乘法指令。而如果使用了SIMD和SSE,则只要进行100次的乘法指令就可以完成相同的任务了,因为这里每次的乘法操作都可以同时对4个浮点数进行计算。
SSE指令可以说是将Intel的MMX和AMD的3DNow!技朮相结合的产物,由于3DNow!使用的是浮点寄存方式,因而无法较好地同步进行正常的浮点运算。而SSE使用了分离的指令寄存器,从而可以全速运行,保证了与浮点运算的并行性。尤其是两者所使用的寄存器差异颇大─3DNow!是64位,而SSE是128位。同时为了充分发挥SSE的优势,Intel引进了新的“处理器分离模式”以提高浮点运算速度。
代表之作:PentiumIII
老PentiumIII
新封装的PentiumIII
SSE2有8个128-bit寄存器,但在这里不能存储 4个32-bit的浮点数据,而是 2个64-bit的浮点扩展精度数据。SSE2涉及了多重的数据目标上立刻执行一单个的指令(即SIMD)。最重要的是SSE2能处理128位和两倍精密浮点数学运算。处理更精确浮点数的能力使SSE2成为加速多媒体程序、3D处理工程以及工作站类型任务的基础配置,非常适于执行3D渲染、图形驱动、游戏和多媒体编码等应用。而当时Athlon系列处理器支持MMX(整数)和SSE、3DNow!(单精度浮点)等指令集,不过并不支持SSE2。
共有144个全新的指令可做任何事情,这也是当初SSE2推出所想达成之目标。长度为 128-bit压缩的数据,在SSE时,该仅能以4个单精确浮点值的形式来处理;但在SSE2下,该数据能选用下列几种数据表达来处理。
- 4个单精确浮点数(SSE)
- 2个双倍精确浮点数(SSE2)
- 16个字节数(SSE2)
- 8个字组(word)数(SSE2)
- 4个双倍字组数(SSE2)
- 2个四倍字组数(SSE2)
- 1个128位长的整数(SSE2)
由于SSE2可供选择的数据型态很多,而且无疑地相当有用。 因此,当时Intel 极希望软件开发者能用SSE2 的双倍精确浮点指令来取代旧有的 x86 浮点指令,如此一来 Intel所称 Pentium4是当时FPU 性能最强的处理器这项谣言,最后也就变成了事实。在相关测试中,SSE2对于处理器的性能的提升是十分明显的,虽然在同频率的情况下,Pentium 4和性能不如Athlon XP,但由于Athlon XP不支持SSE2,所以经过SSE2优化后的程序Pentium 4的运行速度要明显高于Athlon XP。而AMD方面也注意到了这一情况,在随后的K-8系列处理器中,都加入SSE2指令集。
代表之作:Pentium 4处理器
三、SSE3指令集
SSE3是英特尔在研发Prescott核心时所引入的指令集。它最先被称为PNI(是Prescott New Instructions的简称,Prescott新指令),但它最终改用了一个新的行销名称—SSE3。在指令的复杂程度方面,相对于此前的MMX、SSE、SSE2,SSE3似乎要简洁不少—此前MMX包含有57条命令,SSE包含有50条命令,SSE2包含有144条命令,SSE3包含有13条命令。SSE3指令集这13条命令共分为5个应用层:

第一层中的指令是“数据传输命令”,只有一条指令:FISTTP,它有利于x87浮点转换成整数,并可以大大提高优化的效率。
第二层中的指令是“数据处理命令”,一共有五条,分别是ADDSUBPS,ADDSUBPD,MOVSHDUP,MOVSLDUP,MOVDDUP。这些指令可以简化复杂数据的处理过程,由于未来数据处理流量将会越来越大,因此Intel在这里应用的指令集最多、达到了五条。
第三层中的指令是“特殊处理命令”,也只有一条:LDDQU。在这条指令主要针对视频解码,用来提高处理器对处理媒体数据结果的精确性。
第四层中的指令是“优化命令”,一共有四条指令,分别是HADDPS,HSUBPS,HADDPD,HSUBPD,它们可以对程序起到自动优化的作用。这些指令对处理3D图形相当有用。
第五层中的指令是“超线程性能增强”,一共有两条针对线程处理的指令:MONITOR, MWAIT,这有助于增加Intel超线程的处理能力、大大简化了超线程的数据处理过程。
从技术上来看,SSE3对于SEE2的改进非常有限,因此它为Prescott所带来的性能提升相当有限,它的优势仍体现在视频解码方面—Intel宣称如果在数据编码算法使用LDDQU指令,那么影象压缩速度可以提升10%左右。在当时来看,SSE3仍属于最先进的指令集,因此AMD、全美达后来也在它的处理器中加入对SSE3指令集的支持。
代表之作:基于Prescott核心的Pentium 4
四、SSE4指令集
SSE4指令集是Conroe架构所引入的新指令集。这项原本计划应用于NetBurst微架构Tejas核心处理器之上的全新技术也随着它的夭折最终没能实现,这不能不说是个遗憾,但是SSE4指令集出现在了Conroe上又让我们看到了希望。
SSE4指令集共包括16条指令,不过虽然扣肉处理器推出已经有一些时日,但目前英特尔仍没有公布SSE4指令集的具体资料。这相当令人感到纳闷。也许英特尔是基于特殊的考虑,仅让少数合作软件厂商取得数据,只是这种作法实在很没有说服力就是了,天底下没有哪家处理器厂商,希望自己新增的指令越少人用越好。
不过,从Intel Core微架构针对SSE指令所作出的修改被称之为“Intel Advanced Digital Media Boost”技术来看,未来SSE4将更注重针对视频方面的优化,我们认为SSE4主要改进之处可能将针对英特尔的Clear Video高清视频技术及UDI接口规范提供强有力的支持。这两项技术基于965芯片组,Intel的官方把Clear Video技术定义为:支持高级解码、拥有预处理和增强型3D处理能力。

值得一提的是,在SSE4中另一个重要的改进就是提供完整128位宽的SSE执行单元,一个频率周期内可执行一个128位SSE指令。Conroe中SSE的ADDPS(4D 32bit共128bit,单精度加法)、MULPS(4D 32bit共128bit,单精度乘法)和SSE2的ADDPD(2D 64bit共128bit,双精度加法)、MULPD(2D 64bit共128bit,双精度乘法),这四条重要SSE算术指令的吞吐周期都降低到1个周期,真正做到了英特尔宣称的每个周期执行一条128位向量加法指令和一条128位向量乘法指令的能力。
可以说 Conroe的向量单元已经全面引入了流水线化的设计。而支持SSE3的NetBurst微处理器架构虽然提供128位宽执行单元,但仅有一组,性能孰高孰低一目了然。更为重要的是,目前已经有相当多的软件针对SSE指令集进行了优化,其中包括2D制图、3D制图、视频播放、音频播放、文件压缩等方面,可见其应用范围相当广泛。

配合完整的128位SSE执行单元,以及庞大的执行单元数目,Conroe处理器可在一个频率周期内,同时执行128位乘法、128位加法、128位数据加载与128位数据回存,或着是4个32位单倍浮点精确度乘法与4个32位单倍浮点精确度加法运算,这将使其更利于多媒体应用。因此,SSE4指令集能够有效带来系统性能上的提升,这一代在众多测试中早已被证实。虽然其不会像当年SSE2指令集出现时那样带来巨大的性能提升,但是其在某些特殊方面的应用还是让我们对它充满了期待。
代表之作:Core 2 Duo处理器

信息系统开发的方法论
信息系统开发的发展过程经历过所谓“自底向上”方式和“自顶向下”方式,人们从整体上分析和总结了两种方法的优缺点:
自底向上方法的优点有:
- 使信息系统的开发易于适应组织机构的真正需要
- 有助于发现和理解每个系统的附加需要,并易于判断其费用
- 每一阶段所获得的经验和教训有助于下一阶段的开发
- 相对地说,每一阶段的规模较小,易于控制和管理
自底向上方法的缺点有:
- 由于方法的演变性质,信息系统难以实现其整体性
- 由于系统未进行全局规划,系统的数据一致性和完整性难以保证
- 为了达到系统的性能要求,往往不得不重新调整系统,甚至要重新设计系统
- 由于系统实施的分散性和演变性,因而与企业目标的联系往往是间接的,系统往往难以支持企业的整体战略目标
自顶向下方法的优点有:
- 可为企业或机构的重要决策和任务实现提供信息
- 支持企业信息系统的整体规划,并对系统的各子系统的协调和通信提供保证
- 方法的实践有利于提高企业人员的整体观察问题的能力,从而有利于寻找到改进企业组织的途径
自顶向下方法的缺点有:
- 对系统分析和设计人员的要求较高
- 开发周期长,系统复杂,一般属于一种高成本、大投资的工程
- 对于大系统而言,自上而下的规划对下层系统的实施往往缺乏约束力
- 从经验角度来看,很难说自顶向下的做法在经济上是合算的
对于信息系统,特别是其核心部分的软件系统的开发,专家和工程人员已经从不同的角度、用不同的方法对它们进行了模型化、从而将相关的方法从实践上升到理论。常见的模型有:
- 瀑布模型
- 螺旋模型
- 喷泉模型
参考书籍:
1. 《系统分析师教程》P12-17
建立信息系统所涉及的问题
计算机信息系统的建立是企业的一项重大的社会技术工程,James Martin将建立企业的信息系统称为信息工程。
1. 系统建设前企业应具备的条件
1.1 企业高层领导具有对企业信息系统建设规律性的认识。
1.2 企业必须认真分析建立计算机信息系统的实际需求。
1.3 管理的科学化是企业信息系统建立的基础和保证。
1.4 企业文化和管理人员的组织结构应能满足系统建设的需要。
1.5 规范和齐全的数据是建立企业计算机信息系统的必要条件。
1.6 企业有必要的开发期和维护期的资金保证。
2. 系统建设中企业应具备的条件
2.1 企业高层领导介入系统建设
2.2 吸收相关企业信息系统建设中的经验和教训
2.3 选择适合本企业实际情况的开发方式
2.4 建立系统开发组织机构和选择成员
2.5 系统开发策略的制定和开发方法、开发工具的选择
2.6 组织基础数据的收集和预处理,实施数据工程
2.7 设计并确定系统目标,进行投资估算
2.8 合理设计信息部门在企业机构中的位置
2.9 应用自动化的手段来开发系统
3. 系统建成后企业应保证的条件
3.1 认真做好系统的验收工作
3.2 着力优化系统的功能和性能
3.3 重视文档的整理和接收
3.4 重视系统维护队伍的建设
参考书籍:
1. 《系统分析师教程》P3-P11
信息系统与信息系统工程
信息系统一般泛指收集、存储、处理和传播各种信息的具有完整功能的集合体。人们常说的信息系统大多指支持各部门和机构管理和决策的信息系统。
计算机应用于企业是从最基础的数据处理开始的。经历了以下几个阶段:
- EDP(Electronic Data Process)电子数据处理
- TPS(Transaction Process System)业务处理系统
- MIS(Management Information System)管理信息系统
- DSS(Decision Support System)决策支持系统
信息系统工程是以系统的方法来实现信息系统建设的过程。
信息工程是在方法论指导下,在与方法论相配合的开发工具的支持下去实施系统开发的,它强调了自动化的信息系统必须用自动化的手段来实现,并在实现中有基于信息库的开发环境的支持。
参考书籍:
1、《系统分析师教程》 P1-P2
2007-02-21
系统分析师考试的三重境界
王国维在《人间词话》中说,古今之成大事业、大学问者,必经过三种之境界。“昨夜西风凋碧树,独上高楼,望尽天涯路”,此第一境也。“衣带渐宽终不悔,为伊消得人憔悴”,此第二境也。“众里寻他千百度,蓦然回首,那人却在灯火阑珊处”,此第三境也。我们可以借用这三重境界来说明系统分析师考试的学习和应考过程。
境界一:昨夜西风凋碧树,独上高楼,望尽天涯路
第一重境界是初步的学习。由于难度太大,参加系统分析师考试的人很少。我们在学习的过程中往往是“单打独斗”,缺少学习伙伴,缺乏交流和沟通的渠道,即只能“独上高楼”。“高楼”在系统分析师考试里可指6样东西,分别是《系统分析与设计技术》、《系统分析师技术指南》、《系统分析师常用工具》、《系统分析师考试培训视频教程》、《计算机数学与经济管理基础知识》、希赛网IT英语频道(http://ite.csai.cn/)的文章。从历次考试的实践来看,这些书籍的知识基本涵盖了系统分析师考试所需的所有知识点。
这个阶段的重点在于“望尽天涯路”,也就是要把系统分析师考试所需的知识高屋建瓴地“认识”一遍,没必要掌握太过精细的含义,也就是说看了有关问题能够反应出大概意思。在这样的策略下,此阶段不宜花太多时间。
特别值得一提的是,希赛网IT英语频道的文章不能不读,2006年5月的考试试题竟然全部是来自这里的原文!
境界二:衣带渐宽终不悔,为伊消得人憔悴
第二重境界“衣带渐宽终不悔,为伊消得人憔悴”形容系统分析师考试学习的第二个阶段再恰当不过。这个阶段有三个任务:
(1)通过学习《系统分析师考试辅导》、《系统分析师考试综合知识试题分类精解》、《系统分析师考试信息系统分析与设计案例试题分类精解》、《系统分析师考试论文试题分析与范文》,掌握考试题型的特点,以及对知识点的考法; (2)对有关知识点的精细理解、记忆。这点极其重要,因为系统分析师考试的特点是不但知识范围广,而且还具有一定的深度,是广度和深度的结合体。 (3)不断与遗忘做斗争。遗忘是最让人痛苦的了,特别是对一些“老大”,上述几本书要反复地读,“为伊消得人憔悴”真是一点不假。
这个阶段虽然痛苦,但也是提高比较快的一个阶段。这时,检查学习效果的一个捷径,就是去做希赛远程教育平台的公开测试,公开测试试题全部是历年考试的真题,上午试题,系统可以自动判卷,给出分数,并能根据知识点指出测试者的不足之处,便于测试者进一步学习和查漏补缺。下午试题,可以提交给希赛IT教育研发中心的老师进行批改。不过,这都需要支付希赛币。希赛币是希赛网所使用的虚拟货币,我们可以通过提交资料、参加活动、社区发帖、第一书店购书、参加希赛的辅导等形式挣得大量希赛币。
境界三:众里寻他千百度,蓦然回首,那人却在灯火阑珊处
第三重境界“众里寻他千百度,蓦然回首,那人却在灯火阑珊处”,这句话主要说的是顿悟。考试也要有个顿悟的过程,也就是熟能生巧。
其实,系统分析师考试的各个学习项目,选择、案例分析、论文等都有技巧的,特别是案例分析和论文写作试题,有很大的技巧。很多人具有很丰富的项目经验,能力也不错,可就是跌在论文上,究其原因,就是考试不得法,没有掌握考试的要领。
这些技巧提高的关键就是要熟练到能够生巧的地步。在这方面,可以通过学习《系统分析师之路》、《系统分析师考试疑难问题解答》、《系统分析师考试重点、难点及解题方法串讲》,也可以再次复习《系统分析师考试培训视频教程》中有关案例分析和论文写作的部分。这些资料中,既有专家的现场说法,传授机密,又有对曾经困惑过其他人的问题的解答,而这些问题,可能现在正困惑着你。
如果对于系统分析师证书志在必得的话,可以参加希赛软考学院的辅导。这样,就有机会跟张友生等专家“面对面”的交流,在关键问题上,或在困惑已久的问题上,只要专家一指点,就会顿悟,会少走很多弯路。
欢迎大家与我交流,我的联系方式,E-mail:495117684@qq.com
2007-01-10
用Beep Media Player播放APE格式音乐
本文介绍在Ubuntu下用Beep Media Player播放APE格式音乐。
1. 安装Beep Media Player播放器
sudo apt-get install beep-media-player2. 安装APE插件
下载APE插件: ape_plugs.tar.gz
安装APE插件:
tar zvxf ape_plugs.tar.gz完成!请见插图中的Plugins里有Monkey's Audio Codec Player。
cd lib/bmp/Input/
sudo cp * /usr/lib/bmp/Input/

3. 安装CUE插件
由于安装CUE插件需要编译,因此要安装build-essential。如果你已经安装,可跳过下面这个命令:
sudo apt-get install build-essential下载CUE插件: bmp-cueinfo-0.2.0.tar.gz
编译安装CUE插件:
tar xjvf bmp-cueinfo-0.2.0.tar.bz2完成!请见插图中的Plugins里的Cue Info 0.2.0。记得钩上前面的Enable。
cd bmp*
./configure
make
sudo make install

附上一张效果图。

参考文章:
1. 安装beep media player及wma、ape插件
http://forum.ubuntu.org.cn/viewtopic.php?t=18801&start=0&postdays=0&postorder=asc&highlight=ape
2. [插件]ape格式的的播放问题的解决
http://forum.ubuntu.org.cn/viewtopic.php?t=4984&start=0&postdays=0&postorder=asc&highlight=
在Ubuntu下使用Google Talk
本文讲述如何使用Gaim,通过Jabber协议,登录Google Talk。
How do I configure Gaim for Google Talk?
| Once you download Gaim, you'll need to configure your client to connect to the Google Talk service. If you're connecting with a Google Apps for Your Domain account, please read the specific instructions in the Google Apps Help Center. To configure your account:
![]() Have questions about Gaim? Learn from the experts! Check out Gaim's FAQs. The Google Talk Team can only assist you in configuring your client to work with the Talk service. |
原文出自:
How do I configure Gaim for Google Talk?
http://www.google.com/support/talk/bin/answer.py?answer=24073



