摘要: 策略模式:定义了算法族,分别封装起来,让他们之间可以相互替换,次模式让算法的 变化独立于使用算法的客户。point1:针对接口编程,而不是针对实现编程point2:多用组合,少用继承point3:使用委托“delegate”简单需求定义:这是一个RPG游戏,游戏中提供多种人物角色供你选择,每个角色都有自己特定的武器。角色:骑士(长矛),剑客(长剑),刺客(匕首)使用设计模式:定义基础角色类: 1 package com.pattern.strategypattern.character; 2 3 import com.pattern.strategypattern.behavior.Figh. 阅读全文
posted @ 2013-03-04 09:52 RichardHu 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 在本科我们做项目的时候总是会碰到这样的一种需求:当前用户查看各自相册列表,相册显示10张照片(为了方便讨论如何优化,这里只讨论当前一个用户的一个相册),在相片的下方显示该相片的评论数。好了,这种类似需求颇为常见,大部分的人都会采用下面这种非常合理的做法。分两步进行:(1)select photo_id,photo_title,photo_url fromphoto whereuser_id = ? limit 10 选出当前用户第一页相册信息(2)对于(1)的结果,对于photo_id进行循环操作 select count(*) from photo_comment where photo_i 阅读全文
posted @ 2013-03-03 09:06 RichardHu 阅读(182) 评论(0) 推荐(0) 编辑
摘要: Mysql的系统架构可以简单的分成两个层次(1)sql Layer(2)Storage Engine Layer对于Mysql我们知道他支持多种存储引擎,常见的哟MyISAM,InnoDB等等我们来简单看一下Sql Layer中都有那些模块,先简单的介绍一下各个模块,再通过一个流程图来简单说明一下mysql系统架构下各个模块是如何协同工作的1.初始化模块buffer,cache,系统变量2.核心api数据结构,特殊算法,str处理,数字处理,文件I/O,格式化输出,MEM cntl3.网络交互模块底层网络交互模块抽象出网络底层数据的发送和接收所需要的api,被其他模块调用4.Client&am 阅读全文
posted @ 2013-03-01 10:46 RichardHu 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 简介:后缀树(also calledPAT treeor, in an earlier form,position tree)是一种高级数据结构,能够快速解决很多字符串的问题,相应的也有后缀数组blabla。后缀树提出的目的是用来支持有效的字符串匹配和查询。定义:一个长度为n的字符串S,他的后缀树定义如下:1.从根到叶的路径与S的后缀一一对应2.每条边都是一个非空字符串。3.所有的内部节点(除了root节点)都有至少两个child节点。由于并非所有的字符串都存在一颗这样的树,因此S通常用一个终止符号进行填充如$;这保证了没有一个后缀是另外一个的前缀。实例:字符串banana$的后缀树的产生st 阅读全文
posted @ 2011-12-26 20:29 RichardHu 阅读(257) 评论(0) 推荐(0) 编辑
摘要: /etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置./etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取 阅读全文
posted @ 2011-12-19 13:09 RichardHu 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 我们在之前的文章中已经说明了怎样进行ssh免密钥登录,现在详细的来说一下Hadoop的详细部署。一、硬件、软件准备三台PC机,Ubuntu10.04,Java环境二、安装过程安装ssh、设置免密码登录$ sudo apt-get install ssh$ sudo apt-get install rsync这个之前我们已经说过如何使用ssh免密码登录,这样,我们才能使用Hadoop脚本管理远端Hadoop远端的守护进程。安装Hadoophadoop包含三个部分:Hadoop Common,HDFS,Hadoop MapReduce(1)下载Hadoop稳定的发行版本。下载地址http://ha 阅读全文
posted @ 2011-10-14 04:02 RichardHu 阅读(3854) 评论(0) 推荐(0) 编辑
摘要: Spring security是基于spring的一个用来进行身份验证与授权的框架,它提供了一套Web应用安全性的完整的解决方案。我先简单的谈一下,用Spring security这个框架的好处,虽然说我只在两个项目中应用了Spring Security,但是我觉得好处还是显而易见的:1.提供了一套可行的便捷的权限框架。2.提供了大量的身份验证,不需要手动编写过多的验证代码,节约了很多的开发时间与精力。3.提供了用户角色的判断的功能。4.提供了很多常见的配置,login-form,rember-me,session过期等等的控制。当然对于一个非常复杂的权限管理系统,Spring Securit 阅读全文
posted @ 2011-10-10 03:23 RichardHu 阅读(1939) 评论(0) 推荐(0) 编辑
摘要: 执行以下命令即可关闭触摸板synclient touchpadoff=1执行一下命令可以打开触摸板synclient touchpadoff=0 阅读全文
posted @ 2011-10-01 07:38 RichardHu 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 什么是ssh-agentssh-agent(专用密钥高速缓存),它是为了RSA和DSA密钥而设计的特殊程序。ssh-agetn是一个长时间持续运行的daemon(守护进程),它的作用就是对解密的专用密钥进行高速缓存。ssh包含的内建支持允许它和ssh-agent通信,这样运行ssh不必每次连接的时候都提示您要密码才能获取解密用的专用密钥。对于ssh-agent,使用ssh-add把专用密钥加入到ssh-agent的专用缓存中。这样ssh就可以直接从ssh-agent中获取到专用密钥,就不会再提示你输入密码短语。ssh-agent的使用在ssh-agent启动的时候,在脱离shell,在后台运行 阅读全文
posted @ 2011-10-01 07:36 RichardHu 阅读(473) 评论(0) 推荐(0) 编辑
摘要: 在Hadoop的配置过程中涉及到ssh免密钥登录的问题,所以我们对于ssh的密钥管理需要有一定的清晰的认识。网络上提供的很多方法对于大家来说就是彻头彻尾的误导,今天我就研究一下免密钥的ssh登录的方法。OpenSSH(free ssh实现)具有一个非常诱人的特性就是它能够给予一对互补的数字式密钥RSA和DSA认证协议来认证用户。RSA和DSA认证承诺不比提供密钥就能够同远程系统建立连接,这也是它最大的魅力之一,虽然说很多的用户很轻松的实现了免密钥登录,但是与此同时,开了一个很大的安全漏洞。什么是RSA/DSA认证?ssh客户程序可以用于登录到远程的机器,所以只需要远程机器正在运行sshd,即是 阅读全文
posted @ 2011-09-28 02:11 RichardHu 阅读(973) 评论(0) 推荐(0) 编辑