<?xml version="1.0" encoding="UTF-8" ?>

<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
    xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
    <channel>
        <atom:link href="rss" rel="self" type="application/rss+xml" />
        
        <title><![CDATA[Alan Yeh]]></title>
        <link>http://yerl.cn</link>
        <description><![CDATA[写写代码，想想东西，程序员的世界可以就这么简单。]]></description>
        
        
        <language>zh-cn</language>
        <managingEditor><![CDATA[Alan Yeh]]></managingEditor>
        
<item>
    <title><![CDATA[MacOS更新Ruby环境]]></title>
    <link>http://yerl.cn/blog/macos-update-ruby</link>
    <author><![CDATA[Alan Yeh]]></author>
    <pubDate>Wed, 23 Aug 2017 00:00:00 +0000</pubDate>
    <dc:date>2017-08-23T00:00:00+00:00</dc:date>
    <guid><![CDATA[/blog/macos-update-ruby]]></guid>
    <description><![CDATA[　　MacOS安装后，自带的ruby环境是2.0.0，有点过时了，有的ruby包需要更高版本的ruby环境。在更新ruby环境的时候，踩了一些坑，记录一下。

安装方式

　　我是采用源代码编译方式升级ruby的，升级到最新的稳定版2.4.1。直接在官网下载即可。下载下来是一个压缩包ruby-2.4.1.tar.gz。解压。

openssl

　　ruby里面很多组件会用到openssl，...]]></description>
</item>

<item>
    <title><![CDATA[encodeURI和encodeURIComponent的区别]]></title>
    <link>http://yerl.cn/blog/encodeuri-and-encodeuripomponent</link>
    <author><![CDATA[Alan Yeh]]></author>
    <pubDate>Wed, 14 Jun 2017 00:00:00 +0000</pubDate>
    <dc:date>2017-06-14T00:00:00+00:00</dc:date>
    <guid><![CDATA[/blog/encodeuri-and-encodeuripomponent]]></guid>
    <description><![CDATA[　　转一个图片，用于解释encodeURI、encodeURIComponent、decodeURI、decodeURIComponent的区别。



原地址。
]]></description>
</item>

