Solrex's profileSolrex Shuffling.LifeBlogListsNetwork Tools Help

Blog


    4/30/2008

    Why Google? Security Issue!

    从安全的角度理解——为什么要使用 Google 的服务?

    作者:杨文博 < http://blog.solrex.cn >
    地址:http://blog.solrex.cn/articles/why-google-security-issue.html

    我很喜欢 Google 的一些服务 Gmail, Reader, Documents等等,而且我也一直大力倡导周围的人使用 Google 的服务。在我看到一些人仍在使用 163, sina 的信箱,抓虾的在线订阅器的时候,我不禁为他们通信的安全性担心。为什么使用 Google 的服务?一个很重要的原因是:因为它更安全。

    目录:

    1. 得到抓虾用户名密码的例子
    2. 嗅探和可嗅探网络
    3. 为什么 Google 更安全?
    4. 为什么 163, sina, 抓虾 不安全?
    5. 如何使用 Google 提供的安全服务?
    6. 使用 Google 提供的安全服务的额外好处

    1. 得到抓虾用户名密码的例子

    首先,来看一个截图,看看国内某著名在线订阅器网站抓虾网对用户密码的保护有多脆弱:

    Wireshark_Zhuaxia

    请大家注意截图的最下方,能否看到这一行字:
    email=solrex%40gmail.com&password=testtest&persistentCookie=true
    solrex@gmail.com 是我在抓虾的注册帐号,而后面的 password 大家应该知道是什么东西吧!(不用试我的帐户,我的密码已经改了。)

    有人会好奇这张截图怎么得到的,其实这是我在自己的电脑上用 Wireshark(一款著名的网络数据包分析软件,其前身是 Ethereal) 对通过我网卡的到抓虾网数据包进行监控的截图。Wireshark 实际上就是一款嗅探器,它能记录经过指定网络接口的所有数据包并进行分析。

    2. 嗅探和可嗅探网络

    为了解释如何才能得到上面的数据包,首先要介绍一下网络嗅探的原理:

    嗅探,是一种黑客的窃听手段,一般是指使用嗅探器对数据流的数据截获。由以太网的知识我们知道,在以太网的冲突 域中,每台主机的网卡都能接触到所有的数据包,如果数据包的目的地址是自己,网卡就接收数据包,并将包的内容向上层传递;如果数据包的目的地址不是自己, 就将该包丢弃。那么如果网卡接收所有的数据包并对其进行分析呢?这就是所谓的"混杂模式",将网卡设置为混杂模式后,就可以接收所有包,进而对同一网络中 的其它主机的通信内容进行监听,这就是 Wireshark 进行嗅探的原理。

    需要说明的一点是,在当前的网络下,直接进行嗅探并没有那么容易。上面所说的情况,只在以太网的冲突域中才能实现,而当前交换机的广泛使用,将冲突 域限制到交换机和主机两点之间,除了自己没有其它主机,当然也无法直接对其它主机的通信内容进行监听。如果在交换网络下达到嗅探的目的,必须通过其它办 法,比如 ARP 欺骗,这超出了本文的讨论范围,就不予介绍了。

    虽然在交换网络下无法对其它主机进行直接嗅探,但是我们无法保证在我们的数据包经过的防火墙或者网关时候不会被监听。就比如在实验室的网络环境下,实验室的管理员在网络出口的防火墙处对数据包进行分析是易如反掌的事情。

    所以我们总结一下,用户通信的数据包被监听可能发生在几种情形下:一、共享网络,网络用户通过集线器连接到网络;二、交换网络的结点不可信任,比如 公司网络的出口防火墙管理员不可信;三、缺乏安全机制的无线网络,比如学校为学生提供的无线网络连接(用 WEP 加密传输的网络可以认为是缺乏安全机制);四、有ARP欺骗的交换网络。

    由于很多网站的登录 session 是使用的 http 协议,在此协议下,用户名和密码都是通过明文传输的(抓虾和 sina 就是一个例子),所以当用户处在上述的网络环境下时,很有可能数据包被别人监听到。而数据包一旦被监听和分析,得到用户的信息易如反掌,南京大学小百合 BBS 最近的一篇文章:你还敢在教室中享受无线吗? ,就是一个很生动的例子。

    3. 为什么 Google 更安全?

    首先,因为 Google 采用了 https 协议来处理用户登录请求。https(Hypertext Transfer Protocol over Secure Socket Layer) 协议是指加强安全的 http 协议,正如它名字所示,它采用 SSL 来保证数据的加密传输。举个很有证明力的事实,如果你有任何一个银行的网上银行帐号,请打开你的网银登录窗口,查看上面的地址栏内容开头是不 是:https://xxx.xxx.com/xxxx 。没有任何一家银行采用 http 协议处理网银登录请求,这说明了什么?http 协议不安全。

    其次,因为 Google 使用可选的 https 协议来提供内容传输服务。虽然 Google 在其任何服务的登录请求处理中都是使用 https 协议,但是在认证完用户之后,和 Google 服务器的连接就转回到了 http 协议。这样虽然 Google 的用户名和密码不能被窃听到了,可服务的内容,比如 Gmail 邮件的邮件内容就会被恶意用户窃听到。那么如何使整个通信的内容都受到保护呢,就需要使用 Google 提供的可选 https 服务,只需要在你的浏览器地址栏内容的最前面 http:// 换成 https:// 即可。

    4. 为什么 163, sina, 抓虾 不安全?

    sina 和 抓虾 没有提供任何的帐户信息和内容的安全传输功能,所以在课堂上演示嗅探器工作方式的时候,演示者一般都会首先拿 sina 开刀,原因很简单,它是个大网站。

    163 呢,比前面两个好一点儿,它提供了可选的帐户信息的加密传输功能,就是在登录 163 信箱的时候,在登录框下面有一个"增强安全性"的选项,如果勾选了增强安全性选项,163 就会用 https 来处理用户的登录请求。但是 163 仍然没有提供对用户内容的加密传输功能,即 163 的所有邮件在网络上都是明文传输

    5. 如何使用 Google 提供的安全服务?

    如果用户希望自己的帐户信息和传输内容都受到保护的话,那么就应该使用 Google 提供的 https 连接登录 Google 服务。比如Gmail 的 https 入口是:https://mail.google.com/ ,Google Reader 的 https 入口是:https://www.google.com/reader/ 。在 Google 其它的服务中,用户也可以简单地通过将地址栏的 http:// 换成 https:// 来选择使用安全传输。

    6. 使用 Google 提供的安全服务的额外好处

    使用安全的加密传输能保证自己传输的信息不被别人获取,这是显而易见的好处,但是使用 Google 的安全服务还有一点额外好处:避免自己的网络访问被关键词过滤。

    有过访问敏感站点经验的同志可能都知道,如果网页中包含某些关键词,连接往往会被重置。就比如用户使用 Google Reader 订阅了某个激进的博客的RSS FEED,如果使用传统的 http 连接,当文章中包含敏感关键词时,Google Reader 就会与服务器断开连接。如果使用加密传输的话,传输内容就避免了被关键词过滤,就不会发生类似连接被重置的情况。

    4/25/2008

    Blogroll and BlogAD Powered by Google Reader

    用 Google Reader 生成 Blogroll(侧栏链接列表) 和博客推介广告

    作者:杨文博 < http://blog.solrex.cn >

    地址:http://blog.solrex.cn/articles/blogroll-and-blogad-powered-by-google-reader.html

    我一直认为 Google Reader http://reader.google.com 是最好的在线博客阅读器,但是它的功能不仅仅是博客阅读器,下面介绍 Google Reader 还能为 Bogger 做的两个小功能。

    一、用 Google Reader 生成 Blogroll(侧栏链接列表)

    相信很多 blogger 都比较头疼于如何设置 blogroll:用博客程序自带的吧,不一定好看(尤其是Wordpress 自带的);自己写 HTML 吧,太费劲,尤其在添加/删除链接时,很麻烦。那看看我用 Google Reader 生成的 blogroll 吧(也可直接到我博客主页查看效果):

    Blogroll Demo by Google Reader

    还是挺漂亮的吧,怎么生成的呢?其实方法很简单,如果你使用 Google Reader 来管理自己的博客订阅,只需要把你要链接的朋友的博客订阅放在一个 folder 里,比如我的就是 BlogRoll, 然后到 Settings->Tags 设置里,将 BlogRoll 这个 tag 的权限设置为 public 即可,如下图所示:

    Blogroll Setting in Google Reader

    看到 BlogRoll 那一行最后一个链接没?"add a blogroll to your site",下面的操作我就不说了吧。(注意,需要博客程序支持添加 JavaScript源码,MSN Space和新浪一流恐怕没办法。)

    这样做好之后,当你想在 blogroll 里添加/删除一个朋友的链接时,就可以直接在 Google Reader 里对 BlogRoll 文件夹添加/移除订阅即可。别忘了 Google Reader 也支持修改链接的名字哦!

    二、用 Google Reader 生成博客推介广告

    有自己的个人网站也是一件很麻烦的事情,不知道个人主页里应该写什么内容,咱不是什么牛人,也没什么可写嘛。如果页面挺空,就可以把自己的最新博客文章链接放上去啊,至少要在自己的个人主页上推广一下自己的博客嘛。看看我在一些页面上放的"博客推介广告":

    Blog AD By Google Reader

    其实这是一个小 trick,Google Reader 不是支持将订阅内容共享出来嘛(就是上面那张图里的"add a clip to your site"),那么我当然可以只共享自己的博客内容喽。将自己的博客订阅单独放在一个 folder 里,然后"add a clip to your site",^_^。

    这样每次你一更新自己的博客,个人主页的链接就跟着更新了,当然了,也可以在某些支持 js 脚本的网站上做签名档…

    三、(你不是学数学的吧,不是只有两个功能吗?)顺便推广一下 Firefox

    知道上面的几个截图怎么生成的吗?没有使用任何其它程序,只用了 Firefox 的一个插件:Screen Grab ,功能强大吧!

    Ubuntu 8.04 LTS Desktop Edition Released

    Ubuntu 8.04 长期支持桌面版本 Linux 发布

    [本博讯,北京时间2008年4月24日19点] Canonical 公司发布了最新的开源 Linux 操作系统发行版:Ubuntu8.04 LTS(长期支持)桌面版,Canonical 也同时发布了 Ubuntu 8.04 长期支持服务器版。

    Ubuntu(音:oo-BOON-too[u:’bu:ntu:]) 8.04 LTS(Hardy Heron) 是 Canonical 公司自 Ubuntu 6.06 LTS 以来发行的第二个长期支持版本,它将提供对桌面版 3 年,服务器版 5 年的长期升级和服务支持。Linux Foundation 2007 年的调查结果显示,Ubuntu Linux 已经成长为桌面市场的后起之秀,占据了 Linux 桌面版本的头把交椅。同样,这次 Ubuntu 8.04 将以更完善的硬件支持,更漂亮的用户界面,更新更多的软件包选择,更方便的用户交互掀起一场 Linux 桌面系统的大革命。

    Ubuntu 8.04 的完整下载地址列表:http://www.ubuntu.com/getubuntu/downloadmirrors

    Ubuntu 8.04 的系统安装指导,常用程序安装,桌面效果截图,可以在这里找到。

    如果你是新手也没有关系,一个小软件 Wubi 允许你在 Windows 下像安装应用程序一样轻松安装 Ubuntu Linux

    另外,中国北京的清北DIY俱乐部目前宣布向全国提供免费 Ubuntu 光盘派送,每人可免费申请一套Ubuntu 8.04系统光盘(1DVD+1CD),详情见http://quickbest.com.cn/discuz/thread-26153-1-1.html

    PS: 秀一个别人做的 Ubuntu Sticker:

    Image

    4/21/2008

    Why Does Not Gtalk Support Video Chat?

    为什么 Gtalk 不支持视频聊天?

    作者:杨文博 <http://solrex.cn>
    地址:http://blog.solrex.cn/articles/why-does-not-gtalk-support-video.html

    这是一个网友问我的问题,当时我的回答是:大概 Jabber 协议不支持吧,这个问题你应该去问 Google。但是当我搜索了一下 Gtalk 的帮助和网络上的内容后,居然没有发现这个问题的解答(可能是我搜索技术不到家),这就变成了一个有趣的问题。

    为什么 Gtalk 不支持视频聊天?在咨询了 Wikipedia 之后,我发现我的回答基本是对的,因为 Gtalk 使用的聊天协议不支持。

    Gtalk 使用的通信协议叫做 Jabber,因特网工程工作小组(IETF)已经将 Jabber 的核心 XML 串流协定以 XMPP(Extensible Messaging and Presence Protocol) 之名,正式列为认可的即时通讯及 Presence 技术。而 XMPP 的技术规格已被出版为 RFC 3920RFC 3921。所以在一般的讨论中,我们不区分 Jabber 和 XMPP。

    从上面的介绍中我们也可以看出,XMPP 的技术是基于可扩展标记语言(XML)的,所以呢它有它的很多优点,比如:分布式(想像一下用电子邮件聊天),可扩展(XML命名空间的特性),弹性佳(可用在不同领域,比如网络监控,游戏),多样性(Jabber协议的公开性使你不必被一款聊天软件绑架),安全(利用已有的SASL及TLS技术)。

    但是也正因为 XML,XMPP 协议有一些缺点,正是这些缺点给 Gtalk 带来了限制。

    缺点一:Scalability(规模可伸缩度?)–> Gtalk 不支持群组聊天(Group Chat)。

    XMPP 的可伸缩度不好,当进行多用户聊天或者提供发布/订阅服务时, XMPP 会带来很多 overhead(网络开销),这样会大大降低整个系统的通信效率。一些组织正在通过添加协议扩展来解决这个问题,就比如 2007 年 6 月 Google 在 Gtalk Gadget(像我们通常在Gmail窗口中看到那个)中加入了 Group Chat 功能,但是直到现在桌面版 Gtalk 仍然不支持 Group Chat。

    缺点二:No binary data(无法传输二进制数据)–> Gtalk 不支持视频聊天。

    XMPP 协议的数据包通常是被编码成一个长 XML 文档,限制了它直接传输原始二进制数据流的能力,所以使用 XMMP 协议的聊天工具的文件传输一般使用其它协议,比如 HTTP 来实现,如果实在无法避免用 XMMP 协议传输文件等,它一般使用 Email 中常用的 base64编码。

    但既然这样,为什么 Gtalk 支持语音聊天呢?这就要说到另一个协议,XMMP 的扩展协议 Jingle,这是一个还没有被 XMPP标准正式采纳的扩展,而 Gtalk 采用的 Jingle 协议和已提交的草案也有所不同。Jingle 协议使得 Gtalk 支持 p2p 的多媒体互动,比如语音聊天功能。

    那既然有多媒体功能扩展,为什么 Gtalk 现在不支持视频聊天呢?我不相信 Google 的工程师没有尝试添加视频聊天功能,可能的原因我猜想是视频聊天的性能达不到。猜想的依据是什么呢?Gtalk API 文档,Google 说:In the future, we plan to support SIP signaling as well. 如果 Jingle 能完美支持视频聊天,大概没有需要去支持另外一个类似的多媒体协议吧。

    所以呢,我们可以看到虽然 Gtalk 的当前版本有内存泄露 BUG,而一年多来(2007年1月5日发布Gtalk 1.0.0.104) Google 仍然没有发布新版本,这说明 Gtalk 项目组的精力被其它更重要的东西占用了,这个东西会不会是对 Gtalk 视频和群组聊天的支持呢?我们拭目以待。

    喜欢玩新软件的朋友可以尝试一下这个:Google Talk Labs Edition,里面有一些好玩的新功能!

    4/20/2008

    About Hit Stat of Feedburner and Feedsky

    我发现我真傻。

    由于文章的原始链接被 Feedburner 修改,而 Feedburner 的子域名被封,以前一直无法从 Google Reader
    里点击文章标题进入我的博客网站,我也一直以为这是件没办法的事情。今天无意中看别人的文章才发现,这是因为在 Feedburner 中启用了
    Item link clicks 功能的缘故,我郁闷啊!

    所以今天我把 Feedburner 和 FeedSky 的文章点击统计功能都关闭了,啊哈,链接干净了!现在总算可以直接点击订阅的文章标题进入我的博客文章页面了!
    4/19/2008

    Random Beijing Image 5

    播放器看来还是 Amarok 更好,至少它能显示一部分中文歌曲文件名,不像 XMMS,怎么设置都看不到中文字(注意到没有,Ubuntu 8.04 的 Notification Area 现在带天气播报):

    Amarok 播放器

    写代码累了,拿起飞镖休息一下吧!虽然最近家乐福可能人少点儿,这个小玩意儿我还是在沃尔玛买的,才 11 块:

    镖盘

    无意间在卓越网看到下面这个木头小镜子,很喜欢,就买了下来准备送给女友:

    很精致的小镜子

    上周末班里组织春游去北京植物园玩,下面是同志们的合影:

    植物园之大合照

    又想起去年暑期的一张照片,小百合上版友在北京混的几个南大人,北航的兄弟们看了可能比较熟悉,这就是在北航西南门丽晶酒店门口照的。从左到右:我, baosheng,proline, daoming, ufx222, xum84(均为百合ID):

    南大的北漂们

    昨天随手搜了一下,发现 Google 搜索我的名字"杨文博",我已经占到第一位了。用某人的话说:"做网络的人把自己做到搜索引擎第一位是基本要求。"因此,纪念我刚刚达到基本要求 ^_^:

    Google 我的名字

    4/18/2008

    Ubuntu Linux 8.04 on my Dell Latitude D630

    在 Dell Latitude D630 上硬盘安装 Ubuntu Linux 8.04

    最后更新时间:2008年4月18日

    作者:杨文博 <http://solrex.cn>
    地址:http://blog.solrex.cn/articles/ubuntu-8-04-on-my-dell-d630.html

    摘要

    这份文档主要描述了我在自己的 Dell Latitude D630 上安装 Ubuntu Linux 8.04 的过程。

    目录

    1. 介绍
    2. 安装
    3. 总结

    1. 介绍

    虽然一直想忍着等 Ubuntu Linux 8.04(Hardy Heron) 正式发布了再安装它,但最后还是受不了诱惑,在还有 6 天就发布时候当了一次小白。这次 Ubuntu 真的是让我相当相当满意,安装过程什么问题都没有出,所有硬件均一步识别,太爽了!这次写的安装介绍,要比上次那篇简单多了,我真心希望以后的 Ubuntu 版本安装的时候再也不用看别人的安装介绍了。

    而且这次 Ubuntu Studio 的 theme 也比 7.10 漂亮许多,Compiz-fusion 的 3D 桌面特效也更好了,真酷!兄弟姐妹们,来玩 Ubuntu 吧!

    2. 安装

    [安装基本操作系统]
    由于我电脑上本来就有 Ubuntu 7.10 和 Cent OS 5.1,所以我的 Ubuntu 8.04 是通过修改 grub 的 menu.lst 来进行硬盘安装的。

    首先,下载安装光盘镜像文件:
    $ wget -c http://cdimage.ubuntu.com/daily/current/hardy-alternate-i386.iso
    由于现在 Ubuntu 8.04 还没有正式发布,所以我是从 daily build 的地址下的,当看到这篇文章时可能它已经发布了,那就请到官方公布的地址下吧。

    其次,下载硬盘安装文件:
    $ wget http://archive.ubuntu.com/ubuntu/dists/hardy/main/installer-i386/current/images/hd-media/vmlinuz
    $ wget http://archive.ubuntu.com/ubuntu/dists/hardy/main/installer-i386/current/images/hd-media/initrd.gz

    将这三个文件放在某个分区根目录下,再修改 /boot/grub/menu.lst,在列表最后添加上以下几行:
    title           Ubuntu 8.04 Install Entry
    root            (hd0,3)
    kernel          /vmlinuz root=/dev/ram ramdisk_size=100000 devfs=mount,dall
    initrd          /initrd.img
    请注意第二行的(hd0,3)是指放镜像文件那个分区编号,请根据自己情况自行修改。一般情况下如果放到了 /dev/sdan 下的话,这个就应该是 (hd0,n-1)。

    然后重启电脑,在 grub 中选择引导项 Ubuntu 8.04 Install Entry 进行安装,安装过程不赘述。我一般选择系统语言为英语,地域为中国。

    [修改更新源列表]
    选择速度最快的源,将 /etc/apt/sources.list 中默认的官方源替换掉,比如我的 sources.list 文件内容就是
    deb http://debian.ustc.edu.cn/ubuntu/ hardy main restricted universe multiverse
    deb http://debian.ustc.edu.cn/ubuntu/ hardy-updates main restricted universe multiverse
    deb http://debian.ustc.edu.cn/ubuntu/ hardy-security main restricted multiverse universe
    deb http://debian.ustc.edu.cn/ubuntu/ hardy-backports main restricted universe multiverse

    [更新操作系统]
    $ sudo apt-get update
    $ sudo apt-get upgrade

    [安装受限驱动]
    在更新完操作系统后,System Notifacation Area(桌面右上角) 中会出现提示安装受限驱动的气泡,点击安装即可。

    [安装中文输入法]
    在 System->Administration->Language Support 中选择安装中文支持,并在下方勾选上 Enable support to enter complex characters. 系统会自动下载并安装中文支持和中文输入法,安装完后系统会要求重启,重启以后就可以在软件中直接用 Ctrl+Space 调出输入法了。^_^ 比以前的版本配置中文输入法简单太多了!!!

    [安装 Windows XP 中文字体]
    这是我写的一个小脚本,可以将双系统的 XP 字体拷贝到 Linux 下并使用它们。注意,这将涉及到版权问题,如果不确信的话,请跳过这一步。
    $ wget http://share.solrex.cn/scripts/install_win_CN_fonts_to_linux.sh
    $ sudo sh install_win_CN_fonts_to_linux.sh
    然后重新登录 X window

    [安装 Ubuntu Studio 主题]
    Ubuntu Studio 的黑色桌面主题是我非常喜欢的桌面主题,再配上诺贝尔和平奖得主戈尔的获奥斯卡最佳纪录片奖的电影 An Inconvenient Truth 的灰色背景海报,简直太配了。如果不喜欢,请跳过这一步。
    $ sudo apt-get install ubuntustudio-theme
    然后在 System->Preference->Appearance 中选择使用 Ubuntu Studio Theme。

    [安装 Compiz-Fusion 3D 桌面特效引擎]
    $ sudo apt-get install compiz-fusion-plugins-* compizconfig-settings-manager emerald
    然后在 System->Preference->Advanced Desktop Effect Settings 中配置喜欢的桌面特效。

    [安装其它应用软件]
    我这里列出的应用软件太多了,可以选择需要的安装。
    $ sudo apt-get install krdc vim-full qterm libc6-dev mozilla-thunderbird kscope g++-4.2 mplayer xmms2 smplayer eclipse tofrodos hexedit p7zip-full stardict ntp nfs-client subversion dia kivio cheese sun-java6-jdk kile kmplayer sysv-rc-conf texlive

    3. 总结

    Ubuntu 8.04 对电脑硬件的支持又进了一步,至少在我以前曾经有问题的显卡和声卡上都没有出现问题,让人很开心。而更好看的桌面主题,更酷的 3D 桌面效果,更简化的安装过程,更完善的多语言支持,真的很赞,我相信 Ubuntu 将借此进一步巩固和扩大它在 Linux 桌面市场占有率。大家都来用 Ubuntu 吧,它可 Windows 酷多了!

    4/17/2008

    One World, One BBS!

    同一个世界,同一个论坛!

    今天在我本科导师的博客里看到了这个:英文试译:卡弗蒂的话及某网页的跟贴,又在豆瓣看到这个:看看河南人的处事原则吧,又想起我师兄大四时做的一件事情在百合上引起的那次名为“南大第一牛人现身”的讨论(讨论已经找不到了)。

    忽然觉得,这个世界的论坛怎么那么像呢!

    而且,这个世界真的有点儿可笑,看到卡弗蒂的话:

    嗯--,我不知道中国是不是有什么不同,但是我们和中国的关系当然已经不同了。因为伊拉克战争,我们连眼球都已经被中国吊住了。一个原因,他们手中握有数万亿计的我们印的钞票。不仅如此,我们对华存在着数以万亿计贸易赤字,还依然不断进口着他们的含铅的玩具和有毒的宠物食品等垃圾,却在向他们出口工作。(我们)在他们那一个月工资只需付一美元的地方,生产出我们在沃尔玛买到的玩意儿。所以我想我们和中国的关系当然是改变了。我想,他们基本上五十年来是一样的,同样的一群匪类和暴徒。

    难道诸位不感到熟悉吗?想想前几年(包括现在)某些人在论坛上对河南人的谩骂和妖魔化形容,比如这个,比如这个,比如这个,还有豆瓣这个,大概不比卡弗蒂更礼貌吧。我现在好奇的是,那些曾经对河南人恶语相向的人,现在怎么看卡弗蒂呢?

    如果你连尊重和善意地对待自己的同胞兄妹都不能,有什么权利要求外国人对你以礼相待呢?(这句话只针对那些对河南人保持深刻偏见的中国人!)

    4/14/2008

    Chen Liangyu and Chen Shoufu

    中共中央政治局原委员、中共上海市市委原书记陈良宇被天津市第二中级人民法院认定犯受贿罪,判处有期徒刑十四年,没收个人财产人民币30万元;犯滥用职权罪,判处有期徒刑七年,两罪并罚,决定执行有期徒刑十八年,没收个人财产人民币30万元。

    珊瑚虫版QQ作者,北京理工大学计算中心老师陈寿福被深圳南山区法院认定犯侵犯著作权罪,判处有期徒刑三年,并处罚金人民币120万元。

    两则新闻充分显示了中国政府重视知识产权保护,打击软件侵权盗版行为,维护著作权人利益的决心!!!

    PS: 看不懂的同学请做一道成语填空:窃钩者_,窃_者侯

    4/11/2008

    Gum Bleeding

    大约从大三后期我就开始在刷牙的时候牙龈出血,然后断断续续一直延续到现在。刚开始还去校医院看看,医生给拿些碘甘油什么的抹抹,后来看没效果也就懒得去了,就好像我的慢性鼻炎一样,觉得忍着得了。其实一直想到医院洗洗牙什么的,看看有什么效果,可是因为一直忙,就没有机会去。

    前一段回南京那几天忽然牙龈出血变得严重了些,这心里也有点儿害怕,因为长期的牙龈出血可能和血液病有联系。虽然回来之后减轻了许多,还是决定到医院去看看。只有玉泉路本部校医院能看口腔科,今天正好找导师领报销的书费,顺便到校医院看一下牙龈。

    中科院研究生院的校医院特别小,看了一下,貌似跑到那里的都是要看口腔科的,而且口腔科只有下午上班,每天只看六个病人。幸亏我去的比较早,挂到了第二个号,基本上十五分钟后六个人的名额就满了。两个是看智齿的,一个是门牙后面长了个小牙,剩下两个是本部的同学,挂了号直接回宿舍等去了。

    大夫是个女的,说话特别温柔,看了下我的牙龈,说是因为牙石太多引起的牙龈发炎造成的,建议我洗一次牙。那既然来了,也懒得再进医院了,就顺便在校医院洗了一下。洗牙是自费,不算公费医疗里的,一百块钱,和南大校医院的要价差不多。其实我觉得设备可简陋了,好像就一个超声波的洗牙头,加上冲水装置,把那个东西放到嘴里七刮八刮的,刮一会儿吐一下积在嘴里的血水,大概花了二十分钟左右,流了不少血。刮完了一舔牙齿,还真不一样,尤其觉得下面几颗门牙细了许多,大概是附着在上面的牙石被刮掉了。

    有意思的是那医生看了我的牙,问我有没有做过牙齿矫正,说我的牙长得真是特别整齐,让我小小自豪了一把。还专门让她检查了一下有没有蛀牙,因为我从小就爱吃而且吃过许多甜食,我一直以为我肯定有蛀牙,结果居然没有。以后可是要好好的保护了,不然牙痛可是真的很受罪。

    唉,也不知道洗洗牙有没有效果,但愿牙龈别再出血了!
    4/7/2008

    Received Google Adsense PIN Letter

    今天总算收到了 Google Adsense 寄给我的 PIN 信封,距离它公元 2008 年 3 月 24 日给我的电子邮件通知正好两周。现在貌似 Google 改政策了,以前都是 Adsense 帐户赚到 $50 以上才会寄 PIN 的,现在仅仅 $10 以上就邮寄 PIN 了。我的 Google Adsense 帐户开了两个月零七天,才赚了 $14.09,唉,真慢啊,什么时候才能到 $100 呢?

    Samsung Java Development-Hello World

    三星手机 Java 开发-Hello World 篇

    作者:Wenbo Yang <http://solrex.cn>
    原文链接:http://blog.solrex.cn/articles/samsung-java-development-hello-world.html
    最后更新:2008年4月7日

    摘要:

    这篇文章主要介绍了在 Windows 平台上使用 NetBeans 和 Samsung SDK 构建三星手机 Java 开发环境,建立和调试简单 Java 程序的过程。

    目录:

    1. 工具
    2. 安装和配置开发环境
    3. Hello World 程序
    4. 在三星模拟器(Samsung Emulator)上调试
    5. 结论
    6. 参考文献

    1. 工具

    Windows XP: SamsungSDK 不支持 Windows Vista.

    JDK version: 1.6.0_03: 这个版本不重要,自己去下载好了。

    NetBeans IDE 6.01(Mobility) Chinese Edition:
    http://zh-cn.netbeans.org/download/6.0/ml/netbeans-6.0.1-ml-mobility-windows.exe

    Samsung Java SDK 1.0.2
    http://developer.samsungmobile.com/Developer/resources/SamsungSDK/SamsungSDK_1.0.2.zip
    这个版本的 SamsungSDK 支持的三星手机型号为:
    D900 (D600, D820, T809)
    E200 (E380, E390, E500, E780, E830, P200, T509)
    E250
    E590
    E740
    E790 (E490, E530, E570, E620, E720, E880)
    E900 (D800, D830, D840, P900)
    F500 (F500, P300, X820, Z370)
    J600
    L760 (Z140, Z150, Z170, Z230, Z240, Z240E, Z300, Z310, Z360, Z500, ZM60, ZX10, ZX20, ZV40, ZV60)
    P310
    U100
    U600 (U300)
    U700 (P910, P920, P940, Z400, Z540, Z560, Z720, ZV50)

    2. 安装和配置开发环境

    我不知道 JDK 是否必须安装的,因为我电脑里老早就安装上了,但是做 JAVA 开发嘛,JDK 总是需要的,所以建议首先安装 JDK。

    安装完 JDK 之后,安装 SUN 公司的 JAVA 集成开发环境 NetBeans。为什么是 NetBeans 而不是 Eclipse?因为 SamsungSDK 官方支持 NetBeans。

    当 NetBeans 安装完成后,接着安装 SamsungSDK。需要注意的一点是,由于 SamsungSDK 1.0.2 支持的 NetBeans 版本是 5.5,所以在安装过程中要选择是否安装 NetBeans 插件时,请选择否,因为我们使用的 NetBeans 版本是 6.01。

    既然无法自动安装 NetBeans 插件,就需要我们在 NetBeans 中手动添加插件了。具体步骤如下:

    一,从 NetBeans 菜单中选择"工具->Java平台",进入 Java 平台管理器;(我们的 NetBeans 是中文版 *_*,请英文版用户自行理解。)
    二,点击"添加平台"按钮,进入"选择平台类型"步骤,选择"Java ME MIDP 平台仿真器",进入下一步;
    三,在"选择要在其中搜索平台的目录"对话框中,选择 SamsungSDK 的安装目录,比如我的是 D:\Program\SamsungSDK,点击确定;
    四,这时在"平台文件夹"对话框中会出现三个要检测的平台,将三个平台都勾选上,进入下一步;
    五,在"已检测到的平台"对话框中,将三个平台都勾选上,选择"完成",这样我们的开发环境就配置完成了。

    3. Hello World 程序

    下面介绍在 Samsung Java 开发环境下如何建立并在模拟器上运行一个 Hello World 项目:

    一,"文件->新建项目",在对话框中项目"类别"选择"Mobility",然后在右侧"项目"中选择"MIDP 应用程序",点击下一步;
    二,将项目名字更改为"HelloWorld",项目位置可以自行修改,比如我的就是 D:\J2ME,下面两个"设置为主项目"和"创建 Hello MIDlet"保留为默认值,进入下一步;
    三,在"选择缺省平台"对话框中,"仿真器平台"选项选择为"SamsungSDK 1.0",在设备下拉条中,选择目标平台,比如我的手机是 E908,和 E900 是一类,我就选择"SGH-E900",其它选项保持不变,进入下一步;
    四,在更多配置中用户可以自定义更多配置,刚开始使用可以保持不变,点击完成。

    这样我们就建立了一个 Samsung Java 的 Hello World 项目,可以查看它的源代码。由于我们在配置时选择了"创建 Hello MIDlet"选项,此时的源程序已经包含了打印一个"Hello World"的功能,我们只需要在菜单中选择"生成->生成主项目",即可生成 Hello World 项目。

    生成项目后,在项目文件夹里可以找到 dist 目录,比如我的就是 D:\J2ME\HelloWorld\dist,这个目录里面包含了可以在 SGH-E908 上安装并运行的 JAVA 程序:HelloWorld.jar 和 HelloWorld.jad。看着很眼熟吧,对,这和普通的 JAVA 游戏形式是一样的,我们可以把这两个文件下载到手机里并安装它。(不同版本安装方法不一样)

    SGH-E908 的安装方法是:先将 jar 和 jad 文件下载到手机的 other files 文件夹中,在待机状态下输入 *#9998*5282#,然后选 3,输入密码 235282,选择 jad 文件安装即可。

    安装完程序后,我们可以在自己的 Java world 中找到它,运行后,屏幕上会打印出来一行字符:HelloHello, World! 这样,我们的第一个 Samsung Java 程序就成功了。

    4. 在三星模拟器(Samsung Emulator)上调试

    当然,我们写嵌入式程序不可能一次成功,总会有需要找 BUG 的时候,那么如何进行调试呢?仍然以我们 Hello World 程序为例:

    一,先在程序中设置断点,在要设置断点的行前点击边框即可,比如我在 startApp() 函数中的 initialize (); 一行前设置了一个断点;
    二,选择"运行->调试主项目",就可以开始我们的调试了,耐心等待一会儿,会发现弹出了一个 E908 模拟器的窗口,窗口中写着:Select on to launch,因为只有唯一的一个 HelloMIDlet,所以我们直接选择右下角的 Launch,直接点 Launch 是没用的哦,你要点模拟器的手机键盘,作用和按下手机上某个键是一样的。
    三,点下 Launch 之后,激活窗口会重新返回到 NetBeans 中, initialize (); 行前有一个右箭头,指代程序已经运行到断点,我们点"运行->继续",程序就会继续运行,在模拟器中打印出:HelloHello, World!,并在左下显示 Exit 标志,表示程序运行结束。

    如果在第三步产生问题,可能是由于在前面介绍中,我们先"生成主项目"造成的调试信息缺失导致的,可修改设置,更直观的方法是重新建立新项目并跳过生成主项目那一步,使用"运行->运行主项目"或者"运行->调试主项目"来生成主项目文件。

    5. 结论

    三星手机提供的开发环境在一定程度上还是比较易于使用的,这篇文件对三星手机开发环境的建立做了一个简要的介绍,提供了中文入门导引,降低了中文世界初学者学习的难度。

    6. 参考文献

    [1] Samsung SDK 1.0.0 Documentation
    4/5/2008

    Nanjing Spring

    这次回南京,算是真正地感受了一下南京城的春天。大学的前三年,我都在"浦口大学"(南京大学浦口校区)度过,而回归本部的大四,我又跑到北京实习了 6 个月,和石头城的春色擦肩而过。

    以前在南京没怎么逛过公园,大学第一年十一假期去了玄武湖公园,在公交车上被挤成鱼罐头了;大学第二年五一去中山陵公园,在孙中山墓室外被挤成鱼苗了;只有两次集体出行玩得还可以,一次去梅花山,光忙着爬紫金山了;一次去古林公园,光忙着烧烤了。

    在临毕业的时候和女友一起去过雨花台公园,其实雨花台不仅仅是个烈士陵墓,里面还有一些其它的小景点,比如方孝孺墓等等。整个公园里树木保存得不错,还有几个小小的植物园,蛮值得逛逛的。

    这次回去正好赶上南京的春天,太阳好的日子不在室外享受享受就太可惜了。于是我们不是在校园里晒太阳,就是出去逛逛街,也顺便逛了两个公园:燕子矶和绣球公园。

    大名鼎鼎的燕子矶,居然那么小,是让我意想不到的。整个公园绕一圈下来连十分钟都不用,所以开发者就将燕子矶和周围三个景点一起捆绑售票,但是其它三个就更可想而知了,仅仅是非常小的两个溶洞和一个道观。我们去的时候还不算旺季,所以公园里几乎没人,在燕子矶公园最好的就是看长江的角度很棒,其它的都是一般啦。

    绣球公园其实是个市民公园,免费的,里面好多老爷子老太太下棋,打扑克,唱戏,抖空竹,是一个休闲的好地方。里面有一个景点,据说是朱元璋的马皇后的绣鞋,比较汗的是,那个鞋是铜的...

    在校园里晒太阳的时候,居然发现南大也有樱花,大约七八株的样子,开得很茂盛,很多人围着拍照。我也用手机拍了几张,只是效果都不大好。樱花真的很漂亮,尤其是一阵微风吹过,花瓣如雨下的时候,美极了!可想而知以樱花闻名的武汉大学春天的校园该有多好看了!
    4/3/2008

    CAS Net Version 1.0 Released

    中科院 IP 网关 Linux 登录客户端版本 1.0 发布

    作者:Wenbo Yang <http://solrex.cn>
    原文链接:http://blog.solrex.cn/articles/cas-net-version-1-released.html
    最后更新:2008年4月3日

    愚人节和大家开了个小玩笑 http://blog.solrex.cn/articles/cas-net-version-1-pre-released.html ,不过这次可不是玩笑了。CAS NET 正式发布版本 1.0,官方主页:http://share.solrex.cn/casnet/

    CAS Net 是中科院内部 IP 控制网关的 Linux 登录客户端,此软件完全使用 Python 语言写成,同时支持命令行和图形界面,使用简单,安装方便,实乃中国科学院 Linux 使用者居家旅行必备之良品 :)。

    最新版本(1.0)特性:

       1. 客户端同时具有命令行和图形界面,满足不同用户需要。
       2. 可设置选项多,拥有较高扩展性。
       3. 可保存用户设置,登录简单快捷。
       4. 纯 Python 编程,修改简单,扩展性强,可移植到不同操作系统平台。
       5. 开放源代码,确保程序无后门。

    软件效果截图:

    Ubuntu 7.10 系统下截图
    Ubuntu 7.10 系统下截图

    4/1/2008

    CAS Net Version 1 Pre Released

    CAS NET GUI-中科院 IP 网关 Linux 登录客户端版本 1pre 发布

    更多请访问官方主页:http://share.solrex.cn/casnet/

    CAS Net 是中科院内部 IP 控制网关的 Linux 登录客户端,此软件完全使用 Python 语言写成,同时支持命令行和图形界面,使用简单,安装方便,实乃中国科学院 Linux 使用者居家旅行必备之良品 :)。

    最新版本(1 pre)特性:

    1. 客户端同时具有命令行和图形界面,满足不同用户需要。
    2. 可设置选项多,拥有较高扩展性。
    3. 可保存用户设置,登录简单快捷。
    4. 纯 Python 编程,修改简单,可移植到不同 Linux 平台。

    感谢列表:

    • giv<goldolphin[at]163.com>: 命令行客户端脚本的原型作者

    版权声明:

    Copyright (C) 2008 Wenbo Yang<http://solrex.cn> 祝大家节日快乐!

    本软件遵从 GPL 协议<http://www.gnu.org/licenses/gpl.txt>,在此协议保护之下,您可以自由地使用、修改或分发本软件。

    Ubuntu 7.10 系统下截图
    Ubuntu 7.10 系统下截图
    CentOS 5.1 系统下截图
    >Cent OS 5.1 系统下截图