做代码迁移,要把oracle迁移到db2上面,遇到了substr的使用,老是报错.原因是oralce的substr的postion从0开始,而db2的substr的postion从1开始,这个设计有些不合常规了啊!程序猿数数的时候都是从0开始的啊!
前几天用bootstrap做了个点点的模板,也为了熟悉下bootstrap的使用. 现在bootstrap可以说是最流行的css框架,不是之一. 这次把模板做了代码的优化,比之前使用的代码更清晰的多了,以后改起来,也容易的多了. 还把点点的评论替换成了多说,另外在文章中增加了无觅功能,还有个人的信息.以后一点一点再增加其他的丰富内容了! 另外呢?在github把模板共享了,提供给各位随意使用了! github地址:https://github.com/dapengme/bootstrap4diandian
Anytodo 是一款chrome浏览器的插件,可以与google task进行同步,进行任务管理。我的手机是安装的gtasks的免费版本,是足够使用的了,Anytodo的使用,也弥补了google task没有桌面的管理的空缺,推荐使用。Anytodo是一个基于html5的离线便签应用,可方便的与Google Tasks进行同步,主要功能包括:1. 双击空白处快速添加便签;2. 双击便签简单编辑内容;3. 点击编辑按钮,支持富文本编辑;4. 更换便签颜色;5. 拖动改变位置和大小;6. 更换主题;7. 离线访问;8. 后台同步;9. 定时提醒;Anytodo目前最新版本为1.1.1,更新内容如下:1. 添加了处理时间的同步;2. 修正了富文本编辑后,提醒和日期显示错误;3. 修复了同步中的一些问题,提高了同步效率;项目地址:http://code.google.com/p/any-todo/下载插件:Anytodo-1.1.1.crx 1.5 MB2012-03-26 17:39 更新Anytodo 1.1.2,可以从Chrome App Store现在安装了:安装地址:https://chrome.google.com/webstore/detail/maidakogkfgehlikodkefhfefnmfaiig
看到一篇关于选择编程未来的方向的文章,讲的还有些内容,进入软件这一行业,起初选择一门语言是很重要,也是关系着以后的发展的方向,可语言真就是那么重要吗?在这个行业待的久的人,肯定会说,是未必吧!一门语言的出现,总有他的存在的价值、发展的目的和适用的范围,经典、适用于市场的语言才会留下来,就比如最近eclipse推出的新语言Xtend,是以己之长补 Java 之短,精简代码,无类型,改进可读和维护,我没有深入研究过,我就是有些可笑,这门语言仅仅是补充了Java之短,但是市场有没有带来什么利益呢?没有市场的驱动,能存活多久。再说Java和C#,Java号称垮平台,难道C#就不行吗?Java的跨平台,了解的肯定知道,Java是运行在自己的Jvm中的,并不是运行在自有的系统平台的,而C#依靠自有的系统平台,如果C#加入类似Java的一个中间层,难道就不能跨平台吗?况且现在,已经有C#跨平台的实现了。编程未来的方向,如果未来仅仅就是做编程,仅仅就是写代码,做一个码农机器人,也仅仅在一门语言上面发展,ok,那么要么就是个真正的码农机器人,或者去研究院,做一个这门语言的语言专家,再说,语言专家也要很了解其他语言的。选择未来的编程方向,不能说什么选对了,什么选错了,这么问,明显是误导人的。选择的结果,只要适合和不适合,就比如我们做开发,有的技术适用于目前的环境,可就不一定适应于其他的环境。选择一门自己入手的,或者感兴趣,钻研熟练的掌握他,这个自己的本钱,也是有能力学习其他知识的课本,根据市场和实际情况的需要,学习掌握需要的知识。多说一句,未来的事情,谁说的清呢?原文网址:http://blog.csdn.net/lin_lujian/article/details/6941633编程未来的方向,你选什么,你选对了吗?为什么会有Java,为什么会有.NET? 有人说,Java是为了跨Windows和UNIX而产生的。是这样吗?Sun有?自己的操作系统solaris,并且打的是高端市场,而Java发展早期阶段,? Windows还主要定位在中小型企业,并没有打算与Sun一争高端客户。?而且Sun的用户大部分都是大型企业级,而Windows定位在家庭消费? 用户,由于Windows已经成为桌面OS的事实标准,Sun根本无意抢夺? Windows的地盘,而且Sun有自己的操作系统,扩大自己产品销售才是? 第一。但是UNIX一直是个混乱的世界,各种UNIX版本在并存,你为这种? UNIX开发的应用,却很难在另一种UNIX上跑通.应用的阻塞影响了UNIX? 市场需求的扩大,就象没有SQL Server,没有OFFICE,没有Windows 游戏,? 和Windows上的开发工具,就算你的操作系统做的再漂亮再容易我们也会扔掉Windows.为什么?因为没用,我买回来一个大铁家伙,我什么也做不了.Sun就出于这种考虑,所以才有VM的想法,否则谁傻了, 做个又慢又麻烦的VM.所以说Java的产生,只是为了跨UNIX平台.当然能跨 Windows,吃定Windows,那岂不是更好,呵呵呵,Sun为自己的妙招而没事偷着乐那为什么会有.NET呢?可是Windows就一个呀,它也要跨平台?而且微软已经把CLI提交给标准委员会,看来是真要跨了?真的吗?从外表来看,Windows确实是一个.但是从技术角度看,Windows3,? Windows95,Windows2000是截然不同的三种架构.在中国,大家对新技术的追求比较热衷,所以说一个企业中这三种操作系统并存互连的可能性不怎么大.但是老外是精打细算,不见兔子不撒鹰,所以你在国外企业运行很老的系统也不要见怪.微软为了同时维护这几种操作系统也是煞费苦心,而且由于技术是各个时期形成的,有的技术由于历史发展原因有明显的缺陷,也无能为力修改了,而且为了功能更强大,API海洋,DLL黑洞,ACTIVEX,OLE,COM,DCOM,COM+,各种技术交叉,唉,其中苦谁了解所以跨WINDWOS平台是微软制造.NET的一个原因,这样给你一个抽象的统一的平台后把你摆平后,他再着手修改他的底层,省得一天人们叫着 Windows不安全,Windows不稳定.当然从J2EE的火热场面来看,拉去了很大一批Windows平台上的C++程序员.失去了应用开发的源头,那还有什么发展?如何拉回这批程序员让他们继续为Windows开发当然也是.NET的原因之一,这就是为什么.NET从架构到开发语言都与Java 极其相似的原因,就是吸引你平滑的再回到微软的世界中,如果跨度大了,程序员就有了迟疑.唉,如果没有Java,如今的C#也不会是如今这样,原本它会更好,我想ANDERS一定心中很郁闷,但是商业是不以个人意志为转移的.而且现在已经不是桌面为王的时代了,现在是互连网的时代,Java是第一个有强大开发WEB应用的完整体系,而当时微软的技术还是七拼八凑,只是互连网一下到来微软刚醒过神来仓促应战的结果,当然无法与J2EE媲美.想在互连网时代也分一杯羹,必须也有一个完整的体系,于是.NET就产生了我们已经有了Web Service,我们还需要.NET吗其实技术发展到如今的应用集成时代,用户的需求就是把现在各种平台上的应用集成起来.集成的方法有很多种,当然跨平台也是一种.不过最省力的还算是WEB SERVICE.因为现在已经是组件应用的天下.各种COM,EJB,CORBA成为快速组装企业应用的主流技术.组件是位于操作系统,数据库,网络之上的技术,站在组件的层面上,下面用什么技术已经无所谓了,因为已经被组件屏蔽了.如果我们能把我们的组件互连起来,不也可以集成吗?应该怎么做?这几项技术都分属于不同公司,想联合真不大容易.这时就要找到每个体系公共的东西,用公共的东西把他们连在一起不就行了.找呀找,终于发现,是TCP/IP.随即几大公司都发现了突破口,需要快速占领先机.由于Sun一直在Java发展的问题上给了IBM很大的阻塞,所以IBM宁愿先和微软联合做,如果微软有什么不轨之心,就放出Sun,让他们互相咬,然后在适当的时机出来装出老大的样子摆平他们,给他们俩制定一个适合自己发展的竞争协议.我们已经可以互连了,我们干吗要.NET.我们的问题已经解决了,我干吗花钱再投资呢?经济本来已经很不景气了.但是,但是,就是这该死的但是…微软看来已经决定不在现有基础上增强ASP和COM+了,现在是互连时代,也是组件时代,两大要命的地方我都不升级了,你自己看着办,我可没逼着你买和Java 在中国哪个更有前途这个问题好象已经不用再争了.中国90%的用户是Windows用户,保护现有投资,使用很习惯很易用不用重新学习,我又不用跨平台,我干吗要换Java 呢.过去是微软没有提供很强大的WEB开发解决方案,现在提供了,我干吗要用Java.而且. Net比Java出的迟,肯定会吸收Java的优点,弥补Java的缺点.而且微软的VM肯定和Windows结合的很好,性能不用担心.我干吗用 Java?而且微软显然把宝已经压到了.NET上,你难道还要在? .NET的VM上再加一层Java的VM?.NET有什么新的亮点?当然是 ASP,ADO和COM+,还有清晰的架构,并且由于统一的类库,WEB,GUI,MOBILE而开发的应用会很容易的转来转去,不象过去开发,各需要学习不同的知识.ASP终于结束了网页意大利面条式的程序,面向对象和支持多种语言,使构筑强大复杂的WEB应用提供了比JSP更凶猛的功能,让人不得不爱.ADO.NET也抛弃了过去的数据集一Scroll就连数据库进行提交的糟糕速度,代而取之的是多条修改可以一次性提交上去.这样性能会提高很多.COM+呢?COM+1.5的特性大家在WINXP上也看见了,比1.0强了很多,未来还不用注册, COPY完就能用,多舒服.至于安全嘛,稳定嘛,这话不敢讲.因为盗亦有道,Java也同样如此,无法说谁比谁好真的会跨平台吗微软的命根子是操作系统,微软此次出.NET也是为了打入高端市场.怎么打入?微软第一已经在用C#收买 Java程序员了,并且做Java和C#的映射工具,先断了Java应用的前途,后面用CLI提交给标准委员会,让别人开发UNIX上的平台,微软不在正面和UNIX阵营冲突,以免犯众怒.当UNIX和Windows的CLI都有了时候,基于CLI的应用可就两个系统都能用了,这会帮助微软销售多少其他产品呀.这不,微软在支持着好几个Open Source社团在开发UNIX的CLI.跨平台的事微软不会轻易干的,否则微软的命根子怎么办真的支持多种语言吗开发更多的基于.NET的应用,让.NET快速成长起来.第二.NET是一次比较大的革新,广大的各类程序员能否跟的上也是个问题.多语言的支持当然会,但是不会支持的很好,否则微软大力做C#干吗呀,如果别的语言和C#一样好,那微软还混什么混呀.最糟糕了,也要其他语言的技术比C#慢半拍.不过先走也未必领先,就象DELPHI就后来居上,这么大的市场,微软是不可能通吃的我们需要转到.NET上吗你可以不转.就看你需要不需要INTERNET了.我想在未来,没有企业会说INTERNET对我没有一点作用.现有应用能否平滑过渡呢?在这个问题上可以看一下微软的历史.微软在做完WINNT4的时候其实已经在策划现在的WIN2000,但是为什么在WIN95后有WIN98,WINME,WINXP, 不是他当时做不了那样的技术,而是必须引导着客户一步步走,要追随客户,走的太快,就会丢失客户.在这个重大的转折点,微软也会如此.而且在现在的 Windows.NET上,你运行现在的程序一样没问题,速度依旧,操作方式也依旧,因为他使用了两种手段来区别对待这两种应用程序什么时候转如果你需要抢占市场先机,现在转正好,因为能支持ASP.NET,ADO.NET开发的VSS.NET已经推出快一年了,就是有能力欠缺的问题,第二版的出来也不会太晚了.不过话在前头,确实在实际的开发中,Vss.NET确实有些做不了的事情,不要看他好象什么都有,这就跟微软当年宣布 COM有池化的功能一样,仅有一个外壳.这是微软的策略,跟不跟着走,你自己看.稳健型的公司建议在第二版出来后应用,因为微软的产品一向在第三版才会好用作为开发商,跟随.NET的难点是什么难点难就在,过去我们的开发方式,拖一些控件,连个数据库,更新或SELECT一些数据.再深一些就是消息,或者是一些不常用的API.记住:.NET是微软进攻高端市场的第一步,现在的微软不是我们过去熟悉的微软,Vss.NET的一推出,就是强烈给人一种这样的感受:从建模到开发到测试到发布,全套企业级的工具都无缝相接,而且处处体现着OO和设计模式,在宣传中也频繁提到,昭示着这个工具是为大型应用开发而定制的.所以宝刀也需有能力的人才能拿的动,否则只能砸了自己的脚.对于现在的Java开发工具也是如此,好象全世界一下都没有了小型企业一样.我们是否具备了优秀的设计师,建模师,OOP的程序员,我们是否有一整套流畅的开发流程来支持全程建模,我们都需要深思.在微软的.NET的各种培训上,培训师也是反复强调分析设计,大型项目管理,自动化工具的支持,你做好准备了吗题外话:Sun在微软拆分问题上输了吗微软的案子打了这么多年,居然庭外和解.Sun确实挺郁闷.不过Sun并没有输.为什么这么说呢?依毛主席的话说就是:敌进我退,敌疲我扰.确实微软在. NET的发展上受了很多牵绊,否则也不会到如今才推出来个框架.在硅谷,时间就是机会,时间就是金钱,谁前进的快谁就能占先机,显然Sun并不是最痛苦的一个的未来依Windows的用户量和微软进攻高端企业应用的决只是呆板的图形,不能全方位的表现网络的传输技术,使应用进步更加依赖硬件而不是软件,微软亚洲研究院为什么在做哪些研究,就是因为他们不断在思考未来是什么,所以每一次技术的浪潮他们总在浪头.当然未来还会有所改变,但是他们会及时调整他们的战略,但大方向不会错到哪去!当技术不再是阻碍应用发展的主要因素,比如宽带的来临,这时候你想过没有,在它上面,该做些什么呢?世界有多大,你能看多远?为什么在每次浪潮到来时你都无法预想到,而感叹这世界变化如此之快我对微软的发展的一些看法:微软把.NET扩展到高端市场和移动设备市场,为.NET开发的程序可以在基于.NET的任何设备上都可以运行,大家不需要为不同的设备用不同的工具开发应用,应用极大的推动了基础软件的扩大,就象OFFICE,SQL Server辅助扩大了Windows的销售一样.未来的XBOX也会变成.NET平台,成为家庭连网的安全网关和交易网关和信息网关,如果你觉得微软进入游戏业就是为了眼馋游戏这块利润,那你就大错特错了,这个皮毛根本不值得微软大动这么财力.PDA 和手机也和机顶盒一样嵌入.NET,你打开电视,你打电话,你玩游戏,你工作,你上网,你甚至打开冰箱,你都不会知道在背后支撑的是.NET,从高端服务器到你的手机,全部是微软的软件这是一个伟大的设想,如果微软能够兢兢业业的走,凭这样的财力人力和管理和经营战略,走10年,实现的可能性非常大,这不是以个人意志为转移的,你说他倒他就会倒吗?如果会成功,当然微软会成为人类历史上最伟大的公司,赚取的财富已经不能再提,最关键的问题是:我们全人类的生活和工作被一个私人的商业公司所控制着.只是到那个恐怖的地步,你是否有勇气和能力把他拆分.因为他足以触及到你的生活和工作,社会的经济,政治活动, 甚至军事,任何的动作都足以引起社会的大地震.你认为他有什么理由完不成这些梦想吗
计划是把工作中遇到的一些典型的问题,做个问题总结,之前遇到的,找时间来写。先把今天遇到的一个问题分析下问题场景: 是项目中有一块的程序数据处理变慢了,而且,现象是中午有变慢,下午的时候,就会趋于正常。查看日志也没有发现出现错误。过程分析: 程序流程: 问题分析: 现象是表2的数据插入很慢。 分析问题有两点可能出问题, 一个是在读取q1,做数据封装,数据逻辑处理给变慢了; 另外一个是在做删除表1的时候,删除的慢了; 最后分析的是排除了第一种原因,因为这一步简单,在实际中也就是服务器进行一下交互,服务器和网关都是足够健壮的。 定位在第二种情况,原因是删除表1 和 插入表2是个串行的操作。表1每天中午都会做大量的插入操作,在程序流程处理中也同时在做更新、删除的操作,对表的压力巨大,当删除操作变慢了,同样就影响了对表2的插入,导致插入表2的操作变慢,这样的后果,q2的队列存储容量也长时间处于饱和状态,存入Q2也随之延后,读取Q1,封装数据的逻辑处理也延后了,当然Q1的容量也饱和了,第一步的操作也变慢了。 最终的结果就是整个数据处理都变慢了。 解决办法: a、将表1的删除和表2的插入进行异步操作 b、对表1的不做删除,将表1的删除做记录id的操作,每天晚上定时进行删除。
这两天把收藏了好久的文章,还有收藏夹中的链接做了整理。现在我的做法是文章的收藏一般都会放到麦库里面,我麦库的公开地址是http://note.sdo.com/u/dapeng 现在公开地址的访问还有些问题,访问子栏目需要输入密码,可我没有设置密码,麦库的客服说只能到下一周解决了,等待解决吧!另外是对一些链接的管理办法是,建立收藏网站,使用新浪的SEA提供的typecho搭建了收藏的网站http://zptools.sinaapp.com 收藏网站是模仿阅微草堂的想法建的,部分的链接也是来源那里的。使用新浪的SEA来搭建是为了服务器的稳定,毕竟我自己的用的服务器在国外,说不定哪天给和谐了,不放心啊!在做网站收藏整理的时候,发现国内优秀的JAVA网站没多少,网站的收藏还需要继续的更新整理,才能符合自己的需要。方向是java相关、企业服务SOA、数据库、linux、前端设计、项目管理、互联网等等吧! 选择了一款比较简单的主题,对主题也做了修改,主要是增加css3的使用,使用了css3的圆角、还有阴影。在chrome、ie9、opera、firefox5测试都通过了,很可惜firefox3没有通过,当然ie6是不会通过了。还增加使用了一个jquery的插件scrolltotop,当页面向下滚动的时候,就会出现返回上面标记。修改好了,也就把博客主题也替换一样了,统一风格吧!现在瞧瞧两个站点吧!http://zptools.sinaapp.com http://dapeng.me
以后的IT路还很长(1)最近有两位兄弟同事离职了,蛮可惜了,在一个战壕一起一、两年了,人各有志嘛!希望他们发展更好些!目前的公司是个创业型的公司,公司从08年的50来个人,扩张到今年11年400多人,今年的目标是500人,扩张速度相当快,公司主要是做中国移动游戏这块的,也在扩展自己的业务和产品,但到底是要走什么样的路,看不清,公司内部也是跑马圈地。在公司里面,最苦的项目组是我们组和另外一个组,每周不停的上线、升级,修改bug,是谁都会奔溃的,我们组已经换了好几拨的人了。技术牛的、不牛的,能拼的、不能拼的,男的、女的,没小孩的、怀孕的、有小孩的,在项目中都出现过,一波接着一波。我入职后,离职的同事算上最近两位,一共4个。第一个离开是个小女孩,小小的一90后,特别能吃苦,我刚入职时,帮了我不少的忙,她的离职,对我有些影响,因为我还有同事,我们属于空降过来的,对老人都有些冲击,还有那段时间,问题的高发期,小女孩的压力不是一般的大啊!我想帮帮,有心力不足啊!最后,那段时间也挺过来了,压力太大了,当时我没有直面问题,我也跟在小女孩旁边,偶尔出出主意,压力我也算是有些体会,有些男娃真比不上她。最后,她就离职到了我们楼上的一家公司,现在偶尔和她聊天,工作也还是挺轻松,不用怎么的加班,也不用关系升级,比在公司时,笑的更多了。接着走的同事,是和我从上一个公司一块过来的,很聪明的一个小伙,当时要走,我很早就知道了,他走的时候,都挺担心的,他经历的事情还有些少,一边希望他能留下来,给他一些时间,整理整理自己的能力,感觉差不多了,再走,另外一方面,他现在走,也是好事,让他能多磨练磨练。他是走了,公司也是国内一家很不错的公司,就是加班多一些。现在,他工作,可没比在公司舒服些,呵呵!男人嘛!现在多一些压力是好事,不是什么坏事。之后,团队稳定大半年了,也就是最近,有两位同事接连离职了。这位同事离职,我得付一些责任,做了一些让人看着不舒服的事情,这个我道歉,另外一块,在他走后,就是我们团队中说的,谁接谁死的模块,现在,是由我来接的。另外一位同事的离职,是刚刚知道的,之前知道他还没有转正,就有些担心,刚过几天,他就离职了,有些吃惊啊!他也是和我从上一个公司过来的,过来是比我们晚了许多。他和我算是搭档,他做需求,我做研发,是想把事情的的确确做起来的。我很感谢这位兄弟的,也很感谢我们的老大的,没他们帮我,我那段艰难困惑的时间,真不知道怎么能过来。团队人员走的走,也在加入新的献血,总得把事情继续坚持下去。
写很很透彻,把码农解决bug的过程都包含进去了,至少我就是这样的。下面的文章和《各种流行的编程方式》有异曲同工,请你不要理解错了。本文来源,翻译如下:——————————————————一个非常严重和困难的bug,能够成就一个饱经沧桑深受压力的有经验的专业程序员的职业生涯。经受这种考验的创伤程度,相当你受到了一次严重的身体伤害,离婚,或是家庭成为的离世。研究人员在研究了计算机编程心理学后,得出了一个程序员们在解决一个困难的bug时的心路里程。这些不同的境界,很像为大众所知的Kübler-Ross Stages of Grief(这个模型描述了人对待哀伤与灾难过程中的5个独立阶段(否认,愤怒,耍赖,抑郁,接受)。绝症患者被认为会经历这些阶段),而且原因都很相似。就好像死亡所伴随的悲伤一样,fix一个bug是一个过程其初始化了一个事件,一开始是拒绝相信,其造就了你苦闷的情绪并开始逐步影响你的心智。这种苦闷的情结果会让你纠结要努力忍受,最终会你会找到一个满意的结果。了解下面这几个bug-fixing的阶段,会让我们更好的生存下来,并持之以恒,最终带来……关闭我们所有的bug的结果。第一阶段:抵触本阶段的状态: 多疑 Skeptical. 生气 Offended. 易怒 Petulant.1. 不理睬也许这个bug会安静地离开。2. 标记上“不是bug”也许这是用户的错,或是本地配置有问题。是的,我确信就是那样,一会就会好的。3. 就是一次小故障我想这就是一次小故障,很奇怪地发生了一次,它不会再发生的,虽然没有搞清楚是为什么发生了,不过这就好像我们的数据库,网格,浏览器或别的什么打了几个嗝一样。一会就会好的,我确信。4. 躲藏.我要休几天病假,也许他们会把这个bug转给别人的。5. 标记为“修改需求中”你看,我是按照需求实现的。如果你们想要改这个行为和UI,就一定要修改需求。也许他们会决定就这样了。6. 需要更多的信息我不能确定这是一个bug,除非我能在错误日志中看到一条特定的报错信息。7. 转给其他人我调查这个bug中看到了其它模块中我看不懂的数据,问题很大。我应该把这个bug转给开发那个模块的人。我可以在我的模块中检查一下那个边边角角的情况,但是正确的fix应该是在别人的模块中。反正那个在别的国家,我见不着他。第二阶段:接受本阶段的状态: 认命 Resigned. 被打击 Defeated. 被激怒 Annoyed.1. 接受现实行了,行了,行了!这是我的bug,我会修正它的。2. 把这个bug放到最后也许,我可以在我需要fix这个bug之前找到一个新的工作。3. 和你的经理讨价还价好的,你看,我可以正确地fix这个问题,不过我需要一个月。也就是说,我可以给这个问题贴个创可贴,那不会真正的解决它,但是我们可以避免用户的抱怨,这可以为我们赢得几天的时间。4. 为这个bug标记一个无耻的时间上帝啊,我希望这时间够了。第三阶段: 投入和沮丧本阶段的状态: 眼花 Giddy. 头晕 Light-headed. 紧张 Nauseous.1. 开始调查我能搞定它,我能搞定它!只需要小小的调整一下,小小的关注一下,多一点咖啡因,再加上一点时间,我能搞定它。2. Befuddlement.Shit. 这太扯了。我居然没有一点进展。这代码真是乱。这样的代码居然能编译和运行,真TMD的神奇,我有机会能搞清楚它什么不正常吗?3. 再次躲藏你看,很对不起。我不得不要去切除我的阑尾。再一次,是的,既然你提到了它,我的确有两个阑尾。现在我一个也没有了,你高兴了吧?。4. 犯贱好吧,总之,你到底期望什么?想让我在一个没有高级调试器的环境下改这个BUG。我是什么?千里眼吗?我在我的Commodore 64上一个更好的调试器!5. 瞎搞看看我试试这么改?Kao,这样不行。要不然这样搞?也不行。那么那样搞呢?Shit,虽然再糟糕。6. 绝望我不可能fix这个bug了。我是个糟糕的程序员。我太笨了。我在这个满是聪明人的地方干什么?迟早他们会知道我的能力太差,那时我就玩完了,在这也混不下去了。7.耻辱我的经理问我为什么我用了一个月的时候来fix这个只需要两天就可以解决的bug?老实说,我不知道怎么去读日志信息,我搞坏了我们的编译脚本。现在,我不敢去让别人来帮我,因为这样只会让我显得更愚蠢。8. 恐慌!这事变得比我相像的要复杂!而我开始觉得复杂的事变得简单……而我觉得简单的事变成需要重定半打的类。为什么我以前在我的经理前拍着胸说我可以搞定这个事?9. 通宵工作,远离朋友和家人(语无论次的喃喃自语,一阵一阵地大声咒骂)第四个阶段:愚蠢的快感本阶段的状态: 感恩 Grateful. 安心 Relieved. 极端地自我欣赏 Awfully Impressed with Yourself.1. 醒悟哦!我终于明白怎么搞定它了……2. 写正确的代码我真NB,我是编码机器!3. 测试牛!通过一个测试。真牛!又通过一个测试了。靠!有测试失败了。这是为什么……4. 隐藏测试失败反正这完全是一个不重要的测试案例。没有人会检查它,这个测试真是毫无意义。5. 提交代码我太牛了,厨房里有个馅饼可以庆祝一下吗?6. 关闭 bug.我听说那里有个馅饼可以庆祝一下第五个阶段: 与“完成”肉搏本阶段的状态: 焦燥不安 Twitchy. 神经过敏 Nervous. 迷信 Superstitious.1. 有人reopen了这个 Bug真的?他们发现了你引入了另一个bug? Shit – 那只是一个不重要的案例永远不会发生的。2. 修正以前的修正是的,我甚至检查了员工的年龄是一个虚数的情况,就是为了防止出错。3. 关闭 bug是的,贱货,你被关闭了。全部都关了,再也不用心烦了。4. 发誓以后再也不干这种事了5. 大家都意识到你现在是那个模块的专家了哦,不!现在他们又给了我三个那个模块的新bug没关系,现在你只需要GOTO 第一个阶段。此外,作为一个工作中的程序员,你会永远经历这些烂事,直到你——死亡,退休,或是被升到管理层。(全文完)原文网址:http://coolshell.cn/articles/4045.html
这里我并不说是axis1和axis2的什么不同,只是最近接触到了axis1和axis2的应用而已。 情况是这样滴。 公司的系统架构是公司外部系统的接口交互都要走公司的接口层,再由接口层将信息透传给公司内部的各个系统。 接口层使用axis2来架构,我这块的接口部分是使用axis1架构的,这个框架用了好几年,相当的成熟,看代码中的注释,最早的有02年写的代码,听说是很早那一批海归写的。 按理来说,高版本一般都会是兼容低版本的,况且对于axis来说,只要是标准的wsdl就可以,可还是有些区别的。 我使用axis1可以正常调用和返回,接口层可以调用也可以返回,看日志,调用的输入和输出都是正常,可在接口层那边就是取不到数据。同事和我整整查了一中午问题,公司对接口很厉害的高手也没有个办法。 最后,还是用最底层的办法来查,webService的本质还是xml,查看输入和输出的xml,输入没有什么问题,输出还是发现了一些端倪。 作为一个返回对象,属性内容是包含在ns的标签中的,在我们输出的xml文件中,ns标签标签中出现的是mutilhref="#01" ,在ns的标签外面,有个#01的标签,在#01中包含着输出的内容。接口层使用的是axis2取数据是从ns的标签中取的,当然是取不到标签外的值,axis1是可以取到的。 让接口层改用axis1,为了保持整个框架的统一,肯定不能改,我们改成axis2,时间不允许。有问题就google、baidu了,最近google搜索,都是搜索的繁体或者英文,简体的好些不是很方便,有时google还打不开,有些厌恶baidu的搜索了,现在用有道多一些。对于axis1和axis2的这个问题,整个网络上面,就只有一个09年的帖子提到,让关闭一些wsdd中globalConfiguration的sendMultiRefs设置为flase。 设置为false之后,再次调用,ns标签外的对象就被包含在ns中,不会采用引用的方式了。 在http://axis.apache.org/axis/java/reference.html有几个配置的解释,没看到有中文的解释,按照我自己的理解,意译下。 sendMultiRefs true/false flag to control whether multirefs are sent or not. 是否使用引用对象的方式 sendXMLDeclaration true/false flag to control whether the <?xml?> declaration is sent in messages 是否包含xml头文件的信息 sendXsiTypes true/false flag to enable/disable sending the type of every value sent over the wire. Defaults to true. 是否在每个值中都标注值的类型参数
我在项目中的笔记1【开篇】 工作也很久了,说大点,给别人还能吹吹,说自己还带过团队,管过项目,可实际肚子里面装了多少,自己最清楚,能骗了别人,骗不了自己,所以啊,就把自己在项目中的经历记下来,或许是经验,也有可能是教训,还有可能记录的是失败。很阿Q的说,是比不小的财富。 笔记的内容会很杂,围绕的主题是自己的项目经历,其中我会找些项目方面的资料,也会加进来,做为自己的学习笔记。 作为开篇,做个卷首语。