总所周知,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 邮箱账号,就能收发邮件了。

##附录:翻墙技能
##参考
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 的中文翻译。
##参考:
##问题
window.location = url 方法 当传值url 太长时,服务器无法正常接收。
比如下面,当 rowsData 数据量过大时,服务器请求失败。
window.location='rest/files/excel/easyui-datagird?fileName=' + fileName + '&columns='+columns2+'&rowsData='+rowsData;
##原因
使用浏览器发送 GET 请求会受浏览器 URL 长度的限制。而 window.location.href 就是 GET 请求。
##注册 微软账号
http://www.microsoft.com/zh-cn/account/default.aspx
##下载、安装 Azure RemoteApp 客户端
根据你的系统进行如下选型
##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提供格式解释器。
在使用 EasyUI 时,采用了异步加载 div 页面的方式,来优化页面的性能。但是在浏览器 debug 时,发现 div 页面中的 js 文件是不可见的,即无法断点调试。
比如,我自己写了一个 entMgt 的模块 div页面,里面引用了 entMgt.js
但是 debug ,却见不到该 js 文件
就是在需要调试的 js 文件顶部加一行代码:
//# sourceURL=entMgt.js
搞定
##问题
在 Eclipse 中 Debug Maven 项目出现“Source not found”,无法定位到断点的源码位置。

##原因
Eclipse 中 Debug 时未关联上源码,所以找不见
建议将 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();
}
##问题
在 eclipse 中开发 Maven web 项目时出现 @Override must override a superclass method 问题

##原因:
是 JDK 版本过低不支持 @Override 注解导致的,提高版本到 1.5 之后(不含1.5)就可以了。
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() {
// ...
}
}
新建了 mysql 数据库,使用 root 远程访问数据库,无法访问
##问题:
ERROR 1130: Host '192.168.11.104' is not allowed to connect to this MySQL server...

##原因:
用户 root 没有远程访问的权限
问题:
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
没有指定编码,只能按照平台的默认编码进行拷贝。
解决:
<project>
...
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
...
</project>
Apache Tomcat 的 Maven 插件提供了 goal,实现将 Apache Tomcat servlet 容器整合进 WAR 项目。你可以通过 Apache Maven 运行 WAR 项目而无需部署 WAR 文件到 Apache Tomcat 的实例。
本文讨论以角色概念进行的权限管理策略及主要以基于角色的机制进行权限管理是远远不够的。同时将讨论一种更好的权限管理方式。
当说到程序的权限管理时,人们往往想到角色这一概念。角色是代表一系列行为或责任的实体,用于限定你在软件系统中能做什么、不能做什么。用户帐号往往与角色相关联,因此,一个用户在软件系统中能“做”什么取决于与之关联的各个角色。
例如,一个用户以关联了”项目管理员”角色的帐号登录系统,那这个用户就可以做项目管理员能做的所有事情――如列出项目中的应用、管理项目组成员、产生项目报表等。
从这个意义上来说,角色更多的是一种行为的概念:它表示用户能在系统中进行的操作。
##一、 SVN 服务器下载、安装
###1. 关于 Subversion 1.8.11 Apache Subversion 1.8.11 发布说明
http://mail-archives.apache.org/mod_mbox/subversion-dev/201412.mbox/%[email protected]%3E
###2. 兼容性问题 Apache Subversion 1.8.x 兼容性说明
##Activiti 5.17.0
Activiti 5.17.0 发布 (2014-12-18),此版本值得关注的亮点:
##下载和安装
###activiti下载:
本例子版本:activiti-5.16.4.zip
http://www.activiti.org/download.html
###JDK 下载 JDK 6+
本例子版本:jdk7
http://www.oracle.com/technetwork/java/javase/downloads/index.htm
之前一直是在 GitHub 上写开源书(见:http://www.waylau.com/books/)但,由于 GitHub 本身的目录结构并不一定符合阅读的习惯,而且没有提供 pdf , ePUB, MOBI 等格式的转换下载。很多同学也还是习惯离线看文档。GitBook 就是解决这一问题。
GitBook 让你在保持在 GitHub 的书写习惯外,稍加配置,就能自动发布到GitBook 上,形成界面漂亮的电子书了(支持 html, pdf , ePUB, MOBI 等)。
GitBook 让你在保持 使用 Markdown 的书写习惯外,稍加配置,就能自动发布到 GitBook 上,形成界面漂亮的各种电子书了(支持 html, pdf , ePUB, MOBI 等)。
##Installation 安装
gitbook 的安装需要 Nodejs,下载地址为 http://nodejs.cn/download/
gitbook 1.x 时执行:
$ npm install gitbook -g
而从 gitbook 2.x 开始,执行下面新的命令语句:
$ npm install gitbook-cli -g
##Usage 1 用法一 使用模板快速开始
https://github.com/waylau/gitbook 这是个快速开始 GitBook 的模板项目,根据项目的结构,稍作修改,就能生成自己的电子书。
###Checkout the repository 检出模板项目
$ git clone https://github.com/waylau/gitbook.git
##问题:执行 jar 找不到依赖的类
用 Maven 编译完成后 ,生产了 ui-compressor-1.0.0.jar, 此时执行
java -cp target/ui-compressor-1.0.0.jar com.waylau.uicompressor.App
提示下面找不到依赖的包:
Exception in thread "main" java.lang.NoClassDefFoundError: org/mozilla/javascrip
t/ErrorReporter
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2442)
at java.lang.Class.getMethod0(Class.java:2685)
at java.lang.Class.getMethod(Class.java:1620)
at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:492)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:484)
Caused by: java.lang.ClassNotFoundException: org.mozilla.javascript.ErrorReporte
r
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
... 6 more
A theme for Jekyll to build a personal blog. Seehttps://github.com/waylau/jekyll-theme-blog
##Screenshots


