摘要: 目标: 1、命令行用maven进行scala项目构建 2、产生eclipse项目文件 pom.xml文件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <group 阅读全文
posted @ 2011-12-24 11:21 ChaunceyHao 阅读(1233) 评论(0) 推荐(0)
摘要: 把家里的主机从AMD平台转到Intel平台之后,就一直想在上面装一个Snow Leopard来使用,虽然曾经拥有过一台最早的Intel MacBook,不过已经有一段时间没有使用Mac OS了。坦白说,三大操作系统(Windows、Linux、Mac OS)里面,Mac OS同时拥有对程序员良好的*NIX内核,比美Windows的操作界面(甚至更好),可能是最好的开发平台。 Mac的笔记本不算太贵,个人比较推荐,至于台式机部分,Mac mini有点太弱(不过外观相当好),iMac也相当划算(前提是你还没买显示器),我已经有了自己的主机,所以打算在上面装黑苹果。不过,如果你想用 Mac O... 阅读全文
posted @ 2011-12-24 11:19 ChaunceyHao 阅读(282) 评论(0) 推荐(0)
摘要: 优化指南 MINA默认配置的性能并不是很高的,部分原因是MINA目前还保留初期版本的架构,另外一个原因是因为JVM的发展。 首先我们关闭默认的ThreadModel设置 IoAcceptor acceptor = ...; IoServiceConfig acceptorConfig = acceptor.getDefaultConfig(); acceptorConfig.setThreadModel(ThreadModel.MANUAL); ThreadModel是一个很简单的线程实现,用于IoService。但是它实在太弱,以至于在并发环境产生大量问题。在MINA 2.0中,Thre.. 阅读全文
posted @ 2011-12-24 11:14 ChaunceyHao 阅读(708) 评论(0) 推荐(0)
摘要: MINA架构 这里,我借用了一张Trustin Lee在Asia 2006的ppt里面的图片来介绍MINA的架构。 (图略) Remote Peer就是客户端,而下方的框是MINA的主要结构,各个框之间的箭头代表数据流向。 大家可以对比刚刚的例子来看这个架构图,IoService就是整个MINA的入口,负责底层的IO操作,客户端发过来的消息就是由它处理。刚刚我们使用 的IoAcceptor就是一个IoService,之所以抽象成IoService,是因为MINA用同样的架构来处理服务器和客户端编 程,IoService的另一个子类就是IoConnector,用于客户端。不过根据笔者的使用经验, 阅读全文
posted @ 2011-12-24 11:13 ChaunceyHao 阅读(637) 评论(0) 推荐(0)
摘要: 一个简单的例子 MINA使用非常简单,笔者以前做过一段时间传统的Java Socket开发,不过一直对Java NIO不是很理解,但是MINA很快就上手了,MINA封装了NIO繁琐的部分,使你可以更专注于业务功能实现。话不多说,让我们来看一个简单的例子,一 个很常见的例子,时间服务器。(Article by Sparkle) 我们的实现目标是一个能响应多个客户端的请求,然后返回服务器当前的系统时间的功能。传统的Java Socket程序,我们需要每accept一个客户端连接,就创建一个新的线程来响应,这会令到系统整体负载能力有较大的限制,而且我们必须手工编写连接 管理等代码。让我们来看看M.. 阅读全文
posted @ 2011-12-24 11:12 ChaunceyHao 阅读(339) 评论(0) 推荐(0)
摘要: 前言 MINA是Trustin Lee最新制作的Java通讯框架。通讯框架的主要作用是封装底层IO操作,提供高级的操作API。比较出名的通讯框架有C++的ACE、Python的 Twisted,而Java的通讯框架还有QuickServer、Netty2、Cindy、Grizzly等。 2004年6月,Trustin Lee发布了一个通讯框架Netty2,是Java界第一个事件模型架构的通讯框架,Cindy也从中借鉴了不少思想。由于Netty2的架构不是很 好,Trustin Lee在2004年底加入Apache Directory组之后,重写了整个框架,取名为MINA。MINA是一个基于.. 阅读全文
posted @ 2011-12-24 11:08 ChaunceyHao 阅读(326) 评论(0) 推荐(0)
摘要: Git是什么? Git是一个分布式版本控制系统(Distributed Version Control System,简称 DVCS)。 Git与svn有什么关系? 对于大多数人而言,或许对svn更为熟悉,svn属于集中化的版本控制系统( Centralized Version Control Systems,简称 CVCS ),在CVCS中会有一个对版本进行集中管理的服务器,协同工作的人都通过客户端连接到该服务器,检出最新文件或提交更新。CVCS在协同开发中有两个比较主要的缺点: 如遇服务器宕机,整个协同工作无法进行,因为此时无法进行代码更新提交,当然也不能checkout最新代码如果服务器 阅读全文
posted @ 2011-12-24 10:50 ChaunceyHao 阅读(797) 评论(0) 推荐(0)
摘要: 一个数组arr0,长度任意,删除其中某个元素后得到数组arr,求删除的元素 最容易想到的方法:顺序查找,两个循环 function findItem1(arr0,arr){ /* arr0:原始数组 arr: 随机去除某一个元素后的数组 */ if(!arr0||arr0.length<1||arr0.length-arr.length!=1) return 'error'; if(arr0.length==1) return arr0[0]; for(var i=0,l=arr0.length;i<l;i++){ ... 阅读全文
posted @ 2011-12-24 10:50 ChaunceyHao 阅读(300) 评论(0) 推荐(0)