Goingmm

  BlogJava :: 首页 :: 新随笔 ::  :: 聚合  :: 管理 ::
  82 随笔 :: 15 文章 :: 452 评论 :: 0 Trackbacks

2005年10月29日 #


posted @ 2007-08-09 21:53 Goingmm 阅读(1335) | 评论 (0)编辑 收藏

     摘要: 联想集团和IBM公司与美国消费品安全委员会(CPSC)联合宣布,主动召回由索尼公司生产的近526,000块在全球范围内销售的ThinkPad笔记本电脑锂离子电池  阅读全文
posted @ 2006-10-09 13:13 Goingmm 阅读(1805) | 评论 (4)编辑 收藏

祝大家节日快乐!

结束了9月繁忙的工作.回家休息了

很长时间没上来更新.
生活比较琐碎 .

posted @ 2006-10-01 11:49 Goingmm 阅读(1730) | 评论 (4)编辑 收藏

     摘要: Java源代码分析工具PMD 安装记  阅读全文
posted @ 2006-08-31 23:26 Goingmm 阅读(6764) | 评论 (7)编辑 收藏

     摘要: 真正的虚拟到"家"  阅读全文
posted @ 2006-08-28 02:55 Goingmm 阅读(3240) | 评论 (7)编辑 收藏

     摘要: ★★★☆☆  阅读全文
posted @ 2006-08-22 02:06 Goingmm 阅读(1726) | 评论 (3)编辑 收藏

     摘要: 英特尔2200BG和2915ABG PRO/ Wireless尽快去更新一下驱动  阅读全文
posted @ 2006-08-06 01:48 Goingmm 阅读(1814) | 评论 (5)编辑 收藏

     摘要: 估计你抱着家里的电视,经典的晚会这辈子也难得一见  阅读全文
posted @ 2006-08-04 00:19 Goingmm 阅读(3071) | 评论 (4)编辑 收藏

     摘要: 为什么会做这梦呢? 什么意思? 想不通! 有谁会解梦的可以帮我解解...  阅读全文
posted @ 2006-07-31 18:13 Goingmm 阅读(1975) | 评论 (10)编辑 收藏

     摘要: 小时候常和伙伴去抓鱼,记忆在河边在田间...  阅读全文
posted @ 2006-07-23 21:00 Goingmm 阅读(1499) | 评论 (7)编辑 收藏

     摘要: Ken和Helli正在比较男人和女人之间对约会的不同态度,Ken安排了非常有意思的夜晚约会  阅读全文
posted @ 2006-07-21 01:36 Goingmm 阅读(1364) | 评论 (0)编辑 收藏

     摘要: 正式上线的"百度空间" 还很稚嫩...  阅读全文
posted @ 2006-07-13 11:30 Goingmm 阅读(1424) | 评论 (3)编辑 收藏

     摘要: Vista桌面上的小家伙  阅读全文
posted @ 2006-07-11 20:01 Goingmm 阅读(1768) | 评论 (4)编辑 收藏

     摘要: 请看视频  阅读全文
posted @ 2006-07-11 01:18 Goingmm 阅读(1812) | 评论 (4)编辑 收藏

     摘要: ‘幻’字怎么解释?  阅读全文
posted @ 2006-07-09 18:00 Goingmm 阅读(1217) | 评论 (2)编辑 收藏

     摘要: 用自己的照片卡通你的IM. 一切都很简单!  阅读全文
posted @ 2006-07-05 10:44 Goingmm 阅读(783) | 评论 (5)编辑 收藏

     摘要: 那颗悲伤的逃兵 怎么能够实现我许过的愿?

  阅读全文
posted @ 2006-07-02 05:34 Goingmm 阅读(554) | 评论 (4)编辑 收藏

     摘要: 微软AdCenter Labs推出一项有关人口统计学的新预测工具  阅读全文
posted @ 2006-06-28 16:08 Goingmm 阅读(581) | 评论 (4)编辑 收藏

     摘要: 还记得这些童年的游戏吗?  阅读全文
posted @ 2006-06-23 11:37 Goingmm 阅读(446) | 评论 (7)编辑 收藏

yzj.jpg NDWD.jpg


TrackBack:http://www.blogjava.net/goingmm/archive/2006/06/23/54595.html


posted @ 2006-06-23 00:49 Goingmm 阅读(305) | 评论 (2)编辑 收藏

     摘要: Gtalk的Inbox让我便捷地去死,我让Gtalk的便捷这样死去!  阅读全文
posted @ 2006-06-18 12:46 Goingmm 阅读(610) | 评论 (15)编辑 收藏

     摘要:     初体验 我的最爱在德国  阅读全文
posted @ 2006-06-14 01:51 Goingmm 阅读(523) | 评论 (16)编辑 收藏

     摘要: 小布什 你娃就没发现澳大利亚还有三颗核武器?  阅读全文
posted @ 2006-06-13 02:08 Goingmm 阅读(440) | 评论 (9)编辑 收藏

     摘要: 裸露了传统,裸奔了大象  阅读全文
posted @ 2006-06-12 00:53 Goingmm 阅读(431) | 评论 (9)编辑 收藏

     摘要: World cup Logo...  阅读全文
posted @ 2006-06-11 16:29 Goingmm 阅读(422) | 评论 (8)编辑 收藏

     摘要: Java 解惑 免费网络版本  阅读全文
posted @ 2006-06-04 22:35 Goingmm 阅读(833) | 评论 (6)编辑 收藏

     摘要: 保持童心的同学们 儿童节快乐!  阅读全文
posted @ 2006-06-01 02:10 Goingmm 阅读(244) | 评论 (2)编辑 收藏

     摘要: 有一种生活叫“越狱”  阅读全文
posted @ 2006-05-30 13:23 Goingmm 阅读(368) | 评论 (5)编辑 收藏

     摘要: 如果是因为数字“7”AC当年应该给你一个“10”号  阅读全文
posted @ 2006-05-27 19:12 Goingmm 阅读(442) | 评论 (5)编辑 收藏

     摘要: netsgoo 激情体验  阅读全文
posted @ 2006-05-13 23:11 Goingmm 阅读(545) | 评论 (17)编辑 收藏

七天过得真是太快了.我现在唯一的愿望是:"再耍七天"
大家注意没有今天我的链接里面多了一个[ Netsgoo ].告诉大家一个好消息.经过两个多月[只算周末]的努力.Netsgoo 终于在 2006-05-06 推出了BETA版本

针对web2.0从技术到服务的特点.我们开发了站点Netsgoo 希望能带给你全新的体验和享受. 

如果你还不知道web2.0,如果你还不知道Netsgoo .如果你还有其他疑问 请关注 帮助中心  还有 关于我们

特别感谢 Mike和Feng 的不懈努力!
也希望大家能积极参与"激情体验".任何疑问或问题请告诉我们知道.

Goingmm 2006-05-07
posted @ 2006-05-07 03:40 Goingmm 阅读(722) | 评论 (9)编辑 收藏

朋友们 五一快乐
出游的朋友注意安全
呆家里的朋友不要光顾着睡觉
平时很少有机会看太阳哦

我呢?
回家 事实基本上已经不允许了
出游 一直想去新加坡看看老朋友
发现新加坡的单程机票200多[广州白云机场→新加坡]
可惜等我知道的时候三个月内的都预定空了
再等下一次大假吧

忙碌了几个月
我也说不清楚做了些啥
但总算还是有一些小收获

有些烦人的问题...
现在终于有时间好好补补了
正好有时间总结 总结

下一次上来 一定把这三个月忙碌的过程和结果与大伙分享

Goingmm 2006-05-01

posted @ 2006-05-01 00:22 Goingmm 阅读(539) | 评论 (3)编辑 收藏

     摘要: Life Circle ...  阅读全文
posted @ 2006-04-12 22:24 Goingmm 阅读(406) | 评论 (7)编辑 收藏

     摘要: tomcat  阅读全文
posted @ 2006-03-19 06:33 Goingmm 阅读(2003) | 评论 (4)编辑 收藏


忙了一个星期,事情总算平稳的起步了
该睡觉了

睡醒了再说...

2006-03-19  Goingmm

posted @ 2006-03-19 02:13 Goingmm 阅读(366) | 评论 (4)编辑 收藏


这些天杂乱的事情太多
要呆到20:00才回家
不是给公司加班
可能是为自己奇异的想法

昨天晚上
在王府井外面听到一首歌
当时
只记得一句歌词:“想起我和你牵手的画面”

早上过来,歌词几乎都忘了
尝试搜索,居然找到了

我不知道[想起]是新歌还是老歌
感觉有点怀旧,又有点抄袭
曲调能让我想起十年前[蔡琴她们那些时代]
部分节奏有点抄袭“神话主题曲”

推荐给大伙 听听看吧

曲名:想起 歌手:韩雪  
 
回到相约的地点
在这我对你不了解
以为爱得深就不怕伤悲
偏偏爱人心成雪
我独自走在寂寞的长街
回忆一幕幕重演
我告诉自己勇敢去面对
就算心碎也完美
想起我和你牵手的画面
泪水化成云霞满天
如果我和你还能再见面
就让情意旧梦能圆
我们在不同的世界
想着每一次的误会
好像再一次依偎你身边
偏偏你有千里远
我独自走在寂寞的长街
回忆一幕幕重演
我告诉自己勇敢去面对
就算心碎也完美
想起我和你牵手的画面
泪水化成云霞满天
如果我和你还能再见面
就让情意旧梦能圆 

Goingmm 2006-03-10
 

posted @ 2006-03-10 11:16 Goingmm 阅读(416) | 评论 (2)编辑 收藏

请看:
http://www.igoogle8.com/igoogle8/make/?f=1&s=Goingmm&t=0
很奇怪吧?google怎么变成连版权都“个性化”的主页了。而且用起来和google感觉还一模一样

再看:
http://www.igoogle8.com/

原来:
http://www.igoogle8.com/ 做了手脚

接着:
主页上没有作者或者运营商的任何信息,于是打开google查询关键字“igoogle8”
http://www.google.com/search?hl=zh-CN&q=igoogle8&btnG=Google+%E6%90%9C%E7%B4%A2&lr=lang_zh-CN%7Clang_zh-TW

哇!69 项符合igoogle8的查询结果 大致看了一下
Google狗年悄悄发布新品“爱狗狗吧”,引来网民蜂拥测试- 雅虎论坛
iGoogle8爱狗狗吧/ 一秒钟将Google据为己有 - 4:12
iGoogle8爱狗狗吧,将Google据为己有/ 向好友推荐iGoogle8爱狗狗吧
iGoogle8爱狗狗吧/ 超级女声·狗狗爬行榜
。。。。。。。。。。。。。。。。。。。。。。。。。

后来:问了问GoogleChina 的朋友。他们也不知道这玩意

作者弄了这么一个东西,但是又不做宣传。居然还有人猜测是Google中国出的产品
其他不说,就看主页下面的[向好友推荐igoogle8 和 设为主页] 这也不可能是google所为啊

于是:查了查igoogle8的服务环境
OS Server Last changed IP address Netblock Owner
FreeBSD Apache 8-Mar-2006 59.151.5.206  Abitcool(China) Inc.

1 forex.com.cn 3 10 3 Windows Server 2003 Microsoft-IIS/6.0
2 e4u.cn - 41 41 Linux Apache-Coyote/1.1
3 qunar.com - - - Linux Apache
4 www.zhanzuo.com - 25 25 FreeBSD Apache/1.3.34 (Unix) PHP/4.4.2
5 www.igoogle8.com - - - FreeBSD Apache

