Sunday, August 31, 2008

走遍中国,还是火车比较好

迷上了 NHK 的旅行记录片,关口知宏的《中国铁道大纪行》。

沿着单程最长距离达 36000 公里的铁道线,以火车车厢及各沿线站点为舞台,用摄像机记录各地人们的生活百态。也正是这种随机地、未作预先安排的摄录,才让我们看到了许许多多平日里被我们所忽略的感动。当然,关口知宏本人作为专业旅游家记者的能力也是相当地棒。虽然他讲不了几句中文,但是,看他总能把整个车厢的气氛活跃起来,确实很佩服呢……

日本 NHK 台还特地把关口知宏去过的路线在网上标注了出来。下次旅游的话,有参考资料了呢。

Thursday, August 28, 2008

Commonwealth Bank 里个个都是 Data Mining 高手

几次在 Commonwealth Bank 和那里职员“交锋”的经历。让我怀疑,要么Commonwealth Bank 的职员全部训练有素,要么就是他们所应用的那套软件有相当不错的 Data Mining 模块。

如果你有一万左右的存款在 Streamline Account 或者 Netbank Account 里,柜台的业务员一定会热情地问你打算怎么处理这些钱,如果暂时不用,是否愿意参与他们的投资理财计划……如果你说暂时无意参与,他们还会热情地递给你一本小册子和一张名片——潜台词是,改变想法了再找他们。

如果你在随便什么汽油站消费过汽油,下次去银行。业务员会问你是否有给车子办保险,是否愿意使用他们的保险业务……直到最后你坦白说这车子不是你的,只是帮人加油而已,他们才放弃。

最神奇的经历是今天,正逢交房租的日子,而自己又在 Central 附近转悠,于是便就近找了个营业网点去存款。业务完成,业务员这次却拉着我让我更新个人信息。从地址,到移动电话,到固定电话,都了解了一下……想来想去,除了凑巧?或他们有每年度都要求客户更新资料的习惯?之外,只有一个合理的解释:一般缴房租都会选择离住址近的营业网点,于是我这次在 Central 交房租,让他们产生了一个我已经搬家的前提假设?于是对照原来 Randwick 的地址,他们便要求我能够配合更新个人信息?

如果能够研究 Commonwealth Bank 的那套软件,应该会有很多有趣的东西吧……

Wednesday, August 27, 2008

每天晚睡是不对的

每天忙作业忙得很晚,最迟可以到 3,4 点钟才睡觉。

但是,这样不好,不好~~

晚睡就会晚起,每天都把睡眠时段后移,其实根本就没有减少睡眠时间——有时候因为生物钟混乱还会睡得更多。而且,睡眠质量似乎也不是很好,每天起床都顶个大眼袋。

家里的生态环境也被破坏了。12 点以后,本是夜深人静,老鼠出洞的好时光。家里的老鼠会在这个时候出来活动筋骨。到了早上,它们便再将厨房和客厅的使用权转交给我们。只是现在我一直占着那客厅,到了 3,4 点钟都还意犹未尽——昨天,确切地说是今天凌晨,我似乎听到老鼠在某个角落吱吱喳喳地抗议呵。

Saturday, August 23, 2008

体育运动也有深刻的贫富差别

星岛环球网上看到的一篇原发于《中国青年报》的文章。实话呢……转载一下:

同一个世界,同一个梦想——这是本届奥运会的宣传口号,这个美丽的口号寄托着人类期望世界大同的理想主义情怀,以体育弥合冲突的奥林匹克追求。可现实远非如此。真实的世界是一个被贫富差距、发展鸿沟、文化差异等因素撕裂的不同世界,梦想也各有不同。同床还异梦呢,何况这么大的世界。不说其他,许多奥运项目上就深烙着诸如阶层、贫富、性别、族裔、肤色等差异的印记。

中国举重队此次创纪录地夺得了7枚金牌(如果不是名额限制会拿更多),确立了世界举坛的霸主地位,美丽、大方、帅气的姑娘小伙们赢得了世界的掌声。可从媒体报道中能够发现,这些举重冠军大多出自贫穷家庭。比如龙清泉,来自湘西一个土家族小村落,小时曾靠捡矿泉水瓶赚钱,举重时靠着别人资助生活费。比如广州番禺农村的陈燮霞,9岁被体校选中时,为省2块钱路费其父骑20公里单车把女儿送到体校,又瞒着家人借钱供女儿训练。

