2009年2月27日星期五

2009年2月26日星期四

Don't Click

如果没有鼠标的点击,会怎么样呢?去这里体验一下吧 :-)

一开始我还误解了说明,以为是个整人的网站,猜点了"click here"以后就键盘鼠标统统失灵任它摆布了...click了以后才发现,是宣传 click-free 文化的,值得一提的是动画效果都快让我晕了 - - b

不让我点?我偏点 :P 于是看到了如下嘈杂的景象:


2009年2月24日星期二

Java实现重定向并编辑Http请求的方案小结

最近在做一个WEB应用,其中一个问题是:把客户端递交到servlet上的请求,经过编辑 后转发给另一个服务器上的servlet.

Sample :
- 比方原请求为 http://abcdefg?id=1&name=oyxx
- 现在希望根据服务器上掌握的密码,编辑请求后送往 SJTU
- 直接让客户端发送请求 http://www.sjtu.edu.cn/****?id=1&name=oyxx&pswd=*** 会被拒掉,而且通过 GET 方法明文发送请求也不安全,可能需要改成 POST 方法

Fact :
- 客户端(FireFox, IE ...)只能向网页所属服务器提交HttpRequest,因此重定向不可避免
- javax.servlet.http.HttpServlet 的两个方法,doGet 与 doPost ,参数都是HttpServeletRequest与HttpServeletResponse,没有找到类似 setXXX 的方法可供修改请求参数,唯一可以被设置的是HttpSession的属性,原以为是个救命稻草,后来发现它的本来面目其实是客户端与服务端交互的cookie
- JDK提供的HttpURLConnection有点Old有点弱,参数设置麻烦不说,还需要解析转发服务器返回的响应,再把结果作为相应返回给客户端

Backup :
- 如果仅仅是重定向而不需要更改请求信息,Servlet中,javax.servlet.RequestDispatcher 接口提供的两个方法 include 和 forward 就能解决问题了

Solution :
- Commons-HttpClient ,使用方法可以RTFM :P
- 从来自客户端的请求中读取参数
-- 若以 GET 方法进行重定向,则把编辑过后的请求Query接在重定向目标URL(e.g : http://www.abc.com/servlet_d)后作为 getMethod 构造方法的参数即可
-- 若是 POST 方法,postMethod 构造方法的参数仅是重定向目标的URL,请求参数则通过其 setParameter 方法设置
- 处理来自重定向目标的响应时,调用各自(getMethod/postMethod)的 getResponseBodyAsStream 方法,可以得到包含响应信息的 InputStream,通过正确的编码可以解析为字节流,假如响应返回的是比较流行的 JSON 对象,JSON-lib 提供了从字符串到 JSON Object 再到 JavaBean 的转化

2009年2月18日星期三

Memory.学前(三)

一个小P孩靠什么来获得知识呢?最好的途径当然就是玩。所以本节的重点就是:白相罐。

话说我们这一拨生在80年代末的人,也不断经历着各 种各样的变化。错开了人口高峰(大概在82、83年的样子),见证了港澳的回归、一代伟人小平的逝世、GDP的腾飞、教科书的变动、中招高考制度的改革, 处在一个拐点上,有点像实验品(这么说并没有反社会的意思)。我们的哥哥姐姐已经成或多或少成为了社会的生力军,他们是独生子女的第一代,当他们的父母老 去时,4个人需要依靠2个人来赡养,而诸如此类的社会问题我们逃不掉也不该回避。

不过比上述种种更值得咀嚼的是,我们是拥有精彩童年的最 后一拨幸运儿。在房地产大潮席卷而来之前,尚有约莫十来年的时间让我们去享受弄堂嬉戏、玩伴和天色渐晚时父母召唤回家吃饭的喊声(或是被揪着耳朵回 去?)。我至今都不能想象独门独户的楼宇以及那些价值高昂还多数被汽车占去了的土地上,如何孕育童年的共同趣味,相比之下90后们真是可怜,这大概也是他 们中那么多人去闷骚地尝试非主流的原因吧 - - |||

一直觉得,我们这拨小P孩特别能动脑筋,发明了无数游戏,很多是户外多人的;且 当年爸爸工作的电脑科还只有一台骨灰级IBM,PC离进入普通家庭还很远,拥有任天堂的红白机的人家大伙就趋之若骛,通常要通过软硬兼施的外交,还得和“ 财主”搞好伙伴关系,才能力压群雄脱颖而出玩上一把;上学前几乎无人有小金库,若是想要跟着哥哥们偷偷跑去游戏机房,还得想好怎么应付爸妈,不过结局却总 是锻炼了抗击打…

对每个男孩,游戏机的诱惑力都不言而喻,当然很快我就不指望老爸能表现出哪怕一丁点给买一台平机的迹象,好在堂兄(前文提及同住的那位)那儿有,于是那个美妙的亭子间成了家里最为我向往的地方——也是爸爸回到家第一个去搜查的地方….
在 念幼儿园的时候,每天下午奶奶把握接回家以后,会去忙家务,此时爸妈还没有下班,hiahiahia,知道会发生什么了吧?最快的速度,冲向亭子间!不幸 的是,有时候会玩过了点,要么就是爸爸突然比平时早回来了一会儿,机智勇敢的我怎能坐以待毙,曾经尝试过躲在衣橱里或者从亭子间小楼梯侧墙上的小窗口爬到 二楼的房间,然而当时毕竟是太嫩了,而且游戏玩得兴奋的时候开关门和走上楼梯的声响太容易被忽略,竹笋烤肉是家常便饭的,偶尔奶奶会拉开嗓门道:“咸白 相,哉白相哪亚要喂莱来”,我才有概率依依不舍得离开。

不过我还是没有因此而玩物丧志,一方面是因为家中老虎常坐镇,再则那确实不是我的 最爱,流行的带有半赌博性质的拍卡活动(圣斗士卡&七龙珠卡)和塑料子弹枪大战等(因为过于危险后来被forbbiden了),也都参与不多。印 象中,小时候,积木和船模才是我的两大宝贝。

今天看来,积木无疑是小时候种种玩具中最开发智力、创造力的一种,不管它是当时刚进军中国市 场的乐高,还是便宜一点的国货宝高(连名字都仿…),甚至是最最朴素的一套彩漆木积木,都能让我全神贯注一个周末,最不能忍的事情就是邻居家的小孩跑来我 家的时候不小心踢掉了我的作品,不过若是它不够完美,我也会毫不犹豫推倒重来的。那是周末的典型生活就是在爸妈醒来之前起床,带着菜篮子PDPD跑去家里 附近的点心滩,买好全家的早点,然后一路吃回家,开始搭我的积木,把各种型号品牌的积木混在一起,搭完以后用其他玩具,比如塑料玩具兵、容貌玩具等等等 等,自编自导一台情景剧,这才是生活!
至于船模,则长期占据了我家厨窗若干层,那时只爱船模,飞机坦克一概不感兴趣,还必须不是仿真模型而是拼完 后能放在浴缸里开的那种,不过隔水普遍很差,经常开着开着就海难了…最珍爱的是一艘理论上可以依靠马达水下航行的潜艇,无奈说明书上变态地注明须要3号电 池,市场上买不到@@

童年的记忆还有数不清的寄托,比如风靡一时的四驱车,舒克与贝塔这样的动画片,只是后来的应试教育扼杀了不少它们带给我们的宝贵财富,搞笑的是,现在的教育越来越合理,扼杀的少了,可是童年带给小P孩们的,也少了。

Memory.学前(二)

(不太习惯第三人称,还是换回第一人称吧)

很喜欢Jay的《听妈妈的话》:

小朋友你是否有很多问号
为什么别人在那看漫画
我却在学画画
对这钢琴说话别人在玩游戏
我却靠在墙壁背我的abc
我说我要一架大大的飞机
我却得到一台旧旧录音机
为什么要听妈妈的话
长大后你就会开始懂得这段话

有 调查表明,孩子的外貌等物理特征受母亲影响较大,而性格等精神特征则更取决于父亲。因此上面的歌词不妨改成“听爸爸的话”。从屁颠屁颠学步、咿呀学语开 始,直至初中低年级,都是爸爸扮演着人生导师的,不过那并不说明我身上会有太多他的影子,事实上,在踏入象牙塔之前,每逢晚饭时间,父子俩经常在饭桌上就 一些“可挖坑型话题”进行火星四溅的交流,俗话说,秀才遇到兵,有理说不清,幼齿时期我高举耍无赖大旗,但在我企图转型为逻辑型时,却发现罗列已知条件接 着循循善诱逐步下套的辩论方法对我爸根本不起作用,就像传说中当时只有DennyLiu的慢半拍反应防得了林希文的假动作一样。

他们那代人是不幸的,爸爸当年为了让叔叔留在城里,插队到了崇明五四农场,然而塞翁失马焉知非福,那里是他和妈妈相遇的地方,说得酸点,也算是邂逅了:)
我 一直相信,若不是时代的错误,凭借爸爸的洞察力、勤奋和固执,定能披上一星传奇色彩,在农场的时候,大伙下来班就天南地北地海吹,或是跳舞,只有他会独自 在一边阅读那套改变了那一代许多人生活的《数理化自学丛书》,没有老师和同学,孤独的行者。返城以后,爸爸考上了当时还很强大的立信会计,后来奶奶退休, 顶替名额给了爸爸,让他也成了真正的广大劳动人民一员,也是在这个时期,欧阳平同志和周濓民同志喜结连理,婚纱照上老爸形象还算凑合,一手由我妈挽着,一 手持一副白色手套,据观察,那个年代的婚纱照都是这副刻板的样子。