结论:这家伙 不可能和Google有什么关系

Goingmm 2006-03-08

posted @ 2006-03-08 17:33 Goingmm 阅读(630) | 评论 (6)编辑 收藏

    Blog左边新加了一个LOGO QQlinkfinal.gif 点击 可以立刻和我的QQ建立临时通话通道
    
    旁边还有一个小企鹅图标。如果亮着就表示在线 灰着就表示隐身  呵呵!

    如果我的QQ不在线 你也可以留言给我。 我测试过,能收到历史消息 
    
    空了 多做几个LOGO轮换着用

    Goingmm 2006-03-04

posted @ 2006-03-04 18:06 Goingmm 阅读(675) | 评论 (9)编辑 收藏

     摘要: 一个能 物理存储XML的 关系数据库  阅读全文
posted @ 2006-02-23 09:56 Goingmm 阅读(360) | 评论 (0)编辑 收藏

     摘要: 再探类装载之秘...  阅读全文
posted @ 2006-02-23 09:51 Goingmm 阅读(477) | 评论 (0)编辑 收藏

        昨天起,小额支付系统正式在北京上线。北京日报报道称,这意味着居民办理各种2万元以下跨行支付业务有了技术支持。记者昨天从京城各家银行了解到,银行目前能办的只有5项业务,且多数是"对公"业务。市民关注较多的跨行通存通兑,目前还不能实现。不过,已经有股份制银行打出了同城跨行业务不收费的口号,其余的收费标准还未定出。 
        记者了解到,目前各家银行能办理的业务是普通贷记业务、普通借记支付业务、定期贷记业务、定期借记业务和信息服务类业务。其中和市民关系密切的是代收工资业务,代付保险金、养老金,代收水、电、煤气等公用事业费用等等。但从具体操作上,这些业务还需要发工资的单位和银行沟通;而代收水、电、煤气等公用事业费用的公司可通过系统向在不同银行开户的用户收取费用,但需要得到个人的授权。
        而个人通存通兑业务,如在工行往中行的存折存钱,在交行取招行账号上的钱,目前尚未实现。有关人士预测,今年内有望将所有的业务都上线实施。
        据介绍,提供该项系统的央行将会向各家银行收费,理论上,各行会将这笔费用转嫁到最终用户身上。但目前,包括四大行在内的各家银行对于收费标准仍在互相观望。但昨天招商银行表示,对通过小额支付进行同城跨行汇款不收费,但异地的须按电子划汇的标准收费。民生银行也表示,对通过小额支付进行跨行汇款暂时不收费,兴业银行则按照此前电子划汇的标准收费。

Goingmm 2006-02-21   from:http://www.gx.chinanews.com.cn/xw/show.asp?id=16980
posted @ 2006-02-21 16:03 Goingmm 阅读(382) | 评论 (3)编辑 收藏

       春节期间悄然上线的[http://www.google.cn/]中国网站昨天被指涉嫌违规经营,并已经引起信产部的关注。Google.cn事实上并没有取得在中国运营互联网信息服务所必须的ICP牌照,而按照我国现行政策的相关规定,外资在没有得到许可的前提下,并不允许经营包括ICP在内的电信业务


google.JPG

ganji.JPG

Goingmm 2006-02-21

posted @ 2006-02-21 12:12 Goingmm 阅读(305) | 评论 (1)编辑 收藏

             Application Server:WebSphere 5.1


EJB_Call_Flow.jpg
             Goingmm  2006-02-17
posted @ 2006-02-17 11:50 Goingmm 阅读(334) | 评论 (3)编辑 收藏

     Key Words: Sun Microsystems   Java SE 6 Beta

     历时一年时间,Sun 终于推出了Java SE 6 Beta。这是Java SE 6(Mustang)的第一个完整版本。其中的亮点包括,web services,新的安全机制和管理,改进的desktop用户体验,File类添加了一些检查磁盘空间的API。Splash Screen 等等
      当然还有 Fixed and Known Bugs

Downloading
url:http://java.sun.com/javase/6/download.jsp

Goingmm  2006-02-16  from:csdn

JDK1.6 Platform.JPG

     Goingmm 2006-02-17   Modified

posted @ 2006-02-16 16:27 Goingmm 阅读(449) | 评论 (3)编辑 收藏

google_bb.gif

 新闻:2006年2月14日,Google中国黑板报[www.googlechinablog.com] 正式开通

 定位:普通Google员工与网民分享交流产品、技术和文化的窗口
 布局:左边[2/3]用Blog做噱头[ 吸引眼球]  +  右边[1/3][ 推销自己的产品链接Google忠实的网络推手]
 用意:眼看中国这么大的市场,Google也急于在中国本地化,用心良苦
 花絮:图片“Google 中国工程师在工作”有一个胖娃的背影,有点像老“XU”
 视角:直白的商业运作模式,不一定能拿到Google员工直白的心声。喜欢关注Google的朋友,可以期待和观望
              企业比较低廉的一种公关模式。期待交流的想法是无庸置疑的,值得表扬

Goingmm 2006-02-15

注意看红色圈住的人是谁? 老XU 啊!~~ 点图片有超链
spider-769859.jpg

Goingmm 2006-02-17 修改

posted @ 2006-02-15 18:43 Goingmm 阅读(527) | 评论 (5)编辑 收藏

First, Happy valentine's day

地点:中国人民建设银行成都分行
时间:2006年2月14日

现场
    情人节:09:30 - 11:30    第一会议室
    情人节:14:30 - 17:30    第一会议室

在此
    特别感谢SCS两年来对我的培养
    祝福SCS的全体同事“Happy valentine's day”
    
Goingmm 
posted @ 2006-02-14 13:54 Goingmm 阅读(264) | 评论 (5)编辑 收藏


tomcat.gif     jakarta-banner.gif

Key words
Name:     Apache Tomcat Version 5.5.9                                            
Release:  v 1.25 2005/01/19 20:30:26
JDK:        1.4.2 OR 5.0


背景:
    JDK5.0 + Tomcat 5.5.9
    去年,因为尝鲜一直使用JDK5.0。使用这个搭配也从来没有遇到问题

    JDK1.4.2 + Tomcat 5.5.9
    今年拿到新电脑后,现在的开发环境很依赖环境变量的设置。出于谨慎我还是选择了使用JDK1.4.2
    昨天晚上无聊的装上Tomcat 5.5.9玩
    
    1)JRE选择JDK1.4.2 安装完成
    2)用Monitor Tomcat 启动Tomcat
    3)打开
http://127.0.0.1:8080/
    4)找不到服务器
    5)感觉+漫骂... 真他NND的奇怪了 疑惑什么地方弄错了

