<?xml version="1.0" encoding="UTF-8"?><!-- generator="WordPress/8.0.0 Final" -->
<rss version="0.92">
<channel>
	<title>Slyar Home</title>
	<link>http://www.slyar.com/blog</link>
	<description>Slyar的个人博客</description>
	<lastBuildDate>Wed, 19 Nov 2008 15:29:27 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>悲哀的大学教育</title>
		<description>场景一：

"说个通知，下周我们有个XXX活动，希望大家踊跃报名！"班长喊道。

"......"众人沉默，该干啥干啥。

"参加活动的期末有加分！"班长补充道。

"我报我报！"、"我也报！"、"去哪报名？"......大家很踊跃。

场景二：

"下周我们有个辩论赛，有没有volunteer(志愿者)主动参加？"英语老师说道。

"......"计算机专业的人都比较含蓄。

"要参加的人把名字写到黑板上。"老师补充道。

"......"大家都无动于衷。

"参加的人平时成绩加5分！"重点出来了。

"冲呀！"、"别抢，那个是我的！"、"我先写！"......只能说刚才的沉默是暴风雨前的宁静......

哎，这就是大学，这就是大学的教育，这就是师范大学的教育。"分分分，学生的命根"，连培养老师的师范大学的学生都是如此，更何况这些将来的老师他们的学生呢？大学生的学习、活动必须靠"分"来维持，岂不悲哉！

哎，不说了，省的有的人说我粪青。韩愈说，业精于勤慌于嬉，行成于思毁于随。勤和思不是靠分来推动的，分是假的，本事才是真的......

PS.大一的孩子真可怜... </description>
		<link>http://www.slyar.com/blog/sorrowful-college-education.html</link>
			</item>
	<item>
		<title>使用memset函数初始化数组</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

初级介绍，大牛请飘过。。。

在初始化数组尤其是需要每次都初始化的时候，很多同学使用循环来进行，这样不但速度慢，而且写起来也很长。所以现在提供一个函数来实现这个功能。。。

原型：extern void *memset(void *buffer, int c, int count);

功能：把buffer所指内存区域的前count个字节设置成字符c。

包含头文件：&#60;string.h&#62;

注意这个函数是字符串函数，所以一定要包含字符串头文件。

使用方法：

int a[50];

memset(a,0,sizeof(a));

这样呢，就将数组a内所有的值都赋成0了，sizeof也是一个函数，得到数组a的字节大小。

另外需要注意的是，memset函数是逐字节进行填充，所以a一般为char *型。对于其它类型的a，可以填充的值有两个，0和-1。因为计算机中用二进制补码表示数字，0和二进制补码为全0，-1的二进制补码为全1。 </description>
		<link>http://www.slyar.com/blog/c-memset.html</link>
			</item>
	<item>
		<title>一不小心提前完成A题任务了</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

首先呢，今天是Jet同学的生日，按照国际惯例呢，先说生日快乐！

本来是打算寒假之前A到80题的，可是最近2个周末不知道自己怎么了，看见题就想做，然后不知不觉一个周末A掉20几道，2个周末加起来，到今天已经A到80题了。。。囧

截个图吧，最近博客少图~也不知道怎么了，最近Firefox在WP上面不能传图片，原因还没查明。。。



以后大规模A题的次数可能会减少，我需要时间好好学习一下高等数学和英语了。高数留了一堆作业，做啊做啊做啊。。。痛苦。。。

今天把GPRS又开启了，因为广东移动开了5元的GPRS，还是可以忍受的。

哦对了，传说晚上1点以后有流星雨，如果天气晴朗我就去看看，哈哈~ </description>
		<link>http://www.slyar.com/blog/ahead-online-judge.html</link>
			</item>
	<item>
		<title>C语言 读入字符时需要注意的一个问题</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

今天做题时候遇到的问题，先看一段代码：

