随笔 - 170  文章 - 536  trackbacks - 0
<2009年2月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
1234567

常用链接

我参与的团队

随笔分类(103)

搜索

  •  

积分与排名

  • 积分 - 412666
  • 排名 - 135

最新评论

阅读排行榜

IntelliJ IDEA 10.0 发布了,放出 IntelliJ IDEA 10.0 的注册机下载。点击下载
posted @ 2010-12-18 09:56 steady 阅读(5894) | 评论 (4)编辑 收藏
     摘要:   阅读全文
posted @ 2009-12-14 20:06 steady 阅读(10591) | 评论 (26)编辑 收藏

  开始并没有关注这么一个购物搜索的东西,以为只是上网按关键词查查东西,昨天无意中看了说明,发现它远远不是这么简单的东西。它有着一般购物搜索无法相提并论的强大功能,那就是——条形码搜索。

  摄像头对于强大的 Nokia S60 系列手机来说,早已成了标配,扫描条形码等功能,也早就成为手机很容易完成的功能了,但是却很少有人把条形码和网络进一步结合。有道购物搜索是我看到的第一个完成这样功能的软件。其实用起来很简单,手机有个能自动对焦的摄像头和能上网就行了,拿摄像头对准商品条形码处扫描一下,然后会自动上网搜索相关产品,甚至连拍照键都不用按了,一切都是自动完成的。产品数据库也比较丰富,拿身边的小东西随便扫了下,水溶C100,益达木糖醇,各种书籍(书籍的数据库应该是最全的,手边的书全部都能找到)。

  这是一个相当有创意的产品,当然,这个条形码数据库也不是容易得到的,但是这个数据库和后台有道搜索结合,就形成了一个非常完美的应用方式,这应该是我看到的让我眼前一亮的手机软件之一了。

posted @ 2009-08-17 17:26 steady 阅读(2081) | 评论 (0)编辑 收藏

   为了在家里唱K,去拷了个24000首的歌库,然后配置随盘送的后羿礼光卡拉OK软件。或许这个软件太专业了吧,以至于想随便配配就能玩不是件容易的事情。用我机子里装的 KMPlayer 是根本都放不出来的,音乐视频都是没有的,然后拿各种播放器一个个试。用了暴风影音(老版本的,新版是垃圾),完美解码,默认安装的情况下都是可以出视频的,声音是完全没有的。无奈,只得逐一试下各个选项了,最后发现只有 MPEG2 音频编码器设置成 SPDIF 的时候,才会有声音。之前在网上找的各种解决方案都要注册,注册后还没给你个有效的解决方案,要你重装系统什么的,还是靠自己吧。估计是做这套软件的人比较菜,初始化声音只用了默认的一种音频解码方案,而且你还得恰好装了这个解码器才行,否则,一个个试吧。

  用了软件以后,就和歌厅的选歌界面很像了,不然这么多歌曲,用手工选也是很痛苦的事了。

  另外,我用创新 Audigy ZS 声卡 + 得胜 TS-6310 无线麦克风 + 黑钻双子星XP 音箱 + 软件歌库,基本能做一个小小的家庭卡拉OK 中心来玩了。

posted @ 2009-08-17 17:23 steady 阅读(4299) | 评论 (0)编辑 收藏

  为了编译方便我把 servlet-api.jar 和 jsp-api.jar 和其他 jar 包都放在一起,在 ant build 的时候就会一并被拷到 Web 项目的 WEB-INF/lib 下,不过这次因此出现了一个 jsp 页面的编译错误,所有的 jsp 页面打开都会在页面上报编译错误,后台无任何信息。考虑到 jsp 页面的编译可能和 jsp-api.jar 有关,于是将 WEB-INF/lib 下的 servlet-api.jar 和 jsp-api.jar 移走,问题解决。

  后来发现放在里面的这两个包是 tomcat5.5 的,是 JSP 2.0 规范的,而部署的服务器是 tomcat 6.0 是 JSP 2.1 规范的,两者可能有一定的冲突,才导致这样的错误。

