显示标签为“Myjob”的博文。显示所有博文
显示标签为“Myjob”的博文。显示所有博文

2014年5月29日星期四

2013年工作总结

2013年工作总结
忙碌的13年已经过去,这几天看到好多人的签名都在总结13展望14,发现我也从年轻小伙变成了大叔。
个人工作回顾
这一年的主要工作有
1、完善考务系统前后台
上半年经历了两个主要考务开发人员离职的工作交接工作,现在前台报名主要有王兆峰负责开发,后台系统有张威、张亚杰负责开发,共经历了930前的五次迭代和之后的三次迭代。
前台主要涉及身份确认、单点登录登出、证书补办、支付宝支付、子集信息采集、博飞接口改造、二建逻辑改造等。
后台主要涉及上半年三家银行对账到现在的支付宝对账、短信发送、考试规则引用、子集信息维护、博飞接口改造、撤销禁考等等。也一起经历了数据安全风波。
总的来说,我们的考务系统从每天的心惊肉跳变成了比较稳定,从工作流程上也更加规范,我们有了考试先上线流程规范,有了系统更新流程规范,数据库脚本更新流程规范,更好的应用了maven管理方法,以及hadson代码检查。
2、platform公共服务平台完善
platform也涉及到单点登录退出问题,以及邮箱验证开关,登录信息后台验证等。
3、单点登录系统完善
实现了service注册和管理(未上线),借助redis实现了单点登录退出
4、北京公务员系统
在去年北京公务员基础上,重构了报名系统代码和扩充了后台管理功能点,第一个吃了支付宝支付的螃蟹,顺利保障了北京公务员系统报名。
5、中央公务员系统
新开发了中央公务员前后台系统,实现了大数据量导入access数据功能,节约了导入时间和数据验证时间。
6、支付宝缴费及对账
以支付宝支付替换了去年的三家银行支付,考虑到加新不改旧,可以动态切换新老支付,可向其他系统移植。
7、博飞webservice接口改造
重构原有代码耦合太紧,分散调用,一旦有修改涉及面太广,回收调用博飞接口逻辑到一处。
8、委托考试系统
复制了考务系统前后台以及数据库,以适应委托考试
9、人保局老系统维护
涉及引进人才系统、工作居住证系统、事业单位工资系统、专项计划系统的升级改造。
10、协助职称、鉴定系统等解决问题
11、招聘开发人员


存在问题、意见和建议
1、提议考务前台做一次代码重构,使各个步骤更加严谨更有效率。
2、探索实现报名信息后台二次验证
3、探索单点登录系统重复登录问题
4、考务系统有一些修改未同步修改委托系统,是一个隐患
5、我们要有技术储备,有备无患,建议建立奖励制度,鼓励技术人员学习创新
6、独立一拨人开始探索产品化,磨刀不误砍柴工,没刀砍不出好柴
7、如何才能保障上线质量,怎样避免内部测试没问题,上线就出问题,严谨再严谨,周全再周全
8、继续完善工作流程,坚决坚持执行,请项目组长一定执行各项操作流程,不如上线一定要做release,否则以后我们就越来越没信心做全量更新
9、给员工以关怀,关心他们的生活,特别是刚参加工作不久的新人,我觉得现在的新人比几年前更艰难,今年一年单北京的房租就涨了20%,首信的新人工资还是3-4,怎么才能招上人来,怎么才能过了年不跑,留住人。
这也是相辅相成的事,如果我们的人也像外包那帮人似的,开发中给你糊弄上,也不管代码可读性、执行效率、可扩展性,玩事儿走人留下个摊子,那是多么可怕的事。
10、希望我们的团队别都被培养成工作狂。工作为了生活,我们有时候为了工作忘了家,忘了生活;同事之间的交流除了工作还是工作,我们需要改变。
11、领导,别让我整三千字了,再扯我就更跑题了。

简历

刘朝春(男 31岁)
计算机软件 | 软件工程师 | 8| 本科 | 北京
个人信息
手  机:13426476178
电子邮箱:liuspring315@gmail.com
出生日期:1983315
求职状态:如果有更好的机会,我愿意考虑
民  族:汉族
教育背景
河北科技大学
20029- 20066月 信息管理与信息系统 本科 | 石家庄
专业类别:电子信息科学类
求职意向
期望工作性质:全职
期望从事工作职业:软件工程师
期望从事工作城市:北京
期望薪水:税后月薪RMB20000
到岗时间:1个月内

