2006年12月10日

童年记忆——凶女

大抵是睡眠不好的缘故,最近经常作梦。而这些并不虚幻的梦,来自于童年的一些真实的经历。往往在闲暇时想起,总会觉得自己的童年过于不幸,而怀疑自己为什么能够记住的童年往事都是这些不愉快的回忆……

我早已忘记童年的自己是什么样的性格。因为从小生活在远郊,所以虽然母亲想方设法把我弄进了市里的小学,但是大抵应该是没怎么见过市面,而略显拘谨的一个乡下孩子——老实,但是很有些小气。用时髦点的词汇形容,大概就是很“土”。在整整六年的小学生活中,我的同桌都是一位名叫 W 的女同学。

印象一:楚河汉界,圆规与自动铅笔。

小学的课桌,是那种双人的铁桌。依稀记得,低年级的时候,W 同学坐在课桌的左边,我坐在右边。与其他同学不同,在我和 W 同学的课桌中间,有一条粗粗的黑线。那条线,不仅庄严的宣布了 W 同学对于自己物权的先知先觉,更是无数次局部战争的导火索。以至于很多时候,我会觉得那条线不过是 W 同学试图对我发泄不满的道具。

对于越界行为,W 同学单方面对我实施了严厉的制裁,比如用手掐,比如用圆珠笔画,比如用圆规刺。而我对 W 同学只能还以严正声明和强烈的抗议和谴责。或许在 W 同学眼里,我这个原本就下里巴人再加上恪守“不对女生动手”的原则,反而使我的形象在她的眼中愈发的迂腐懦弱而令她愈发讨厌我讨厌得肆无忌惮。

终于,悲剧发生了。不记得是什么时候,在一次局部冲突中,她的自动铅笔无情的刺入了我的左颊的显要位置。自此,我的脸上多了一点青黑,后来很多不明真相的人常以“美人痣”、“伟人痣”来恭维之,我只有苦笑。随着年龄的增长,这点青黑越大长大,引起了母亲和我的恐惧。终于,在时隔十年之后,我去医院用激光烧掉了那点青黑,手术的时候,医生还感叹这黑色竟深入肌肤如此之深,令我惊觉当年 W 同学下手之狠。

那青黑虽然在激光的高温灼烧下消失了,但我已经不再是十岁的童年,往事依旧在脸上留下了浅浅的一块疤痕。睹物思人,不知 W 同学是否还记得那看似随手的一刺,给我留下了怎样的记忆。

印象二:流行乐与芭比娃娃。

生于 1980 年。那是个变革开始的年代。当城里的孩子开始通过磁带了解小虎队,通过漫画了解圣斗士的时候,我依旧一无所知。于是,了解这些最“前沿”文化的途径,就只有通过身边的这些先行者们。但是,对于孩子,并非每个先行者都那么宽容。不够时尚总会让自己在无形中平添一份自卑,而被他人鄙视。

这给了 W 同学足够的机会。比如郑智化的“堕落天使”,当我从 W 同学那里听来一句而自己反复练习的时候,被鄙视为“只会这一句”。比如黄莺莺的“哭砂”,本以为会是好意让我学而拿来了歌本,但其实她只是为了看到我的窘态——那页上有一张模糊不清的泡在浴缸里的女性的图片——和“不对女生动手”一样,那个时候的我还有很多做人的原则,比如不近女色。

做人有原则本来不是什么坏事。但是在特定的环境下,就变成了无可奈何的弱点。W 同学深深知道这点。于是我记住了她的芭比娃娃,以及她趁我不备暴露那个娃娃的下体给我时,脸上的那些狰狞的笑容。

后来,当我有了自己的录音机之后,我证明了,对于流行歌曲的习唱,我可以比他们任何人做的都好。只是那个时候,心智已经成长,流行元素也已经普及开来,对于新鲜事物,应该更多是去体会其价值,而非用作炫耀的资本。

总之,W 同学绝不是如此那般令人唏嘘的同桌的你。每每想起这个女生,总会令今天的我莫名的心潮澎湃,义愤填膺,而佩服自己那时那地的勇气与毅力,竟然就这样和她“和平”共处了整整六年的时光。今天回想起来,W 同学大抵是因为自视贵族,而不屑与我这样的“土老冒”坐在一起的。而种种不快,大抵也如我企盼远离这位凶女而不可得一样,是一种无可奈何的发泄。