因为举重很累很辛苦,很难获得商业赞助,职业前途又很狭窄(惟有夺冠才有出头之日),所以很少有富家孩子愿意练举重。而举重技能对运动场所、器材、设施等物质资源的要求不高,所以许多穷孩子选择了以举重为业,把举重当作改变自己命运的机会。而富人更愿意参加高尔夫球、网球、赛车、滑雪、航海、赛艇、马术之类能在大把烧钱中炫耀身份的体育运动,他们更多只是把运动当作一种业余消遣和休闲放松,不会当作职业。

这几乎是一种普遍现象。科克利教授介绍了美国拳击中的阶层区隔。著名的拳击运动推动者邓迪说,任何拥有良好职业的人,都不可能为了挣一个美元而使自己的身体受到损伤。他的意思是,中上层的男子没有理由需要通过参与像拳击这样的运动、使自己的身体受到损伤来获得成功,这就是为何拳击选手往往来自最低收入阶层的原因。当法国社会学家瓦匡特问一位拳击手,他希望自己的生活有何改变时,他说:我希望我的出身能高贵一些,出生在一个富裕的家庭。在瓦匡特的访谈中,80%的拳击手不希望自己的孩子成为拳击手:不,没有拳击手希望他们的儿子去练拳击,那太苦了,实在是太苦了。对贫民窟里的非洲裔美国人来说,参与拳击是提高其社会地位的最好途径之一,尽管在职业拳击中没有几个黑人拳击手能过上舒服的日子。

而且,因为发展机会的不平等,年轻的非洲裔美国人更愿意选择成为职业运动员,选择那些能作为一项终身职业的运动;而白人男性倾向于发展其他职业目标,去上父母上过的常青藤大学,仅仅将运动当作业余爱好,他们拥有的资源让他们玩得起。

奥运项目上不仅存在阶层差异,还有性别差异。同是足球,男足和女足完全不一样,就拿滥到不能再滥的中国男足来讲,女足姑娘比他们强多了,可女足姑娘的工资尚不够男足洗脚。因为男足比赛更有竞争性、对抗性和观赏性,更能体现速度和力量,更能获得政府投入和商业赞助,所以男人运动一般都比女人运动富。而且在教练、训练、管理、体育医学、市场运作和经营方面,男人比女人有更多的就业机会。

还存在国家的差异。在富裕国家,运动员有着非常好的训练条件和很昂贵的运动设备,而发展中国家则不一样。比如阿富汗运动员的训练场地就非常简陋,参加田径项目的两名选手,只能在自己家所在的那个山头找块平地进行“热身”。两位伊拉克的赛艇运动员连比赛服都没有,穿着自己的旧衣服在比赛;美丽的女运动员脚上穿的是一双自己在旧货市场上淘回来的跑鞋——这个场景感动了无数中国网友。

穷运动,富运动,真实的世界就是这么残酷——可正因为世界如此不同,处处深烙着贫富差距印迹,所以奥林匹克“同一个世界,同一个梦想”的理想追求才那样的动人。我们来自不同的世界,有着不同的梦想,但今天站在同一个赛场上,我们就身处同一个世界追逐同一个梦想——追求参与快乐,追求更快更高,追求单纯的运动愉悦。

Wednesday, August 20, 2008

Wicket 下实现 Checkin 和 Checkout 日期的连动

Shrimpy 的推荐果然不虚, Wicket 确实是一个实现 Presentation Layer 的好框架。靠着 Wicket,整个 HTML 的静态代码和 Java 的动态代码可以完全分割开来。静态代码用 HTML 文件保存,动态代码使用 Java 格式, Wicket 自身便做将 HTML 和 Java 在后台绑定的工作——整个思路有点像 ASP.net,一个 C# 文件对应一个页面——关键是, Wicket 还能实现 AJAX 功能。相当地帅。

用着顺手,便在最近的项目中向老板推荐了 Wicket。于是,一个带薪尝试 Wicket 的机会便产生了……

不过,作为一个新的框架,相关资料实在是太少了……整个项目过程,一半靠 Wicket Example,一半靠 Google。

这个 Checkin 和 Checkout 日期连动的代码,就是靠着瞎蒙鼓捣出来的。很多网站的搜索都需要实现当前日期,起始日期和结束日期的连动,以保证当前日期>起始日期>结束日期。放出代码来供大家参考,如果有其他好思路,也请不吝赐教。

