
软件技术
文章平均质量分 58
zhmt
喜欢音箱和音乐,也喜欢旅游
展开
-
自己写的博客系统,分享给大家
零点博客着眼于轻便,针对于个人,力求做到易于使用。所以,只要写过网页的人,应该都能使用。原创 2017-04-25 13:15:00 · 3517 阅读 · 0 评论 -
[dlang](三)具有相同属性的不同类之间的拷贝
此段代码可以用于以下情形:两个对象的类名不同,但是内部字段名称相同,可以用以下函数进行浅拷贝。在类很多的时候,省事不少。void copyObj(SRC,DEST)(ref SRC src,ref DEST dest){ foreach (i, type; typeof(SRC.tupleof)) { __traits(getMember, dest原创 2015-01-29 07:36:51 · 1140 阅读 · 0 评论 -
JAVA实现的异步redis客户端
一个不一样的redis客户端,更注重吞吐量。原创 2014-06-05 07:51:37 · 8168 阅读 · 4 评论 -
log4j2 文件滚动扩展(基于行和时间的滚动)
目标:实现基于行和时间间隔的文件滚动。注:不是纯粹的行,而是log的次数,如果log一次是一行,就是行数(我log一次就是一行)。例如:单个文件超过10行滚动文件,如果超过10秒还不到10行,也滚动文件。mysql默认的组合策略达不到这个目标,他是两种策略的“或”,单一的行数到达限制,或者单一的时间间隔到达限制,都会滚动。在滚动后,两个策略单独重置,而不是一起都重置。原创 2013-05-09 10:43:17 · 8953 阅读 · 0 评论 -
更简单的框架(2)-Servlet的处理
在以前,如果别人让我帮他做个网站之类的,我一般不乐意。为什么?工作量大,就比如写个servlet,无论你用javax.servlet.HttpServlet还是用structs等框架来编写,都不轻松。用servlet吧,参数解析,繁重的编码量会搞得自己很郁闷。那好,用struts,用了struts以后好多了,参数直接给你映射到javabean里了,而且你也可以直接指定调用actionProces原创 2008-04-03 14:38:00 · 2734 阅读 · 2 评论 -
共享上网 网络故障的排除(终结篇)
这段时间接别人的共享宽带上网老不稳定,时时掉线。掉线后不能ping网关。重新做了两个水晶头,不行。但是发现能介绍网关发的arp包。猜想硬件应该没问题。 然后找了一个arp工具,能够扫到别人的电脑。进一步确定硬件的问题不大。猜想是本机tcp协议被破坏,从别人那下载一个tcp修复工具,copy过来,运行,修复。重新启动电脑。打开ie,ok连接恢复了。原创 2007-11-29 09:11:00 · 707 阅读 · 0 评论 -
更简单的框架
当亲朋好友让自己帮他们开发小型的web应用的时候,才发现自己的开发速度还不够快,手边所有的框架都显得那么的笨重,开发一个模块,你需要一堆的配置,重复n多的工作,还要面对众多未知的标签,很明显速度上不去啊.要是做单位的那种按部就班的正规开发还可以,但是,要你几天出一个好几个模块的东西,马上就感觉到了编码工作量庞大.怎样才能减少这种工作量,很值得我们思考.采用现在的框架,并不能把我的工作量原创 2008-02-02 17:50:00 · 904 阅读 · 1 评论 -
Ibatis 映射文件自动生成器
使用了一个多月的iBatis,大体觉得挺不错.速度灵活性都还可以.比起以前的完全手动编程,节约了大量的时间.但是,随着使用次数的增多,一个问题很快就暴露出来,那就是映射文件写起来太烦了,都是重复单调的打字.于是就写了一个小程序,来做这个映射的工作.先说一下原理:iBatis中的映射是很有规律的,最重要的是做好数据库字段到javabean属性的映射,而其他的地方改动很少. 这就好办了,我们采原创 2008-01-29 17:06:00 · 1660 阅读 · 0 评论 -
Java 理论与实践: 非阻塞算法简介
看吧,没有锁定!转载 2007-06-08 10:03:00 · 736 阅读 · 0 评论 -
追求代码质量: 用代码度量进行重构
用代码度量和提取方法模式进行目的明确的重构转载 2007-06-08 09:52:00 · 900 阅读 · 0 评论 -
[dlang](一)利用dub搭建vibe.d,hibernated,mysql开发环境
最近刚开始学习d的开发,D是一门系统开发语言,每一个程序员都应该学会一门系统开发语言。我之所以选择D,是因为我主要做服务器开发,应用开发,D有很高的开发效率。同时,服务器会要求有较高的执行效率,而D的另外一个优势就是编译后的二进制文件直接兼容C C++,所以调用C C++的开销基本可以忽略不计。最后一个很有吸引力的优势是:利用D,你可以选择使用GC,也可以绕过GC自己进行内存分配,也可以让一部分大对象不使用GC,而另外一部分生命周期较短的常用对象使用GC(如字符串),这样可以兼顾开发效率以及降低GC开销。原创 2015-01-28 23:14:23 · 2923 阅读 · 1 评论 -
[dlang](4)自定义的mysql orm工具
原本orm使用的hibernated,不知什么原因,一个周后,代码突然不能正常运行,自己查了半天,没解决。到dlang官方论坛,以及hibernated的官方,都没找到解决办法。无奈只能退回到使用mysql的客户端。但是现在处于开发初期,表结构的改变非常频繁,每次修改类、数据库,sql语句,想想都觉得太麻烦,自动动手,写了一个简单的orm工具;现在只支持从类生成表,修改类定义后自动修改原创 2015-02-12 15:20:51 · 1267 阅读 · 2 评论 -
[dlang]d语言开发环境安装:centos 7 下安装 mono-d
linux下的mono-d,有代码提示、debug,使用起来很方便,以下简洁安装过程:1.导入mono源 rpm --import "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF"yum-config-manager --add-原创 2015-04-28 14:01:12 · 2611 阅读 · 0 评论 -
java中把UTC时间戳(System.currentTimeMillis())转化为代表日期的整数
原文:java中把UTC时间戳(System.currentTimeMillis())转化为代表日期的整数背景在向数据库中存储日期时,很多时候习惯于存储一个整数,也就是java里的System.currentTimeMillis(),这个数字精确到了毫秒级。如果我们不想要这么精确呢,比如只想精确到小时、日期等等。利用Calendar可以轻松达到这个目的。方法原创 2017-06-20 22:09:22 · 9877 阅读 · 0 评论 -
解决跨域访问时的session保持问题
查看原文:解决跨域访问时的session保持问题关于这个问题我曾经写过一篇文章,用了一种类似“会话”的东西来保持会话。昨天在我加评论功能的时候,需要有验证码校验,防止有人用机器人发评论,突然发现会话在服务器端需要能够存储一些会话相关的数据。按照我当前的做法,需要实现一套完整的session机制,这个工作就比较繁琐了。于是想用cookie搭配url参数来解决,在实验过程中,发现ajax跨原创 2017-06-20 17:51:59 · 1663 阅读 · 0 评论 -
抽象单例:一种通用的单例
背景单例的一般写法,大家基本都会,这里特指具有以下特征的单例: 1.单例 2.需要延迟加载 3.线程安全 看一下这个类的写法(JAVA):public class A { private static final AtomicReference<A> ref = new AtomicReference<>(); private A() { } public sta原创 2016-03-04 17:19:14 · 3607 阅读 · 0 评论 -
[NIO]从300万到700万——dawn的协程优化
dawn的协程库,使用的是kilim,不过已经远非kilim的原有代码,主要保留了协程的两个基本原语,再往上层,已经全部被替换了。协程库,我学习过boost asio中的协程,也在我的机器上测试过单纯上下文切换的速度。这个速度在不同的机器之间没有可比性,因为彼此的cpu可能不同。但是在同一台机器上的不同库的对比,具有一定的参照性。我记得,当时asio协程单线程情况下,协程切原创 2015-07-03 21:29:21 · 1249 阅读 · 1 评论 -
[NIO]用dawn发送接收HTTP请求
HTTP协议的下层使用的是tcp,所以我们建立一个tcp连接就能发送接收http请求。dawn底层使用了nio,但是经过dawn的封装之后,我们在编写代码的时候,就和使用普通的阻塞式socket一样,不需要关注nio的api。可以把我们的精力放在业务逻辑的处理上。举例如下,下例的功能就是取回baidu首页:package zhmt.dawn.nio;import java.nio.原创 2015-07-01 06:39:03 · 1266 阅读 · 0 评论 -
【NIO】dawn中buffer的使用
在网络编程中,buffer是用来把应用程序的数据发送到网络上的中转站,它的重要行不言而喻。提到buffer就不能不说零拷贝什么的,buffer的内存管理什么的,在dawn中,基于directbuffer重新实现了一个可以自动扩展的零拷贝buffer。它的原理就是一个内存块的链表,数据都是在尾端添加,从头部移出,或者在中间获取、设置。所有的位置信息都是直接通过计算获取,所以,保证了各种情况的存取效率原创 2015-06-30 06:40:08 · 947 阅读 · 1 评论 -
[nio]dawn开发环境配置
为什么dawn需要特殊的开发配置?dawn使用的是kilim协程,在编码结束后需要进行代码织入。试想,如果每次写完程序,运行代码之前都手工运行一次织入程序,是多么蛋疼的一件事情。更糟糕的是,如果你没掌握织入的技巧,可能就失去了在eclipse调试java代码的机会,开发效率会大大降低。所以,我们可以编写一段ant脚本,让eclipse帮我们自动完成织入。步骤我们就拿dawn这个项目做为原创 2015-06-27 06:35:45 · 1209 阅读 · 0 评论 -
[nio]dawn的基本概念
1.dawn是单线程的:为什么单线程?现实中很多程序都是单线程的,比如redis,memcache,nodejs,mmorpg服务器。。。。。。采用单线程有两大好处,首先,不需要使用锁,逻辑更容易理解,不易出错,其次,减少了切换线程时的调度成本。2.什么是Taskdawn中使用了Task,这其实是kilim中的协程,协程最基本的功能是挂起和恢复,这点和线程是一致的。所有的Tas原创 2015-06-26 07:58:33 · 1006 阅读 · 0 评论 -
【NIO】更简单的nio使用方式
接触nio也有好几年了,最开始摸不着头脑,资料很少,网上的资料都是翻来覆去的抄袭,基本上对于自己的学习没有大帮助。后来遇到了xsocket,觉得用起来还可以,挺方便,api也很简洁。不过这个库的用户不多,后来作者也停止了开发。然后就是mina netty,这些不用说,了解nio的人都知道它们。不过想用好它们也不是那么容易。里面有各种回调,各种future,当你在处理网络事件原创 2015-06-22 20:47:26 · 4015 阅读 · 4 评论 -
中国IT从业人员心理特征研究报告 解读IT 人才选拔
如下图: 图1四类岗位职业核心素质与岗位核心素质这12项职业核心素质根据重要性和提及率平均数指标依次为:沟通能力、团队合作、学习能力、责任感、问题解决能力、诚信、主动性、理解能力、应变能力、抗挫抗压能力、show_ads_zone(13); 近年来,全球IT行业成长迅速,IT人才竞争也日趋激烈。IT行业从业人员应该具备哪些胜任素质?这些素质之间的关系怎样?如何转载 2007-06-06 08:59:00 · 2523 阅读 · 0 评论 -
追求代码质量: 驯服复杂的冗长代码
测量代码是否冗长的工具和度量转载 2007-06-08 09:54:00 · 1751 阅读 · 0 评论 -
追求代码质量: 用 JUnitPerf 进行性能测试
监控可伸缩性和性能的两个简单测试转载 2007-06-08 09:52:00 · 658 阅读 · 0 评论 -
我国首次发布IT从业人员心理特征研究报告
--全面解读IT行业工作岗位心理素质要求2007年5月25日(北京) 中国第一个全面解读IT行业工作岗位心理素质要求及心理特征与工作绩效之间关系的研究报告——《中国IT从业人员心理特征研究报告》今天在北京正式公布。这是迄今为止国内专门针对IT行业进行的第一个心理学研究项目,该项研究成果不仅填补了国内IT行业人才心理素质研究的空白,同时对于国内IT行业更加科学地选拔人才具有重要的指导作用。中国转载 2007-05-29 09:01:00 · 867 阅读 · 0 评论 -
RIA
. RIA的优势 RIA 具有的桌面应用程序的特点包括:在消息确认和格式编排方面提供互动用户界面;在无刷新页面之下提供快捷的界面响应时间;提供通用的用户界面特性如拖放式(drag and drop)以及在线和离线操作能力。RIA具有的Web应用程序的特点包括如:立即布署、跨平台、采用逐步下载来检索内容和数据以及可以充分利用被广泛采纳的互联网标准。RIA具有通信的特点则包括实时互动的声音和图像。 客转载 2007-05-28 17:28:00 · 518 阅读 · 0 评论 -
AOP
AOP转载 2007-05-24 17:39:00 · 537 阅读 · 0 评论 -
Velocity用户手册
1、Velocity是什么?Velocity是一个基于java的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象。当Velocity应用于web开发时,界面设计人员可以和java程序开发人员同步开发一个遵循MVC架构的web站点,也就是说,页面设计人员可以只关注页面的显示效果,而由java程序开发人员转载 2007-05-24 10:59:00 · 4228 阅读 · 0 评论 -
Java进入实时领域
在Java One上Sun最终宣布了JSR-1(2006年7月最终定稿的Java实时规范)第一个实现的发布。根据JSR的定义,实时规范是用来支持“在线程调度,同步额外开支(Synchronization Overhead),锁队列顺序,类的初始化,最大中断响应反应时间以及垃圾回收特性等各个方面需要很强的确定性保证和控制能力的”系统。Sun的这个实现,又被称为Sun Java实时系统(Real-Ti转载 2007-05-24 09:04:00 · 870 阅读 · 0 评论 -
CEE功能概述
CollabNet总体优势CollabNet是随需应变的软件开发协作网络的标准。通过将人员、思想、流程以及合作伙伴整合在一个协作的开发环境中,CollabNet的软件和服务可以帮助分布的企业在有效降低成本的同时大大提高软件开发的效率和质量。CollabNet的旗舰产品CollabNet Enterprise Edition (简称CEE)为开发团队(无论是软件开发还是系统开发)提供了一个跨越开转载 2007-05-24 08:57:00 · 1503 阅读 · 0 评论 -
一个不错的网站
http://www.terabit.com.au/原创 2007-05-23 12:09:00 · 801 阅读 · 0 评论 -
Patterns In ACE
学习ACE过程中见到的一些设计模式和概念,其中很多模式在GOF的设计模式书中并没有提到,在开发网络程序、处理并发的时候,非常有用。1. Design Pattern - 设计模式设计模式为提炼“软件体系中的组件”或“这些组件之间的关系”提供了方案。它描述一种常见的通信组件结构,以解决某一特定环境下普遍存在的设计问题。2. Acceptor-Connector Pattern - 接受器-连接转载 2007-05-25 17:57:00 · 669 阅读 · 0 评论 -
velocity的官方地址
想要得到很详细的文档,可以下载engine,上面带有源码和doc。 http://velocity.apache.org/原创 2007-05-24 11:36:00 · 705 阅读 · 0 评论 -
Velocity脚本摘要
1、声明:#set ($var=XXX)左边可以是以下的内容Variable reference String literal Property reference Method reference Number literal #set ($i=1) ArrayLis转载 2007-05-24 11:03:00 · 760 阅读 · 0 评论 -
实时 Java,第 3 部分: 线程化和同步
Java 实时规范中的线程化和同步考虑转载 2007-05-29 09:08:00 · 1186 阅读 · 0 评论 -
阿蒙:象老板那样思考
有些专家提倡,如果你要想成为怎么样的人,那么先要学会用这种人的方式进行思考与行动,比如偶在打工的时候就梦想着成为一个boss,于是偶就特别注意观察作为一个boss是如何思维以及经常有什么样的行为,幸运地,终于有一天我如愿以偿,也发现往昔的观察与模仿亦有一定的启发与帮助。 写这一篇文章是阅读《读者》的一个收获,前两三年,《读者》一直是我的厕所读物,现在我的厕所读物尽管已升级到《财富》《福布斯转载 2007-05-29 17:00:00 · 531 阅读 · 0 评论 -
Silverlight、JavaFX、Flex/Flash技术比较
对Web开发人员,过去的一段时间绝对是难忘的。因为现在在RIA开发平台领域,除了Adobe业已推出许久的Apollo和Flex,微软正式推出了Silverlight产品,帮助开发人员创建丰富的可交互Web应用。在刚结束的JavaOne大会上,Sun公司首席技术官Bob Brewin又宣布推出基于Java平台的JavaFX,目标同样是直指RIA开发。每一个平台都有自己忠实的拥泵,但是这些技术之间的区转载 2007-05-30 12:23:00 · 755 阅读 · 0 评论 -
追求代码质量: 软件架构的代码质量
使用耦合度量来支持系统架构转载 2007-06-08 09:51:00 · 763 阅读 · 0 评论 -
关于异常的争论
关于在 Java 语言中使用异常的大多数建议都认为,在确信异常可以被捕获的任何情况下,应该优先使用检查型异常。语言设计(编译器强制您在方法签名中列出可能被抛出的所有检查型异常)以及早期关于样式和用法的著作都支持该建议。最近,几位著名的作者已经开始认为非检查型异常在优秀的 Java 类设计中有着比以前所认为的更为重要的地位。在本文中,Brian Goetz 考察了关于使用非检查型异常的优缺点。请在附转载 2007-06-07 12:11:00 · 716 阅读 · 0 评论