Monthly Archive for February, 2009

寒假总结

半个月没写日志,博客已经荒草丛生,眼看悠长的40天寒假就快结束,今晚趁回学校之前先总结一下。

既然说到博客,首先给大家推荐两个插件: AkismetSome Chinese Please 。 Akismet 想必用 WordPress 的都很熟悉了,全球用户共同打造的 spam 库能把多数垃圾评论都挡在评论列表外面;要重点介绍的 Some Chinese Please 是一款专门拦截英文 spam 的插件,如果评论内容不包含汉字就无法发表,很适合中文 blogger 们使用。这两者加起来配合的效果很不错,我的日志数不太多,最近很长一段时间内都没什么漏网 spam 。没有用上的赶快安装吧。

放假的时候没有带课本回家,基本上就没看什么书,只在手机上看完了《一九八四》,堪称最著名的政治讽喻小说,“反乌托邦三部曲”之最,不得不说书中很多现象在伟大的天朝的确存在,只是没那么夸张罢了。没看的自己去看,“Big Brother Is Watching You”。

整个寒假大部分时间都宅在家里,别的方面的成果没什么,东西还是下了不少的,包括:a. 截至目前所有的 MSDN WebCast (讲义+视频+代码+Q&A),感谢 iReaper ,不错的软件;b. 设计套件 Adobe CS4 Master Collection 英文版,目前还未安装,估计大师系列一时不会发布中文版,所以看见一个小点的种子就下载了;c. 近80G的无损音乐,同时协助的还有室友ZW和ZT,开学后互相对拷;d. 另外还包括 YYeTs 这段时间发布的一些 HR-HDTV 电影

本来立春之后天气已经相当暖和,都已经不用穿厚外套了,没想到最近又来了个倒春寒,又断断续续下了几天雨,这两天才刚刚停,不过好像明天又要开始了,希望去早上学校的时候别下。

iPod shuffle 已入手,选择了经典的银色,很小很便携,俺向伪 Geek 男又迈进了一步。另外要推荐一下,foobar2000 的 iPod manager (foo_dop) 这个插件很不错,本人已经告别还没用多久的龟速 iTunes 了。

PC 系统升级到了 Windows 7 Build 7022,升级安装耗时真够久的,特别是在已经安装过很多东西之后。由于一些原因,本来是准备近期重装一次的,有消息说 RC 版就快来了,再等等吧。

加入 YYeTs 字幕组有段时间了,到目前为止也参与翻译制作了不少字幕,包括:两集 Crusoe(鲁宾逊漂流记)、三集 Kyle XY(天赐)、三集 American Idol(美国偶像)、The 51st Annual Grammy Awards(第五十一届格莱美颁奖典礼)。目前算是常驻在前面提到的三个组,不过我自己倒是对美剧热情不再那么高了,只准备把已经看过的跟完,所以以后打算转到电影组去。下一个任务是23号开学当天直播的 The 81st Annual Academy Awards(第81届奥斯卡颁奖典礼)。

列举一下最近看过的电影(2009-02-06之后,按时间顺序):Little Miss Sunshine(阳光小美女)Donnie Darko(死亡幻觉)Match Point(赛末点)Atonement(赎罪)Love Actually(真爱至上)猫の恩返し(猫的报恩)Persepolis(我在伊朗长大)The Simpsons Movie(辛普森一家)

其他闲言碎语就懒得敲了,详见 Twitter 吧。

写完,关机,装箱。

冬天旧事

立春,冬天过去了。

最近很少在博客上写自己的生活,反而有点往技术类型发展的趋向,流水帐和一些分享的信息都发在了 Twitter 上,今天稍微总结一下。

这个冬天武汉的唯一的一场雪是在1月5日,可惜没有下多大,也就没有雪景了,但是整个冬天还是够冷的,我的手、脚、耳全冻了,只能怪自己不会保护了,好在天气一天天变暖,都逐渐好了。

放假后,Kyle XY S03 回归,我也在这之后不久加入了 YYeTs 的美剧字幕组,目前也已经加入了 Kyle XY 的翻译组。不幸的是,就在前几天,ABC 宣布 本剧被砍,S03 将是最后一季,而 S03E10 将是最后一集。而 Prison Break 也将于本季(S04)完结,我一直在追的美剧就只剩下 Heroes 了。

放假之前的一段时间都忙碌于期末考试的备考中,放假没多久成绩也都全部出来了,基本上还行,C# 比较高,英语继续退步了。话说已经形成了成熟产业链的 CET-4 的结果什么时候能出呢,估计要到开学之后了。

放假之后在家里就继续宅起来了,除了拜年和一次小学同学聚会之外就基本没出过门。坐在电脑前,QQ、MLM、GTalk 三开,FlashFXP、eMule Xtreme、µTorrent 三开,然后就开着 Firefox 游走于 Google ReaderTwitter豆瓣FriendFeedYYeTsVeryCD……