改装经历:
    咱,不能丢脸的被这只猫猫忽悠吧!
    于是,很不耐烦的找出这个版本的RELEASE-NOTES(坏习惯-不太喜欢看说明)

   ==================
    Dependency Changes:
    ==================
    Tomcat 5.5 is designed to run on J2SE 5.0 and later, and requires
    configuration to run on J2SE 1.4.  Make sure to read the "RUNNING.txt" 
    file in this directory if you are using J2SE 1.4.

    In addition, Tomcat 5.5 uses the Eclipse JDT Java compiler for compiling
    JSP pages.  This means you no longer need to have the complete
    Java Development Kit (JDK) to run Tomcat, but a Java Runtime Environment
    (JRE) is sufficient.  The Eclipse JDT Java compiler is bundled with the 
    binary Tomcat distributions.  Tomcat can also be configured to use the
    compiler from the JDK to compile JSPs, or any other Java compiler supported 
    by Apache Ant.
    
     Installing the compatibility package will add the following to the list, which are
     needed when running on J2SE 1.4:
     * jmx.jar (Java Management Extensions API 1.2 or later)
     * xercesImpl.jar (Xerces XML Parser, version 2.6.2 or later)

     呵呵... 这里解释的很清楚
     Ø Tomcat 5.5 只默认支持J2SE 5.0 and later
     Ø Tomcat 5.5  在编译JSP上做出的改变
    
     但是,TNND后面一段关于在JDK1.4上配置运行的描述,实在是太迷糊人了[根本没有说清楚]
     根据他表达的意思我试过很多方法
     Ø 看来想要“不妥协”的使用,唯有“改装”。有了改装的初步想法
     Ø 在我的机器里面找看有没有现成的jar包 发现了几个相似的包 测试不行
     Ø 到官方网站[http://tomcat.apache.org/download-55.cgi]把所有的包都down下来看
     Ø 最后发现一个像摸像样的包[apache-tomcat-5.5.15-compat]但是和我现在的Tomcat版本不一样
     Ø 抱着试一下的心态。解压缩出来两个文件夹 ① bin ②common 用他们覆盖安装目录下的文件夹
     Ø 用Monitor Tomcat 启动Tomcat
     Ø 打开
http://127.0.0.1:8080/ 看到了熟悉的猫猫 
     Ø Bingo,记录下这次“改装”的经历

经验总结:
      其实,这只是我们平时遇到的很小很小的问题(菜鸟问题)
      问:为什么要总结呢?为什么还用小题大作写成blog呢?
      结:使用任何产品,用心看看说明文档 是非常有必要的。尊重产品工作者的劳动,
               自己也能少很多麻烦
     
顺便... 链接其他:
      关于Tomcat各个版本的运行速度。
emu 哥哥在他最近的blog中给出了测试结果
      个人感觉
      Ø  Tomcat 越新的版本使用越方便[基本上不需要单独配置]
      Ø  Tomcat 不为我们熟悉的功能也越来越多[平时没用到的也没去关注过]
      Ø  Tomcat  运行速度的测试结果,我还是比较疑惑

   Goingmm  2006-02-12

posted @ 2006-02-12 18:36 Goingmm 阅读(790) | 评论 (3)编辑 收藏

  Ø 280公里意味着什么?

             高速公路2.5小时车程,火车3.5小时行程

     Ø 280公里发生了什么?

             两次/年 片刻停泊 留下的唯有牵挂

     Ø 280公里给了我什么?

             时间换来单薄生存 享受的唯有牵挂

    

     初八是个好日子 书上说:“七不出门,八不归家”

     又要出发了 离家的感觉是牵挂

     爸妈牵挂280公里外的我 平平安安 有获

     我牵挂280公里外的父母 身体健康 发财

    

     南充 [ 一个“变化”很大的城市 ]

     说“浮华”不敢  我不敢靠“浅尝”的数字来诽谤

     说“作践”不愿  我不愿靠“批露”的声音来出名

     说“独特”不能  我不能靠“断言”的措辞来浮夸

     说“自清”不想  我不想靠“忘根”的情愫开解脱

    

     原本以为,可以把这里的“精彩”和大家分享

     调皮的光标‘怪异’的摆下这个‘怪异’的标题

     我能想到的,只有明天280公里远去的牵挂

 

     送给

     每一个即将离开父母去找寻梦想的朋友

     或许,你们的牵挂是2800公里 28000公里

    

     临走时,别忘了

     用心摸摸爸爸的皱纹

     悄悄数数妈妈的白发

    

    

     Goingmm Subscription  2006-2-5 凌晨

    

posted @ 2006-02-05 02:04 Goingmm 阅读(406) | 评论 (6)编辑 收藏


凌晨,看到一个挺有趣的讨论[JavaEye]。2006年,Java界的主题将是什么?

两年的开发经历,对新技术的追逐与否我不敢妄自评论。茶余饭后无聊的思考
基础显然重要,当新事物能为我所用的时候,能快速应对,足以
不可否认,新技术的出现,往往能成就一批热心追逐的人[只是少部分,大部分属于随波逐流的困惑]

2000年 应用服务器年 
       这一年,Java应用服务器的需求成为各大公司的最大利益。谁不希望用“业界标准”来标榜自己呢!
■  BEA公司的繁荣从此开始

2001年 EJB年
       这一年,EJB2.0发布,整个Java业界为之震动,“牵强”的分布式架构,让EJB成了魔术词汇
■  EJB成了高价企业软件的“文凭”。懂不懂EJB成为能不能拿到高薪的关键

2002年 设计模式年
       这一年,大家开始发现EJB真TNND难用,开始发现Java开发需要遵循某种规则,设计模式开始流行,
       J2EE核心模式也应运而生
■   jdon网站借着设计模式的热点一举成名

2003年 Hibernate年
       这一年,大家开始否定EJB,开始采用O/R Mapping,Hibernate迅速流行
■  JavaEye由于颇有预见性的推广普及Hibernate而成为国内Java社区的亮点

2004年 Spring年 
       这一年,EJB3规范和JDO2规范忙着打架,但是真正的主角是Spring,Spring携着IoC和AOP迅速占领J2EE的眼球.
■  《Without EJB》 成为大家背弃EJB2.0的宣言书

2005年 AJAX年
       这一年,大部分时间大家都在反思,或者是学习合适的应用程序架构。伴随着Google的Gmail,
       Google Maps等一系列AJAX应用,一个古老的XMLHTTP组件咸鱼翻身。这个冬天终于找到了主题-AJAX
■  骄傲的程序员回头关注“用户体验”

2006年 XX年?
       这一年,除了成名已久的EJB3.0值得期待,我们还能看到出人意料的新名词吗?
       这一年,将会是更深刻的反思年吗?[用已有的技术集合更完美的“用户体验”]
       这一年,我们将何去何从,我也说不清楚
       你呢?

 Goingmm  2006-02-03

posted @ 2006-02-03 13:08 Goingmm 阅读(439) | 评论 (8)编辑 收藏


    2006年1月25日早上9点起床
    收拾了几件换洗的衣服准备回家
    回家的心情是急切的,关上门
    刚走出几步
    又摸出钥匙串 回去扫视着整个房间
   
    是不舍?
    是不情愿?
    是不放心?

    好像感觉有什么东西落下了
    似乎惦念着还有什么事没有做完
   
    5分钟后没有任何发现 倔强的离开了
    在离开的的士上还在猜疑
    永远离别一个城市也不曾有过的感觉
   
    大年三十
    陪爸爸妈妈看完春节晚会
    邀集一伙朋友准备出去“通宵”
    因为今年是本命年
    大伙都建议上庙去求个 [ 2006 平安 ]
   
   坐车+走路 1小时就到了
   见了 如来佛 观音菩萨 十八罗汉 财神爷 ...
   祈祷的心是诚实的
   面对恩赐,永不满足的心 感觉太乱

   大年初二
   一伙朋友坐船出去 游嘉陵江
   目的地是 
   50多年前“毛主席的共产主义作品” -- 农村合作社
   看着 破陋的 两排男女宿舍+两间夫妻房
    听着  89岁老人淳朴的歌声“社会主义好”
    喝着 所谓的“大锅饭”(一大锅红薯稀饭)
    
    50  年前的“共产主义”    
    500年后的“共产主义”
    
    希望 至少能像庙里的菩萨
    给我一点虔诚的勇气 

    心突然...
   
    Goingmm  2006-01-30
     
   

posted @ 2006-01-30 21:55 Goingmm 阅读(414) | 评论 (7)编辑 收藏

 

BLOGJAVA 服务器居然是这个配置

Windows Server 2003 Microsoft-IIS/6.0 15-Jan-2006 61.147.119.205  CHINANET jiangsu province yangzhou city network

这个结果应该很准确,试过SOHU的服务器。然后找MIKE确认,的确没错

posted @ 2006-01-19 10:21 Goingmm 阅读(305) | 评论 (3)编辑 收藏


    今天,在咖啡馆里碰到几个老朋友,由于工作关系,对电信行业也有些许了解。于是问起我关于3G的问题。正好同桌有好多非通信行业人士,听到我们谈这个话题非常的有意思,纷纷发问。于是,简单的回答了一些问题,相信可以给大多数不了解3G的普通用户可以给予一定的说明。在此写将出来,以问答形式,给即将到来的3G时代进行一点普及推广。

 

问:3G是目前最热门的话题,到底3G服务与目前普遍使用的GSM和GPRS应用有何不同?

答:有两个主要不同的地方:3G可提供更多的视频服务。虽然GPRS也可提供视像上的享受,但却不能提供好的视像品质。就好比如您要通过手机看直播串流,这是较难的,而3G就能。通过3G,用户可体验到不同的移动应用。

第二点是移动下载的速率比GPRS更好。比如您要下载一首完整的歌曲,一首歌约1.5MB。GPRS是可以下载的,但却需要很长的时间,如果您使用3G服务,约花上30秒就可完成整首的歌曲下载。

另外一点就是在2G服务应用上做不到的,但3G服务却能做到的视像通话,就类似2G的声音通话,我们可通过手机面对面的通话。

还有一个不同是老百姓不容易接受或者不容易理解的,就是3G可以提供更加清晰的语音服务。由于2G的语音质量已经很不错了,所以,这个答案只能是在3G上马之后进行细微的比较才能得出。
    当然,3G和2G最主要的就是带宽升级带来的应用。多种种应用应该不仅仅限于手机,笔记本和PDA用户也应该能享受到3G带来的便利
    

问:移动用户可从3G服务中获得怎样的益处?

答:我把3G所带来的益处规分为三种。

一是移动用户可通过3G服务进行视像通话,无论您在哪里,您都可看到对方的表情进行通话。

二是通过3G的高速速率可更快的进入移动平台。这是之前的2G服务所满足不到用户的关键。高速率的3G可让您更快的进入您要的应用内容,例如进行下载工作时,之前的GPRS只能够跑115kbps,但3G却拥有更好的速率素质。

三是提供更广系列的3G应用内容。

 

问:您刚才一直在提3G可进行视像通话。是否可以说,视像通话就是3G的杀手应用?

答:不,不能这么说。我认为目前没有任何的3G杀手应用出现,当然希望是有的,但其实3G并不一定只有单一的杀手应用,或许有很多种。至于视像通话其实有一些不足,比如,当您进行视像通话,您的脸面对着镜头,这是进行视像通话时令人感到沉重的地方,有些人可能就不喜欢。这和单独的用手机照相的感觉是不一样的。

当然,我相信在3G服务之下,视像通话应用将是广受用户欢迎的3G应用,这一趋势将在世界各地流行开来。另外,一旦我国上马3G,视像通话将可能成为运营商宣传的重点,用户也就容易了解,相信视像通话将是推动3G服务的主要关键应用之一。

 

问:WIMAX也是无线技术之一,甚至有人说它是3.5G。您认为WIMAX与3G服务有什么不同?

答:WIMAX是一项新的技术,它充满了市场潜能。WIMAX与3G同时在讲述着宽频,但两者开始的角度是有所不同的。WIMAX讲的是宽频技术,谈的是在家或是公共领域的无线应用,涉及到移动宽频的解决方案。3G从一开始,就完全的从移动手机的角度开始或出发。

 

问:那些用户可能成为3G的主要用户?

答:有两种目标用户群。

第一种是专业的移动用户。专业移动用户可通过3G的视频通话与伙伴通话,快速的网络速率满足他们的需求。快速率的3G数码卡可以连接到他们笔记电脑,进入互联网浏览,他们不再需要电话线或是其他的连接线。我们也将他们叫做高端用户。

第二种是20岁至30岁之间的年轻人,他们视3G服务能为他们提供更多的娱乐,这将成为运营商的主要目标群。

 

问:您觉得3G服务上马后,现有的2G/2.5G用户是否会马上转去使用3G,或者说,那些因素决定用户向3G转移?

答:我想主要有三个因素。

第一是市场上的3G手机价格刚开始应该很贵。据我猜测,3G启动初期在市场上的3G手机售价大多数将在三千以上,年轻用户群对这样的手机售价较难以消化。

二是3G服务的覆盖率不够。任何运营商得到3G牌照之后都不可能全国性建网,仅仅会在部分大城市先行建网,到2008年以后,绝大部分省、地市两级城市才可能达到满意的覆盖率。这和中国联通实施建设CDMA网络以及CDMA用户增长情况是一致的。

三就是用户对3G服务的了解到底有多少?目前知道3G的人群其实非常的少,上马3G之后,需要运营商以及SP们大力宣传3G相关业务,才有可能让更多的老百姓了解3G业务,比如前面提到的视像通话很可能是老百姓最早能接受或者了解到的业务。其实3G不仅是这项应用,而是有更快的下载速率,为用户提供更多的视频内容,或是更快的进入互联网等益处,提供更多的娱乐。当然,我这里要强调的是,网络的表现也是占有很大的因素,因此哪个运营商的网络质量高,覆盖率高,将可能吸引更多的用户。

 

问:看目前的情形,我国很有可能出现多家3G运营商,那么,你认为,运营商应该用什么特点来吸引用户选择自己的3G服务?

答:我想,除了前面说的哪个运营商的网络质量高,覆盖率高,就可能吸引更多的用户之外,关键是看哪个运营商提供的应用内容供应比竞争对手的应用内容多,譬如有多少个现场直播的电视频道、多少种的娱乐选择、多少种的视频录像下载、多少种的铃声选择、多少种的游戏下载等。另外,一些新兴业务如查看交通状况、移动博客、数据卡等服务是否齐全等。

另一方就是谁的3G服务收费方面较让大众负担得起,就好像您要进行视像通话,收费是与2G的声音通话收费一致,收费大众化。这也许是最影响用户采用3G的关键因素了。

 

问:您认为2G服务什么时候退役,什么时候全面转向使用3G?

答:我认为这需要一个较长的时间段,从今年年初算起,2G起码还有7至10年的生命期,3G上马之后,应该有个3年左右的慢热期,我想到2010年之后,3G用户将出现较高幅度的增长。


作者版权:http://blog.sina.com.cn/u/5560fa9f010001y5


2006-01-17



posted @ 2006-01-17 10:51 Goingmm 阅读(321) | 评论 (3)编辑 收藏



 Wallop  金山词霸2005给我的解释是:
  -------------------------------------------------------------------------
   vi.
   乱窜, 猛冲, (车等)颠簸, 沸腾作用
   vt.
   猛击, 击溃
   n.
   重击, 冲击力, 乐趣
 --------------------------------------------------------------------------

 Wallop背景:
       Wallop还有一个中文名字--“我老婆”
       Wallop是微软研究院社会性计算组(Social Computing Group)的一个研究项目,用于探索研究人们如何分享媒介,并在社会性网络(SNS)的环境下进行对话和交流。其核心思想便是分享。通过构建一个虚拟的网络平台,提供人与人之间的相互交流,相互交换联系方式、Blog个人网络日志、以及个人 照片、音乐等,以致力于更加接近现实的人际关系。
       Wallop的项目领导者是 一位叫Lili.Cheng的华裔女子。从2003年开始,就开始在微软领导这个项目。
       Wallop可以说是一个真正意义上的RIA,UI全由Flash制作而成。以完美用户体验为前提。界面清新,风格独特。了解RIA已经有一段时间。现在有这么一个完美的演示平台。感觉真是爽
       
关于注册:
      Wallop现在处于小范围的测试阶段。所以微软还没有提供公开注册。但是可以通过朋友邀请,需要的朋友可以留下Email地址。如果你想去抢注自己心仪的ID号,不要着急,Wallop提供的是邮箱地址登陆,没有ID给你抢。

     Google推出的Orkut也是类似的东东,想注册一个,没有找到邀请。如果有体验过的朋友,希望推荐来玩玩

真实图片:
     Wallop.JPG
     


Goingmm  2005-01-09

posted @ 2006-01-09 13:58 Goingmm 阅读(572) | 评论 (13)编辑 收藏

     
       dog.jpg  狗一般的快乐...

   2006-1-1 1530 打开眼睛,撕开被子,立起枕头,挺冷的,想躺下继续睡。 
   2006是我的本命年,迷信吗?还有点心虚。理性吧!有准备承受更大的压力。

   新年的第一天,你是怎么过的?有为自己在新的一年做计划吗?有和朋友一起出去大吃一顿庆祝吗?有像我一样睡昏了头的吗?看看我新年第一天的流水帐吧!
  
什么都还没有做,心里有点怪怪的。为什么会有点发了慌的感觉。因为什么都没有做发慌吗?可能是肚子太饿了。 
   找到一家象样的中餐馆子。要了一盘“锅盔回锅”,还特意叫老板上了一碟红油泡菜。整碗白米干饭。很不错哦。
  
吃饱回家看会电视(湖南电视台的新春晚会),TNND翻来覆去都是那几个“超女”没看头。
  
点支烟,摸出电脑准备听会音乐,翻翻过去一年的照片。让回忆在“小资”中升华。突然记起前几天DownWTP1.0。最近在翻看一些经典电影。一直都没时间玩玩。于是打开玩,等我再次感觉肚子饿已经是晚上2220
  
对了,MIKE明天就要去SOHU了。临别前,给他电话送别。那娃居然在打麻将。不晓得听懂我送别的良苦用心没有。愿他一路顺风。新年新成绩吧!
  
放下电话,煮碗面吃,又看见昨天泡的衣服都还没有洗。
  
洗衣服是一件很有趣的事情。平时很少有机会运动,这时候可以凑合着活动一下。平时绷紧的神经挺累的。这时候,可以很享受的哼唱着散碎的歌曲。忧郁了,可以试着在发泄中思考。享受着局外人的宁静
  
工作快两年了,自己问过自己一个问题,说忙也好,颓废也吧。一直在回避,怕自己知道答案后会后悔当初。会逃避现实生活,会不知所措偏偏在这时候想起“为什么想要做一个程序员”。
   
当初可能有一种不服输的想法。计算机毕业总能混碗吃吧。靠自己的双手生存的感觉真的不错。但是这种感觉很短暂。
  
晚上的公交车窗外,灯红酒绿。而我们只属于浮华背后的看客。躲在车窗后面的我们,窥视着,YY着。或许有着无数的感慨和畅想。或许回味着有时候也加入其中。哽咽着洗脚水味的洋酒。带着酒意,舞动在模糊迷人的身体背后。那是在发泄,那是在饥渴的释放 那是一只披着羊皮的狼。
  
因为这里没有欺骗,没有勾心斗角,没有讨价还价,很单纯,单纯到你可以没有其他的任何生活方式。在这里你可以找到攻城拔寨的快感。可以享受与世隔绝的宁静。怀揣骨子里面的清高。或许还能享受在别人眼中的高手身份吧!
  
大多数程序员都会经历 新手学习;逐渐成熟;自暴自弃,浮躁得异想天开;走向成熟或者是不知天高地厚得狂妄。
  
很难定义自己现在所处的阶段。就算在浮躁期吧。有了一点小小的成就感以后,就会变的浮躁,开始去思考,为什么做程序员,现在该拿多少薪水,梦想的实物该拿什么去换
     
我不敢奢望谁能去帮我承担这种浮躁光标闪到这里,变得机械了。突然没言语
  
知道自己需要有一段长时间的休息。去忘掉Source Code,淡化网络给我们带来的便捷。开始打算着,选择离开一段时间。离开Office,离开友情深深的团队。离开这块“净土”去瞧瞧陌生的精彩。回到阔别已久的老家追忆童年。或许生活的不堪重负会让我减却浮躁。或许该把竞技的舞台留给更多饥渴的勇士。这样对大家都好。

   都说,新的一年应该给自己一个新的计划。计划如果有Scope的话。可以把他分成三种

n    Request 类型的 [每一次记得了,看看计划,傻笑一下,干一次]

n    Session 类型的 [在一个阶段给自己的计划,可以按计划坚持干完]

n    持久    类型的 [给自己一个长期的计划,不懈的努力]

面对计划,我就属于第一种,哈哈!给大家说一段笑话吧。大学的时候计划考英语四级,买了本单词来背。前些天再次想起,翻出来看的时候发现结果才看到“E”。看了两天又丢一边了。

所以,有时候我不太喜欢过场式的给自己计划。做好每一天,让“鲜为人知的理想”离我越来越近就好。今天打算为浮躁埋单


    衣服洗完了,好象今天洗得特别干净。新年新气象嘛!


Goingmm Subscription 2006-01-01

posted @ 2006-01-02 14:38 Goingmm 阅读(418) | 评论 (9)编辑 收藏

      
       WTP(Web Tools Platform)是Eclipse组织的一个针对J2EE做的一个开发工具插件,是Eclipse下面的一个项目.使用过WTP 0.7的用户都知道,WTP提供了几乎完整的Web应用开发的工具支持.
      12月19日,Eclipse基金会发布了WTP(Web Tool Project) 1.0rc版本.当天只发布了相关的插件包。我大概是25号从官方网站
http://download.eclipse.org/webtools/downloads/drops/R-1.0-200512210855/拿到了全集成的版本(Eclipse Version: 3.1.1 Build id: M20050929-0840)。
     用这个版本写了一个DEMO。感觉是上手挺容易的。V1.0在V0.7的基础上Fixed了一些Bug。而且有些功能点简化了。做得更common一些。使用过程遇到一些问题,但我不肯定是不是对环境不够熟悉造成的误解。比如修改一个JSP的名字,怎么发布都报错,只有关掉WTP重新Init一次。还有中文问题在这个环境中仍然存在。为了不写Action和相关配置文件,我用一个Servlet来控制转发的,加上一句req.setCharacterEncoding("gb2312")就搞定了。

    列举主要使用过程:
    ■ Setup and configuration 
    ■ Development basics       
    ■ JSP Editing                     
    ■  Servlets                         
    ■  Deployment descriptors  
    ■  Structure Source Editing (SSE) framework
    ■  Server
    ■  Running and debugging the web app

     准备放这个Demo的过程,和简单的代码。但是篇幅原因,我就只能放一些零碎的图片。在这里没有打算告诉大家怎么去写一个简单的Web应用。如果对WTP感兴趣的话,这里就当是一些初级的了解吧。有什么问题欢迎讨论
      
      WTP的基础了解 PIC
      WTP-ProjectScopes.JPG

     WTP-Architecture.JPG

    基本配置 PIC
    Configuration-InstalledJRE.JPG

    Configuration-ServerRuntime.JPG

   关于DEMO PIC
   WTP-ProjectFileView.JPG

  添加一个这样的服务器很简单。和WSAD差不多WTP-ProjectStartServer.JPG

启动好的服务器
WTP-ServerStarted.JPG

运行JSP
WTP-ProjectRun.JPG

登陆页面
WTP-ProjectLoginError.JPG

WTP-ProjectLogin.JPG

登陆成功
WTP-ProjectLoginSuccessful.JPG

中文请求 演示
WTP-RequestZH.JPG

WTP-ResponseZH.JPG


END


goingmm 2006-01-02

posted @ 2006-01-02 14:19 Goingmm 阅读(618) | 评论 (1)编辑 收藏

    喔! 天亮了!不知不觉 熬了一个通宵 让今天在熟睡中流逝

20051224.JPG

posted @ 2005-12-24 09:47 Goingmm 阅读(250) | 评论 (3)编辑 收藏

异常处理

       曾经专门花时间研究过JAVA中“异常处理”。一直想写一篇文章。也一直没有找到合适的方式。概念书上都有,在这里我再重提又觉得对不起大家。最后就不了了之。
       无意间,看到CSDN上有一篇文章写得不错。转给大家看看吧。作者给出了很标准的做法,这里我加点建议。
      
       仅供参考
注:所有建议都不会去怀疑和针对,作者想要讲解的异常处理知识点
      Source code的每一个角落都这样100%标准的去处理异常。会一定程度的影响代码质量。不要相同的处理逻辑反复出现(比如用Template模式简化处理过程)         
  
¢ 根据自己的实际情况选择异常使用,能不用异常处理的时候尽量不要用。有时候没有必要强求”100%
       
      
      转贴内容

      你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗?
    

 11 OutputStreamWriter out =  
 22 java.sql.Connection conn =  
 33 try // ⑸ 
 44  Statement stat = conn.createStatement(); 
 55  ResultSet rs = stat.executeQuery( 
 66   "select uid, name from user"); 
 77  while (rs.next()) 
 88  
 99   out.println("ID:" + rs.getString("uid"// ⑹ 
1010    ",姓名:" + rs.getString("name")); 
1111  }
 
1212  conn.close(); // ⑶ 
1313  out.close(); 
1414 }
 
