半年就这么过去了,Ubuntu新版如期而至。
新的启动画面、软件中心、Ubuntu One、Gnome 2.28、Firefox 3.5,我们能看到的好像就是这些。然而,9.10的进步是远远不止这些的。
更好的使用感受。作为Linux for human beings,Ubuntu在每一个细节上都有很大的提高——虽然还不完美。
我从06年开始接触Ubuntu,现在已经有三个年头。每一个新版的发布,都是如此令人激动。这三年下来,Ubuntu的进步绝对是巨大的。6.06,我们甚至用不到全中文的Ubuntu;7.04,我们还要为挂载NTFS分区劳神、还要为安装驱动苦恼;7.10,广大用户可以直接开启Compiz Fusion带来的神奇特效;8.04,我们感受到了一个健壮、稳定的Ubuntu;8.10,我们把它装在了小小的USB盘里启动;9.04,我们看到了令人心情愉快的notify……
这三年来,Ubuntu从一个初出茅庐的发行版变成了现在Linux桌面的代名词。这时,再让我们看看所谓的“视窗”系统。8年后,人们还在用着01年雷德蒙德的产物。这从一个侧面反映出所谓的第七代系统较Xp而言没有多少提高——它似乎增加了一个新的任务栏,会使人们需要更多的操作才能打开窗口。若干年前,Linux还是多么丑陋,以至于没有桌面用户会去用它。而如今,满眼都是“Ubuntu 9.10 vs. Windows 7”。当然,Ubuntu在桌面领域距离Windows、Mac差距仍然不小,但先不论胜负,这种比较已经说明问题了。Ubuntu每个版本都注重用户真正的体验,而Windows,是在吃老本。几年之后的Ubuntu将不可小视。
看看这个新特性页面:http://www.ubuntu.com/products/whatisubuntu/910features,制作得十分精美。不禁感叹,Linux再也不是Hacker和Geek专用的系统,Ubuntu把它带给了全人类。
今天,初赛的成绩出来了,我们参加的18个人过去了17个(其中8人参加集训、未参加集训的有3个高三)。只有黄轶唯悲情了。于是,明天开始,集训将减少为7人。
还有20多天(已经不是一个月了),我的终极目标是350/400,如今已经安全地迈过了第一道坎。
昨晚参加了Curimit神牛的模拟赛(难度“略”高于NOIP)。刚开始一看,先被吓到了。后来做着做着觉着还可以,最后竟然做出来3道。于是昨晚自我感觉良好。今天上午一看,我一下蒙了,只有可怜的30/400。一道题得了10分,另一道20。
USACO的题倒是刷的挺顺利,现在已经2.3了。
黄轶唯走了,倒也清静了。机房将不再是游戏厅,CS、韦诺、视频将会消失。
再见,黄轶唯。
初赛的成绩一直还没有下来,不过我的58分没问题。
这几天一直在刷USACO的题,现在一直在第一章徘徊。虽然说第一章真的很水,不过要把程序写出来,也没有那么简单。我曾经写出过极其恶心的代码,比如(你得拖底下的滚动条看):
...
for(m[1] = 0; m[1] <= 3; m[1]++)
{
for(m[2] = 0; m[2] <= 3; m[2]++)
{
for(m[3] = 0; m[3] <= 3; m[3]++)
{
for(m[4] = 0; m[4] <= 3; m[4]++)
{
for(m[5] = 0; m[5] <= 3; m[5]++)
{
for(m[6] = 0; m[6] <= 3; m[6]++)
{
for(m[7] = 0; m[7] <= 3; m[7]++)
{
for(m[8] = 0; m[8] <= 3; m[8]++)
{
for(m[9] = 0; m[9] <= 3; m[9]++)
{
if(is_finish(cur_clocks))
{
cur_len = 0;
for(i = 1; i <= 9; i++)
cur_len += m[i];
if(cur_len == shortest_len)
{
count++;
j = 0;
for(i = 1; i <= 9; i++)
{
if(m[i] > 0)
{
for(k = 1; k <= m[i]; k++)
{
j++;
moves[count][j] = i;
}
}
}
}
else if(cur_len < shortest_len)
{
count = 1;
shortest_len = cur_len;
j = 0;
for(i = 1; i <= 9; i++)
{
if(m[i] > 0)
{
for(k = 1; k <= m[i]; k++)
{
j++;
moves[count][j] = i;
}
}
}
}
}
move(cur_clocks, 9);
}
move(cur_clocks, 8);
}
move(cur_clocks, 7);
}
move(cur_clocks, 6);
}
move(cur_clocks, 5);
}
move(cur_clocks, 4);
}
move(cur_clocks, 3);
}
move(cur_clocks, 2);
}
move(cur_clocks, 1);
}
...
这实在是太糙了……不过USACO数据弱,竟然过了。于是安慰自己,这种题谈不上什么高级的算法,暴力搜索就好,K.I.S.S.嘛,好吧。至少针对水题,用点水方法也不是不行。
Wave已经用上了,可是,没有人跟我一块Wave……于是什么也感受不出来。更杯具的是,咱现在还没法发邀请。嗯,那就先放放吧,等以后大家都用上应该就能感受到威力了。
今天打开Synaptic,瞎翻,发现GNOME Shell就在源里。一阵欣喜,然后安装。现在正在体验,感觉不错,稳定性也挺好。只是因为是早期版本,好多功能还有待完善。但这种形式我个人认为还是不错的。
这几天USACO保持一天一个Section的进度,后天就能昂首挺进第二章了。
水果新出了鼠标,如果未来相关的Linux驱动完善的话,可考虑入手一。
昨天的初赛弄得我十分不爽。一些很烧饼的题做糙了。一考完,我们几个就悲情地在初中楼2层的楼道电脑敲程序,果然残了。杨进基正在上面吼。几个人对了一下答案,我和胡颖健差不多悲情,而黄轶唯则是已经释然了,他后60分得了两分。后来,我们借C(S)消愁。再后来,借C(语言)消愁愁更愁。
于是昨天整下午+晚上十分不爽。网上找了一份标准答案,看了看,得55分。杯具了。昨晚一个人寂寞地在宿舍,把Geany翻完了,今天给作者发过去。另外,Ubuntu上放Keynote导出的QuickTime文件有戏了。今天Gnome-Mplayer的作者管我要一个文件,他想试试。嗯,挺好。
今天,得到可靠消息,20多分就能过初赛。转悲为喜。
于是,我将继续一个月的战斗,为…(你猜?)而战斗。
虽然还有一些时间,但我已经迫不及待上考场了。初赛说起来就是这么简单。但,往往简单的东西也是致命的。初赛,只能过,不能被虐。没有退路。
所以,再看看往年的题,再看看基本的算法,各种排序、各种查找、各种各种。明天秒初赛。
在N天的集训后,终于回家了,躺在床上听last.fm,真爽。过了初赛后,准备淘个耳机。
今天发现GNOME里面有一个叫做Hamster的好东西,应该说很适合我。它的中文名叫“时间追踪器”,可以追踪你每一分钟在做什么,玩游戏花了多少时间等等。(当然它不是自动的,需要你手工输入)这样,每天晚上我可以清晰地盘点一下一天都干了什么。

