SVN 中的 truck、branch 和 tag

2015-07-29 SVN

问题

使用 SVN 进行项目的版本管理时, truck(主干)、branch(分支) 和 tag(标签) 是如何区别?何时使用他们?



RHEL\CentOS 7 下 MySQL 连接数被限制为214个

2015-07-09 CentOS MySQL

问题

项目中,由于连接数过多,提示“Too many connections”,需要增加连接数。我在 /etc/my.cnf中修改了

max_connections = 2000

但是, 实际连接数一直被限制在 214

mysql> show variables like "max_connections";
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 214   |
+-----------------+-------+
1 row in set

MySQL max_connections 总是 214 。不能设大了?




Oracle VM VirtualBox 安装和使用

2015-06-01 VirtualBox

VirtualBox 是一款开源虚拟机软件。VirtualBox 是由德国 Innotek 公司开发,由Sun Microsystems 公司出品的软件,使用 Qt 编写,在 Sun 被 Oracle 收购后正式更名成 Oracle VM VirtualBox。Innotek 以 GNU General Public License (GPL) 释出 VirtualBox,并提供二进制版本及 OSE 版本的代码。使用者可以在VirtualBox上安装并且执行 Solaris、Windows、DOS、Linux、OS/2 Warp、BSD 等系统作为客户端操作系统。

VirtualBox 号称是最强的免费虚拟机软件,它不仅具有丰富的特色,而且性能也很优异!它简单易用,可虚拟的系统包括 Windows(从 Windows 3.1 到 Windows8、Windows Server 2012,所有的 Windows 系统都支持)、Mac OS X(32bit和64bit都支持)、Linux(2.4和2.6)、OpenBSD、Solaris、IBM OS2 甚至 Android 4.0 系统等操作系统!使用者可以在 VirtualBox 上安装并且运行上述的这些操作系统! 与同性质的 VMware 及 Virtual PC 比较下,VirtualBox 独到之处包括远端桌面协定(RDP)、iSCSI 及 USB 的支持,VirtualBox 在客户端操作系统上已可以支持USB 2.0的硬件装置,不过要安装 VirtualBox Extension Pack。


Webmin 安装和使用

2015-05-29 Webmin

Webmin 是目前功能最强大的基于 Web 的 Unix 系统管理工具。管理员通过浏览器访问Webmin 的各种管理功能并完成相应的管理动作。目前 Webmin 支持绝大多数的Unix系统,这些系统除了各种版本的 linux 以外还包括:AIX、HPUX、Solaris、Unixware、Irix 和 FreeBSD 等。



Linux 常用命令

2015-05-21 Linux

性能分析

vmstat

虚拟内存统计

用法

Usage:
 vmstat [options] [delay [count]]

Options:
 -a, --active           active/inactive memory
 -f, --forks            number of forks since boot
 -m, --slabs            slabinfo
 -n, --one-header       do not redisplay header
 -s, --stats            event counter statistics
 -d, --disk             disk statistics
 -D, --disk-sum         summarize disk statistics
 -p, --partition <dev>  partition specific statistics
 -S, --unit <char>      define display unit
 -w, --wide             wide output
 -t, --timestamp        show timestamp

 -h, --help     display this help and exit
 -V, --version  output version information and exit





MySQL 使用教程

2015-05-10 MySQL

关于 MySQL

MySQL 是最流行的开源数据库。

本文简明的讲解了 MySQL 如何下载安装到使用的整个过程。


Help&Manual 使用教程

2015-05-08 Help&Manual

关于 Help&Manual

Help&Manual 一个所见即所得的帮助文件制作工具,支持打印功能。还可以用来制作非常专业的使用手册、HTML页面及RTF、PDF 格式的文件。值得一提的是,它的OLE链接功能十分强大,支持26种文件格式,而且还支持未定义的某些文件格式的文本、图形、声音、动画的链接,真可谓无所不能。

该软件现在能够完美支持中文。

注意: 该软件是收费的,但可以下载试用


