May 17, 2009

坚守Blogger

看了几个其他几个网站的blog系统,感觉很不舒服,现在的国内的站点基本都把sns抄出来了,简单的博客还堆了一堆乱七八糟的应用,很不爽啊很不爽。还是坚守Blogger好了,Firefox的Gladder插件还算好用,满足我偶尔发发牢骚还是可以的。

May 16, 2009

Blogger 也被和谐了。。。

这次是真没辙了。。。翻墙出来之后写好的东西也不想发了,blogspot是直接访问不了的,向ss要了一个isclab的二级域名,aptenom.blogspot.org,这个可以访问,但是写不了东西,近期考虑转到blogbus上去。。。

伟大的GFW!

May 13, 2009

流水帐

但凡这个家伙的博客很久不更新,八成又是被折腾的不像样了。

ISCC定于5月1号开赛,原定说是提前三个周系统完成拿出时间来联调,但不幸的是,直到赛前三个小时有些题目还没有到位。紧赶慢赶终于8点时候差不多网站完成,却发现php 5.3 rc这个尚未正式发布的版本致命的弱点,支持连接数极低,没来几个人网站就挂掉了。于是乎,雨纷纷的情节再次上演。接下来换服务器,试图配IIS,ss开始尝试Linux,作为备案,把去年的代码拿出来改啊改,千万不能死在php 5.3上面。幸好,断网之前ss发来说是Linux效果还不错,可以解决问题,这次松了一口气。呼,有惊无险,虽然比赛还是推迟了。

真正经历整个比赛的过程,才会发现其中的一些不易。开始的准备不足,比赛时间规划的一再延迟,压缩到零的联调。。。呃,不爆内幕了,比赛总结再说。

Imagine Cup的半决赛实在是恶心。呃,折腾了几天,好歹有一些进展。全球二百多个晋级半决赛的同学,为了埃及的free travel,跟那只可怜的机器人挣扎在火星上。趁机看了一点图像处理的算法,很好玩的说。还简单的写了个边缘检测的程序,基于C#,几行程序,简单的拖出个界面,算是可以拿出来xy的东西(此处显然是忽悠不知情的同学)。。。程序还有很多东西要改,20号截止,God Bless Me~

哦,用上了传说中的正版Windows系统,话说打小儿就是“盗版软件的受害者”,这回趁着Imagine Cup弄了一堆的正版软件,自然迫不及待的翻身做主人。其实也是用够了xp,那天给小超同学装德语版xp,可以在一堆洋码子里游刃有余(当然,只是日常应用),呶,要是一个系统用到这种程度,自然没什么兴趣了。Vista还动不动出点这个那个问题,吼吼,折腾呗。

上周开始忙活请李笑来做讲座,是看到他在博客里的发帖,然后冒昧的发去邮件询问。系学生会担心找不到人,于是想自己应下来,发动认识的人来宣传。没想到有人来主动联系,某学部学生会某部长说来帮忙,这位显然也是李老师的Fans,正好,也算有个名目,让给他们来就好了。晚上刚费劲心思头一回的做了张海报,现学现卖。读笑来老师的博客也有半年了吧,学到不少东西,倒算不上是个追星族,但能跟这样的长辈有所交流,自然是求之不得。周五晚七点,理科教学楼204,多去捧场哦。

说到讲座,昨晚刚去听本部的唐骏讲座,之前为这事儿自己犯了些很2的错误,希望某人不会介意。。。但这场讲座还是很值的,两个半小时,我是站着听下来的(没那么高尚,我去的晚了。。。)做职场的人练得一副好嘴皮子,两个半小时,掌声笑声不断,而在一次次的调侃当中,却让你明白,成功没有那么高不可攀,俩字,坚持就好了。想想看,单眼皮都能几个月下来硬给手动拉成双眼皮,这样子的人,还有啥干不了的。他的讲座和书籍中一直强调良好性格的重要性,这点是在他讲座之后逐渐意识到的。记得哪本书里还提到过,一个成功的人是懂得让周围的人感到舒服的人,做为中国人,呵呵,中国特色还是会告诉你,人情世故还是排在第一位的。别去愤青,能改变的只有你自己。