<item>
    <title><![CDATA[JS中的dataTransfer对象]]></title>
    <link>http://yerl.cn/blog/dataTransfer</link>
    <author><![CDATA[Alan Yeh]]></author>
    <pubDate>Sun, 07 May 2017 00:00:00 +0000</pubDate>
    <dc:date>2017-05-07T00:00:00+00:00</dc:date>
    <guid><![CDATA[/blog/dataTransfer]]></guid>
    <description><![CDATA[　　在进行拖放操作的时候，dataTransfer对象可以用来保存被拖动的数据。它可以保存一项或多项数据、一种或多数数据类型。通谷一点讲，就是可以通过它来传输被拖动的数据，以便在拖拽结束的时候，对数据进行其他的操作。

　　在项目拖动的开始事件(ondragstart)的时候，可以对dataTransfer进行设值操作(setData)。
document.getElementById(&#...]]></description>
</item>

<item>
    <title><![CDATA[申请并使用HTTPS]]></title>
    <link>http://yerl.cn/blog/https-cert</link>
    <author><![CDATA[Alan Yeh]]></author>
    <pubDate>Fri, 13 Jan 2017 00:00:00 +0000</pubDate>
    <dc:date>2017-01-13T00:00:00+00:00</dc:date>
    <guid><![CDATA[/blog/https-cert]]></guid>
    <description><![CDATA[Https证书申请

　　阿里云提供免费的证书申请服务，过程比较简单，记录一下。

　　打开阿里云首页。首先注册并登录。

　　打开产品-&gt;安全-&gt;CA证书服务。


　　点击立即购买。


　　选择免费型DV SSL，然后立即购买。


　　支付成功后，进入证书控制台


　　打开红框标注的证书服务


　　点击补全


　　在框框中填写你要申请的域名地址，然后下一步。


　...]]></description>
</item>

<item>
    <title><![CDATA[apk和ipa文件的MIME类型]]></title>
    <link>http://yerl.cn/blog/imme-for-ipa-apk</link>
    <author><![CDATA[Alan Yeh]]></author>
    <pubDate>Tue, 10 Jan 2017 00:00:00 +0000</pubDate>
    <dc:date>2017-01-10T00:00:00+00:00</dc:date>
    <guid><![CDATA[/blog/imme-for-ipa-apk]]></guid>
    <description><![CDATA[MIME 类型

　　MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准。

　　MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。


以上摘抄自W3School


问题

　　公司有一个app管理平台，用于管理应用的下载、升级等等。

　　但是公司的E人E本的原生浏览器下载apk总是提示【无法打开...]]></description>
</item>

<item>
    <title><![CDATA[Java Web多现场配置]]></title>
    <link>http://yerl.cn/blog/profile-in-web</link>
    <author><![CDATA[Alan Yeh]]></author>
    <pubDate>Wed, 28 Dec 2016 00:00:00 +0000</pubDate>
    <dc:date>2016-12-28T00:00:00+00:00</dc:date>
    <guid><![CDATA[/blog/profile-in-web]]></guid>
    <description><![CDATA[简介

　　Java Web项目和移动App一样，需要一个程序面对多个现场。以前，项目采用一条主线，多条分支的方式来管理。但是每当现场需要升级的时候、需求与另一个现场重合的时候，往往弄得开发人员手忙脚乱。时间久了之后，项目甚至会出现代码丢失、无法维护等情况。

　　为了解决这个问题，我开发了一个gradle插件，来解决这个问题。

插件引用
repositories {
    mavenL...]]></description>
</item>

<item>
    <title><![CDATA[CentOS安装Nginx]]></title>
    <link>http://yerl.cn/blog/setup-nginx-in-centos</link>
    <author><![CDATA[Alan Yeh]]></author>
    <pubDate>Tue, 27 Dec 2016 00:00:00 +0000</pubDate>
    <dc:date>2016-12-27T00:00:00+00:00</dc:date>
    <guid><![CDATA[/blog/setup-nginx-in-centos]]></guid>
    <description><![CDATA[背景

　　Ubuntu安装Nginx是比较简单的，使用sudo apt-get install nginx就可以了，但是公司经常使用CentOS，就不是特别会配置了。还是记录一下。

安装依赖项
yum install -y pcre pcre-devel  
yum install -y zlib zlib-devel  
yum install -y openssl openssl-d...]]></description>
</item>

<item>
    <title><![CDATA[Gradle管理多子项目]]></title>
    <link>http://yerl.cn/blog/gradle-subprojects-management</link>
    <author><![CDATA[Alan Yeh]]></author>
    <pubDate>Sun, 23 Oct 2016 00:00:00 +0000</pubDate>
    <dc:date>2016-10-23T00:00:00+00:00</dc:date>
    <guid><![CDATA[/blog/gradle-subprojects-management]]></guid>
    <description><![CDATA[　　当项目达到一定规模时，我们一般会将项目拆分成各个小的项目，以便进行管理。本篇主要介绍Gradle如何便利地管理多子项目。

项目结构

　　拆分项目时，可能会拆分成如下结构:
└── gradle-subprojects-example
    └── service-api
    └── service-impl
    └── web

　　其中，service-impl依赖于se...]]></description>
</item>

<item>
    <title><![CDATA[Spring入门(二)]]></title>
    <link>http://yerl.cn/blog/spring-02</link>
    <author><![CDATA[Alan Yeh]]></author>
    <pubDate>Tue, 27 Sep 2016 00:00:00 +0000</pubDate>
    <dc:date>2016-09-27T00:00:00+00:00</dc:date>
    <guid><![CDATA[/blog/spring-02]]></guid>
    <description><![CDATA[　　项目使用Gradle作为依赖管理工具。此项目建立在上一篇博客的基础上。

集成beetl

　　使用beetl作为视图引擎。


添加beetl依赖

    //模板引擎
    compile group: &#39;org.beetl&#39;, name: &#39;beetl-core&#39;, version: &#39;2.2.3&#39;


修改src/main/re...]]></description>
</item>

<item>
    <title><![CDATA[Spring入门(一)]]></title>
    <link>http://yerl.cn/blog/spring-01</link>
    <author><![CDATA[Alan Yeh]]></author>
    <pubDate>Mon, 26 Sep 2016 00:00:00 +0000</pubDate>
    <dc:date>2016-09-26T00:00:00+00:00</dc:date>
    <guid><![CDATA[/blog/spring-01]]></guid>
    <description><![CDATA[　　项目使用Gradle作为依赖管理工具。

添加项目依赖

　　新建Gralde的web项目，添加spring-webmvc依赖，添加servlet-api的依赖。
group &#39;cn.yerl&#39;
version &#39;1.0-SNAPSHOT&#39;

apply plugin: &#39;java&#39;
apply plugin: &#39;war&#39;
...]]></description>
</item>

<item>
    <title><![CDATA[管理Nexus Repository OSS]]></title>
    <link>http://yerl.cn/blog/manage-nexus-repository-oss</link>
    <author><![CDATA[Alan Yeh]]></author>
    <pubDate>Sun, 17 Jul 2016 00:00:00 +0000</pubDate>
    <dc:date>2016-07-17T00:00:00+00:00</dc:date>
    <guid><![CDATA[/blog/manage-nexus-repository-oss]]></guid>
    <description><![CDATA[目录


支持域名访问


支持域名访问

　　Nexus默认使用8081端口，总是输入IP+端口，略麻烦。因此折腾一下，使用域名来访问Nexus。

修改Nexus配置

　　Nexus默认Context Path是/nexus。如果继续使用这个路径的话，使用域名访问会没办法登录。因此需要先修改Nexus的配置。

/opt/nexus/nexus-2.13.0-01/conf/nexus...]]></description>
</item>

<item>
    <title><![CDATA[搭建Nexus Repository OSS]]></title>
    <link>http://yerl.cn/blog/setup-nexus-repository-oss</link>
    <author><![CDATA[Alan Yeh]]></author>
    <pubDate>Sun, 17 Jul 2016 00:00:00 +0000</pubDate>
    <dc:date>2016-07-17T00:00:00+00:00</dc:date>
    <guid><![CDATA[/blog/setup-nexus-repository-oss]]></guid>
    <description><![CDATA[　　前面讲到，如何将Java库发布到中央库。Sonatype提供开源项目仓库托管服务，但是过程比较复杂，而且有的项目作为企业内部项目，不合适开源发布。但是又想使用maven的话，那怎么解决呢？那么，这篇博文可以为你解决这个问题。搭建Nexus Repository OOS私服。


搭建环境为Ubuntu 16.04


下载Nexus Repository OSS

　　来到官方下载地址。...]]></description>
</item>

<item>
    <title><![CDATA[Java环境变量]]></title>
    <link>http://yerl.cn/blog/java-environment</link>
    <author><![CDATA[Alan Yeh]]></author>
    <pubDate>Tue, 05 Jul 2016 00:00:00 +0000</pubDate>
    <dc:date>2016-07-05T00:00:00+00:00</dc:date>
    <guid><![CDATA[/blog/java-environment]]></guid>
    <description><![CDATA[Ubuntu

　　下载jdk，解压到/opt/java/目录下。


我下载的版本是jdk1.8.0_91，所以我的路径是/opt/java/jdk1.8.0_91


　　打开Terminal，编辑/etc/profile文件。
$ nano /etc/profile

　　在最后面添加java环境变量
export JAVA_HOME=/opt/java/jdk1.8.0_91
exp...]]></description>
</item>

<item>
    <title><![CDATA[发布库到Maven Central Repository]]></title>
    <link>http://yerl.cn/blog/publish-library-to-maven-center-repository</link>
    <author><![CDATA[Alan Yeh]]></author>
    <pubDate>Thu, 30 Jun 2016 00:00:00 +0000</pubDate>
    <dc:date>2016-06-30T00:00:00+00:00</dc:date>
    <guid><![CDATA[/blog/publish-library-to-maven-center-repository]]></guid>
    <description><![CDATA[　　现在Maven几乎成了Java事实上的包管理工具了，Gradle作为后起之秀，也是建立在Maven现有的大量仓库资源之上。使用Maven Central Repository可以很方便地解决第三方库依赖问题。那么，如何将自己开发的包也发布到Maven Central Repository上去呢？

　　Sonatype提供开源项目仓库托管(Open Source Software Rep...]]></description>
</item>

<item>
    <title><![CDATA[Ubuntu自动挂载硬盘分区]]></title>
    <link>http://yerl.cn/blog/ubuntu-mount-disk</link>
    <author><![CDATA[Alan Yeh]]></author>
    <pubDate>Wed, 29 Jun 2016 00:00:00 +0000</pubDate>
    <dc:date>2016-06-29T00:00:00+00:00</dc:date>
    <guid><![CDATA[/blog/ubuntu-mount-disk]]></guid>
    <description><![CDATA[　　最近公司增配了一个固态硬盘，然后将老硬盘换下，固态作为系统分区。老硬盘2T不能浪费，作为备份盘。但是每次Ubuntu开机，都要手动挂载一下硬盘，比较烦。于是折腾一下，让系统开机之后自动挂载硬盘。

　　查看硬盘挂载信息。
$ sudo blkid

/dev/sda1: LABEL=&quot;Data&quot; UUID=&quot;2662a892-8f1d-42cc-b474-a...]]></description>
</item>

<item>
    <title><![CDATA[使用Maven构建Java工程]]></title>
    <link>http://yerl.cn/blog/building-java-projects-with-maven</link>
    <author><![CDATA[Alan Yeh]]></author>
    <pubDate>Tue, 28 Jun 2016 00:00:00 +0000</pubDate>
    <dc:date>2016-06-28T00:00:00+00:00</dc:date>
    <guid><![CDATA[/blog/building-java-projects-with-maven]]></guid>
    <description><![CDATA[　　这篇博客会带你一起来使用Maven构建Java工程。

创建一个Java工程

　　首先，新建一个Java工程，用于演示如何使用Maven来构建它。为了让我们更关注如何使用Maven，我们将这个工程建得非常简单。

　　创建一个工程根目录，然后在Terminal打开它。
$ mkdir gs-maven
$ cd gs-maven

　　使用命令mkdir -p src/main/jav...]]></description>
</item>

<item>
    <title><![CDATA[使用Gradle构建Java工程]]></title>
    <link>http://yerl.cn/blog/building-java-projects-with-gradle</link>
    <author><![CDATA[Alan Yeh]]></author>
    <pubDate>Mon, 27 Jun 2016 00:00:00 +0000</pubDate>
    <dc:date>2016-06-27T00:00:00+00:00</dc:date>
    <guid><![CDATA[/blog/building-java-projects-with-gradle]]></guid>
    <description><![CDATA[　　这篇博客会带你一起来使用Gradle构建Java工程。

创建一个Java工程

　　首先，新建一个Java工程，用于演示如何使用Gradle来构建它。为了让我们的精力更专注于如何使用Gralde，我们将这个工程建得非常简单。

　　创建一个工程根目录，然后在Terminal打开它。
$ mkdir gs-gradle
$ cd gs-gradle

　　使用命令mkdir -p src...]]></description>
</item>

<item>
    <title><![CDATA[Mac OS X下Gradle的安装与配置]]></title>
    <link>http://yerl.cn/blog/macos-setup-gradle</link>
    <author><![CDATA[Alan Yeh]]></author>
    <pubDate>Sun, 26 Jun 2016 00:00:00 +0000</pubDate>
    <dc:date>2016-06-26T00:00:00+00:00</dc:date>
    <guid><![CDATA[/blog/macos-setup-gradle]]></guid>
    <description><![CDATA[下载Gradle

到Gradle官网下载安装包，选择下载Binary only distribution。下载完了之后，解压到一个目录，比如Users/yerl/gradle。

设置环境变量

打开终端，输入以下命令，编辑bash_profile
$ nano ~/.bash_profile

添加以下代码在最后，保存并退出：
# gradle
export GRADLE_HOME=/U...]]></description>
</item>

<item>
    <title><![CDATA[Mac OS X下Maven的安装与配置]]></title>
    <link>http://yerl.cn/blog/macos-setup-maven</link>
    <author><![CDATA[Alan Yeh]]></author>
    <pubDate>Sat, 25 Jun 2016 00:00:00 +0000</pubDate>
    <dc:date>2016-06-25T00:00:00+00:00</dc:date>
    <guid><![CDATA[/blog/macos-setup-maven]]></guid>
    <description><![CDATA[下载Maven

到Maven官网下载安装包，选择下载Binary zip archive。下载完了之后，解压到一个目录，比如Users/yerl/maven。

设置Maven环境变量

打开终端，输入以下命令，编辑bash_profile
$ nano ~/.bash_profile

添加以下代码在最后，保存并退出：
# maven
export M2_HOME=/Users/yerl...]]></description>
</item>

<item>
    <title><![CDATA[Ejs-mate]]></title>
    <link>http://yerl.cn/blog/ejs-mate</link>
    <author><![CDATA[Alan Yeh]]></author>
    <pubDate>Fri, 27 May 2016 00:00:00 +0000</pubDate>
    <dc:date>2016-05-27T00:00:00+00:00</dc:date>
    <guid><![CDATA[/blog/ejs-mate]]></guid>
    <description><![CDATA[　　Ejs模板引擎不能使用layout语法，在整理html结构时相当不好用。但是Jackson Tian同学开发的ejs-mate为ejs添加了这个功能。那么，怎么在项目中使用ejs-mate呢？

安装esj-mate

　　命令行进入项目的根目录，然后使用npm安装。
$ npm install ejs-mate --save

使用ejs-mate

　　编写一个layout文件， b...]]></description>
</item>

<item>
    <title><![CDATA[Intellij idea 创建maven webapp步骤]]></title>
    <link>http://yerl.cn/blog/idea-create-maven-webapp</link>
    <author><![CDATA[Alan Yeh]]></author>
    <pubDate>Wed, 25 May 2016 00:00:00 +0000</pubDate>
    <dc:date>2016-05-25T00:00:00+00:00</dc:date>
    <guid><![CDATA[/blog/idea-create-maven-webapp]]></guid>
    <description><![CDATA[　　这篇文章记录如何在Intellij idea里创建一个标准maven webapp的步骤。



　　以我的习惯，我会先建一个空Project，然后再添加Module。因此下一步，选择新建Empty Project。



　　选择保存目录，确认。接着选择新建Module。



　　在这个界面选择Maven，勾选上Create from archetype，选择org.apache.m...]]></description>
</item>

<item>
    <title><![CDATA[GitLab管理全过程]]></title>
    <link>http://yerl.cn/blog/gitlab-management</link>
    <author><![CDATA[Alan Yeh]]></author>
    <pubDate>Fri, 06 May 2016 00:00:00 +0000</pubDate>
    <dc:date>2016-05-06T00:00:00+00:00</dc:date>
    <guid><![CDATA[/blog/gitlab-management]]></guid>
    <description><![CDATA[目录


设置发送邮箱
支持域名访问
自动备份
备份恢复
清除缓存


设置发送邮箱

　　GitLab在使用的过程中，在很多地方都需要使用邮箱来发送通知，比如注册通知、权限变更通知、合并通知等等，因此需要为GitLab准备一个邮箱，用于发送这些通知。

　　以下演示了如何配置QQ企业邮作为GitLab的发送邮箱。
$ sudo nano /etc/gitlab/gitlab.rb

　　修...]]></description>
</item>

<item>
    <title><![CDATA[搭建GitLab全过程]]></title>
    <link>http://yerl.cn/blog/install-gitlab</link>
    <author><![CDATA[Alan Yeh]]></author>
    <pubDate>Thu, 28 Apr 2016 00:00:00 +0000</pubDate>
    <dc:date>2016-04-28T00:00:00+00:00</dc:date>
    <guid><![CDATA[/blog/install-gitlab]]></guid>
    <description><![CDATA[　　毕业后，遇到的公司都是使用SVN作为源代码管理工具，本来也觉得没什么十分大的不便。后来接触了GitHub，还有Git工作流等之后，发现SVN在团队合作的时候，有相当多的不足。另外，出于私人的一些原因，我的写的一些代码中，有一部分是开源放在GitHub上的，要Git与SVN协作管理一份代码，实在困难。

　　后面萌生了把Git引入公司，替换SVN成为我们的新源代码管理器的想法。在网上搜了一...]]></description>
</item>

<item>
    <title><![CDATA[Ubuntu安装中文输入法]]></title>
    <link>http://yerl.cn/blog/ubuntu-setup-input-method</link>
    <author><![CDATA[Alan Yeh]]></author>
    <pubDate>Mon, 25 Apr 2016 00:00:00 +0000</pubDate>
    <dc:date>2016-04-25T00:00:00+00:00</dc:date>
    <guid><![CDATA[/blog/ubuntu-setup-input-method]]></guid>
    <description><![CDATA[　　最近准备折腾Gitlab，需要安装一个Linux环境。大学的时候，装过Ubunut，感觉还不错。刚好Ubuntu 16.04 LTS发布了，同一时间，Ubuntu Kylin也同一时间更新了。但是新版的Ubuntu Kylin长相实在太不讨人喜欢了，后面就干脆直接下载安装原版英文版Ubuntu了。

　　安装完后，接着就去安装中文输入法。由于对Ubuntu完全没有经验，完全不懂怎么安装输...]]></description>
</item>

<item>
    <title><![CDATA[利用Travis CI生成网页，支持Tags/Categorys]]></title>
    <link>http://yerl.cn/blog/use-travis-ci-generate-sites</link>
    <author><![CDATA[Alan Yeh]]></author>
    <pubDate>Sun, 24 Jan 2016 00:00:00 +0000</pubDate>
    <dc:date>2016-01-24T00:00:00+00:00</dc:date>
    <guid><![CDATA[/blog/use-travis-ci-generate-sites]]></guid>
    <description><![CDATA[　　现在大多使用Jekyll，并且支持Tags/Categorys的博客，都是将所有博客标题链接放到同一个页面中。博客量少的时候，弊端并不明显；但是博客量大的时候，同一个页面下的博客标题太多，就会给人一种目不暇接的感觉。大多数人第一时间想到就是利用分页。

　　想要将Tags/Categorys生成分页功能，有几个思路。由于jekyll在运行时，将所有博客生成静态页面，利用query par...]]></description>
</item>

<item>
    <title><![CDATA[使用jekyll布署个人博客]]></title>
    <link>http://yerl.cn/blog/use-jekyll-build-your-blog</link>
    <author><![CDATA[Alan Yeh]]></author>
    <pubDate>Wed, 20 Jan 2016 00:00:00 +0000</pubDate>
    <dc:date>2016-01-20T00:00:00+00:00</dc:date>
    <guid><![CDATA[/blog/use-jekyll-build-your-blog]]></guid>
    <description><![CDATA[　　这篇blog主要用于记录怎么在Mac下使用pages.github.com和jekyll布署个人博客。

步骤

　　首先，我们先在本地布署一个博客，调试完毕之后再上传到服务器。

关闭Rootless

　　Mac 10.11之后，苹果为系统加入了一个叫做Rootless的权限工具，用于保护系统的目录不被修改、写入。ruby和jekyll的部份插件需要一些权限，所以需要临时关闭这个功能...]]></description>
</item>


    </channel>
</rss>
