12.21 卖拉面的鱼咬羊
7科大西区的宿舍分成两部分,一部分在北面,是主要是本科生和很少部分研究生的宿舍,另一部分在南边,全部是研究生和博士生的宿舍。和宿舍一起的有两群学生食堂,北面有几个食堂,统称“本科生食堂”或“本科生那面”,南面也有几个食堂,同理统称“研究生食堂”或“研究生那面”。当然,食堂的叫法纯粹是由于地理位置使然,服务的对象都是科大的全体学生老师。以前貌似学校周围的学生和别的校外人员也可以来食堂蹭饭,但是在这个会议之后来吃饭就要加钱了,而且加的很多(看过某个文件上说貌似是60%)。
本科生这面的食堂有学校后勤自己经营的西一西二西三(没创意哈……),和承包给校外公司经营的金桔园(名字也有点奇怪哈……)。今年暑假学校把原来的西一和西二打通重新装修搞了个西区大食堂(我们起了一个外号:西4.5=西1+西1.5+西2。西1.5是过去在西一西二中间买炒饭拉面炸串串的一群窗口的统称。),虽然饭菜没啥变化但是就餐环境还是有进步的。
现在的西区大食堂最靠东边有一家卖拉面的窗口,在我大一刚来科大的时候他们家有一个招牌上面有他们店的名字:“鱼咬羊”。后来大食堂重新装修完了后他们的“鱼咬羊”招牌就没了,估计今年的新生就不知道这家叫什么然后会给他家起各种外号(比如“那家卖拉面的”……)。
虽然这家店叫鱼咬羊,但是貌似老板是四川人,所以做的东西和鲜其实没什么关系,口味很辣。据班上几个四川的同学说这家店的辣椒很赞,辣的很正宗,虽然对我来说实在是没什么感觉。在我大一刚来的时候貌似这家店只卖拉面和炒饭,后来渐渐的也开始卖盖饭煲仔饭粉丝河粉米线……等等乱七八糟炒的煮的东西。
整个店一开始的时候就是老板和老板娘(关于他们两的关系是我猜的……不过八九不离十,哎呦……敏感词出现……不要被墙啊……),后来以每年新增一个伙计的速度发展,到现在一共有四个人,一对夫妇外加两个伙计。老板娘个子不高,但是一副非常勤快踏实肯干的样子,负责记录同学们点的东西,给同学们刷卡还有给做好的拉面粉丝加料。老板也是个子不高,但是一副非常勤快踏实肯干不善言辞的样子,负责在后面不停地拉面,同学每点一份拉面老板娘就会喊一声:“拉面一碗~(注意阴阳顿挫的腔调)”,老板就会默默地把面拉好放进煮面的大桶里面,煮好了后老板娘就会从桶里捞到碗里加上汤,然后问:“要什么的?同学~”如果你要牛肉或者别的除了鸡蛋的口味的,她就会从面前的几各大锅里面默默地捞上那么一点点给你放进碗里,如果你要鸡蛋的,她就会从面前的一大锅煮鸡蛋里略显肉痛的给你舀两个煮鸡蛋放碗里,至此一碗拉面就算是做好了。剩下的两个伙计一个负责炒饭炒面,个子高高的,身材略瘦,带着一副大大厚厚的眼睛,一副非常学术的样子,另一个负责炒盖饭和煲仔饭,个子不算高但是很胖。
1.22 北京之行
3今年寒假没有直接回家,而是先陪妹妹去了趟北京,参加某些学校的艺术特长生考试。(关于什么是艺术特长生请猛击这里)
来考试的是我妹妹,而且还是艺术类的,我自然是我帮不上什么忙,除了加油鼓劲就是吃了睡睡了吃,偶尔上上网,不亦悦乎。
清华大学的考试地点在清华大学蒙民伟楼,之前我还以为这栋楼的命名是为了纪念汉蒙友谊什么的,后来查了才知道是蒙民伟是人名。
后来还在北航参观了现代艺术画展,表示欣赏不了这种艺术形式,虽然久久的注视着确实可以感到一种强大的艺术张力。
总的来说北京真的是一个很有意思的城市,我们住在五道口的一个宾馆,周围韩国人很多,各种年轻人的东西也很多,给人一种非常青春活力的感觉。而且在北京逛了逛西单大悦城,三里屯VILLAGE,感叹东西真是贵,还不算是奢侈品,但却让我感叹一定要努力赚钱。
北京烤鸭一般人可能都会觉得有些腻,但是我从小到大一直觉得非常好吃,每次都可以一人来半只,不知道是不是可以说明我和北京的缘分。
《APACHE系统管理指南》读书报告
0这是一篇为USTC LUG写的读书报告,不出意外的话这可能会是这个读书计划的第一篇读书报告,关于这个读书写报告的计划的具体情况详见:http://lug.ustc.edu.cn/lug/booklist
我借的这本书原名叫做《Administering Apache》,中文版出版于2001年,在安装的那一节可以看到他安装的是apache 1.36版……也就是说可能这本十年前的书中所讲的各种apache feature现在已经有了比较大的变化。所以我在这里先引用一下apache最近的两个重要版本的what's new,如果要读我这篇报告的话建议先去瞧一眼:new feature in apache 2.0和new feature in apache 2.2。另外我还用另一本书作为参考《Apache Cookbook》(这本书很赞~建议在读不到这本书的前提下再去读题目中的书),并且参考apache官方文档。
这篇读书报告基本只是写了一些我觉得有必要写的东西,有些是我关心的,有些是我觉得有意思的。还有很多东西是这本书涉及到但是这篇读书报告并没有涉及的,比如安全性,日志,还有服务器编程。
安装,配置和测试
书上简要的给出了编译安装的方法,主要就是启用和禁用模块,安装目录等等。我个人更喜欢的是直接从软件包里安装,因为对于apache这种千锤百炼的软件包以及如果不是很特别的硬件的话,我不认为自己编译的binary会比直接安装的性能更好。这里附一个连接,是apache在多数发行版下的默认安装方案:http://wiki.apache.org/httpd/DistrosDefaultLayout。
在配置方面可以自己去写配置文件。配置文件里面有两种语法,一种是变量赋值:<变量名><空格><变量值>,例如ServerRoot "/usr/local/apache"。另一种是块指令,也是一种变量赋值,只是出了一个单纯的值之外还可以给这个变量附加个各种属性,或者制定规则,比如:
<Directory />
Order Deny,Allow
Deny from all
</Directory>
在debian和ubuntu中还提供了两个帮助我们管理配置文件的小脚本:a2ensite 和 a2enmod。具体可以看这里。
服务器装好了自然要测试一下,apache提供了一个管理工具:apachectl,我们可以运行 apachectl -t 来测试一下配置文件本身有没有错误。这个工具本身还有很多别的功能可以完成多数的管理功能。
处理内容
Apache首先的作用就是做网页服务器了,所以就有了最基本的指令:DirectoryIndex,比如
DirectoryIndex index.html index.htm index.cgi
会依次寻找当前目录下的文件,找不到了就执行index.cgi脚本。也可以没有主页而是让它返回一个文件夹的文件列表
<Directory /web/docs> Options Indexes FollowSymLinks </Directory>
关于这个文件列表页面有着大量的选项去配置。
再往后这本书讲了很多CGI脚本和SSI方面的东西。如果没有CGI脚本基础的可以看看这个教程。
代理
apache可以拿来做代理服务器,不论是正向的还是反向的。关于正向和反向代理服务器,简单的来说正向代理服务器是给一般用户拿来上网用的,而反向代理服务器则是给网站让别人更好的访问用的。正向的代理服务器的配置非常复杂,在这本书中印出了4页长的配置文件。而反向代理服务器则出乎意料的简单,所有内容加起来不到2页纸。不了解nginx在这方面的情况,但是有这方面需求的可以去看看nginx是怎么做的:)
服务器运行状态
在这本书的第10章给出了一个module,可以让我们非常方便的监视服务器的状态,得到很详细的信息。mod_status模块。具体mod_status会输出什么样的信息可以来这里看看:http://httpd.apache.org/server-status。所有启用了这个模块并且将ExtendedStatus设为On的都可以在网站上看到这个效果。
基准测试
Apache自带了一个测试工具ab。下面可以看到我的blog的一个简单的测试结果:
goodchong@Sansung:~$ ab -n 5 -c 3 goodchong.com/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking goodchong.com (be patient).....done
Server Software: nginx/0.7.67
Server Hostname: goodchong.com
Server Port: 80
Document Path: /
Document Length: 62898 bytes
Concurrency Level: 3
Time taken for tests: 15.128 seconds
Complete requests: 5
Failed requests: 0
Write errors: 0
Total transferred: 316045 bytes
HTML transferred: 314490 bytes
Requests per second: 0.33 [#/sec] (mean)
Time per request: 9076.783 [ms] (mean)
Time per request: 3025.594 [ms] (mean, across all concurrent requests)
Transfer rate: 20.40 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 219 820 1344.6 219 3226
Processing: 2224 4623 2051.6 4604 7851
Waiting: 233 238 5.3 241 243
Total: 2444 5444 3296.8 4823 11077
Percentage of the requests served within a certain time (ms)
50% 4697
66% 4949
75% 4949
80% 11077
90% 11077
95% 11077
98% 11077
99% 11077
100% 11077 (longest request)
SVM(支持向量机),二次规划与核函数
5我这学期选修了专选课人工智能,可能是由于徐老师的研究兴趣或者是由于SVM现在确实应用广泛,总之是用了一次课的时间很细的讲了这个课本上只有区区一页的东西……另外还布置了SVM的课程实验,虽然现在我已经完成了但是对其中的很多细节性的问题并不是理解的很清楚,于是就有了这篇日志记录一下关于这个问题自己的思考。
什么是SVM
请猛击:http://en.wikipedia.org/wiki/Support_vector_machine
就我的理解而言,普通的SVM就是一种算法,这种算法是一种定义在线性空间上的线性划分或者说线性变换(而后面我们会看到使用绝妙的方法“核函数”,来得到一种非线性的划分),输入是一些已经分类好的实例(这是一种监督学习算法)。得到这个划分之后,我们就可以输入新的数据,然后得到新的数据所在的类别了。
SVM与二次规划
鉴于是一个线性划分,所以我们可以把最终的SVM看作是一个定义在N维空间上的超平面,这个超平面通过计算支持向量到这个超平面的距离,结合所有点到这个超平面的距离都必须大于等于支持向量到超平面的距离(等于的就是那些支持向量,这一点提示我们使用求解对偶问题的方法去找出这些支持向量,而大于的就是除了支持向量以外的别的向量),我们可以得到一个很直观的在一定条件下的求最值问题(要求支持向量到超平面的距离最大)。这样就是一个很自然的二次规划问题了。
subject to (
) : 
再往后就是一些二次规划上常用的优化方法都可以往上加了。做完Lagrangian变换得到原问题的对偶问题之后,通过求解这个对偶问题就可以找出所有的支持向量,并求出这个超平面了。




核函数
在上面的对偶问题我们可以看到,在对偶问题中我们关心的不是每单个向量的位置,或距离。关心的是任意两个向量的点积,也就是:

我们把这个定义为核函数,这个函数反应我们数据的尺度。课程要求使用两种核函数,一个是线性核函数,另一个是高斯核函数。而这种技巧就是改变我们的核函数尺度(例如变成非线性尺度)从而获得更好的分类效果(从后面的实验效果看也确实如此)。而且还可以使用特殊的核函数来将原来的SVM无法解决的非线性数据映射到线性空间从而使问题变得可解。
尝试安装latex支持
212.30
现在换用了Latex for WordPress这个插件,这个插件生成latex公式所使用的服务器默认是wordpress.com,但是也可以使用自己的mimetex.cgi。
看一下效果,和原来的一样,应该可以解决原来在feed中显示不出来的问题:

12.18
考虑到要写的一些日志中无可避免的要加入一些公式所以在wordpress中加入了一个latex插件:Optimized LaTeX。据作者说,这个插件是基于两个latex插件改良而来。我安装它的原因也很简单,在wordpress plugin的add new中搜索“latex”得到的第一个就是了。(话说这个搜索不知道是什么搜索排序算法,总之是烂透了……)
这个插件会把我输入的公式转换成png图片,不知道是在本地转换还是发到别的网站上去,但是转换速度似乎不能让我满意,这给我写日志带来一些麻烦,每次save draft都会卡死。另外就是打开网页的时候由于文本显示速度较快,所以会首先显示所有文本,然后显示图片,所以以后的日志很有可能一开始是文本,等几秒钟才会突然蹦出来一堆公式。
这是第一个公式“
”如果什么也没有的话就是安装失败了……
日志发布之后发现一个问题,就是公式无法在feed中显示出来。想办法解决吧。
VPS安装脚本对比总结
9在经过一年和30篇日志(其中最近的一篇距离现在大约是11个月……)之后,我在hawkhost的主机到期了,本来续费也是可以的,他们的服务我也觉得不错,但这次还是下定决心使用了VPS(什么是VPS请猛击),主要是想通过自己配置来避免主机服务商的各种限制。服务器的配置是个挺麻烦的事情,特别是对于便宜的VPS往往内存都很小,这时我们就会使用各种手段来减小各种服务的内存使用,比如用nginx替换apache,用dash替换bash等等,其中有些工作让我大开眼界……总之,对于小内存的VPS来说配置起来就会非常繁琐,同时没有太多的技术含量,于是各种一键安装脚本就应运而生了。
到目前为止我见到的安装脚本有三个 (在写文章的时候发现Nginx Autoinstaller和LNMP一件安装包有着暧昧的相似性,下载下来看了一下发现Nginx Autoinstaller确实是基于LNMP的,连里面的readme都没有改,不知道究竟这两个有没有区别,但是至少Nginx Autoinstaller是基于LNMP一键安装脚本的 Nginx Autoinstaller的作者在脚本里完全没有提LNMP的作者,但他署名的地方写的是“Modified by ruchirablog”,具体我没有研究者这两个脚本有什么区别,希望不是只有名字的区别。):
支持的操作系统
Nginx Autoinstaller在博客中明确的写了支持debian/ubuntu/centos 32bit or 64bit,但是对ubuntu的支持只支持到10.04,不过作者提出了一种方法就是先在10.04上使用这个脚本然后再升级到10.10。我感觉这并不是一个好方法……
lowendscript则是只支持debian和ubuntu,并且表示在debian 5.0和ubuntu10.04上测试过。
对于lnmp一键安装包则是在主页上和0.4版的发布页面上明确指出了支持CentOS/RadHat、Debian/Ubuntu VPS,但是有趣的是在他们最新版(0.5)的发布页面里的支持列表里却没有ubuntu。
虽然以前用过opensuse但是对yum的包管理系统还是很不熟悉,而Ubuntu很吃内存(lowendbox那个脚本配置完后内存相差大约一倍),所以使用的还是debian。貌似很多的VPS装的都是CentOS,科大的网络服务器貌似用的也是CentOS,于是CentOS和debian就有了一些对比。而在LUG的邮件列表里大家也讨论过这个问题,最后大家找到的一些文章表示“如果没有特殊原因(比如必须使用yum)建议还是使用debian”。
安装的软件
安装的软件上看lowendscript就要少很多,除了系统设置之外就是nginx+mysql+php+wordpress。而lnmp一键脚本支持的就要多一些(但是少了wordpress,不过在lnmp这个基础上安装是很简单的,毕竟我见人家连wordpress.conf都准备好了)。除了Nginx,MySQL,PHP外,还有PHPMyAdmin(我很喜欢~),Zend Optimizer,eAccelerator,Nginx-RRD,vsFTPd/PureFtpd。另外还提供了管理脚本“lnmp {start|stop|reload|restart|kill|status}”,添加vhost的脚本,甚至还有uninstall的脚本。
除了软件类别以外,安装方式也不同,lowendscript使用apt-get包管理器,所有包都是apt-get了事,而lnmp一键脚本则是本地编译安装,据说性能会好一些(后面确实跟了很多编译参数……不过安装时间肯定是很慢的)。
另外lowendscript可以一个一个分别装,而LNMP会一股脑的全给你装上。
总结
如果没有特殊原因推荐使用LNMP一键安装脚本,而如果要求简单直接就是wordpress的话可以使用lowendscript。
PS:有反应说LNMP一键安装包装出来的VPS内存占用多,网上说好象是因为eAccelerator引起的,不过也就是100多MB,貌似不会有很大影响,毕竟也不是内存占用越小越好,放着也是放着,不用白不用。
后记
12.19
昨晚我换了LNMP的一键安装脚本,备份回复过程很顺利。这个脚本默认启动5个php-cgi进程,加上别的一些东西(运行了一晚,再加上昨晚写了2个多小时日志,到现在应该是比较稳定了)共占用180多MB的内存,之前lowendscript只有1个php-cgi占用60多MB内存。脚本的选择上建议还是结合自己的情况看看。LNMP是全编译安装,对此我颇不以为然,难说这样搞可以有多少性能提升,如果有具体的测试数据的话一定要找来看看。
1.24 回家
5虽然在16日考试就结束了,但为了实验室发的300元加班费同时也为了在学校陪陪女朋友,还是在学校上了一星期的网才回家。整整一周,起的也不是很晚,但是说起来确实什么都没干。没办法,考完试心都野了,不过还好虽然有些正事但是并不多也不急。
由于合肥到太原的飞机由于某种原因被取消了(貌似是由于航线从小飞机换成了大飞机,于是就赔钱了……),于是我要临时使用某种算法来决定一个回家线路。这个问题类似于图上两点间最短路的简化版,不过只要考虑一步中转就行了。在枚举了7,8条线路后我选定了合肥动车去南京,然后飞回太原的方案。
由于我女朋友,今天起了个大早,5点钟从床上爬起来收拾起来被褥洗漱整理好才5点半,6点出门,6点20就到火车站了。不过我的车是8点整的于是乎坐在候车室又冷又困……幸好iphone提醒我这里有无线网而且没有密码,本身没指望能用,但是连上以后竟然真的能上网,SSID是 ChinaNet,估计是中国电信的。一直听说中国电信要搞wifi覆盖现在终于见识到了,而且没想到还是免费的……(跑到南京飞机场发现一样是ChinaNet但是不行了,要天翼用户才行,但是为什么合肥火车站的就是免费随便上呢?待求解……)
赶火车不如赶飞机清静,候车室里很冷似乎也不大安全,期间有个女的来问我要不要托运行李,让我感觉非常不怀好意,我是打死也不敢让她帮忙的。她一直在纠缠,我最后竟然骂了出来(你快滚吧……)。还有一个老头子,由于他穿的满不错的(至少比坐我旁边的旅客强),以至于我没看出来他是个乞丐,是来问我要钱的。直到后来他突然单膝跪下我才反应过来。赶快给钱了事,您一大把年纪了我还真受不起您这一跪……
之后的事情就很顺利了,7:57候车准时开车,8:57准时到站。
出去吃了15块钱肯德基早餐休息一会后,9:23机场大巴出发,55分钟后到达南京机场。
自助登机手续很好用,不过要注意行李补托运。
11点开始在候机大厅里蹭网至今……
PS:ibus里面输入dafeiji第一个词竟然是“打飞机”……邪恶了……
1.19
2知道了算法成绩,总的来说还是比较满意的,考完就觉得比较顺利,结果比我估计的还高那么两分。这说明顾老师不仅课教的好,给分也是很厚道的~
晚上问yegle花了买了一个月的VPN。主要是由于要回家了,希望有一个稳定的上网环境,另外老爸老妈估计也要用。试用一下看看VPN的速度什么的怎么样,要是不错的就买个一年的。总的来说还不错~上twitter,facebook非常顺利,上自己的blog也更快了,看youtube卡的不多(这可能和我的教育网网络环境有关)。使用了来自http://code.google.com/p/chnroutes/的脚本修改路由表后上网还是很顺利的。
最近乱七八糟事很多(很长时间了一直很多),最乱的新闻非google退出中国莫属。这事我对google有保留的支持,毕竟他退出了我就没的用了……但是我很佩服有理想,坚持自己理想的公司(特别google是上市公司),尽管我对究竟一个公司应该坚持自己的价值观不作恶还是应当追求最大利润那个更能有利于社会这个问题持保留意见(当然不排除google这么做可以获得更大的利润)。
CN域名好像又允许个人注册了,这样折腾半天不知道相关单位在想什么。一开始就不应该那么狠,这样还可以把大家留在国内任人宰割。人都是这样,不是逼得太急了谁会放弃自己用了几年的域名呢?
我觉得最热的新闻应当是海地的地震,比汶川有过之而无不及,为他们祈祷。