专业课越发迷茫,主要是几周来都没有时间来好好看课本。罢了罢了,度过IC之后再说吧。

五四的时候想起几年前几个要好的同学弄的ROC组织来,很怀念那时的单纯和执着,勇气。ROC stands for Refuse One-off Chopsticks. 哈,想起那个时候就有签名活动,然后还送过筷子,贴过传单,搞过宣讲(很冷),哦,还建了个网站,那时候开始接触html,dramer做的页面比较赞,然后自己还整了个flash搁在上面,吼吼,很好玩很好玩。毕业之后有一次聚餐,几个人还有合影的来着,很想翻出来。几年已过,各位成员各奔东西,见面的机会也很少,好好混吧,有机会东山再起,哈哈。

开始学吉他,动力来自于叫兽同学的《天空之城》,没想到吉他也能弹出如此动人的效果来。学乐器是一直以来的心愿,要是啥都不会,实在乃人生一大憾事。可能没有很多集中的时间,但我想我会坚持下来的,嗯。

头发很长,该去剪了。

这篇用来凑字数,纯属“碎碎念”。

Apr 26, 2009

简单的PHP采集

李笑来老师的博客上看到他把要出版的《新托福词汇分类突破》,很是不错,恰好也在背单词,感觉这样子的形式要比啃红宝书来的有效一些。虽然托福的词汇相对来说比较少,但一点点来积累好了。写了个php的脚本,用来把页面都保存下来。顺便复习一下PHP的东西。

李笑来老师这本书的地址:http://www.xiaolai.net/index.php/archives/3628.html, 一共有192个单元,博客基于WordPress构建,这些单元都有自己的页面,地址序列严格递增,所以直接循环操作就行。但由于网络原因以及php脚本的执行效率,把192个页面分成每十个一组来下载保存。

很简单的程序,贴代码分析好了。
//根据URL传进来的参数来构造目标URL,每十个一组
$piece = $_GET['p'];
$start = 3844+($piece-1)*10;
$end = 3844+($piece-1)*10+9;
$num = '';

//博客文章地址,做了静态页面的处理
$baseurl= 'http://www.xiaolai.net/index.php/archives/';
$contents= '';
$result = '';

//在脚本文件目录下保存成word_list_00.htm形式,每个文件含10篇短文
$filename = 'word_list_'.$piece.'.htm';
$file=@fopen($filename, 'w');

for($i=$start; $i<=$end; $i++)
{
$url = $baseurl.$i.'.html';
$contents= file_get_contents($url);

// 开始使用的是正则替换,感觉效率不是太高,而且有点牛刀的意思,
// 需求很简单,直接用字符串操作就行的
// preg_match_all("/<h3>\d\d\d<\/h3>/U", $contents, $num);
// preg_match_all("/<div\ class=\"ttvtext\">([\s\S]*)<\/div>/U", $contents, $result);

// echo $num[0][0];
// echo $result[0][0];
// file_put_contents($file, $num[0][0].'\n'.$result[0][0].'\n', FILE_APPEND);

// 直接截取所需要的HTML代码就行
$contents = strstr($contents, '<div class="ttvtext">');
$contents = substr($contents, 0, strpos($contents, '</div>')+strlen('</div>'));
fwrite($file, '<h3>'.($i-3844).'</h3>'.$contents);
}
fclose($file);
?>


保存成spider.php,放在网站目录下,然后通过浏览器访问http://localhost/spider.php?p=2,即可在相应目录(php文件所在目录)下生成相应的html文件。

那么一共有19个文件要创建,要一个个去访问吗?这个时候想起迅雷的批量下载功能,呵呵,把上面的地址构造一下,实现批量访问即可~

Apr 25, 2009

Linux Shell 脚本

给Bridge做备份,这两天学了一点shell脚本的东西,作为总结,拿出来好了。