HTML 部分代码

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:wicket="http://wicket.sourceforge.net/">
    <head>
        <title>Related Date Pickers</title>
    </head>
    <body>
        <center><h1><span wicket:id="message">message will be here</span></h1></center>
        <br/><br/>
        <form wicket:id="dateForm">
            <table align="center" id="dateForm">
                    <tr><td><input type="text" readonly="readonly" wicket:id="checkInDate" /></td></tr>
                    <tr><td><input type="text" readonly="readonly" wicket:id="checkOutDate" /></td></tr>
                    <tr></tr>
                    <tr><td align="center"><input type="submit" value="Submit" /></td></tr>
            </table>
        </form>
        
        <div align="center" id="feedbackPanel">
            <span wicket:id="feedback"/>
        </div>
    </body>
</html>

Java 部分代码

package info.liangz.RelatedDatePickers;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
import org.apache.wicket.PageParameters;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.ajax.form.AjaxFormComponentUpdatingBehavior;
import org.apache.wicket.datetime.StyleDateConverter;
import org.apache.wicket.datetime.markup.html.form.DateTextField;
import org.apache.wicket.extensions.yui.calendar.DatePicker;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.panel.FeedbackPanel;
import org.apache.wicket.model.PropertyModel;

/**
 * Homepage
 */
public class RelatedDatePickers extends WebPage {

    private static final long serialVersionUID = 1L;
    private Date selectedCheckInDate,  selectedCheckOutDate;
    private static final SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy");

    /**
     * Constructor that is invoked when page is invoked without a session.
     * 
     * @param parameters
     *            Page parameters
     */
    public RelatedDatePickers(final PageParameters parameters) {

        final DateTextField checkInDate = new DateTextField("checkInDate", new PropertyModel(
                this, "selectedCheckInDate"), new StyleDateConverter("S-", true));
        final DateTextField checkOutDate = new DateTextField("checkOutDate", new PropertyModel(
                this, "selectedCheckOutDate"), new StyleDateConverter("S-", true));

        add(new Label("message", "Related Date Pickers"));

        Form form = new Form("dateForm") {

            @Override
            protected void onSubmit() {
                info("Checkin Date is: " + selectedCheckInDate +
                        " & Checkout Date is: " + selectedCheckOutDate);
            }
        };
        add(form);


        form.add(checkInDate);
        checkInDate.setRequired(true);
        checkInDate.add(new DatePicker() {

            @Override
            protected void configure(Map widgetProperties) {

                Date date;
                if (selectedCheckInDate != null) {
                    date = selectedCheckInDate;
                } else {
                    date = new Date();
                }
                // set minimal date
                widgetProperties.put("mindate", format.format(date));

                super.configure(widgetProperties);
            }
        });
        checkInDate.add(new AjaxFormComponentUpdatingBehavior("onchange") {

            @Override
            protected void onUpdate(AjaxRequestTarget target) {

                target.addComponent(checkOutDate);
            }
        });

        form.add(checkOutDate);
        checkOutDate.setRequired(true);
        checkOutDate.add(new DatePicker() {

            @Override
            protected void configure(Map widgetProperties) {

                Date date;
                if (selectedCheckInDate != null) {
                    Calendar cal = Calendar.getInstance();
                    cal.setTime(selectedCheckInDate);
                    cal.add(Calendar.DATE, 1);

                    date = cal.getTime();
                } else {
                    date = new Date();
                }
                // set minimal date
                widgetProperties.put("mindate", format.format(date));

                super.configure(widgetProperties);
            }
        });
        checkOutDate.setOutputMarkupId(true);

        add(new FeedbackPanel("feedback"));
    }
}

以及一张效果图

Monday, August 18, 2008

Nerd,宅

从一个网站看到了 How NERDY are You? 的测试。玩玩地测试了一下,结果分数高得吓人——考试都没得过这么高的分数啊。

评价是:Supreme Nerd. Apply for a professorship at MIT now!!!.


I am nerdier than 94% of all people. Are you a nerd? Click here to find out!

至尊 Nerd 啊……为啥不是武林至尊呢。

另外,一直好奇 Nerd 的含义,感觉和日文的 宅 有相近的含义。

开坛,烧蛋

20 天的日子终于熬到了。今天起早,开坛煮蛋。但是味道似乎还不够咸,功夫不到家~应该还要再加大把大把的盐。

据说,制作咸蛋的时候。如果盐放得不够多,就会变成臭蛋。这么算来,还算是成功了一半吧——至少鸡蛋没有变臭。

又删博客

不知不觉,距离上次删除 Spaces Live 又一年了。博客旁边的 Archives 又长长了,13 行。

有碍美观,年度性地再删一次。