自我评价:
8年工作经验,有政府项目设计开发实战经验,热衷于技术,负责框架搭建,技术难点攻关,带队开发。
工作经验
首都信息发展股份有限公司
所属行业:计算机软件 | 公司性质: | 公司规模:
20073- 至今
工作地点:北京 | 工作性质:全职 | 所在部门| 汇报人: | | 月薪:15000RMB
职位类别:软件工程师
主要负责公司承接各个政府部门的管理系统的需求确认、设计与开发
1、 在首信2007-032012-07期间,参加了如下项目的开发工作:北京市人事局公务员综合信息系统、北京市人事局引进人才综合评价系统、北京市财政局网上审批及监察数据自动上报平台、北京市人事局工作居住系统、北京市人事局人才引进系统等。使用的开发语言为java,使用开源框架strutshibernatedwrJqueryspringgwtgxt、润乾、oracle
2、 在首信2012-03至今,参加了北京市考务系统的建设,该系统包括资格考试、委托考试、职称评审、公务员考试、职业鉴定、公共服务平台。





项目经验摘要
20123月—至今 考务系统建设
使用了springMVChibernatespringJDBCredis、单点登录、银行直连缴费、支付宝对接缴费、动态表单。
整个考务系统开发了30多个应用,统一搭建了项目框架,springMVChibernatespringJDBCredisshiroxfirejquery.validatejquery.formblueprint所有系统采用maven管理,向整个部门推广了maven+svn+hadson,以替代老旧的eclipse项目+vss,我主要参与了其中15个应用开发;其中独自公务服务平台供所有前台系统公用;通过研究开源单点登录系统cas实现了自己的单点;设计开发了动态表单,以适应不同考试采集信息不同的情况,实现了字段名称、类型、长度、校验、字典、级联关系、子集信息的灵活配置


20102月 –20103基于Ext GWT 的决策分析系统
系统采用的GXT提供的MVC模型,底层数据访问是通过调用润乾报表API,将润乾报表运算结果转化为一个List,然后交给GXT在页面展现。
页面功能上,Grid列排序,隐藏显示特定列,树形展开收缩,用open chart封装的统计图表,数据钻取,列标题分组,拖拽形式动态设置列维度、行维度以实现灵活查询,将灵活查询行列维度保存起来供以后随时打开,将结果到处ExcelPDFWord,动态设置查询条件的显示隐藏,动态的进度条提示、融入GIS系统,实现报表到地图,地图到报表。
值得注意的是所有这些功能都是在一个窗口中完成的,实现了菜单、维度定义、报表、统计图功能的融合,不用客户点来点去,一步了然。
20079- 200712月 北京市人事局人才综合计划系统 |

参与了部分功能的详细设计,考虑到用户体验和开发效率,经过测试,决定采用润乾报表中间件开发报表展现、填报、效验,由于润乾报表提供效验功能的局限性,自主设计替换润乾原有效验,利用DWR框架编写了javascript效验,实现了实时提示用户效验信息,并且可以打印效验信息以供核对,由于有些报表比较庞大,提供了临时保存功能,得到了用户的肯定。




2011年12月27日星期二

Could not deserialize session data java.io.NotSerializableException

<2011-12-20 下午08时51分00秒 GMT+08:00> <Error> <HTTP Session> <BEA-100028> <Could not deserialize session data.
java.io.NotSerializableException: com.capinfo.service.impl.tcs.UnitUsersServiceImpl$1
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164)
        at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
        at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:422)
        at java.util.TreeMap.writeObject(TreeMap.java:2243)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        Truncated. see log file for complete stacktrace
UnitUsersServiceImpl$1是
TreeMap<Long,TcsFunc> topTcsFuncList = new TreeMap<Long,TcsFunc>(new Comparator()  {
 public int compare(Object o1, Object o2) {
     long l2 = Long.valueOf(String.valueOf(o2));
     long l1 = Long.valueOf(String.valueOf(o1));
     if(l2>l1)
  return -1;
     else if(l2<l1)
  return 1;
     else
  return 0;
      //return String.valueOf(o2).compareTo(String.valueOf(o1));
 }
 });

参考
http://www.tek-tips.com/viewthread.cfm?qid=1042413
Make sure the object you are putting into the session is serializable and also
the non-transient object it aggregates are also serializable.
If any of the non-transient objects in the entire object
graph are not serializable, you will receive this error message.


http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4330877

In order for classes such java.util.Treemap and java.util.TreeSet to be
serialized the Comparators(java.util.Comparator) also need to be serializable.

改成
TreeMap<Long,TcsFunc> topTcsFuncList = new TreeMap<Long,TcsFunc>(new MyComparator());

