2009年3月26日星期四

说说XSD和XML

最近的项目需要使用xml编写规则已支持自动化文本分析, 但是为了避免运行时出错, 需要有XML验证的功能, 以前一直用DTD, 后来慢慢的看到xsd多起来, 知道其有很大的优势, 但是也没有好好去研究过, 这次要用, 就好好学习了一下, 看了w3cschool上的教程之后, 基本上明确了写法, 但是写起来还是有些费劲, 可能是初学的原因吧, xml已经写出来了, 能否根据给出的xml生成xsd呢? 用visual studio 2008就可以了, 在xml菜单-生成架构里面 原来写xml规则的时候, 充分考虑了各种可选和必须参数出现的情况, 用visual studio生成xsd文件要改动的地方居然非常少, 只要自己加几个restriction就完全和我想要的一样了, 真是非常的不错! 另外, 强烈推荐jdom作为java xml api, 非常好用!

2009年3月25日星期三

Netbeans就是一块广告纸上看起来巨漂亮的鸡肋

(1) 用过很多次了, 每个版本都安装更新, 甚至很多项目故意优先考虑Netbeans开发而不用熟悉的Eclipse, 但是目前为止除了编Java Swing图形界面觉得它很方便之外, 其他的都是装了几个月不动它的主, 即使那次, 还是最后用着用着不习惯, 用了eclipse调试完成的.
(2) 你要在Netbeans里面管理库还有库关联的源代码, 郁闷死你! 给库绑定了源代码非要重启重新项目扫描之后才会生效, 但是重启一下, 我双核扣肉二代, 2G Mem, 等三分钟以上, 郁闷死你. 有些人说要把那些项目关闭掉好一点, 是的, 关闭掉了, 下次我要用再去一路一路点开, 重新打开? 这也就算了, 第三方库源代码即使绑定好了, 如果之间互相依赖, 居然不能互相识别? 比如我给cas绑定了源代码, 因为我需要重载其中的一些类, 所以要看到中间的代码程序结构, 那么cas是依赖spring的, 好, 折腾把spring源代码也绑定好, cas源代码打开了, 晕死, 说找不到spring的类? 一个巨大的Glassfish运行库在那里, 找不到javax.http.*包, 难道也用eclipse先代码浏览完来做开发?
(3) 再说代码浏览, 在java开发领域里面研究别人的代码是非常普遍的事, 无论是学习, 还是尝试看清楚别人的代码结构, 来重载完善适合自己需要. 要用netbeans, 你还不如自己用Editplus一个一个去找好了, 省计算机资源; 如果代码包中有可运行的文件, 比如测试, 你在Netbeans中就找不到一个直接运行库中的class的办法, 而用eclipse右键即可!
(4) 宣传很美吧, 支持动态语言开发, php试过不怎么样, ruby on rails我不用, 新花样很多,但是最基本的java, java ee开发也不能从竞争对手那里学点东西完善起来. 总体感觉就是离它所宣传的the only IDE you need, 差了十万八千里. 吃鸡肋, 把肉剔下来吃, 别咬着骨头不爽!

2009年3月23日星期一

我也大二开始写程序, 为什么我就没有成为千万富翁?

最近临时抽调给公司内部网架设一个论坛, 由于需要和公司的单点认证系统, 进行整合还要改风格支持网站的统一风格视图, 所以需要选择一个易于进行二次开发, 且架构比较好的程序, 最好是开源License的, 最终的选择放在了Discuz!和phpBB上了. 查找了相关资料, 由此也了解了Discuz!的一些历史, 说实在的尽管我最后选择倾向于phpBB, 但是我还是挺佩服戴康志的, 我自认为自己在编程方面应该还不错, 但是我似乎缺乏商业头脑, 有些读书人的偏执, 如果我不改变的话, 也许我很难得在商业方面有所成就了, 甭管俗否, 有成就绝非是技术牛逼, 而赚钱是第一要务!
说说我不太喜欢Discuz!的方面吧
(1) 对于普通用户Discuz!很方便, 但是由于license的原因, 我的使用就是受限的, 我既不能自己使用于盈利目的, 又不能提交我的patch, mod等, 所以我学习的投资就要白费了.
(2) 缺乏多语系特别是英语的支持.
(3) 程序代码里面, 过程式架构的, 这不对我的胃口和设计风格, 所以潜意识里有点抵触
(4) 程序代码里面唯一的注释就是" This is NOT a freeware, use is subject to license terms", 我不知道是放出源代码时为了减缓用户读懂代码的步调故意用程序把注释去掉了还是怎么的, 要么就是这个公司编码人员的风格不好, 不过这一点也不决定, 其实php代码挺好懂的, 要不要注释无所谓, 不过没有一行注释真是让我感到奇怪.
(5) 代码大小比phpBB大了一倍.
值得学习的地方:
(1) 目前它号称是最快的性能最好论坛程序, 也有人说这是由于它减少了安全性上的限制来换取速度的提升, 或者说php在面向对象架构方面确实性能不高, 过程式代码性能更高, 具体没有研究, 但是在高性能方面的优化策略, 确实值得有时间来学习和研究.
(2) 用户支持, 文档完善性, 创业模式上, 它是一个成功的商业案例!

2009年3月9日星期一

我的修炼之道