自己 PC 的系统换成了 Windows 7 ,由于有一年左右的 Vista 使用经验,Win 7 用起来也很顺手。它不过是保留了 Vista 的优点而改进了缺点,变得更加成熟。当然,Vista 本身已经比较优秀,只是使用者大多被舆论导向影响,或是由于自身机器配置原因,才会认为 Vista 是失败的,个人认为 Vista 公关失败占多半原因,在它基础上改进的 Win 7 一露脸便被媒体们捧上了天,而那些顽固的 XP 使用者们到头来还是会换用 Win 7。所以,一如 95(4.0)之后的 98(4.1),2000(5.0)之后的 XP(5.1) ,Vista(6.0)之后的 Win 7(6.1)也注定会成为一个经典的 Windows 系统。另外,由于自己的专业发展方向是 .NET ,估计以后大部分时间都会在 Windows 下,所以 Linux 暂时不会再使用了。

接着说前面提到的小学同学聚会,初七下午到了同学家,来的九个人多数都是住在附近的,这次聚会的过程基本上可以归纳为:聊天 - 杀人 - 在家火锅 - 放孔明灯 - 压空旷的马路&聊天 - 烧烤&杀人 - 压更空旷的马路&聊天 - 回家。其中最主要的活动就是玩杀人,话说我大学的同学们会玩的比较少,平时基本没玩过,顶多是看着别人玩,所以这次这次玩的十分痛快,特别是后来那次连着扮演杀手,一刀一警,一票一警。

最近看过的一些电影(2009-01-01之后,按时间顺序):海角七号Eternal Sunshine of the Spotless Mind(美丽心灵的永恒阳光)非诚勿扰Banlieue 13(暴力街区)The Machinist(机械师)Le Scaphandre et le papillon(潜水钟与蝴蝶)In Bruges(在布鲁日)Gattaca(千钧一发)Burn After Reading(阅后即焚)Lock, Stock and Two Smoking Barrels(两杆大烟枪)Million Dollar Baby(百万宝贝)Unforgiven(不可饶恕)American History X(野兽良民)Finding Nemo(寻找尼莫)Good Will Hunting(心灵捕手)。以上电影类型不一,大部分都很不错,推荐一看。

立春意味着正式进入了牛年,再次祝大家新春快乐!

C#的复数类

一个简单的 C# 复数类,可以实现四则运算。

ComplexNumber.cs 写出运算方法,Test.cs 将之实例化并调用。

代码如下:

ComplexNumber.cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ComplexNumber
{
    class ComplexNumber
    {
        private double real;
        private double imaginary;
 
        public ComplexNumber() { }
        public ComplexNumber(double r, double i)
        {
            real = r; imaginary = i;
        }
 
        public void PrintInfo(ComplexNumber cn)
        {
            if (cn.imaginary > 0)
                Console.WriteLine(cn.real + "+" + cn.imaginary + "i");
            else
                Console.WriteLine(cn.real + "" + cn.imaginary + "i");
        }
 
        public ComplexNumber Add(ComplexNumber c1, ComplexNumber c2)
        {
            ComplexNumber res = new ComplexNumber();
            res.real = c1.real + c2.real;
            res.imaginary = c1.imaginary + c2.imaginary;
            return res;
        }
 
        public ComplexNumber Subtration(ComplexNumber c1, ComplexNumber c2)
        {
            ComplexNumber res = new ComplexNumber();
            res.real = c1.real - c2.real;
            res.imaginary = c1.imaginary - c2.imaginary;
            return res;
        }
 
        public ComplexNumber Multiply(ComplexNumber c1, ComplexNumber c2)
        {
            ComplexNumber res = new ComplexNumber();
            res.real = c1.real * c2.real - c1.imaginary * c2.imaginary;
            res.imaginary = c1.real * c2.imaginary + c1.imaginary * c2.real;
            return res;
        }
 
        public ComplexNumber Divide(ComplexNumber c1, ComplexNumber c2)
        {
            ComplexNumber res = new ComplexNumber();
            double temp = c2.real * c2.real + c2.imaginary * c2.imaginary;
            res.real = (c1.real * c2.real + c1.imaginary * c2.imaginary) / temp;
            res.imaginary = (c1.imaginary * c2.real - c1.real * c2.imaginary) / temp;
            return res;
        }
    }
}

Test.cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ComplexNumber
{
    class Test
    {
        static void Main(string[] args)
        {
            ComplexNumber n1 = new ComplexNumber(1.0, 3.0);
            n1.PrintInfo(n1);
            ComplexNumber n2 = new ComplexNumber(2.0, 4.0);
            n2.PrintInfo(n2);
 
            ComplexNumber n3 = new ComplexNumber();
            n3 = n3.Add(n1, n2);
            Console.WriteLine("Result of Add:");
            n3.PrintInfo(n3);
 
            ComplexNumber n4 = new ComplexNumber();
            n4 = n4.Subtration(n1, n2);
            Console.WriteLine("Result of Subtration:");
            n4.PrintInfo(n4);
 
            ComplexNumber n5 = new ComplexNumber();
            n5 = n5.Multiply(n1, n2);
            Console.WriteLine("Result of Multiply:");
            n5.PrintInfo(n5);
 
            ComplexNumber n6 = new ComplexNumber();
            n6 = n6.Divide(n1, n2);
            Console.WriteLine("Result of Divide:");
            n6.PrintInfo(n6);
        }
    }
}