#!/bin/bash
#定义一些常用的变量,便于之后修改
currentday=$(date +%Y%m%d)
currenttime=$(date +%Y%m%d-%H%M%S)
dbuser=
dbpasswd=
ftpaddr=
ftpuser=
ftppasswd=
#下面是些目录及文件名什么的
backupdir=/home/aptenom/mysql_backup/
dbfile=bridge_database.$currenttime.tgz
dbdump=bridge_database_bymysqldump.$currenttime.sql
wwwfile=bridge_wwwroot.$currenttime.tgz

#bash里的判断语句。注意中括号两边都要有空格
#-d用来判断目录是否存在(directory)-f用来判文件(file)
if [ ! -d $backupdir/$currentday ]
then
mkdir $backupdir/$currentday
fi
cd $backupdir/$currentday
#mysql的数据库对应一个文件夹,实验证明这样备份也行^^
tar czf $dbfile /var/lib/mysql/bridge
#保险起见,用mysqldump导出一份来
mysqldump -u$dbuser -p$dbpasswd bridge > $dbdump

#判断日期,date的w参数给出日期的数字值,0为周日,设定周一
#进行网站目录备份
#eq为等于判断
if [ $(date +%w) eq 1]
then
tar czf $wwwfile /var/www
fi

#以下为FTP上传
#-i参数取消询问,实现自动化
#-n参数未查
ftp -ni << EOF
open $ftpaddr
user $ftpuser $ftppasswd
bin
mkdir $currentday
cd $currentday
mput $dbfile $dbdump $wwwfile
bye
EOF

#程序结束,给出返回值
exit $?


利用cron来实现计划任务操作。
在/etc/crontab中添加一行

30 4 * * * /the/path/to/the/shellscript.sh

第1列分钟1~59
第2列小时1~23(0表示子夜)
第3列日1~31
第4列月1~12
第5列星期0~6(0表示星期天)
第6列要运行的命令
上面的例子表示每天凌晨4:30执行脚本shellscript.sh.

编辑完crontab之后需要重启cron服务
sudo /etc/init.d/cron restart


只是简单的hack了一些代码,不过可以看出Linux作为服务器来说管理是很方便的。

Apr 24, 2009

期中考试周结束了。。。

下午考完复变,终于算是可以松口气了,这周考的两门都是上半学期基本翘掉的,马虎不得~

贴片老舍先生的文字,这个家伙也很好玩儿的嘛。


考而不死是为神

老舍

考试制度是一切制度里最好的,它能把人支使得不象人了,而把脑子严格的分成若干小块块。一块装历史,一块装化学,一块……

比如早半天考代数,下午考历史,在午饭的前后你得把脑子放在两个抽屉里,中间连一点缝子也没有才行。设若你把X+Y和一八二八弄到一处,或者找唐朝的指数,你的分数恐怕是要在二十上下。你要晓得,状元得来个一百分呀。得这么着:上午,你的一切得是代数,仿佛连你是黄帝的子孙,和姓字名谁,全根本不晓得。你就象刚由方程式里钻出来,全身的血脉都是X和Y。赶到刚一交卷,你立刻成了历史,向来没听说过代数是什么。亚力山大,秦始皇等就是你的爱人,连他们的生日是某年某月某时都知道。代数与历史千万别联宗,也别默想二者的有无关系,你是赴考呀,赴考的期间你别自居为人,你是个会吐代数,吐历史的机器。

这样考下去,你把各样功课都吐个不大离,好了,你可以现原形了;睡上一天一夜,醒来一切茫然,代数历史化学诸般武艺通通忘掉,你这才想起“妹妹我爱你”。这是种蛇脱皮的工作,旧皮脱尽才能自由;不然,你这条蛇不曾得到文凭,就是你爱妹妹,妹妹也不爱你,准的。

最难的是考作文。在化学与物理中间,忽然叫你“人生于世”。你的脑子本来已分成若干小块,分得四四方方,清清楚楚,忽然来了个没有准地方的东西,东扑扑个空,西扑扑个空,除了出汗没有合适的办法。你的心已冷两三天,忽然叫你拿出情绪作用,要痛快淋漓,慷慨激昂,假如题目是“爱国论”,或“天下兴亡匹夫有责”;你的心要是不跳吧,笔下便无血无泪;跳吧,下午还考物理呢。把定律们都跳出去,或是跳个乱七八糟,爱国是爱了,而定律一乱则没有人替你整理,怎办?幸而不是爱国论,是山中消夏记,心无须跳了。可是,得有诗意呀。仿佛考完代数你更文雅了似的!假如你能逃出这一关去,你便大有希望了,够分不够的,反正你死不了了。被“人生于世”憋死,不是什么稀罕的事。