1515 catch(Exception ex) // ⑵ 
1616 
1717  ex.printStackTrace(); //⑴,⑷ 
1818 }

作为一个Java程序员,你至少应该能够找出两个问题。但是,如果你不能找出全部六个问题,请继续阅读本文。

  本文讨论的不是Java异常处理的一般性原则,因为这些原则已经被大多数人熟知。我们要做的是分析各种可称为“反例”(anti-pattern)的违背优秀编码规范的常见坏习惯,帮助读者熟悉这些典型的反面例子,从而能够在实际工作中敏锐地察觉和避免这些问题。

  反例之一:丢弃异常

  代码:15行-18行。

  这段代码捕获了异常却不作任何处理,可以算得上Java编程中的杀手。从问题出现的频繁程度和祸害程度来看,它也许可以和C/C++程序的一个恶名远播的问题相提并论??不检查缓冲区是否已满。如果你看到了这种丢弃(而不是抛出)异常的情况,可以百分之九十九地肯定代码存在问题(在极少数情况下,这段代码有存在的理由,但最好加上完整的注释,以免引起别人误解)。

  这段代码的错误在于,异常(几乎)总是意味着某些事情不对劲了,或者说至少发生了某些不寻常的事情,我们不应该对程序发出的求救信号保持沉默和无动于衷。调用一下printStackTrace算不上“处理异常”。不错,调用printStackTrace对调试程序有帮助,但程序调试阶段结束之后,printStackTrace就不应再在异常处理模块中担负主要责任了。

  丢弃异常的情形非常普遍。打开JDK的ThreadDeath类的文档,可以看到下面这段说明:“特别地,虽然出现ThreadDeath是一种‘正常的情形’,但ThreadDeath类是Error而不是Exception的子类,因为许多应用会捕获所有的Exception然后丢弃它不再理睬。”这段话的意思是,虽然ThreadDeath代表的是一种普通的问题,但鉴于许多应用会试图捕获所有异常然后不予以适当的处理,所以JDK把ThreadDeath定义成了Error的子类,因为Error类代表的是一般的应用不应该去捕获的严重问题。可见,丢弃异常这一坏习惯是如此常见,它甚至已经影响到了Java本身的设计。

  那么,应该怎样改正呢?主要有四个选择:

  1、处理异常。针对该异常采取一些行动,例如修正问题、提醒某个人或进行其他一些处理,要根据具体的情形确定应该采取的动作。再次说明,调用printStackTrace算不上已经“处理好了异常”。

  2、重新抛出异常。处理异常的代码在分析异常之后,认为自己不能处理它,重新抛出异常也不失为一种选择。

  3、把该异常转换成另一种异常。大多数情况下,这是指把一个低级的异常转换成应用级的异常(其含义更容易被用户了解的异常)。

  4、不要捕获异常。

  结论一:既然捕获了异常,就要对它进行适当的处理。不要捕获异常之后又把它丢弃,不予理睬。

  反例之二:不指定具体的异常

  代码:15行。

  许多时候人们会被这样一种“美妙的”想法吸引:用一个catch语句捕获所有的异常。最常见的情形就是使用catch(Exception ex)语句。但实际上,在绝大多数情况下,这种做法不值得提倡。为什么呢?

  要理解其原因,我们必须回顾一下catch语句的用途。catch语句表示我们预期会出现某种异常,而且希望能够处理该异常。异常类的作用就是告诉Java编译器我们想要处理的是哪一种异常。由于绝大多数异常都直接或间接从java.lang.Exception派生,catch(Exception ex)就相当于说我们想要处理几乎所有的异常。

  再来看看前面的代码例子。我们真正想要捕获的异常是什么呢?最明显的一个是SQLException,这是JDBC操作中常见的异常。另一个可能的异常是IOException,因为它要操作OutputStreamWriter。显然,在同一个catch块中处理这两种截然不同的异常是不合适的。如果用两个catch块分别捕获SQLException和IOException就要好多了。这就是说,catch语句应当尽量指定具体的异常类型,而不应该指定涵盖范围太广的Exception类。

  另一方面,除了这两个特定的异常,还有其他许多异常也可能出现。例如,如果由于某种原因,executeQuery返回了null,该怎么办?答案是让它们继续抛出,即不必捕获也不必处理。实际上,我们不能也不应该去捕获可能出现的所有异常,程序的其他地方还有捕获异常的机会??直至最后由JVM处理。

  结论二:在catch语句中尽可能指定具体的异常类型,必要时使用多个catch。不要试图处理所有可能出现的异常。

  反例之三:占用资源不释放

  代码:3行-14行。

  异常改变了程序正常的执行流程。这个道理虽然简单,却常常被人们忽视。如果程序用到了文件、Socket、JDBC连接之类的资源,即使遇到了异常,也要正确释放占用的资源。为此,Java提供了一个简化这类操作的关键词finally。

  finally是样好东西:不管是否出现了异常,Finally保证在try/catch/finally块结束之前,执行清理任务的代码总是有机会执行。遗憾的是有些人却不习惯使用finally。

  当然,编写finally块应当多加小心,特别是要注意在finally块之内抛出的异常??这是执行清理任务的最后机会,尽量不要再有难以处理的错误。

  结论三:保证所有资源都被正确释放。充分运用finally关键词。

