How to use compass

Compass adjusts the way partials are imported. It allows importing components based solely on their name, without specifying the path.

Before you can do @import 'compass';, you should:

Install Compass as a Ruby gem:

gem install compass

After that, you should use Compass’s own command line tool to compile your SASS code:

cd path/to/your/project/
compass compile

Note that Compass reqiures a configuration file called config.rb. You should create it for Compass to work.

[Read More]

java/Adding Unmanaged Dependencies to a Maven Project

Table of Contents

Some Java applications have dependencies that aren’t available in a public or private Maven repository (the latter of which can be accessed using a custom settings.xml file). This guide shows you how to add these unmanaged libraries in your application project and tell Maven how to find them.

[Read More]

java/maven/package a jar using mvn command

  • Add maven-assembly-plugin to POM.xml
<build>
  <plugins>
    <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
      <configuration>
        <archive>
          <manifest>
            <mainClass>YOUR MAIN CLASS NAME @ HERE</mainClass>
          </manifest>
        </archive>
        <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
      </configuration>
    </plugin>
  </plugins>
</build>
  • change YOUR MAIN CLASS NAME @ HERE as real in your POM.xml file

  • run mvn clean compile assembly:single

mvn clean compile assembly:single

javascript/top

在应用有frameset或者iframe的页面时

  • parent - 父窗口
  • top - 最顶级父窗口(有的窗口中套了好几层frameset或者iframe)
  • self - 当前窗口
  • opener - 用open方法打开当前窗口的那个窗口
  • window.self

功能:是对当前窗口自身的引用。它和window属性是等价的。 语法:window.self 注:window、self、window.self是等价的。

  • window.top

功能:返回顶层窗口,即浏览器窗口。 语法:window.top 注:如果窗口本身就是顶层窗口,top属性返回的是对自身的引用。

window.parent

功能:返回父窗口。 语法:window.parent 注:如果窗口本身是顶层窗口,parent属性返回的是对自身的引用。 在框架网页中,一般父窗口就是顶层窗口,但如果框架中还有框架,父窗口和顶层窗口就不一定相同了。

判断当前窗口是否在一个框架中:

var b = window.top!=window.self;
document.write( "当前窗口是否在一个框架中:"+b );

你应当将框架视为窗口中的不同区域,框架是浏览器窗口中特定的部分。 一个浏览器窗口可以根据你的需要分成任意多的框架,一个单个的框架也可以分成其它多个框架,即所谓的嵌套框架。

java/Getting a random number

  • 方法1: Using Math.random()
int random = (int)(Math.random() * 50 + 1);

** 解释

Math.random() 将会返回 0.0 到 0.999之前的随机数. 所以,乘以50变成0.0到49.95,再加1,变成1.0到50.95,取整,就会得到1到50.

  • 方法2: Using Random 类
int max = 50, min = 1;
Random rand = new Random();
int value = rand.nextInt((max - min) + 1)) + min;

java/springmvc/inject service to controller

@Controller
public class UserManagement{
	@Autowired
	//inject a interface instead of implement class
	private IUserManagementRepository userRepo;
	//...
}

if class AdminManagement and UserManagement, all of them implement interface IUserManagementRepository, like this,

@Repository
public class AdminManagement implements IUserManagementRepository{
	//...
}

@Repository
public class UserManagement implements IUserManagementRepository{
	//...
}

change to:

@Repository("admin")
public class AdminManagement implements IUserManagementRepository{
	//...
}

@Repository("user")
public class UserManagement implements IUserManagementRepository{
	//...
}
@Controller
public class UserManagement{
	@Autowired
	@Qualifier("user")
	//inject a interface instead of implement class
	private IUserManagementRepository userRepo;
	//...
}

java/POJO VO BO DAO DTO PO

PO(persistant object) 持久对象 在o/r 映射的时候出现的概念,如果没有o/r映射,就没有这个概念存在了.通常对应数据模型(数据库),本身还有部分业务逻辑的处理.可以看成是与数据库中的表相映射的java对象.最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合.PO中应该不包含任何对数据库的操作.

VO(value object) 值对象 通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已.但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.个人觉得同DTO(数据传输对象),在web上传递.

BO(business object) 业务对象 从业务模型的角度看,见UML元件领域模型中的领域对象.封装业务逻辑的java对象,通过调用DAO方法,结合PO,VO进行业务操作.

POJO(plain ordinary java object) 简单无规则java对象 纯 的传统意义的java对象.就是说在一些Object/Relation Mapping工具中,能够做到维护数据库表记录的persisent object完全是一个符合Java Bean规范的纯Java对象,没有增加别的属性和方法.我的理解就是最基本的Java Bean,只有属性字段及setter和getter方法!.

DAO(data access object) 数据访问对象 是sun的一个标准j2ee设计模式,这个模式中有个接口就是DAO,它负责持久层的操作.为业务层提供接口.此对象用于访问数据库.通常和PO结合使用,DAO中包含了各种数据库的操作方法.通过它的方法,结合PO对数据库进行相关的操作.夹在业务逻辑与数据库资源中间.配合VO, 提供数据库的CRUD操作…

DTO (Data Transfer Object)数据传输对象 主要用于远程调用等需要大量传输对象的地方。 比如我们一张表有100个字段,那么对应的PO就有100个属性。 但是我们界面上只要显示10个字段, 客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端, 这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO

O/R Mapper 对象/关系 映射 定义好所有的mapping之后,这个O/R Mapper可以帮我们做很多的工作.通过这些mappings,这个O/R Mapper可以生成所有的关于对象保存,删除,读取的SQL语句,我们不再需要写那么多行的DAL代码了. 实体Model(实体模式) DAL(数据访问层) IDAL(接口层) DALFactory(类工厂) BLL(业务逻辑层) BOF Business Object Framework 业务对象框架 SOA Service Orient Architecture 面向服务的设计 EMF Eclipse Model Framework Eclipse建模框架

html/Using EMMET build html and css and js

form#form1>(div>label[for=“s$”]{lable$}+select[name=“s$”][id=“s$”]>option[value=$]{item$}*10)*5+(div>label[for=“input-$”]{lable$}+input[type=“text”][name=“input-$”][id=“input-$”])*10

js/How to select text of a range?

function selectText(containerid) {
	if (document.selection) {
		var range = document.body.createTextRange();
		range.moveToElementText(document.getElementById(containerid));
		range.select();
	} else if (window.getSelection) {
		var range = document.createRange();
		range.selectNode(document.getElementById(containerid));
		window.getSelection().addRange(range);
	}
}