今天看了些初赛题,还看了看KMP算法。说起KMP,就不得不提到Knuth这个我十分钦佩的人。今天就不说他了,以后有时间再说。KMP算法略难理解,于是今天下午我在机房给大家讲。说老实话,这个要讲出来确实不好讲,于是,我几乎是:“这个……恩,好像是这样的……哦,对不起,刚才说错了……”本来就麻烦的东西被我这么一折腾,大家都糊涂了。在此,我诚恳地向大家道歉。不过索性最后还是让大多数人明白了。为了某些管我要程序的人,我也贴贴代码。
#include <stdio.h>
#define MAX_STR_LEN 101
#define MAX_PATTERN_LEN 51
char str[MAX_STR_LEN];
char pattern[MAX_PATTERN_LEN];
int next[MAX_PATTERN_LEN];
void genNext();
int findPos();
int main()
{
char ch;
/* 输入主串和待匹配字符串 */
printf("Enter string: ");
str[0] = 0; /* str[0]存储字符串长度 */
while((ch = getchar()) != '\n')
{
str[0]++;
str[str[0]] = ch;
}
printf("Enter pattern: ");
pattern[0] = 0; /* pattern[0]存储字符串长度 */
while((ch = getchar()) != '\n')
{
pattern[0]++;
pattern[pattern[0]] = ch;
}
genNext(); /* 生成待匹配字符串的next数组 */
int pos;
pos = findPos(); /* 开始匹配 */
if(pos == 0)
printf("Substr not found.\n"); /* 未找到 */
else
printf("Position: %d\n", pos);
return 0;
}
void genNext()
{
int i = 1, j = 0;
next[1] = next[0] = 0;
while(i < pattern[0])
{
if(j == 0 || pattern[i] == pattern[j]) {
i++; j++; next[i] = j; }
else
j = next[j];
}
}
int findPos()
{
int i = 1, j = 1;
while(i <= str[0] && j <= pattern[0])
{
if(j == 0 || str[i] == pattern[j]) {
i++; j++; }
else
j = next[j];
}
if(j > pattern[0])
return i - pattern[0];
else
return 0;
}
今天Blog的评论达到100条(不含Spam),我决定开瓶鲜橙多庆祝一下。在此感谢所有支持我的Blog的人。
另:最近玩 Gnome方块 有点上瘾,得适可而止。/* 里面有一个阴冷的Bastard Mode,害死我了 */
初赛就要到来了,尚余2.5天准备时间。明天+后天+1/2大后天。周五下午和周六上午终于可以回家了,休息休息。紧接着就是下午的初赛,时间是两个小时,地点就在咱学校。
初赛的满分是100分,我做了前几年的,基本能拿70-75分。看了看各省的分数线,基本在60-65。所以,这两天半再好好看看,初赛还是可以轻松秒掉的。
给大家分享一道2006年初赛题(不定项选择题):
20. 在下列关于青少年信息学竞赛的说法中,你赞成的是()
A. 举行信息学竞赛的目的,是为了带动广大青少年学科学、爱科学,为造就一大批优秀的计算机科学 与技术人才奠定良好的基础
B. 如果竞赛优胜者不能直接保送上大学,我今后就不再参与这项活动了
C. 准备竞赛无非要靠题海战术,为了取得好成绩,就得拼时间、拼体力
D. 为了取得好成绩,不光要看智力因素,还要看非智力因素。优秀选手应该有坚韧不拔的意志,有 严谨求实的作风,既要努力奋进,又要胜不骄败不馁
这道题的参考答案处赫然写着:本题不回答为0分,答题一律满分。
初赛目前对我来说最头疼的是问题求解,一共两题,占10分。所以我得考虑这两道题都做不对的情况,毕竟人的人品有时是难以预料的。
悲剧。准备初赛的时间已经过去近一半。
今天晚上四个人吃了两大桶KFC的大桶,现在惟一的感觉就是吃饱了撑的。外加头晕。头晕到没心情看题了,只好打打韦诺。我和黄轶唯,随机打随机。开局一看,我是一红袍法,再一看,人族。hyw是不死。于是我开始各种虐人,Wesnoth我还是很有信心的。于是第28回合黄轶唯老官被圈,被迫缴械。本盘亮点在于第二个白天利用的很好,好到损失1杀死5。最终的数据也很华丽——损失13干掉26,都没有升级。老官红袍起到了极大的作用。头很晕,打韦诺水平没有下降,说明脑子还能用,于是再看看题。
初赛的题说是简单,可是有变态的补充程序题。关键在于,根本不知道出题的脑子里在想什么,你要模拟他的想法。这也许比自己写程序都麻烦。不过还好这类题并不缺德,一般都是常见的方法,还是有规可循的。
今天还有0.2/8,就是10点以后的时间。我每天的这段时间头脑都是相当清醒的。昨天晚上和猩在玩Dvorak键盘。猩已经很熟练了,慢慢地敲出了“http://en.wikipedia.org/wiki/Dvorak_layout”。在Ubuntu里换了布局要换回去,然后让输密码——密码总是输不对。猩说,你丫要用Dvorak!于是对着布局图把密码敲好。我原来对Dvorak还是有误区,认为打中文没帮助,猩告诉我有帮助。好吧,但我坚信这玩意对五笔绝对没有,虽然我用拼音。三年前我妈死活要让我学五笔,我没有坚持下去。