反例之四:不说明异常的详细信息

  代码:3行-18行。

  仔细观察这段代码:如果循环内部出现了异常,会发生什么事情?我们可以得到足够的信息判断循环内部出错的原因吗?不能。我们只能知道当前正在处理的类发生了某种错误,但却不能获得任何信息判断导致当前错误的原因。

  printStackTrace的堆栈跟踪功能显示出程序运行到当前类的执行流程,但只提供了一些最基本的信息,未能说明实际导致错误的原因,同时也不易解读。

  因此,在出现异常时,最好能够提供一些文字信息,例如当前正在执行的类、方法和其他状态信息,包括以一种更适合阅读的方式整理和组织printStackTrace提供的信息。

  结论四:在异常处理模块中提供适量的错误原因信息,组织错误信息使其易于理解和阅读。

  反例之五:过于庞大的try块

  代码:3行-14行。

  经常可以看到有人把大量的代码放入单个try块,实际上这不是好习惯。这种现象之所以常见,原因就在于有些人图省事,不愿花时间分析一大块代码中哪几行代码会抛出异常、异常的具体类型是什么。把大量的语句装入单个巨大的try块就象是出门旅游时把所有日常用品塞入一个大箱子,虽然东西是带上了,但要找出来可不容易。

  一些新手常常把大量的代码放入单个try块,然后再在catch语句中声明Exception,而不是分离各个可能出现异常的段落并分别捕获其异常。这种做法为分析程序抛出异常的原因带来了困难,因为一大段代码中有太多的地方可能抛出Exception。

  结论五:尽量减小try块的体积。

  反例之六:输出数据不完整

  代码:7行-11行。

  不完整的数据是Java程序的隐形杀手。仔细观察这段代码,考虑一下如果循环的中间抛出了异常,会发生什么事情。循环的执行当然是要被打断的,其次,catch块会执行??就这些,再也没有其他动作了。已经输出的数据怎么办?使用这些数据的人或设备将收到一份不完整的(因而也是错误的)数据,却得不到任何有关这份数据是否完整的提示。对于有些系统来说,数据不完整可能比系统停止运行带来更大的损失。

  较为理想的处置办法是向输出设备写一些信息,声明数据的不完整性;另一种可能有效的办法是,先缓冲要输出的数据,准备好全部数据之后再一次性输出。

  结论六:全面考虑可能出现的异常以及这些异常对执行流程的影响。

          改写后的代码

 1OutputStreamWriter out =  
 2java.sql.Connection conn =  
 3try 
 4 Statement stat = conn.createStatement(); 
 5 ResultSet rs = stat.executeQuery( 
 6  "select uid, name from user"); 
 7 while (rs.next()) 
 8 
 9  out.println("ID:" + rs.getString("uid"+ ",姓名: " + rs.getString("name")); 
10 }
 
11}
 
12catch(SQLException sqlex) 
13
14 out.println("警告:数据不完整"); 
15 throw new ApplicationException("读取数据时出现SQL错误", sqlex); 
16}
 
17catch(IOException ioex) 
18
19 throw new ApplicationException("写入数据时出现IO错误", ioex); 
20}
 
21finally 
22
23 if (conn != null
24  try 
25   conn.close(); 
26  }
 
27  catch(SQLException sqlex2) 
28  
29   System.err(this.getClass().getName() + ".mymethod - 不能关闭数据库连接: " + sqlex2.toString()); 
30  }
 
31 }
 
32
33 if (out != null
34  try 
35   out.close(); 
36  }
 
37  catch(IOException ioex2) 
38  
39   System.err(this.getClass().getName() + ".mymethod - 不能关闭输出文件" + ioex2.toString()); 
40  }
 
41 }
 
42}
 


         本文的结论不是放之四海皆准的教条,有时常识和经验才是最好的老师。如果你对自己的做法没有百分之百的信心,务必加上详细、全面的注释。

  另一方面,不要笑话这些错误,不妨问问你自己是否真地彻底摆脱了这些坏习惯。即使最有经验的程序员偶尔也会误入歧途,原因很简单,因为它们确确实实带来了“方便”。所有这些反例都可以看作Java编程世界的恶魔,它们美丽动人,无孔不入,时刻诱惑着你。也许有人会认为这些都属于鸡皮蒜毛的小事,不足挂齿,但请记住:勿以恶小而为之,勿以善小而不为。

2005-12-17
Goingmm  Subscription

posted @ 2005-12-17 15:58 Goingmm 阅读(376) | 评论 (2)编辑 收藏


几天没看新闻,Hibernate已经发布3.1版本
http://sourceforge.net/project/showfiles.php?group_id=40712&package_id=127784&release_id=377721

Down下来简单看了看。初看,没多大变化嘛。但是关注一下Change Log.
感觉这个版本主要是Fixed 3.0的一些Bug

Change Log 部分引用

 1Changes in version 3.1  (12.12.2005)
 2-------------------------------------------
 3
 4** Bug
 5    * [HHH-849]   - Cartesian product + implicit joins
 6    * [HHH-1065] - user provided connection not usable by default due to agressive release changes
 7    * [HHH-1101] - associations join fetched in HQL without owner being selected
 8    * [HHH-1133] - Comparators, defined for collections in mapping files, are not set
 9    * [HHH-1149] - NPE flushing reattached entity  w/ non-mutable natural-id
10    * [HHH-1170] - HQL 'cast' function doesn't work with MySQL 4 when casting to string
11    * [HHH-1187] - Cannot delete a object having a delete-orphan collection when user_rollback_id is set
12    * [HHH-1191] - HQL fails backward compatibility using classic translator
13    * [HHH-1194] - hql delete statements with joined-subclass hierarchies with a mapped where attribute at the root
14    * [HHH-1206] - Mappings.TableDescription is not serializable
15    * [HHH-1212] - mismatch in entity-modes defined in DTD and EntityMode class
16    * [HHH-1227] - ClassCastException on DOM4J replicate of Calendar property
17    * [HHH-1239] - BinaryArithmeticOperatorNode.getDataType() does not properly handle date/time arithmetic
18    * [HHH-1240] - Track connection leakage in JDBCContext.afterTransactionCompletion()
19    * [HHH-1245] - Calling the Session should register it with the current JTA txn.
20    * [HHH-1254] - Serialization of Sessions using JDBCTransactions with auto-flush/auto-close
21
22** New Feature
23    * [HHH-1222] - Autodiscover scalar types in native-sql
24    * [HHH-1243] - allow placeholders to system properties in config properties
25    * [HHH-1244] - Support for MySQL5 stored procedures
26    * [HHH-1260] - Configuration.mergeProperties()
27
28** Task
29    * [HHH-1066] - Upgrade CGLIB to fix proxy memory leak
30    * [HHH-1242] - upgrade ANTLR to 2.7.6rc1
31
32** Improvement
33    * [HHH-860] - insert  select  and version numbers
34    * [HHH-926] - TypeDef should be global
35    * [HHH-1138] - No ConstraintName when using PostgreSQL
36    * [HHH-1144] - Implement naming convention for temporary test failures
37    * [HHH-1153] - PropertiesHelper fails reading primitive values from hibernate-mapping when doc has whitespace
38    * [HHH-1182] - Access to filter metadata
39    * [HHH-1183] - Getting sql "plan" for DML operations
40    * [HHH-1197] - Support for HQL delete on MaxDB
41    * [HHH-1198] - post-insert event pass the entity wo the id field filled when the generator is identity
42    * [HHH-1213] - make JACC event listeners auto configurable (through initialize(Configuration))
43    * [HHH-1215] - Added support for LVARCHAR in InformixDialect
44    * [HHH-1218] - Add concat() function support to SAPDBDialect
45    * [HHH-1255] - ThreadLocalSessionContext and Session serialization
46
47** Patch
48    * [HHH-967] - executeUpdate on StatelessSession
49    * [HHH-1172] - Missing configuration templates for the new MimerSQLDialect
50
51** Deprecation
52    * [HHH-1229] - deprecate ability for entities to not define identifier properties
53
54
55Changes in version 3.1 rc3  (17.11.2005)
56-------------------------------------------
57
58** Bug
59    * [HHH-755] - Setter / Getter for property gDate are wrong
60    * [HHH-764] - XML mapping
61    * [HHH-1034] - The connection is closed  *outside* the JTA transaction in TransactionHelper
62    * [HHH-1062] - java:comp/UserTransaction not correct for JBoss
63    * [HHH-1064] - Exception using JTATransaction in WebSphere 6
64    * [HHH-1069] - Unnecessary commas generated in select with left outer joins
65    * [HHH-1075] - New parser  "not exists" command bug
66    * [HHH-1077] - Typo in docs: "equiped"
67    * [HHH-1080] - HQL delete fails on entities with where-fragments using operators other than '='
68    * [HHH-1081] - missing parens in example code for Criteria Associations
69    * [HHH-1084] - incorrect method name "sql" in Restrictions example, should be "sqlRestriction"
70    * [HHH-1091] - Can't write transparent CurrentSessionContext for BMT
71    * [HHH-1098] - Patch for build.sh to be able to build latest version on linux
72    * [HHH-1106] - HQL "not in" generatad wrong SQL
73    * [HHH-1111] - JDBCTransaction.rollback() results in a call to Interceptor.beforeTransactionCompletion()
74    * [HHH-1128] - Column alias clashes under  certain circumstances
75    * [HHH-1146] - latest cvs(11/10/05)  hibernate3 issue with classic query
76    * [HHH-1156] - StatefulPersistenceContext not serializable when property-ref is used
77    * [HHH-1160] - Incorrect use of getGeneratedKey() for Oracle
78
79** New Feature
80    * [HHH-449] - korean hibernate reference manual
81    * [HHH-1129] - use expected-type in 'untyped' Query.setParameter()
82
83** Improvement
84    * [HHH-221] - Proxy for one-to-one with property-ref
85    * [HHH-844] - move parameter "bookkeeping" into QueryTranslator
86    * [HHH-1051] - "Compiled" native SQL queries are not cached
87    * [HHH-1061] - import.sql should allow more human readable and usable files
88    * [HHH-1078] - <dynamic-component> requires type on property
89    * [HHH-1120] - Make NamingStrategy to work nicely with HA and EJB3 naming strategy
90    * [HHH-1142] - added getSelectSequenceNextValString() and getCurrentTimestampSelectString() to TimesTenDialect
91
92** Patch
93    * [HHH-1063] - support for 'locate' function in SQLServer and Sybase dialects
94    * [HHH-1090] - Allow subqueries on criteria to obtain non-string results
95    * [HHH-1095] - Hibernate takes incorrect HasCode when a lot of CompositeKeys and Lazy loading is involved
96    * [HHH-1103] -  finalize method filter for proxies
97    * [HHH-1136] - more meaningful AssertionFailure message in org.hibernate.persister.entity.JoinedSubclassEntityPersister.getTableId()
98
posted @ 2005-12-13 15:01 Goingmm 阅读(646) | 评论 (4)编辑 收藏

       在想Class.forName 和ClassLoader.loadClass 的区别的时候。找到的一篇好文章。给有兴趣的朋友推荐
       