----
/**
* 因为用到这个比较器的TreeMap需要放到Session中
* 所以这个比较器也需要实现Serializable
*/
class MyComparator implements Comparator,Serializable{
 public int compare(Object o1, Object o2) {
     long l2 = Long.valueOf(String.valueOf(o2));
     long l1 = Long.valueOf(String.valueOf(o1));
     if(l2>l1)
  return -1;
     else if(l2<l1)
  return 1;
     else
  return 0;
     //return String.valueOf(o2).compareTo(String.valueOf(o1));
 }
}

2011年3月31日星期四

英语不好 ... 要。。。命 啊

好久没来写写了,时常过来逛逛,想想缺没什么说的

过年回来比较闲,在捣鼓 struts2 jpbm spring hibernate maven nexus

刚刚把nexus配好了,看到maven开始从nexus私服上下载了,舒心.....

蒸腾了大半天,竟然是因为搞错ordered group Repositories和available Repositories

我把所有的库托到了available Repositories 中,然后不停的ReIndex 晕死 就是不出来 哈哈

看来莺歌里氏很瓶颈啊

2011年1月10日星期一

textarea替换回车换行空格

while(jianjie.indexOf("\n")!=-1){
jianjie = jianjie.substring(0,jianjie.indexOf("\n"))+"<br>"+jianjie.substring(jianjie.indexOf("\n")+1);
}
while(jianjie.indexOf(" ")!=-1){
jianjie = jianjie.substring(0,jianjie.indexOf(" "))+"&nbsp;"+jianjie.substring(jianjie.indexOf(" ")+1);
}
out.println(jianjie);

weblogic中部署多个使用了hibernate的应用 SessionFactory not available

一直以来我这边的工作就是在一个已有系统上克隆成一个又一个系统,超级无聊,以至于打断点跟踪时 eclipse经常犯晕跳到另外一个系统的同package同名的类中

今天又是两个及其相似的系统部署到了weblogic上,发现一个能访问数据库一个不行,一个行了 另一个又不行

最后发现hibernate.cfg.xml中

<property name="hibernate.session_factory_name">hibernate_session</property>

两个应用中hibernate.session_factory_name值是一样的

改成不一样的值就OK了

JNDI不能重名

2010年1月12日星期二

windows7 访问局域网计算机 提示用户名密码错误

今天上班发现访问公司局域网里的计算机共享不好使了,输入正确的用户名密码,也提示不正确,差点就还原系统了,最后Google到了方法:WIN7电脑上开始 search 输入sec , 打开local security policy, 找到security settings\local policies\Network Security: LAN Manager authentication level, the default vaule 是 not defined. 改为"Send NTLM response only"后即可.参考:http://bbs.pcbeta.com/thread-511161-1-1.html

2010年1月6日星期三

Myeclipse8 安装插件超简单

Myeclipse8在添加插件这方便看来改进不少 ,想当初Myeclipse7时那个麻烦啊,现在只要在放在Genuitec\MyEclipse 8.x Latest\dropins\plugins目录下,重新启动Myeclipse就会自动加载 并弹出提示,plugins目录没有新建一个

2009年11月9日星期一

Intellij IDEA 搜索框显示乱码

弄了个windows7 英文包装上,结果发现Intellij IDEA 的搜索框中文乱码了,Ctrl+ F那个,Ctrl+ Shift+F还不是乱码好好的,在网上一搜,试了试这个,嗯,靠谱。

进入IDE Settings 里的 Appearance项,选中Override default fonts by ,把 Name 设置为 SimSun,Size 根据自己喜好设置(我一般设为 14)。确定

参考:http://gx80.javaeye.com/blog/124662

哦对了,win7还是不错的,

2009年9月9日星期三

在eclipse中 高亮显示相同的变量

eclipse中如果选中一个变量,则在本源文件中高亮显示相同的变量

Window->Preferences,在type filter text 中输入Mark Occurrences

在Java-Editor-Mark Occurrences中将Mark occurrences of the selected element in the current file.选中OK即可

2009年9月8日星期二

转载:如何将 IntelliJ 的配置改到其他分区


转自:http://blog.csdn.net/yidinghe/archive/2009/04/10/4061251.aspx

不管你将 IntelliJ 装在什么地方,它都会在 C 盘的用户目录下创建 .IntelliJIdeaXX 目录,而且这个目录会随着时间增长到几个 G 那么大。这对于 C 盘小得可怜的人来说确实是个问题。不用怕,这里介绍一个将 .IntelliJIdeaXX 目录移到其他分区的办法。

