2007年8月30日

不够厚道的Microsoft

仍然在做IPV6的对应工作......

说起来,我原来一直都是对.NET Framework抱有好感的,对MSDN的各种说明也是比较信任的。然而,当我深入研究了System.Net命名空间下的Dns.GetHostAddress(string hostNameOrAddres)方法后,我的心情只能用一个词来形容,那就是"失望"。

这个方法是微软在.NET Framework V2.0中新加入的方法。作用是解析用户输入的域名/地址,生成一个或多个抽象的IPAddress对象。

在该方法的说明文档中(不知道为什么,关于该方法,中文或日文的MSDN中没有任何说明),对于返回值的定义存在如下描述:

If hostNameOrAddress is an IP address, this address is returned without querying the DNS server.


然而,实际情况是:当操作系统没有启用IPV6时,如果用户输入一个IPV6的地址(比如"fe3b::234:4b35"时)。Dns.GetHostAddress方法根本不会解析出一个IPAddress对象,而是直接抛出了一个SocketException,其对应的Winsock Error Code为11001(WSAHOST_NOT_FOUND).看来在系统未启用IPV6的情况下,这个API是把用户输入的IPV6地址当作普通域名来处理了。

然而匪夷所思的事情还有呢。当我把系统的IPV6启用,但停用IPV4时,尝试输入一个IPV4地址。本来按照思维定势,以为它也会抛一个SocketException。然而此时它却没有抛异常,而是返回给我一个长度为0的IPAddress数组,真是让我哭笑不得。

根据我的实际测试结果,对Dns.GetHostAddress(string)方法的返回值做了如下总结:






















输入的域名/地址形式 只启用了IPV4 只启用了IPV6 启用了IPV4+IPV6
IPV4型地址 长度为1的IPAddress数组 长度为0的IPAddress数组 长度为1的IPAddress数组
IPV6型地址 抛出SocketException 长度为1的IPAddress数组 长度为1的IPAddress数组
普通域名 长度为n的IPAddress数组(*) 长度为n的IPAddress数组(*) 长度为n的IPAddress数组(*)

(*: 具体的数组长度,需要根据DNS服务器的实际绑定,或者HOST文件中的定义来决定)


由此可见,我觉得微软对于这个方法的设计是存在比较严重的败笔的。首先,该API的实际动作在IPV4环境和IPV6环境表现不一致;另外,关于输入IPV6型IP地址会导致SocketException的情况,在MSDN关于该方法的说明文档中并没有提及,唯一关于输入IP地址的叙述,与该方法的实际效果其实是南辕北辙的。

其实,设计函数也是门学问。至少,应该友好一点吧~

2007年8月27日

我所中意的手机--Sharp SH903i

最近开始考虑更换手机的事宜。

我手上的那款索爱的“乌龟机”自2003年5月购入以来,已经安然无恙地度过了4个年头。其间经历无数朋友手机的被盗事件,遗失事件,摔坏事件。然而我的乌龟机秉承了其爬虫类近亲的优良基因,愣是啥事没有。记得刚买的时候,老爸还调侃我打算什么时候更新换代时好让他也用用我淘汰下来的手机。最终结果是,老爸在我之前先买了新手机……

虽说想换手机,然而却没有什么特别中意的款式。可能是由于我比较看重外表的结果,我觉得手机大鳄们制造的手机越来越丑了。

不过在Lemonedちゃん的推荐下,我倒是发现一款日系手机很对我的胃口--Sharp SH903i






这款手机是翻盖型手机,而且拥有日系手机的一贯特性--大。所以,外观感觉似乎很爽。

性能参数方面,它也不错(好歹是款3G手机)。
WCDMA制式, 26万象素TFT彩屏,Java MIDP 2.0, 蓝牙红外都支持,还支持GPS扩张机能。
320万象素的主摄像头,11万象素的副摄像头(视频通话用)。

然而,最大的问题----貌似在中国用不了。据说可以刷机刷成一款GSM手机,不过貌似有点太不合算了。

于是,我就依旧只能望梅止渴中……

本文图片全部来源于 太平洋电脑网

2007年8月26日

本博客有logo了~

请FFSky的朋友帮我做了一个logo,提了以下几个要求:

1. 风格要提倡简约主义,色调要与我的BLOG具备和谐效果。
2. logo虽说是长方形,但是希望四个角不要是纯粹的直角,希望能够带点圆滑的弧度。
3. logo上希望能够出现wing's dak的字样。

现在成品已经出来了,个人感觉还不错~~~



于是,立刻就用起来了:)

2007年8月23日

The Last Song

今天一个白天胃都在疼,到傍晚的时候终于好一些了。但晚上却又因为一点小事被老妈数落了一番,心情又郁闷了一下子。于是打开foobar习惯性的以随机播放的方式听歌,无意中,随机播放到了X的"The Last Song".