虽然,自她以后,我放弃了很多原则,比如“不对女生动手”,比如“不近女色”,但是,有一句古训深深印在了我的心里——“己所不欲,勿施于人”。

2006年11月7日

苦水潭不能访问吗?

苦水潭迁至blogger已经有段日子了。可是前几天,自己突然无法登录新地址。以为是一时故障,未作理会。于是又拖延了些日子。大概有一个星期了吧,还是不行。

难道已经投靠了google的blogger,世界第一blog服务提供商,竟然和某些国内厂商一样么??

一封写给blogger开发团队的email,也是石沉大海。

正在灰心丧气,准备再寻blog的时候,传来“国内blog实名几成定局的消息”。于是开动脑筋,莫不是GCD先下手为强,把国外的blog先行隔离了吧。尽管只是猜测,但有wikipedia的前车之鉴,料想GFW也没有什么不敢做的。

事实很简单。gfw+blogger搜一下,结果大把。看来真的是GFW干的。

生平最恼无端被人横加困扰。人不犯我,我不犯人。人若犯我,我必不屈服。更何况前有GFW,后有实名制,教我又如何有后路可退!

gfw+突破,好在结果仍旧大把。为了自己的本本能用,gfw+linux等等,最终确定了tor+privoxy的组合。

Tor与Privoxy安装设置指南
Firefox+Tor必备教程
Linux 下网络穿墙术

而如我般惯用firefox的人,则更幸运,现成的vidalia可用,幸甚至哉。

Vidalia官网

今后的日子,苦水潭依旧会停留在blogger。给各位看官带来的些许麻烦,实在抱歉。只是我不能屈服。也请各位一道不要屈服。无论是真实世界,还是虚拟网络,闭关锁国,永远不会有光明的未来。

2006年10月25日

工程师、售后和技术支持

终于有点明白为什么MCK称IT支持人员为IT Specialist,而非某某Engineer了。

或许在外国人的眼里,被冠以Engineer头衔的,天生是些喜欢创造的人。而这类人,绝没有很大的耐心去跟别人解释,更不要说重复的解释。

可惜公司很小。一个项目下来,基本上项目维护期内的事情都要由当初负责开发的工程师来担当。这几天被问的尤其光火。就好像是一个人来问你打造一把宝刀,等你把刀造好给他之后,他却来问你这刀为什么只有一边有刃一样——两边都有刃的那是刀么!?

2006年10月22日

相声、中医和中国传统文化

前些天偶然看郭德纲在天津台做节目。当被主持人问到关于“传统相声”的问题时,有一段很精彩的叙述。可惜没有录像,无法详述原文,大意如下:

“说到创新,比方说一个大厨,高级厨师,现在要发明一道新菜,这当然可以,前提是他都明白这些个原料怎么回事。

我们现在的创新呢,好比是老字号饭店,来了个新人,进厨房一看,鸡鸭鱼肉、原料齐备,菜刀、大勺,什么家伙什都有,但是也不明白都是干什么的。先拎起来菜刀:‘这干嘛使的,不要!’把这些个弄不明白的,一股脑扔掉,然后开始创新,琢磨着先用这个鞋啊,把鱼拍成肉松估计能好吃,给大伙尝尝。

但是你觉着这么弄好吃,但是人家未必爱吃。我的意思你大概明白了吧?”

这一番隐喻着实令人动容!

岂止是传统相声,我们中国宝贵的传统文化,如今莫不面临这样尴尬的境地。前阵子正好人大开会,竟有代表提出“废除中医”,真是令人痛心!民选代表尚且有如此认识,如何让人能够梦想“中华民族的伟大复兴”?

和中医一起被打倒的,还有很多古人流传下来的思想财富。孔孟儒学,老庄道术,乃至释伽佛门,“五四”以后都被打成毒草,至今难以正名。这其中尤以孔家店受的委屈最大。今天,我们固然不能责怪当年大打出手的革命青年,时势所趋,更何况孔子的思想又经过了几百、上千年的讹传。

西方的自然科学固然先进。但是论及人文学养,全球没有哪个民族如我们中华民族般五千年(少说是这个数)香火不泯而积淀深厚。尽管中国人和外国人“习相远”,但是为人处世的根本,却“性相近”。