引用:
        Java中类的查找与装载出现的问题总是会时不时出现在Java程序员面前,这并不是什么丢脸的事情,相信没有一个Java程序员没遇到过ClassNotException,因此不要为被人瞅见自己也犯这样的错误而觉得不自然,但是在如果出现了ClassNotFoundException后异常后一脸的茫然,那我想你该了解一下java的类装载的体制了,同时为了进行下面的关于类装载器之间的隔离性的讨论,我们先简单介绍一下类装载的体系结构。
     
全文地址:http://gceclub.sun.com.cn/yuanchuang/week-9/classloader.html


2005-12-09

posted @ 2005-12-09 14:58 Goingmm 阅读(363) | 评论 (1)编辑 收藏

      外面天亮了,睁开朦胧的双眼。
        到处找着“时间”,手机会到什么地方去了呢?
        凌晨3:50 比赛闹铃一响。梦中惊醒过来后,不知道把手机丢什么地方去了。

                                             The Brightest Star...
        跑不赢是有点郁闷AC-2005120702.jpg
        AC-2005120703.jpg
        
        群殴 从来都没有惧过
        AC-2005120705.jpg
        
        一手遮天 他娃可能黑手党的小混混
        AC-2005120706.jpg

      混混本色 跳起一耳SHI
       AC-2005120704.jpg

      跟他们玩累了 咋哥俩就在这小睡一会吧
      AC-20051207.jpg

      2005-12-07 

     
       
       

      

posted @ 2005-12-07 15:13 Goingmm 阅读(319) | 评论 (1)编辑 收藏

     摘要:           周末和 MIKE 吃饭的时候,他询问,上次提说的问题,什么时候能写出来。“对Session和Transaction的处理,最好单独实现一个模板类来统一做”   温故 居于常规的Hibernate的DAO代码。例子做一个Create操作  1public&nb...  阅读全文
posted @ 2005-12-07 13:55 Goingmm 阅读(1671) | 评论 (11)编辑 收藏

------------------------------------------------------------------------------------
      NEW OFFICE   AT  2005-12-05
----------------------------------------------------------------------------------------------

换了新的环境,
新办公室 很大,很新,
大得大家坐一间屋子里,稍微远点就看不清楚摸样了
新得连地毯,空调都没得。

昏暗的灯光下。感觉像手工作坊的织衣车间
楼顶横七竖八的管道和吊灯,有点像学校的洗澡堂

可能,设计师要的就是这份简洁,
... 似乎在向我们诠释,节约

大老远从城市中出来,
找的,就是这刻回归自然的感觉

荒凉?
一个连吃饭都紧张的地方。
明天打算自己带盒饭过来试试


2005-12-05 New Office




posted @ 2005-12-05 17:47 Goingmm 阅读(281) | 评论 (3)编辑 收藏


   最近,用各种算是流行的方法写了些Hibernate的例子(基于测试)。上次打算写两篇文章。① Hibernate 常用工具的配置和使用。② Hibernate 比较简单的,基于单表操作的例子。写了80%吧。越想越感觉意义不大。现在网上很多这方面的文章。我自己也没有理由,自私的所谓备份。占用Blogjava的硬盘空间。就成了后来的 “冰 冻 闲 聊
  
上个星期五,因为公司停电。所以休息了三天。一年前,这个数字可能会感觉太短。但是现在却是突然觉得连续三天不上班。不知道该干什么好。
  
难道是对这种“月光”族的生活上瘾拉? 这样的话题,等以后想明白了再说吧!~
  
接着说这个周末吧!因为无聊,翻翻,去年用过的一些散乱的笔记。越看越搞笑,字迹潦草,还好基本上是一些技术痕迹。找不到从前那些“少年不知愁滋味”的感觉。
  
因为我一直不是很喜欢看书。现在的书,写得好的不多,但是价钱蛮贵的。所以,有时候就会把一些疑惑的问题写在一张纸上。然后去网上先收集一些资料,再阅读总结。
  
这里,我发现了一条有趣的问题。2004123 Hibernate使用JDBCJTA管理事务有什么区别?傻傻的问题。不如今天就聊聊这个话题吧!可能,现在也会有人对这个问题感觉疑惑的。

 

打开hibernate.cfg.xml看看具体的JDBCTransaction JTATransaction 配置:

 11)
 2<property name="hibernate.transaction.factory_class">
 3org.hibernate.transaction.JDBCTransactionFactory
 4</property>
 5
 62)   
 7<property name="hibernate.transaction.factory_class">
 8org.hibernate.transaction.JTATransactionFactory
 9</property>
10


可能你还会问:“除了这两种还有其他的选择吗?到底选择那一种好呢?在一个应用中能混合使用吗?”等等问题

分析和解答:
第一个问题
   可以选择其他的事务管理方式。不过都是JTA的不同实现版本。这个目录下面有罗列出来hibernate-3.0\src\org\hibernate\transaction。比如:

1<property name="hibernate.transaction.manager_lookup_class">
2org.hibernate.transaction.WeblogicTransactionManagerLookup
3</property>
4


第二个问题
  
概念事务:事务就是能以整体的原子操作形式完成的一系列操作。

   是不是感觉有些饶口?简单的说,事务 就是一个逻辑工作单元。其中包括一系列的操作。
至于事务为什么会产生?有什么基本特性?等等。。这些问题今天不就详细的罗列了。网络上有写得很好的文章。
Hibernate JDBC的轻量级封装。他本身并不具备事物管理的能力。事务的管理和调度将委托给JDBC或者JTA去做。


    先说,他默认的事务处理机制[ JDBC Transaction ],这的确是最简单的处理方式,因为Hibernate只是对JDBC事物做了一层简单
的封装。JDBC事务由Connection管理。事务周期局限于Connection的生命周期之内。在Hibernate中这种事务周期也就局限于一个Session之内。做个比较吧!

Connection conn =     ;      <---   session = sf.openSession();// 初始化数据库连接,

setAutoCommit= false;

conn.setAutoCommit(false);     <---   tx = session.beginTransactioin(); 会再次确认setAutoCommit是否是false

调用业务方法                   <---   调用业务方法

conn.commit();                 <---   tx.commit(); (对应左边的两句) 这里很关键,关掉自动commit。自己就必须做commit。否则数据是不会被持久到数据库

conn.setAutoCommit(true);

conn.close();                  <---   session.close();

 

简单吧!如果你对JDBC有了解,看到这里可能会坏笑,NND就这么简单,我也会封装有兴趣的话可以直接去看看具体的源代码。

 
看看第二种[JTA Transaction]有什么神奇的地方吧!

   JTA 提供了跨Session的事务管理能力。JTA的事务是要容器支持的,即JTS,用来分布式的要求比较多一些,比如像银行这种大系统,处理多个事务源的这些的。
  
JTA事务管理则是由JTA容器实现。事务的生命周期完全由容器来维护。容器中可以有很多Connection。按照执行的顺序,因该是串联的一条JDBC Connection事务链。所以JTA的事务周期可以跨多个JDBC Connection的生命周期。在Hibernate中这种事务周期也就可以跨越多个Session
  
所以。JTA事务的Connection不能对事务管理进行干涉。意思就是,假如使用了JTA就不应该再重复调用HibernateTransaction功能。这里涉及到一种事务模型(嵌套式事务模型)的问题。这里也不详细的介绍具体的几种事务模型了。在EJB2.0规范里面也不支持这种事务处理模型。
  
例如

1class A 有一个方法 savePerson()
2class B 有一个方法 saveAddress()
3// Call A.savePerson() and B.saveAddress() Used JTATransaction
4class C 有一个方法 saveAll() 
5UserTransaction tx = (UserTransaction)(new InitialContext.lookup(“…”))
6A.savePerson();
7B.saveAddress();
8tx.commit();
9

 

那么下面这段代码

1Transaction tx = session.beginTransaction();
2tx.commit();
3


就不能在class A class B 中出现。

原因:session.beginTransaction()也同样执行了InitialContext.lookup方法来获UserTransaction的实例,tx.commit()也同样调用了UserTransaction.commit().这样做就会形成嵌套式的事务。在Hibernate里面是不被允许的。会导致运行期错误

 

谈到这里,不难看出,他们都有着自己鲜明的特点和基本的联系。回到开头的问题,在实际项目中该选用谁好呢?

这就需要分情况而定了。

1) 如果项目有用到Sessionbean.可能你会疑问?这时候由谁来管理事务呢?

答案:用SessionBean来管理。使用JTA会很方便。因为你完全没有必要去理会Transaction。直接在SessionBean的部署描述符里面声明事务就行了。

2) 自己实现一个Service类,来统一调用持久层的方法。这样也能做到前后台的松耦合。但是这时候你对sessionTransaction的处理就需要小心了。如果系统考虑分布式就使用JTA否则就JDBC足夷。但还是有必要考虑系统的升级,变迁什么的。对sessionTransaction的处理,最好不要放在DAO里面做。单独实现一个模板类来统一做。具体的原因和做法,以后有时间再写出来。

 

第三个问题