似乎已经很久没有听这首歌了(其实更应该说成是用钢琴和歌声伴奏的诗),毕竟X已经解散了有十个年头。而如今,离我第一次听这首歌的岁月也已经远去了六年。我不会承认X Japan是我最喜爱的乐队,但是命中注定的是,从我进大学的那天起,这支乐队就已经和我的生活紧密相联了。

每一次听这首歌的时候都会被它的歌词所感动,然而如果通过仔细的理性分析,却始终找不到有什么可值得感动的地方。也许这首歌只是起了一个催化剂的作用,而那些真正让我们感慨万千的东西其实应该是来源于我们的心底。还曾听说有一个宿舍的女生在听这首歌时四个人围着CD机一边听一边抱头痛哭----想想看,那样的场景,估计也满壮观的。

在网上没有找到合适的音源,本来还想做个链接来着的。所以只好放弃,改贴歌词:

The Last Song
曲: Yoshiki 词: Yoshiki 独白: Yoshiki 唱:Toshi


Watching the stars till they're gone.
Like an actor all alone.
Who never knew the story he was in.
Who never knew the story ends.
Like the sky reflecting my heart.
All the colors become visible.
When the morning begins.
I'll read the last line.

终わらない雨、抱きしめた夜が朝を迎える
心はまだ濡れたまま

In the endless rain, I've been walking.
Like a poet feeling pain.
Trying to find the answers.
Trying to hide the tears.
But it was just a circle that never ends.
When the rain stops, I'll turn the page.
The page of the first chapter.

伤つくだけ、伤ついて、分かったはずの答えを
どうしてまだ、问いかけてる?

Am I wrong to be hurt.
Am I wrong to feel pain.
Am I wrong to be in the rain.
Am I wrong to wish the night won't end.
Am I wrong to cry.
But I know it's not wrong to sing the last song,
'Cause forever fades.

气がつけば、まだ独り、夜の空を見つめる。
少しずつ、消えてゆく、Our memories.
伤つくだけ、伤ついて、分かったはずの答えを
どうしてまだ、问いかけてる?

I see red.
I see blue.
But the silver lining gradually takes over.
When the morning begins,
I'll be in the next chapter.

终わらない雨、抱きしめた夜が朝を迎える
心はまだ濡れたまま
伤つくだけ、伤ついて、分かったはずの答えを
どうしてまだ、问いかけてる?

(因为这个Blog是GB2312编码的,所以我只好把上述歌词中日文里那些中文字库没有的汉字换成了简体中文,果然看上去有点别扭,但也是没有办法的事情了)

2007年8月21日

获取主机所有网络接口的IPV6地址

最近在做一项关于IPV6的对应工作。因为工作平台是.NET Framework,所以也参照了不少关于这方面的文档。上午看到了一篇帖介绍了关于如何获取当前主机上所有网络接口(如网卡)的IPV6单播地址的方法,感觉还不错,所以晚上便把它摘录了下来。

using System.Collection;
using System.Net;
using System.Net.NetworkInformation;
static IPAddress[] GetAllAddressV6()
{
    IPAddress [] ret = null;
    ArrayList alRet = new ArrayList();
    NetworkInterface[] adapters =
        NetworkInterface.GetAllNetworkInterfaces();
    foreach(NetworkInterface adapter in adapters)
    {
        IpInterfaceProperties adapterProperty =
            adapter.GetIPProperties();
        UnicastIPAddressInformationCollection allAddress =
            adapterProperty.UnicastAddresses;
        foreach(UnicastIPAddressInformation addr in
            allAddress)
        {
            if (addr.Address.AddressFamily ==
                AddressFamily.InterNetworkV6)
            {
                alRet.Add(addr.Address);
            }
        }
    }
    ret = alRet.ToArray(typeof(IPAddress)) as IPAddress[];
    return ret;
}



原帖请参见 这里

注:当上述方法返回的数组长度为零时,就说明当前主机根本没有被分配合适的IPV6地址。

2007年8月17日

买到好东西了~

半年多没买CD了,于是今天去了一趟久违的欧美天堂--这个剥削走我无数金钱的地方。

进门先翻了一圈日本碟,发现ZARD的作品全部飙升到30RMB以上了,果然死人的东西好赚钱。然后GLAY的一张单曲碟居然也卖到了20RMB,天哪~~

目光往欧美方向扫,越来越发觉物价的飞涨。连滚石的那盘Forty Licks都卖60RMB了,也没有什么好说的了。突然发现一张CD,封面很有味道,正在琢磨现在摇滚乐队都喜欢在封面上玩唯美风格了,惊讶地发现封面上乐队的名字--"Nightwish",而且是有Beauty And The Beast的那张专辑,啥也不说了,收!