所有以前的博客,都去 Blogger 地址找吧。

Sunday, August 17, 2008

九月,作业伴美剧齐飞

开学到现在,作业开始排山倒海一般地涌来了。估计到了九月,还会倍感压力。

总算到了九月,各种美剧也开始回归。生活并不孤单呢……下月关注列表。

  • 9月1日,Prison Break,第四季,两小时首播集
  • 9月3日,Bones,识骨寻踪,第四季两小时首播
  • 9月8日,Terminator: The Sarah Connor Chronicles,终结者外传,第二季
  • 9月18日,Smallville,超人前传,第八季
  • 9月22日,Heroes,英雄,第三季两小时首播
  • 9月22日,Boston Legal,波士顿法律,第五季
  • 9月24日,Knight Rider,霹雳游侠,第五季(第四季是1986年播出的)
  • 9月24日,Criminal Minds,犯罪心理,第四季

这年头,美剧也喜欢搞两小时特别篇……整得跟日本动画片似的……

Thursday, August 14, 2008

来自奥运现场的明信片

前些日子还在羡慕 Bigapple 能收到一张奥运现场寄出的明信片。

哪个孙童鞋在北京奥运开幕现场给偶寄了明信片啊,支会一声吧,实在想不出来。

结果,没过几天,自己国内家中也收到一张类似明信片。接着,也是遭遇同样的窘境……换个姓氏,直接引用。

哪个陈童鞋在北京奥运开幕现场给偶寄了明信片啊,支会一声吧,实在想不出来。

Sunday, August 10, 2008

Screenlets 与 iGoogle Gadgets

Screenlets 是 Linux 下的桌面 Widget 管理软件。通过 Screenlets,可以加在许多好玩的桌面小工具。此软件可以简单地通过添加以下源后,安装 screenlets 得到。

deb http://ppa.launchpad.net/gilir/ubuntu hardy main
deb-src http://ppa.launchpad.net/gilir/ubuntu hardy main

不过,Screenlets 的 Widget 可不仅仅只限于安装包中所提供的那些,它还能神奇地将 iGoogle 上的各种网页 gadget 转换成桌面 Widget。

以 Google 官方的 Beijing 2008 Summer Games Gadget 为例,罗列一下转换过程。

  1. 打开该 Gadget 介绍页面
  2. 点选页面右边的 “Embed this gadget »”,又称“嵌入该小工具 »”
  3. 对此 Gadget 进行一些自定义设定,并且点击“Get the Code”或“获得代码”,获得一串 JavaScript 代码
  4. 运行 Screenlets Manager,并点选左边的 Install 按钮
  5. 选择 Convert Web Widget,点击 OK
  6. 将复制得到的 JavaScript 代码粘贴到 Widget converter 界面的 Step 2 框中
  7. 按照 Step 3 的要求,为你的 Widget 取一个名字,名字似乎只能支持英文和数字,中文名会导致程序无法运行
  8. 选择 OK 后,提示转换成功,新 Widget 被添加,双击即可运行

放张桌面上所有 Widgets 的截图。左边是常用程序,左下是正在运行程序图标,中间是转换后的 Google Gadget,右边则是系统状态。

Friday, August 08, 2008

歪解人之生也柔弱

《道德经》说:

人之生也柔弱,其死也坚强。
草木之生也柔脆,其死也枯槁。
故坚强者死之徒,柔弱者生之徒。
是以兵强则灭,木强则折,强大居下,柔弱居上。

翻译成白话文,大概讲得就是——英雄难过美人关?

Thursday, August 07, 2008

还有 24 小时

还有 24 小时,“天津三问”的最后一问,终于得以解答了。

关于 Galaxium 的 Adium Theme 的中文支持

Adium Theme 的显示效果非常不错,但是可惜的是对于中文的支持却很不够。中文的聊天记录在上面显示出来却都变成了一个个的方框。其实出现这个问题的最主要原因是程序所调用的 WebKit-Gtk 对于中文显示的支持不够。如果换成 Mozilla 的 Gecko 库的话,效果就完全不一样了。

要让 Galaxium 支持 Gecko 需要从源代码开始,重新编译整个软件。

首先需要获取最新版的 SVN 版本,并进入代码目录

svn checkout http://galaxium.googlecode.com/svn/trunk/ galaxium-read-only
cd galaxium-read-only

产生编译配置文件时启用 Gecko 支持,然后编译,安装软件

./autogen.sh --prefix=/Galaxium 的指定安装目录 --enable-gecko
make
make install