要实现中华民族的伟大复兴,其根本在于文化的复兴。否则,跟着某些年轻的列强走历史兴衰的老路,不会有什么前途。问题在于我们这一辈,如何“为生民立命,为天地立心,为往圣继绝学,为万世开太平”。

2006年9月24日

夜宴,流氓软件以及其它

最近有两件事炒的很火。

一是夜宴终于出炉了。骂声一片。大有连冯导都堕落了的呼声。

二是奇虎和雅虎关于流氓软件的口水仗打得不亦乐乎,近日风闻又有民间组织起诉所谓流氓软件。

刚好前些日子和网友在论坛上讨论国内软件业的盗版情况,心理颇有些感慨,觉得这林林总总的背后,很多东西都是相通的。

影视作品和软件具有很多类似的特性,比如其物理载体的价值可以极低,可以通过互联网传播,可以相当容易的进行盗版。因此在某种程度上,可以认为影视作品是一种特殊的软件。这使中国的电影产业和中国的软件产业具备了相似性。

无论是电影还是软件,都必须在商业性、艺术性和大众性之间取得一个平衡。这是目前我们生活的时代所决定的。创作者追求艺术性,投资方追求商业性,受众认可大众性,这种制约在某些情况下是一种完美的平衡,在另外某些情况下就会变成一种无奈的悲哀。比如中国的电影,还有软件。

尽管可以找到很多理由,比如还是国民收入太低,影片或者软件本身的素质太差等等等等,不可否认的是,这些年来,国人已经被惯坏了。我们已经习惯了免费享用这些可复制的二进制数据。从而把电影人和软件人推到了一个尴尬的境地。一方面,他们有自己追求艺术的理想,另一方面,他们不得不在现实世界中生存下来。

既然不能直接从使用者上收费,于是,越来越多原本不属于电影或者软件的东西进入其中,比如广告。于是就有了冯导每次贺岁片中不断增加的广告品牌,于是有了越来越流氓的国产软件。

在市场经济环境下,消费品具有取悦消费者的倾向。这种情况下,消费品的发展方向是否良性,取决于消费者的水平。

在整体消费文化低下的中国市场,好产品很难做。市场竞争的结果,是越俗的产品,拥有越好的销量,能够攫取越多的利润。这点上,史玉柱的脑白金、征途,神舟的电脑,盛大的传奇,韩国的三星电子以及大量泡菜网游深谙其道,赚到了大票的银子。很多早期社区的转变,比如猫扑元老与小P孩竞争的失败,也缘于此。很多国际品牌到了中国市场的水土不服,最终都选择了降低自己产品在中国区域的品质来提升价格竞争力,也缘于此。

或许,这个阶段是成长过程中的必经阶段。但是,自己种的苦果,自己总归要尝。如果今天的流氓软件以及外贸化的中国电影还不能警醒我们,那么明天,我们必将尝到更多的苦头。对于历史的欠债问题,“人间正道是沧桑”,是取不得巧,偷不得懒,更躲不过的。今天我们对于自己的继续放纵,只会最终扼杀我们自己的产业。

正如一个不太恰当的例子:一个小孩子,生在中国,但是成长过程中,中国人不但饿他的肚子,还要讥讽嘲笑他,那么可以想象,最终的结局,不是这个小孩子死掉,就是这个小孩子走掉。

真是应了那句台词:“出来混,迟早要还的。”

2006年9月4日

J2ME 开发上手指南

概述

J2ME 是 Java 2 Micro Edition 的缩写,最新的官方名称是 JavaME(Sun 似乎很喜欢改名字,从 Oak 到 Java,从 Java 到 J2?E,再到现在 Java?E),可 以认为是 Java 为移动设备(手机、PDA 以及其它计算能力和能源供应都受限的设备)剪裁的一套 API。基本上,如果有 J2SE 的开发经验,上手 J2ME 会非常快。除了个别类或方法,J2ME 基本上是 J2SE 的一个子集。Java 在保持语言体验统一性这一点上,做得确实非常好。

J2ME 采用比较混乱的方式来描述自身的版本。整个 J2ME API 被划分为 Configuration 和 Profile。而 Configuration 和 Profile 又各自拥有其版本。关于混乱现象的解释,一两句话难以说清,有兴趣的同学可以随便抓本 J2ME 的书过来,第一章必然有大篇文字解释这些匪夷所思的现象[1]。