说回来,考试制度还是最好的制度。被考死的自然无须用提。假若考而不死,你放胆活下去吧,这已明明告诉你,你是十世童男转身。


很久没读文章了,光看王小峰这种人的博客,人也越来越低俗了。。。

Apr 20, 2009

那个敢有MIT狂?!


貌似是去年迎新晚会上的歌(原地址),开始没觉得啥,去翻了一下歌词,哈哈,看到了Engineer的狂傲。呵呵,谁说Engineer就一定板着脸光知道干活儿去了,这帮人鬼点子一点不少。把歌词抄过来瞅瞅吧~

The Engineers' Drinking Song
(We Are The Engineers)


Chorus:
We are, we are, we are, we are, we are the Engineers
We can, we can, we can, we can, demolish forty beers
Drink rum, drink rum, drink rum all day, and come along with us
'Cause we don't give a damn for any old man who don't give a damn for us!

A maiden and an Engineer were sitting in the park
The Engineer was working on some research after dark
His scientific method was a marvel to observe
While his right hand held the figures, his left hand traced the curves
(Chorus)

Princeton's run by Wellesley, and Wellesley's run by Yale
And Yale is run by Vassar, and Vassar's run by tail
Harvard's run by stiff pricks, the kind you raise by hand
But M.I.T. is run by Engineers, the finest in the land
(Chorus)

MIT was MIT when Harvard was a pup
And MIT will be MIT when Harvard's time is up
And any Harvard Son of a Bitch who thinks he's in our class
Can pucker up his rosy lips and kiss the Beaver's ass
(Chorus)

A Harvard lad in robes was clad and set to graduate.
A pompous gleaming spectacle he was upon that date.
But not a quarter hour after he got his degree,
he was serving fries to engineers from good old MIT!
(Chorus)

An MIT surveyor once found the gates of Hell
He looked the devil in the eye, and said "You're looking well"
The devil looked right back at him, and said "Why visit me -
You've been through Hell already; you went to MIT!"
(Chorus)

Rapunzel let her hair down for two suitors down below,
So one of them could grab a hold and give the old heave-ho
The prince began to climb at once, but soon came out the worst,
For the Engineer rode up a lift, and reached Rapunzel first.
(Chorus)

3.141 is pi and 2.7's e.
The root of -1 is i the speed of light is c.
And I can rattle off these numbers 'til infinity,
But the only thing that's constant is the work at MIT!

We are, we are, we are, we are, we are the Engineers
We can, we can, we can, we can, demolish forty beers
Drink rum, drink rum, drink rum all day, and come along with us
'Cause we don't give a damn for any old man who don't give a damn for us!

加粗部分是在视频中唱到的,有一段那个男生的独唱还是没听出来。。。

PS: 顺便可以背几个单词^^
demolish: 毁坏,破坏
rum: 朗(兰)姆酒
maiden: 年轻未婚女子,少女
marvel: 奇迹,惊叹
Princeton: 普林斯顿大学
Wellesley: 韦尔斯大学
Yale: 耶鲁大学
Vassar: 瓦萨大学
stiff: 僵硬的,不灵活的
prick: 刺,竖起,呃,有另外的意思。。。
pup: 小狗(puppy)
pucker up: 使缩拢,撅起嘴来
beaver: 海狸,工作勤奋的人(显然不是此意吧)
lad: 小伙子
robe: 学士服
pompous: 傲慢的,自大的
spectacle: 大的场面,景象
fries: 炸薯条
surveyor: 测量员
Rapunzel: 长发公主
suitor: 请愿者,求婚者
heave-ho: 拒绝,开除
rattle off: 飞快的说出,一口气说出