我的 IntelliJ 装在 D:\Program Files\JetBrains\IntelliJ IDEA 8.1 目录下。我是这么做的:

1、首先在 D:\Program Files\JetBrains\ 下创建一个文件夹:IdeaConfig,用来存放所有的 IntelliJ 配置。

2、然后打开 D:\Program Files\JetBrains\IntelliJ IDEA 8.1\bin\idea.properties。

3、将所有的 ${user.home} 替换为 D:/Program Files/JetBrains/IdeaConfig (注意斜杠的方向)

4、保存 idea.properties

5、打开 C:\Documents and Settings\XXX 目录,把 .IntelliJIdea8x 和 .IntelliJIdea80 两个目录移动到 IdeaConfig 目录下。

这样你就可以启动 IntelliJ,而且以后也不会再占用 C 盘空间了。

2009年8月28日星期五

今儿下午貌似没啥事

下午头儿出去了,这周一口气粘帖复制了14个Action20个jsp,没什么技术含量,完全是粘帖复制,我在等待什么?

2009年7月9日星期四

迷糊SAP

这周公司在培训SAP PI
听的一塌糊涂
一上课10分钟就犯困
明儿好像就结束了 这可咋整

2009年6月3日星期三

发现谷歌浏览器不能加载yahoo邮箱

昨天就发现这个问题,用firefox没问题,我的chrome谷歌浏览器是3.0.182.3
提示 yahoo邮箱无法加载
按照提示 清楚缓存也没有用

Yahoo! 邮箱无法加载

Loading Yahoo! Mail failed due to a client side error

您可以尝试对您的防火墙进行设置,并且禁用“屏蔽广告”。如果这个方法仍不凑效,请联系我们的客服

2008年9月19日星期五

普元培训第五天

培训最后一天,报表~

感觉普元的报表有点水晶的味道,弄了个分组报表,又建数据源又建数据集有设行分组,列分组的,赶紧挺麻烦,没有用润乾好使,虽然润乾工作量也挺大

看来老板要贴了心上普元了,接下来可能要实战了,不知道啥样,现在有两点困难;

1\、普元报的错误,无从下手,不知道哪出的毛病,比如有时在展现层的毛病,而在逻辑处理层报错,摸不着头脑啊。

2、普元的构件不熟悉,据说有1000多个构件,不像java api一样按照功能分的包,它是按层分的包,业务逻辑层构件、运算层构件、展现层构件。要实现一个功能怎么能知道构件包里有没有现成的,恐怕这只能慢慢熟悉那些构件库了

3、觉得普元的报表系统不怎么样,至少没有什么让人耳目一新的,工作流系统还挺强,对工作流不熟悉,不敢说什么,然后就是可维护性,可扩展性,可能一直是自己写代码的,看不见代码总觉得不踏实最然功能实现了并以更迅速的

4、听头儿说这是未来软件开发的趋势,听得我直郁闷,未来开发就是这么托构件然后用连线一拉基本完事儿了吗?!得,要不我还是转行做小买卖去吧,呜呜,总的来说,觉得这种模式对程序员个人的发展没多大好处,核心代码都被封装好了,不知道什么是类,对象,方法,面向对象,也能轻而易举做软件工程师了,呵呵,工程师以后不值钱喽。

自己的一点感觉,胡侃一通,不知道合不合乎逻辑,在前面的blog里有朋友留言说"千万别被普元忽悠了",哈哈,不知道那位兄弟的理由是什么,想多听听大家的意见,望广留言,多谢多谢多谢!!!

通过Xpath来访问数据

通过Xpath来访问数据

例子1:Entity的格式

<root>

<data>

<myEntity>

<myField1>1234</myField1>

<myField2>This is demo</myField2>

</myEntity>

</data>

</root>

例子2:EntityList的格式为

<root>

<data>

<list length=2>

<myEntity name="test1">

<myField1>1234</myField1>

<myField2>This is demo</myField2>

</myEntity>

<myEntity name="test2">

<myField1>2345</myField1>

<myField2>This is demo</myField2>

</myEntity>

<list>

</data>

</root>

通过Xpath来访问数据,比如

/root/data /myEntity将访问到例子1中的<myEntity>实体

/root/data/myEntity/ myField1 将访问到例子1中的myField1,结果为1234

/root/data/list/myEntity[@name="test1"]将访问例子2中的<myEntity name="test1"> 实体

/root/data/list/myEntity[@name="test1"]/myField1将访问例子2中的myField1,值为1234