##Demo
You can see the theme running on my blog.
本文介绍了如何通过 Jersey 框架优美的在 Java 实现了 REST 的 API。CRUD 的 操作存储在 MySQL 中
之前介绍了《用 VPN Gate 翻墙科学上网》,通过安装客户端,方便实现 VPN 的连接。如果 你爱折腾,也可以手动设置 VPN 。这样的连接 更加稳定。
##中国行政区划(administrative division)
分为几个级别(government level/level);宪法(Constitution)规定了三个级别(de jure level),但实际上有五个级别(de facto level/practical level)——33个省级(province/province-level region/province-level division)、333个地区级(prefecture/prefecture-level region/prefecture-level division/second-level division)【非宪法区划】、2862个县级(county/county-level region/county-level division)、41636个乡级(township/township-level region/township-level division)及无数村级(village/village-level region/village-level division)【非宪法区划】行政区。各个级别又有不同名称,下面加以详细讨论【具体数字以2005年统计数据为准】。
这个示例应用程序展示了如何使用 WebSocket, Golang 和 jQuery 创建一个简单的web聊天应用程序。这个示例的源代码在 https://github.com/waylau/goChat 。
HTML5 在 web 页面使用 video 元素呈现视频。但 HTML5 视频并不是最终的解决方案,它不能在所有的浏览器工作。你知道 HTML5 视频真的在网上工作吗? 你担心 HMTL5 视频兼容性吗? 看看这篇文章的建议和解决方案如何最大化 HMTL5 视频兼容性。
HTML5 的到来之前,每个视频的播放都需要通过 web 浏览器中通过第三方浏览器插件。最初我们亲眼目睹 RealPlayer,接着是 Windows Media Player 和 QuickTime, 现在是 Flash,这是目前主导的插件,播放大量的网络视频。
摘自《周鸿祎自述:我的互联网方法论》
近期发现用 Help & Manual 5 来写帮助文档导航生成失败,
后测试发现,将项目名称oem_0.9.2_help(2014.10.10) 改为 oem_0.9.2_help(2014.10.10) 就好了~