继续浏览CD,发现了SP的MCIS(标价60RMB,看来还是当年买得合算)。突然好奇,想看看这里还收集了那些SP的专辑,于是拿开MCIS,居然发现了最新的自由女神像--7月14日发行的ZEITGEIST。那还用说什么吗,作为一个铁杆SP迷,自然是收。


两张CD,一共90RMB,跟老板还了一下价,还到了80RMB(果然还价功力还不够)。但是不管怎么说,毕竟是两张好CD,于是也算是物超所值吧。

2007年8月15日

大连游记

花了两天时间匆匆游览了大连这座城市。虽然时间很短,但是可以说:这一趟没有白来--大连的的确确是一座美丽的城市。

漫步于大连街心,一方面可以感受到一座富有活力的城市,另一方面可以感受到另外一座极具休闲气质的人文主义城市。林立的高楼大厦之间时不时会冒出一座日式或者俄式的房屋,为这座城市增添了些许温馨以及幽默感。

大连和南京一样,街道上的行道树很多。于是在一些不太繁华的街区,老房子伴随着斑驳的行道树树影,让漫步于其中的人有一种沉醉感。或者沉醉于历史,或者沉醉于幽静,或者沉醉于凉爽,或者沉醉于自己心里所想像出来的那一种所谓“小资”的感觉。

最让我感到奇怪的,就是大连虽是个海滨城市,然而地形却多是山地。和上海那种大平原式的海滨城市截然不同。如果从理论上推导的话,也许大连是板块学说的最佳例证。然而理论归理论,放在实践中就是:在大连走路真TMD累。不过在视觉上,山地的地形却让大连显得更为立体:站在一个十字路口,眼皮下面可以看见这条路的车流,稍微抬一下眼,远处的一个路口就在视线上方出现了。于是两行车流在上下两层出现,营造出一种奇特的视觉效果,的确是非常可爱。

然而,事实上我并没有在大连市内过于久留,我把主要的时间还是奉献给了大连周边的两个地方——旅顺以及金石滩。

旅顺篇

旅顺是大连的一个行政区,但是却距离大连市中心约40公里。历史上,旅顺作为一个著名军港,曾经多次经历战乱,沙俄来过,日本人来过,苏联红军来过,最后,PLA接管了。因此,虽然旅顺属于大连市,但是其建筑风格却与大连市内截然不同。或者说更加具有中国特色。除了几栋具有历史意义的建筑在提醒我这里曾经有过历史,但是灰蒙蒙的路面,错落的砖瓦房,黑心开发商庸俗趣味所带来的“高档楼盘”,却在告诉我:旅顺的辉煌只停留在过去。

原日本关东军警备司令部


从沙俄时期流传下来的海岸碉堡


旅顺口


庭院深深(其实是旅顺博物馆)


中苏友好纪念塔


准备改装成博物馆的退役核潜艇

P.S: 在去旅顺之前,我在大连站前广场的一个KFC里邂逅了一个大连女孩。应该算是一个地地道道的东北人吧,她很热心地告诉我到旅顺应该怎么坐车,还把手机号码留给我,让我如果有什么不懂问题尽管问她。后来从旅顺回到大连,我本想把请她吃顿饭,不过她说已经回到她的学校了。不过,正因为一大早就认识了一个如此美丽的女孩,所以,在大连的两天,心情也满不错的。

金石滩篇

在大连的第二天,我去了大连北郊的海滩--金石滩。这里仿佛是个度假村,放眼望去,有很多老外也来到这里。与国内大部分景区一样,这里的景点基本上都要花钱,而这些收钱的景点却又是基本上为了经济效益而人为弄出来的。因为来之前就已经 做好了觉悟,所以我只去了两个地方,一个是金石园,还有一个就是黄金海岸(不是澳洲的那个)。
金石


黄金海岸的美女(哪一个?)


剑齿虎偷水(其实当地人管它叫"恐龙偷水")

P.S:在乘游艇出海游玩的时候,结识了两个带孩子来玩的哈尔滨母亲。北方人和南方人的相遇,自然话题不少。聊了些什么已经无从回忆,唯一记得的就是母亲与孩子脸上所挂着的幸福的笑容,于是我将它们写入我的相机里。

广场篇

大连市内散步着许多大大小小的广场。最大的是号称“亚洲第一广场”的星海广场,感觉上比天安门广场还要大上一些。这些广场星罗棋布,周围都有无数的道路使之相连,便构成了大连另一种独特的景观

海军广场


友好广场


海之韵广场


人民广场(前称:斯大林广场)

其他

其他就是旅行中一些杂七杂八的东西......

大连街角一隅



全国仅存的老式有轨电车(坐上去蛮凉快的)


一盆海虹,文蛤,扇贝 + 再加一串大连铁板鱿鱼 + 一串烤虾 = 24RMB



采贝壳的老太太