posted @ 2009-08-17 17:22 steady 阅读(2572) | 评论 (0)编辑 收藏

  在用 SVN 的时候出现了这样一个小问题,害得我折腾了半天,一个小小的 s 却是罪魁祸首。

  因为项目路径切换,需要从 https://server/trunk 切换到 https://server/tag/1, 不过在文档中后者写成了 http://server/tag/1,恰好 SVN server 用 HTTP 和 HTTPS 都是可以访问的,所以没觉得这个东西有什么错误。不过使用 SVN 做 switch 操作的时候却总是出现 https://server/trunk is not the same repository as http://server/tag/1,感觉很奇怪,问了一下相关负责人,当时也没有发现什么问题,不过还是没法操作,最后无意中把 http://server/tag/1 换成了 https://server/tag/1,一切 ok。

  被这个问题折磨的比较郁闷了,可能是 SVN repository 不能在 HTTPS 和 HTTP 之间切换吧。

posted @ 2009-08-17 17:21 steady 阅读(3023) | 评论 (0)编辑 收藏

  其实嘛,浏览器对大多数人来说,都是每天必用的软件了,不过在国内来说,其实也没啥悬念,IE 占据了绝大多数的份额,在加上个挑战者 Firefox 在占据着国内微不足道的份额,在加上 Google Chrome 以及其他份额更少的诸如 Opera 之类的,估计一百个人也找不到一个在用吧。

  不过嘛,国内倒是有个不大一样的地方,我们国人比较善于做壳,于是我们有很多“国产浏览器”可以用,最著名的或许要算 Maxthon 遨游了,当然这也是我最喜欢的浏览器,也是我上网闲逛必用的浏览器,当然了,Maxthon 这个东西嘛不是太稳定,有时候会出现一些莫名其妙的问题,于是换标准的 IE 来用。当然用 Maxthon 也有用 Maxthon 的道理,一个是同步收藏夹,一个是手势功能,当然还有若干细微的功能也挺不错,弥补了 IE 的不足吧。不过 Maxthon 不能用 IE 的 Toolbar 和 Plugin 之类的,而独创了直接的一套插件体系可谓是一大败笔,于是很多时候为了一些功能,不得不用回 IE,Maxthon 只能成为我瞎逛的首选了。

  说到后起之秀 Firefox 嘛,其实说实话,我对它并不感冒,因为它的速度实在不敢让人恭维,或许 Firefox 让我唯一感冒的东西是 Tor 和 Firebug 吧。更多时候我选择用 Chrome 来替代 Firefox,因为 Chrome 够快,不得不承认,Chrome 是最快的浏览器,特别是在对 JS 的处理上,大大优于前两者。而且启动还有个访问页面列表的大缩略图,对于我这种懒得输网址的人来说,可谓是大大的方便,于是 Chrome 成了我逛技术类网站的首选了。

posted @ 2009-07-07 11:19 steady 阅读(1951) | 评论 (0)编辑 收藏
上午看完变形金刚,这样的娱乐大片看了感觉就是很爽,不用为复杂的情节去思考,紧张刺激的情节中不乏幽默,最有意思是看到我们公司(Cisco Webex)在变形金刚2里做的远程恋爱系统的广告。

Cisco Webex Transformers2

Cisco Webex Transformers2