编译整个软件,需要预先安装一系列的 dev 包。现在已经说不清楚需要安装那些包了,具体可以按照配置时的出错信息来操作。只记得 libgstreamer0.10-dev, libgstreamer-plugins-base0.10-dev 和 libgecko2.0-cil 都是肯定需要安装的。

神似 Mac OS

买不起 Mac,但这不能阻止我们在 Linux 下使用一些软件,实现一些 Mac 特有的功能。

很大众化的软件有 Compiz(动态特效支持), CompizConfig Setting Manager(动态特效配置工具)和 Avant Window Navigator(3D Dock 工具栏)。这些都很有名气了,不需要再多做介绍。

其他小众化一点的,还有:

  • Screenlets

    如果配合 Compiz 上的 Widget 插件使用,便可以实现 Dashboard 功能——把所有的 Screenlets Widget 放置在虚拟的 Dashboard 层上,通过 F9 按钮显示和隐藏。即使没有 Compiz, Screenlets 仍然能够把 Widget 显示在桌面上,此时它就像一个 Widget 的管理软件。

  • Songbird

    一个类似 iTunes 的歌曲管理软件,不仅神似,而且还形似。神似上,它能够如 iTunes 那样直接连接 iPod,并对歌曲进行导入和导出。形似上,只要给 Songbird 安装上 MediaFlow 和 Album Art Manager 插件——在 0.7 版中只需安装 MediaFlow 插件——并选择 View 中的 MediaFlow,便可以实现其主页上那种专辑图片动态翻选的效果。

  • Galaxium

    又到了 Galaxium。在 Galaxium 的 Preferences 中有一个 Messages Theme,如果选择为 Adium,便可以实现 Mac OS 中如 iChat 的聊天风格显示。不过问题是,现在稳定版中的 Adium Theme,尚无法很好支持中文显示。而 SVN 开发版,虽然能够在 Adium 中显示中文,但却会因为启用 Adium Theme 特效而常常无故退出。

Wednesday, August 06, 2008

Galaxium 和 Pidgin

Pidgin 的优势想必无须多说了。开放性的多协议支持,优秀的多用户管理机制,以及方便的聊天记录管理。一切都很美好,以前还一直都认为,只有一个 Pidgin 就可以应付 QQ,MSN,Gtalk,Yahoo 以及 Fetion 的上所有联系……

无奈,不知是 Pidgin 本身的框架设计问题,还是开发者懒惰了。最近几个月的更新,除了名字从 Gaim 改为 Pidgin,以及修正各类小 Bug 之外,似乎完全没有大的作为。

于是,MSN 的依然不能接收离线消息,在线消息的发送和接收也偶尔丢失。QQ 群组在一段时间后总是会自动断线。其他的如视频、语音就更加是奢望了。

幸好最近又有 Galaxium 进入视线,与 Pidgin 一样地支持多协议。虽然到现在为止,最新的 SVN 维护版本只支持了 MSN,Gtalk,IRC——不如 Pidgin 多;而且多用户的管理似乎也比 Pidgin 复杂。但光就MSN 那部分的表现:支持闪屏,离线消息,能与 Live Messenger 同步的个人信息描述和头像。就证明其所采用的框架可谓是相当地不错了。看了看官方主页,将来似乎还可支持音频和视频聊天……口水了。

是时候从 Pidgin 开始迁移出来了……Ubuntu Hardy 上的安装方法,在 /etc/apt/sources.list 源列表上添加以下两行:

deb http://ppa.launchpad.net/galaxium/ubuntu hardy main
deb-src http://ppa.launchpad.net/galaxium/ubuntu hardy main

Monday, August 04, 2008

Illusion

眼睛都看花了,还是觉得左图上 A 和 B 两块的颜色是不一样的……

但是老师确实有说这两块的颜色的确相同(以右图为佐证)。而且刚刚用色彩提取器验证过, A 和 B 两块的色彩 RGB 值都为 #787878。爆了……

这里是理论佐证,先存档,下次有机会再看。

奥运疲劳

从国内到国外,难得全球媒体的意见如此统一,一起不遗余力、前赴后继、甚嚣尘上、损人不利己地爆炒同一个话题。

于是,奥运会还没开幕,几个月的媒体轰炸都让我觉得比通宵看奥运会比赛还疲劳。

不过,不管怎样,奥运会开幕式还是不能错过的,期待 8 月 8 号。现在的关键是找个大点的电视机吧。

Recommends

Douban Lists

I have READed, LISTENed, or WATCHed these...