普元培训第四天

第四天还没来得及写呢,现在已经是第五天了呵呵

昨天临时以前的项目要改写东西,听的断断续续

还是一些关于工作流的知识,只是更加复杂一下,跟着文档一个劲儿的复制黏贴

也不知道所以然

据说下午还要考试,晕

普元培训第三天

今天接着培训普元EOS

百度竟然长度限制文章这么小气

2008年9月16日星期二

第一次使用Subversion,Attempted to lock an already-locked dir

一直苦恼与不能实现广域网的版本控制,终于发现Google code就提供这种服务,它使用Subversion来控制版本,下了一个TortoiseSVN 1.5.1
装上,捣鼓了半天终于上传上Google code了,哈哈。有成就感
这两天有搞了个eclipse插件subclipse,运行起来以后无论commit还是update都提示错误:

Attempted to lock an already-locked dir

通过搜索,解决办法是 执行clearup操作,就好了
记录在这,Subversion还要继续研究

Google Code Host的使用说明(转)

by shootsoft

http://www.shootsoft.net

1. Eclipse的Subversion使用说明

开发工具以Eclipse为主,所以Eclipse首先需要安装一个Subversion的插件。参考下面的网址:

http://www.ibm.com/developerworks/cn/opensource/os-ecl-subversion/

项目组的所有成员必须都要按照以上的操作安装好插件,并且注册Google的Gmail帐户。

2.Google Code Host说明

项目组组长到http://code.google.com/hosting/创建新项目(Create a new project)过程省略。最后会看到项目的协作平台网址:http://code.google.com/p/group6homework/。(group6homework是项目名称)组长创建完成后还需要把组员的帐户添加进来:通过[Administer]—[Project Members]就可以对项目组成员帐户进行管理。

创建完成后组长需要安装http://tortoisesvn.net/downloads Subversion的客户端插件进行项目首次的Check In操作。

操作如下:

到Eclipse的项目的workspace目录下,进入需要协作的项目的目录,比如我的:

D:"shootsoft"GP6Platform

单击鼠标右键,选择[TortoiseSVN]—[Import]然后输入:

https://group6homework.googlecode.com/svn/trunk/

注意:

  • 这里网址如果你不太清楚可以登录

http://code.google.com/p/group6homework/source查看

  • Google Code Host使用的密码是随机生成的,如果已经登录Google,可以查看以下网址获得密码:

http://code.google.com/hosting/settings

首次登录可能需要安装证书和输入密码。完成后TortoiseSVN就会自动把文件夹

D:"shootsoft"workspace"GP6Platform下的所有文件同步到服务器上去了。

3. Google Code Host与Eclipse

Check In操作完成后组长还需要将项目Check Out出来,真正和Eclipse中的项目结合,组员也需要这样做:

1.将自己的项目文件夹备份并且从Eclipse中删除。需要选择第一项,连同文件夹一起删除。

2.按照http://www.ibm.com/developerworks/cn/opensource/os-ecl-subversion/中的说明进行Import操作,操作结果如下所示:

3.这时点击Next按钮,选择第一项,然后点击Finish按钮。

4.通过Windows菜单,[Show View]—[Other]

5.在弹出的新窗口中选择“SVN—SVN资源库”

6.在刚才Import进来的那个资源库上单击鼠标右键,选择“检出为(A)...”

7.然后在新窗口中中输入项目名称

点击“Finish”按钮。

稍微等待一会儿,程序就会全部下载回来了。

8.我的Tomcat5补丁放在了D:"Tomcat5补丁目录下,请各位参考我的未知把补丁放置好。

如果导入的项目有红叉叉,在项目上点击鼠标右键,选择“Close Project”然后再打开就好了。这时可以清楚的看到项目上图标发生了一点点变化:

在上面的第3步上,按道理应该可以作为项目可以直接检出,但是我这里操作总是出错,所以只有按照稍微烦琐一点的步骤来操作了。

4. Subversion的使用

如果你对某一个文件进行了修改,想要把这个文件提交到服务器上去,就需要在需要提交的文件上单击鼠标右键,通过Team菜单来[提交]

如果你需要把修改过的文件使用服务器上的来覆盖,可以通过Team菜单的[更新]来进行。

Subversion的使用非常简单,但是要深入探究也可以说上几千字,还是建议通过官方或者非官方的教程来学习:

http://www.baidu.com/s?tn=searches_dg&ie=utf-8&word=subversion+%E6%95%99%E7%A8%8B

http://www.baidu.com/s?wd=Subversion+Eclipse&cl=3