posted @ 2009-07-06 14:13 steady 阅读(1940) | 评论 (0)编辑 收藏

  在Java世界里打拼也好几年了,也看到了各种不同技术的浮浮沉沉,倒是发现了一个简单的规律,最简单的东西往往是最有用的,简单的软件也是种美。

  在 Java Web 领域,曾经有无数各种各样的框架,Struts1/2,JSF,Echo1/2,Tapestry,Wicket,等等等等了,这么多不同的框架代表了两个不同的方向,除了 Struts 这个是基于请求的,其他几个都是算是事件驱动的,但是后面几个在整个市场上所占的份额也赶不上 Struts 一家。HTTP 请求本来是很简单的,而 Struts 就是基于这样简单的概念,但是却有无数人希望重现 VB 时代的那种拖拖拉拉的编程方式,希望用事件驱动一切,但是大部分人都失败了。失败的原因也其实不那么复杂,有的是不够成熟,像 JSF 这样被 Sun 官方大力推崇的框架,但 Ajax 出现的时候,JSF 中想灵活的用 Ajax 都成了一种奢望,有的是资料太少了。像 Echo2 这样的框架资料,少的跟珍惜保护动物似的。

  当然也不是没有成功的,微软凭借其强大的开发实力,和开发工具的配合,加上没有给 ASP.net 用户更多选择余地,取得了无人匹敌的成功。但是这个成功在 Java 世界是不会拥有的,Java 世界没有微软这样的巨头,Java 世界中拿得出手的几个开发工具,Eclipse,Netbeans,IDEA,在所见即所得的开发上远远的落后于 Visual Studio。相比微软帝国,Java 世界多的是中小型的,开源的工具产品。规模上都远远落后于微软,Java 世界唯一可走的路便是简单了。对 Java 世界来说,简单不仅仅是种美,更是生存之道。

  起初作为 Java 世界 PK 微软产品的重头戏,EJB 在学院派的力捧下诞生了,EJB 似乎从来都不打算让人活的轻松,一个简单的东西非得搞的复杂无比才行。而且其持久层 Entity Bean,似乎连基本功能都没能实现,更别谈大规模使用了。EJB 1/2 的时代是开发人员永远无法忘却的噩梦。

  Java 世界也从来不缺活跃分子,Rod Johnson 这个有种音乐家气质的牛人凭借自己多年的积累,推出了 Springframework,这样一个基于 IoC 和 AOP 两个概念的简单易用的框架,完成了很多起初只有 EJB 才能完成的工作,Spring 也一夜成名,成为 Java 世界使用最为广泛的轻量级应用框架。

  几乎是同时,来自澳洲的小帅哥 Gavin King 也在用一种与众不同的方案去替代现有比较复杂的 Java 持久化方案,最后他的 Hibernate 也成为替代原有 EJB 持久化方案的选择。相对简单的 Hibernate 也取得了巨大的成功。

  其实这样的例子在 Java 世界也非常多,以至于后来来自于 Ruby 开发社区的 Ruby on Rails 的出现,给了 Java 开发者当头一棒,原来还有更简单的做法哦。于是 Java 世界慢慢的开始对多种脚本语言进行支持,包括 Ruby,以及后来自创的 Groovy。以此去打造类似 RoR 那样简单的开放方式。

  生活其实是很简单的,软件开发其实也是一样,用简单的方式,去打造简单的软件,Java 世界用无数失败的教训证明了这一点。像我呢,也喜欢用这样简单的方式去工作,最喜欢 IDEA 去写代码,最喜欢 Struts2 + Spring2 + Hibernate3 这套组合,最最喜欢的是简单,因为简单是最美的工作方式。

posted @ 2009-06-23 16:08 steady 阅读(3241) | 评论 (6)编辑 收藏

  为了实现工作流中对脚本的支持,简单的玩了一下 BeanShell,这个小小的嵌入式 Java 代码解释器可以将  Java 语言像动态脚本一样执行,几行命令,它就能把一段 Java 代码给玩转。

  工作流中有个这样的简单案例,当一笔单子金额大于 50万时,应该将任务分配给 Senior Agent 处理,否则交给 Junior Agent 处理,我们用 BeanShell 简单模拟这段脚本。

    public static void main(String[] args) throws Exception {
        Interpreter i = new Interpreter();
        i.set(”price”, 1000000);
        i.set(”user”, “”);
        i.eval(”if(price > 500000)\n” +
                “user = \”SeniorAgent\”;\n” +
                “else \n” +
                “user = \”JuniorAgent\”;”);
        System.out.println(i.get(”user”));
    } 

  运行结果是打印出了:SeniorAgent

  可以看出,BeanShell 用非常动态化的方式,完成了我们一个简单的案例的处理,这里,我们只需要将需要解析的 Java 语言的脚本交给 BeanShell 的 Interceptor,并把脚本中用到的参数值传入,就可以了,最后,我们把运算结果赋给一个变量,然后获取变量结果,就可以了。

  看到 Developer Works 网站上有一篇 BeanShell 实现公式管理的文章:http://www.ibm.com/developerworks/cn/java/l-formula/index.html,可以参考一下。

From:
http://www.steadyxp.com/archives/851.html

posted @ 2009-02-26 09:56 steady 阅读(3273) | 评论 (1)编辑 收藏