Spring singleton bean 与 prototype bean 的依赖

2015-05-07 Spring

Spring支持不同的scope。不同scope在使用上是有差异的,比如singleton与prototype。

问题背景

我们知道,Spring bean 默认的 scope 是 singleton(单例),但有些场景(比如多线程)需要每次调用都生成一个实例, 此时 scope 就应该设为 prototype。如:



MINA 实现聊天功能

2015-04-12 MINA

在《MINA 快速入门》一文中,我们介绍了如何利用 MINA 快速构建一个 Time Server(时间服务器)。在《Netty 实现聊天功能》一文,我们也介绍了如何用 Netty 实现聊天功能。由于 MINA 和 Netty 是同一个作者,架构类似,如果你掌握其中一个,学习另外一个也不是难事。现在我们就用 MINA 来实现聊天功能。

##准备

  • JDK 7+
  • Maven 3.2.x
  • MINA 2.x
  • Eclipse 4.x

Java switch 语句使用 String 参数

2015-04-10 Java

当我尝试在 switch 语句使用 String 参数时(注意ctrType为字符串)

	switch (ctrType) {
	case "01" : 
		exceptionType = "读FC参数数据";
		break;
	case "03" :
		exceptionType = "读FC保存的当前表计数据";
		break;
	default:
		exceptionType = "未知控制码:"+ctrType;
	}

MINA 快速入门

2015-04-04 MINA

Apache MINA 是一个网络应用的框架,可以帮助用户开发的高性能、高扩展性的网络应用程序。它通过 Java NIO 提供了一个抽象的事件驱动的异步 API 用在不同传输协议上,比如 TCP/IP 和 UDP/IP 等。

本教程介绍了如何构建基于 MINA 的应用的过程。这个教程介绍的是构建一个 Time Server(时间服务器)。


如何查看 JAR 包的源代码

2015-04-02 Java

Java 项目的编译文件经常被打包成 JAR(Java Archive,Java 归档文件)文件,当然,作为学习,有时候也非常想看到这个 JAR 被打包前的源代码是怎么样的。 下面提供几种查看 JAR 包的源代码方式。

##环境

  • JDK 7+
  • Maven 3.2.x
  • Eclipse 4.x

Java 注释规范详解

2015-04-01 Java

在 Java 的编写过程中我们需要对一些程序进行注释,除了自己方便阅读,更为别人更好理解自己的程序,所以我们需要进行一些注释,可以是编程思路或者是程序的作用,总而言之就是方便自己他人更好的阅读。

##注释类型

Java 有两类注释: implementation comments(实现注释)和 documentation comments(文档注释)。 实现注释常见于 C++,使用 /*...*/,和 //。文档注释 (也称为”doc comments”) 是 Java 独有的,使用 /**...*/。文档注释可以通过 javadoc 工具转成 HTML 文件。



使用 Eclipse 优化工具 Optimizer for Eclipse

2015-03-19 Eclipse

##Optimizer for Eclipse 介绍

官网: http://zeroturnaround.com/free/optimizer-for-eclipse/

顾名思义,Optimizer for Eclipse 这个插件主要是解决 Eclipse 性能优化问题:

###1.低内存分配

较低的最小堆大小不断将导致 JVM 分配额外的内存。当你没有足够的内存,垃圾收集频繁的 JVM 会减慢你的体验。

###2.慢类验证

类在 Eclipse 执行验证类和插件类显著减慢 JVM 的启动。

###3.大索引和历史

随着时间的推移,Eclipse 会生成一个庞大的历史和索引文件缓存。这些文件在 RAM 和 SSD 硬盘使 Eclipse 迟缓,反应迟钝。


在 Tomcat 里面部署 Web 项目的几种方式

2015-03-14 Tomcat

1.直接把项目复制到 Tomcat 安装目录的 webapps 目录中,这是最简单的一种Tomcat项目部署的方法,也是初学者最常用的方法。