Ubuntu下的Dvorak Layout
昨天睡的其实并不晚,但是今天起晚了——八点开始,我8:40才被电话吵醒。主要是今天没别的竞赛课,猩等人都是蹭宿舍不想回家的。
今天的0.2可能用不上了,因为现在始终感觉头晕。虽然应该是因为吃多了(三块原味鸡+三块辣鸡+各种面包+各种可乐),但我怕明天起来状态还不好,那就真杯具了。
明天要有时间看看排列组合,这个小学奥数的东西。正常上课的同志们,现在好像也在学这些玩意。
明天,一定要让hyw知道图灵不是德国的。另外今天有一件奇怪的事,胡颖健的机子已经关掉,电池都拔了,然后拔出鼠标,然后电脑发出了Windows那弹出设备的声音“登等”。灵异之极。
今天已是集训第三天。周六就是初赛了,就在学校考。
初赛都是一些令人泄气却又不得不重视的题。有一些是计算机知识,能扯到Linux,能扯到图灵,还能扯到CPU。总之就是跟会考那些题类似——只是不能像会考那样背答案。第二种是一些奇怪的程序,让你看看输出是啥玩意。个人强烈建议使用搞怪C语言大赛的获奖作品。还有就是补充程序,这个难度稍微大一点。
2.5/8啥意思?准备初赛的时间一共8天,已过两天半。虽说初赛很简单,但如果到时候拉稀下软蛋就麻烦了,所以这六天还是不能松懈。
我发现不松懈的最好办法就是装Ubuntu。我一贯是比较爱玩的,但在班上似乎较为用功。
“切盘CS,2v2,柳,就差你了!”
“不玩不玩!没有!”
明白了吧。所以我发现我装Ubuntu虽然花了点时间,可却是明智的。另外心情会好不少。Windows在这个本本上表现太差了,亮度没法调、无线网不支持WPA2;而Ubuntu只需按几个键装上盘里带的闭源网卡驱动就万事大吉。
昨晚魏运华打来电话,先骂我一顿——前天我10:45才回的宿舍。然后还是对我进行了鼓励。昨天上午魏运华要加我飞信,把我冷到了……这两天一直穿着Google的Tee,感觉不错,感谢谷奥。开复的书周末看了一点,现在也没空看了,现在连周末都没有了。今天是Wpliu的生日,都没法回家陪他。