J2ME 最吸引人的地方(或者说是吸引我的地方),就在于其针对的平台计算能力有限。这并不是受虐。运算速度、可用内存、以及最终生成字 节码尺寸的限制使得 J2ME 应用通常比较小巧玲珑。以早期支持 J2ME 的设备为例,可用的 Heap不过 200k,最终生成的代码(包含各种资源文件,如图片)不得超过 64k,这就使得面向这种平台开发的 J2ME 应用规模基本上不会超过一个人的能力范围。这样可以有效避免协作、过程等等令人不胜其烦的软件工程概念的引入,从而使开发人员重新回归到编写代码的乐趣中去。

开发环境

抛开感情因素,Windows 是进行 J2ME 开发的首选平台。为什么呢? 首先,开发 J2ME 所必须的开发包,只有 Sun 官方的 WTK(Wireless ToolKit)[2]对 Linux 提供了良好的支持。其它如 Nokia,与 Windows 版本的更新速度来看,其 Linux 版本更新相当慢且陈旧,而其它如 SonyEricsson[3] 和 Motorola[4] 则根本没有 Linux 版本的开发包。 其次,数据线。J2ME 的开发是离不开真机测试的。模拟器上在完美的代码到了真机上还是有可能运行得一塌糊涂。因此开发人员应该要有一个比较便捷的将 J2ME 部署到手机的途径。这些途径当中,数据线显然首选。而众多的数据线中,提供 Linux 支持的几乎没有。

必备软件

必备软件只有一个,那就是开发包。如 Sun 官方的 WTK,Nokia 的 Carbide.J[5],或者其它同类软件。以 WTK 为例,KToolBar 提供了基本的创建项目、编译、运行、调试、打包的环境,而 J2ME 代码,则可以用任何文本编辑器来写。

可选软件

用优秀的 IDE 开发 J2ME 可以事半功倍。目前绝大多数的 J2ME 程序员都使用 eclipse[6],IBM的开源 Java IDE。通过 eclipse 提供基本的 Java IDE 功能(如自动代码提示、重构、build 等等),通过 eclipseme[7] 插件管理众多 WTK,可以很方便将程序在不同的模拟器上进行测试。

另外,Sun 主推的 Netbeans[8] 也有很多人说好用。可惜我没有用过,不好妄下结论。不过曾经见过 Netbeans 的截图,甚至可以直接生成 J2ME 项目的页面流图,确实惊艳。需要注意的是 Netbeans(目前稳定版本5.0)也需要另外安装 MobilityPack 才行。最新 的消息刚刚提到,Sun 把 MobilityPack 开源了。

最后,值得一提的是,Java 的字节码很容易被反编译。因此几乎所有发行的 J2ME 应用都需要经过混淆。目前,市面上的非商业混淆器似乎只剩下了一个 ProGuard[9],不过值得欣慰的是,这款开源的混淆器很好用,eclipseme 也对其进行了很好的支持。

常见问题

svn+ssh

eclipse 已经集成了版本控制的能力,其默认集成的是 cvs。当然,subclipse 插件给 eclipse 提供了同样优秀的 svn 集成。通常,使用 eclipse 来进行各种 svn 操作是没有问题的。但是实际使用中发现,svn+ssh 的项目在 windows+eclipse 环境下无法正常工作。


参考资料

[1] SymbianOS J2ME编程指南

[2] Sun J2ME

[3] SonyEricsson Developer World

[4] MOTODEV

[5] Forum NOKIA

[6] Eclipse.org home

[7] EclipseME Home Page

[8] NetBeans Downloads

[9] ProGuard

2006年8月28日

不要把非项目文件扔在workspace里面

workspace,当然就是eclipse的工作区。之前一直都这么做的,资源、其它脚本,统统都在workspace里面,尽管其中相当一部分根本不受eclipse管理。

一次偶然的机会,eclipse在build workspace的时候(这种操作eclipse会在很多情况下进行,比如refresh某个项目的时候)死掉了。进度永远是0%,而且无法正常退出,只能强制杀掉进程。

最开始以为是windows几天没关,又犯病了,重启之后,故障依旧。

于是留意eclipse在build workspace时候给出的提示。原来是说几个非项目的文件夹 的路径和eclipse记录的不符。eclipse还善意的提示我将这几个“项目”按正确路径重新导入即可……