由于SessionFactory是线程安全的,他的创建过程非常复杂,代价极其昂贵。一个应用中最好只有一个SessionFactory。事务管理类型的选择是在SessionFactory的属性里面配置的。这里只能选择一种事务管理方式。

当然,你可以说还有特殊的情况,假如,这个应用需要连接到两台数据库服务器,就必须为他创建另一个SessionFactory。那么就可以选用另一种事务管理方式。表面上看这种情况是可以的。居于两种事务的性能考虑。混和用的意义不是很大。假设这样用+面对考虑不周全的DAO,也违背了设计原则,想想,这样的话,因为数据库的变动,还得回去修改DAO的代码吗?(可能会产生嵌套问题)

所以关于这个问题的结论就是:

在一个SessionFactory中只能选用一种事务管理

面对多个SessionFactory的时候,可以混合用,但是不推荐

2005-11-28 CTU OFFICE GOINGMM

posted @ 2005-11-28 12:00 Goingmm 阅读(1856) | 评论 (3)编辑 收藏

遗憾昨天晚上的比赛没有看。补时4分钟?是不是裁判知道尤文又赢了,认为AC 必须得赢球啊!

这种眼神很长时间没见着了


                      yzj.jpg

附上:舍甫琴科  上一场的4个进球,如果单纯的是为了酣畅淋漓。让你提前垫付了未来三场的运气,
             有些不划算哦

                           spqk-4.jpg


2005-11-28 CTU OFFICE


posted @ 2005-11-28 11:24 Goingmm 阅读(249) | 评论 (1)编辑 收藏

很久没有回来了。大家好
今年的成都可真够冷的。想..想...想.. 还没有发饷,想什么都虚幻
闲来无聊,写些无聊的东西。本来想放Blog上,但是太杂乱,所以这篇Blog写了80%后我就停下了。
结果,变成了几行无聊的文字


 

posted @ 2005-11-24 18:26 Goingmm 阅读(339) | 评论 (5)编辑 收藏

航班日期:2005年11月15日

航班号:CA422

起飞/到达时间:13:00/15:30


    完成我的使命。该回家了。明天就要离开这个城市。离开一起战斗了26个日日夜夜的项目组。项目和团队全局意义的胜利,还需要一些时间去考验。祝福他们在剩下的日子里能做得更好。
   
北京,今年来了两次。工作原因,使我顶多算一个匆匆的看客。一直没有机会去真正了解这个Master城市。为什么叫他Master城市呢?因为我们平时看到的很多机构在这里就是总部。外表其实也就那样。但是权力却是Master的。背负着沉重的历史,注定这座城市不会给我们太多华丽和浮华的外表。想想儿时向往的天安门,其实就一座二层老房子。近看我还是觉得单薄了一点。没什么气势。尤其是两边的看台。比大学足球场的看台还简单。可能这只是鞭策中国人的一种象征物吧。
   
要让我拿北京和成都做个比较的话。可能要明天在路上边走边看,才会有些感觉。但是我不大可能在飞机上给大家发Blog吧。随便说一些生活上的感觉。这边上班时间比成都要早(830)。但是因为离得不是太远,而且每天上下班打车。这方面,的确方便了很多。累了一天后很容易恢复。这样早上会睡得好一点。北京很大,大得五环外也会经常塞车。据说今年北京是暖冬,带了很多衣服过来都还没机会穿。而且家里有暖气。想想在成都这几天不敢穿着短裤趴窗台上上网吧!~ 遗憾我还没有能看到北方的雪,和沙尘暴。只是每天回家灰尘挺吓人的。 干燥的气候,随时都会被静电袭击的危险。所以我的手基本还好,但是衣服的袖子就可怜了。刚开始,不理解的北京人,还以为我是怕他们的地方脏。幸好好奇的问了我,不然成天大的误会了。
   
这次过来基本没有出去玩。北京的朋友还有老同学些。真是对不住了,没有去看你们。有机会咱们成都见。那里才有正宗的水煮鱼,夫妻肺片北京的饮食比较实在。贵但是量足。北京人自豪的烤鸭不好吃。说不出有什么特色。基本上我都不会吃偏甜的东西。还好这次找到一家,川菜做得不错。


     停一下 刚才抓拍了几张照片。全当是这次生活的一个缩影送给大家

     parlor.JPG
     PSTwins.JPG
     Leo.JPG
     windowsill.JPG
     living room.JPG

    
   最后,我不得不感谢 “听涛小区长期稳定的无限网络” 虽然也不知道是谁家的,而且只发射到我的窗台上。但是这种共享精神充分体现了北方人,为人淳朴 豪爽 耿直 的特点。我会把你们的这种精神带回南方,不过,得等我有无限网络的那一天.

2005-11-14夜 听涛 窗台

posted @ 2005-11-14 23:11 Goingmm 阅读(422) | 评论 (5)编辑 收藏

------------------------------------------------------------------------------------------------
   Eclipse Platform
Version: 3.1.0 Build id: I20050219-1500

   
  Junit Version:
3.8.1

------------------------------------------------------------------------------------------------

EclipseJunit 大家应该都很熟悉了。这里我也不打算去讲为什么需要做这样的组合。为什么需要测试。为什么测试还有那么多讲究和学问。用一个最简单的例子,让还没有使用过的朋友,有一个简单的认识。主要是发图玩玩

 

1)看看完成后的效果图
Project.JPG

2)      
运行Eclipse。新建一个workplace项目,点击 file->new->project,选择Java项目,点击下一步。写一个项目名称,例如UseJUnit。点击Finish。这样就完成新项目的建立。再来配置一下Eclipse,在构建路径中添加JUnit类库。在工具条上点击项目->属性,选择Java Build Path,Libraries,选择 Add external JARs,浏览Junit被存储的目录,选择junit.jar,点击打开。你将会看见JUnit出现在库的列表中。点击确定,让Eclipse重建路径。
addJar.JPG

         

3)新建一个Class Person
Person.JPG

4) 新建一个Test Class TestCaseWithJunit
newJunit.JPG

代码如下:public void testSay() 方法是我自己加进去的

TestCaseWithJunit.JPG

5) Run Test case
   runJunit.JPG

6) 看看测试结果
      result-1.JPG

7)修改一下测试代码
   modifiedcode.JPG

8)再看测试结果
result-2.JPG

result-3.JPG



呵呵! 第一次发图。如果上面的过程描述有什么不清楚的地方。请与我联系

2005-11-13  听涛 窗台


posted @ 2005-11-13 13:45 Goingmm 阅读(365) | 评论 (1)编辑 收藏

-------------------------------------------------------------------------------------------------
   MySQL-Front  V3.2 Build 6.25

   MySQL           V4.1

-------------------------------------------------------------------------------------------------

      
从名字看双胞胎一般的他们俩。是绝配吗?我也不知道,有时候,MySQL-Front会告诉我:“我不认识MySQL”。不要以为我和他有啥子关系。这就是我今天要谈到的问题。因为刚用MySQL一段时间。不知道还有没有更好的组合式用法。

1)用[MySQL Command Line Client]进入MySQL cmd操作模式

drop database dbName;

create database dbName;

use dbName;

2) 数据库建立好以后开始建立表

   drop table person;

      create table person (

         person_name varchar(16) not null primary key,

         person_pass varchar(32) not null,

         person_sex int(1) default '0' ,

         person_email varchar(30) default null,

         person_lastLogTime dateTime,

         active_status int(1) default '0'

);

3)  现在你可以插入一些数据

insert into person  values('goingmm','***','', 'todogoingmm@163.com', '2005-11-5',1);

…………...........

4)  OK 现在可以查询出来看了

select * from person

 

突然感觉老在这里操作很是不方便。于是想起了MySQL-Front。打开看看,咦!没有找到数据库dbName。努力了1个小时。原因猜完,办法想尽。MySQL-Front还是说我认识他,你不要搞我拉!~果然,再搞 MySQL-Front死掉拉。有个性。

后来把刚才做的1234)全部回滚。就是删掉数据库。在MySQL-Front里面先建立一个数据库。然后去cmd建立表,插入数据。最后回到MySQL-Front。哈哈,这回看到刚刚建立的数据库了。

不知道大家有没有遇到过这个问题。是MySQL-Frontbug吗?还有一些MySQL-Front很弱智的问题,比如SQL编辑器。希望他的下一个版本不要这么粗糙。毕竟MySQL 5.0


2005年11月5日

-----------------------------------------------------------------------------------------

posted @ 2005-11-05 14:43 Goingmm 阅读(2431) | 评论 (10)编辑 收藏


很不好意思,前三篇都还是概念。

其一: 我想归纳下来,给自己以后看做一个备份
其二: 现在真没时间去写代码

项目做完,回到成都,在后面的文章中,我会抽空写一些实际的例子


---------------------------------------------------------------------------------------------------------------------
   概念Hibernate中的接口
---------------------------------------------------------------------------------------------------------------------

大致分类:

     被用户的应用程序调用的,用来完成基本的创建、读取、更新、删除操作以及查询操作的接口。这些接口是Hibernate实现用户程序的商业逻辑的主要接口,它们包括SessionTransactionQuery

     Hibernate用来读取诸如映射表这类配置文件的接口,典型的代表有Configuration

     回调(Callback)接口。它允许应用程序能对一些事件的发生作出相应的操作,例如InterceptorLifecycleValidatable都是这一类接口

     一些可以用来扩展Hibernate的映射机制的接口,例如UserTypeCompositeUserTypeIdentifierGenerator。如果你确认有必要的话这些接口可由用户程序来实现。

 

Session接口

       Session接口对于Hibernate开发人员来说是一个最重要的接口。然而在Hibernate中,实例化的Session是一个轻量级的类,创建和销毁它都不会占用很多资源。这在实际项目中确实很重要,因为在客户程序中,可能会不断地创建以及销毁Session对象,如果Session的开销太大,会给系统带来不良影响。但值得注意的是Session对象是非线程安全的,因此在你的设计中,最好是一个线程只创建一个Session对象。

       Hibernate的设计者将session看作介于数据连接与事务管理一种中间接口。我们可以将session想象成一个持久对象的缓冲区,Hibernate能检测到这些持久对象的改变,并及时刷新数据库。我们有时也称Session是一个持久层管理器,因为它包含这一些持久层相关的操作,诸如存储持久对象至数据库,以及从数据库从获得它们。请注意,Hibernate session不同于JSP应用中的HttpSession。我们通常会将HttpSesion对象称为用户Session

 

SessionFactory 接口

       他用到了一个设计模式[工厂模式],用户程序从工厂类SessionFactory中取得Session的实例。

       但是请记住,SessionFactory并不是轻量级的!实际上它的设计者的意图是让它能在整个应用中共享。典型地来说,一个项目通常只需要一个SessionFactory就够了,但是当你的项目要操作多个数据库时,那你必须为每个数据库指定一个SessionFactory

 

Configuration 接口

       Configuration接口的作用是对Hibernate进行配置,以及对它进行启动。在Hibernate的启动过程中,Configuration类的实例首先定位映射文档的位置,读取这些配置,然后创建一个SessionFactory对象。

 

Transaction 接口

       Transaction接口是一个可选的API,你可以选择不使用这个接口,取而代之的是Hibernate的设计者自己写的底层事务处理代码。 Transaction接口是对实际事务实现的一个抽象,这些实现包括JDBC的事务、JTA中的UserTransaction、甚至可以是CORBA事务。
为什么要这样设计呢?因为这样使开发者能够使用一个统一事务的操作界面,使得自己的项目可以在不同的环境和容器之间方便地移值。

 

