新鲜、有趣,互联生活。令狐葱。

2006/12/29

验证18位身份证号码算法(C#)

说明
 
今天偶然间在网上看到关于18位身份证各位的含义以及计算方法,于是上网找到了一个验证18位身份证号码的C#程序片断,经测试,实现的效果很好。自己用手计算了一下,这才发现,原来第18位是这样计算出来的,这样的话似乎这一位就是多余的了啊,不是么?
 
背景知识
 
18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999《公民身份号码》中做了明确的规定。 GB11643-1999《公民身份号码》为GB11643-1989《社会保障号码》的修订版,其中指出将原标准名称"社会保障号码"更名为"公民身份号码",另外GB11643-1999《公民身份号码》从实施之日起代替GB11643-1989。GB11643-1999《公民身份号码》主要内容如下:
一、范围
     该标准规定了公民身份号码的编码对象、号码的结构和表现形式,使每个编码对象获得一个唯一的、不变的法定号码。
二、编码对象
     公民身份号码的编码对象是具有中华人民共和国国籍的公民。
三、号码的结构和表示形式
1、号码的结构
    公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。
2、地址码
    表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。
3、出生日期码
    表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日代码之间不用分隔符。
4、顺序码
     表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。
5、校验码
(1)十七位数字本体码加权求和公式
S = Sum(Ai * Wi), i = 0, ... , 16 ,先对前17位数字的权求和
Ai:表示第i位置上的身份证号码数字值
Wi:表示第i位置上的加权因子
Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
(2)计算模
Y = mod(S, 11)
(3)通过模得到对应的校验码
Y: 0 1 2 3 4 5 6 7 8 9 10
校验码: 1 0 X 9 8 7 6 5 4 3 2
四、举例如下:
北京市朝阳区: 11010519491231002X
广东省汕头市: 440524188001010014
 
源代码(C#实现)
private string CheckCidInfo(string cid)
        {
        string [] aCity = new string[] {null, null, null, null, null,

            
null, null, null, null, null , null, "北京", "天津",

            
"河北", "山西", "内蒙古" , null, null, null, null, null ,

            
"辽宁" , "吉林", "黑龙江", null , null, null, null, null,

            
null, null, "上海", "江苏", "浙江", "安徽", "福建" ,
            "江西", "山东", null , null, null, "河南", "湖北", "湖南" ,
            "广东", "广西", "海南" ,null,null, null,"重庆","四川" ,
            "贵州","云南" ,"西藏",null, null,null,null ,null,null,"陕西" ,
            "甘肃", "青海","宁夏","新疆" ,null,null,null ,null,null,
            "台湾",null, null,null,null, null,null,null ,null,null,"香港" ,
            "澳门", null,null,null, null,null,null ,null,null,"国外" };
        double iSum =0;
        
//string info="";
        System.Text.RegularExpressions .Regex rg = new System.Text.RegularExpressions.Regex( @"^\d{17}(\d|x)$");
        System .Text.RegularExpressions.Match mc = rg.Match(cid);
         if(!mc.Success)
        {
            return "" ;
        }

        
cid = cid.ToLower();
        cid = cid .Replace("x","a");
        if(aCity[int .Parse(cid.Substring(0, 2))] == null) {
             return "非法地区";
         }
        try {
            DateTime.Parse(cid.Substring( 6,4) + "-" + cid.Substring(10,2 ) + "-" + cid.Substring(12 ,2));
        } catch {
             return "非法生日";
        }
        for (int i = 17; i >= 0; i--) {

            
iSum +=(System.Math.Pow(2 ,i) % 11 ) * int .Parse(cid[17-i].ToString(),System .Globalization.NumberStyles.HexNumber);
        }
        if(iSum % 11 != 1)
            return ("非法证号");

        return (aCity[int.Parse(cid.Substring (0,2))] + "," + cid.Substring(6, 4) + "-" + cid.Substring( 10,2) + "-" + cid.Substring(12,2 ) + "," + (int. Parse(cid.Substring(16,1 )) % 2 == 1 ? "男" : "女"));

         }

 

C#反射示例说明

程序集包含模块,而模块包含类型,类型又包含成员。反射则提供了封装程序集、模块和类型的对象。您可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性。反射通常具有以下用途:

  • 使用 Assembly 定义和加载程序集,加载在程序集清单中列出的模块,以及从此程序集中查找类型并创建该类型的实例。

  • 使用 Module 了解如下的类似信息:包含模块的程序集以及模块中的类等。您还可以获取在模块上定义的所有全局方法或其他特定的非全局方法。

  • 使用 ConstructorInfo 了解以下信息:构造函数的名称、参数、访问修饰符(如 public 或 private)和实现详细信息(如 abstract 或 virtual)等。使用 Type 的 GetConstructors 或 GetConstructor 方法来调用特定的构造函数。

  • 使用 MethodInfo 了解以下信息:方法的名称、返回类型、参数、访问修饰符(如 public 或 private)和实现详细信息(如 abstract 或 virtual)等。使用 Type 的 GetMethods 或 GetMethod 方法来调用特定的方法。

  • 使用 FieldInfo 了解以下信息:字段的名称、访问修饰符(如 public 或 private)和实现详细信息(如 static)等;并获取或设置字段值。

  • 使用 EventInfo 来了解如下的类似信息:事件的名称、事件处理程序数据类型、自定义属性、声明类型和反射类型等;并添加或移除事件处理程序。

  • 使用 PropertyInfo 来了解如下的类似信息:属性的名称、数据类型、声明类型、反射类型和只读或可写状态等;并获取或设置属性值。

  • 使用 ParameterInfo 来了解如下的类似信息:参数的名称、数据类型、参数是输入参数还是输出参数,以及参数在方法签名中的位置等。

  • 当您在一个应用程序域的仅反射上下文中工作时,请使用 CustomAttributeData 来了解有关自定义属性的信息。使用 CustomAttributeData,您不必创建属性的实例就可以检查它们。[FROM:MSDN]

通过一个示例来简要说明:
 
using System;
using System.Reflection;

namespace testReflection
{
    public delegate void TestDelegate(string info);
    class Program
    {
        static void Main(string[] args)
        {
            
//从Dll中加载
             //Assembly ass = Assembly.LoadFile(@"TestReflect.dll");
             //Type myType = ass.GetType("testReflection.Person");
             //object aPerson = ass.CreateInstance("Person");

             //取得类型
            Type myType = Type.GetType ("testReflection.Person");
            
//构造函数要用到的参数
            object [] constuctParms = new object[] { "Brad Pitt" };
            
//创建实例
            //object TestName = Assembly.GetAssembly(myType).CreateInstance("Person");
            object aPerson = Activator.CreateInstance (myType, constuctParms);

            
//使用MethodInfo 和Invoke 调用方法
            MethodInfo displayInfoMethod = myType.GetMethod ("DisplayInfo");
            displayInfoMethod .Invoke(aPerson, new object[] { "Using Invoke to call Method DisplayInfo()" });

            
//使用InvokeMember 调用方法
            //调用方法的一些标志位
             BindingFlags flag = BindingFlags .InvokeMethod | BindingFlags.Public | BindingFlags.Instance;
            myType.InvokeMember("DisplayInfo", flag, null, aPerson, new object[] { "Using InvokeMethod to call DisplayInfo()" });
            
//如果方法有返回值
             string name = (string)myType.InvokeMember("getName" , flag, null , aPerson, null );
            System.Console.WriteLine( "call getName(), return: " + name );

            
//设置属性值
            myType.InvokeMember("Age" , BindingFlags.SetProperty, null, aPerson, new object[] { 30 });
            
//得到属性值
             int age = (int)myType.InvokeMember( "Age", BindingFlags.GetProperty, null, aPerson, null);
            System.Console .WriteLine("Get the property of Age : " + Convert.ToString(age));

            
//设置字段值
            myType.InvokeMember ("Name", BindingFlags.SetField , null, aPerson , new object[] { "Michal Jodn" });
            
//获取字段值
            string fname = ( string)myType.InvokeMember("Name", BindingFlags.GetField, null , aPerson, null );
            System.Console.WriteLine("Get the Field Value of Name : " + fname);

            myType.InvokeMember("DisplayName", flag, null, aPerson, null);

            
//获得方法集
             MethodInfo[] methods = myType.GetMethods();
            foreach (MethodInfo m in methods) {
                System.Console.WriteLine(m.Name);
            }
            
//同样还有:GetFiedls()、GetProperties()、GetEvents()等方法

            //使用Delegate
            //此方法是静态的,所以必须提供委托类型。
            TestDelegate dg = (TestDelegate)Delegate.CreateDelegate( typeof(testReflection.TestDelegate), aPerson, "DisplayInfo");
            dg ("Test Delegate by call DisplayInfo()");
            
            
            
//获得解决方案的所有Assembly
            Assembly[] AX = AppDomain.CurrentDomain.GetAssemblies();
            
//遍历显示每个Assembly的名字
            foreach (object var in AX ) {
                Console.WriteLine ("Assembly的名字:"+var.ToString());
               
            
}
            
//使用一个已知的Assembly名称,来创建一个Assembly
             //通过CodeBase属性显示最初指定的程序集的位置
            Console.WriteLine ("最初指定的程序集TestReflection的位置:" + Assembly.Load("TestReflection").CodeBase);

            System.Console.ReadLine();

         }
    }
   

    
public class Person
    {
        public string Name;
        private int _Age;
        public int Age
        {
            get
            {
                 return _Age;
             }
            set
            {
                _Age = value;
            }
        }

        public Person (string Name)
         {
            this.Name = Name;
        }
        public void DisplayInfo(string info)
        {
            System.Console.WriteLine(info );
            System.Console.WriteLine( "called sucessfully!");
        }
         public void DisplayName()
        {
            System .Console.WriteLine(Name);
        }
        public string getName()
        {
             return Name;
        }

    }
}
说明:

使用反射动态调用类成员,需要Type类的一个方法:InvokeMember。对该方法的声明如下:

public object InvokeMember(
   string name,
   BindingFlags invokeAttr,
   Binder binder,
   object target,
   object[] args
);

参数

name
String,它包含要调用的构造函数、方法、属性或字段成员的名称。
- 或 -
空字符串 (""),表示调用默认成员。

invokeAttr
一个位屏蔽,由一个或多个指定搜索执行方式的 BindingFlags 组成。访问可以是 BindingFlags 之一,如 Public、NonPublic、Private、InvokeMethod 和 GetField 等。不需要指定查找类型。如果省略查找类型,则将应用 BindingFlags.Public | BindingFlags.Instance。

binder
一个 Binder 对象,该对象定义一组属性并启用绑定,而绑定可能涉及选择重载方法、强制参数类型和通过反射调用成员。
- 或 -
若为空引用(Visual Basic 中为 Nothing),则使用 DefaultBinder。

target
在其上调用指定成员的 Object。

args
包含传递给要调用的成员的参数的数组。 

返回值
表示被调用成员的返回值的 Object。 

下列 BindingFlags 筛选标志可用于定义包含在搜索中的成员:  

为了获取返回值,必须指定 BindingFlags.Instance 或 BindingFlags.Static。
指定 BindingFlags.Public 可在搜索中包含公共成员。
指定 BindingFlags.NonPublic 可在搜索中包含非公共成员(即私有成员和受保护的成员)。
指定 BindingFlags.FlattenHierarchy 可包含层次结构上的静态成员。

下列 BindingFlags 修饰符标志可用于更改搜索的执行方式:
BindingFlags.IgnoreCase,表示忽略 name 的大小写。
BindingFlags.DeclaredOnly,仅搜索 Type 上声明的成员,而不搜索被简单继承的成员。

可以使用下列 BindingFlags 调用标志表示要对成员采取的操作: 
CreateInstance,表示调用构造函数。忽略 name。对其他调用标志无效。
InvokeMethod,表示调用方法,而不调用构造函数或类型初始值设定项。
对 SetField 或 SetProperty 无效。
GetField,表示获取字段值。对 SetField 无效。
SetField,表示设置字段值。对 GetField 无效。
GetProperty,表示获取属性。对 SetProperty 无效。
SetProperty 表示设置属性。对 GetProperty 无效。

2006/12/28

豆瓣上认领blog

在豆瓣上把这个blog也认领回来,呵呵
没娘的孩子,光秃秃的怪可怜的:〉
doubanclaim9410abaa61ec66d3

2006/12/27

“做男人真命苦”的程序描述版

result love(boy, girl )
{
    if( boy.有房() and boy.有车() )
    {
        boy.set(nothing);
        return girl. 嫁给(boy);
    }
     if( girl.愿意等 () )
    {
     while(!(boy.赚钱 > 100,000 and girl.感情 > 8 ) )
    {
        for ( day=1; day <=365; day++)
        {
             if( day == 情人节 )
            if( boy.givegirl(玫瑰) )
                girl.感情++;
            
else
                girl. 感情--;
  
            
if( day == girl.生日 )
             if( boy.givegirl(玫瑰 ) )
            {
                girl.感情++;
            
else
                girl.感情 --;
                boy.拼命赚钱();
            }
        }
         if( boy.有房() and boy.有车() )
        {
            boy.set(nothing);
             return girl.嫁给(boy);
        }
        年龄++;
         girl.感情--;
    }
    return girl. goto( another_boy);
}  

2006/12/26

兰州――没印象

半月兰州,就这样过去了。想说"度日如年",其实并不像想象中的那么严重。感觉是很累,算是第一次出差,基本上还算不错,任务完成的差不多:〉不管是苦是累,但是这段经历还是挺难得的(不过偶可不想再去难得一次),快要回来那天,申磊同学可是激动地一天一夜睡不着觉(准确的说,是有任务:〉夜里跑车从2点跑到7点),冷不丁的就哼起歌曲来了,save my ear!
 
1. 火车
 
小时候,总以为火车是多么了不起的东西,所以莫名的会有一种向往,好像是直到去上大学,才算真正的"梦寐以求"坐上火车。可是谁都不会想到,会有这样的日子,让我不得不在火车上一下子连续待这么长时间。细算了一下,半个月的时间,基本上每天待在火车上的时间是21个小时,hoho,有点恐怖,除了有时吃饭出去外其余就基本在火车上了:〉
 
997251 我们所在的火车可以算是专列了,有个十分响亮的号码,997251,老板说他们以前来的时候叫97251,注意,这里的7读作guai,可以说是进出火车站的通行证。人问哪部分的?答曰97251。畅通无阻。所谓的专列其实就只有一节特制的车厢,由以前的软卧改造而成,睡上去感觉还挺舒服,不过周围充斥着烟味和柴油味。

发电机 姚工说如果这个车没了发电机,那就是废物。此言不虚,要知道,空调取暖、电脑电灯什么的全靠它了。不过有一点很不爽,就是这玩艺的嗓门特别的大,在那边之所以休息的不是很好的原因一个就得益于它了(另一个就是晃晃悠悠,下面再说),基本上每天早晨都是被它从睡梦里拉起来的(偶尔有小申代而为之),虽然极不情愿离开那温暖的被窝,但是想象那么大分贝对耳朵的承受能力实在是个不小的考验,所以也只得作罢,起身穿衣。

晃晃悠悠  在火车上晃那是没得说的,谁没做过火车呢!但是让我特别佩服的一点是,据李工之可靠消息说,我们跑的这条线路是路质量比较差的,也就是最晃的,另外还有一点,就是我们这节车厢本身的结构也注定了它比一般的车厢要晃!晃的平方的效果就是让我们整天感觉脑袋上跟悬了个天使的金圈一样,偶尔有停下来的时候,偶尔有脚着地的时候,也不自觉地自己在哪里摇起来了,这就是所谓的"后遗症"?抑或该叫"职业病"?一直到到了西安,我还继续晃了两天,总算看到天也不悬了,地也不转了,不禁对人间的美好充满了感激。

人  这恐怕是火车的最重要的组成部分了。这节"专列"共有四个人长期工作。李工是主任,算是领导了,不过他是这节车厢里车龄最小的:〉支工(音)则是车龄最大的,在车上呆了30多年了,马师的车龄也有30年余,然后是姚工。车上的人都很有特点,而且分工明确,比如马师是负责饮食之类的,要供是负责电、油等等。另外,你也看到,称呼也简洁明了,"工"应该为"工程师"之简称,"师"则为"师傅"之简称。接触久了,感觉这些人都很不错,待人很真很诚。要说爱好,那就不得不提车上常备的两样东西:酒和麻将。

红星二锅头 好像车上的每个人都比较喜欢喝酒,所以时见夜深人静的时候,几个人坐在那边吃着肘子或者花生米,边细品红星二锅头。酒很便宜,7、8块一瓶,一两容量的杯子一装,其实一人也来不了几杯,不过看上去都挺能喝的。马师三杯酒已下肚,欲退。支工笑曰:酒功废了!依此比来,我等压根就没什么功夫,呵呵。支工此人,据说以前嗜烟如命,后来戒烟从酒,他的解释是:人不能没点爱好。一日,已上床入睡,见支工从家来,手拎一罐花生米,喊马师姚工共饮,可见其爱酒之情。

麻将  车上好像几乎没有什么娱乐用品,麻将算是其中之一了。在跑车的时候,闲着无事做的时候最多,所以不找点消遣,实在不行,这恐怕也是麻将之所以上火车的初衷。据说,李工技术比较高超,不过一直没见他上场。麻将仅为娱乐,所以偶有筹码也以圆角计,可谓是享受过程的典型代表。

电视机   车上的另一件娱乐用品,好像只有一台能用,而且不怎么能收到台。那时正好赶到亚运会,所以偶尔居然可以看到cctv1的亚运会报道,呵呵,几个人看的乐此不疲,即便电视屏幕随着跳水运动员在那里一蹦一蹦的。

2. 定西

未到兰州,先在定西下车。从专业术语上讲,这里应该算是个试验基地了,虽然没有一件厂房,没有一个办公室,但就是那几个模拟隧道的铁架子,据说做出来也花了不少的功夫。

定西土豆  定西土豆据说全国知名。来到之后看到路边大车小车上都装的满满的,并且用草毡裹得严严的,防止冻着,本以为是什么呢,原来就是司空见惯的土豆。"这儿的土豆可不一样了",当地人如此说。后来证明,确实如此,好像里面淀粉的含量比较多,吃上去很是实在。据说就是因为建芬的含量高,所以才没能喝KFC或是麦当劳合作。路边的小饭馆,打出招牌菜,也清一色的统一:红烧土豆、干煸土豆、土豆烧牛肉、土豆炖排骨...少有不一样,就是把土豆两个字改成"洋芋"。洋芋,即土豆,俗称。土豆还叫山脚蛋、马铃薯(学名?)等等,可见好东西都不只有一个名字的。当地人收土豆也很特别,按个头大小价格不同,3两多少钱,4两多少钱,分的清清楚楚,这兴许就叫做"专业"吧。我一直纳闷他们难道会真的一个一个的称过来?想来他们信手一拈,对重量就把握个八九不离十。"唯手熟尔"。

3. 兰州

从定西离开,即到兰州。在兰州待的时间比较长,这句活应该修正一下:在兰州火车站内待的时间比较长。来兰州这些日子,几乎没什么时间出去转,中间下车两天,也在金轮大厦加工程序了,偶有一次,集体外出,去了一趟黄河桥。也算是兰州的代表作了。后来去了一趟兰大,感觉一般,破破烂烂的无甚新奇。一直没有机会去看马师说的水车,据说除了火车站从平凉路走到头到了黄河就是了。历史的遗留物俨然成了一个好景点。兰州有特色的一点算是路名了,大都以甘肃的城市命名,什么皋兰路、平凉路、天水路等等。

火车站  这个地方怎么说都不认不提一下。实验的那8天,每天早晨7点从这里出发,晚上8点左右到这里,所以几乎没什么时间出去,来到这里就是晚上了,出去也没什么好转的。即便出去,也是吃个饭什么的。不过感觉从出站口进出火车站真是个不错的选择,上面说过的通行编号997251几乎都没用上,每次进出基本上没什么人会拦着你,呵呵,在西安估计不行。

牛肉面  在兰州不吃牛肉面那就算白来了,不过我敢说我没白去,因为几乎每天吃牛肉面,至少一顿,呵呵,以至于回西安后三月不想面味(略有夸张)。兰州牛肉面闻名天下这不消说,只是不像"老孙家牛羊肉泡馍"那么门大势大,兰州的牛肉拉面品种其多,马姓牛肉面更具其首。据说正宗的兰州牛肉面传人已经打算拓展市场打出品牌了,现在已经可以在市面上看到牛肉面的快餐包装,类似于方便面:〉在兰州吃牛肉面吃多了就吃出经验来了,有些店的牛肉面就只有面没有牛肉,等多对点肉汤之类,而有些店则是实打实的牛肉+面,看上去很是难得。至于味道么,确实和西安的不一样,也可能是心理作用,呵呵。兰州吃面还有一个习惯,就是加个蛋。几乎每家牛肉面馆都会有茶叶蛋卖。记得刚到定西吃的第一顿饭就是他们工务段食堂的牛肉面,以后就再也没吃到过这么正宗的牛肉面了,汤浓肉多,呵呵,还有加个蛋:〉

黄河桥  不知道是不是兰州的代表作景点,到那里的时候天已经黑透了。200多米的桥横跨黄河,据说是很多年前德国人造的,在最近又在上面增加了铁架加固,由于历史比较长了,所以桥上已经不准机动车辆通行。此桥号称"黄河第一桥",这个第一,兴许就是时间上的第一。夜幕降临,黄河桥上灯火通明,行人来回穿过黄河,看下面水流缓缓,节奏也就慢了下来。在桥上转了一圈,然后去找吃饭的地,竟是极难寻觅。好多店面在8点多已经关门了,心里寻思着兰州人过的倒真是慢节奏,不知比成都如何?

车辆段  算是这次学到的一个新名词。段是个什么概念我现在都没搞清楚,不过车辆段就是专门负责检修火车、安排火车休息的地方。兰州的车辆段还有东西库之分,西库应该是总部了(猜测),不过周遭也是一片荒芜,想吃个饭都找不到地儿。后来经马师指点,直到从后边有一个小的地下通道,过去之后走过一个很深的小巷子,会看到有一条很宽的大街。到了之后居然还看到有家乐福超市。不过就是在这个相对比较繁华的大街上,我和申磊硬是没找到一个卖耳机的地方!至于东库,荒凉还得平方一下。让人惊异的是这儿晚上还要放狗,所以晚上根本不敢出门,在里面就听到外面狗的狂吠,传说这几条狗很是凶猛。想当年警犬在这边集训的时候,看到了这里的本地狗,硬是给吓得尿了裤子!姚工说过一个故事,说以前这里的一个看门人,退休老职工,给姚工看他腿上狗咬的伤,姚工一看,7个牙印。他说,你肯定不只被狗咬过一次。那老人笑开了,说:你还真会看啊!姚工说,那当然,狗牙咬一下就四个印,你腿上能看到的就7个!

网吧  在兰州火车站附近上过一次网,机器配置很烂,不过网速还可以。旁边坐一年轻小伙,在看一新闻网站,边看边叹,最后感觉自己是在受不了了,遂叫来网管。网管过来之后,他指着网页侧边的广告说:你们这儿怎么有这个,看着烦死了,影响我看新闻!网管感觉很无奈,但是本着为人民服务的准则,他还是象征性的点了一下浏览器上的刷新,然后看到广告还在,就深表抱歉的说:不好意思,这个是他网站上本来就有的,去不掉。小伙只好作罢。

4. 长征

这是个地名,很贫穷的一个地方,据说当年长征时走过,因此得名。此次跑车试验就是在兰州和长征之间挂到8766/8765次列车上来回跑。每天的时间很是固定,早晨7点多从兰州出发,12点多到长征,吃个饭然后折头回兰州,2点多出发,8点左右到。搞得每天大老远的跑长征这破地方来就是吃顿饭,还是开着火车来的,真是事大!

厕所  到了长征,除了吃饭之外另一项例行公事,就是上厕所。因为在火车上实在是不方便,停在站台上的时候不好意思上,因为这样一来站台上就臭烘烘的,影响不好;火车开动的时候呢,由于晃来晃去,根本没有上的情绪,所以每天中午的这个时候是绝佳时机。站内有个免费厕所,出口处还有个收费的。一次大家一起回来,考虑到免费厕所的坑有限而且质量也不是很高,所以小申打算去上收费厕所。走到门口看没有人在,于是就先进去了。进去之后一看这条件,立即没有了方便的需求,于是就往外走。刚走出来,看厕所的回来了,看到他出来于是就要钱。小申说,我没上啊!看厕所的人说,你没上进去干什么!这一问倒把申磊给问住了,憋了半天,申磊答:我进去看看!(多么经典的回答阿,我没上,就是进去看看,谁信啊:〉)

饭店  俗话说,"民以食为天",但是这个小地方确实找不到比较好的吃饭的地方。有一次几个人去了一个羊肉店,如此称呼它是因为我忘记他的招牌上写的什么名字了,但是为什么这个店的羊肉让我印象这么深刻呢?听我细说。7、8个人坐下之后说你们这个什么做的最好?答曰:羊羔肉。遂来2斤羊羔肉。再问:除了这个还有什么?答曰:手抓羊肉、清炖羊肉。有没有素菜?答曰:没有。后来好不容易弄来了一个凉拌萝卜,hoho几个人吃了四斤多羊肉还喝了1瓶二锅头,怎么看怎么象从梁山下来的:〉我心里就琢磨,这老板也太牛了,真是专一啊,除了羊肉别的什么都不卖!后来一次领导陪同出车,到了长征想找一个比较好的饭店吃饭,找了很长时间才发现一个看上去装修的还不错的,进去之后,空空如也。服务员招呼也是慢声慢气不慌不忙的。点了一个汤都快个完准备走人了,这个时候服务员才把汤勺送过来:〉如此效率,会饿死人的呵呵。

5. 武威

在甘肃有句话叫做"金张掖,银武威",意思是说这两个地方是很不错的。不过我们到的那个武南小镇看上去并不怎么样,到处风乱刮,土飞扬(可能是去的时候不巧)。

乌稍岭隧道 这个隧道就在从兰州到武威的路上,据说是亚洲最长的隧道,20.5KM, 火车跑过去都要十几分钟:〉

[后记] 这次去兰州是11.30出发,16号回来,半月有余。一眨眼回来都有10来天了,这个文章也断断续续的写了这么长时间,今天总算可以草草的结束,不为什么,就是留个念想。可以不能图文并茂,呵呵,本来去就不是旅游的!

2006/12/24

Google Earth看越狱:和Michael 一起逃亡


这一阶段《越狱》火的可不是一点半点,大有压过以前《24小时》的势头,可以说在全世界掀起了一场越狱的高潮(不要误会,是看越狱:〉)

加拿大一家网站更是做出了越狱地图,而且这个地图还有 google earth地标下载。可以注意到,估计这个网站就是在加拿大播放越狱的电视台的,因为那个global TV的标志看上去是那样的眼熟:〉

另外,网易还把地标汉化了一部分,可以在这里下载 汉化越狱地标。

越狱的流行,很大程度上是互联网在后边煽风点火,再加上那么一群优秀的听译爱好者、字幕工作者,在互联网高度发达的今天,很快流行就不足为怪了,不知者是否会是将来电视业的一个发展方向:嫁接互联网?呵呵,不废话了,和Michael 一起开始越狱逃亡吧:〉

期待1月29的14集。

2006/12/22

功不唐捐

  台湾清华大学的一个教授的文章,验证了一个道理,事情是可以从另一个角度来看的,呵呵。

  许多同学应该都还记得联考前夕的焦虑:差一分可能要掉好几个志愿,甚至于一生的命运从此改观!到了大四,这种焦虑可能更强烈而复杂:到底要先当兵,就业,还是先考研究所?

  我就经常碰到学生充满焦虑的问我这些问题。可是,这些焦虑实在是莫须有的!生命是一种长期而持续的累积过程,绝不会因为单一的事件而毁了一个人的一生,也不会因为单一的事件而救了一个人的一生。属于我们该得的,迟早会得到;属于我们不该得的, 即使侥幸巧取也不可能长久保有。如果我们看清这个事实,许多所谓" 人生的重大抉择 "就可以淡然处之,根本无需焦虑。而所谓"人生的困境",也往往当下就变得无足挂齿 。
  
  我自己就是一个活生生的例子。从一进大学就决定不再念研究所,所以,大学四年的时间多半在念人文科学的东西。毕业后工作了几年,才决定要念研究所。硕士毕业后,立下决心:从此不再为文凭而念书。谁知道,世事难料,当了五年讲师后,我又被时势所迫,整装出国念博士。
  
  出国时,一位大学同学笑我:全班最晚念博士的都要回国了,你现在才要出去?两年后我从剑桥回来,觉得人生际遇无常,莫此为甚:一个从大一就决定再也不钻营学位的人,竟然连硕士和博士都拿到了!属于我们该得的,哪样曾经少过?而人生中该得与不该得的究竟有多少,我们又何曾知晓?从此我对际遇一事不能不更加淡然。当讲师期间,有些态度较极端的学生会当面表现出他们的不屑;从剑桥回来时,却被学生当作不得了的事看待。这种表面上的大起大落,其实都是好事者之言,完全看不到事实的真相。
  
  从表面上看来,两年就拿到剑桥博士,这好像很了不起。但是,在这"两年"之前我已经花整整一年,将研究主题有关的论文全部看完,并找出研究方向;而之前更已花三年时间做控制方面的研究,并且在国际著名的学术期刊中发表论文。而从硕士毕业到拿博士,期间七年的时间我从不停止过研究与自修。所以,这个博士其实是累积了七年的成果,或者,只算我花在控制学门的时间,也至少有五年),根本也没什么好惊讶的。常人不从长期而持续的累积过程来看待生命因积蓄而有的成果,老爱在表面上以断裂而孤立的事件夸大议论,因此每每在平淡无奇的事件上强作悲喜。可是对我来讲,当讲师期间被学生瞧不起,以及剑桥刚回来时被同学夸大本事,都只是表象。事实是:我只在乎每天二十四小时点点滴滴的累积。拿硕士或博士只是特定时刻里这些成果累积的外在展示而已,人生命中真实的累积从不曾因这些事件而终止或加添。常有学生满怀忧虑的问我:"老师,我很想先当完兵,工作一两年再考研究所。这样好吗?"很好,这样子有机会先用实务来印证学理,你念研究所时会比别人了解自己要的是什么 。
  
  "可是,我怕当完兵又工作后,会失去斗志,因此考不上研究所。"
  
  "那你就先考研究所好了。"
  
  "可是,假如我先念研究所,我怕自己又会像念大学时一样茫然,因此念的不甘不愿的。"

  "那你还是先去工作好了!"

  "可是……"
  
  我完全可以体会到他们的焦虑,可是却无法压抑住对于这种话的感慨。其实,说穿了他所需要的就是两年研究所加两年工作,以便加深知识的深广度和获取实务经验。先工作或先升学,表面上大相径庭,其实骨子里的差别根本可以忽略。在"朝三暮四"这个成语故事里,主人原本喂养猴子的橡实是"早上四颗下午三颗",后来改为"朝三暮四",猴子就不高兴而坚持改回到"朝四暮三"。其实,先工作或先升学,期间差异就有如"朝三暮四"与"朝四暮三",原不值得计较。但是,我们经常看不到这种生命过程中长远而持续的累积,老爱将一时际遇中的小差别夸大到攸关生死的地步。
  
  最讽刺的是:当我们面对两个可能的方案,而焦虑的不知何所抉择时,通常表示这两个方案可能一样好,或者一样坏,因而实际上选择哪个都一样,唯一的差别只是先后之序而已。而且,愈是让我们焦虑得厉害的,其实差别越小,愈不值得焦虑。反而真正有明显的好坏差别时,我们轻易的就知道该怎么做了。可是我们却经常看不到长远的将来,短视的盯着两案短期内的得失:想选甲案,就舍不得乙案的好处;想选乙案,又舍不得甲案的好处。如果看得够远,人生长则八,九十,短则五,六十年,先做哪一件事又有什么关系?甚至当完兵又工作后,再花一整年准备研究所,又有什么了不起?当然,有些人还是会忧虑说:"我当完兵又工作后,会不会因为家累或记忆力衰退而比较难考上研究所?"我只能这样回答:"一个人考不上研究所,只有两个可能:或者他不够聪明,或者他的确够聪明。不够聪明而考不上,那也没什么好抱怨的。假如你够聪明,还考不上研究所,那只能说你的决心不够强。假如你是决心不够强,就表示你生命中还有其他的可能性,其重要程度并不下于硕士学位,而你舍不得丢下他。既然如此,考不上研究所也无须感到遗憾。不是吗?"

  人生的路这么多,为什么要老斤斤计较著一个可能性?我高中最要好的朋友,一生背运 :高中考两次,高一念两次,大学又考两次,甚至连机车驾照都考两次。毕业后,他告诉自己:我没有人脉,也没有学历,只能靠加倍的诚恳和努力。现在,他自己拥有一家公司,年收入数千万。
  
  一个人在升学过程中不顺利,而在事业上顺利,这是常见的事。有才华的人,不会因为被名校拒绝而连带失去他的才华,只不过要另外找适合他表现的场所而已。反过来,一个人在升学过程中太顺利,也难免因而放不下身段去创业,而只能乖乖领薪水过活。福祸如何,谁能全面知晓?
  
  我们又有什么好得意?又有什么好忧虑?人生的得与失,有时候怎么也说不清楚,有时候却再简单不过了:我们得到平日累积的成果,而失去我们不曾努力累积的!所以重要的不是和别人比成就,而是努力去做自己想做的。功不唐捐,最后该得到的不会少你一分,不该得到的也不会多你一分。
  
  好像是前年的时候,我在往艺术中心的路上遇到一位高中同学。他在南加大当电机系的副教授,被清华电机聘回来开短期课程。从高中时代他就很用功,以第一志愿上台大电机后,四年都拿书卷奖,相信他在专业上的研究也已卓然有成。回想高中入学时,我们两个人的智力测验成绩分居全学年第一,第二名。可是从高一我就不曾放弃自己喜欢的文学,音乐,书法,艺术和哲学,而他却始终不曾分心,因此两个人在学上的差距只会愈来愈远。反过来说,这十几二十年我在人文领域所获得的满足,恐怕已远非他所能理解的了。我太太问过我,如果我肯全心专注于一个研究领域,是不是至少会赶上这位同学的成就?我不这样想,两个不同性情的人,注定要走两条不同的路。不该得的东西,我们注定是得不到的,随随便便拿两个人来比,只看到他所得到的,却看不到他所失去的,这有什么意义?
  
  有次清华电台访问我:"老师你如何面对你人生中的困境?"我当场愣在那里,怎么都想不出我这一生什么时候有过困境!后来仔细回想,才发现:我不是没有过困境,而是被常人当作"困境"的境遇,我都当作一时的际遇,不曾在意过而已。刚服完兵役时,长子已出生却还找不到工作。我曾焦虑过,却又觉得迟早会有工作,报酬也不至于低的离谱,不曾太放在心上。念硕士期间,家计全靠太太的薪水,省吃俭用,对我而言又算不上困境。一来,精神上我过的很充实,二来我知道这一切是为了让自己有机会转行去教书( 做自己想做的事)。三十一岁才要出国,而同学正要回系上任教,我很紧张(不知道剑桥要求的有多严),却不曾丧气。因为,我知道自己过去一直很努力,也有很满意的心得和成果,只不过别人看不到而已。我没有过困境,因为我从不在乎外在的得失,也不武断的和别人比高下,而只在乎自己内在真实的累积。
  
  我没有过困境,因为我确实了解到:生命是一种长期而持续的累积过程,绝不会因为单一的事件而有剧烈的起伏。同时我也相信:属于我们该得的,迟早会得到;属于我们不该得的,即使一分也不可能加增。假如你可以持有相同的信念,那么人生于你也会是宽广而长远,没有什么了不得的"困境",也没有什么好焦虑的了。
 
注释:功不唐捐

英文译法 Literal Translation
All the efforts that you have been making would be paid off.

中文释义/来源 Chinese Meaning/Origin
功夫不白费,付出的努力终会有回报。

"功不唐捐"("唐"古白话"空"字),来自佛教《法华经》,意思是说,世界上没有一点功德是白做的,没有一点努力是白费的;一个人的努力,在我们看不见想不到的时候,它会生根发叶开花结果。

用知识去指导生活,在生活中体悟知识

  世界上没有两片完全相同的树叶,也没有完全相同的两个人,正因为每个人的生命轨迹不同,世界才如此的美丽和丰富多彩!

  不同生不同,人与人之间有太多的不同,首先个人先天素质的不同,每个人的智商、体质、性格、高矮的不同,这些更多的是由基因这些先天的因数决定,有的人智商高,学习能力就会较强,相对来说就有根多的发展机会,人生能够达到的顶点和能够干得事情也更多;有的人性格坚强,能够摔倒一次再爬起来一次,永远都能够撑到最后,能够战胜一切的苦难,相对来说他们就有更大的生存能力;有的人很帅气或者很漂亮,相对来说他们就有能够获得更多的赞扬,有更加宽松的发展环境,甚至能够获得更多的发展机会……这些是我们不能够改变的,我们得接受。智商低一点的人就勤奋一些,笨鸟先飞,脆弱一点的人就多看一点励志书籍,学一点心理学慢慢改变……

  第二就是出身环境,出身环境对人的命运的影响几乎是决定性的,条件好的孩子更高获得更好的教育,能够更好的发展自己,就能够有大的竞争能力,也就更高的社会阶层,有更好的生活,但这并不代表位居社会底层的人群就完全没有机会向上流动,社会底层中的聪明、坚强的人能够有更大的可能向上流动!

  第三父母的教育方式,父母是我们生命中最重要的人,也是对我们影响最深远的人。对于孩子来说,其实父母的学历、经济地位都不是最重要的,最重要的是父母是否给孩子尊重、无条件的爱、接纳和自由,能够与孩子荣辱与共和同甘共苦,能够把这些给孩子的父母,不论他的经济条件、社会地位、学历怎么样,他们都给了孩子一个温暖的家,孩子能够顺利按照自己的资质进行发展,这样的父母将获得幸福!第四运气,这是一个很玄乎的东东,在你最需要的时候总是能够化险为夷,起死回生!

  上帝对每个人都是公平的,关掉一扇窗的时候,会为你打开另一扇窗,很少有人能够美满的占全这四者,更多的是人占据了其中一者或者两者,我占据的是第一者和第四者。在我的生命经历了残酷的磨难,但我还是挺了 过来,读完了大学,其中运气让我拥有了起死回生的机会。

  人生本来就不是完美的,她只能存在我们大脑里!

  我想在人一生中最重要就是坚强和追求知识,坚强能够促使你再一次站起来,知识能够促使你不断了解自己、认识自己,能够不断的重新塑造自己,获得成长和发展。同时也能增加自己对事务的判断和分析问题的能力使得自己有更强的竞争力。当我们这样的一种信念的时候,无论我们曾经遭遇的是什么样的生活,我们都有可能慢慢的使自己生活得更好!

  用知识去指导生活,在生活中体悟知识。
 

Interview with the God (与上帝的面谈) (Z)

  I dreamed I had an interview with God.

  "So you would like to interview me?" God asked.

  "If you have the time." I said.

  God smiled. "My time is eternity."

  "What questions do you have in mind for me?"

  "What surprises you most about humankind?"God answered.

  "That they get bored with childhood, they rush to grow up, and then long to be children again."

  "That they lose their health to make money and then lose their money to restore their health."

  "That by thinking anxiously about the future, they forget the present, such that they live in neither the present nor the future."

  "That they live as if they will never die, and die as though they had never lived."

  God's hand took mine and we were silent for a while.And then I asked. "As a parent, what are some of life's lessons you want your children to learn?"

  "To learn they cannot make anyone love them. All they can do is let themselves be loved."

  "To learn that it is not good to compare themselves to others."

  "To learn to forgive by practicing forgiveness."

  "To learn that it only takes a few seconds to open profound wounds in those they love, and it can take many years to heal them."

  "To learn that a rich person is not one who has the most, but is one who needs the least."

  "To learn that there are people who love them dearly, but simply have not yet learned how to express or show their feelings."

  To learn that two people can look at the same thing and see it differently."

  "To learn that it is not enough that they forgive one another, but they must also forgive themselves."

  "Thank you for your time," I said humbly.

  "Is there anything else you would like your children to know?"

  God smiled and said, "Just know that I am here always."

珍惜你仍拥有的(Z)

  一个署名约翰卫斯理的人写了这样一个故事。
  
  一对夫妇在婚后十一年生了一个男孩,夫妻恩爱,男孩自然是二人的宝。男孩两岁的某一天,丈夫在出门上班之际,看到桌上有一药瓶打开了,不过因为赶时间,他只扬声妻子把药瓶收好,然后就关上门上班去。 妻子在厨房忙得团团转,就忘了丈夫的叮嘱。
  
  男孩拿药瓶,觉得好奇、又被药水的颜色所吸引,于是一饮而尽。 药水成份厉害,即使成人服用也只能用少量。男孩OD(Overdose服药过量),被送到医院后,返魂乏术。
  
  妻子被事实吓呆了,不知如何面对丈夫。紧张的父亲赶到医院,得知噩耗非常伤心,看儿子的尸体,望了妻子一眼,然后说了四个字。
  
  作者叫读者猜,这丈夫说了四个甚么字?答案是:"I love you, darling!"
  
  作者说:这反应是 Proactive 的(即反过来控制局面,而不被局面控制)。
  
  作者亦盛赞这丈夫是人类关系的天才,因为儿子的死已成事实,再吵再骂也不会改变事实,只惹来更多的伤心,而且不只自己失去儿子,妻子也失去儿子。

  这故事,主旨是彰显人类选择的自我层次 , 同一件不幸事你可以怨天尤人,痛骂社会,甚至自责无穷,但事情却不因这些而改变,这一切只改变了你和日后的生活,负着疤痕的活下去。反之,放下怨恨和惧怕,放下过去,勇敢的活下去,事情的境况原来并不如想象中坏,这就是作者所说的 Proactive Behavior,也就是我们所说的由人转境,而不是被外界事物牵走 。 link

2006/12/21

稍后和稍候

做项目的时候要给用户一个提示:。。。正在处理中,请稍候。。。想了半天,还是拿不定主意是后还是候:〉这方面不要出丑才好:〉于是转来一篇文章:
 
电脑化为生活带来便利,也带来了因便利而衍生的错误。

使用注音输入法的人常会因为忘了(或是懒得去)选字而打出了同音异义的错字,有时候甚至不知道自己送出的是用错字的词句。

最近我常会看到一个错词,有时出现在等候网页转换时的提示语里,有时出现在餐厅客满时所张贴的公告中,那就是"请稍后"这句话。

从字义中,我们可以清楚的看到"稍后"的意思应该是"稍稍之后"也就是"在经过短时间之后",若用英文来看,"后"是after的意思,而"稍后"也就是"after a minute"或是更简短的"later"。

因此倘若你是要别人稍等一下,是不能用"稍后"的,正确的用词应该是"稍候",这里的"候"即为"等候",若将"稍候"翻成英文就是"wait a minute"。

简单地说,"稍后"的"后"是附词,而"稍候"的"候"是动词,这两个字不仅意义不同,连词性也不同,所以更加不能将其混为一谈!

所以请记得,如果你是要请对方等一下,要用"稍候";若你要表达的是短时间之后的意思,才可以用"稍后"。我举几个例子给大家参考:

"请稍候一会儿,您所填写的资料正在传递中。"

"本节目将在稍后继续播出,请不要转台。"

"稍后将会有人为您带位,请稍候。"

2006/12/20

OldVersion:找找软件的过去


软件更新的速度之快让人受不了,这边刚下下来安装完毕,又有系统提示:有新版本,是否要升级。这对那些怀旧者无疑是一种极大的耐力上的考验。不过,有些软件还是可以找到"从前"的影子的。 oldversion这个网站就是专门保存那些老版本软件的网站,就像有专门保存以前的网页的网站一样。

使用Google Co-op创建自己的搜索引擎

Google Co-op




Google Co-op推出有一段时间了,当初试用了一下,觉得不错,所以就把blog页面上自己加的google搜索给删除了。

创建一个搜索引擎也十分简单,是需要填写相应的搜索引擎名称、网站地址等信息就可以了。最后会给你一个类似于 http://www.google.com/coop/cse?cx=008835953132820367859%3A6q9zo8xui5q 的地址,这就是你的搜索引擎了。感觉涌起来很不错,就是这个地址让人觉得太别扭了:〉

两头猪和一个故事

从前有两只小猪,整天过着无忧无虑的生活,他们互相相爱着,每天主人送来吃的时候,公猪总是先让母猪吃,等她吃饱了再上去吃母猪吃剩下的东西。每天晚上公猪总是给母猪放哨,他生怕主人乘他们熟睡时把母猪拉出去宰了。日子一天天的过去,母猪日渐长胖,而公猪则一天天瘦下去,有一天,公猪突然听见主人在跟屠夫商量,要把长势见好的母猪杀了给卖掉,公猪伤心至极,于是从那天开始公猪性情大变。每当主人送吃的来时公猪总抢上去把东西吃的一干二净,每天吃好后便躺下大睡,并且告诉母猪,现在换做她来放哨,如果他发现她没放哨的话就再也不理她,渐渐的日子一天天过去,母猪觉得公猪越来越不在乎她。母猪失望了,而公猪还是若无其事的过着安乐日子。很快一个月过去了,主人带着屠夫来到猪圈,他发现一个月前肥肥壮壮的母猪瘦的没剩下多少肉,而公猪则长的油光发亮,这时的公猪拼命的奔跑,想引起主人的注意,表明他是头健康的猪,终于,屠夫把公猪拖走了。在拖出猪圈的那一刻,公猪朝着母猪笑着说:以后别吃这么多。母猪伤心欲决,拼命的冲出去,但圈门被主人关上了,搁着栅栏,母猪看着闪着泪光的公猪。那晚,母猪望着主人一家开心的吃着猪肉,母猪伤心的躺倒在以前公猪每天睡的地方,突然她发现墙上有行字:"如果爱无法用言语来表达,我愿意用生命来证明"!母猪看到这行字肝肠寸断.

有一老夫妻年逾50.经济条件不错,理当是安享退休的时候,却一起到律师那要办离婚。原因是自从结婚以来,两人争吵不断,老是意见不合。个性上又南辕北辙十分不和谐。二十多年的婚姻生活,要不是为了孩子着想,早就劳燕分飞了。好不容易总算盼望到孩子成年,再也不需要父母操心,为了让彼此在晚年能自由的生活,不用再忍受那么多无谓的争吵,决定办离婚。这一刻在律师面前,让律师也面有难色,律师费都有点不好意思拿了,于是他提议办完手续后,三人一起吃顿饭。老夫妻想了想,虽然离了婚,两人又没有什么深仇大恨,吃顿饭总可以吧!
餐厅里面三人气愤非常尴尬。正巧服务生送来一道烤鸡,老先生马上挟起一块给老太太说:"吃吧!你最喜欢吃的鸡腿。"律师眼睛一亮,心想事情也许有了转机哦!未料老太太红着双眼说:"我很爱你,但你这个人就爱自以为是,什么事都自己说了就算,从来不管别人的感受,难道你不知道,我这辈子最讨厌吃的就是鸡腿吗?"这时老先生也有点哽咽的说:"你……总是不了解我爱你的心,时时刻刻我都在想,要如何讨你的欢心,总是把最好的留给你,你知道吗?这辈子我最喜欢吃的就是……鸡腿。"
律师看在眼里,不免鼻头一酸,两人如此深爱着彼此的人,却因为沟通出了问题而面临分开的局面。这一晚两人心中都有着无限的感慨,这么多年的感情却要面对如此残酷的结局。老先生整晚翻来覆去睡不着,心中阵阵如火燃烧般的痛在心底无情的煎熬着。他考虑了很久,强忍着痛苦打电话给老太太,想表达他内心的后悔,他想告诉老太太,他是多么的爱他。电话声响了,老太太知道一定是老先生打来的,但是她心中充满了恨,他觉得似乎老先生负了她一生,她不想再听到他的声音。……电话不知道响了多久,老太太就是不接,婚都离了,面子重要,怎能接电话,甚至他把电话线都拆了。老先生握着冰冷的话筒,听不到老太太的声音,心中有如刀割一般。久久无法释怀。
其实这一天晚上老太太也是在伤心中辗转难眠,而且他忘了……老先生他有心脏病。隔天,老先生被发现死在自己家客厅,手里还握着电话。老太太知道这个消息后简直无法相信,为了赌一口气,竟然让自己深爱的人在心碎中死去,这时候她如何大声的呼喊也唤不回老先生的回眸一笑。
老太太柔肠寸断的整理老先生的遗物,突然发现抽屉里的一张保险单,投保日期就是当年他们结婚的日子,受益人当然是老太太的名字。虽然金额只有100万,但是当中夹着一张字条:"亲爱的,当你发现这张保单的时候,也许我已经不在这人世了,但我爱你的心不会改变,照顾你的责任更不会终止,这些保险金将代替我,继续给你无微不至的爱与关怀,一如我仍然在你身旁,永远爱你的……看到这里老太太润了双眼,他真的没看走眼,他虽然带点大男人主义,但是他是真心照顾自己一辈子的人。

TheBigPictureLibrary:Flash图片保存站


TheBigPictureLibrary:一个不错的falsh图片保存网站,可以一次上传多个文件,上传方式十分方便。就是空间小了点:〉不过看在这么绚丽的分上,也是可以拿来仔细把玩的。


Just a joke

    一位驾驶员正开一架单引擎的小飞机, 载着几位高层管理人员飞往西雅图机场, 可是空中布满浓雾, 能见度不到10英尺, 而且机上的仪表也坏了. 他只好盘旋寻找地标. 差不多过了一个小时, 燃油眼看就要耗尽, 机上乘客紧张万分. 透过浓雾的间隙, 驾驶员终于看到一座高楼, 在那儿的五楼还有一个人在孤零零的埋头工作.驾驶员飞近大楼, 放下窗玻璃, 冲着那人高喊: "喂! 我在什么地方啊?" 孤单的职员回答道, "你在飞机里." 飞行员升起窗玻璃, 做了个275度转弯, 紧跟着一个漂亮的盲着陆动作, 停在了五英里外的机场跑道上. 也就在这一刻, 飞机引擎烧尽最后一滴燃油停止了转动.

    机上的乘客觉得驾驶员神了. 有一个问他怎么知道的. "很简单," 驾驶员回答道. "他给我的回答百分之百正确, 但丝毫用处也没有. 因此那里一定是微软的技术支持部. 从那里到机场距离5英里, 方位87度. 还有问题吗?"

Link.

马季走了

今日上午10点25分,我国著名相声演员马季在北京安贞医院因心脏病去世,终年72岁。

马季1934年生于北京,原名马树槐,祖籍天津宝坻,是中国新相声的代表人物,著名相声大师和表演艺术家,近现代相声艺术承前继后的关键人物。他师从侯宝林边学习边表演,善于表演反映现实生活的新相声作品,在相声艺术长于讽刺的传统之外,开启了以赞美新生活和新的英雄人物为主题的"歌颂型"对口相声的新生面,其中以《登山英雄赞》、《画像》和《找舅舅》等节目影响为大。之后马季的创作和表演趋于全面,创作演出了对口相声如《友谊颂》、《舞台风雷》、《多层饭店》、《宇宙牌香烟》、《五官争功》等。曾出版《马季相声选》和《相声艺术漫谈》。
 
马季走了,中国的相声也走了。

2006/12/19

唐僧给悟空的信(Z)

亲爱的悟空:
 
  在天庭住好一阵子了,不知你在花果山过得可好?
 
  我这封信写得很慢,因为知道你看字不快。
  
  我们已经搬家了,不过地址没改,因为搬家时顺便把门牌带来了。
  
  这礼拜下了两次雨,第一次下了3天,第二次下了4天。
  
  昨天我们去买比萨,店员问道:请问要切成8片还是12片,你勤俭的师母说:
  切8片好了,切12片恐怕吃不完。那间店比萨还不错,改天我们全家再一起去街口的餐馆吃牛
  排。
 
  还有你观音阿姨说你要我寄去的那件外套,因为邮寄时会超重,所以我们把扣子剪下来放在
  那件外套的口袋里了。
  
  你嫦娥姐姐早上生了,因为我还不知道到底是男的还是女的,所以我不知道你将要当阿姨还是
  舅舅。
  
  最近没什么事,我会再写信给你的。
 
  师傅又及:你师母本来要寄钱给你,可惜信封已经粘好了,下次吧!

师父:唐僧

2006/12/11

重启电脑

@echo off
//关闭命令行显示
%systemroot%\system32\shutdown -r -t 0
//-r参数表示重启计算机,-t表示时间后边跟随等待秒数,为0则表示马上重启