一不做二不休,把几个非项目文件夹请出了workspace。重启eclipse,故障解决。

看来,还是不要太相信IDE!!

手机 Java 之怪现象

ok,我承认题目是用来吸引眼球的。但是,不能不承认的是,这篇文章会很有用,很有用……尽管目前可能只是对我有用……因为我记性不够好……

下面记载的都是手机 java 实现中各种奇怪的毛病,bug,或者……特性,是根据某项目的开发经验总结出来的。但是涵盖的手机型号还是有限。因此很有可能某些“特性”会存在于更多的采用了相同 JVM(比如平台相同、生产厂商)的手机上。

== 早期 S60 的内存泄漏 ==
这个 bug 可以上溯至 2003 年,甚至更早。表现为 java 应用中如果使用了 Class.getResourceAsStream("本地文件") 无法释放其占用的内存,是的,没有任何办法,无论是调用获得的的 InputStream 实例的 close() 或将其设为 null,甚至显式强制 System.gc(),都没有效果。结果就是至少和本地文件同尺寸的内存成为了无法回收的垃圾。这个问题还影响到以 Class.getResourceAsStream() 为基础的 Image.createImage()(这个是最要命的,如何能够不使用图片资源呢!)。

这个 bug 据说在新的 S60 上已经解决了。但是 Nokia 3230(4.0526.2ch)、Nokia 7610(6.0525.0ch)都存在这个问题。对于这些个有问题的机型,在 java 程序中是无法完美解决这个问题的,只能尽量避免。比如集中、统一载入资源,永不释放(也就是说,尽量控制泄漏的次数)。当然,这会对已有代码造成很大影响。毕竟手机 java 应用是内存受限系统的典型,大多数情况下,珍贵的内存中应该只保留需要的资源。

== 键盘响应事件 ==
在 MIDP1 中,获取键盘事件只能自己实现 Canvas.keyPressed()。但是 Motorola E398 和 SonyEricsson K700c 的实现却很奇怪。表现为左右软键有可能在这个方法中捕获不到。而是否能够成功捕获,取决于 keyPressed() 方法中代码的行数……

我承认我没彻底搞清楚这其中的玄机。鬼知道 Motorola 和 SonyEricsson 是怎么实现的 JVM。我只知道把 keyPressed 中的所有代码提取到另外一个函数中,在 keyPressed 只把参数传递给新函数,问题就消失了……

== 超慢的 drawRegion ==
除了 N-Gage QD,几乎所有的 Nokia S60 手机都实现了对 MIDP2 的支持。MIDP2 中,最为重要的几个特性之一就是 Graphics.drawRegion。这个 API 可以方便的将图片旋转、剪切之后画到画布上。

但是,这个 API 在 Nokia 3230、Nokia 7610 等手机上的实际性能表现让人实在不敢恭维。于是,这个最重要的 API 成了摆设……没什么怎么办,只能延用 MIDP1 的做法,自己实现剪切和旋转,或者像我一样懒,直接要求美工把旋转之后的图片全都做出来……

== 诡异的内存容量 ==
按照官方 Spec,Java 在 Nokia 3125 上的可用内存(即 Java Heap Size)为 512k。但是实际测试的结果是,Nokia3125 只有 412k 左右的实际内存,相差整整 100k。不过好在 Nokia 3125 并不是种市场保有量很高的型号。但是它是我正在使用的型号……

== 无法 repaint ==
这个问题只存在于 SonyEricsson K700c。表现为在 keyPressed() 中调用 repaint() 进行屏幕重画没有任何反映。

解决办法是,在 keyReleased() 中补一个 repaint()……

== UTF8 ==
还是 SonyEricsson K700c 的问题。问题存在于 new String(byte[], charset) 上。也就是说,当获得了某个 byte[],并希望用 UTF8 作为字符集将其转换为字符串的时候,使用上述方法在 SonyEricsson K700c 上会出现丢失字符的现象。这个现象很诡异,以至于我目前没有搞清楚什么情况下会丢失字符(我甚至专门写了个测试程序在真机上跑,得出的结论是丢失字符的原因可能会很复杂,简单的拿被丢掉字符附近的一个子串来测没有任何问题)。

