Month: November 2011

GBK里的字符在UNICODE里都有吗?

答案:是的。 一开始有些字在Unicode里没有,后来Unicode版本升级后把它们加进去了。 见wikipedia: 事实上比较起来, GBK 定义之字符较 CP936 多出95字(15个非汉字及80个汉字),皆为其时未收入 ISO 10646 / Unicode 之符号:非汉字包括异体字符号[2]、十二个表意文字描述字符(Ideographic Description Characters)[3]及 GB 5007.1-85《信息交换用汉字 24×24 点阵字模集》附录对 GB 2312 增加,但 Unicode 未收之拼音符号“ḿ”和“ǹ”[4][5];汉字包括未收入 ISO 10646 的《简化字总表》汉字52个、《康熙字典》及《辞海》汉字部件28个[4]。CP936中的这95字分配到了Unicode的私有区域[6][7],现已全部收于新版 Unicode。 [编辑]

似乎理解“异步”对性能的重要作用了

以前看到别人说通过异步可以提高性能总觉得无法理解。 如果一个业务本身是同步的,即使把系统的通信方式做成异步,发消息的系统不是还要等处理消息的系统弄完自己才能继续吗? 总的响应时间能有什么变化? 最近看了听了一些东西,突然明白了: 异步方式并不能直接减少单个业务的处理时间,但它可以减少无谓的阻塞,从而把浪费了的等待时间用起来,总体上提高TPS后,单个业务的处理时间也就会快起来。 比如说,你如果发一个同步请求,如果请求要持续一段时间(如长时间I/O),那处理方就得阻塞着来等你发完; 处理方应答时,如果应答要持续一段时间,那你这个请求方也得阻塞着。这浪费太多时间了,如果改成异步就不用了: 你把请求发到队列里,发的时候对方可以处理别的事情。

版本化的作用

还没想清楚,目前能想到的、所知道的有:     1. 不同客户端有权选择不同的版本,你不能强制每个客户都和你一起升级   2. 可以用来区别生产环境、测试环境、开发环境等,这样它们可以共享一套服务治理平台,如Maven或SOA服务治理平台

例示MS Project 2007的使用

下面以一个完整的例子,介绍MS Project 2007的使用。它基本覆盖了Project在项目管理中的典型使用(成本相关除外) 1. 项目信息设置   a.创建一个Project,命名为“经典软件项目.mpp”   b.修改日历: 工具->更改工作时间,调整一下国庆、元旦等相关的节假日 2.  创建资源(干活的人)    a.视图->资源工作表,创建两个资源,Jack 和 Jones   b.把Jones的最大单位置为50%,因为我们假定她只能投入50%的日常时间到这个项目中来 3. 创建任务列表   a.显示顶层的摘要任务和大纲数字: 先切换到甘特图,然后工具->选项->“视图”选项卡,勾选“显示项目摘要任务”和“显示大纲数字”   b.加入“工时”列   c.在摘要任务下依次添加四个任务及它们的子任务,设定工期,分配资源,并根据任务间的逻辑关系(先不考虑资源竞争问题)设定它们的依赖关系。        如下图:       d.观察一下3.1,你会发现 工时8 = 工期2天 * 8小时 * Jones的50%    4. 调配资源    你会发现Jack在18号既要开发注册模块,又要开发登录模块,这不合情理。(可以切换到“资源工作表”视图看看报警信息)     你可以把注册模块变成登录模块的后续任务,但这并不灵活,因为注册与登录本没有逻辑先后关系,强行设定一个逻辑关系后,一旦来了个新资源,为了让他跟Jack一个做登录一个做注册,就得去掉这种逻辑关系。     正确的做法是让Project自动帮你调配资源。点击:工具->调配资源,选择“自动”(每次调整任务后都不用再手工调配了),“调配顺序”设为“只按标识号”(为什么要用这个?试试别的选项就知道了),去选下面四个选项,点“开始调配” 5. 准备跟踪    计划做到这里就差不多了。项目开始后的追踪就是用实际执行情况跟原计划对比,因此有必要把原计划保存为“比较基准”(又称基线)。    工具  -> 跟踪 -> 设置比较基准    …

例示MS Project 2007的使用 Read More »

svn的branching和merging

典型的用法:   1. 从trunk分支复制一个branch分支:   svn copy file:///home/kent/svntutorial/trunk file:///home/kent/svntutorial/branches/ firstBranch     2. 把trunk分支的改动同步到branch分支   cd firstBranch的working-copy目录   svn merge file:///home/kent/svntutorial/trunk   3. 把branch分支的改动同步回trunk分支    cd trunk的working-copy目录    svn –reintegrate merge file:///home/kent/svntutorial/branches/ firstBranch   4. branch分支同步回trunk后应该停止使用,最好把它删掉。  

用四组命令学会最基本的svn操作

玩之前先明确一点:服务端叫repository, 客户端叫working copy ##创建repository 1. svnadmin create /home/kent/svntutorial ##创建working copy 2. mkdir /home/kent/svnclient cd /home/kent/svnclient svn checkout file:///home/kent/svntutorial/ ##进入创建一个叫作trunk的目录 3. cd svntutorial mkdir trunk ##创建一个文件并添加到svn repository 4. cd trunk vi 1st.txt ##创建一个本地文件 svn add 1st.txt ##加到svn svn status ##查看所有等待提交的文件 svn commit ##提交文件

反向代理的基本概念

http://en.wikipedia.org/wiki/Reverse_proxy Reverse Proxy(反向代理):   1. 它是一个Proxy:转发客户端的请求和服务端的响应   2. 为什么说Reverse? Forward Proxy一般是处在Client和Server之间,而Reverse Proxy则和Server放在一起,一般是同一个局域网内。比如apache httpd和tomcat就部署在一起。 作用:本质上来说,反向代理是一种“Indirection”。作为系统设计的核心理念之一,indirection可以起到很多种作用: 1. 安全:   a.屏蔽Server的特性. 如果黑客不知道server是tomcat还是php,就无法采取专门针对特定服务器类型的攻击。   b.防火墙。Client无法直接访问Server,无法直接进行攻击。 2. 性能:   a.一个Reverse Proxy下面可以挂多个Server,实现集群和load balancing.   b.http协议相关的Cache. Apache httpd就很擅长这一点。   c.压缩response (不过很多Server自己也可以做这种事)   d.替server分担一些请求,尤其是静态内容. httpd比tomcat处理静态内容的能力更高(原因不详) 3. 功能:可以干些URL重写之类的事情 4. 结构:对外提供唯一的服务入口,使proxy+多台server组成的系统在Internet上仍表现得像单台   a. 可以只用一个外部IP   b. 可以只用一个域名,一个SSL证书 (如果你的域名本身可以对应多个IP,也不需要reverse proxy帮忙)    两个最流行的反向代理:Apache Httpd V.S. nginx (念作engine x) …

反向代理的基本概念 Read More »