QueryCriteria接口

       Query接口让你方便地对数据库及持久对象进行查询,它可以有两种表达方式:HQL语言或本地数据库的SQL语句。Query经常被用来绑定查询参数、限制查询记录数量,并最终执行查询操作

 

Callback 接口

       当一些有用的事件发生时。例如持久对象的载入、存储、删除时,Callback接口会通知Hibernate去接收一个通知消息。一般而言,Callback接口在用户程序中并不是必须的,但你要在你的项目中创建审计日志时,你可能会用到它。


2005年11月3日 夜  阴天 温度偏低

听涛[601]室 窗台

posted @ 2005-11-03 23:16 Goingmm 阅读(709) | 评论 (21)编辑 收藏

    我这里是北京时间2005-10-31 晚上22:10。还有一个时辰大家都关心的“星期一”就要过去了。今天到底发生了什么?项目组是怎么挺过来的?我们还能继续往前走吗?

现在项目组的核心开发小组,DBA,服务器管理,报表组,Domain还有一些协调的工作人员都集中在信心中心。我们就下到医院流程现场。

核心开发小组:这组基本上是新加坡,马来西亚过来的同事。他们负责解决系统随时出现的紧急情况。

DBA:这个小组主要负责继续做移植数据的效验,和紧急的数据patch,最主要的还是负责数据库压力监控和调优。

服务器管理组:他们负责看好四台Web服务器(有两台是备用的),一台应用服务器。还有其他的测试服务器。

报表组:这组人员现在的压力可不小。各个部门的流程单据,还有PA的财务报表,那可是用户眼见为实的东西。他们的    从容, 总算让我了解ShuaiYu同志去年拿那么多奖金背后的故事拉。

Domain

协调的同事组:他们也挺辛苦的,杂乱的工作。该怎么去阅读他们,我想自己尝试过后都能理解。

 

大家可能会疑惑,goingmm你娃在说啥子哦!半天说不到主题,大伙张着嘴巴呼吸在等现场镜头呢!!

 

没有伏笔,没有漂亮的引词.我们直接去住院处看看吧!

早上800准点到达现场。大厅挤满了人,和大家念书的时候去学校财务处交钱是差不多的。大家都生怕自己手上的钱交不掉似的。这次单枪匹马杀过来的。打心里还是有一点不塌实的感觉。还没有按上门铃人家已经热情的开门叫我进去拉。还没打完招呼做完自我介绍,他们领导说话了:“快,小伙子830就开始录入拉,我们还有两员工是第一次使用系统,赶快带他们过一次”。当场晕忽忽的怎么还有这回事啊。没办法啊,我们出来混,上面明确要求不能对用户说“不”。

830到了,全部窗口打开,那可是钞票进,发票出的场面。站在里面的我看着心里挺爽的。时间过了大概一个小时,系统开始有异常的情况出现了。最先暴露的就是大家熟悉的查询。我横着一看四台机器全部显示请等待。紧接着就是标准的北京腔调的疑问,“小伙子,你得给我看看,这是怎么拉。半天没动静,你叫我怎么办啊?”稳住他们,立马电话连通信息中心,“喂请帮我查一下,为什么系统现在特别慢,住院处已经没法继续拉”。还没有收到电话里面的回复。信息中心已经有人赶到现场,通知用户赶快把系统切换到103(另一台web服务器)。结果出人意料,切换到103的用户登陆后,页面错误频频。用户操作一半失败了。眼睛帖着屏幕仔细一看内存不严重不足。NND一直惊风火扯的Error Page 这回算是看过瘾了。四台电脑同时Show给我看,

住院处的领导们还是见过大场面的。临场指挥,果断坚决。帖一纸条“手工办理”上窗户。指挥着,“大家体谅一下,现在系统正在升级,难免出现问题。紧急的用户可以先到这边来,我们帮你们做手工录入,呆会系统好了,录进去把条子给你们送过去。”

我也没有傻呆着,组织起两台客户机器,再试一试101(住院处主服务器)。TNND这回就更加不可接受了。服务器直接down掉。我看到的是IBM字样的提示信息了。“IBM”啊,我们把你们的硬件软件一起放在那间神圣的机房里面。门口得刷卡进去。其他得连灰尘也没让它靠近你。就差点上几根香,搁一大盘子放点苹果橘子把你供起来拉!就这样回报我们啊???

NND不会吧?才一个小时就玩完拉?这时候信息中心果断的重起了一次服务器,虽然没有通知我们。但是我还是很感谢他们及时的处理。NND再进页面状态入初,那种感觉就像是早上起床推开那玻璃窗户。多爽啊!后来,103也重启好拉,这回通知拉,主要给住院处用。我又指挥着,大家都确认进103吧。这次切换还算满意,一直到病人录入完毕都没有发生问题(四台一起工作)。在住院处守侯了一天,看着他们不时拿出全部发票,钞票,数着算着,最后打开报表核对,呵呵!他们也怕钱不够。还好,平均每个人核对过3次。精确到小数点后面两位数。都能对上。

中午回研发室吃盒饭。正好碰上老大在给蔡总汇报情况。挺实在的,包括问题,出现原因,现在的解决办法。从系统设置,到硬件,那可是都说到点子上拉。“就好比公司说要让他们动起来每人发5000先用着吧。” 话语中我能感觉到明天早上的压力会比今天小。不管能小多少,能不断进步就好。听得入神拉,难吃的盒饭,快吃完才感觉出来难吃死老。这回还真对得起这10块钱。

看到这里,我想大家,还会为我明天早上的遭遇,捏一把汗。总结一下:“问题会延续... 时间不确定;压力依然在,时间不确定;”可能这个时间越短,我们能学到的越多。

2005年10月31日  听涛 601室 窗台

posted @ 2005-10-31 23:35 Goingmm 阅读(580) | 评论 (24)编辑 收藏


    闭上眼睛,回首
23年来的经历。真的能看见眼前快速闪过的画面。使劲的想扎进去看清楚一点。那里有童趣,幼稚,天真,有梦想,还有坚持。是会意的傻笑把我拉回了现实。奇怪没有找到1029这个时间戳。书上说:“人是聪明的动物。他们只会把对自己有意义的东西,深深的勾画在脑海中。”

的确,眼前的经历注定了1029是这一辈子再也难忘的日子。快两年的心血终于开始有了收获。我现在我还不敢贸然提说“胜利”这两个字。开发团队的稳重,成熟和冷静告诉我“考验才刚刚开始”。

在这里留下这些杂乱的文字,遥寄在远方默默支持我们的成都团队全体同事。让我们一起来分享这美妙时刻。我大致能体会你们此时难以描述的心情。担心担心系统承受的压力,担心前方的开发人员面临的难题。自豪自豪一天内系统几乎没有大的问题,自豪自己就是开发团队的一员。喔!说什么哦!都说难以描述拉真想把你们每一个人都写的活灵活现,可怜我没那样的文笔,还是到现场去看看吧!

 

镜头一

2005-10-29日凌晨1 按照项目组的安排这个时候我们应该进入梦境。为上线做好最后的准备。可能是由于第一次有这样的经历,内心有些亢奋,也可能是平时没有这么早睡的习惯。差不多2点才睡着。早上530起床去医院研发室。等待数据移植。

 

镜头二

       由于数据移植推迟了一点时间。早上730左右完成数据移植,同时启动了应用服务器

这时候,DBA+Shuaiyu)全然忘记自己是通宵到现在,还在不知疲惫的检查验证数据,做数据库优化。这时候问题出现了。由于昨天晚上5.4(老系统)的收银机没有完全关闭。Patch进去的补丁会产生问题。这边报表服务器也进不去了,还有谁改了我们熟悉的iHIS的密码。管理员登陆不了拉。那边电话里面传过来的消息说:“用户已经迫不及待的登陆进了系统”说到这里场面已经有一点混乱了。

老板此时的脸上看不出笑容,找不到慌乱,可能是他的坚持还强撑着极限中的自信和宽容。这是一个需要英雄的时刻,但说实话,我什么忙也帮不上。经过大家的努力,密码问题轻松搞定,收银机的Patch也有惊无险。报表组拼尽全力,依然毫无头绪。平时做100次也没有问题,偏偏今天

我们在住院处接到通知,应用服务器需要重新启动。感觉怪怪的,后来才知道。正是这次重启解决了报表问题(报表在服务器启动的时候会到一个MSTR表去load数据,但是今天先启动了服务器,然后才把这些数据PatchMSTR表中,造成了几个小时的“报表问题”)

 

镜头三

       应用程序问题解决了,住院用户吹着病人等不急拉,我们得赶快下住院部去。时间:1007分,Baijie(北京测试老大)带领我们赶到住院处,协助他们开始做病人的住院登记以及住院费用处理。

去之前听说这个部门压力很大,四个窗口平时都忙不过来。心里还憷着呢!还好,到现场一打听,今天是周末没有那么多人。平时挤满人的大厅几乎是空荡荡的,外面看感觉和去银行取钱的场景很相似。进去以后发现有一个很逗的老头,不间断的和我们开着玩笑。怀揣着北方人的幽默。可能是他的热情和老练,让我感觉北京话听着还蛮淳朴的。

大概在1130的时候出了点小状况。俩女患者(都还挺漂亮的)过来办理出院。系统打印出的单据上显示:住院6天,但是床位费用收了7天。我们的第一反映就是希望患者能留下电话或者其他联系方式。做好最后的确认再通知她们过来。就是这样一个折中的意见惹火了其中一个。大咧着嗓子说:我们住的是400一天的病房。系统打印不是6天吗?凭什么收7天的钱?承不承认是你们系统错了?

无意间,我看到Baijie无奈的抿了一下嘴,但还是自信的说:“我们马上检查”系统没有这个问题。面对这么裸感的质问,我真的感觉心酸这一次算是给我留下了深深的烙印。以后每写一行代码的时候可能都会想起

10分钟后,问题终于有了答案。是昨天的数据移植把收费日期给弄错了(27日)应该是28日。所以每一个用户都多算了一天的床位费用。这个改动很快就被patch到数据库

在这里的几个小时,我总结了一下

1)    用户需要快速准确的业务过程(还真碰上了非常急迫的用户,为了赶飞机该补50掏出100等不急找钱退卡就要走)

2)    我们的需求,和第一线用户的想法还有差距,他们的想法更加实用。对系统现在新功能的认可和中肯意见都让人佩服

3)    这里的一线用户都表现了良好的素质和风度。包含着对我们现状的宽容和理解

 

镜头四

       时间已经是下午200多了,回到信息中心,一些同事在啃面包,吃盒饭,打电话,改程序,页面测试,数据效验这时候的我只想找根烟去厕所享受一下。路过研发室,隐约听见里面讨论和不时的笑声。项目组的老大们和用户在里面进行上线后的第一次沟通汇报会议。

 

镜头五

       这个镜头可能有些偏离物理视线。我们今天大概在2000离开医院。到这个时候仍然看不到一点笑容,听不到到一点笑声,偷偷的几乎都没有。不得不承认这真是一只成熟的团队。这里没有浮躁,没有侥幸,没有自负因为每一个人都清楚的知道,真正的考验应该是下周一。这个时候才是对系统承受压力的真正考验。在这之前,DBA和负责应用服务器的同事得充分估计,做好最后的优化工作。

镜头六

          哎!写不完,还有很多….比如:Leo和欢哥的故事,经典得很。

我不敢想象,一天之内能有这么丰富的经历。时间对于每一个人真的是公平的。

 

真心的希望我们能一路走好!

posted @ 2005-10-29 23:16 Goingmm 阅读(358) | 评论 (14)编辑 收藏