幸亏还是有解决办法的。不用 new String 就完了,而要用更加麻烦的办法,比如像我一样,用 ByteArrayInputStream,外面套 InputStreamReader(bais, "UTF8"),然后用 StringBuffer 一个一个 char 读进来,最后再 toString()……

== 不可靠的 copyArea ==
这是 Motorola 机器上的问题,V3 和 E398 都有。copyArea 是 Graphics 的作整块屏幕像素 copy 的常用 API(2D 动态背景的游戏几乎是必不可少)。按照 Sun 官方的 Spec,手机厂商有义务来保证其 API 实现不存在覆盖冲突问题。但是 Motorola 显然做得不够好。在 Motorola 手机上使用这个 API 会随机产生贴图混乱的情况……

解决办法是自己实现另外一套机制。比如使用另外一张至少和屏幕同样大小的 Image 作为缓冲,用两次 drawImage 来替代 copyArea……不过这个方法显而易见的缺点是消耗了更多的内存(那可是不小于屏幕尺寸的 Image 啊!)。如果内存实在吃紧,只能退而再求其次,作为缓冲的 Image 继续缩水,drawImage 的次数继续增加……不过这个时候需要自己手工解决覆盖冲突……

== 无法安静下来的 3220 ==
不知道这个问题是不是在 S40 平台上都有,手里 S40 又支持 MIDI 的手机实在是太少了……

3220 的一个很明显的特征就是声音大。以至调用了 VolumeControl.setLevel(0) 之后还是有声音,和 Sun 官方的 Spec 完全不符……没办法,只能在需要静音的时候,再补一个 VolumeControl.setMute(true)。

== 永不 ready ==
这是一段手机 java 获取网络数据的常用代码:while(InputStream.ready()) { InputStream.read() }。

但是经测试,在 Nokia 3230 上,这个 ready 永远返回 false……没办法,如果不改上述代码的话,就自己实现一个继承类吧。

2006年8月27日

宁缺毋滥

越是现代人,恐怕越讨厌罗嗦。以至于无论内容是否正确,当重复的次数超过了受众的忍耐,都会引起习惯性的逆反。这个不能把责任推到受众的非理性一面,这明显跟心理学有关。对任何事物,绝大多数人类显然都有忍耐的极限。比如前些天某个大学调查的,欧洲人忍耐红灯的极限不过1分钟左右等等。中国人在这方面显然要更强一些。就在北京,我等过的最长的红灯恐怕要5分钟。而虽然大家都很不满,却习以为常。

不过今天要说的事情和红绿灯没关系。而是公交车上移动电视频道的广告。

这则广告相信大多乘坐北京公交的朋友百分之百见过。三维动画创作的范伟,愁眉苦脸,“酒不能喝,辣椒不能吃,车不能开,睡觉还得趴着”。这时同样三维动画创作的赵本山出现“咋的了?”“我痔疮又犯了”哦,到此时才恍然大悟,原来是治疗难言之隐的广告。之后便是“赵本山”的大锻独白,“北京东大……多项无痛微创技术……治疗各种内痔外痔混合痔肛瘘直肠息肉……治完就能走……北京人都知道”等等等等,诸如此类。

从技术的角度看,这则广告的制作水准相较国内同类还是相当之高。人物建模精细,过场安排紧凑幽默,画面与台词配合的也很有国内flash作者的风格,和脑白金的系列三维动画广告相当。

但是,在8月26日下午4点多的大概不到30分钟内,这则广告在移动电视上出现了不下六次……即使能够分辨广告制作水平如我,也已经在呕吐的边缘,更何况如我父辈的广大乘客,印象中,父亲无论何时何地,听到这类广告就会光火不已,认为这类广告,有伤大雅,上不了台面。于是那一路颠簸,是伴随着不断重复的“治疗各种内痔外痔混合痔肛瘘直肠息肉”过来的。下车前铁青着脸用怨恨的眼神最后瞥了那电视一眼,心里琢磨着不知道这医院给了移动电视多少钱。

倘若真的没什么可播放,请您欣赏,自然风光,动物世界,都是很好的内容。认为有东西总比没有好,就肆无忌惮的重复广告,简直是愚蠢至极的想法。

正如昨天在鼎好陪一个朋友装机,面对如苍蝇一般嗡嗡作响挥之不去的推销导购,我终于矜持不住斯文,“你们谁家我也不去,真讨厌!”