判断是项目名称中文字符不支持造成的。
近期发现每天在 Github 做代码提交,但是 contributions 的面板(贡献图)上的绿点(即贡献值)却没有增长了。擦~ 有两个礼拜了。如下图
而且,同时发现以前的绿点也是稀稀拉拉的,遂感觉 contributions 可能被漏记了。看了下 Github 对于 contributions 的 说明更新时间是在昨天(2014-10-17),说明 contributions 的统计策略是经常改变的。
本文详细说明了如何contributions贡献值是如何统计的。同时参照最新的 contributions 的 说明(时间 2014-10-17),并且在以后会同步官网的更新,方便各位网友。
#哪些 contributions 贡献值会被统计
##Issues and pull requests 问题和请求
问题和请求将出现在您的贡献图上需满足下面这两个条件:
##Commits 提交
提交将出现在您的贡献图上,如果它们满足所有以下条件:
此外,至少其中一项必须为真:
私人库的贡献只会显示给可以访问这些库的用户。这些贡献都不会呈现给无法访问这些库的用户。
#贡献不被计算在内的常见原因
##你还没在你 GitHub 配置文件中添加你本地 Git 提交的电子邮件
提交时必须采用已添加到您 GitHub 的配置文件,出现在你的贡献图上的电子邮件地址。您可以检查电子邮件通过将.patch 添加到用于提交 URL 后面,例如 https://github.com/octocat/octocat.github.io/commit/67c0afc1da354d8571f51b6f0af8f2794117fd10.patch :
From 67c0afc1da354d8571f51b6f0af8f2794117fd10 Mon Sep 17 00:00:00 2001 From: The Octocat Date: Sun, 27 Apr 2014 15:36:39 +0530 Subject: [PATCH] updated index for better welcome message
其中电子邮件的格式: 字段是在本地 git 的配置设置中设置的地址。在此示例中,用于提交的电子邮件地址是 [email protected]。
如果没有被用于提交的电子邮件地址添加到您 GitHub 的配置文件,您必须将电子邮件地址添加到您的 GitHub.com 帐户或 GitHub 企业帐户。当您添加新的地址时,您的贡献图将自动重建。
一般的电子邮件地址——如 [email protected]——不能添加到 GitHub 帐户。如果您使用此类电子邮件为您的提交,提交将不被链接到 GitHub 配置文件并不会显示在您的贡献图。
##提交了一个非默认分支
提交只能是在默认分支 (通常master)被统计。如果你想在非默认分支中,希望他们能计入您的贡献,需要执行以下任一操作:
更改存库中的默认分支将更改它的所有库中的合作者。只能这样做,如果你想要新分支成为所有未来的请求和提交所针对的基础。
##在 fork 中做了提交
在一个 fork 作出的提交将不计入你的贡献。要使它们计数,必须执行下列操作之一:
近期在做一个版本号的判断,在使用 Java split() 方法时,希望把版本号中的数字组成数组。很自然的,我用了 split(“.”) 来分割成数组,结果不行。
String v = "1.0.1";
String[] vs = v.split(".");
int len = vs.length;
for(int i = 0; i<len; i ++){
System.out.println(vs[i]);
}
后查 API,得知 split 的参数是 String regex 代表的是一个正则表达式。如果是正则中的特殊字符,就不能了。点正好是一个特殊字符。如下方式解决:
String v = "1.0.1";
String[] vs = v.split("[.]");
int len = vs.length;
for(int i = 0; i<len; i ++){
System.out.println(vs[i]);
}
如果没有 <label> 当然也能显示 <input> 的本文, 比如
<input type="radio" name="status" checked="true" value="0"/>改造前
<input type="radio" name="status" value="2"/>改造后
<input type="checkbox" name="status1" value="3"/>www.waylau.com
点击组件上的文本不会有任何效果
改造前 改造后 www.waylau.com
但是,加上 <label> 后立马就不同了,可以点击文本来选中组件
<label><input type="radio" name="status2" checked="true" value="0"/>改造前</label>
<label><input type="radio" name="status2" value="2"/>改造后</label>
<label><input type="checkbox" name="status3" value="3"/>www.waylau.com</label>
#需求 想要实现一个照片,鼠标移到照片上,可以显示编辑该照片的工具栏
#实现
##整体布局
<div id="photo_id" class="photo_contarner" onmouseover="handlerIn( event )" onmouseout="handlerOut( event )">
<div class="toolbar" name="toolbar" id="toolbar">
</div>
</div>
一个照片,上面加一个 div 工具栏(toolbar)里面有两个按钮
##样式
.photo_contarner {
width: 128px;height: 128px;
margin: 20px;
float: left;
position:relative;
}
.photo_contarner img{
width: 128px;height: 128px;
border: 0
}
.toolbar {
position:absolute;
width: 48px;
height: 24px;
top: 0px;
right: 0px;
z-index:3;
background-color: gray;
}
.toolbar_edit {
background:url(../img/edit_24.png);
}
.toolbar_delete {
background:url(../img/remove_24.png);
}
.toolbar_edit,.toolbar_delete{
width:24px;height:24px;float: left;
}
先看下整体效果,工具栏在照片上的右上角,工具栏包含两个图标。关键点: z-index:3 该属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。
默认工具栏为隐藏 .toolbar 的样式中添加
display:none;
##事件 鼠标移入移出事件,移入为显示,移出为隐藏
var handlerIn = function( event ){ document.getElementById(‘toolbar’).style.display =’block’; };
var handlerOut = function( event ){ document.getElementById(‘toolbar’).style.display =’none’; };
#源码 HTML 遮罩显示工具栏源码