2.在 Tomcat 安装目录的 conf 文件夹,修改配置文件 server.xml,在<host></host>之间插入如下语句。

<Context path="/emsc" docBase="D:\emsc" debug="0" privileged="true"></Context>

其中,docBase 为设置项目的路径。

将 path 设为 “/” ,则以无项目名称形式部署、访问

3.在 conf 目录中,在Catalina\localhost(此处需要注意目录的大小写)目录下新建一个XML文件,任意命名,只要和当前文件中的文件名不重复即可,代码如下。

<Context path="/emsc" docBase="D:\emsc" debug="0" privileged="true"></Context>

Netty 实现聊天功能

2015-03-01 Netty

Netty 是一个 Java NIO 客户端服务器框架,使用它可以快速简单地开发网络应用程序,比如服务器和客户端的协议。Netty 大大简化了网络程序的开发过程比如 TCP 和 UDP 的 socket 服务的开发。更多关于 Netty 的知识,可以参阅《Netty 4.x 用户指南》(https://github.com/waylau/netty-4-user-guide

下面,就基于 Netty 快速实现一个聊天小程序。

准备

  • JDK 7+
  • Maven 3.2.x
  • Netty 4.x
  • Eclipse 4.x


使用 Google Gmail 邮箱服务

2015-02-27 Gmail

总所周知,Google 的大部分服务在华已经被墙,其中也包括 Gmail 。为了收取 Gmail 的邮件,也是要进行一番折腾的。当然,你可以施展各种翻墙技能(文章最后会提供一堆的翻墙方法)。如果不想折腾,只是想收发 Gmail 的邮件,下面的方法更加简单

##修改 hosts

将如下内容加入hosts之后(位置一般在C:\Windows\System32\drivers\etc\hosts)。

173.194.65.108 imap.gmail.com 
173.194.65.108 pop.gmail.com 
173.194.193.108 smtp.gmail.com 

##使用第三方邮箱客户端收发邮件

可以使用 outlook,FOXMAIL 等客户端软件,设置的你 Gmail 邮箱账号,就能收发邮件了。

##附录:翻墙技能

##参考


Gradle 2.3 发布

2015-02-27 Gradle

2月16日,Gradle 团队发布了 2.3。可以在 http://gradle.org/downloads 进行下载。

此版本的 Gradle 带来了一些漂亮的新功能来管理依赖和 IDE 的支持,以及对一些核心插件的改进。

期待已久的特性–具有访问 metadata artifacts 的能力 如 ivy.xml 和 pom.xml ,这个 Gradle 提供相关依赖解决。使用 Artifact Query API,你现在可以直接访问这些原始 metadata artifacts。这将对于生成一个脱机存储库是非常有用的,可以用来检查文件的 metadata,以及更多。

对于 Gradle IDE 的支持在不断提高, Gradle 2.3 通过在 IDE 插件修复大量 bug 而带来增强的 Gradle 工具 API 。值得注意的是,这个版本通过 eclipse-wtp 插件 带来更好的集成的 Eclipse Web Tools Platform 。

一如既往,这个 Gradle 发布受益于大量的社会贡献。这些包括对 antlr的大幅增强,比较了应用插件和工具,以及许多错误修复和改进。

更多关于 Gradle 的知识,可以关注 https://github.com/waylau/Gradle-2-User-Guide, 这里提供了最新的 Gradle 的中文翻译。

##参考:


突破 URL 传值限制

2015-02-13 Web

##问题

window.location = url 方法 当传值url 太长时,服务器无法正常接收。

比如下面,当 rowsData 数据量过大时,服务器请求失败。

window.location='rest/files/excel/easyui-datagird?fileName=' + fileName + '&columns='+columns2+'&rowsData='+rowsData;

##原因

使用浏览器发送 GET 请求会受浏览器 URL 长度的限制。而 window.location.href 就是 GET 请求。



使用 Apache POI 处理 Microsoft Office 文档

2015-01-25 POI

##POI 概述

Apache POI 项目的使命是创造和维护 Java API 操纵各种格式的文件,其中包括基于 Office Open XML 标准(OOXML)和微软的OLE 2 Compound Document 格式(OLE2)。总之,你可以使用 Java 读写 MS Excel 文件。此外,您可以使用 Java 读取和写入 MS Word 和 MS PowerPoint 文件。Apache POI 是你的 Java Excel 解决方案(用于Excel 97-2008)。包含了一个完整的 API 用于移植其他 OOXML 和OLE2 格式。

OLE2 文件包括了 Microsoft Office 文件,比如 XLS, DOC, PPT 以及 MFC 的序列化 API 为基础的文件格式。项目提供 OLE2 Filesystem (POIFS)OLE2 Document Properties (HPSF) 等 API。

Office OpenXML Format 是 Microsoft Office 2007 和 2008 中新的基于 XML 的标准。包括 XLSX, DOCX 和 PPTX。该项目提供了一个低级别的 API 使用 openxml4j来支持 Open Packaging Conventions(开放打包约定)。

针对每个 现存的 MS Office 模块组件,试图提供一个共同的高级别 Java api 给 OLE2 和 OOXML 文档格式。Excel (SS=HSSF+XSSF) Word (HWPF+XWPF),PowerPoint (HSLF+XSLF),Outlook (HSMF), Visio (HDGF), TNEF (HMEF), 和 Publisher (HPBF).

该项目尽可能与其他项目合作提供此功能。比如:Cocoon提供 HSSF 的序列化;与Open Office.org合作处理 XLS 格式;和 Tika/ Lucene提供格式解释器。


调试异步加载页面中的js文件

2015-01-17 JavaScript

问题

在使用 EasyUI 时,采用了异步加载 div 页面的方式,来优化页面的性能。但是在浏览器 debug 时,发现 div 页面中的 js 文件是不可见的,即无法断点调试。

比如,我自己写了一个 entMgt 的模块 div页面,里面引用了 entMgt.js

但是 debug ,却见不到该 js 文件

解决

就是在需要调试的 js 文件顶部加一行代码:

//# sourceURL=entMgt.js

搞定

参考引用

  • https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Errors/Deprecated_source_map_pragma?utm_source=mozilla&utm_medium=firefox-console-errors&utm_campaign=default


Spirng 4 、Hibernate 4 事务管理

2015-01-03 Spring Hibernate

建议将 Hibernate SessionFactory 交给 Spring 进行事务管理,在 applicationContext.xml 里面配置

<bean id="sessionFactory"
	class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
	<!-- 数据源 -->
	<property name="dataSource" ref="dataSource" />

	<!-- hibernate的相关属性配置 -->
	<property name="hibernateProperties">
		<props>
		...
</bean>

<!-- 定义事务管理 -->
<bean id="transactionManager"
	class="org.springframework.orm.hibernate4.HibernateTransactionManager">
	<property name="sessionFactory" ref="sessionFactory" />
	<!-- 自动扫描实体对象 com.waylau.entity 的包结构中存放实体类 -->
	<property name="packagesToScan" value="com.waylau.entity" />
</bean>

使用 SessionFactory

@Autowired
private SessionFactory sessionFactory;
 
public Session getSession() {
    return sessionFactory.getCurrentSession();
}



在 Jersey 2 使用 Spring 4

2014-12-30 Spring Jersey

Jersey 提供对 Spring DI 的扩展。使得 Jersey 在使用 Spring bean 时 就像是 JAX-RS 的组件 (比如 资源和提供者) 并且允许 Spring 注入 Jersey 管理的组件中。比如:

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import org.springframework.stereotype.Component;

@Component
@Path("/")
public class SomeResource {

    @Transactional
    @GET
    public void updateResource() {
        // ...
    }
}

详见《Jersey 2.x 用户指南》 Chapter 22. Spring DI 使用 Spring 注入


Way Lau

Software Engineer and Full Stack Developer, now work and live in Shenzhen, China. Detail

Donate

See the list of Donors.