#include &#60;stdio.h&#62;
int main(){
int n;
char a;
scanf("%d",&#38;n);
scanf("%c",&#38;a);
printf("%c\n",a);
return 0;
}

我们希望先读入一个整数n，然后再读入一个字符a，最后输出字符a。但是经过测试我们发现上面这段代码是无法实现我们的要求的，它只会输出一个空行，这是为什么呢？

我们一步一步分析，当我们输入数字n以后，会按一个回车确认输入。我们知道换行符也是字符(\n)，所以这个换行符也同样进入了等待读入字符的a，因此我们输出的a就是一个换行符。。。

那么怎么解决呢？很简单，只要我们使用getchar()函数忽略这个换行符就可以了，最后的代码如下：

#include &#60;stdio.h&#62;
int main(){
int n;
char a;
scanf("%d",&#38;n);
getchar();
scanf("%c",&#38;a);
printf("%c\n",a);
return 0;
}

今天做题的时候不止一次遇到这个问题，特地写出来。 </description>
		<link>http://www.slyar.com/blog/c-char-getchar.html</link>
			</item>
	<item>
		<title>感怀:又是一年NOIP之时</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

11月15日，又到了一年NOIP复赛之时。两年前的今天，我通宵未眠。。。

我不后悔因为参加NOIP而丢掉的东西，不管输赢，我曾经都是OIer中的一员，我为此而努力过，这就够了。
----尽吾志也，而不能至者，可以无悔矣，其孰能讥之乎？此余之所得也！
那段时间真的是值得我一生怀念的，因为之前我从来没有如此专注和认真地做一件事情，虽然结果是失败的。。。

2年后的今天，我已经坐在大学的寝室里以一个旁观者和过来人的心态看所有的OIer，看着他们为了自己的理想而奋斗，加油！

PS.刚才翻以前的东西，翻出了2张截图，是我当时编程时候的电脑。可以看到配置很低，只是奔腾233，而且硬盘只有3GB哈~为了装这个XP我可以费了不少功夫的，精简了N多东西，最后进程只有17个，是不是很爽~~虽然配置低，不过它的性能却很好，从开机启动到桌面也就1分钟而已，我认为很快了~当然了，这台电脑除了编程是啥也干不了的，嘎嘎~



 </description>
		<link>http://www.slyar.com/blog/2008-noip.html</link>
			</item>
	<item>
		<title>今天在淘宝上买了一个耳机</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

学校通知期末英语考试要用耳机，没有的赶紧买，而我就是那个没有的。。。

那种头戴式的大耳机我很不喜欢，所以我还是想买普通的那种小耳机，至于品牌没选的，森海塞尔。

中午吃完饭回到宿舍就开始在"淘宝"上淘宝，价格小于50，包邮费，一个大搜索就出来N多。对比了一下，最终我买了森海塞尔MX400RC耳机，看起来还不错，等货到了听听效果~

今天从箱子里拿出了冬天用的被子，凉席也该进仓库了，这种温度我很喜欢，因为身上几乎不出汗，可以少洗两件衣服。。。囧

本来说这个星期不A题的，可是看见别人在A题，我还是忍不住又做了几道。。。最后没办法把原来做过的题拿出来优化了重新提交。。。大囧

已经68题了，说好期末之前A到80就停手，我得留着点。。。 </description>
		<link>http://www.slyar.com/blog/taobao-earphones-sennheiser.html</link>
			</item>
	<item>
		<title>PHP爆绝对路径的另类方法</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

今天有人留言问我关于php爆绝对路径的事，这其实是个很古老的问题，网上也有很多解法。除了利用漏洞爆绝对路径外，我们最常见的方法就是利用php的最大执行时间来爆出绝对路径。

自己手工设置过php的人都知道，在php.ini里有一条语句"max_execution_time"，这个就是php的最大执行时间。如果某个php页面在这个时间内没有执行完毕，就会报错，而php报错的话一般都会将绝对路径爆出来。php之所以有这样的设置是为了减小服务器的负担，但同时也给了黑客可乘之机。

问我的人他知道这个原理，所以他使用了DOS方式，打算使目标网站的速度减慢，从而爆出路径。但在操作的过程中发现目标网站的防DOS系统做得很好，因此他不能成功获取绝对路径，那么怎么办呢？

解决方法其实也很简单，既然我们不能减慢目标网站的速度，那我们就想办法减慢自己的速度，这样达到的效果是一样的。那么怎么减慢我们自己的速度呢？也很简单，只要我们找一个速度极慢的代理，挂上以后再上目标网站，就有可能将绝对路径爆出来。 </description>
		<link>http://www.slyar.com/blog/php-route-slowly.html</link>
			</item>
	<item>
		<title>二道数学题阐释递归思想</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

有同学问什么是递归，我懒得说，拿两道数学题来阐释好了。。。

1、两个人从1开始，轮流报数，每个人都只能报接下来的一个数或两个数。比如第一个人可以报1，也可以报1、2；如果第一个人报1、2，第二个人就可以报3或者3、4；然后第一个人又报......这样报下去，最先报到30的人获胜，求必胜策略。

解答：最先报到30的人获胜，那么先报到27的人就一定可以获胜，同理先报到24的人就一定能获胜……递归下去。21，18，15……，最终得到的结论就是先报到3的人必胜。也就是说，后报者必胜。不管先报者报多少，后报者始终能报到3的倍数，必胜。

如果先报到30的人输，同理，先报到29的人就赢了，然后同样递归，26，23，20……

2、有10枚硬币，每人轮流取硬币，可以拿一枚、两枚或四枚，取到最后一枚硬币者胜。求必胜策略。

利用递归思想解答：

硬币总数是一枚，先取者赢；
硬币总数是两枚，先取者赢；
硬币总数是三枚，先取者输；
硬币总数是四枚，先取者赢；
硬币总数是五枚，先取者赢（自己取两枚，对方面临三枚的情形，必输）；
硬币总数是六枚，先取者输（不管取多少，对方面临的情形都是必胜的）；
硬币总数是七枚，先取者赢（自己取一枚，对方面临六枚的情形，必输）；
硬币总数是八枚，先取者赢（自己取两枚，对方面临六枚的情形，必输）；
硬币总数是九枚，先取者赢（不管取多少，对方面临的情形都是必胜的）；
硬币总数是十枚，先取者赢（自己取一枚，对方面临九枚的情形，必输）。 </description>
		<link>http://www.slyar.com/blog/recursion-math-questions.html</link>
			</item>
	<item>
		<title>忙碌的一天，早出晚归</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

今天是11月11日，传说中的光棍节，呵呵，笑笑而已~

从早晨出去上课到晚上快断网，我都一直在外面，宿舍也没回，当然也就没开电脑，没上网了。

上午的C语言实验课是用WinTC画图，没什么意思，我随便搞了几个循环加变色画圆就交了。。。

中午本来应该是网络部开例会的，但是今天突然通知主席要开紧急会议，所以一下课我们就马不停蹄地奔向远在粤华的校会办公室，等啊等啊等啊。。。主席来了。。。开啊开啊开啊。。。会议结束了。。。闪啊闪啊闪啊。。。上课迟到了。。。

呵呵，四个部门将近50个人开到1:40才散会，当然了，几乎所有的人中午都没吃饭，然后我又一路狂奔到丽泽楼上语文。。。今天语文考试，我晕。

语文上完继续狂奔到综合楼上英语，今天居然被叫起来回答问题，不过还好我会，哈哈。

上完英语就5:10了，去食堂5分钟消灭了一顿晚餐，鼓捣了一些事情就又向励耘楼冲去，听我在大学的第一次"形势与政策"课。。。

等到了励耘楼的800人大教室，我才知道大学的"占座"是何等的壮观，君不见一排座位上面那些各式各样的书：英语书、语文书、程序设计、法律、金融、会计。。。都在向我们传递一个信息"小样儿，你新来的吧，这有人了"。。。

跟同学在教室里漫无目标地寻找安身之所，终于让我们在放着二本"Windows CE 系统"的座位旁边找到了空位。。。

今天形势与政策讲的是奥巴马。。。猜见也是。。。当然了，几乎是没有什么人听的，大家不是在看书，就是在聊天，无所事事的就趴下睡觉，还不就是为了那个破章。。。

上完形势与政策还没完，跑去乐育上心理学。。。

上完心理学总该回宿舍了吧？不！吃宵夜去。。。

吃完宵夜再不回宿舍的就是神经病了。。。

不过今天貌似神经病还真不少，大晚上的在外面鬼哭狼嚎，吵得我连日志都写不下去。。。 </description>
		<link>http://www.slyar.com/blog/busy-day-1111.html</link>
			</item>
	<item>
		<title>MySQL之命令行导入大文件</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

随着数据库越来越大，转移起来也出现了问题。用phpmyadmin导入大数据库的时候，服务商会限制数据库的大小，有时候即使服务商没限制，导入的时候也超时......

今天就遇到了这个问题，不过还好可以使用shell......

mysql -uUsername -pPassword DatabaseName &#60;备份文件的路径\slyar.sql

使用上面这条命令就可以无视数据库大小限制导入数据库备份文件啦，当然有导入就有导出，只要把"&#60;"改成"&#62;"就可以导出了。

有时候由于数据库字符集的问题会出现ERROR at line : Unknown command '\''.这时只要在最后加上以下命令就可以解决了。

--default-character-set=utf8

即

mysql -u用户名-p密码 数据库名 &#60; SQL文件路径 --default-character-set=utf8 </description>
		<link>http://www.slyar.com/blog/mysql-import-largefile.html</link>
			</item>
	<item>
		<title>简单说下XP/Vista的粘滞键漏洞</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

大学里面有同学问，我直接写出来凑文章数好了。某几个人勿要鄙视我，看看你们写那么高深的东西有几个人去看......我这叫普及安全知识，懂不懂？

好了，回归正题，既然是粘滞键漏洞，首先我们要知道粘滞键是什么。
"粘滞键"是为同时按下两个或更多个键有困难的人设计的。当快捷方式要求使用诸如 CTRL 键 + S 键等的组合键时，“粘滞键”允许用户按下修改键(CTRL 键、ALT 键或 SHIFT 键)或 Windows 徽标键之后，它能保持这些键的活动状态直到按下其他键。
那么怎么调用出粘滞键呢？很简单，按五次shift键，之后就会出现粘滞键的应用程序了。

重点在这。既然按五次shift键会出现粘滞键程序，那么就一定有一个exe跟他关联，而这个exe是可以通过按五次shift键来运行的。如果我们把这个被激活的程序替换成cmd.exe，那么只要我们按五次shift键，就会得到一个cmdshell了。

del /q %systemroot%\system32\dllcache\sethc.exe
del /q %systemroot%\system32\sethc.exe
copy %systemroot%\system32\cmd.exe %systemroot%\system32\dllcache\sethc.exe
copy %systemroot%\system32\cmd.exe %systemroot%\system32\sethc.exe

恩，差不多就是这些命令，把sethc.exe替换成我们的cmd.exe，运行之后按五次shift看看，是不是出现了shell？

这个应用应该是很广泛的，比如我们在SQL里把粘滞键程序换掉，然后直接3389登陆上去，再之后按五次shift，最后加用户，登入......恩，就这样吧，简单介绍，其他应用自己琢磨去。

最后说一下如何禁用粘滞键功能。开始--设置--控制面板--辅助功能选项--(粘滞键)设置--把"使用快捷键"前面的勾去掉，完成。现在按五次shift就无法调出粘滞键程序了。 </description>
		<link>http://www.slyar.com/blog/stickykeys-leak.html</link>
			</item>
	<item>
		<title>C语言中 scanf()的返回值是成功读入参数的个数</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

忘了是谁前天问的了，本来是打算昨天写的，不过昨天有讲座写，于是乎就改今天写了。

他问我为什么 while(scanf("%d",&#38;a)!=0) 这样的语句不能中断程序。OK，我们知道while()的参数是一个值，而这个值是scanf()函数返回的，所以我们到MSDN里面看一下相关的说明：

Both scanf and wscanf return the number of fields successfully converted and assigned; the return value does not include fields that were read but not assigned. A return value of 0 indicates that no fields were assigned. The return value is EOF for an ...</description>
		<link>http://www.slyar.com/blog/scanf-return-value.html</link>
			</item>
	<item>
		<title>听了一个网络安全讲座</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

今天周五，没课。上午去听一个图形学的专业方向介绍，没什么感觉，因为我对图形图像一向不敏感......只是惊讶地发现班主任居然还认识我......

几天前就知道了今天晚上有一个网络安全讲座，提到了网络安全，咱不能不去听一听，可是听完以后我才觉得这讲座真的不是我该听的......倒不是说老师讲的不好，而是老师讲的真的是太基础了，而且也太古老了，基本上都是04-07年的技术。像什么windows弱口令、MSSQL的Sa空密码、啊D注入工具使用、radmin使用......现在基本上都不能用了。

而且不知道是不是老师觉得我们真的是"菜鸟"而忽略了，反正有二个地方我认为他说错了：

1、"Windows XP的administrator用户空密码会导致黑客入侵"。其实不是这样的，XP默认的设置是不允许administrator用户空密码远程连接的。

2、"Windows XP不能多人同时3389登陆"。默认设置是只允许单一用户登陆XP，但是黑客可以通过修改注册表使得XP SP2以上支持多用户终端登录，我博客里也有相应的文章介绍方法。

总体来说老师讲的还是不错的，只是希望以后的讲座可以讲一些高级的东西......

PS.据说组织者要求老师讲一些实战的东西，结果老师就开始一个一个讲工具的使用......殊不知网络安全最主要的不是工具，而是网络基础和网络入侵思想么......这样一个一个讲工具最后出来的还不都是一堆脚本小子...... </description>
		<link>http://www.slyar.com/blog/network-security-course-1.html</link>
			</item>
	<item>
		<title>天气开始转凉了</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

这两天男生们都不约而同地换上了长裤，因为天气开始转凉了。令人惊讶的是很多女生却依然是七分裤、裙子出门，至于原因我是懒得去想的。。。

天气转凉，外出是舒服了，可是学校却把中央空调关了，搞得教室里跟蒸笼似的。。。那种教室自带立柜空调的还好，没有的就比较惨了。当然了，没有立柜空调的教室毕竟是少数，嘎嘎。

天气转凉带来的消极影响就是洗过的衣服越来越难干了，这不我前天洗的衣服早晨从外面拿进来还没干，搞得我不得不用吹风机把衣服吹干。。。囧

最近活动和作业都比较多，搞得人怪紧张的。抓紧时间A学校OJ的题，争取寒假之前A到80题~~

PS.突然发现live现在的模板好难看。。。 </description>
		<link>http://www.slyar.com/blog/bnuep-getting-cold-2008.html</link>
			</item>
	<item>
		<title>C语言 多组数据for循环的一个小技巧</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

在OJ做题的时候，我们经常会看到题目说：输入有多组数据。输入的第一行输入一整数N，表示有多少组数据。

这时我们就会写出如下代码来实现这句话：

int i,n;
scanf("%d",&#38;n);
for (i=1;i&#60;=n;i++){
}

这样写没错，但是有一种更好的方法：

int n;
scanf("%d",&#38;n);
for (;n&#62;0;n--){
}

或者(felix提醒)

int n;
scanf("%d",&#38;n);
while(n--){
}

看到了么？使用这个小技巧，就可以让我们节省一个变量。所以，当我们的循环变量不参与循环体的操作时，我们就可以用这个方法来使得程序更加小巧。 </description>
		<link>http://www.slyar.com/blog/c-for-circles-technique.html</link>
			</item>
	<item>
		<title>李开复：算法的力量(转载)</title>
		<description>算法是计算机科学领域最重要的基石之一，但却受到了国内一些程序员的冷落。许多学生看到一些公司在招聘时要求的编程语言五花八门，就产生了一种误解，认为学计算机就是学各种编程语言，或者认为，学习最新的语言、技术、标准就是最好的铺路方法。其实，大家被这些公司误导了。编程语言虽然该学，但是学习计算机算法和理论更重要，因为计算机语言和开发平台日新月异，但万变不离其宗的是那些算法和理论，例如数据结构、算法、编译原理、计算机体系结构、关系型数据库原理等等。在“开复学生网”上，有位同学生动地把这些基础课程比拟为“内功”，把新的语言、技术、标准比拟为“外功”。整天赶时髦的人最后只懂得招式，没有功力，是不可能成为高手的。

算法与我

当我在1980年转入计算机科学系时，还没有多少人的专业方向是计算机科学。有许多其他系的人嘲笑我们说：“知道为什么只有你们系要加一个‘科学’，而没有‘物理科学系’或‘化学科学系’吗？因为人家是真的科学,不需要画蛇添足，而你们自己心虚，生怕不‘科学’，才这样欲盖弥彰。” 其实，这点他们彻底弄错了。真正学懂计算机的人（不只是“编程匠”）都对数学有相当的造诣，既能用科学家的严谨思维来求证，也能用工程师的务实手段来解决问题——而这种思维和手段的最佳演绎就是“算法”。

记得我读博时写的Othello对弈软件获得了世界冠军。当时，得第二名的人认为我是靠侥幸才打赢他，不服气地问我的程序平均每秒能搜索多少步棋，当他发现我的软件在搜索效率上比他快60多倍时，才彻底服输。为什么在同样的机器上，我可以多做60倍的工作呢？这是因为我用了一个最新的算法，能够把一个指数函数转换成四个近似的表，只要用常数时间就可得到近似的答案。在这个例子中，是否用对算法才是能否赢得世界冠军的关键。

还记得1988年贝尔实验室副总裁亲自来访问我的学校，目的就是为了想了解为什么他们的语音识别系统比我开发的慢几十倍，而且，在扩大至大词汇系统后，速度差异更有几百倍之多。他们虽然买了几台超级计算机，勉强让系统跑了起来，但这么贵的计算资源让他们的产品部门很反感，因为“昂贵” 的技术是没有应用前景的。在与他们探讨的过程中，我惊讶地发现一个O(n*m)的动态规划（dynamic programming）居然被他们做成了 O(n*n*m)。更惊讶的是，他们还为此发表了不少文章，甚至为自己的算法起了一个很特别的名字，并将算法提名到一个科学会议里，希望能得到大奖。当时，贝尔实验室的研究员当然绝顶聪明，但他们全都是学数学、物理或电机出身，从未学过计算机科学或算法，才犯了这么基本的错误。我想那些人以后再也不会嘲笑学计算机科学的人了吧!

网络时代的算法

有人也许会说：“今天计算机这么快，算法还重要吗?”其实永远不会有太快的计算机，因为我们总会想出新的应用。虽然在摩尔定律的作用下，计算机的计算能力每年都在飞快增长，价格也在不断下降。可我们不要忘记，需要处理的信息量更是呈指数级的增长。现在每人每天都会创造出大量数据（照片，视频，语音，文本等等）。日益先进的记录和存储手段使我们每个人的信息量都在爆炸式的增长。互联网的信息流量和日志容量也在飞快增长。在科学研究方面，随着研究手段的进步，数据量更是达到了前所未有的程度。无论是三维图形、海量数据处理、机器学习、语音识别，都需要极大的计算量。在网络时代，越来越多的挑战需要靠卓越的算法来解决。

再举另一个网络时代的例子。在互联网和手机搜索上，如果要找附近的咖啡店，那么搜索引擎该怎么处理这个请求呢?

最简单的办法就是把整个城市的咖啡馆都找出来,然后计算出它们的所在位置与你之间的距离,再进行排序,然后返回最近的结果。但该如何计算距离呢？图论里有不少算法可以解决这个问题。

这么做也许是最直观的，但绝对不是最迅速的。如果一个城市只有为数不多的咖啡馆,那这么做应该没什么问题,反正计算量不大。但如果一个城市里有很多咖啡馆,又有很多用户都需要类似的搜索,那么服务器所承受的压力就大多了。在这种情况下,我们该怎样优化算法呢?

首先，我们可以把整个城市的咖啡馆做一次“预处理”。比如，把一个城市分成若干个“格子(grid)”,然后根据用户所在的位置把他放到某一个格子里，只对格子里的咖啡馆进行距离排序。

问题又来了，如果格子大小一样，那么绝大多数结果都可能出现在市中心的一个格子里，而郊区的格子里只有极少的结果。在这种情况下，我们应该把市中心多分出几个格子。更进一步，格子应该是一个“树结构”，最顶层是一个大格——整个城市，然后逐层下降，格子越来越小，这样有利于用户进行精确搜索——如果在最底层的格子里搜索结果不多，用户可以逐级上升，放大搜索范围。

上述算法对咖啡馆的例子很实用，但是它具有通用性吗？答案是否定的。把咖啡馆抽象一下，它是一个“点”，如果要搜索一个“面”该怎么办呢？比如，用户想去一个水库玩，而一个水库有好几个入口，那么哪一个离用户最近呢？这个时候，上述“树结构”就要改成“r-tree”,因为树中间的每一个节点都是一个范围，一个有边界的范围。

通过这个小例子，我们看到，应用程序的要求千变万化，很多时候需要把一个复杂的问题分解成若干简单的小问题，然后再选用合适的算法和数据结构。

并行算法：Google的核心优势

上面的例子在Google里就要算是小case了！每天Google的网站要处理十亿个以上的搜索，GMail要储存几千万用户的2G邮箱，Google Earth要让数十万用户同时在整个地球上遨游，并将合适的图片经过互联网提交给每个用户。如果没有好的算法，这些应用都无法成为现实。

在这些的应用中，哪怕是最基本的问题都会给传统的计算带来很大的挑战。例如，每天都有十亿以上的用户访问Google的网站，使用 Google的服务，也产生很多很多的日志（Log）。因为Log每分每秒都在飞速增加，我们必须有聪明的办法来进行处理。我曾经在面试中问过关于如何对 log进行一些分析处理的问题，有很多面试者的回答虽然在逻辑上正确，但在实际应用中是几乎不可行的。按照他们的算法，即便用上几万台机器，我们的处理速度都跟不上数据产生的速度。

那么Google是如何解决这些问题的呢？

首先，在网络时代，就算有最好的算法，也要能在并行计算的环境下执行。在Google的数据中心，我们使用的是超大的并行计算机。但传统的并行算法运行时，效率会在增加机器数量后迅速降低，也就是说，十台机器如果有五倍的效果，增加到一千台时也许就只有几十倍的效果。这种事倍功半的代价是没有哪家公司可以负担得起的。而且，在许多并行算法中，只要一个结点犯错误，所有计算都会前功尽弃。

那么Google是如何开发出既有效率又能容错的并行计算的呢？

Google最资深的计算机科学家Jeff Dean认识到， Google 所需的绝大部分数据处理都可以归结为一个简单的并行算法：Map and Reduce。 这个算法能够在很多种计算中达到相当高的效率，而且是可扩展的（也就是说，一千台机器就算不能达到一千倍的效果，至少也可以达到几百倍的效果）。 Map and Reduce的另外一大特色是它可以利用大批廉价的机器组成功能强大的server farm。最后，它的容错性能异常出色，就算一个 server farm里面的机器down掉一半，整个farm依然能够运行。正是因为这个天才的认识,才有了Map and Reduce算法。借助该算法，Google几乎能无限地增加计算量，与日新月异的互联网应用一同成长。

算法并不局限于计算机和网络

举一个计算机领域外的例子：在高能物理研究方面，很多实验每秒钟都产生几个TB的数据量。但因为处理能力和存储能力的不足，科学家不得不把绝大部分未经处理的数据丢弃掉。可大家要知道，新元素的信息很有可能就藏在我们来不及处理的数据里面。同样的，在其他任何领域里，算法都可以改变人类的生活。例如人类基因的研究，就可能因为算法而发明新的医疗方式。在国家安全领域，有效的算法可能避免下一个911的发生。在气象方面，算法可以更好地预测未来天灾的发生，以拯救生命。

所以，如果你把计算机的发展放到应用和数据飞速增长的大环境下，你一定会发现，算法的重要性不是在日益减小，而是在日益加强。

给程序员的七个建议

（1）练内功。不要只花功夫学习各种流行的编程语言和工具，以及某些公司招聘广告上要求的科目。要把数据结构、算法、数据库、操作系统原理、计算机体系结构、计算机网络，离散数学等基础课程学好。大家不妨试试高德纳所著The Art of Computer Programming里的题目，如果你能够解决其中的大部分题目，就说明你在算法方面有一定的功力了。

（2）多实战。通过编程的实战积累经验、巩固知识。很多中国大学毕业生缺乏编程和调试经验；学习C语言，考试过关就算学会了；课题项目中，只要程序能够编译，运行，并且输入输出满足要求就算了事。这些做法是不行的。写程序的时候，大家必须多想想如何把程序写得更加精炼、高效、高质量。建议大家争取在大学四年中积累编写十万行代码的经验。我们必须明白的是：好程序员是写出来的，不是学出来的。

（3）求实干。不要轻视任何实际工作，比如一些看似简单的编码或测试。要不懈追求对细节一丝不苟的实干作风与敬业精神。我发现不少程序员对于知识的掌握很肤浅，不求甚解，没有好奇心，不会刨根问底。比如，学会了C++，是否了解一个对象在编译后，在汇编代码中是如何被初始化的？这个对象的各个成员在内存中是如何存放的？当一个成员函数被调用时，编译器在汇编代码中加入了哪些额外的动作？虚函数的调用是如何实现的? 这些东西恐怕在编程语言或编译原理中都没有详细提到，只有通过踏实的实干才能真正掌握。

（4）重视数学学习。数学是思维的体操，数学无处不在。学计算机至少要学习离散数学、概率论、布尔代数、集合论和数理逻辑。这些知识并不难，但是对你未来的工作帮助会很大。 尤其当你对一些“数学密集型”的领域如视频、图像处理等有兴趣时，这些知识将成为你手中的利器。

（5）培养团队精神，学会与人合作。今天的软件工程早已经不是一个人可以单独操作的，而必须靠团队合作才能成功。不懂得合作的人是不能成大器的。大家要多去寻找可以与人一起做项目的机会。

（6）激励创新意识，培养好奇心，不要死记硬背。没有掌握某种算法技术的根本原理，就不会有应变和创新的能力。想成为一位好程序员（其实从事任何一个行业都是如此），重要的是要养成钻研，好奇，创新，动手，合作的优秀习惯，不满足于填鸭，不满足于考试交差，不满足于表象。这不是学几门课能够一蹴而就的。

（7）有策略地“打工”。在不影响学业的前提下，寻找真正有意义的暑期工作或兼职。去找一个重视技术的公司，在一个好的“老板”指导下完成真正会被用户使用的程序。不要急于去一个要你做“头”而独挡一面的地方，因为向别人学习才是你的目的。找工作也是一样，不要只看待遇和职衔，要挑一个你能够学习的环境，一个愿意培养员工的企业，一个重视你的专业的公司。最后，还要挑一个好老板。

希望大家都能把握机会，养成好的学习习惯，把算法学精学透；希望大家都能有一个美好的未来！ </description>
		<link>http://www.slyar.com/blog/likaifu-algorithm-power.html</link>
			</item>
	<item>
		<title>期中了，考试了，我...饿了</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

不知不觉来到大学已经2个月了，在感慨时光飞逝，岁月如梭的时候，伴随而来的N多科目期中考试也让我心力交瘁、手忙脚乱，头痛不已。。。

虽然有点夸张，不过最近的考试还真是很多，先是语文，然后是数学，上星期C语言也留了一个大作业，今天思修又布置了了一个N千字的社会实践调查报告，刚刚去上民俗文化的选修课，老师再一次布置了一个N千字的论文。。。哦对了，明天英语考试。。。疯狂中。。。

这周和下周有的忙了，论文。。。我得找Google大神帮我了。。。

这几天没事就在刷学校OJ上面的水题，因为老师说做得多者期末有加分。。。为了那点分数，我还是不得不刷那些水得不能再水的水题。。。

明天考英语，Vocabulary和Translation，还好是给定范围的，只要背一背就行~

PS.腾讯啊，你赶紧把彩虹QQ外挂给封杀吧。。。 </description>
		<link>http://www.slyar.com/blog/bnu-first-midterm-exam.html</link>
			</item>
	<item>
		<title>大学第一次夜不归宿</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

话说我刚刚睡醒。。。

昨晚是第七届校园歌手大赛的总决赛，几乎所有的校会成员都出动了，场面和音响效果都不错，歌手能力就不评价了。。。

歌手大赛结束后，我们收拾了场地，然后惯例地跟随大部队出去玩通宵。以往校会大型活动后都有这样的小型活动，当然这也是我大学第一次玩通宵，夜不归宿~

两辆大车，近100人，拱北附近，唱K，喝酒。

和文艺部的唱K，我是沉默的。主要是文艺部的人都太HIGH了，我还是喝酒吧，不过怎么看那啤酒都不是好货。。。

我们一直玩到早晨5点才驱车返回，到学校就差不多7点了，回宿舍，睡觉。。。

好水的文章。 </description>
		<link>http://www.slyar.com/blog/bnu-play-all-night.html</link>
			</item>
	<item>
		<title>正负数十进制转二进制 位运算 C语言版</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

今天在论坛上看到一个负十进制数转二进制的问题，于是小研究了一下，顺便学习位运算。。。

我们知道负数的二进制是由其正数的二进制取反(求反码)再加一(求补码)得到的，例如：

十进制数528的二进制码为：0000001000010000

将其取反(求反码)后的结果：1111110111101111

将反码加一(求补码)后结果：1111110111110000

所以，-528的二进制码为1111110111110000

小说一下概念，然后看一个位运算符,按位与(&#38;) ：0&#38;0=0 , 0&#38;1=0 , 1&#38;0=0 , 1&#38;1=1

我们知道，奇数的二进制最后一位全部为1，而偶数的二进制最后一位全部为0，那么用按位与运算符我们可以很方便地知道一个数是奇数还是偶数，只要让数字 &#38;1 就可以了，因为 奇数&#38;1=1 ，而 偶数&#38;1=0

现在看一段代码，作用是将十进制数转换为二进制数。

#include &#60;stdio.h&#62;

int main()
{
int x,i;
scanf("%d",&#38;x);
for(i=31;i&#62;=0;i--) printf("%d",x&#62;&#62;i&#38;1);
system("pause");
}

重点就在 x&#62;&#62;i&#38;1 啦，每次按照能否被二整除来确定0或者1，然后一位一位的移动，这样处理负数也是可以的，很爽~详细解释太麻烦，自己思考吧，嘎嘎~ </description>
		<link>http://www.slyar.com/blog/decimal-to-binary-digit.html</link>
			</item>
	<item>
		<title>Slyar Home 十月博客总结(2008)</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

Slyar Home又长大了一个月，让我们看看Slyar Home十月份的表现吧。



1、博客文章。Slyar Home十月份发表文章31篇，主要记录C语言的一些技巧以及大学生活。

2、博客评论。2008年10月Slyar Home评论之星为：
第一名：Felix021 - www.19880711.com - 31条

第二名：zonghua - aspx1314.cn - 20条

第三名：午夜 - www.wuyeah.com - 12条

第四名：自然堂 - www.shichangzhi.cn - 12条

第五名：And You - 12条
3、博客流量。博客统计使用第三方的雅虎统计，十月详细统计信息如下，日IP量依旧在200上下波动。



4、收录状况

Google PR=4,Alexa排名466023，Sogou Rank=52。

收录总体没什么变化，Alexa排名上升了20万左右，博客处于稳定期。

 </description>
		<link>http://www.slyar.com/blog/08-10-slyar-summary.html</link>
			</item>
	<item>
		<title>你能看出几个旋转方向？</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。



据说是美国耶鲁大学研究出来的，什么顺时针用右脑，逆时针用左脑。

不过我倒觉得这就是个视错觉问题。我一开始看就是顺时针，然后怎么也看不出逆时针的。。。大约过了3分钟我才看出来逆时针旋转，之后就可以自由控制旋转方向了，眨一下眼，顺时针；再眨一下眼，逆时针。。。

不知道大家看出来几个旋转方向？

PS.此幅旋转图一共有34帧，每帧是0.03秒，小于人的视觉停留时间（0.05-0.2S）。一个周期是1.02秒，前12帧（0.36S）是顺时针旋转特 征明显，后22帧（0.66S）是逆时针旋转的特征明显。但是每一帧都可以理解为顺转或逆转。秘密就在这里，当你第一眼接触到的几帧图片是前12帧时，知 觉的识别性首先判定为顺转，又由于知觉的滞留性，顺转的感觉会一直持续影响知觉对后面一些帧的判定，因此整幅图片看起来都是顺转。反之，当你第一眼接触到的几帧图片是后22帧时，知觉的识别性首先判定为逆转，又由于知觉的滞留性，逆转的感觉会一直持续影响知觉对后面一些帧的判定，因此整幅图片看起来都是逆 转。调整自己的注意力，你还可以控制舞女旋转的方向。 </description>
		<link>http://www.slyar.com/blog/dancing-girl-around.html</link>
			</item>
	<item>
		<title>碾转相除法求最大公约数不用比较两数大小</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

辗转相除，又名欧几里德算法(Euclidean algorithm)，是求两个正整数之最大公因子的算法。它是已知最古老的算法, 其可追溯至前300年。它首次出现于欧几里德的《几何原本》中，而在中国则可以追溯至东汉出现的《九章算术》。

以前学碾转相除的时候也没怎么考虑，看到书上说要先比较两个数的大小再碾转相除我就习惯性地先比较大小了，可是今天发现碾转相除法是不用比较两个数的大小的。。。

设我们有两个数m、n

1、用m除以n，得余数r

2、使m=n ，n=r

3、若r=0，则m就是最大公约数；若r不等于0，返回第1步

我们可以看到，如果m&#62;n，那么没说的；如果m&#60;n，在第一次m除以n后，余数恰好为m，这样一交换，最后还会变成m&#62;n的情况。

C语言实现代码为：

#include &#60;stdio.h&#62;

int main()
{
int m, n, r = 1;
scanf("%d%d", &#38;m, &#38;n);
while (r != 0)
{
r = m % n;
m = n;
n = r;
}
printf("%d", m);
return 0;
}

还有一个利用条件运算符写的求最大公约数程序代码

#include&#60;stdio.h&#62;

int main()
{
int m, n;
scanf("%d%d", &#38;m, &#38;n);
while(m &#62; n ? (m = m % n) : (n = n % m));
printf("%d", m ...</description>
		<link>http://www.slyar.com/blog/c-euclidean-algorithm.html</link>
			</item>
	<item>
		<title>八皇后问题 回溯递归 C语言版</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。
八皇后问题是一个古老而著名的问题，是回溯算法的典型例题。该问题是十九世纪著名的数学家高斯1850年提出：在8X8格的国际象棋上摆放八个皇后，使其不能互相攻击，即任意两个皇后都不能处于同一行、同一列或同一斜线上，问有多少种摆法。
今天听陈星火老师(火爷)的讲座提到了八皇后问题，正好今天没写的，于是晚上上完课回来就写了一段回溯递归解决八皇后问题的代码，当然也可以解决N皇后问题。运行后得到解为92组。

/* Code by Slyar */
#include &#60;stdio.h&#62;
#include &#60;stdlib.h&#62;

#define max 8

int queen[max], sum=0;/* max为棋盘最大坐标 */

void show()/* 输出所有皇后的坐标 */
{
int i;
for(i = 0; i &#60; max; i++)
{
printf("(%d,%d) ", i, queen[i]);
}
printf("\n");
sum++;
}

int check(int n)/* 检查当前列能否放置皇后 */
{
int i;
for(i = 0; i &#60; n; i++)/* 检查横排和对角线上是否可以放置皇后 */
{
if(queen[i] == queen[n] &#124;&#124; abs(queen[i] - queen[n]) == ...</description>
		<link>http://www.slyar.com/blog/eight-queen-c-program.html</link>
			</item>
	<item>
		<title>突然发现宵夜是会越吃越饿的</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

今天课多，事情也多。刚才上完选修课陪同学去吃宵夜，既然是"陪"，我就没打算多吃，而且我本来也就不是很习惯吃宵夜，所以我就买了一笼蒸饺，结果这不吃没事，一吃可就不得了了......吃完那笼蒸饺我惊愕地发现我居然饿了......既然饿了，那就再吃吧，于是我就又买了一笼蒸饺，我心说这下吃完不会饿了，结果......我又吃了一碗炒河粉才解决问题......

结论：宵夜不能随便吃，因为宵夜是会越吃越饿的......

今天事情超级多，多到我都一天没时间开电脑。下午骑车去上课的时候来了一个急刹车，结果车是刹住了，不过车闸也英勇就义了......没辙，叫上Jet跟我去北理工那边换车闸，叫Jet是去是因为那车行老板是潮汕人，咱没法交流......

明天要上台讲高数，题咱还没做；下星期考英语，单词咱还没背；形式与政策的课，咱还没去听；饭卡快没钱了，咱还没去充值......

结论：所有的事情堆在一起是会忙死人的...... </description>
		<link>http://www.slyar.com/blog/night-snack-hungry.html</link>
			</item>
	<item>
		<title>大学啥都好,除了得自己洗衣服...囧</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

刚刚上完选修课回来，打开柜子的时候突然发现如果今天再不洗衣服明天就没穿的了。。。

哎，来了大学感觉其他的一切都好，但自己洗衣服真是一件最痛苦的事情，每次洗完衣服都是一身汗。最不能忍的是那个水池，修的那么低，而我个子高，洗衣服的时候身体几乎就成直角了。。。每次洗那么几分钟就得直起来休息一会。。。痛苦。。。

貌似我最近越来越懒了，干什么事情都要算最短路径和最优计划。。。我已经不想做任何多余的动作了，准确地说，是我懒得做一切无意义地动作。。。

PS.刚才妹子在QQ上说我不洗衣服懒，但是发日志很勤快。。。最后她得出的结论是电脑对于我就像菠菜对于大力水手。。。囧

I hate washing clothes...... </description>
		<link>http://www.slyar.com/blog/i-hate-washing-clothes.html</link>
			</item>
	<item>
		<title>Slyar的珠海一日行</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

呼，刚刚回到宿舍，有点累的感觉。早晨就和Jet坐车去市区了，要问我这个懒仙为什么会出门？~嘿嘿，当然是我带着某个神秘的任务啦~~

因为今天是星期天，所以市区里是万人空巷；又因为坐车花了很久的时间，所以上午在吉之岛转了转就到了吃午饭的时间；再因为不知道吃什么，所以我们选择了KFC。。。貌似我也有2个月没吃过“垃圾食品”了，令我惊讶的是KFC居然价格上涨了，难道就因为我2个月没吃他就......(打雷了)

吃过饭后我们又跑去了拱北。为什么是"又"呢，因为刚来珠海的时候我也到拱北玩过，不过那时时间比较紧张，所以没怎么玩。今天就好好地转了转拱北的地下商场，转过后才发现原来这个商场是有2层的，而且超级大，居然还有一个设备很好的电玩场和一个碰碰车场。。。汗，以前一直以为那里很小的......

在拱北地下商场，我真真切切地领教了一回“砍价”的威力：我走到一个摊位前，发现了一把我也有的多功能军刀，于是我就向摊主询问军刀的价格......

"老板，这个多少钱？"

"30"，摊主冷冷地回答。

"......"，我被雷了一下，然后转身，走了一步。

"20给你"，摊主急忙改口。

"......"，我又走了一步。

"15要不要，靓仔!"，摊主急切地说。

"我有一个一样的，2元"，我头也不回地丢下一句话，继续迈步......

结论：砍价的威力是无穷的，地摊太危险了，我们还是选择品牌店吧......

出了地下商场，我们继续漫无目标地瞎逛，途中我是见了世面了。看到一部近一米长、半米高的摩托车，起初我还以为是模型，结果被告知那是真的，我汗......在某宾馆门口看到一排珠海车和方向盘右置的黑牌澳门车：路虎、奔驰、宝马、奥迪、保时捷、本田、丰田......另外插一句，市区里的美女密度大大低于我们学校......

被雷的差不多的时候，我们跑去华润万家采购，然后坐车回学校，吃饭，走路回宿舍。。。

PS.还有几段行程过几天再说，现在保密，嘿嘿~ </description>
		<link>http://www.slyar.com/blog/slyar-zhuhai-one-day.html</link>
			</item>
	<item>
		<title>突然发现QQ等级明天就到2个太阳了,不好看了</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

今天登陆的时候突然发现这个QQ还差一天就到2个太阳了，不爽。本来1个太阳3个月亮3个星星多好看，非要整2个太阳出来。。。看看自己其他的QQ，郁闷，貌似都是2个太阳以上的，而且离那种2个太阳3个月亮3个星星的还有好久。。。

俺不挂Q的，费电。。。截个图留个纪念，这个等级多好看~~~下次再截图就得2个太阳3个月亮3个星星了。。。不晓得不挂Q的话大学毕业前能不能达到。。。



今天上午给一个朋友的本本重装了一套系统，感觉还算满意，貌似这是我第7次给别人装吧。这里多说一句废话，以后要是我答应给你重装系统，麻烦把驱动程序先准备好。。。囧

今天Vijos一直上不了，又挂了，所以也没去做题~以后先离线拷贝几道题，免得Vijos挂了的时候不能做题，嘿嘿~

哎~明天出门呀，见见世面。。。 </description>
		<link>http://www.slyar.com/blog/slyar-qq-update-2sun.html</link>
			</item>
	<item>
		<title>C语言运算符优先级 详细列表</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

恩，问这个问题的人太多了，懒得继续回答，直接贴上来自己看。。。




优先级


运算符


名称或含义


使用形式


结合方向


说明




1


[]


数组下标


数组名[常量表达式]


左到右





()


圆括号


（表达式）/函数名(形参表)





.


成员选择（对象）


对象.成员名





-&#62;


成员选择（指针）


对象指针-&#62;成员名





2


-


负号运算符


-表达式


右到左


单目运算符




(类型)


强制类型转换


(数据类型)表达式





++


自增运算符


++变量名/变量名++


单目运算符




--


自减运算符


--变量名/变量名--


单目运算符




*


取值运算符


*指针变量


单目运算符




&#38;


取地址运算符


&#38;变量名


单目运算符




!


逻辑非运算符


!表达式


单目运算符




~


按位取反运算符


~表达式


单目运算符




sizeof


长度运算符


sizeof(表达式)





3


/


除


表达式/表达式


左到右


双目运算符




*


乘


表达式*表达式


双目运算符




%


余数（取模）


整型表达式/整型表达式


双目运算符




4


+


加


表达式+表达式


左到右


双目运算符




-


减


表达式-表达式


双目运算符




5


&#60;&#60;


左移


变量&#60;&#60;表达式


左到右


双目运算符




&#62;&#62;


右移


变量&#62;&#62;表达式


双目运算符




6


&#62;


大于


表达式&#62;表达式


左到右


双目运算符




&#62;=


大于等于


表达式&#62;=表达式


双目运算符




&#60;


小于


表达式&#60;表达式


双目运算符




&#60;=


小于等于


表达式&#60;=表达式


双目运算符




7


==


等于


表达式==表达式


左到右


双目运算符




!=


不等于


表达式!= 表达式


双目运算符




8


&#38;


按位与


表达式&#38;表达式


左到右


双目运算符




9


^


按位异或


表达式^表达式


左到右


双目运算符




10


&#124;


按位或


表达式&#124;表达式


左到右


双目运算符




11


&#38;&#38;


逻辑与


表达式&#38;&#38;表达式


左到右


双目运算符




12


&#124;&#124;


逻辑或


表达式&#124;&#124;表达式


左到右


双目运算符




13


?:


条件运算符


表达式1? 表达式2: 表达式3


右到左


三目运算符




14


=


赋值运算符


变量=表达式


右到左





/=


除后赋值


变量/=表达式





*=


乘后赋值


变量*=表达式





%=


取模后赋值


变量%=表达式





+=


加后赋值


变量+=表达式





-=


减后赋值


变量-=表达式





&#60;&#60;=


左移后赋值


变量&#60;&#60;=表达式





&#62;&#62;=


右移后赋值


变量&#62;&#62;=表达式





&#38;=


按位与后赋值


变量&#38;=表达式





^=


按位异或后赋值


变量^=表达式





&#124;=


按位或后赋值


变量&#124;=表达式





15


,


逗号运算符


表达式,表达式,…


左到右


从左向右顺序运算



说明：

同一优先级的运算符，运算次序由结合方向所决定。

简单记就是：！ &#62; 算术运算符 &#62; 关系运算符 &#62; &#38;&#38; &#62; &#124;&#124; &#62; 赋值运算符 </description>
		<link>http://www.slyar.com/blog/c-operator-priority.html</link>
			</item>
	<item>
		<title>大学生活杂记:体育理论课,同学生日</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

今天又是星期四，上午有体育课，听力课结束我就跑到"龟壳"去了，在那里坐了五分钟，和朋友聊天，突然说起我是选修篮球的，然后不知道哪个人说了一句:"这节篮球不是理论课吗？"然后一阵沉默。。。后面发生的事情我不知道，因为他说完那句话我就拿上包跑掉了。。。

体育理论课是相当无聊的，反正我听了没有十分钟就已经昏昏欲睡了，直到最后看那段太极拳的视频我才稍微清醒一点。。。唯一令我高兴的就是体育老师早下了三分钟课。不要小看这三分钟，这短短的三分钟足以决定我中午是否吃饭。。。因为早下课，所以我一路狂奔到学一食堂，在窗口前面没有人的情况下买饭，然后找地方吃，吃完以后看着窗口前面围了四层的人群，我得意地笑。。。

下午的计算机基础课居然被老师叫起来回答问题，不过那种问题当然难不住我啦，哈哈~上课回来以后某人打电话叫我去练什么合唱，当然被我拒绝了，我才懒得去。。。最多最后说我不参与集体活动之类的，无所谓，俺不在乎。。。哦对了，貌似我们学校的校长又换了。。。

今天是登宇的生日，奔二了~首先祝他生日快乐。这不刚刚才从外面为他庆祝生日回来，吃火锅，大家都很开心~当然酒是少不了的，哈哈~

明天要交高数作业，先去写好了，貌似题比较多。。。 </description>
		<link>http://www.slyar.com/blog/bnu-birthday-hot-pot.html</link>
			</item>
	<item>
		<title>给我的小黑配上了强大的7-Zip</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

一直想给小黑配上7-Zip的，只是因为我太懒了，所以计划总是搁浅，不过今天终于完成了计划~

晚上往空间里传DZ，因为文件太多了，所以想到使用空间的解压缩功能，不过空间的解压缩只支持.tar.gz，而我的小黑里除了Winrar就没有任何压缩软件了，所以。。。大家都知道了。就这样，我给小黑配置上了强大的7-Zip。

7-Zip真的很强大，压缩比率高不说，速度还比Winrar快，很爽，而且还是免费软件。。。

今天下午从1：40一直上课到8：30，很爽，很爽。。。怎么感觉越来越忙了。。。

唔，又要断网了，不写了。。。 </description>
		<link>http://www.slyar.com/blog/slyar-7-zip.html</link>
			</item>
	<item>
		<title>为什么要放烟花？</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

刚刚上完选修课回来，洗澡的时候又听到外面在放烟花爆竹，不是我们这栋楼，但是因为声音很大，所以应该是附近的宿舍楼，很是奇怪。这几天晚上好像经常会有人放烟花，然后就会伴随着N多男人和女人的喊叫。。。

他(她)们为什么要放烟花呢？

这个问题早就想问了，而我脑子里的答案也无非就两种：求爱、发泄。。。不晓得是不是其他原因。。。

下午语文课进行了小考试，两道问答题，一道是关于《论语》的，另一道是关于老舍的《断魂枪》，写完了没啥感觉。。。哎，明天高数还要测验，怎么最近这么多考试。。。

抓紧时间上网，还有半个小时，断网了以后洗衣服。。。可怜的我。。。 </description>
		<link>http://www.slyar.com/blog/why-play-fire-works.html</link>
			</item>
	<item>
		<title>微软没黑屏,学校没停电</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

按微软先前的声明，从今天起，WGA微软正版认证就会通过自动更新程序发布，盗版用户一旦升级补丁，就将接收到微软最直接明显的提醒：每小时黑屏一次。后来查了一下，原来此"黑屏"非彼"黑屏"，只不过是桌面背景变黑而已。。。汗，被雷到了。。。

我的XP通过了正版验证，没法体验了，不过据我观察也没发现谁的桌面被"涂黑"。。。难道是因为有GFW的存在，微软被强大的GFW给河蟹了？有待考证。。。

本来通告说今天下午检查电路要停电的，可是除了中午断了1分钟电，导致全楼的台式机集体"黑屏"外，到现在一直都没有停电。。。本来我还说停电就停电吧，反正我有电池能上网还，可是中午那电一断，网也挂了。。。仔细想了一下明白了，每栋楼都有自己的交换机，断电的话。。。汗，还是不要断电的好~~

今天高数老师通知下次课要小测验，语文老师也要小测验。。。要抽点时间复习一下语文数学了，我已经忘掉考试的感觉。。。

很奇怪他们怎么会有那么多时间去搞什么运动会、方阵、合唱、联谊、体育训练，为什么我就觉得自己的时间那么不够呢？看来是QQ群加多了，恩，把系群退了，不跟他们玩。。。坚决不参加任何活动，等我把自己要学的东西搞定再说。。。 </description>
		<link>http://www.slyar.com/blog/slyar-bnuep-life-microsoft.html</link>
			</item>
	<item>
		<title>过W3C标准(XHTML1.0校验)需要注意的地方</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

很多朋友让我帮他们改代码，因为他们的代码总是过不了W3C标准，一次两次还好，但是对于SLYAR这种"懒仙"级别的人来说，太痛苦了。。。今天SLYAR就帮大家总结一下，以后先自查，还不行再找我。。。

1、所有元素和属性名要小写。

2、属性值必须用双引号括起。

3、属性必须有值。

4、标签"p"只能在 applet, blockquote, body, button, center, dd, del, div, fieldset, form, iframe, ins, li, map, noframes, noscript, object, td, th 中使用。

5、标签"li"只能在 dir, menu, ol, ul 中使用。

6、使用等式实体(去掉后面的空格)

&#38;转换为&#38; a m p ;

&#60;转换为&#38; l t ;

&#62;转换为&#38; g t ;

？转换为&#38; q u o t ;

7、闭合字符要使用 /&#62;

8、图片必须加上alt=""标签

9、script必须加type="text/javascript"

先写这么多，想起来再说。。。 </description>
		<link>http://www.slyar.com/blog/w3c-xhtml-attention.html</link>
			</item>
	<item>
		<title>堆排序(Heap Sort) 算法实现 C语言版</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

n个关键字序列Kl，K2，…，Kn称为堆(Heap)，当且仅当该序列满足如下性质(简称为堆性质)：

ki≤K2i且ki≤K2i+1 或  Ki≥K2i且ki≥K2i+1(1≤i≤ n)

若将此序列所存储的向量R[1..n]看做是一棵完全二叉树的存储结构，则堆实质上是满足如下性质的完全二叉树：树中任一非叶结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字。 (即如果按照线性存储该树，可得到一个不下降序列或不上升序列)

SLYAR整理了一下算法，用C语言实现，带注释。

void sift(int a[],int i,int n)/* i为根节点,n为节点总数 */
{
int child,tmp;
for (tmp=a[i];n&#62;2*i;i=child)
{
child=2*i;/* i的左孩子为2*i,右孩子为2*i+1 */
if (child!=n-1&#38;&#38;a[child+1]&#62;a[child])/* 让child指向孩子中较大的一个 */
{
child++;
}
if (tmp&#60;a[child])/* 如果孩子节点大 */ 
{
a[i]=a[child];/* 交换孩子节点和根节点 */ 
}
else break;
}
a[i]=tmp;/* 将根放在合适位置 */
}

void heapsort(int a[],int n)/* 对a[1...n]进行排序 */
{
int i,tmp;
for (i=n/2;i&#62;=0;i--)/* 建立初始堆 */
{
sift(a,i,n);
}
for (i=n-1;i&#62;0;i--)/* 进行n-1趟排序 */
{
tmp=a[0];/* 交换堆顶元素和最后一个元素 */
a[0]=a[i];
a[i]=tmp;
sift(a,0,i);/* 将a[1..n-1]重建为堆 */
}
} </description>
		<link>http://www.slyar.com/blog/slyar-heap-sort-c.html</link>
			</item>
	<item>
		<title>熟能生巧:有感于大学第一次剪头发</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

周五，没课。一直在想博客今天发什么，但却没有素材。于是乎，聪明的SLYAR决定自己创造素材。。。

吃过晚饭，我和Jet跑到海2楼下剪头发，这是我上大学以来第一次剪头发，当然要评估一下这间理发店。理发店还算大，灯光效果也不错，卫生状况良好，咦？有奶粉！恩，还好，不是三号长颈鹿。。。

洗头的时间好长啊，洗来洗去。。。(后来才知道，原来洗发吹头是要10块钱的)

(镜头转移)理发师的手随着剪刀。。。呃不对，是剪刀随着理发师的手上下飞舞，那动作快的，刷刷刷刷刷刷。。。眼花缭乱。此情此景，我不禁感慨，技艺真的是熟能生巧啊。。。想家里那边的理发店，一个星期来剪头发的估计也没有这里一天剪头发的多，这里的理发师日复一日地做着"上下飞舞"的动作，技艺岂不高哉？

当然了，技艺高不高我不知道，起码速度达到我的要求了，算账的时候发现要价20，一经询问才知道"单剪"10块，"洗吹"10块。。。我靠，不洗能剪么？哎，真是熟能生奸啊。。。

剪头发的事情先告一段落，我剪得很短，这样可以在很长一段时间不用管头发了。。。

再说说学校的Online Judge，超级不爽，哪有每个题目都这么写Input的：

1、有多组，每组一行，输入n,m( 0&#60;10, 0&#60;10) 输入0 0表示结束。

2、有多组输入，每组输入用空行分隔开，输入以EOF结束。

几乎所有的OJ都是给10个单独的数据，哪有这么偷懒只给1个输入文件里面一堆数据的。。。对这个OJ失去兴趣。。。 </description>
		<link>http://www.slyar.com/blog/college-first-haircut.html</link>
			</item>
	<item>
		<title>计算程序运行时间 C语言 clock()函数版</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

自己没事可以看看程序的运行时间，第一个想到的还是以前会的clock() ，先把代码扔这。

#include &#60;stdio.h&#62;
#include &#60;stdlib.h&#62;
#include &#60;time.h&#62;

int main()
{
clock_t begin, end;
double  cost;
begin = clock();
/* 程序代码 */
end = clock();
cost = (double)(end - begin) / CLOCKS_PER_SEC;
printf("%lf seconds\n", cost);
system("pause");
return 0;
}

这个函数返回开启进程和调用clock()之间的的CPU时钟计时单元(clock tick)数，在MSDN中称之为挂钟时间(wal-clock)，每过千分之一秒(1毫秒)，调用clock()函数返回的值就加1。

但是是我感觉这段程序有两个问题，很不爽。第一是精度，只能精确到1ms，低于1ms的程序全部输出0ms，因为WinNT的时间精度最小是1ms；第二是准确度，printf()的速度太快了，基本上和clock()的速度一样，所以误差很大很大。。。

不晓得在Win下怎么才能提高计算精度。。。 </description>
		<link>http://www.slyar.com/blog/program-runtime-stat.html</link>
			</item>
	<item>
		<title>大学的时间过得真快！</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

刚刚上完高等数学，走出丽泽楼的时候，猛然发现现在已经是星期三的下午，一个星期已经过半了。。。度过明天一天满满的课程，就又要放假三天，一个星期就这么过去了。。。好快。。。

真的没什么感觉，一个星期三分之二的课程就结束了，想想再过几个星期就要期中考试，我不禁感慨大学的时间过得真是快啊。高考完那两个月过得跟2年似的，而现在连人还没认识几个就已经过完一个多月了。。。哎，无怪乎人说大学时光很宝贵，过得这么快怎么能不宝贵呢？

该死的微软，又要打补丁，该死的网速，补丁下了2个多小时还没完。。。

中午收到卓越配送人员的短信，说书到了，于是乎我就跑去校名石拿到了我买的书，然后很随意地在学一食堂悠闲地吃完饭，走的时候戏谑地看着从励耘楼疯狂涌入学一食堂的boys and girls，我得意地笑~

卓越送书送的真是时候啊，昨天有课，明天有课，我还就今天没课，而明天那C语言正愁没事做呢，现在有书看了，哈哈，爽~

晚上还有食品营养学的选修课，我在考虑要不要走路去，恩，就这么定了，走路去好了~ </description>
		<link>http://www.slyar.com/blog/college-times-fast.html</link>
			</item>
	<item>
		<title>输入缓冲区与C语言的流问题</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

今天发现一个问题，已经造成了溢出，需要用到传说中的fflush(stdin);来解决。先看下面的代码：

#include &#60;stdio.h&#62;

int main()
{
char s[10],s1[10],s2[10],s3[10];
scanf("%s",&#38;s);
printf("%s\n",s);
scanf("%s%s%s",&#38;s1,&#38;s2,&#38;s3);
printf("%s %s %s\n",s1,s2,s3);
system("pause");
return 0;
}

程序想达到这样一个目的：两次都输入Slyar is good!，第一次输出Slyar，第二次输出Slyar is good!。但是结果却不是我们期望看到的，而是：

Slyar is good!
Slyar
Slyar is good!
is good! Slyar

其中蓝色是我输入的部分，而红色是程序输出的结果，可以看到第二次程序没有输出Slyar is good!而是输出了is good! Slyar，我们来分析一下。

当我们输入Slyar is good!后，系统会把第一个空白当成结束，也就是输出Slyar，这没错。然后紧接着我们再次输入Slyar is good!，按照一般思维，应该是Slyar给了S1,is给了S2，good!给了S3，但是。。。

你看到的is good! Slyar中的is good!其实是第一次输入Slyar is good!后余留在缓冲区里的那部分！也就是说，当第一次系统截断Slyar以后，剩下的部分就留在了缓冲区，当你第二次输入后，系统就把缓冲区里的is good!分配给了S1和S2。这样，只有第三次输入的Slyar被分配给了S3，所以当我们打印S1、S2、S3时，会出现is good! Slyar

那么怎么解决这个问题呢？这就要用到fflush(stdin);了：stdin是默认的输入流文件，对应输入缓冲，而fflush(stdin);就可以清空整个输入缓冲区，本例中即把缓冲区内的is good!刷掉。所以，我们的代码应该这样写：

#include &#60;stdio.h&#62;

int main()
{
char s[10],s1[10],s2[10],s3[10];
scanf("%s",&#38;s);
printf("%s\n",s);
fflush(stdin);
scanf("%s%s%s",&#38;s1,&#38;s2,&#38;s3);
printf("%s %s %s\n",s1,s2,s3);
system("pause");
return 0;
}

编译运行，没问题！这点需要注意，否则极易造成溢出。 </description>
		<link>http://www.slyar.com/blog/c-fflush-stdin.html</link>
			</item>
	<item>
		<title>字符串大小写互转 XOR版 C语言实现</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

下午看异或运算符(XOR)时想到的这个东西，先说下作用：

当你输入"SLYar"的时候，程序会将其中的大写字母转换为小写字母，将其中的小写字母转换为大写字母，所以程序会输出"slyAR"。

#include &#60;stdio.h&#62;
#include &#60;string.h&#62;
#include &#60;ctype.h&#62;

int main()
{
int i, len;
char str[100];
gets(str);
len=strlen(str);
for (i = 0; i &#60; len; i++)
if (isalpha(str[i]))
{
str[i] ^= 32;
}
puts(str);
system("pause");
return 0;
}

其中用到了一个函数isalpha()，作用是判断参数是否为英文字母。当参数为英文字母a-z或A-Z时，返回非零值，否则返回零。这个函数用到的头文件是ctype.h。

下面解释核心部分 " str[i] ^= 32; "

我们知道同一个英文字母大小写的ASCII码相差32。假设我们现在有二个字母"S"和"s"，大写"S"的ASCII码为83，小写"s"的ASCII码为115，我们将32、83、115的二进制码列出来。

83   1010011
32   0100000(最低位为第一位，只有第六位是1，其他位都是0)
115 1110011

我们来回顾一下异或运算符(XOR)的特点：

与0异或时，它的值不变。
与1异或时，它的值相反。

因此，对比上面的竖式，我们可以很清楚地看到，只要将英文字母ASCII码的第6位与1异或，其他位与0异或，即可实现英文字母的大小写互换。也就是让英文字母的ASCII码与32异或即可。 </description>
		<link>http://www.slyar.com/blog/string-capitalization-lowercase.html</link>
			</item>
	<item>
		<title>修改我的C/C++程序代码风格(SLYAR)</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

声明：我决定不更改自己的代码风格。(2008年10月15日)

今天看了《华为编程规范和范例》，决定修改我的代码风格，以使我的代码和国际接轨。。。

其实我蛮喜欢我自己原来的风格的，因为可以少打很多东西，新的风格需要很多空格，需要很多回车，需要很多括号。。。我是懒人，我本不想改。。。但是没办法，现在不改以后就不好改了，我知道我的代码不是只给我自己看，所以，我还是规范一些，修改我自己的风格吧。。。

《华为编程规范和范例》在Slyar的下载基地里有，hwprogram.doc，需要的可以自己下载。

列举一下我需要修改的风格：

1、相对独立的程序块之间、变量说明之后必须加空行。

以前变量之间我是加空行的，不过像if语句段这样的程序块，我是不加空行的，需要修改。

2、if、for、do、while、case、switch、default等语句自占一行，且if、for、do、while等语句的执行语句部分无论多少都要加括号{}

以前像if、for、do、while等语句的执行语句如果只有一行我就会省略{}，需要修改。

3、程序块的分界符(如C/C++语言的大括号‘{’和‘}’)应各独占一行并且位于同一列，同时与引用它们的语句左对齐。在函数体的开始、类的定义、结构的定义、枚举的定义以及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。

以前我习惯把"{"写在if、for等语句后面，需要修改。

4、在两个以上的关键字、变量、常量进行对等操作时，它们之间的操作符之前、之后或者前后要加空格；进行非对等操作时，如果是关系密切的立即操作符(如-&#62;)，后不应加空格。

(1) 逗号、分号只在后面加空格。
(2)比较操作符, 赋值操作符"="、 "+="，算术操作符"+"、"%"，逻辑操作符"&#38;&#38;"、"&#38;"，位域操作符"&#60;&#60;"、"^"等双目操作符的前后加空格。
(3)"!"、"~"、"++"、"--"、"&#38;"（地址运算符）等单目操作符前后不加空格。
(4)"-&#62;"、"."前后不加空格。
(5) if、for、while、switch等与后面的括号间应加空格，使if等关键字更为突出、明显。

5、注释应与其描述的代码相近，对代码的注释应放在其上方或右方(对单条语句的注释)相邻位置，不可放在下面，如放于上方则需与其上面的代码用空行隔开。

以前放上面注释了不加空行，需要修改。

6、注意运算符的优先级，并用括号明确表达式的操作顺序，避免使用默认优先级。

以前如果是默认优先级，就不加括号了，懒。。。需要修改。

7、尽量用乘法或其它方法代替除法，特别是浮点运算中的除法。

8、不要一味追求紧凑的代码，因为紧凑的代码并不代表高效的机器码。

9、过程/函数中申请的（为打开文件而使用的）文件句柄，在过程/函数退出之前要关闭。

分配的内存不释放以及文件句柄不关闭，是较常见的错误，而且稍不注意就有可能发生。这类错误往往会引起很严重后果，且难以定位。

10、时刻注意表达式是否会上溢、下溢。 </description>
		<link>http://www.slyar.com/blog/new-code-style.html</link>
			</item>
	<item>
		<title>快速排序(QuickSort)算法 C语言实现</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

下午做题的时候用到了快速排序(QuickSort)，只不过这次换成C语言实现。草草写了一个，感觉很乱，改。。。改完还乱。。。继续改。。。最后结果就是如下这个快速排序(QuickSort)算法的C语言实现。

void qsort(int s[], int l, int r)
{
int i, j, x;
if (l &#60; r)
{
i = l;
j = r;
x = s[i];
while (i &#60; j)
{
while(i &#60; j &#38;&#38; s[j] &#62; x) j--;/* 从右向左找第一个小于x的数 */
 if(i &#60; j) s[i++] = s[j];
while(i &#60; j &#38;&#38; s[i] &#60; x) i++;/* 从左向右找第一个大于x的数 */
 ...</description>
		<link>http://www.slyar.com/blog/c-quicksort.html</link>
			</item>
	<item>
		<title>搜索引擎转向代码,让新站IP数暴涨</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

假设你有网站A，以下代码可以使从域名访问网站A正常，而从百度、Google、雅虎搜索进入网站A的来源全部转向到http://www.slyar.com，使得后者的IP大大提升。

有兴趣的人可以自己试试。

&#60;script&#62;
var slyar=document.referrer
if(slyar.indexOf("baidu")&#62;0)
self.location="http://www.slyar.com";
else if(slyar.indexOf("yahoo")&#62;0)
self.location="http://www.slyar.com";
else if(slyar.indexOf("google")&#62;0)
self.location="http://www.slyar.com";
&#60;/script&#62; </description>
		<link>http://www.slyar.com/blog/search-engine-direction.html</link>
			</item>
	<item>
		<title>提高远程连接MySQL的速度</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

今天在远程连接朋友的MySQL服务器时，发现速度爆慢，感觉不太对劲。Google查了一下，发现是MySQL默认开启了DNS反向解析，导致连接的时候损失时间，而DNS反向解析只是在我们用域名去访问MySQL数据库时才起作用，一般我们都是使用IP地址去访问MySQL数据库的，因此我们可以通过关闭DNS反向解析来提高远程连接MySQL数据库的速度。

You can disable DNS host lookup by starting mysqld with --skip-name-resolve. In this case you can however only use IP names in the MySQL privilege tables.

我们需要修改的是MySQL\bin目录下的my.cnf，有的人是my.ini，都一样的，找到后打开。

在文件末尾加入以下内容：

[mysqld]
skip-name-resolve

这样就可以禁用DNS反向解析，只不过这样就只能使用IP访问MySQL数据库而不能使用域名访问了，不过影响不大。

现在试试连接速度，瞬间连接。。。 </description>
		<link>http://www.slyar.com/blog/mysql-skip-name-resolve.html</link>
			</item>
	<item>
		<title>手工去掉QQ2008聊天窗口右上角的广告</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

今天更新了一下QQ，还是用狂人版的，结果外挂不管用了，聊天窗口右上角的那些恶心的广告又出现了，严重影响了我聊天时的心情，所以我决定手工干掉它。。。怎么干掉它呢？我不会！

Google...Baidu...大神出来帮我啊....找到了！

1、先打开你需要修改的那个皮肤的文件夹里的IMSkin.ini文件，例如我的是"Tencent\Newskins\QQ2008\IMSkin\IMSkin.ini"。意思就是你现在用哪个QQ皮肤，就修改哪个皮肤下的IMSkin.ini文件。

2、然后查找 rightSpace ，找到后把 rightSpace=0 改为 rightSpace=-242 (这里注意242前面有个"-")

3、继续查找 menuShowBand ，然后把 menuShowBand = 1 改为 menuShowBand = 0（空格一定不能省）

4、保存，退出。不放心的话在文件上点击鼠标右键选属性，加上只读属性，去掉存档，完成！

这下QQ终于干净了一些，恩，不错不错。。。 </description>
		<link>http://www.slyar.com/blog/qq2008-ad-delete.html</link>
			</item>
	<item>
		<title>居然有这么多人上课开蓝牙？</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

刚刚上完选修课回来，心理学，比较抽象，而且老师居然要把期末考试改成闭卷！5555我哭，说什么以后要考教师资格证开卷考试不认，奶奶的，我又不考那劳什子资格证。。。55555。。。不理她，课上没事我就随意打开了蓝牙，然后搜索。。。

正在搜索...##
NOKIA N95
NOKIA N82
NOKIA 6120c
NOKIA 6120s
NOKIA N72
NOKIA 5300
NOKIA N73
...


结果真的很令人吃惊，居然有这么多人上课开着蓝牙，而且都是NOKIA！想想那些都市小说里的"蓝牙情节"，说不定在大学里这样的事情还不少呢。。。我尝试和几个手机配对，不过他们一点默契都没有，配对码都不知道写"123"，全部失败，哎，看了这篇日志的人都记得，以后配对码全部都写"123"。。。

恩，我发现大学就是一个推翻高中理论的地方，基本上所有的大学老师都在贬低高中的教育，说高中所学的理论不是“有偏差的”、"片面的"，就"甚至是错误的"。。。还好我高中没学上什么"有用的"知识，至少我还是纯洁的白纸。。。

看看表，还有20分钟断网，我还能在网上扒一会。呃！！我突然想起来我的高数作业还没写。。。算了，等11:30断网了再写吧，我想我应该能在12:00断电之前写完的。。。

今天的天气很凉爽，对于南方的人来说，已经算有点冷了。。。 </description>
		<link>http://www.slyar.com/blog/bluetooth-in-class.html</link>
			</item>
	<item>
		<title>国庆开学第一天杂记</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

唔，刚上完选修课回来，强烈鄙视一下学校的网速，奶奶的，这么慢。。。回来看了一下流量统计，愕然发现居然有访问cnc.slyar.com的！我记得我已经301了镜像域名，怎么还会出现呢？赶紧FTP上去下载.htaccess查看，一看吓一跳，居然还原成默认状态了。。。赶紧找备份。。。忙活了半天终于恢复了。为了不让此类事情再次发生，我对.htaccess文件进行了BT级权限设置。。。

今天是国庆假期后开学的第一天，上学的感觉是不错滴，嘎嘎~早晨顺路跑去吃饭，然后就去上那无聊的计算机基础+高等数学。。。高数今天听得还比较爽，起码没有那种飘飘欲仙的感觉。。。

昨天说要买书看，今天咱就行动。下午到淘宝上订了一本《数据结构》，严蔚敏的书。以前就有看她的课件，感觉还不错，这次正好买到C语言版，包邮16块大洋，便宜便宜。。。

呃，问了半天人才晓得学校的邮政地址，这是咱大学第一次网购，哈哈，纪念一下。

再次BS学校的垃圾网络。。。

PS.貌似是因为今天去开网的人又成几何倍数翻了一次，才导致学校的网速变得这么恶心。。。 </description>
		<link>http://www.slyar.com/blog/start-class-one-day.html</link>
			</item>
	<item>
		<title>大学的第一个春节级国庆假期结束了</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

呵呵，看到这个题目，可能很多人会奇怪为什么我说国庆是"春节级"的吧？这就要回溯到我的高中时代了，那个时候我们国庆放假3天，而春节也就放假10天，所以我说今年的国庆是"春节级"的，呵呵~

国庆放假10天，我没出学校的大门。很多同学和朋友要不回家了，要不出去玩了，学校里的人一下就少了很多，校园显得很冷清。这10天我大都在宿舍呆着，做做vijos上的题，累了出去转转，饿了去吃饭。。。呵呵，很简单很没规律的生活，感觉还不错~

通过这几天做题，我发现我得去找找数据结构和算法的书来系统地学一下了，尤其是动态规划。。。

今天一下午都在下雨，而且还是大雨，貌似是台风尾巴扫过的缘故。。。

明天就要开学了，当然这个开学的含义和高中时简直不可同日而语，现在开学比过去放假还轻松，哈哈~不过明天早晨8点有课，我还是先洗澡睡觉的好。。。 </description>
		<link>http://www.slyar.com/blog/2008-national-day-end.html</link>
			</item>
	<item>
		<title>给WordPress的评论和留言加道数学题</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

嘿嘿，这个是小寒(CGrrr.COM)要求写的，不得不写呀~据说是小寒被垃圾评论折磨的不得了才准备安个验证码的~~

咱这个不是验证码，咱看见那些鬼都不认识的图里的数字就头疼，咱这次用5岁的题目来考bots。。。

本来我是想写PHP代码的，不过考虑到大家还是喜欢插件，那我也就找了一个插件出来，正好咱也省事，嘎嘎~这个Spam插件的效果就是在留言评论之前访客必须做一道加法题，5岁的题目，不过我想bot是不会算的。。。

这个插件就是Math Comment Spam Protection Plugin，需要的点击进去下载就OK了，当然我也把插件放到了下载基地，名称是Slyar-math-protection.rar，大家也可以在我这里下载。

下载上传安装，我就不说了，需要注意的是第一次使用需要先到管理界面点击一下"Update Options"，否则可能会出现错误提示。

好了，插件安装好了我们就该调用了，打开你模板里的comments.php或者其他留言板的模板，找到相应位置加入以下代码就OK了。

&#60;?php
if ( function_exists('math_comment_spam_protection') ) {$mcsp_info = math_comment_spam_protection();?&#62;&#60;label for="mcspvalue"&#62;Slyar给你出道题: &#60;?php echo $mcsp_info['operand1'] . ' + ' . $mcsp_info['operand2'] . ' =？' ?&#62;&#60;/label&#62;&#60;br/&#62;&#60;p&#62;&#60;input type="text" name="mcspvalue" id="mcspvalue" value="" size="40" tabindex="4" /&#62;
&#60;input type="hidden" name="mcspinfo" value="&#60;?php echo $mcsp_info['result']; ?&#62;" /&#62;&#60;/p&#62;&#60;?php } // if function_exists... ?&#62;

里面的内容大家可以做相应修改，完成后的结果是：

 </description>
		<link>http://www.slyar.com/blog/slyar-math-comment-spam.html</link>
			</item>
	<item>
		<title>任意位数的高精度阶乘算法 C语言版</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

今天就研究这个"任意位数的高精度阶乘算法"了，通过和大三的一个学长讨论，最终写出了这个还比较满意的算法：

1、利用C语言的动态数组来达到任意位数，但是首先需要知道数组的长度，也就是N!有多少位。

2、求出N!的结果有多少位，这个公式我就不证明了，是log10(1)+log10(2)+···+log10(n) 取整加1。

3、使用万进制来进位，减少空间的利用，提高运算速度。

4、高精度阶乘算法。

5、因为使用万进制，所以输出各位的时候需要补0。

6、最后发现如果N&#60;1000的话结果的首位会出现0，因此单独输出第一位保证首位没有0。

代码如下：

#include &#60;stdio.h&#62;
#include &#60;math.h&#62;
#include &#60;stdlib.h&#62;

/* 求N!的位数公式 log10(1)+log10(2)+···+log10(n) 取整加1  */
int wei(int n){
int i;
double sum=0;
for(i=1;i&#60;=n;i++) sum+=log10((double)i);
/* 以万为进制，一位可以表示4个数，减少存储空间 */
return (int)((sum+1)/4+1);
}

/* 高精度阶乘核心 */
int main(){
int i,j,n,jinwei,weishu=1,temp;
unsigned int *x;
scanf("%d",&#38;n);
/* 依据阶乘位数申请动态数组 */
x=(unsigned int*) malloc(wei(n)*sizeof(int));
x[0]=1;
for(i=2;i&#60;=n;i++){
jinwei=0;
for(j=1;j&#60;=weishu;j++){
temp=x[j-1]*i+jinwei;
if (temp&#62;=1){
/* 以万为进制，提高运算速度 */
x[j-1]=temp%10000;
jinwei=temp/10000;
}
}
while(jinwei){
weishu++;
x[weishu-1]=jinwei%10000;
jinwei/=10000;
}
}
/* 先输出第一个数，防止首位出现0 */
printf("%d",x[weishu-1]);
/* 输出其余的数，因为万进制，需要补0 */
for(j=weishu-2;j&#62;=0;j--) printf("%04d",x[j]);
/* 释放申请的内存 */
free(x);
system("pause");
return 0;
} </description>
		<link>http://www.slyar.com/blog/high-precision-factorial.html</link>
			</item>
	<item>
		<title>重建Discuz!论坛首页"最后发表"数据</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

用Discuz!论坛的人都知道，如果论坛防灌水机制没有做好，就会有很多的发帖机来"光顾"论坛，虽然我们可以通过禁止并删除该用户所有发帖来清除这些"垃圾"，但是在论坛首页的"最后发表"还是会留下那些"垃圾帖"的内容，尤其是对于流量少，发帖少的论坛，很长一段时间内一眼看下去"最后发帖"全是"垃圾"内容，严重影响了论坛的声誉，因此，我们需要重建"最后发表"的内容。。。

首先登陆到Discuz!的后台----工具----更新论坛统计----重建论坛帖数

OK,这样重建一下，首页的"最后发帖"就会恢复正常了。 </description>
		<link>http://www.slyar.com/blog/discuz-last-publish.html</link>
			</item>
	<item>
		<title>C/C++ 不检查数组下标是否越界</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

哎，以前都是把下标规定好的，也就没注意这个问题，今天发现这个问题还是在做Vijos的时候。我提交一题的代码时才发现我的数组长度居然少打了一个0，也就是小了10倍。。。我正痛心疾首可怜我的AC率的时候，却发现评测机给出了“Accepted”。。。怀疑、欣喜、不解。。。问Google。。。

原来C/C++是不检查数组下标是否越界的？奇怪的事情。。。不检查下标是否越界可以有效提高程序运行的效率，因为如果你检查，那么编译器必须在生成的目标代码中加入额外的代码用于程序运行时检测下标是否越界，这就会导致程序的运行速度下降，所以为了程序的运行效率，C/C++才不检查下标是否越界。

自己写了一段检测程序测试这个问题，发现如果数组下标越界了，那么它会自动接着那块内存往后写。想了一下明白了，以前说不允许数组下标越界，并不是因为界外没有存储空间，而是因为界外的内容是未知的。也就是说如果界外的空间暂时没有被利用，那么我们可以占用那块内存，但是如果之前界外的内存已经存放了东西，那么我们越界过去就会覆盖那块内存，导致错误的产生。。。

这样就明白了，所以我们还是需要好好规划数组的下标滴。。。 </description>
		<link>http://www.slyar.com/blog/c-array-border.html</link>
			</item>
	<item>
		<title>Slyar Home 九月博客总结(2008)</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

Slyar Home又长大了一个月，让我们看看Slyar Home九月份的表现吧。



1、博客文章。Slyar Home九月份发表文章26篇，大多数为大学生活的杂记，因为前半个月无法上网，因此文章多数集中在后半个月。

2、博客评论。2008年9月Slyar Home评论之星为：
第一名：Felix021 - www.19880711.com - 12条

第二名：jogocun - info.haifo.com - 11条

第三名：zonghua - aspx1314.cn - 10条

第四名：Joe - xiebiji.com - 9条

第五名：黑色的午夜 - www.lhxuji.com - 8条
3、博客流量。博客统计使用第三方的雅虎统计，九月详细统计信息如下，总体看博客流量平稳过渡。



4、收录状况

上个月还说Google会不会给我惊喜，这个月Google就真的给了我一个惊喜！本来是11月份更新PR的Google，突然在9月27日更新了PR，很多人的博客被降权了，而Google却给了我一个大大的惊喜。

Google PR=4,Alexa排名680583，Sogou Rank=52，以前没有的中国网站排名这次也有数据了，不过比较惨呵呵。

总体来说Slyar Home在2008年9月是丰收的，Slyar Home现在建博刚满100天，不知道建博200天的时候会是什么状况，拭目以待。。。



5、整理链接。刚刚检查了所有的友情链接，没有异常，而我也改变了首页展示链接的规则，依据还是PR值。除了好友以外，其他人的链接PR&#62;=3以后我就放到首页，不管是不是全站链接Slyar Home。 </description>
		<link>http://www.slyar.com/blog/08-9-slyar-summary.html</link>
			</item>
	<item>
		<title>校园人口开始下降</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

快到国庆了，因为学校里大部分都是广东人，所以学生这两天基本上都回家了，学校里显得空荡荡的。中午跑去食堂吃饭，发现学三食堂一层已经关门了，还贴着通知说到10月1日前都不开一层。。。只好上二层吃了，以前没来过，这次第一次来，买了饭发现这里比楼下便宜，结果一吃。。。哎，这饭和一楼的比起来简直差了不是一点半点。。。

吃完饭跑去图书馆看书。今天不晓得为什么借书的地方不开，不过自习室还是开着的，人不算多，我就看呀看呀。。。

晚上继续去学三食堂二楼吃，心想上午那套餐是不能吃了，找个炒饭吃吧。于是乎我就点了一个蛋炒饭，等啊等啊等啊。。。可爱的蛋炒饭终于来了，可是一看我就傻了，那饭在灯光下居然闪闪发光。。。哎，好不容易就着雪碧把那盘油油的蛋炒饭吃完，心想以后我再也不来学三食堂二楼了，这简直就是谋杀么。。。

奇怪，好像这几天车子爆胎的人成几何倍数增长哎，这到底是怎么了？

哈哈，国庆期间24小时不断电不断网哎，爽了爽了。。。看看QQ上，果然N多人都不睡觉扒在网上。。。 </description>
		<link>http://www.slyar.com/blog/campus-population-decline.html</link>
			</item>
	<item>
		<title>C语言中 i++ 和 ++i 有什么区别？</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

今天有同学问C语言中for循环里那个 i++ 和 ++i 是否有区别，我告诉他在for循环中是没有区别的，现在具体说一下 i++ 和 ++i 的区别。

我们先用while语句写一下 for(i=1;i&#60;10;i++)

int i=0;
while (i&#60;10){
printf("www.slyar.com");
 i++;
}

再用while语句写一下 for(i=1;i&#60;10;++i) 

int i=0;
while (i&#60;10){
printf("www.slyar.com");
 ++i;
}

可以看到，最后i的值都是10，所以在for循环里，i++ 和 ++i 是没有区别的，那么区别在哪里呢？

现在我们再看一段程序：

#include&#60;stdio.h&#62;
int main(){
int i,x;

 i=1;
x=1;
x=i++; //这里先让X变成i的值1，然后i加1
printf("%d ",x);

 i=1;
x=1;
x=++i; //这里先让i加1，然后让X变成i的值2
printf("%d ",x); 

system("pause");
return 0;
}

试着运行一下这段程序，发现结果是 1 2 ，这就是 i++ 和 ++i 的区别了：

i++  ：先引用后增加

++i  ：先增加后引用

具体是什么意思呢？就是

i++  ：先在i所在的表达式中使用i的当前值，后让i加1

++i  ：让i先加1，然后在i所在的表达式中使用i的新值

我想这样说大家就应该明白了。。。 </description>
		<link>http://www.slyar.com/blog/c-zizeng.html</link>
			</item>
	<item>
		<title>今天Slyar.com的Google PR值由0升至4！</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

今天在饭否里看到有人说PR变了，我还感觉比较奇怪，因为时间不到啊。。。抱着好奇的心里自己也查了一下，果然是变了。。。



Google Page Rank升到4我感觉还不是很惊讶，因为之前Sogou Rank就是42了，按比例算也是PR4了。不过建站98天拿到PR4还是小小地满足了一下我的虚荣心哈哈~

上次更新PR我没赶上，所以一直都是0，今天终于。。。嘿嘿。。。

快到月底了，又该总结了，也该整理链接了。非常感谢这段时间一直支持我的好友，名字我就不写了，我是懒人，大家如果想知道都是谁的话。。。看下面回复的人基本上都是哈哈~ </description>
		<link>http://www.slyar.com/blog/slyar-pr-4.html</link>
			</item>
	<item>
		<title>根据时间段自动切换CSS风格</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

好久没发技术文章了，现在来一篇。这个是那天小寒提出的，嘿嘿。

我们的博客或者网站总用一个css会造成审美疲劳的，那么我们就想个办法让它自己换好了，以前有很多随机变换css的代码，我就不发了，今天来一个新鲜点的，嘿嘿~

我们可以让我们的博客或者网站根据当前的时间自动更换风格，比如我们制作两套css，一套上午用，一套下午用。这样我们可以设定12点以前使用上午的css，过了12点就自动换成下午的css。

实现起来也很简单，我用php的，所以只发php版本了。

&#60;link rel="stylesheet" type="text/css" href="&#60;?php $hour = date("H"); if ($hour &#60; 12) echo "am.css"; else echo "pm.css"; ?&#62;" /&#62;

看到了？实际上就是利用php的date函数和echo来控制输出css文件名，简单吧？ </description>
		<link>http://www.slyar.com/blog/auto-time-css.html</link>
			</item>
	<item>
		<title>网速改爬行了，难道是因为台风？</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

不能忍啊，这个网速，打开新浪新闻都得一分多钟。。。简直就是爬行么，难道真的跟台风有关？哎，21世纪的台风难道厉害到可以刮进网络世界？。。。

早晨爬起来，外面真是一片狼藉啊。海华8栋下面小卖铺的玻璃门昨晚被打碎了；几乎所有的自行车都倒了；很多树都被刮折了。。。上午的课全部停上了，不过我本来上午就没课。。。吃亏了。。。

过了正午时分，台风就离开了，偶尔飘那么几分钟小雨，仅此而已。晚上去上课的时候发现自行车的后闸不灵了，不晓得是不是因为昨天台风把车刮倒弄的。。。观察一下，如果真的坏了过两天去修。。。

今天有传闻，说原定9月27、28号要上课，现在取消了，改放假。如果传闻属实，那么我们国庆就放9天假了，加上我星期五不上课，那么我国庆可以放10天假。。。真长啊。。。我要干什么呢？ </description>
		<link>http://www.slyar.com/blog/typhoon-network-speed.html</link>
			</item>
	<item>
		<title>台风黑格比来了</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

外面现在狂风大作，当然还卷着雨，又见到了那种雨幕被狂风吹着飘的壮观景象。。。到阳台上感受了一下，很爽，很爽，没沙子和煤灰的风真的很爽。。。

哎，本来现在我是应该去上选修课的，但是我英明地旷掉了。。。乐育楼，10:30下课。。。去了的话我想就得在那过夜了。。。

明天应该会是暴雨吧，不晓得会不会停课。。。不过也无所谓了，我明天就4节课。。。

早晨睡过了，一起床9:34，而我9:55要上C语言实验课。。。洗头、洗脸、刷牙、骑车到达综合楼。。。看表，9:52。。。想起了高中的生活，呵呵。。。

中午参加了校学生会网络部的第一次例会，基本上见到了网络部所有成员。当然，因为时间比较紧，没有更深层次的交流。上午就开始下雨了，预示着台风黑格比的到来。。。

哦对了，晚上去食堂吃饭，居然给我那么少的米。。。不巧的是我今天饿了，于是乎我吃了两份。。。哈哈~

洗澡洗澡，明天早晨起来看二楼水成什么样子，哈哈~三楼真爽~

看着日志，真水啊。。。不管了，我懒得扩充，就记录一下生活好了。。。 </description>
		<link>http://www.slyar.com/blog/typhoon-hagupit.html</link>
			</item>
	<item>
		<title>大学生活的第一个周末</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

唔，连着放假三天真是爽(因为我星期五没课，加上周六周日，我每周可以休息三天)，度过了大学生活中第一个周末，我终于体验到大学生活和高中生活的巨大差距了。。。

当然了，除了星期五那天已经说过，周六周日这两天我也不是无所事事，除了上上网，编编那让人恶心的程序，昨天我还去参加了校学生会的笔试，当然也就是谈谈自己对校学生会的看法。今天上午去参加了网络部的面试，都是熟人也没什么。。。

中午去楼下的超市准备买一条纸巾，一看标价我放弃了。。。￥6.5。。。我记得在学一食堂那里的超市是￥4.5。。。就这样，看哪天在励耘楼上完课去学一食堂吃饭，顺便再买。。。

晚上在"小镇"吃的饭，终于让我发现了一个拿着9英寸显示屏的笔记本MM坐在那里上网。。。最让我郁闷的是"小镇"的椅子靠背太低，坐着很不爽。。。

唔，刚刚洗澡出来的时候发现我居然又没衣服穿了。。。郁闷，晚上还得洗衣服。。。

哎，算了，我还是现在去洗吧，免得晚上又忘了。。。明天一大早就有课，而且明天还一上就连续6节。。。 </description>
		<link>http://www.slyar.com/blog/bnu-number-one-weekend.html</link>
			</item>
	<item>
		<title>首尾特征字符串批量替换工具</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

一个朋友说他去复制别人论坛上的文章，结果粘贴以后文字的开头或者是结尾都会莫名其妙地多出一些乱码，手工删除很麻烦，特别是那种超长的文章，问我有没有解决办法，我说你打开源代码拷贝然后用正则表达式替换那些乱码不就可以了。。。(因为乱码都是隐藏的，所以都会在源代码里由&#60;span&#62;包围)，结果朋友说他不会正则表达式。。。

哎，算了，还是用工具吧。。。这里我提供一个首尾特征字符串批量替换工具，需要的请到下载基地下载slyar_shouwei_change.rar。使用也很简单，例如你复制的源代码里有类似如下的乱码：

&#60;span style="display:none"&#62;&#38; ?1 O7 l9 V6 \% r; g, `$ n: n+ D8 i* slyar @&#60;/span&#62;

此时你就可以在首尾特征字符串批量替换工具的“起始特征字符串”里输入“&#60;span style="display:none"&#62;”，然后在"结束特征字符串"里输入"&#60;/span&#62;"，批量删除，这样就可以把以“&#60;span style="display:none"&#62;”开头，以"&#60;/span&#62;"结尾的内容全部替换掉，是不是很方便？ </description>
		<link>http://www.slyar.com/blog/begin-end-change.html</link>
			</item>
	<item>
		<title>算法思想严重退化，需要加强练习</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。



今天星期五，我一天没课，所以上午睡到很晚才起来，室友们早都去上课了。。。嘎嘎~

唔，QQ会员到期了，我懒得续费了，没啥用，关了就关了吧，截个图纪念一下。

因为今天不上课，所以大部分的时间我都在Programming，同时也在跟别人讨论程序方面的问题，但是我发现我现在的算法设计已经退步了很多，简直不能忍了。。。再次郁闷一下。。。加强练习。。。

晚上有校学生会的新老生见面会，我去看了看，感觉还不错，就是远了点。。。跑到励耘楼去了。。。

奇怪，怎么感觉今天电脑速度有点慢，错觉？

哦对了，下午开始做那个高数作业，将近20道题，本来我以为会很费时间的，结果做完才发现用了不到15分钟。。。晕，那题全都是求定义域的，有一半还都是能看出来了。。。无语，我说老师怎么忍心留这么多作业呢，哈哈~~~

今天不断电。。。

说到程序，记录几个C语言倒序数字的(不确定位数)。。。

利用普通的位数拆分来分解不定位数的整数：

#include &#60;stdio.h&#62;

int main(){
int num=0, daoxu=0;
scanf("%d", &#38;num);
while (num!=0){
daoxu*=10;
daoxu+=num%10;
num/=10;
}
printf("%d\n", daoxu);
system("pause");
return 0;
}

利用递归来分解不定位数的整数：

#include&#60;stdio.h&#62;

int daoxu(int i){
if(i==0) return 0;
printf("%d", i%10);
daoxu(i/10);
}

int main(){
int x;
scanf("%d",&#38;x);
daoxu(x);
system("pause");
return 0;
}

利用数组来分解不定位数的整数：

#include&#60;stdio.h&#62;
#include&#60;string.h&#62;

int main(){
int i;
char str[500];
scanf("%s",&#38;str);
i=strlen(str);
while(i&#62;0){
printf("%c",str[i-1]);
i--;
}
system("pause");
return 0;
} </description>
		<link>http://www.slyar.com/blog/need-algorithm-practise.html</link>
			</item>
	<item>
		<title>第一次上外教的课，感觉很好玩</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

今天是九一八事变78周年，国之耻，国之殇。。。

上午是英语外教课，长这么大第一次听外教讲课，感觉比较新鲜，唯一不爽的是去励耘楼的路上瓢泼了一阵，水了一身。。。

上外教的课很轻松，只要你说英语一切都OK，不像坐在教室还要不停地写、背。。。外教是个美国佬，有着美国佬惯有的幽默，感觉不错。

上完第一节外教课就轮到我大学的第一节体育课了，地点是风雨操场，俗称“龟壳”。以前师大的人们都说北京有“鸟巢”，我们有“龟壳”。。。我修的是篮球课，不过我们的前几节课全部都是太极拳，不管修的什么项目都要学太极拳，当然，我们学的是简化的太极拳。。。

练完几式太极拳就自由活动了，我当然是打球。。。不过在龟壳里打球的后果就只能用一个字来形容了---水。

今天的课真是爽啊，从早上到晚。。。坏了，没衣服穿了，都没洗。。。不过还好我明天没课。。。 </description>
		<link>http://www.slyar.com/blog/no1-foreign-teacher.html</link>
			</item>
	<item>
		<title>今天跑去Vijos练手，郁闷了一下</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

大学有ACM竞赛，我在考虑要不要参加。今天有空上网我就跑去以前搞OI时常去的Vijos练手，只不过以前用的是Pascal语言，现在要用C语言，本来一开始是打算使用C++语言的，可是考虑到用C++而又不能使用那些强大的函数。。。我还是使用C语言吧。。。

做题很不顺利，找了4道基础题，提交了8次才全部AC，当然问题我也知道，是因为以前拿Pascal做得很顺手，突然换上C语言来做，有些东西会混乱，还是练习太少。。。以后没事就泡Vijos了，把基础题全部AC了转战USACO。。。

至于ACM，大一我应该不会参加，那个东西需要时间的积累。。。

下午听了大学第一堂高等数学课，讲函数，不是很难，不过留了N道作业题。。。我哭。。。

C语言。。。C语言。。。继续学习。。。 </description>
		<link>http://www.slyar.com/blog/vijos-depressed.html</link>
			</item>
	<item>
		<title>终于开网了，速度还不错。</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

终于开网了，可以在宿舍上网，这种感觉真好。。。



今天上午去听了我在大学的第一堂课：C语言程序设计。当然了，对我来说第一堂C语言课是很简单的，不过我还是完整地听完了这堂课，教我们C语言的是一位女老师，还算幽默，至少比那些老头强多了。。。

意外地发现IDE不是传说中的C-Free而是我喜欢的Dev-cpp。。。很好，很好。。。

听完课我就奔去网络中心准备开网，可是到了那里看到十几米长的队伍我放弃了。。。还是先去吃饭的好，一食堂的特色饭真的不错。。。

吃完饭出来去排队，这时差不多有6、7米的队伍，排啊排啊我终于进到了那个小屋子，可是一进去我就傻了。。。整屋子至少有50号人等待开网，而负责开网的工作人员足有2个之多！。。。算了，面子不值钱，反正没人认识我，运起插队大法。。。(过程略)。。。搞定开网！全过程用时45分钟。。。

所以，插队，是一门艺术。。。

回来安装昨天下载的客户端，设置IP，测试连接，OK！

测试了一下速度，下载大概1.3MB/S的样子，还不错。

下午上了大学语文和大学英语，没啥感觉。。。

晚上9点要去听选修课，而且是最远的那栋楼。。。可怜的我。。。

PS.普通WIN下载，100MB左右的东西显示1.45MB/S，刚刚用迅雷测试，同样100MB的东西最快达到8MB/S。。。 </description>
		<link>http://www.slyar.com/blog/slyar-bnuep-net.html</link>
			</item>
	<item>
		<title>Slyar的大学生活9月15日记</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

今天星期一，休息。上午睡到9：30爬起来把《现代奇门遁甲一》看完了，下一部可能会看《小兵传奇》。11点钟实在无聊跑去学三食堂吃饭，然后骑单车去图书馆上网，最近人品比较好，在电子阅览室晃悠了不到5分钟就找到没人的电脑。今天来阅览室有带U盘，任务有两个，其一是拷贝上网所需的客户端；其二就是拷贝我的课程表。第一件事在登陆网络中心的主页后很快就解决了；而在完成第二件事的时候，我发现了一个令我惊喜的事情。。。

当时恰好遇到kin，然后我就说我的体育超级无语，选了一个武术(传说要把腿踢过头顶)，因为篮球已经满员了，而当我给kin展示我的体育选修时，我发现篮球人数那里居然是"48&#124;47"。。。这就是说篮球还剩一个名额。。。哈哈，爽啊，赶紧退选武术，选篮球，OK！完成~~~我就说我最近人品不错。。。

不过图书馆电子阅览室的电脑真的太让人无语了。。。10分钟蓝屏3次。。。阿门。。。

晚上和阿洁、明去学一食堂吃的东西，学一的炒饭还不错，哈哈~ </description>
		<link>http://www.slyar.com/blog/bnuep-915.html</link>
			</item>
	<item>
		<title>Slyar的大学生活9月14日记</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

9月12号上午进行照相，一个是学校各类证件的照片，另外一个就是转户口的身份证照片。排队排了N久，中午才照完。下午还是听报告、开班会，班会无非就是宣布一下班委名单，其他的没什么。晚上说开什么拓展活动，简直无聊之极。。。待了10分钟我们几个就全跑了。。。

9月13号星期六，放假。因为14号是中秋节，所以今天回家的人很多，我上午一直睡到快10点才起来，晃悠晃悠就该吃饭了。。。下午跟洁跑去图书馆上网，那电脑简直无语死了，10分钟蓝屏了3次。。。将就上吧。。。晚上和网络部一些成员跑去吃烧烤，第一次玩这个东西，感觉很新鲜，因为北方没有这个哈哈~我自认为技术还好啦，起码没吃到生的，嘿嘿~(宅，无视你)

今天是9月14号，传说中的中秋节，我不吃零食，而月饼被我划分在零食行列，所以我也不吃月饼。。。上午继续睡觉+无聊，中午吃完饭跑去图书馆却发现今天闭馆。。。我靠。。。无奈只能回来海华这边呆在SIGMA凉快。。。

现在刚吃完饭回到宿舍，继续宅着。。。明天还有一天休息，不过貌似可以跑去图书馆上网，起码不会无聊。周末晚上不断电，很爽，昨天晚上快1点回来居然还有热水，哈哈~爽~

后天就能开网了，不过貌似会有很多人去哎。。。烦。。。而且后天还要上课。。。 </description>
		<link>http://www.slyar.com/blog/bnuep-914.html</link>
			</item>
	<item>
		<title>Slyar的大学生活9月11日记</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

因为学校还没有开网络，所以这篇日志是我在本地服务器上写的，本来打算有了网络再写的，但是考虑到这几天的事情多如牛毛，我还是趁着无聊瞎记点吧。

9 月6号下午来到学校，先报到，然后分宿舍。说到分宿舍，我真是喜忧参半，喜的是我分到所有4人间的最后一个床位，忧的是我的寝室其他三个人全部都是软件工程专业，和我的专业不同，这样以后行动不是很统一，因为课程时间不一样。不管怎么说吧，反正分到一个宿舍就是缘分，都是兄弟。6号也没有什么其他的事情，因为时间已经不早了。

9月7号还是报到时间，所以我们跑到拱北那边游览了一下，人很多，尤其是关口那边，太阳也很毒，都是白色的。。。热啊。。。从学校做公交过去大概要1小时10分钟。

9 月8号上午进行选课指导，然后我们要去选课，传说我们的课程都已经被大二的选的差不多了，所以我还是询问了一下大二大三的师兄师姐们，还好我选了几个感兴趣的课程，有什么简单逻辑、心理学、食品营养与食品安全，体育课本来是想选篮球的，无奈我们去选课的时候是最后一批，所以体育课已经人满了，我只能退而求其次选武术了，想想也搞笑。。。武术。。。会不会是太极拳啊。。。下午父母离开学校，晚上我们举行开学典礼，在大操场，无非就是说一堆废话，反正我没听，最恶搞的是我们在开学典礼以后居然要考英语。。。汗一个，二个月没动英语，基本上不认识几个单词了。考试倒不是很麻烦，3篇阅读1篇完形填空1篇作文就 OK，只不过我怎么感觉那些单词我貌似好像都认识。。。

9月9号上午我们去听报告，也是比较无聊的那一种，关于我们的专业问题。下午是开院典礼，介绍我们学院以及学院的现状、就业之类。。。

9月10号上午我们进行图书馆入馆教育和校纪校规教育，前者就是告诉你怎么使用图书馆，后者就是杀鸡儆猴了。。。因为下午1点就要在校名石集合，所以上午不到10点结束教育后，我和几个朋友就跑到报刊借阅室看杂志了，借阅室很舒服、很凉快，而且我还找到了最新的《程序员》，爽啊爽啊。我决定以后没事就跑图书馆，又省电费(空调)又长知识。。。中午去琛琛那边吃饭，整整一条食街啊，而且粤华还超级安静，哪像我们这边每天都跟庙会似的。。。下午去参观了中国移动珠海公司和南方软件园，没什么感觉，都是软件类的，不感兴趣。。。移动真小气，也不说给发张充值卡。。。

说到这里就要插句话了，因为这是一个里程碑，一个什么里程碑呢----我终于摆脱了"11路公交车"。。。

先说一下我们学校吧，占地5000亩，超级大。。。我们住在海华6栋，到学三食堂大约300米，到以后经常上课的丽泽楼大约500米，到这几天开会的励耘楼大约。。。不晓得了，反正走路要25分钟左右，到图书馆也要20分钟左右，到校名石30分钟左右。。。这几天走了有20趟来回，走到吐血啊。。。10号晚上我和同学终于下定决心去买单车，而买车的过程中我发现不会粤语真的没法过，同学跟人家老板用潮州话杀价，老板还是笑呵呵的，我用普通话去讲，老板那个态度。。。哎。。。不管怎么说吧，反正我们是结束了"11路公交车"生涯，也步入机械化生活了。。。

PS.10号晚上貌似有高年级的在暴动哦，连烟花都出来了，传说还有水桶、显示器扔下来。。。

今天是9月11号了，上午在体检，就两项：抽血化验、胸透。排了N久的队才搞定，回来的路上就把午饭解决了，11点不到。回到寝室无聊打开电脑发现一个游戏都没有。。。我郁闷。。。只好码字了。。。什么？你说我怎么不写程序？我现在写什么程序。。。神经。。。

唔，12点了，下午2点还要去听报告，在考虑回来要不要抱上本本去楼下"小镇"上网。。。

哎，看看我这文章，真是不折不扣的流水账，也没办法啦，都详细写太多了，而且现在我没相机，以后有了相机图文结合慢慢介绍学校了，哈哈~我去找点事情做。。。 </description>
		<link>http://www.slyar.com/blog/bnuep-911.html</link>
			</item>
	<item>
		<title>离开家，上大学，北雁南飞</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

晚上就要离开家去上大学了，没有不舍，只是有一种感慨吧，我终于真正"离家出走"了！

学校很远，我要跨过黄河，越过长江，从海拔1000多米的黄土高原直线下降到海拔10-50米的广东珠海，虽然人往下走了，但是俺的心却是直上九天呀，哈哈哈哈~

东西装了不少，大包小包的，不过我想别人也一样吧，上大学本来就是搬家。。。呵呵，最好给我个4人间，6人的貌似太热闹了。。。

唔。。。又打雷了，下午瓢泼了一阵，还给了几个我所听过最响的炸雷，不晓得是不是给我送行的呀~~哈哈，但愿我走的时候不要下。。。

不知道去了什么时候才能上网，这该死的WP预发布我还是没搞定，肯定是服务器的问题。算了，等我能上网再发文章吧。

哎，这个时差我得倒过来才行，最近半个月过得全是美国时间。。。

好了，水了半天，吃饭去。 </description>
		<link>http://www.slyar.com/blog/leave-home-college.html</link>
			</item>
	<item>
		<title>URL 编码/解码 工具下载</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

我曾经写过一篇文章《大网站的链接也不安全-跳转漏洞》，其中提到了URL编码，有朋友询问那个编码是怎么算出来的，这里我提供一个Slyar几年前写的小工具，可以帮助你编码/解码 URL

那么，什么是URL编码呢？

那些复杂的概念我不说了，简而言之，就是只有ASCII字符才能通过HTTP协议来传送。当诸如空格、标点或者汉字之类的其他字符被传递时，就有可能出现一些未知状况，导致传递失败。为了确保被用户输入的字符能够正确地传递到服务器，字符必须被转化成可以确信的字符，这时就需要URL编码。

需要URL 编码/解码 工具的请到下载基地下载Slyar_Encoder.rar，工具支持ANSI和UTF-8字符，也支持简体中文和繁体中文。 </description>
		<link>http://www.slyar.com/blog/encode-decode.html</link>
			</item>
	<item>
		<title>利用.htaccess文件自定义错误页</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

利用.htaccess文件可以使你可以拥有个性化的错误页面，这会让你的网站在出错的时候看上去更专业。

任何页面错误代码(例如404找不到页面)，都可以通过修改.htaccess文件将其变成自定义页面

修改方法：ErrorDocument Errornumber /file.html

中文解释：ErrorDocument 错误代码 /目录名/文件名.扩展名

举个例子，如果我的根目录下有一个slyar_404.html文件，我想使用它作为404 error的页面，那么只需要这么写：

ErrorDocument 404 / slyar_404.html

如果文件不在网站的根目录下，那么你需要这么写：

ErrorDocument 404 /你的路径/slyar_404.html

以下是一些最常用的错误：

常用的客户端请求错误返回代码：

400 - Bad request 错误请求
401 - Authorization Required需要验证
403 - Forbidden禁止
404 - Not Found找不到页面
405 - Method Not Allowed
408 - Request Timed Out
411 - Content Length Required
412 - Precondition Failed
413 - Request Entity Too Long
414 - Request URI ...</description>
		<link>http://www.slyar.com/blog/errorpages-yourself.html</link>
			</item>
	<item>
		<title>发现一个FireFox3的BUG</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

唔，这个问题我发现好久了，当时以为只是我自己的问题，就没管，可是今天在别人的电脑上也出现这个问题，我就不得不怀疑这是一个BUG了。

问题出现在使用FireFox3在论坛发帖的时候。如图，Discuz提供两种编辑模式："Discuz!代码模式"和"所见即所得模式"



我们先在"所见即所得模式"编辑一句话，光标还在；这时选择"Discuz!代码模式"；然后再次选择"所见即所得模式"，此时就会发现光标丢失，无法编辑文章了。去掉所有的插件也还是存在问题，证明不是插件问题，FireFox2无此问题。

大家自己试下。

PS.刚才找午夜测试了一下，也有同样问题。 </description>
		<link>http://www.slyar.com/blog/firefox3-bug.html</link>
			</item>
	<item>
		<title>MJJ是什么意思？</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

呵呵，几乎所有的论坛、网站、QQ群都充斥着这个新词：MJJ

那么，到底什么是 MJJ 呢？

MJJ，又叫木JJ，从字面意思上来看，就是说你没JJ，不懂？那就是说你没鸡鸡，还不懂？说你没有小弟弟！。。。还不懂么？OK！说你没有那玩意！！！Oh,My God！你终于懂了。。。

说你MJJ并不是骂你，只是一种表达羡慕或者嫉妒的方式，比如说你有什么别人没有的，又或者你技术超强，别人都不会，再或者你做了别人做不了的事情，他们就会说你MJJ了

百度百科上有段话，我抄过来算了。。哈哈。。。
比如，你X了个美女，把她照片发出来了，并且很YD的形容你们之间的X事，那多数人一定会说你MJJ的，因为他们也想X那个美女，又X不到，只能说你MJJ，这就是孔乙己精神。。。
现在很多网民在论坛里都会以MJJ作为一种BS的回复，所以你经常会看到诸如"楼猪MJJ..."之类的话，总之，现在MJJ已经有了一种全新的含义，大家不要只从字面意思考虑，哈哈~~ </description>
		<link>http://www.slyar.com/blog/mjj.html</link>
			</item>
	<item>
		<title>用来关闭端口连接的CurrPorts绿色汉化版</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

下午运行MySQL的时候居然提示我"3306 port busy !"我晕，拿出IceSword看了一下端口占用情况发现3306端口被那个可恶的IE给占用了，想想关闭IE已经很久了，可是现在依旧"Close Wait"。。。想关闭端口却发现IceSword没有这个功能。。。GG了一下得知CurrPorts可以关闭端口连接，我这个郁闷啊，咱不是就有这玩意么。。。

拿出尘封已久的CurrPorts，找到3306，鼠标右键一点，很随意地就把3306给Kill了，过了没10秒钟再次启动MySQL，OK，成了！

CurrPorts的官方说明是这样的：

一个免费又非常好的网络连接监测工具，除了常见的列出所有 TCP/IP 和 UDP 连接，列出打开端口的应用程序，并将终止程序以外，它提供的信息十分详细，从版本到调度的服务，还能实时高亮显示新出现的程序等等。

我要用到的就是一个关闭端口占用功能，他可以轻松关闭TCP/UDP连接。这个功能好啊，以后就再也不怕80、3306等端口被霸占了，哈哈~~

需要CurrPorts绿色汉化版的请到下载基地下载Slyar_currport.rar，解压后得到2个文件，一个EXE执行程序，另一个是中文语言包。 </description>
		<link>http://www.slyar.com/blog/currports.html</link>
			</item>
	<item>
		<title>让统计代码符合W3C标准</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

哎，现在的统计代码，就没几个能过W3C标准的，至少我是没见能过的，不知道Google是不是标准点，反正雅虎统计和cnzz统计都不符合标准，这不刚拿上cnzz的代码挂上，就又不过W3C了。。。

看看cnzz的统计代码：
&#60;script src="http://s76.cnzz.com/stat.php?id=1033899&#38;web_id=1033899" language="JavaScript" charset="gb2312"&#62;&#60;/script&#62;
再看看雅虎的统计代码：
&#60;script type="text/javascript" src="http://js.tongji.cn.yahoo.com/674708/ystat.js"&#62;&#60;/script&#62;&#60;noscript&#62;&#60;a href="http://tongji.cn.yahoo.com"&#62;&#60;img src="http://img.tongji.cn.yahoo.com/674708/ystat.gif"/&#62;&#60;/a&#62;&#60;/noscript&#62;
哎，简直惨不忍睹啊。。。先给出正确的代码，然后解释

正确的cnzz统计代码：
&#60;script type="text/javascript" src='http://s76.cnzz.com/stat.php?id=1033899&#38;amp;web_id=1033899' language='JavaScript' charset='gb2312'&#62;&#60;/script&#62;
正确的雅虎统计代码：
&#60;script type="text/javascript" src="http://js.tongji.cn.yahoo.com/674708/ystat.js"&#62;&#60;/script&#62;&#60;noscript&#62;&#60;a href="http://tongji.cn.yahoo.com"&#62;&#60;img alt="" src="http://img.tongji.cn.yahoo.com/674708/ystat.gif"/&#62;&#60;/a&#62;&#60;/noscript&#62;
好了，现在Slyar来告诉大家一些关于统计代码的W3C标准：

1、所有字母要小写，要指定"type"类型，注意双引号的使用

2、所有的 &#38; 要全部替换成 &#38;amp;

3、图片img标签必须要有 alt 参数

4、换行必须使用 &#60;br /&#62; </description>
		<link>http://www.slyar.com/blog/tongji-w3c.html</link>
			</item>
	<item>
		<title>"Zend Optimizer not installed"可能原因及解决方法</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

朋友使用Windows 2003自己组建服务器，做完安全配置后才发现没有安装Zend，而安装完成后却发现"Zend Optimizer not installed"，经过一番对比发现php.ini内没有正确写入Zend的配置信息，原因可能是之前的安全配置使得php.ini只有运行和读取权限，而后来安装Zend却需要写权限来进行配置，故无法安装成功。

经过对比发现正确安装的Zend在php.ini中有以下信息：
[Zend]
zend_extension_ts = "\zendOptimizer\lib\ZendExtensionManager.dll"
zend_extension_manager.optimizer_ts = "\zendOptimizer\lib\Optimizer"
zend_optimizer.enable_loader = 1
zend_optimizer.optimization_level=15
;zend_optimizer.license_path =
; Local Variables:
; tab-width: 4
; End:
其中最主要的应该是红色部分，而蓝色的是你的zend路径，自己按照情况写。将这段复制到你的php.ini，然后重新启动IIS，看看Zend是不是正常了？ </description>
		<link>http://www.slyar.com/blog/zend-optimizer-not-installed.html</link>
			</item>
	<item>
		<title>给鼠标右键增加"打开快捷方式目标文件夹"功能</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

以前打开快捷方式的目标文件夹，总得点开快捷方式的属性用"查找目标"来实现，感觉太麻烦了，今天找了一个小工具，可以给鼠标右键添加一个"打开快捷方式目标文件夹"功能，这样只要在快捷方式上单击鼠标右键，然后选择"Open Folder"就可以快速打开快捷方式的目标文件夹了，爽~

如果你也想实现这个功能到下载基地下载Slyar_ShortCut.rar，解压缩后只有一个文件，运行一次即可安装，再次运行即可卸载，很方便。

使用前面也说了，只要在快捷方式上单击鼠标右键，然后选择"Open Folder"就可以快速打开快捷方式的目标文件夹了。 </description>
		<link>http://www.slyar.com/blog/mouse-open-folder.html</link>
			</item>
	<item>
		<title>Slyar Home 六、七、八月博客总结(2008)</title>
		<description>文章作者：Slyar 文章来源：Slyar Home (www.slyar.com) 转载请注明，谢谢合作。

从2008年6月21日开博至今，已经经历了72天，现在对过去二个多月博客的情况做一下总结。因为6月才建博，所以这次三个月一起总结，以后应该每月总结一次。



1、博客文章。三月共发表文章106篇，其中6月份19篇，7月份45篇，8月份42篇。大部分为技术文章，少部分为个人生活，但基