在我出生以后,爸爸曾经有机会成为现在大热的金融投资业的先行者。那时 他应聘一家投资信托公司,被录取了,权衡再三,放弃了。理由是,留在出版社工作中午有空骑车赶回家抱我到院子里晒太阳。看客,你被感动了吗?或许,如果更 换了那份更有前途的工作,很大概率就从经济上改变了整个家庭的轨迹,受益更多,但是这也就不是我爸了。这是最让我觉得自己亏欠爸爸的一件事,若非如此,他 不会失去这个机会,不会现在还是一个事业上并不十分突出的男人,只能再次说一句,真是可惜。

我爸有一个信条,那就是严格约束加大棒政策, 几乎没有胡萝卜,相形之下我妈只是比较烦人,在如何收拾我这一命题上跟爸爸还差得很远。在后文中会提到我小时候的种种事迹,那些事情很多都附带着我爸的一 顿打,打完以后,妈妈和奶奶会说,先来吃饭吧,吃完再XXXX,然后爸爸会枪毙这一决议,让我饿上个半小时,“脑子里记记牢!”… 后来一直觉得自己骨头挺硬,小时候的被打经历应该起到蛮大作用,不过自从初二以后就没有被爸爸再打过,反而有点心慌,怕看到他失望让他叹气。至于与大棒相 辅相成的另一面:严格约束,我始终觉得是值得商榷和有争议的,爸爸几乎就是强加他认为对的事情,极尽所能禁止认为错的那些东西。豪不惭愧得说,小时候我还 是尽显足球天赋的,无奈爸爸只是难得允许我在弄堂里和伙伴们踢踢野球,而后来上了小学,N次企图参加校足球队,都被他扼杀了,因为他是那种典型的觉得22 个人抢1个球还不如每人发1个的人。直到今天,我在7点钟看体育新闻的时候,家里的电视机还是会被无情得切到新闻联播…

初中毕业的时候曾 经让同学给我写过校友录,其中一个问题是:你最崇拜的人是(or你的偶像是)_____ ,有人写的是“老爸”。就我而言,虽然爸爸的智慧、冷静与沉着、为我作出的牺牲毋庸置疑,但我并不崇拜他,那比生活在虎父的阴影下好不了多少,我只是我。 爸爸,当然还有妈妈,成功得完成了他们的引导,把我至少培养成了一个积极向上、正派的人,那就够了,剩下的,该由我自己走。

Memory.学前(一)

1987年12月9日某时某分,彗星袭月、白虹贯日、苍鹰击于殿上,一小P孩出生在全国著名三级甲等医院——现上海交通大学医学院附属瑞金医院的产科病房。爷爷乃一家之长,遂取名欧阳希修,意为希望他爱好文学,长大以后能像大文豪欧阳文忠公一般。

小 P孩从小在卢湾区茂名南路某弄堂里的旧式洋房里长大,他太公在解放前曾是银行高级职员,买下了这栋房屋,不过1921年,神州大地上发生了开天辟地的大变 化,最终在第28个年头,星火得以燎原,此后推行了一系列土地改革等政策,而对上海这样的人口、房屋都相对密集的都市,我党决定将房屋均分给劳苦大众,于 是他家多了3户邻居,也是在那个激情燃烧的年代,父亲和叔叔被取名为平和均,同样长大在这个屋檐下。

茂名南路165弄16号,这桩红砖的 两层建筑,门前十多米高的大树;斑驳的木门;吱呀作声的楼梯;两侧墙壁悬挂着的晒篓;楼梯转角处的米桶;晾着的鳗香;邻里共用的厨房;油腻腻的煤气灶;一 小截自己总是蹦着过、还被用来分辨脚步声的过道;可以延展的厚重木桌;文革时被抄家摔坏又被爸爸用铅丝固定的两把扶手椅;明亮宽敞的内阳台;堆满家什和书 籍的小房间;小时候最向往、战斗过的亭子间;共住的奶奶叔叔婶婶,还有堂兄艺昭(爷爷望兄从艺);冬天会钻到被窝里依偎在他脚跟的老猫。

他们她们它们,承载着他大半个童年。

如今这栋将当时的一切揉合在一起的老屋,却早已随着经济蓬勃的步伐、地产的汹涌浪潮、推土机轰鸣作业、砖瓦零落扬起的尘土,灰飞烟灭了,真是遗憾,尽管他不并是个太迷恋故旧的人。