change

2010年8月8日 1 条评论

利用零散的时间看完了《走出软件作坊》,确实写得不错,最近随着组里的人越来越多,也渐渐遇到各种各样的问题,工作不在像以前那样,只要管好自己的一亩三分地就好了。一直以来,都觉得工作是细分的,我只要关注好技术,至于策划、交互啊都由专人负责,现实也确实是这样,可是总有种种的不如意,原因是多方面的,这个世界没有想象中的简单,别的同事也不是想象中的笨,仅仅看到了自己看到的那一面,还有很多没看到,草率地下结论,于人于己都是不好的。

随着人多起来,我也开始管几个人了,之前人少,交情也好,大家都很努力,干活也很愉快,渐渐的又多了起来,作为技术出身,习惯性地事必躬亲,导致自己无暇他顾,尤其是最近项目比较紧张,虽然自己没有亲自介入开发,但是部署测试、发布上线还是我做,导致看起来不忙,其实跟着小组其他人后面,一天一天就不知不觉地消耗了,上周开始将部署测试、发布的工作另外一个的同事,自己终于有点时间了,可以做些前期调研。

最近在研究netty,一个java的nio框架,作者是99级的韩国人,真是很厉害。

分类: 工作 标签:

杭州居大不易

2010年8月1日 2 条评论

今日,我们一行四人,冒着酷暑,地面温度接近50,不辞辛劳,考察了滨江一桥周边的房价。中介小伙子还算靠谱,我们的要求是2房,120w-180w之间,在好几个楼盘间辗转,彩虹城、天寓、贺田尚城,房子都是好房子,基本都在180w以上,均价1.8w以上,其中尤以彩虹城93㎡,210w居首,2s1t,房间都很大,还能看到钱塘江。贺田尚城的104平米,180w,2s2t,南北通透,除了价格不满意,其他都很满意。

真是不看不知道,一看吓一跳,3年前滨江的均价7,8千,都没多少人买,现如今已是土鸡变凤凰了,虽然有些地方配套还不是很完善,入住率也不是很高等诸多不便,房价依旧直线上升。

在回来的路上,大家一致通过了抢银行的建议,在当前的形势下,这是比较靠谱的方式。同时,心生遗憾,恨没有早生几年,恨没有本科毕业即工作,还去读该死的硕士、博士,哈,人生苦短,自求烦恼。

分类: 生活 标签:

itouch

2010年7月18日 2 条评论

周一添了一个电子设备——ipod touch 32G,现在俨然越过手机成为新宠了,手机于我,除了和家人打电话,偶尔上会网,其他更多的功能都没使用,当时买钻石机真是秀逗了。本来打算买个mp3,在班车上听听就好了,后来研究了下,还是觉得itouch比较好,不仅可以听歌,还可以玩游戏等,更主要的是对苹果的产品觊觎已久,作为目前业界交互体验最棒的产品,肯定是有其独到之处的。到目前为止的把玩,确实做得很好,统一的交互、贴心的设计、直觉的按钮等等。收到货的那天就越狱了,装了些破解的游戏,还下了很多电子书,那个阅读器stanza确实做得不错,以后估计会试玩更多的小游戏。

最近工作上有点心累,随着产品的定型,新功能的加入对老系统总是有种格格不入的感觉,各方讨论僵持不下,最后弄个妥协的方案,都不是很满意,做完了用户也不满意,一个好的产品设计人员真是难得,我想就目前的团队状况,想做个满意的产品是相当有难度的。小到我们这个游戏的设计,大到整个平台的设计,都处于一种无头苍蝇的状态,难。

今天下午第一次去看房,跟着同学去打酱油的,坤和的和轩酒店式公寓,66㎡,2万1的价格,精装修,一室一厅,卫生间和开放式厨房,装修得还可以,就是南北直进的户型,感觉还是挤了点,2个人住挺好,来个亲戚啥的就够呛了,周边的环境不错,好几个小山头。杭州均价终于步入2万了。

看了两部电影,《迫在眉梢》,讲父子,贫贱夫妻百事哀,虽然结局很圆满,我想现实中应该会更悲惨。《娘家母亲》,讲母女,可怜天下父母心,韩剧的细腻加上杯具的结尾,更能打动人。

分类: 生活 标签:

滨江一周

2010年7月11日 4 条评论

不知不觉已经在滨江上班一周了,初时还7:30起来,后来发现不用这么早,渐渐改到8点了,在路上买个肉包,然后8:50上车,一路上穿好几个隧道,风景没得说,晚上18:45上车,到家已尽20点,真可谓日出而作,日落而息。

我的位置靠窗,7楼,抬头就能看到外头的田地,一片绿,心情大好,只是公司刚装修好,第一天喉咙就不太舒服,甲醛比较多,虽然没啥味道,后来带了个口罩,感觉好点。在这里有点好的地方是,公司提供早、中、晚餐,真是不错。