(1) 用好IDE = 用好Eclipse, 如果开发DotNet, 用好Visual Studio
(2) 用好编辑器 = 用好VIM
(3) 尝试新的开发环境 = 使用windows, 用DotNet开发
=========
最近一直在windows下做开发, GVIM顺利成为我在windows上最顺手的编辑器, 做了一段时间的DotNet开发工作, 确实发现VS2008不是盖的, 即使是Express版本都很好用, 并且开始喜欢上C#语言了; ASP.NET MVC很对胃口, 至少觉得比Struts对我胃口;
还有一个组件是用C语言来写的, 发现GCC还是我的最爱, GCC的特性比在Visual Studio中编c语言爽多了, 变量可以什么时候想用再申明, 数组的size可以当参数传入;
用Gvim做开发挺好, 但是看着GVim和gdb集成的文章还要自己编译GVIM,自己补丁我就没有兴趣了, 想起了两年前使用过CDT,当时感觉不错, 遂使用Eclipse做c开发的IDE, 调试功能和gdb相比, 那是暴爽无比!

2009年2月26日星期四

赵长林的悲剧

在我看<勋章>的时候, 我一直觉得赵长林的悲剧很大程度上是他自己造成的, 他是个好兵, 一个功勋赫赫的好兵, 他是个可以做将军的好兵.

当我更年轻一点的时候, 我在某些地方跟他很像, 这也是我曾经显得格格不入的原因, 我一度以为我已经改变, 可是我还一样愣青.

2009年, 经济危机的浓云笼罩, 公司也印发了形势任务的手册, 看过手册, 也感觉到了经营的压力. 为了配合该活动, 公司还要搞什么宣讲活动, 这就是中国特色, 其实我一直不怎么相信这样的活动有什么现实的意义, 不如实际的投入工作来得真实, 反倒有点劳民伤财的意思在里面, 我有一次跟同事开玩笑, 这就像狼来了, 原地踏步的呐喊一样. 不过搞也就罢了, 不参加就不会浪费我的时间了. 可还

要背诵形势任务手册, 现场要抽人问答! 后来分下来任务, 也到了我的头上, 首先让我演讲, 我坚决不同意, 后来让我点评, 我勉强同意了, 反正也花不了多少时间, 我这个星期给自己安排了很多的任务, 时间实在浪费不起.

昨天居然还要搞彩排预演? 这样的活动彩排预演!? 被拉下去浪费了一个上午.

今天一个党委工作部的朋友拿着摄像机想来录一段我的视频, 说形势任务感想的, 我搞了半天, 一直都做不好秀, 烦着, 这个时候同事打电话过来, 说今天要交形势任务宣讲点评的稿子, 我一听, 当时就没有忍得住, 两分钟话还需要写稿子吗? 不是脑残都没有问题啊.

我的时间就这么好浪费, 于是干脆就不想拍了, 对着镜头把心里想的全都说了, 说话说得是比较冲. 说完之后觉得自己有点不对, 这至少也是对朋友的不尊重啊, 他也是做他的工作, 过了一会心平静下来了, 想找他回来继续拍完, 他自己回来了.

看来以后在修身养性上还是要改啊. 做事要好好做, 别人给面子, 给我宣传, 我应该知道才对. 否则事情做好了, 反而因为自己处理事情的方法不对, 落个悲剧下场.

2009年2月25日星期三

DotNet3.5有点意思

最近有机会使用和学习DotNet, 感觉很振奋, 以前对DotNet的抗拒现在变成了惊喜, 感觉每天都在欣喜中不断看书和学习.

(1) DotNet 3.5的新特性很让我舒服, var关键字, 自动属性, 匿名类, lamba, LinQ, 这点Java目前是没有得比了, 越来越多动态语言的特性被编译器支持,同时又兼顾了强类型,编译语言的高效率.
(2) DotNet的开源社区越来越成熟了, 很多Java社区的技术移植到了.NET, 比如Spring.NET, NHibernate, NUnit, Log4Net, 另外一些ViewEngine, Ioc技术项目也成熟了.所以可以选择的东西也多了.
(3) Visual Studio 2008的Express版本功能也不错了, 对我来说,我觉得足够了
(4) ASP.NET MVC有点意思, 仔细看了之后,觉得很喜欢, 相对于WebForm开发方式来讲,我习惯多了,对于Ajax开发, 我习惯它的这个MVC模式,实在是太方便了, 控件拖来拖去的开发方法,对我来说不习惯.

不过,个人感觉在DotNet中使用第三方开源技术也不是特别方便, 首先很多框架和技术缺乏IDE的支持, 这相对于微软的技术来讲是天生的缺陷, 比如NUnit就没有VS自带的单元测试方便, NHibernate没有Linq方便, MonoRails没有ASP.NET MVC方便, Spark作为模版引擎比ASPX好,但是如果使用VS进行开发, IDE提供的自动补全功能, 使用aspx, htmlhelper开发也很方便, 在ASP.NET MVC中IDE还能自动生成view模版, 实在是比较爽.

说到SP1中的Entity Framework技术, 中文版本可能又一个Bug, 在代码中什么什么"Set"被翻译成了"集", 虽然编码支持UTF8,不引起使用,但是代码属性中出现中文是感觉很便扭的事情.

2009年2月19日星期四

ArchLinux, hal-0.5.11-7造成gnome不能正常挂载NTF分区和USB

系统升级之后,发现在“位置”中可以显示各个分区,但是不能使用gnome挂载NTFS分区,U盘也不能自动挂载了,看了一下升级日志
,发现hal从0.5.11-4升级到0.5.11-7了,因为之前遇到过类似的问题,猜想是hal的问题,于是编译安装了老版的hal问题解决。另外新的networkmanager依赖于hal-0.5.11-7,所以networkmanager也不能用了,不过感觉也没有啥,只是少了个桌面Applet而已。。

顺便看了一下hal改变, 由于两个hal只是小版本号的问题,也就是说上游源码是没有变化的,问题应该出在Arch Linux的打包者的patch上,看了一下PKGBUILD,发现多了几个补丁,也许是它们造成的问题吧,涉及到源代码的改变,所以暂时算了,用老版本好了。

补充: 貌似是PolicyKit的问题,授权了就是挂不了。。