这周断断续续将《射雕英雄传》看了一遍,今天终于看完了,郭靖这傻小子,能和黄蓉在一起,真是好福气,他们的感情之路很是艰辛,初时的甜蜜,你侬我侬,一个木讷,一个古怪精灵,中间以为黄药师杀了他五位师父,一路误解,两人也是苦闷得很,天幸后来误解消除,两人和好如初。最可惜的是穆念慈这个角色,一如《天龙八部》的阿朱,痴情、重义,最后却落得和相爱的人天人永隔,杨康在王府长大,已是注定了此后的杯具。小说中的蒙古人结拜弟兄后的重情重义也是令人感佩,这么原始的信任在如今已是难得。略感不足的是书中人物脸谱化比较严重,好人很好,坏人很坏,和此后的几部小说不同,比如令狐冲,亦正亦邪。

分类: 生活 标签:

利用JAMon监控java应用

2010年7月5日 没有评论

JAMon,Java Application Monitor的缩写,主页上这样介绍:

is a free, simple, high performance, thread safe, Java API that allows developers to easily monitor production applications.

可以用于

  1. 监控服务器的响应时间
  2. 跟踪应用里的各种行为,比如数据库访问等等

入门级应用

JAMon提供了一种非侵入的方式,只要配置一个filter,将原有请求都先经过这个filter。第一步先下载相关的jar包,放到对应的目录,然后在web.xml里加一段filter的配置

<filter>

<filter-name>JAMonFilter</filter-name>

<filter-class>com.jamonapi.JAMonFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>JAMonFilter</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

然后重启应用,这样JAMon就开始记录应用里各请求的响应情况了,JAMon还提供了页面展示监控到的记录,将下载下来的jamon.war里的文件放到对应目录,然后在web.xml配置jsp的访问路径,如

<!– jamon begin –>

<servlet>

<servlet-name>jamonadmin</servlet-name>

<jsp-file>/jamonadmin.jsp</jsp-file>

</servlet>

<servlet>

<servlet-name>menu</servlet-name>

<jsp-file>/menu.jsp</jsp-file>

</servlet>

<servlet>

<servlet-name>exceptions</servlet-name>

<jsp-file>/exceptions.jsp</jsp-file>

</servlet>

<servlet>

<servlet-name>sql</servlet-name>

<jsp-file>/sql.jsp</jsp-file>

</servlet>

<servlet>

<servlet-name>query</servlet-name>

<jsp-file>/query.jsp</jsp-file>

</servlet>

<!– jamon end –>

重启应用后,访问jamonadmin.jsp,就可看到展示页面,包含各请求的请求次数、响应时间(最大、最小、平均)等信息。对于刚上线的应用,使用此方法监控,可快速发现性能瓶颈。当然,也可以继承这个filter,在里面加入另外想做的事情。

监控每个方法的执行时间

在上面已经可以监控每个请求的情况,但是,有些时候需要粒度更小的监控,比如每个方法的执行时间和次数,找到执行次数最多和时间最长的方法,先优化,应该可以极大地提供整体的响应速度。幸运的是,Spring框架里已经提供了一个Interceptor:JamonPerformanceMonitorInterceptor,可以很好地和JAMon整合,配置也很简单,将想监控的service implementation加入到这个Interceptor,重启后在上面的展示页面就能看到各方法的执行次数和执行时间了。

JamonPerformanceMonitorInterceptor有个缺点,就是必须配置log4j里的level为trace,这点让人不爽,于是有牛人修改了下,具体见Jamon*Interceptor: decoupling monitoring from tracing,不知道最新的Spring有没有修改。

还有个问题是,我在使用中发现,如果需要监控的service implementation之间存在循环引用的话,应用是起不来的,当然,从工程的角度来讲,循环引用是不合理设计导致的,本就不应该出现,可有些时候难免会出现循环引用。后来采用引入第三个service implementation来将原两个循环引用的service解开,这个是治标不治本的办法,呵呵。

这个监控也只是在应用刚上线时比较好,当应用稳定后就不需要了,以免增加额外的开销。

统计系统行为

对于一个稍大点的应用,都需要数据给决策者提供决策的依据,比如一个游戏,那么整个系统里玩家的行为统计和分析将给游戏进一步的运营方向提供清晰的数据支撑,而不是乱无目的地猜测玩家可能喜欢什么。

在JAMon的future directions说要将统计数据持久化,目前JAMon的所有数据都在内存里,只要重启就消失了。这点不太好,历史数据可以用于对比,另外一个是如果应用部署在多个服务器上,那么只能看每台服务器的数据,却不能看总的数据。遗憾的是JAMon自从发布2.7版本后就停止更新了。

对于这个,我在JAMon的基础上做了持久化的工作,支持多节点,提供展示页面,原理很简单,每隔一段时间将统计数据回写到数据库即可。

参考

  1. JAMon
分类: java 标签: