You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by li...@apache.org on 2017/06/08 05:10:02 UTC

[1/8] incubator-rocketmq-site git commit: Polish web-site documents

Repository: incubator-rocketmq-site
Updated Branches:
  refs/heads/asf-site c6a0f07ed -> 5b69a90ff


http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/fbef4631/_docs/best-practice-namesvr.md
----------------------------------------------------------------------
diff --git a/_docs/best-practice-namesvr.md b/_docs/best-practice-namesvr.md
index 1679850..d6c16d3 100644
--- a/_docs/best-practice-namesvr.md
+++ b/_docs/best-practice-namesvr.md
@@ -5,12 +5,12 @@ modified: 2016-12-24T15:01:43-04:00
 ---
 
 In Apache RocketMQ, name servers are designed to coordinate each component of the distributed system
-and fulfill much of this responsibility through managing topic route information.
+and the coordination is mainly achieved through managing topic routing information.
 
 {% include toc %}
 
-The management, roughly speaking, consists two parts:
-- Brokers periodically renew meta data, including topics they have, which are kept in every name servers.
+Management consists of two parts:
+- Brokers periodically renew meta data kept in every name server.
 - Name servers are serving clients, including producers, consumers and command line clients with the latest routing information.
 
 Therefore, before launching brokers and clients, we need to tell them how to reach name servers by feeding them with a name server address list.
@@ -18,9 +18,9 @@ In Apache RocketMQ, this can be done in four ways.
 
 ## Programmatic Way
 
-For broker, we may specify `namesrvAddr=name-server-ip1:port;name-server-ip2:port` in broker configuration file.
+For brokers, we can specify `namesrvAddr=name-server-ip1:port;name-server-ip2:port` in broker configuration file.
 
-For producers and consumers, we may feed name server address list to them as follows:
+For producers and consumers, we can feed name server address list to them as follows:
 
 ```java
 DefaultMQProducer producer = new DefaultMQProducer("please_rename_unique_group_name");
@@ -30,17 +30,17 @@ DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("please_rename_unique
 consumer.setNamesrvAddr("name-server1-ip:port;name-server2-ip:port");
 ```
 
-If you use admin command line from shell, you may specify this way:
+If you use admin command line from shell, you can also specify this way:
 
-```java
+```bash
 sh mqadmin command-name -n name-server-ip1:port;name-server-ip2:port -X OTHER-OPTION
 ```
 
-a simple example is:
+A simple example is:
 `sh mqadmin -n localhost:9876 clusterList`
 assuming to query cluster info on the name server node.
 
-If integrating admin tool into your own dashboard, you may
+If you have integrated admin tool into your own dashboard, you can:
 
 ```java
 DefaultMQAdminExt defaultMQAdminExt = new DefaultMQAdminExt("please_rename_unique_group_name");
@@ -64,12 +64,12 @@ If you do not specify name server address list using previously mentioned method
  the following HTTP end point to acquire and update name server address list every two minutes with initial delay of
  ten seconds.
 
-On default, the end point is:
+By default, the end point is:
 
 `http://jmenv.tbsite.net:8080/rocketmq/nsaddr`
 
-You may override `jmenv.tbsite.net` by this java option: `rocketmq.namesrv.domain`,
-You may also override `nsaddr` part by this java option: `rocketmq.namesrv.domain.subgroup`
+You may override `jmenv.tbsite.net` using this Java option: `rocketmq.namesrv.domain`,
+You may also override `nsaddr` part using this Java option: `rocketmq.namesrv.domain.subgroup`
 
 If you are running Apache RocketMQ in production, this method is recommended because it gives you maximum flexibility
  -- you can dynamically add or remove name server nodes without necessity of rebooting your brokers and clients 
@@ -78,7 +78,7 @@ If you are running Apache RocketMQ in production, this method is recommended bec
      
 ##  Priority
 
-Methods introduced first take precedence over the latter, namely, <br>
+Methods introduced first take precedence over the latter ones: <br>
 `Programmatic Way > Java Options > Environment Variable > HTTP Endpoint`
 
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/fbef4631/_docs/best-practice-producer.md
----------------------------------------------------------------------
diff --git a/_docs/best-practice-producer.md b/_docs/best-practice-producer.md
index 7307a74..8f1d14d 100644
--- a/_docs/best-practice-producer.md
+++ b/_docs/best-practice-producer.md
@@ -9,37 +9,37 @@ Some useful tips for users.
 {% include toc %}
 
 ## SendStatus  
-When sending a message, you will get SendResult and it will contain the SendStatus. Firstly, we assume that Message's isWaitStoreMsgOK=true(default is true). If not, we will always get SEND_OK if no exception is thrown.
-Follow are the descriptions about each status.
+When sending a message, you will get SendResult which contains SendStatus. Firstly, we assume that Message's isWaitStoreMsgOK=true(default is true). If not, we will always get SEND_OK if no exception is thrown.
+Below is a list of descriptions about each status:
 ### FLUSH_DISK_TIMEOUT
-If the Broker set MessageStoreConfig's FlushDiskType=SYNC_FLUSH(default is ASYNC_FLUSH), and the Broker dose not finish flushing disk within MessageStoreConfig's syncFlushTimeout(default is 5 secs), you will get such status.
+If the Broker set MessageStoreConfig's FlushDiskType=SYNC_FLUSH(default is ASYNC_FLUSH), and the Broker doesn't finish flushing the disk within MessageStoreConfig's syncFlushTimeout(default is 5 secs), you will get this status.
 ### FLUSH_SLAVE_TIMEOUT
-If the Broker's role is SYNC_MASTER(default is ASYNC_MASTER), and the slave Broker dose not finish synchronizing with the master within the MessageStoreConfig's syncFlushTimeout(default is 5 secs), you will get such status.
+If the Broker's role is SYNC_MASTER(default is ASYNC_MASTER), and the slave Broker doesn't finish synchronizing with the master within the MessageStoreConfig's syncFlushTimeout(default is 5 secs), you will get this status.
 ### SLAVE_NOT_AVAILABLE
-If the Broker's role is SYNC_MASTER(default is ASYNC_MASTER), but no slave Broker is configured, you will get such status.
+If the Broker's role is SYNC_MASTER(default is ASYNC_MASTER), but no slave Broker is configured, you will get this status.
 ### SEND_OK
-You should be aware that SEND_OK does not mean it is reliable. If you cannot tolerate message missing, you should also enable SYNC_MASTER or SYNC_FLUSH.
+SEND_OK does not mean it is reliable. To make sure no message would be lost, you should also enable SYNC_MASTER or SYNC_FLUSH.
 ### Duplication or Missing
-If you get FLUSH_DISK_TIMEOUT, FLUSH_SLAVE_TIMEOUT and the Broker happens to shutdown right the moment, you may get your message missing.
-At this time, you have two choices, one is letting it go, which may get message missing; another is resending, which may get message duplication.
-Often we suggest resend and make a way to handle the duplication removal when consuming. Unless you feel it does not matter when some messages are missed.
-But be ware that resending has no use when you get SLAVE_NOT_AVAILABLE, you'd better keep the scene and send some alerts to the Cluster Manager. 
+If you get FLUSH_DISK_TIMEOUT, FLUSH_SLAVE_TIMEOUT and the Broker happens to shutdown right the moment, you can find your message missing.
+At this time, you have two choices, one is to let it go, which may cause this message to be lost; another is to resend the message, which may get message duplication.
+Often we suggest resend and find a way to handle the duplication removal when consuming. Unless you feel it doesn't matter when some messages are lost.
+But keep in mind that resending is useless when you get SLAVE_NOT_AVAILABLE. If this happens, you should keep the scene and alert the Cluster Manager.
 ## Timeout 
-The Client send requests to Broker, and wait the responses, but if the max wait time is elapsed and no response is return, the Client will throw a RemotingTimeoutException.
-The default wait time is 3 seconds.You can also pass timeout argument using send(msg, timeout) instead of send(msg).
-Note that we do not suggest the value to be too small, for the Broker need some time to flush disk or synchronize with slave. Also the value may have little effect if it is too bigger than syncFlushTimeout for Broker may return a response with FLUSH_SLAVE_TIMEOUT or FLUSH_SLAVE_TIMEOUT before the timeout.
+The Client sends requests to Broker, and wait for the responses, but if the max wait time has elapsed and no response is returned, the Client will throw a RemotingTimeoutException.
+The default wait time is 3 seconds. You can also pass timeout argument using send(msg, timeout) instead of send(msg).
+Note that we do not suggest the wait time to be too small, as the Broker needs some time to flush the disk or synchronize with slaves. Also the value may have little effect if it exceeds syncFlushTimeout by a lot as Broker may return a response with FLUSH_SLAVE_TIMEOUT or FLUSH_SLAVE_TIMEOUT before the timeout.
 ## Message Size
-We suggest the message should be no more than 512K.
+We suggest the size of message should be no more than 512K.
 ## Async Sending
-Default send(msg) will block until the response is return. So if you care about performance, we suggest you use send(msg, callback) which will act in a async way. 
+Default send(msg) will block until the response is returned. So if you care about performance, we suggest you use send(msg, callback) which will act in the async way.
 ## Producer Group
-Normally, the producer group has no effects. But if you are involved in  transaction, you should pay attention to it. 
-In default, you can only create only one producer with the same producer group in the same JVM. Usually, this is enough.
+Normally, the producer group has no effects. But if you are involved in a transaction, you should pay attention to it.
+By default, you can only create only one producer with the same producer group in the same JVM, which is usually enough.
 ## Thread Safety 
-The producer is thread-safe, you can just use it in your business logic.
+The producer is thread-safe, you can just use it in your business solution.
 ## Performance
-If you want more than one producer in one JVM, maybe for big data processing, we suggest you:
-* use async sending with a few producers(3~5 is enough)
+If you want more than one producer in one JVM for big data processing, we suggest:
+* use async sending with a few producers (3~5 is enough)
 * setInstanceName for each producer
 
   

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/fbef4631/_pages/community.md
----------------------------------------------------------------------
diff --git a/_pages/community.md b/_pages/community.md
index a5c324b..70b5e5d 100644
--- a/_pages/community.md
+++ b/_pages/community.md
@@ -23,5 +23,5 @@ We have a few mailing lists hosted by Apache, please refer to [here](/about/cont
 
 # Ecosystem
 
-TODO
+![](/assets/images/eco.png)
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/fbef4631/_pages/customer.md
----------------------------------------------------------------------
diff --git a/_pages/customer.md b/_pages/customer.md
index c67ef9b..988d624 100644
--- a/_pages/customer.md
+++ b/_pages/customer.md
@@ -30,6 +30,11 @@ feature_row2:
     alt: "Yunpan Group"
   - image_path: /assets/images/community/shihai-logo.jpg
     alt: "Shihai Group"
+feature_row3:
+  - image_path: /assets/images/community/tree-logo.png
+    alt: "Tree Finance Group"
+  - image_path: /assets/images/community/yhsoft-logo.png
+    alt: "YH software Group"
 intro:
   - excerpt: "Who uses Apache RocketMQ ? &nbsp;"
 ---
@@ -40,4 +45,6 @@ intro:
 
 {% include feature_row id="feature_row1" %}
 
-{% include feature_row id="feature_row2" %}
\ No newline at end of file
+{% include feature_row id="feature_row2" %}
+
+{% include feature_row id="feature_row3" %}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/fbef4631/_sass/_archive.scss
----------------------------------------------------------------------
diff --git a/_sass/_archive.scss b/_sass/_archive.scss
index c5d0709..e8aede2 100644
--- a/_sass/_archive.scss
+++ b/_sass/_archive.scss
@@ -63,7 +63,7 @@
   border-radius: $border-radius;
   overflow: hidden;
   img {
-    width: 100%;
+    max-width:60%;
   }
 }
 
@@ -158,6 +158,8 @@
 .feature__item {
   margin-bottom: 2em;
   font-size: 1.25rem;
+  height: 80px;
+  line-height: 80px;
 
   @include breakpoint($small) {
     margin-bottom: 0;

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/fbef4631/assets/images/community/tree-logo.png
----------------------------------------------------------------------
diff --git a/assets/images/community/tree-logo.png b/assets/images/community/tree-logo.png
new file mode 100644
index 0000000..a168313
Binary files /dev/null and b/assets/images/community/tree-logo.png differ

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/fbef4631/assets/images/community/yhsoft-logo.png
----------------------------------------------------------------------
diff --git a/assets/images/community/yhsoft-logo.png b/assets/images/community/yhsoft-logo.png
new file mode 100644
index 0000000..9bfad50
Binary files /dev/null and b/assets/images/community/yhsoft-logo.png differ

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/fbef4631/assets/images/eco.png
----------------------------------------------------------------------
diff --git a/assets/images/eco.png b/assets/images/eco.png
new file mode 100644
index 0000000..64e58ad
Binary files /dev/null and b/assets/images/eco.png differ


[7/8] incubator-rocketmq-site git commit: Polish web site pages

Posted by li...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/assets/css/main.css
----------------------------------------------------------------------
diff --git a/content/assets/css/main.css b/content/assets/css/main.css
index 1461afc..352c0c2 100644
--- a/content/assets/css/main.css
+++ b/content/assets/css/main.css
@@ -1,4 +1,4 @@
 /*!
  *  Font Awesome 4.6.3 by @davegandy - http://fontawesome.io - @fontawesome
  *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
- */@font-face{font-family:'FontAwesome';src:url("../fonts/fontawesome-webfont.eot?v=4.6.3");src:url("../fonts/fontawesome-webfont.eot?#iefix&v=4.6.3") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff2?v=4.6.3") format("woff2"),url("../fonts/fontawesome-webfont.woff?v=4.6.3") format("woff"),url("../fonts/fontawesome-webfont.ttf?v=4.6.3") format("truetype"),url("../fonts/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;wi
 dth:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate
 (90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{pos
 ition:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-remove:before,.fa-close:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-gear:before,.fa-cog:before{content:""}.fa-trash-o:before{content:""}.fa-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow
 -circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-rotate-right:before,.fa-repeat:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:
 ""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circ
 le:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before{content:""}.fa-check-circle:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-warning:before,.fa-exclamation-triangle:before{content:""}.fa-plane:befo
 re{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-gears:before,.fa-cogs:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before
 {content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{con
 tent:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-save:before,.fa-floppy-o:before{content:""}.fa-square:before{content:""}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:"
 "}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-unsorted:before,.fa-sort:before{content:""}.fa-sort-down:before,.fa-sort-desc:before{content:""}.fa-sort-up:before,.fa-sort-asc:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-legal:before,.fa-gavel:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-flash:before,.fa-bolt:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-paste:before,.fa-clipboard:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-uploa
 d:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{conten
 t:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-unlink:before,.fa-chain-broken:before{content:""}.fa-question:before{content:""}.fa-inf
 o:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before
 {content:""}.fa-minus-square-o:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:""}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:""}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:""}.fa-euro:before,.fa-eur:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-rupee:before,.fa-inr:before{content:""}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:""}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:""}.fa-won:before,.fa-krw:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha
 -asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.
 fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-turkish-lira:before,.fa-try:before{content:""}.fa-plus-square-o:before{content:""}
 .fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-institution:before,.fa-bank:before,.fa-university:before{content:""}.fa-mortar-board:before,.fa-graduation-cap:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-beha
 nce:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:""}.fa-file-zip-o:before,.fa-file-archive-o:before{content:""}.fa-file-sound-o:before,.fa-file-audio-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa
 -life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:""}.fa-ge:before,.fa-empire:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-send:before,.fa-paper-plane:before{content:""}.fa-send-o:before,.fa-paper-plane-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:""}.fa-tty:befo
 re{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-
 square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars
 :before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-hotel:before,.fa-bed:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-yc:before,.fa-y-combinator:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:"�
 ��"}.fa-battery-4:before,.fa-battery-full:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:
 ""}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-tv:before,.fa-television:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-ca
 lendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shoppin
 g-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:""}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-signing:before,.fa-sign-language:before{content:""}.fa-low-vision:before{content:""}.fa
 -viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.mfp-counter{font-family:Georgia,Times,serif}.mfp-bg{top:0;left:0;width:100%;height:100%;z-index:1042;overflow:hidden;position:fixed;background:#000;opacity:.8;filter:alpha(opacity=80)}.mfp-wrap{top:0;left:0;width:100%;height:100%;z-index:1043;position:fixed;outline:none !important;-webkit-backface-visi
 bility:hidden}.mfp-container{text-align:center;position:absolute;width:100%;height:100%;left:0;top:0;padding:0 8px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mfp-container:before{content:'';display:inline-block;height:100%;vertical-align:middle}.mfp-align-top .mfp-container:before{display:none}.mfp-content{position:relative;display:inline-block;vertical-align:middle;margin:0 auto;text-align:left;z-index:1045}.mfp-inline-holder .mfp-content,.mfp-ajax-holder .mfp-content{width:100%;cursor:auto}.mfp-ajax-cur{cursor:progress}.mfp-zoom-out-cur,.mfp-zoom-out-cur .mfp-image-holder .mfp-close{cursor:-moz-zoom-out;cursor:-webkit-zoom-out;cursor:zoom-out}.mfp-zoom{cursor:pointer;cursor:-webkit-zoom-in;cursor:-moz-zoom-in;cursor:zoom-in}.mfp-auto-cursor .mfp-content{cursor:auto}.mfp-close,.mfp-arrow,.mfp-preloader,.mfp-counter{-webkit-user-select:none;-moz-user-select:none;user-select:none}.mfp-loading.mfp-figure{display:none}.mfp-hide{display:none !importa
 nt}.mfp-preloader{color:#ccc;position:absolute;top:50%;width:auto;text-align:center;margin-top:-0.8em;left:8px;right:8px;z-index:1044}.mfp-preloader a{color:#ccc}.mfp-preloader a:hover{color:#fff}.mfp-s-ready .mfp-preloader{display:none}.mfp-s-error .mfp-content{display:none}button.mfp-close,button.mfp-arrow{overflow:visible;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;display:block;outline:none;padding:0;z-index:1046;-webkit-box-shadow:none;box-shadow:none}button::-moz-focus-inner{padding:0;border:0}.mfp-close{width:44px;height:44px;line-height:44px;position:absolute;right:0;top:0;text-decoration:none;text-align:center;opacity:1;filter:alpha(opacity=100);padding:0 0 18px 10px;color:#fff;font-style:normal;font-size:28px;font-family:Georgia,Times,serif}.mfp-close:hover,.mfp-close:focus{opacity:1;filter:alpha(opacity=100)}.mfp-close:active{top:1px}.mfp-close-btn-in .mfp-close{color:#fff}.mfp-image-holder .mfp-close,.mfp-iframe-holder .mfp-close{color:#fff;rig
 ht:-6px;text-align:right;padding-right:6px;width:100%}.mfp-counter{position:absolute;top:0;right:0;color:#ccc;font-size:12px;line-height:18px}.mfp-arrow{position:absolute;opacity:1;filter:alpha(opacity=100);margin:0;top:50%;margin-top:-55px;padding:0;width:90px;height:110px;-webkit-tap-highlight-color:transparent}.mfp-arrow:active{margin-top:-54px}.mfp-arrow:hover,.mfp-arrow:focus{opacity:1;filter:alpha(opacity=100)}.mfp-arrow:before,.mfp-arrow:after,.mfp-arrow .mfp-b,.mfp-arrow .mfp-a{content:'';display:block;width:0;height:0;position:absolute;left:0;top:0;margin-top:35px;margin-left:35px;border:medium inset transparent}.mfp-arrow:after,.mfp-arrow .mfp-a{border-top-width:13px;border-bottom-width:13px;top:8px}.mfp-arrow:before,.mfp-arrow .mfp-b{border-top-width:21px;border-bottom-width:21px;opacity:0.7}.mfp-arrow-left{left:0}.mfp-arrow-left:after,.mfp-arrow-left .mfp-a{border-right:17px solid #fff;margin-left:31px}.mfp-arrow-left:before,.mfp-arrow-left .mfp-b{margin-left:25px;border
 -right:27px solid #fff}.mfp-arrow-right{right:0}.mfp-arrow-right:after,.mfp-arrow-right .mfp-a{border-left:17px solid #fff;margin-left:39px}.mfp-arrow-right:before,.mfp-arrow-right .mfp-b{border-left:27px solid #fff}.mfp-iframe-holder{padding-top:40px;padding-bottom:40px}.mfp-iframe-holder .mfp-content{line-height:0;width:100%;max-width:900px}.mfp-iframe-holder .mfp-close{top:-40px}.mfp-iframe-scaler{width:100%;height:0;overflow:hidden;padding-top:56.25%}.mfp-iframe-scaler iframe{position:absolute;display:block;top:0;left:0;width:100%;height:100%;box-shadow:0 0 8px rgba(0,0,0,0.6);background:#000}img.mfp-img{width:auto;max-width:100%;height:auto;display:block;line-height:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:40px 0 40px;margin:0 auto}.mfp-figure{line-height:0}.mfp-figure:after{content:'';position:absolute;left:0;top:40px;bottom:40px;display:block;right:0;width:auto;height:auto;z-index:-1;box-shadow:0 0 8px rgba(0,0,0,0.6);background
 :#444}.mfp-figure small{color:#bdbdbd;display:block;font-size:12px;line-height:14px}.mfp-figure figure{margin:0}.mfp-figure figcaption{margin-top:0;margin-bottom:0}.mfp-bottom-bar{margin-top:-36px;position:absolute;top:100%;left:0;width:100%;cursor:auto}.mfp-title{text-align:left;line-height:18px;color:#f3f3f3;word-wrap:break-word;padding-right:36px}.mfp-image-holder .mfp-content{max-width:100%}.mfp-gallery .mfp-image-holder .mfp-figure{cursor:pointer}@media screen and (max-width: 800px) and (orientation: landscape), screen and (max-height: 300px){.mfp-img-mobile .mfp-image-holder{padding-left:0;padding-right:0}.mfp-img-mobile img.mfp-img{padding:0}.mfp-img-mobile .mfp-figure:after{top:0;bottom:0}.mfp-img-mobile .mfp-figure small{display:inline;margin-left:5px}.mfp-img-mobile .mfp-bottom-bar{background:rgba(0,0,0,0.6);bottom:0;margin:0;top:auto;padding:3px 5px;position:fixed;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.mfp-img-mobile .mfp-bottom-ba
 r:empty{padding:0}.mfp-img-mobile .mfp-counter{right:5px;top:3px}.mfp-img-mobile .mfp-close{top:0;right:0;width:35px;height:35px;line-height:35px;background:rgba(0,0,0,0.6);position:fixed;text-align:center;padding:0}}@media all and (max-width: 900px){.mfp-arrow{-webkit-transform:scale(0.75);transform:scale(0.75)}.mfp-arrow-left{-webkit-transform-origin:0;transform-origin:0}.mfp-arrow-right{-webkit-transform-origin:100%;transform-origin:100%}.mfp-container{padding-left:6px;padding-right:6px}}.mfp-ie7 .mfp-img{padding:0}.mfp-ie7 .mfp-bottom-bar{width:600px;left:50%;margin-left:-300px;margin-top:5px;padding-bottom:5px}.mfp-ie7 .mfp-container{padding:0}.mfp-ie7 .mfp-content{padding-top:44px}.mfp-ie7 .mfp-close{top:0;right:0;padding-top:0}a:focus{outline:thin dotted #f89406;outline:5px auto #f89406;outline-offset:-2px}*,*:before,*:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}html{box-sizing:border-box;background-color:#fff;font-size:16px;-webkit-te
 xt-size-adjust:100%;-ms-text-size-adjust:100%}@media (min-width: 48em){html{font-size:18px}}@media (min-width: 64em){html{font-size:20px}}@media (min-width: 80em){html{font-size:22px}}body{margin:0}::-moz-selection{color:#fff;background:#000}::selection{color:#fff;background:#000}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}audio:not([controls]){display:none}a{color:#52adc8}a:hover,a:active{outline:0}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{max-width:100%;width:auto\9;height:auto;vertical-align:middle;border:0;-ms-interpolation-mode:bicubic}#map_canvas img,.google-maps img{max-width:none}button,input,select,textarea{margin:0;font-size:100%;vertical-align:middle}button,input{*overflow:visible;line-height:normal}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}button,html input[type=
 "button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}label,select,button,input[type="button"],input[type="reset"],input[type="submit"],input[type="radio"],input[type="checkbox"]{cursor:pointer}input[type="search"]{box-sizing:content-box;-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none}textarea{overflow:auto;vertical-align:top}html{position:relative;min-height:100%}body{margin:0;padding:0;color:#494e52;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;line-height:1.5}body.overflow--hidden{overflow:hidden}h1,h2,h3,h4,h5,h6{margin:2em 0 0.5em;line-height:1.2;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-weight:bold}h1{margin-top:0;font-size:1.563em}h2{font-size:1.25em}h3{font-
 size:1em}h4{font-size:.75em}h5{font-size:.75em}h6{font-size:.75em}small,.small{font-size:.75em}p{margin-bottom:1.3em}u,ins{text-decoration:none;border-bottom:1px solid #494e52}u a,ins a{color:inherit}del a{color:inherit}p,pre,blockquote,ul,ol,dl,figure,table,fieldset{orphans:3;widows:3}abbr[title],abbr[data-original-title]{text-decoration:none;cursor:help;border-bottom:1px dotted #494e52}blockquote{margin:2em 1em 2em 0;padding-left:1em;padding-right:1em;font-style:italic;border-left:0.25em solid #7a8288}blockquote cite{font-style:italic}blockquote cite:before{content:"\2014";padding-right:5px}a:hover,a:active{outline:0}tt,code,kbd,samp,pre{font-family:Monaco,Consolas,"Lucida Console",monospace}pre{overflow-x:auto}p>code,a>code,li>code,figcaption>code,td>code{padding-top:0.1rem;padding-bottom:0.1rem;font-size:.75em;background:#fafafa;border:1px solid #f2f3f3;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,0.125)}p>code:before,p>code:after,a>code:before,a>code:after,li>code:before,l
 i>code:after,figcaption>code:before,figcaption>code:after,td>code:before,td>code:after{letter-spacing:-0.2em;content:"\00a0"}hr{display:block;margin:1em 0;border:0;border-top:1px solid #f2f3f3}ul li,ol li{margin-bottom:0.5em}li ul,li ol{margin-top:0.5em}figure{display:-webkit-box;display:flex;-webkit-box-pack:justify;justify-content:space-between;-webkit-box-align:start;align-items:flex-start;flex-wrap:wrap;margin:2em 0}figure img,figure iframe,figure .fluid-width-video-wrapper{margin-bottom:1em}figure img{width:100%;border-radius:4px;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}figure>a{display:block}@media (min-width: 37.5em){figure.half>a,figure.half>img{width:calc(50% - 0.5em)}}figure.half figcaption{width:100%}@media (min-width: 37.5em){figure.third>a,figure.third>img{width:calc(33.3333% - 0.5em)}}figure.third figcaption{width:100%}figcaption{margin-bottom:0.5em;color:#777a7d;font-family:Georgia,Times,serif;font-size:.75em}figcaption a{color:inherit;t
 ext-decoration:none;border-bottom:1px solid #bdc1c4;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}figcaption a:hover{color:#000;border-bottom-color:#000}svg:not(:root){overflow:hidden}nav ul{margin:0;padding:0}nav li{list-style:none}nav a{text-decoration:none}nav ul li,nav ol li{margin-bottom:0}nav li ul,nav li ol{margin-top:0}b,i,strong,em,blockquote,p,q,span,figure,img,h1,h2,header,input,a,tr,td,form button,input[type="submit"],.btn,#goog-wm-sb,.highlight,.archive__item-teaser{-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.hidden{display:none;visibility:hidden}.load{display:none}.transparent{opacity:0}.visually-hidden,.screen-reader-text,.screen-reader-text span,.screen-reader-shortcut{position:absolute !important;clip:rect(1px, 1px, 1px, 1px);height:1px !important;width:1px !important;border:0 !important;overflow:hidden}body:hover .visually-hidden a,body:hover .visually-hidden input,body:hover .visually-hidden button{display:non
 e !important}.screen-reader-text:focus,.screen-reader-shortcut:focus{clip:auto !important;height:auto !important;width:auto !important;display:block;font-size:1em;font-weight:bold;padding:15px 23px 14px;background:#fff;z-index:100000;text-decoration:none;box-shadow:0 0 2px 2px rgba(0,0,0,0.6)}.skip-link{position:fixed;z-index:20;margin:0;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;white-space:nowrap}.skip-link li{height:0;width:0;list-style:none}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.cf{clear:both}.wrapper{max-width:1024px;margin-left:auto;margin-right:auto}.wrapper:after{content:" ";display:block;clear:both}.align-left{display:block;margin-left:auto;margin-right:auto}@media (min-width: 37.5em){.align-left{float:left;margin-right:1em}}.align-right{display:block;margin-left:auto;margin
 -right:auto}@media (min-width: 37.5em){.align-right{float:right;margin-left:1em}}.align-center{display:block;margin-left:auto;margin-right:auto}@media (min-width: 64em){.full{margin-right:-19.49153% !important}}.icon{display:inline-block;fill:currentColor;width:1em;height:1.1em;line-height:1;position:relative;top:-0.1em;vertical-align:middle}.social-icons .fa{color:#000}.social-icons .fa-behance,.social-icons .fa-behance-square{color:#1769FF}.social-icons .fa-dribbble{color:#ea4c89}.social-icons .fa-facebook,.social-icons .fa-facebook-square{color:#3b5998}.social-icons .fa-flickr{color:#ff0084}.social-icons .fa-foursquare{color:#0072b1}.social-icons .fa-github,.social-icons .fa-github-alt,.social-icons .fa-github-square{color:#171516}.social-icons .fa-google-plus,.social-icons .fa-google-plus-square{color:#dd4b39}.social-icons .fa-instagram{color:#517fa4}.social-icons .fa-lastfm,.social-icons .fa-lastfm-square{color:#d51007}.social-icons .fa-linkedin,.social-icons .fa-linkedin-squar
 e{color:#007bb6}.social-icons .fa-pinterest,.social-icons .fa-pinterest-p,.social-icons .fa-pinterest-square{color:#cb2027}.social-icons .fa-rss,.social-icons .fa-rss-square{color:#fa9b39}.social-icons .fa-soundcloud{color:#f30}.social-icons .fa-stack-exchange,.social-icons .fa-stack-overflow{color:#fe7a15}.social-icons .fa-tumblr,.social-icons .fa-tumblr-square{color:#32506d}.social-icons .fa-twitter,.social-icons .fa-twitter-square{color:#55acee}.social-icons .fa-vimeo,.social-icons .fa-vimeo-square{color:#1ab7ea}.social-icons .fa-vine{color:#00bf8f}.social-icons .fa-youtube,.social-icons .fa-youtube-square,.social-icons .fa-youtube-play{color:#b00}.social-icons .fa-xing,.social-icons .fa-xing-square{color:#006567}.navicon{position:relative;width:28px;height:4px;background:#fff;margin:auto;-webkit-transition:0.3s;transition:0.3s}.navicon:before,.navicon:after{content:"";position:absolute;left:0;width:28px;height:4px;background:#fff;-webkit-transition:0.3s;transition:0.3s}.navicon:
 before{top:-8px}.navicon:after{bottom:-8px}.close .navicon{background:transparent}.close .navicon:before,.close .navicon:after{-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;top:0;width:28px}.close .navicon:before{-webkit-transform:rotate3d(0, 0, 1, 45deg);transform:rotate3d(0, 0, 1, 45deg)}.close .navicon:after{-webkit-transform:rotate3d(0, 0, 1, -45deg);transform:rotate3d(0, 0, 1, -45deg)}@media (min-width: 64em){.sticky{clear:both;position:-webkit-sticky;position:sticky;top:2em}.sticky::after{clear:both;content:"";display:table}.sticky>*{display:block}}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.show-modal{overflow:hidden;position:relative}.show-modal:before{position:absolute;content:"";top:0;left:0;width:100%;height:100%;z-index:999;background-color:rgba(255,255,255,0.85)}.show-modal .modal{display:block}.modal{display
 :none;position:fixed;width:300px;top:50%;left:50%;margin-left:-150px;margin-top:-150px;min-height:0;z-index:9999;background:#fff;border:1px solid #f2f3f3;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,0.125)}.modal__title{margin:0;padding:0.5em 1em}.modal__supporting-text{padding:0 1em 0.5em 1em}.modal__actions{padding:0.5em 1em;border-top:1px solid #f2f3f3}.footnote{color:#9ba1a6;text-decoration:none}.footnotes{color:#9ba1a6}.footnotes ol,.footnotes li,.footnotes p{margin-bottom:0;font-size:.75em}a.reversefootnote{color:#7a8288;text-decoration:none}a.reversefootnote:hover{text-decoration:underline}.required{color:#ee5f5b;font-weight:bold}@-webkit-keyframes intro{0%{opacity:0}100%{opacity:1}}@keyframes intro{0%{opacity:0}100%{opacity:1}}table{margin-bottom:1em;width:100%;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em;border-collapse:collapse;border:1px solid #bdc1c4}table+table{ma
 rgin-top:1em}thead{background-color:#f2f3f3;border-bottom:1px solid #bdc1c4}th{padding:0.5em;font-weight:bold;text-align:left;border-right:1px solid #bdc1c4}td{padding:0.5em;border-bottom:1px solid #bdc1c4;border-right:1px solid #bdc1c4}tr,td,th{vertical-align:middle}.btn,#goog-wm-sb{display:inline-block;margin-bottom:0.25em;padding:0.5em 1em;color:#fff !important;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em;font-weight:bold;text-align:center;text-decoration:none;background-color:#7a8288;border:0 !important;border-radius:4px;cursor:pointer}.btn:hover,#goog-wm-sb:hover{background-color:#333}.btn .icon,#goog-wm-sb .icon{margin-right:0.5em}.btn .icon+.hidden,#goog-wm-sb .icon+.hidden{margin-left:-0.5em}.btn--block{display:block;width:100%}.btn--block+.btn--block{margin-top:0.25em}.btn--inverse{color:#7a8288 !important;border:1px solid #bdc1c4 !important;background-color:#fff}.btn--inv
 erse:hover{color:#fff !important;border-color:#7a8288}.btn--light-outline{border:1px solid #fff !important;background-color:transparent}.btn--info{background-color:#52adc8}.btn--info:hover{background-color:#428aa0}.btn--warning{background-color:#f89406}.btn--warning:hover{background-color:#c67605}.btn--success{background-color:#62c462}.btn--success:hover{background-color:#4e9d4e}.btn--danger{background-color:#ee5f5b}.btn--danger:hover{background-color:#be4c49}.btn--disabled{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);box-shadow:none;opacity:0.65}.btn--facebook{background-color:#3b5998}.btn--facebook:hover{background-color:#2f477a}.btn--twitter{background-color:#55acee}.btn--twitter:hover{background-color:#448abe}.btn--google-plus{background-color:#dd4b39}.btn--google-plus:hover{background-color:#b13c2e}.btn--linkedin{background-color:#007bb6}.btn--linkedin:hover{background-color:#006292}.btn--x-large{font-size:1.25em}.btn--large{font-size:1em}.btn--small{font-siz
 e:.6875em}.notice{margin:2em 0 !important;padding:1em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em !important;text-indent:initial;background-color:#f8f9f9;border-radius:4px;box-shadow:0 1px 1px rgba(189,193,196,0.25)}.notice h4{margin-top:0 !important;margin-bottom:0.75em}.page__content .notice h4{margin-bottom:0;font-size:1em}.notice p:last-child{margin-bottom:0 !important}.notice h4+p{margin-top:0;padding-top:0}.notice a{color:#bdc1c4}.notice a:hover{color:#717476}.notice code{background-color:#fcfcfc}.notice ul:last-child{margin-bottom:0}.notice--primary{margin:2em 0 !important;padding:1em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em !important;text-indent:initial;background-color:#f2f3f3;border-radius:4px;box-shadow:0 1px 1px rgba(122,130,136,0.25)}.notice--primary h4{margin-t
 op:0 !important;margin-bottom:0.75em}.page__content .notice--primary h4{margin-bottom:0;font-size:1em}.notice--primary p:last-child{margin-bottom:0 !important}.notice--primary h4+p{margin-top:0;padding-top:0}.notice--primary a{color:#7a8288}.notice--primary a:hover{color:#494e52}.notice--primary code{background-color:#f8f9f9}.notice--primary ul:last-child{margin-bottom:0}.notice--info{margin:2em 0 !important;padding:1em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em !important;text-indent:initial;background-color:#eef7fa;border-radius:4px;box-shadow:0 1px 1px rgba(82,173,200,0.25)}.notice--info h4{margin-top:0 !important;margin-bottom:0.75em}.page__content .notice--info h4{margin-bottom:0;font-size:1em}.notice--info p:last-child{margin-bottom:0 !important}.notice--info h4+p{margin-top:0;padding-top:0}.notice--info a{color:#52adc8}.notice--info a:hover{color:#316878}.notice--info code
 {background-color:#f6fbfc}.notice--info ul:last-child{margin-bottom:0}.notice--warning{margin:2em 0 !important;padding:1em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em !important;text-indent:initial;background-color:#fef4e6;border-radius:4px;box-shadow:0 1px 1px rgba(248,148,6,0.25)}.notice--warning h4{margin-top:0 !important;margin-bottom:0.75em}.page__content .notice--warning h4{margin-bottom:0;font-size:1em}.notice--warning p:last-child{margin-bottom:0 !important}.notice--warning h4+p{margin-top:0;padding-top:0}.notice--warning a{color:#f89406}.notice--warning a:hover{color:#955904}.notice--warning code{background-color:#fffaf3}.notice--warning ul:last-child{margin-bottom:0}.notice--success{margin:2em 0 !important;padding:1em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em !import
 ant;text-indent:initial;background-color:#eff9ef;border-radius:4px;box-shadow:0 1px 1px rgba(98,196,98,0.25)}.notice--success h4{margin-top:0 !important;margin-bottom:0.75em}.page__content .notice--success h4{margin-bottom:0;font-size:1em}.notice--success p:last-child{margin-bottom:0 !important}.notice--success h4+p{margin-top:0;padding-top:0}.notice--success a{color:#62c462}.notice--success a:hover{color:#3b763b}.notice--success code{background-color:#f7fcf7}.notice--success ul:last-child{margin-bottom:0}.notice--danger{margin:2em 0 !important;padding:1em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em !important;text-indent:initial;background-color:#fdefef;border-radius:4px;box-shadow:0 1px 1px rgba(238,95,91,0.25)}.notice--danger h4{margin-top:0 !important;margin-bottom:0.75em}.page__content .notice--danger h4{margin-bottom:0;font-size:1em}.notice--danger p:last-child{margin-bottom
 :0 !important}.notice--danger h4+p{margin-top:0;padding-top:0}.notice--danger a{color:#ee5f5b}.notice--danger a:hover{color:#8f3937}.notice--danger code{background-color:#fef7f7}.notice--danger ul:last-child{margin-bottom:0}.masthead{position:relative;border-bottom:1px solid #f2f3f3;-webkit-animation:intro 0.3s both;animation:intro 0.3s both;-webkit-animation-delay:0.15s;animation-delay:0.15s;z-index:20}.masthead__inner-wrap{max-width:1024px;margin-left:auto;margin-right:auto;clear:both;padding:1em 1em 1em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif}.masthead__inner-wrap:after{content:" ";display:block;clear:both}.masthead__inner-wrap::after{clear:both;content:"";display:table}@media (min-width: 80em){.masthead__inner-wrap{max-width:1280px}}.masthead__inner-wrap nav{z-index:10}.masthead__inner-wrap a{text-decoration:none}.masthead__menu ul{margin:0;padding:0;clear:both;list-style-type:none}.masth
 ead__menu-item{display:block;list-style-type:none;white-space:nowrap}.masthead__menu-item--lg{padding-right:2em;font-weight:700}.breadcrumbs{max-width:1024px;margin-left:auto;margin-right:auto;clear:both;margin-top:0;margin-bottom:0;padding-left:2em;padding-right:2em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;-webkit-animation:intro 0.3s both;animation:intro 0.3s both;-webkit-animation-delay:0.30s;animation-delay:0.30s}.breadcrumbs:after{content:" ";display:block;clear:both}.breadcrumbs::after{clear:both;content:"";display:table}@media (min-width: 64em){.breadcrumbs{padding-left:1em;padding-right:1em}}@media (min-width: 80em){.breadcrumbs{max-width:1280px}}.breadcrumbs ol{padding:0;list-style:none;font-size:.75em}@media (min-width: 64em){.breadcrumbs ol{width:83.05085%;float:right;margin-right:0}}@media (min-width: 80em){.breadcrumbs ol{padding-left:4.23729%}}.breadcrumbs li{display:inline}.brea
 dcrumbs .current{font-weight:bold}.pagination{clear:both;width:100%;float:left;margin-left:0;margin-right:0;clear:both;margin-top:1em;padding-top:1em}.pagination::after{clear:both;content:"";display:table}.pagination ul{margin:0;padding:0;list-style-type:none;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif}.pagination li{display:block;float:left;margin-left:-1px}.pagination li a{display:block;margin-bottom:0.25em;padding:0.5em 1em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:14px;font-weight:bold;line-height:1.5;text-align:center;text-decoration:none;color:#9ba1a6;border:1px solid #bdc1c4;border-radius:0}.pagination li a:hover{color:#3e8296}.pagination li a.current{color:#fff;background:#7a8288}.pagination li a.disabled{color:#dee0e1;pointer-events:none;cursor:not-allowed}.pagination li:first-child{margin
 -left:0}.pagination li:first-child a{border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination li:last-child a{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination--pager{display:block;padding:1em 2em;float:left;width:50%;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:1em;font-weight:bold;text-align:center;text-decoration:none;color:#52adc8;border:1px solid #bdc1c4;border-radius:4px}.pagination--pager:hover{color:#3e8296}.pagination--pager:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.pagination--pager:last-child{margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.pagination--pager.disabled{color:#dee0e1;pointer-events:none;cursor:not-allowed}.page__content+.pagination,.page__meta+.pagination,.comment__date+.pagination,.page__share+.pagination,.page__comments+.pagination{margin-top:2em;padding-top:2em;border-top:1px soli
 d #f2f3f3}.greedy-nav{position:relative;min-width:250px;background:#fff}.greedy-nav a{display:block;margin:0 1rem;padding:0.5rem 0;color:#7a8288;text-decoration:none}.greedy-nav a:hover{color:#5c6266}.greedy-nav button{position:absolute;height:100%;right:0;padding:0 0.5rem;border:0;outline:none;background-color:#7a8288;color:#fff;cursor:pointer}.greedy-nav .visible-links{display:table}.greedy-nav .visible-links li{display:table-cell;vertical-align:middle}.greedy-nav .visible-links li:first-child{font-weight:bold}.greedy-nav .visible-links li:first-child a{margin-left:0}.greedy-nav .visible-links li:last-child a{margin-right:0}.greedy-nav .visible-links a{position:relative}.greedy-nav .visible-links a:before{content:"";position:absolute;left:0;bottom:0;height:4px;background:#bdc1c4;width:100%;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;-webkit-transform:scaleX(0) translate3d(0, 0, 0);-ms-transform:scaleX(0) translate3d(0, 0, 0);transform:scaleX(0) translat
 e3d(0, 0, 0)}.greedy-nav .visible-links a:hover:before{-webkit-transform:scaleX(1);-ms-transform:scaleX(1);transform:scaleX(1)}.greedy-nav .hidden-links{position:absolute;top:100%;right:0;margin-top:15px;padding:5px;border:1px solid #f2f3f3;border-radius:4px;background:#fff;box-shadow:0 0 10px rgba(0,0,0,0.25)}.greedy-nav .hidden-links a{margin:0;padding:10px 20px;font-size:1em}.greedy-nav .hidden-links a:hover{color:#5c6266;background:#dee0e1}.greedy-nav .hidden-links:before{content:"";position:absolute;top:-11px;right:10px;width:0;border-style:solid;border-width:0 10px 10px;border-color:#f2f3f3 transparent;display:block;z-index:0}.greedy-nav .hidden-links:after{content:"";position:absolute;top:-10px;right:10px;width:0;border-style:solid;border-width:0 10px 10px;border-color:#fff transparent;display:block;z-index:1}.greedy-nav .hidden-links li{display:block;border-bottom:1px solid #f2f3f3}.greedy-nav .hidden-links li:last-child{border-bottom:none}.nav__list{margin-bottom:1.5em}.nav
 __list input[type="checkbox"],.nav__list label{display:none}@media (max-width: 63.9375em){.nav__list label{position:relative;display:inline-block;padding:0.5em 2.5em 0.5em 1em;color:#7a8288;font-size:.75em;font-weight:bold;border:1px solid #bdc1c4;border-radius:4px;z-index:20;-webkit-transition:0.2s ease-out;transition:0.2s ease-out;cursor:pointer}.nav__list label:before,.nav__list label:after{content:'';position:absolute;right:1em;top:1.25em;width:0.75em;height:0.125em;line-height:1;background-color:#7a8288;transition:0.2s ease-out}.nav__list label:after{transform:rotate(90deg)}.nav__list label:hover{color:#fff;border-color:#7a8288;background-color:#333}.nav__list label:hover:before,.nav__list label:hover:after{background-color:#fff}.nav__list input:checked+label{color:white;background-color:#333}.nav__list input:checked+label:before,.nav__list input:checked+label:after{background-color:#fff}.nav__list label:hover:after{transform:rotate(90deg)}.nav__list input:checked+label:hover:a
 fter{transform:rotate(0)}.nav__list ul{margin-bottom:1em}.nav__list a{display:block;padding:0.25em 0}}@media (max-width: 63.9375em) and (min-width: 64em){.nav__list a{padding-top:0.125em;padding-bottom:0.125em}}@media (max-width: 63.9375em){.nav__list a:hover{text-decoration:underline}}.nav__list .nav__items{margin:0;font-size:1.25rem}.nav__list .nav__items a{color:inherit}.nav__list .nav__items .active{margin-left:-0.5em;padding-left:0.5em;padding-right:0.5em;color:#fff;font-weight:bold;background:#7a8288;border-radius:4px}.nav__list .nav__items .active:hover{color:#fff}@media (max-width: 63.9375em){.nav__list .nav__items{position:relative;max-height:0;opacity:0%;overflow:hidden;z-index:10;-webkit-transition:0.3s ease-in-out;transition:0.3s ease-in-out;-webkit-transform:translate(0, 10%);-ms-transform:translate(0, 10%);transform:translate(0, 10%)}}@media (max-width: 63.9375em){.nav__list input:checked ~ .nav__items{-webkit-transition:0.5s ease-in-out;transition:0.5s ease-in-out;max
 -height:9999px;overflow:visible;opacity:1;margin-top:1em;-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);transform:translate(0, 0)}}.nav__title{margin:0;padding:0.5rem 1rem;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:1em;font-weight:bold}.nav__sub-title{display:block;margin:0.5rem 0;padding:0.5rem 0;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em;font-weight:bold;text-transform:uppercase;border-bottom:1px solid #f2f3f3}.toc{font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;color:#7a8288;text-transform:uppercase;letter-spacing:1px;background-color:#fff;border:1px solid #f2f3f3;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,0.125)}.toc .nav__title{color:#fff;font-size:.75em;background:#7a828
 8;border-top-left-radius:4px;border-top-right-radius:4px}.toc__menu{margin:0;padding:0;width:100%;list-style:none;font-size:0.8rem}.toc__menu a{display:block;padding:0.5rem 1rem;color:#7a8288;font-size:.6875em;font-weight:bold;line-height:1.5;border-bottom:1px solid #f2f3f3}.toc__menu a:hover{color:#000;background:#f2f3f3}.toc__menu>li:last-child a{border-bottom:none}.toc__menu li ul>li a{padding-left:2rem;font-weight:normal}.toc__menu li>ul li{display:none}@media (min-width: 48em){.toc__menu li>ul li{display:block}}.page__footer{clear:both;width:100%;float:left;margin-left:0;margin-right:0;clear:both;position:absolute;bottom:0;width:100%;clear:both;height:auto;margin-top:3em;color:#9ba1a6;-webkit-animation:intro 0.3s both;animation:intro 0.3s both;-webkit-animation-delay:0.45s;animation-delay:0.45s;background-color:#f2f3f3;border-top:1px solid #bdc1c4}.page__footer::after{clear:both;content:"";display:table}.page__footer footer{max-width:1024px;margin-left:auto;margin-right:auto;cl
 ear:both;margin-top:2em;padding:0 1em 2em}.page__footer footer:after{content:" ";display:block;clear:both}.page__footer footer::after{clear:both;content:"";display:table}@media (min-width: 80em){.page__footer footer{max-width:1280px}}.page__footer a{color:inherit;text-decoration:none}.page__footer a:hover{text-decoration:underline}.page__footer .fa{color:#9ba1a6}.page__footer-copyright{font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.6875em}.page__footer-follow ul{margin:0;padding:0;list-style-type:none}.page__footer-follow li{display:inline-block;padding-top:5px;padding-bottom:5px;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em;text-transform:uppercase}.page__footer-follow li+li:before{content:"";padding-right:5px}.page__footer-follow a{padding-right:10px;font-weight:bold}div.highlighter-rou
 ge,figure.highlight{position:relative;margin-bottom:1em;font-family:Monaco,Consolas,"Lucida Console",monospace;font-size:.6875em;line-height:1.8;border:1px solid #f2f3f3;border-radius:4px;background-color:#fafafa;box-shadow:0 1px 1px rgba(0,0,0,0.125)}div.highlighter-rouge:before,figure.highlight:before{position:absolute;top:0;right:0;padding:0.5em;background-color:#f2f3f3;content:"\f121";font-family:"fontawesome" !important;line-height:1;text-transform:none;speak:none}div.highlighter-rouge .highlight,figure.highlight .highlight{margin:0;padding:1em}figure.highlight{padding-left:1em;padding-right:1em}.highlight table{font-size:1em;border:0}.highlight table td{padding:5px;border:0}.highlight table td.gutter{padding-right:1em;color:#bdc1c4}.highlight table pre{margin:0}.highlight pre{width:100%}.highlight .c{color:#93a1a1}.highlight .err{color:#586e75}.highlight .g{color:#586e75}.highlight .k{color:#859900}.highlight .l{color:#586e75}.highlight .n{color:#586e75}.highlight .o{color:#85
 9900}.highlight .x{color:#cb4b16}.highlight .p{color:#586e75}.highlight .cm{color:#93a1a1}.highlight .cp{color:#859900}.highlight .c1{color:#93a1a1}.highlight .cs{color:#859900}.highlight .gd{color:#2aa198}.highlight .ge{color:#586e75;font-style:italic}.highlight .gr{color:#dc322f}.highlight .gh{color:#cb4b16}.highlight .gi{color:#859900}.highlight .go{color:#586e75}.highlight .gp{color:#586e75}.highlight .gs{color:#586e75;font-weight:bold}.highlight .gu{color:#cb4b16}.highlight .gt{color:#586e75}.highlight .kc{color:#cb4b16}.highlight .kd{color:#22b3eb}.highlight .kn{color:#859900}.highlight .kp{color:#859900}.highlight .kr{color:#22b3eb}.highlight .kt{color:#dc322f}.highlight .ld{color:#586e75}.highlight .m{color:#2aa198}.highlight .s{color:#2aa198}.highlight .na{color:#586e75}.highlight .nb{color:#B58900}.highlight .nc{color:#22b3eb}.highlight .no{color:#cb4b16}.highlight .nd{color:#22b3eb}.highlight .ni{color:#cb4b16}.highlight .ne{color:#cb4b16}.highlight .nf{color:#22b3eb}.hig
 hlight .nl{color:#586e75}.highlight .nn{color:#586e75}.highlight .nx{color:#586e75}.highlight .py{color:#586e75}.highlight .nt{color:#22b3eb}.highlight .nv{color:#22b3eb}.highlight .ow{color:#859900}.highlight .w{color:#586e75}.highlight .mf{color:#2aa198}.highlight .mh{color:#2aa198}.highlight .mi{color:#2aa198}.highlight .mo{color:#2aa198}.highlight .sb{color:#93a1a1}.highlight .sc{color:#2aa198}.highlight .sd{color:#586e75}.highlight .s2{color:#2aa198}.highlight .se{color:#cb4b16}.highlight .sh{color:#586e75}.highlight .si{color:#2aa198}.highlight .sx{color:#2aa198}.highlight .sr{color:#dc322f}.highlight .s1{color:#2aa198}.highlight .ss{color:#2aa198}.highlight .bp{color:#22b3eb}.highlight .vc{color:#22b3eb}.highlight .vg{color:#22b3eb}.highlight .vi{color:#22b3eb}.highlight .il{color:#2aa198}form{margin:0 0 5px 0}form fieldset{margin-bottom:5px;padding:0;border-width:0}form legend{display:block;width:100%;margin-bottom:10px;*margin-left:-7px;padding:0;color:#494e52;border:0;bord
 er-bottom:1px solid #ccc;white-space:normal}form p{margin-bottom:5px / 2}form ul{list-style-type:none;margin:0 0 5px 0;padding:0}form br{display:none}label,input,button,select,textarea{vertical-align:baseline;*vertical-align:middle}input,button,select,textarea{box-sizing:border-box;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif}label{display:block;margin-bottom:0.25em;color:#494e52;cursor:pointer}label small{font-size:.75em}label input,label textarea,label select{display:block}input,textarea,select{display:inline-block;width:100%;padding:0.25em;margin-bottom:0.5em;color:#494e52;background-color:#fff;border:1px solid #ccc;border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,0.125)}input:hover,textarea:hover,select:hover{border-color:#bdc1c4}.input-mini{width:60px}.input-small{width:90px}input[type="image"],input[type="checkbox"],input[type="radio"]{width:auto;height:auto;padding:0;margin:3px 0;*margin-t
 op:0;line-height:normal;cursor:pointer;border-radius:0;border:0 \9}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0;*width:13px;*height:13px}input[type="image"]{border:0;box-shadow:none}input[type="file"]{width:auto;padding:initial;line-height:initial;border:initial;background-color:transparent;background-color:initial;box-shadow:none}input[type="button"],input[type="reset"],input[type="submit"]{width:auto;height:auto;cursor:pointer;*overflow:visible}select,input[type="file"]{*margin-top:4px}select{width:auto;background-color:#fff}select[multiple],select[size]{height:auto}textarea{resize:vertical;height:auto;overflow:auto;vertical-align:top}input[type="hidden"]{display:none}.form{position:relative}.radio,.checkbox{padding-left:18px;font-weight:normal}.radio input[type="radio"],.checkbox input[type="checkbox"]{float:left;margin-left:-18px}.radio.inline,.checkbox.inline{display:inline-block;padding-top:5px;margin-bottom:0;vertical-align:middle}.radio.inline+.
 radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{opacity:0.5;cursor:not-allowed}input:focus,textarea:focus{border-color:#7a8288;outline:0;outline:thin dotted \9}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus,select:focus{box-shadow:none}.help-block,.help-inline{color:#52adc8}.help-block{display:block;margin-bottom:1em;line-height:1em}.help-inline{display:inline-block;vertical-align:middle;padding-left:5px}.form-inline input,.form-inline textarea,.form-inline select{display:inline-block;margin-bottom:0}.form-inline label{display:inline-block}.form-inline .radio,.form-inline .checkbox,.form-inline .radio{padding-left:0;margin-bottom:0;vertical-align:middle}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:left;margin-left:0;margin-right:3px}.form-search input,.form-search textarea,.form-search 
 select{display:inline-block;margin-bottom:0}.form-search .search-query{padding-left:14px;padding-right:14px;margin-bottom:0;border-radius:14px}.form-search label{display:inline-block}.form-search .radio,.form-search .checkbox,.form-inline .radio{padding-left:0;margin-bottom:0;vertical-align:middle}.form-search .radio input[type="radio"],.form-search .checkbox input[type="checkbox"]{float:left;margin-left:0;margin-right:3px}.form--loading:before{content:''}.form--loading .form__spinner{display:block}.form:before{position:absolute;top:0;left:0;width:100%;height:100%;background-color:rgba(255,255,255,0.7);z-index:10}.form__spinner{display:none;position:absolute;top:50%;left:50%;z-index:11}#goog-fixurl ul{list-style:none;margin-left:0;padding-left:0}#goog-fixurl ul li{list-style-type:none}#goog-wm-qt{width:auto;margin-right:10px;margin-bottom:20px;padding:8px 20px;display:inline-block;font-size:.75em;background-color:#fff;color:#000;border-width:2px !important;border-style:solid !import
 ant;border-color:gray;border-radius:4px}#main{max-width:1024px;margin-left:auto;margin-right:auto;clear:both;margin-top:2em;padding-left:1em;padding-right:1em;animation:intro 0.3s both;animation-delay:0.35s}#main:after{content:" ";display:block;clear:both}#main::after{clear:both;content:"";display:table}@media (min-width: 80em){#main{max-width:1280px}}@media (min-width: 64em){.page{width:83.05085%;float:right;margin-right:0;padding-left:4.23729%;padding-right:16.94915%}}.page .page__inner-wrap{clear:both;width:100%;float:left;margin-left:0;margin-right:0}.page .page__inner-wrap .page__content,.page .page__inner-wrap .page__meta,.page .page__inner-wrap .comment__date,.page .page__inner-wrap .page__share{clear:both;width:100%;float:left;margin-left:0;margin-right:0}.page__title{margin-top:0;line-height:1}.page__title+.page__meta,.page__title+.comment__date{margin-top:-0.5em}.page__lead{font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","
 Lucida Grande",Arial,sans-serif;font-size:1.25em}.page__content h2{padding-bottom:0.5em;border-bottom:1px solid #f2f3f3}.page__content p,.page__content li,.page__content dl{font-size:1em}.page__content p{margin:0 0 1.3em}.page__content a{text-decoration:none}.page__content a:hover{text-decoration:underline}.page__content a:hover img{box-shadow:0 0 10px rgba(0,0,0,0.25)}.page__content dt{margin-top:1em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-weight:bold}.page__content dd{margin-left:1em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em}.page__content .small{font-size:.75em}.page__content blockquote+.small{margin-top:-1.5em;padding-left:1.25rem}.page__hero{position:relative;margin-bottom:2em;clear:both;animation:intro 0.3s both;animation-delay:0.25s}.page__hero::after{clear:both;content:"";dis
 play:table}.page__hero--overlay{position:relative;margin-bottom:2em;padding:3em 0;clear:both;background-size:cover;background-repeat:no-repeat;background-position:center;animation:intro 0.3s both;animation-delay:0.25s}.page__hero--overlay::after{clear:both;content:"";display:table}.page__hero--overlay a{color:#fff}.page__hero--overlay .wrapper{padding-left:1em;padding-right:1em}@media (min-width: 80em){.page__hero--overlay .wrapper{max-width:1280px}}.page__hero--overlay .page__title,.page__hero--overlay .page__meta,.page__hero--overlay .comment__date,.page__hero--overlay .page__lead,.page__hero--overlay .btn,.page__hero--overlay #goog-wm-sb{color:#fff;text-shadow:1px 1px 4px rgba(0,0,0,0.5)}.page__hero--overlay .page__lead{max-width:768px}.page__hero--overlay .page__title{font-size:1.953em}@media (min-width: 37.5em){.page__hero--overlay .page__title{font-size:2.441em}}.page__hero-image{width:100%;height:auto;-ms-interpolation-mode:bicubic}.page__hero-caption{position:absolute;bottom
 :0;right:0;margin:0 auto;padding:2px 5px;color:#fff;font-family:Georgia,Times,serif;font-size:.6875em;background:#000;text-align:right;z-index:5;opacity:0.5;border-radius:4px 0 4px 0}@media (min-width: 64em){.page__hero-caption{padding:5px 10px}}.page__hero-caption a{color:#fff;text-decoration:none}.page__share{margin-top:2em;padding-top:1em;border-top:1px solid #f2f3f3}@media (max-width: 37.5em){.page__share .btn span,.page__share #goog-wm-sb span{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}}.page__share-title{margin-bottom:10px;font-size:.75em;text-transform:uppercase}.page__meta,.comment__date{margin-top:2em;color:#9ba1a6;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em}.page__meta p,.comment__date p{margin:0}.page__meta a,.comment__date a{color:inherit}.page__meta-title{margin-bottom:10px;font-size:.75em;text-transform:up
 percase}.page__taxonomy .sep{display:none}.page__taxonomy strong{margin-right:10px}.page__taxonomy-item{display:inline-block;margin-right:5px;margin-bottom:8px;padding:5px 10px;text-decoration:none;border:1px solid #bdc1c4;border-radius:4px}.page__taxonomy-item:hover{text-decoration:none;color:#3e8296}.page__comments{clear:both;width:100%;float:left;margin-left:0;margin-right:0}.page__comments-title{margin-top:2rem;margin-bottom:10px;padding-top:2rem;font-size:.75em;border-top:1px solid #f2f3f3;text-transform:uppercase}.page__comments-form{padding:1em;background:#f2f3f3;transition:all 0.2s ease-in-out}.page__comments-form.disabled input,.page__comments-form.disabled button,.page__comments-form.disabled textarea,.page__comments-form.disabled label{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);box-shadow:none;opacity:0.65}.comment{clear:both;margin:1em 0}.comment::after{clear:both;content:"";display:table}.comment:not(:last-child){border-bottom:1px solid #f2f3f3}.com
 ment__avatar-wrapper{float:left;width:60px;height:60px}@media (min-width: 64em){.comment__avatar-wrapper{width:100px;height:100px}}.comment__avatar{width:40px;height:40px;border-radius:50%}@media (min-width: 64em){.comment__avatar{width:80px;height:80px;padding:5px;border:1px solid #f2f3f3}}.comment__content-wrapper{float:right;width:calc(100% - 60px)}@media (min-width: 64em){.comment__content-wrapper{width:calc(100% - 100px)}}.comment__author{margin:0}.comment__author a{text-decoration:none}.comment__date{margin:0}.comment__date a{text-decoration:none}.page__related{margin-top:2em;padding-top:1em;border-top:1px solid #f2f3f3;clear:both;float:left}.page__related::after{clear:both;content:"";display:table}@media (min-width: 64em){.page__related{margin-left:21.18644%}}.page__related a{color:inherit;text-decoration:none}.page__related-title{margin-bottom:10px;font-size:.75em;text-transform:uppercase}.archive{margin-bottom:2em}@media (min-width: 48em){.archive{width:100%;float:left;marg
 in-left:0;margin-right:0}}@media (min-width: 64em){.archive{width:83.05085%;float:right;margin-right:0;padding-left:4.23729%}}.archive a{color:inherit;text-decoration:none}.archive__subtitle{margin:1.414em 0 0;padding-bottom:0.5em;font-size:1em;color:#9ba1a6;border-bottom:1px solid #f2f3f3}.archive__subtitle+.list__item .archive__item-title{margin-top:0.5em}.archive__item-title{margin-bottom:0.25em;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif}.archive__item-title a+a{opacity:0.5}.page__content .archive__item-title{margin-top:1em;border-bottom:none}.archive__item-excerpt{margin-top:0;font-size:.75em}.archive__item-excerpt+p{text-indent:0}.archive__item-teaser{border-radius:4px;overflow:hidden}.archive__item-teaser img{width:100%}.archive__item:hover .archive__item-teaser{box-shadow:0 0 10px rgba(0,0,0,0.25)}.archive__item:hover .archive__item-title{text-decoration:underline}@media (min-width: 48em)
 {.list__item{padding-right:200px}}@media (min-width: 64em){.list__item{padding-right:300px}}@media (min-width: 80em){.list__item{padding-right:400px}}.list__item .page__meta,.list__item .comment__date{margin:0 0 4px}.grid__item{margin-bottom:2em}.grid__item .page__meta,.grid__item .comment__date{margin:0 0 4px}.grid__item .archive__item-title{margin-top:0.5em;font-size:1em}.grid__item .archive__item-excerpt{display:none}@media (min-width: 37.5em){.grid__item{width:48.97959%;float:left}.grid__item:nth-child(2n+1){margin-left:0;margin-right:-100%;clear:both;margin-left:0}.grid__item:nth-child(2n+2){margin-left:51.02041%;margin-right:-100%;clear:none}.grid__item .archive__item-teaser{max-height:200px}}@media (min-width: 48em){.grid__item{margin-left:0;margin-right:0;width:23.46939%;float:left}.grid__item:nth-child(4n+1){margin-left:0;margin-right:-100%;clear:both;margin-left:0}.grid__item:nth-child(4n+2){margin-left:25.5102%;margin-right:-100%;clear:none}.grid__item:nth-child(4n+3){mar
 gin-left:51.02041%;margin-right:-100%;clear:none}.grid__item:nth-child(4n+4){margin-left:76.53061%;margin-right:-100%;clear:none}.grid__item .archive__item-teaser{max-height:120px}.grid__item .archive__item-excerpt{display:block;font-size:.75em}}.feature__wrapper{clear:both;margin-bottom:2em;border-bottom:1px solid #f2f3f3}.feature__wrapper::after{clear:both;content:"";display:table}.feature__item{margin-bottom:2em;font-size:1.25rem}@media (min-width: 37.5em){.feature__item{margin-bottom:0;width:32.20339%;float:left}.feature__item:nth-child(3n+1){margin-left:0;margin-right:-100%;clear:both;margin-left:0}.feature__item:nth-child(3n+2){margin-left:33.89831%;margin-right:-100%;clear:none}.feature__item:nth-child(3n+3){margin-left:67.79661%;margin-right:-100%;clear:none}.feature__item .feature__item-teaser{max-height:200px;overflow:hidden}}.feature__item--left{clear:both;width:100%;float:left;margin-left:0;margin-right:0;font-size:1.25rem}.feature__item--left .archive__item-teaser{margi
 n-bottom:2em}@media (min-width: 37.5em){.feature__item--left .archive__item-teaser{width:40.67797%;float:left;margin-right:1.69492%}.feature__item--left .archive__item-body{width:57.62712%;float:right;margin-right:0;padding-left:4.23729%;padding-right:8.47458%}}.feature__item--right{clear:both;width:100%;float:left;margin-left:0;margin-right:0;font-size:1.25rem}.feature__item--right .archive__item-teaser{margin-bottom:2em}@media (min-width: 37.5em){.feature__item--right{text-align:right}.feature__item--right .archive__item-teaser{width:40.67797%;float:right;margin-left:1.69492%}.feature__item--right .archive__item-body{width:57.62712%;float:left;margin-left:0;padding-left:4.23729%;padding-right:8.47458%}}.feature__item--center{clear:both;width:100%;float:left;margin-left:0;margin-right:0;font-size:1.25rem}.feature__item--center .archive__item-teaser{margin-bottom:2em}@media (min-width: 37.5em){.feature__item--center{text-align:center}.feature__item--center .archive__item-teaser{marg
 in:0 auto;width:40.67797%}.feature__item--center .archive__item-body{margin:0 auto;width:57.62712%}}.sidebar{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);clear:both;margin-bottom:1em}.sidebar::after{clear:both;content:"";display:table}@media (min-width: 64em){.sidebar{width:15.25424%;float:left;margin-right:1.69492%;opacity:0.75;-webkit-transition:opacity 0.2s ease-in-out;transition:opacity 0.2s ease-in-out}.sidebar:hover{opacity:1}}@media (min-width: 80em){.sidebar{padding-right:0}}.sidebar h2,.sidebar h3,.sidebar h4,.sidebar h5,.sidebar h6{margin-bottom:0;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif}.sidebar p,.sidebar li{font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:.75em;line-height:1.5}.sidebar img{width:100%}.sidebar__right{margin-bottom:1em}@media (min-width: 64em){.sideb
 ar__right{position:relative;float:right;width:200px;margin-left:2.54237%;z-index:10}}@media (min-width: 80em){.sidebar__right{width:300px}}.author__avatar{display:table-cell;vertical-align:top;width:36px;height:36px}@media (min-width: 64em){.author__avatar{display:block;width:auto;height:auto}}.author__avatar img{max-width:110px;border-radius:50%}@media (min-width: 64em){.author__avatar img{padding:5px;border:1px solid #f2f3f3}}.author__content{display:table-cell;vertical-align:top;padding-left:15px;padding-right:25px;line-height:1}@media (min-width: 64em){.author__content{display:block;width:100%;padding-left:0;padding-right:0}}.author__name{margin:0}@media (min-width: 64em){.author__name{margin-top:10px;margin-bottom:10px}}.sidebar .author__name{font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;font-size:1em}.author__bio{margin:0}@media (min-width: 64em){.author__bio{margin-top:10px;margin-bottom:20p
 x}}.author__urls-wrapper{position:relative;display:table-cell;vertical-align:middle;font-family:-apple-system,".SFNSText-Regular","San Francisco","Roboto","Segoe UI","Helvetica Neue","Lucida Grande",Arial,sans-serif;z-index:10;position:relative;cursor:pointer}.author__urls-wrapper li:last-child a{margin-bottom:0}@media (min-width: 64em){.author__urls-wrapper{display:block}}.author__urls-wrapper button{margin-bottom:0}@media (min-width: 64em){.author__urls-wrapper button{display:none}}.author__urls{display:none;position:absolute;right:0;margin-top:15px;padding:10px;list-style-type:none;border:1px solid #f2f3f3;border-radius:4px;background:#fff;z-index:-1;box-shadow:0 0 10px rgba(0,0,0,0.25);cursor:default}@media (min-width: 64em){.author__urls{display:block;position:relative;margin:0;padding:0;border:0;background:transparent;box-shadow:none}}.author__urls:before{display:block;content:"";position:absolute;top:-11px;left:calc(50% - 10px);width:0;border-style:solid;border-width:0 10px 1
 0px;border-color:#f2f3f3 transparent;z-index:0}@media (min-width: 64em){.author__urls:before{display:none}}.author__urls:after{display:block;content:"";position:absolute;top:-10px;left:calc(50% - 10px);width:0;border-style:solid;border-width:0 10px 10px;border-color:#fff transparent;z-index:1}@media (min-width: 64em){.author__urls:after{display:none}}.author__urls li{white-space:nowrap}.author__urls a{display:block;margin-bottom:5px;padding-right:5px;padding-top:2px;padding-bottom:2px;color:inherit;font-size:1em;text-decoration:none}.author__urls a:hover{text-decoration:underline}@media print{.masthead,.toc,.page__share,.page__related,.ads,.page__footer{display:none}}
+ */@font-face{font-family:'FontAwesome';src:url("../fonts/fontawesome-webfont.eot?v=4.6.3");src:url("../fonts/fontawesome-webfont.eot?#iefix&v=4.6.3") format("embedded-opentype"),url("../fonts/fontawesome-webfont.woff2?v=4.6.3") format("woff2"),url("../fonts/fontawesome-webfont.woff?v=4.6.3") format("woff"),url("../fonts/fontawesome-webfont.ttf?v=4.6.3") format("truetype"),url("../fonts/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular") format("svg");font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;wi
 dth:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:solid 0.08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate
 (90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{pos
 ition:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-remove:before,.fa-close:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-gear:before,.fa-cog:before{content:""}.fa-trash-o:before{content:""}.fa-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before{content:""}.fa-arrow
 -circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-rotate-right:before,.fa-repeat:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:
 ""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circ
 le:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before{content:""}.fa-check-circle:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-warning:before,.fa-exclamation-triangle:before{content:""}.fa-plane:befo
 re{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-gears:before,.fa-cogs:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before
 {content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before{content:""}.fa-arrow-circle-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{con
 tent:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:be

<TRUNCATED>


[3/8] incubator-rocketmq-site git commit: Merge remote-tracking branch 'origin/master' into asf-site

Posted by li...@apache.org.
Merge remote-tracking branch 'origin/master' into asf-site


Project: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/commit/f0ed1ac7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/tree/f0ed1ac7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/diff/f0ed1ac7

Branch: refs/heads/asf-site
Commit: f0ed1ac7a476e5fa0d255659b6391e8bb7f35b71
Parents: c6a0f07 fbef463
Author: Li Zhanhui <li...@gmail.com>
Authored: Thu Jun 8 13:08:58 2017 +0800
Committer: Li Zhanhui <li...@gmail.com>
Committed: Thu Jun 8 13:08:58 2017 +0800

----------------------------------------------------------------------
 _data/navigation.yml                    |   7 ++-
 _docs/01-quick-start-guide.md           |   5 +-
 _docs/02-motivation.md                  |  17 ++++--
 _docs/03-core-concept.md                |  24 ++++----
 _docs/04-cli-admin-tool.md              |  16 ++---
 _docs/05-cluster-deployment.md          |   2 +-
 _docs/06-best-practice-pull-request.md  |  55 ++++++++---------
 _docs/07-code-guidelines.md             |   2 +-
 _docs/07-frequently-asked-questions.md  |  88 +++++++++++++--------------
 _docs/08-release-manual.md              |  48 +++++++--------
 _docs/11-rocketmq-road-map.md           |  28 ++++-----
 _docs/12-rmq-batch-example.md           |  12 ++--
 _docs/13-rmq-broadcasting-example.md    |   6 +-
 _docs/14-rmq-deployment.md              |  26 ++++----
 _docs/16-rmq-architecture.md            |  16 ++---
 _docs/18-simple-example.md              |  24 ++++----
 _docs/best-practice-consumer.md         |  24 ++++----
 _docs/best-practice-create-pr.md        |  84 +++++++++++++++++++++++++
 _docs/best-practice-namesvr.md          |  26 ++++----
 _docs/best-practice-producer.md         |  40 ++++++------
 _pages/community.md                     |   2 +-
 _pages/customer.md                      |   9 ++-
 _sass/_archive.scss                     |   4 +-
 assets/images/community/tree-logo.png   | Bin 0 -> 9954 bytes
 assets/images/community/yhsoft-logo.png | Bin 0 -> 18076 bytes
 assets/images/eco.png                   | Bin 0 -> 116702 bytes
 26 files changed, 333 insertions(+), 232 deletions(-)
----------------------------------------------------------------------



[5/8] incubator-rocketmq-site git commit: Polish web site pages

Posted by li...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/faq/index.html
----------------------------------------------------------------------
diff --git a/content/docs/faq/index.html b/content/docs/faq/index.html
index 14864cb..9f87441 100644
--- a/content/docs/faq/index.html
+++ b/content/docs/faq/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="active">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     
@@ -456,93 +453,101 @@
 
 <ol>
   <li>If the topic sends a message within three days, then the consumer start consuming messages from the first message saved in the server.</li>
-  <li>If the topic sends a message three days ago, the consumer start consuming messages from the latest message in the server, in other words, starting from the tail of message queue.</li>
-  <li>If such consumer is the second reboot, then start to consumer message from the last consumption location.</li>
+  <li>If the topic sends a message three days ago, the consumer starts to consume messages from the latest message in the server, in other words, starting from the tail of message queue.</li>
+  <li>If such consumer is rebooted, then it starts to consume messages from the last consumption location.</li>
 </ol>
 
 <h3 id="2-how-to-reconsume-message-when-consumption-fails">2. How to reconsume message when consumption fails?</h3>
-<div class="highlighter-rouge"><pre class="highlight"><code>1.Cluster consumption pattern
-The consumer business logic code return Action.ReconsumerLater, or NULL, or throws an exception, the message will go up to 16 times retry procedure, if still fail to retry 16 times, then such message descarded.
 
-2.Broadcast consumption pattern
-The broadcaset consumption still ensures that a message is consumered at least once, but it is consumed fail without retry.
-</code></pre>
-</div>
+<ol>
+  <li>
+    <p>Cluster consumption pattern
+The consumer business logic code returns Action.ReconsumerLater, NULL, or throws an exception, if a message failed to be consumed, it will retry for up to 16 times, after that, the message would be descarded.</p>
+  </li>
+  <li>
+    <p>Broadcast consumption pattern
+The broadcaset consumption still ensures that a message is consumered at least once, but no resend option is provided.</p>
+  </li>
+</ol>
 
-<h3 id="3-how-to-deal-with-consume-message-failed">3. How to deal with consume message failed?</h3>
+<h3 id="3-how-to-query-the-failed-message-if-there-is-a-consumption-failure">3. How to query the failed message if there is a consumption failure?</h3>
 
 <ol>
-  <li>Use topic query by the time range, you can query to a period of time Topic received all the messages.</li>
+  <li>Using topic query by time, you can query messages within a period of time.</li>
   <li>Using Topic and Message Id to accurately query the message.</li>
   <li>Using Topic and Message Key accurately query a class of messages with the same Message Key.</li>
 </ol>
 
-<h3 id="4-delivery-exactly-once">4. Delivery exactly once?</h3>
+<h3 id="4-are-messages-delivered-exactly-once">4. Are messages delivered exactly once?</h3>
 
-<p>In most cases, the message is not repeated. As a distributed message middleware, in the network jitter, application processing timeout and other abnormal circumstances, can not guarantee that the message is not repeated, but can ensure that the message is not lost.</p>
+<p>RocketMQ ensures that all messages are delivered at least once. In most cases, the messages are not repeated.</p>
 
 <h3 id="5-how-to-add-a-new-broker">5. How to add a new broker?</h3>
 
 <ol>
-  <li>Start up a new broker and make it register to the same list of name servers.</li>
-  <li>On default, only internally system topics and consumer groups are created automatically. If you would like to have your business topic and consumer groups on the new node, remember to replicate them from the existing broker. You may turn to admin tool command to achieve this.</li>
+  <li>Start up a new broker and register it to the same list of name servers.</li>
+  <li>By default, only internal system topics and consumer groups are created automatically. If you would like to have your business topic and consumer groups on the new node, please replicate them from the existing broker. Admin tool and command lines are provided to handle this.</li>
 </ol>
 
 <h2 id="configuration-related">Configuration related</h2>
-<h3 id="1-how-long-the-message-is-saved-on-the-server">1. How long the message is saved on the server?</h3>
+<p>The following answers are all default values and can be modified by configuration.</p>
+<h3 id="1-how-long-are-the-messages-saved-on-the-server">1. How long are the messages saved on the server?</h3>
 
-<p>Stored messages are saved for up to 3 days, and messages that are not consumed for more than 3 days will be deleted.</p>
+<p>Stored messages are will be saved for up to 3 days, and messages that are not consumed for more than 3 days will be deleted.</p>
 
-<h3 id="2-what-is-the-length-limit-for-message-body">2. What is the length limit for message Body?</h3>
-<p>Generally 256KB, but can be modified by configuration.</p>
+<h3 id="2-what-is-the-size-limit-for-message-body">2. What is the size limit for message Body?</h3>
+<p>Generally 256KB.</p>
 
 <h3 id="3-how-to-set-the-number-of-consumer-threads">3. How to set the number of consumer threads?</h3>
-<p>When you start Consumer, set a ConsumeThreadNums property, example as follow.</p>
+<p>When you start Consumer, set a ConsumeThreadNums property, example is as follows:</p>
 
-<div class="highlighter-rouge"><pre class="highlight"><code>properties.put(PropertyKeyConst.ConsumeThreadNums,20);
+<div class="highlighter-rouge"><pre class="highlight"><code>consumer.setConsumeThreadMin(20);
+consumer.setConsumeThreadMax(20);
 </code></pre>
 </div>
 
 <h2 id="errors">Errors</h2>
-<h3 id="1-start-producer-or-consumer-failed-and-producer-group-or-consumer-repeat">1. Start producer or consumer failed and producer group or consumer repeat?</h3>
-<p>Reason:In the same JVM inside using the same Producer ID/Consumer ID launched multiple instances of Producer/Consumer, it may cause the client to start failure.</p>
+<h3 id="1-if-you-start-a-producer-or-consumer-failed-and-the-error-message-is-producer-group-or-consumer-repeat">1. If you start a producer or consumer failed and the error message is producer group or consumer repeat?</h3>
+<p>Reason:Using the same Producer /Consumer Group to launch multiple instances of Producer/Consumer in the same JVM may cause the client fail to start.</p>
 
-<p>Solution: Ensure that a JVM corresponds to a Producer ID/Consumer ID starts only with a Producer/Consumer instance.</p>
+<p>Solution: Make sure that a JVM corresponding to one Producer /Consumer Group starts only with one Producer/Consumer instance.</p>
 
-<h3 id="2-in-broadcast-mode-consumer-start-loading-json-file-failed">2. In broadcast mode, consumer start loading json file failed?</h3>
-<p>Reason: Fastjson version is too low to cause the broadcast consumer to load a local offsets.json file failed, which causing the consumer boot failure.</p>
+<h3 id="2-if-consumer-failed-to-start-loading-json-file-in-broadcast-mode">2. If consumer failed to start loading json file in broadcast mode?</h3>
+<p>Reason: Fastjson version is too low to allow the broadcast consumer to load local offsets.json, causing the consumer boot failure. Damaged fastjson file can also cause the same problem.</p>
 
-<p>Solution: Fastjson version will be upgraded to rocketmq client dependent version, to ensure that the local offsets.json can be normal loading. By default offsets.json file is in /home/{user}/.rocketmq_offsets.</p>
+<p>Solution: Fastjson version has to be upgraded to rocketmq client dependent version to ensure that the local offsets.json can be loaded. By default offsets.json file is in /home/{user}/.rocketmq_offsets. Or check the integrity of fastjson.</p>
 
-<h3 id="3-what-if-a-broker-crashes">3. What if a broker crashes?</h3>
+<h3 id="3-what-is-the-impact-of-a-broker-crash">3. What is the impact of a broker crash?</h3>
 
-<div class="highlighter-rouge"><pre class="highlight"><code>1. Master crashes
-   Messages can no longer be sent to this broker set, but if you have another broker set available, messages can be still sent there given the topic is present.Messages can still be consumed from slaves.
-2. One slaves crashes
-   As long as there is another working slave, no impact on writing messages;No impact on consuming messages except when the consumer group is set to consume from this slave preferably. By default, it is from master.
-3. All slaves crash
-   No impact on writing messages on master, but if master is a SYNC_MASTER, the producer will get a result of SLAVE_NOT_AVAILABLE indicating that the message is not replicated to any slaves.No impact on consuming messages except that if the consumer group is set to consume from slave preferably. By default, it is from master.
-</code></pre>
-</div>
+<ol>
+  <li>Master crashes</li>
+</ol>
 
-<h3 id="4-producer-complains-no-topic-route-info-how-to-diagnose">4. Producer complains “No Topic Route Info”, how to diagnose?</h3>
-<p>This happens when you are trying to send message to a topic whose route info is not available to the producer.</p>
+<p>Messages can no longer be sent to this broker set, but if you have another broker set available, messages can still be sent given the topic is present. Messages can still be consumed from slaves.</p>
 
 <ol>
-  <li>Confirm the producer can connect to a name server and capable of fetching routing meta info from it.</li>
-  <li>Confirm that name servers do contain routing meta info of the topic. You may query the routing meta info from name server through topicRoute of admin tools or web console.</li>
-  <li>Confirm your brokers are sending heartbeats to the same list of name servers your producer is connecting to.</li>
-  <li>Confirm that the topic’s perm is 6(rw-), or at least 2(-w-).</li>
+  <li>Some slave crash</li>
 </ol>
 
-<p>If you can’t find this topic, create it via admin tools command updateTopic or web console on a broker.</p>
+<p>As long as there is another working slave, there will be no impact on sending messages. There will also be no impact on consuming messages except when the consumer group is set to consume from this slave preferably. By default, comsumer group consumes from master.</p>
 
-<h2 id="features">Features</h2>
-<h3 id="1-what-kind-of-consumption-pattern-does-rocketmq-provide">1. What kind of consumption pattern does RocketMQ provide?</h3>
-<p>In RocketMQ, it providers two types of consumption patterns, such as Clustering consumption patterns and broadcasting consumption patterns. See the documentation on cluster patterns for details.</p>
+<ol>
+  <li>All slaves crash</li>
+</ol>
+
+<p>There will be no impact on sending messages to master, but, if the master is SYNC_MASTER, producer will get a SLAVE_NOT_AVAILABLE indicating that the message is not sent to any slaves. There will also be no impact on consuming messages except that if the consumer group is set to consume from slave preferably. By default, comsumer group consumes from master.</p>
+
+<h3 id="4-producer-complains-no-topic-route-info-how-to-diagnose">4. Producer complains “No Topic Route Info”, how to diagnose?</h3>
+<p>This happens when you are trying to send messages to a topic whose routing info is not available to the producer.</p>
+
+<ol>
+  <li>Make sure that the producer can connect to a name server and is capable of fetching routing meta info from it.</li>
+  <li>Make sure that name servers do contain routing meta info of the topic. You may query the routing meta info from name server through topicRoute using admin tools or web console.</li>
+  <li>Make sure that your brokers are sending heartbeats to the same list of name servers your producer is connecting to.</li>
+  <li>Make sure that the topic’s permssion is 6(rw-), or at least 2(-w-).</li>
+</ol>
 
-<h3 id="2-how-many-kinds-of-message-type-are-supported">2. How many kinds of message type are supported?</h3>
-<p>There are several types of messages that are currently supported in rocketmq,such as common message, timed message, transaction message, sequential message and delay message. User can select the appropriate message type according to the needs of the business.</p>
+<p>If you can’t find this topic, create it on a broker via admin tools command updateTopic or web console.</p>
 
         
       </section>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/filter-by-sql92-example/index.html
----------------------------------------------------------------------
diff --git a/content/docs/filter-by-sql92-example/index.html b/content/docs/filter-by-sql92-example/index.html
index dd751de..63f011e 100644
--- a/content/docs/filter-by-sql92-example/index.html
+++ b/content/docs/filter-by-sql92-example/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="active">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/motivation/index.html
----------------------------------------------------------------------
diff --git a/content/docs/motivation/index.html b/content/docs/motivation/index.html
index a062d7d..9e2d584 100644
--- a/content/docs/motivation/index.html
+++ b/content/docs/motivation/index.html
@@ -18,7 +18,7 @@
 
 
 
-<meta name="description" content="At early stages, we constructed our distributed messaging middleware based on ActiveMQ 5.x(prior to 5.3). Our multinational business uses it for async communication, search, social network activity stream, data pipeline, even in its trade processes. As our trade business throughput rises, pressure originating from our messaging cluster also become urgent.">
+<meta name="description" content="At early stages, we constructed our distributed messaging middleware based on ActiveMQ 5.x(prior to 5.3). Our multinational business uses it for asynchronous communication, search, social network activity stream, data pipeline,even in its trade processes. As our trade business throughput rises, pressure originating from our messaging clusteralso becomes urgent.">
 
 
 
@@ -30,13 +30,13 @@
 
 
 
-  <meta property="og:description" content="At early stages, we constructed our distributed messaging middleware based on ActiveMQ 5.x(prior to 5.3). Our multinational business uses it for async communication, search, social network activity stream, data pipeline, even in its trade processes. As our trade business throughput rises, pressure originating from our messaging cluster also become urgent.">
+  <meta property="og:description" content="At early stages, we constructed our distributed messaging middleware based on ActiveMQ 5.x(prior to 5.3). Our multinational business uses it for asynchronous communication, search, social network activity stream, data pipeline,even in its trade processes. As our trade business throughput rises, pressure originating from our messaging clusteralso becomes urgent.">
 
 
 
   <meta name="twitter:site" content="@ApacheRocketMQ">
   <meta name="twitter:title" content="Motivation">
-  <meta name="twitter:description" content="At early stages, we constructed our distributed messaging middleware based on ActiveMQ 5.x(prior to 5.3). Our multinational business uses it for async communication, search, social network activity stream, data pipeline, even in its trade processes. As our trade business throughput rises, pressure originating from our messaging cluster also become urgent.">
+  <meta name="twitter:description" content="At early stages, we constructed our distributed messaging middleware based on ActiveMQ 5.x(prior to 5.3). Our multinational business uses it for asynchronous communication, search, social network activity stream, data pipeline,even in its trade processes. As our trade business throughput rises, pressure originating from our messaging clusteralso becomes urgent.">
   <meta name="twitter:url" content="">
 
   
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     
@@ -428,7 +425,7 @@
 
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Motivation">
-    <meta itemprop="description" content="At early stages, we constructed our distributed messaging middleware based on ActiveMQ 5.x(prior to 5.3). Our multinational business uses it for async communication, search, social network activity stream, data pipeline, even in its trade processes. As our trade business throughput rises, pressure originating from our messaging cluster also become urgent.">
+    <meta itemprop="description" content="At early stages, we constructed our distributed messaging middleware based on ActiveMQ 5.x(prior to 5.3). Our multinational business uses it for asynchronous communication, search, social network activity stream, data pipeline,even in its trade processes. As our trade business throughput rises, pressure originating from our messaging clusteralso becomes urgent.">
     <meta itemprop="datePublished" content="June 08, 2017">
     <meta itemprop="dateModified" content="December 16, 2016">
 
@@ -442,7 +439,10 @@
       
 
       <section class="page__content" itemprop="text">
-        <p>At early stages, we constructed our distributed messaging middleware based on ActiveMQ 5.x(prior to 5.3). Our multinational business uses it for async communication, search, social network activity stream, data pipeline, even in its trade processes. As our trade business throughput rises, pressure originating from our messaging cluster also become urgent.</p>
+        <p>At early stages, we constructed our distributed messaging middleware based on ActiveMQ 5.x(prior to 5.3). Our 
+multinational business uses it for asynchronous communication, search, social network activity stream, data pipeline,
+even in its trade processes. As our trade business throughput rises, pressure originating from our messaging cluster
+also becomes urgent.</p>
 
 <aside class="sidebar__right">
 <nav class="toc">
@@ -457,10 +457,16 @@
 
 <h1 id="why-rocketmq-">Why RocketMQ ?</h1>
 
-<p>Based on our research, with increased queues and virtual topics in use, ActiveMQ IO module reaches a bottleneck. We tried our best to solve this problem through throttling, circuit breaker or degradation, but it didn’t work well. So we begin to focus on the popular messaging solution Kafka at that time. Unfortunately, Kafka can not meet our requirements especially low latency and high reliability, see <a href="/rocketmq/how-to-support-more-queues-in-rocketmq/">here</a> for details.</p>
+<p>Based on our research, with increased queues and virtual topics in use, ActiveMQ IO module reaches a bottleneck. We 
+tried our best to solve this problem through throttling, circuit breaker or degradation, but it did not work well. So 
+we begin to focus on the popular messaging solution Kafka at that time. Unfortunately, Kafka can not meet our 
+requirements especially in terms of low latency and high reliability, see <a href="/rocketmq/how-to-support-more-queues-in-rocketmq/">here</a> for details.</p>
 
-<p>In this context, we decided to invent a new messaging engine to handle a broader set of use cases, ranging from traditional pub/sub scenarios to high volume realtime zero-loss tolerance transaction system. We believe this solution can be beneficial, so we would like to open source it to the community. Today, more than 100 companies are using the open source version of RocketMQ in their business. We also published a commercial distribution based on RocketMQ, a Platform as a Service (PaaS) product called the
-<a href="https://intl.aliyun.com/">Alibaba Cloud Platform</a>.</p>
+<p>In this context, we decided to invent a new messaging engine to handle a broader set of use cases, ranging from 
+traditional pub/sub scenarios to high volume real-time zero-loss tolerance transaction system. We believe this solution
+can be beneficial, so we would like to open source it to the community. Today, more than 100 companies are using the 
+open source version of RocketMQ in their business. We also published a commercial distribution based on RocketMQ, a PaaS
+ product called the <a href="https://intl.aliyun.com/">Alibaba Cloud Platform</a>.</p>
 
 <p>The following table demonstrates the comparison between RocketMQ, ActiveMQ and Kafka (Apache’s most popular messaging solutions according to <a href="https://github.com/akullpp/awesome-java">awesome-java</a>):</p>
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/order-example/index.html
----------------------------------------------------------------------
diff --git a/content/docs/order-example/index.html b/content/docs/order-example/index.html
index 6191f5b..f9d8e54 100644
--- a/content/docs/order-example/index.html
+++ b/content/docs/order-example/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/pull-request/index.html
----------------------------------------------------------------------
diff --git a/content/docs/pull-request/index.html b/content/docs/pull-request/index.html
index 5f25838..8af1363 100644
--- a/content/docs/pull-request/index.html
+++ b/content/docs/pull-request/index.html
@@ -13,7 +13,7 @@
 
 
 
-<title>Best Practice in Pull Request - Apache RocketMQ</title>
+<title>How to manage Pull Request - Apache RocketMQ</title>
 
 
 
@@ -25,7 +25,7 @@
 
 <meta property="og:locale" content="en">
 <meta property="og:site_name" content="Apache RocketMQ">
-<meta property="og:title" content="Best Practice in Pull Request">
+<meta property="og:title" content="How to manage Pull Request">
 
 
 
@@ -35,7 +35,7 @@
 
 
   <meta name="twitter:site" content="@ApacheRocketMQ">
-  <meta name="twitter:title" content="Best Practice in Pull Request">
+  <meta name="twitter:title" content="How to manage Pull Request">
   <meta name="twitter:description" content="This page guides you through Git setup and contribution process.">
   <meta name="twitter:url" content="">
 
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="active">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="active">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     
@@ -427,7 +424,7 @@
 
 
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
-    <meta itemprop="headline" content="Best Practice in Pull Request">
+    <meta itemprop="headline" content="How to manage Pull Request">
     <meta itemprop="description" content="This page guides you through Git setup and contribution process.">
     <meta itemprop="datePublished" content="June 08, 2017">
     <meta itemprop="dateModified" content="December 24, 2016">
@@ -435,7 +432,7 @@
     <div class="page__inner-wrap">
       
         <header>
-          <h1 class="page__title" itemprop="headline">Best Practice in Pull Request
+          <h1 class="page__title" itemprop="headline">How to manage Pull Request
 </h1>
           
         </header>
@@ -475,19 +472,16 @@
 <p>Cloning this locally will set up <code class="highlighter-rouge">origin</code> to point to your remote fork on github as the default remote.
 Now you can create your pull requests.</p>
 
-<p>You will need to update a local master sometimes (to merge to your development branches sometimes).
+<p>You will need to update a local master sometimes (to merge to your development branches).
 For this, you have to add remote for RocketMQ mirror as follows,</p>
 
 <div class="highlighter-rouge"><pre class="highlight"><code>git remote add upstream https://github.com/apache/incubator-rocketmq.git
 </code></pre>
 </div>
 
-<p>and update your local master via <code class="highlighter-rouge">git fetch</code> followed by <code class="highlighter-rouge">git rebase</code>, for instance, as follows</p>
-
-<div class="highlighter-rouge"><pre class="highlight"><code>git fetch upstream master
-git rebase upstream/master
-</code></pre>
-</div>
+<p>and update your local master via <code class="highlighter-rouge">git fetch</code> followed by <code class="highlighter-rouge">git rebase</code>, for instance:
+    git fetch upstream master
+    git rebase upstream/master</p>
 
 <h1 id="git-setup-for-committers">Git setup for Committers</h1>
 <p>In addition to contributors’ configurations, committers will have to attach the apache git repo:</p>
@@ -519,7 +513,7 @@ apache    https://git-wip-us.apache.org/repos/asf/incubator-rocketmq.git (push)
 </code></pre>
 </div>
 
-<p><em>To guarantee code quality of the master branch, all but minor changes should go through pull requests reviewed by peer committers.</em></p>
+<p><em>To ensure the code quality of the master branch, all but minor changes should go through pull requests reviewed by peer committers.</em></p>
 
 <h1 id="do-some-work-on-the-branch">Do some work on the branch</h1>
 
@@ -528,7 +522,7 @@ git push origin ROCKETMQ-xxxx # notice pushing to **origin** not **apache**
 </code></pre>
 </div>
 
-<p>Once you are ready to commit to the apache remote you can merge and push them directly or better yet create a PR.</p>
+<p>Once you are ready to commit to the apache remote you can merge and push them directly, otherwise always create a PR.</p>
 
 <h1 id="how-to-create-a-pr-committers">How to create a PR (committers)</h1>
 
@@ -541,31 +535,31 @@ git push origin ROCKETMQ-xxxx
 
 <ol>
   <li>
-    <p>Go to your ROCKETMQ-xxxx branch on Github. Since you forked it from Github’s apache/incubator-rocketmq. it will default any PR to go to apache/master.</p>
+    <p>Go to your ROCKETMQ-xxxx branch on Github. Since you forked it from Github’s apache/incubator-rocketmq. By default all PR will go to apache/master.</p>
   </li>
-  <li>Click the green “Compare, review, and create pull request” button.You can edit the to and from for the PR if it isn’t correct. The “base fork” should be apache/incubator-rocketmq unless you are collaborating separately with one of the committers on the list. The “base” will be master. Don’t submit a PR to one of the other branches unless you know what you are doing. The “head fork” will be your forked repo and the “compare” will be your ROCKETMQ-xxxx branch.</li>
+  <li>Click the green “Compare, review, and create pull request” button. You can edit the to and from for the PR if it isn’t correct. The “base fork” should be apache/incubator-rocketmq unless you are collaborating with one of the committers on the list. The “base” will be master. Don’t submit a PR to any other branches unless permitted by branch owner. The “head fork” will be your forked repo and the “compare” will be your ROCKETMQ-xxxx branch.</li>
   <li>Click the “Create pull request” button and name the request “ROCKETMQ-xxxx” all caps. This will connect the comments of the PR to the mailing list and JIRA comments.</li>
-  <li>From now on the PR lives on github’s apache/incubator-rocketmq. You use the commenting UI there.</li>
-  <li>If you are looking for a review or sharing with someone else say so in the comments but don’t worry about automated merging of your PR – you will have to do that later. The PR is tied to your branch so you can respond to comments, make fixes, and commit them from your local repo. They will appear on the PR page and be mirrored to Jira and the mailing list.</li>
-  <li>When you are satisfied and want to push it to Apache’s remote repo proceed with Merging a PR</li>
+  <li>From now on the PR lives on github’s apache/incubator-rocketmq. You can use the commenting UI there.</li>
+  <li>If you are looking for a review or wanting to share with someone else please write a note in the comments and don’t worry about automated merging of your PR – you will have to do that later. The PR is tied to your branch so you can respond to comments, make fixes, and commit them from your local repo. They will appear on the PR page and be mirrored to JIRA and the mailing list.</li>
+  <li>When you are satisfied and want to push it to Apache’s remote repo, you can merge this PR.</li>
 </ol>
 
 <h1 id="how-to-create-a-pr-contributors">How to create a PR (contributors)</h1>
 <p>Before you create a pull request, make sure</p>
 <ol>
   <li>A corresponding <a href="https://issues.apache.org/jira/browse/ROCKETMQ/">JIRA</a> issue is created and has a clear problem description.</li>
-  <li>You follow <a href="/docs/code-guidelines/">Coding Guidelines</a>.</li>
-  <li>You have unit tests for it, whenever applicable.</li>
+  <li>Make sure you follow <a href="/docs/code-guidelines/">Coding Guidelines</a>.</li>
+  <li>You have unit tests for everything you are about to commit.</li>
 </ol>
 
-<p>For information on creating pull requests, see <a href="https://help.github.com/articles/creating-a-pull-request/">GitHub PR docs</a>.</p>
+<p>For information about creating pull requests, please check <a href="https://help.github.com/articles/creating-a-pull-request/">GitHub PR docs</a>.</p>
 
 <p>Pull requests are made to <code class="highlighter-rouge">apache/incubator-rocketmq</code> repository on Github. 
-In the Github UI you should pick the master branch to target the PR as described in the section for committers. <br /> 
-You pull request will be reviewed and commented by committers, and issues can be discussed the contribution in progress. When all reviewers are positive on the pull request, it will be merged.</p>
+In the Github UI you should pick the master branch as target of the PR. <br />
+You pull request will be reviewed and commented by committers, and issues can be discussed. When all reviewers are positive on the pull request, it will be merged.</p>
 
 <h1 id="merging-a-pr-yours-or-contributors">Merging a PR (yours or contributors)</h1>
-<p>Start with reading <a href="https://help.github.com/articles/checking-out-pull-requests-locally/">GitHub PR merging locally</a>. Remember that pull requests are equivalent to a remote github branch with potentially a multitude of commits. In this case it is recommended to squash remote commit history to have one commit per issue, rather than merging in a multitude of contributor’s commits. In order to do that, as well as close the PR at the same time, it is recommended to use squash commits.
+<p>Start with reading <a href="https://help.github.com/articles/checking-out-pull-requests-locally/">GitHub PR merging locally</a>. Remember that pull requests are equivalent to a remote github branch with potentially a multitude of commits. In this case it is recommended to squash remote commit history to have one commit per issue, rather than merging in a multitude of contributor’s commits. In order to do that, as well as to close the PR at the same time, it is recommended to use squash commits.
 Merging pull requests are equivalent to a “pull” of a contributor’s branch:</p>
 
 <div class="highlighter-rouge"><pre class="highlight"><code>git checkout master      # switch to local master branch
@@ -574,9 +568,9 @@ git pull --squash https://github.com/cuser/incubator-rocketmq.git ROCKETMQ-xxxx
 </code></pre>
 </div>
 
-<p><code class="highlighter-rouge">--squash</code> ensures all PR history is squashed into single commit, and allows committer to use his/her own message. Read git help for merge or pull for more information about <code class="highlighter-rouge">--squash</code> option. In this example we assume that the contributor’s Github handle is “cuser” and the PR branch name is “ROCKETMQ-xxxx”. Next, resolve conflicts, if any, or ask a contributor to rebase on top of master, if PR went out of sync.</p>
+<p><code class="highlighter-rouge">--squash</code> ensures all PR history is squashed into single commit, and allows committer to use his/her own message. Please refer to git help for merge or pull for more information about <code class="highlighter-rouge">--squash</code> option. In this example we assume that the contributor’s Github handle is “cuser” and the PR branch name is “ROCKETMQ-xxxx”. Next, resolve all conflicts, or ask a contributor to rebase on top of master, if PR went out of sync.</p>
 
-<p>If you are ready to merge your own (committer’s) PR you probably only need to merge (not pull), since you have a local copy that you’ve been working on. This is the branch that you used to create the PR.</p>
+<p>If you are ready to merge your own (committer’s) PR you only need to merge (not pull), since you have a local copy that you’ve been working on. This is the branch that you used to create the PR.</p>
 
 <div class="highlighter-rouge"><pre class="highlight"><code>git checkout master      # switch to local master branch
 git pull apache master   # fast-forward to current remote HEAD
@@ -584,14 +578,14 @@ git merge --squash ROCKETMQ-xxxx
 </code></pre>
 </div>
 
-<p>Remember to run regular patch checks, build with tests enabled, and change CHANGELOG.
-If everything is fine, you now can commit the squashed request along the lines</p>
+<p>Please run regular patch checks, build with tests enabled, and change CHANGELOG whenever needed.
+If all requirements are met, you can commit the squashed request using:</p>
 
 <div class="highlighter-rouge"><pre class="highlight"><code>git commit --author="contributor_name &lt;contributor_email&gt;" -a -m "ROCKETMQ-XXXX description closes apache/incubator-rocketmq#ZZ"
 </code></pre>
 </div>
 
-<p>ROCKETMQ-XXXX is all caps and where ZZ is the pull request number on apache/incubator-rocketmq repository. Including “closes apache/incubator-rocketmq#ZZ” will close the PR automatically. More information is found here <a href="https://help.github.com/articles/closing-issues-via-commit-messages/">GitHub PR closing docs.</a>.
+<p>ROCKETMQ-XXXX is all capitalized and ZZ is the pull request number on apache/incubator-rocketmq repository. Including “closes apache/incubator-rocketmq#ZZ” will close the PR automatically. More information can be found here <a href="https://help.github.com/articles/closing-issues-via-commit-messages/">GitHub PR closing docs.</a>.
 Next, push to git-wip-us.apache.org:</p>
 
 <div class="highlighter-rouge"><pre class="highlight"><code>git push apache master
@@ -605,7 +599,7 @@ The PR, once pushed, will get mirrored to github. To update your github version
 </code></pre>
 </div>
 
-<p>Note on squashing: Since squash discards remote branch history, repeated PRs from the same remote branch are difficult for merging. The workflow implies that every new PR starts with a new rebased branch. This is more important for contributors to know, rather than for committers, because if new PR is not mergeable, github would warn to begin with. Anyway, watch for dupe PRs (based on same source branches). This is a bad practice.</p>
+<p>Note on squashing: Since squash discards remote branch history, repeated PRs from the same remote branch are difficult to be merged. The workflow implies that every new PR starts with a new rebased branch. This is more important for contributors to know, rather than for committers, because if new PR is not mergeable, github would warn at the start. Please watch for dupe PRs (based on same source branches).</p>
 
 <h1 id="closing-a-pr-without-committing-for-committers">Closing a PR without committing (for committers)</h1>
 <p>When we want to reject a PR (close without committing), we can just issue an empty commit on master’s HEAD without merging the PR:</p>
@@ -621,19 +615,19 @@ git push apache master
 
 <p>Read <a href="https://blogs.apache.org/infra/entry/improved_integration_between_apache_and">infra blog</a>. Comments and PRs with RocketMQ issue handles should post to mailing lists and JIRA. RocketMQ issue handles must in the form ROCKETMQ-YYYYY (all capitals). Usually it makes sense to file a JIRA issue first, and then create a PR with description
 ROCKETMQ-YYYY: <jira-issue-description>
-In this case all subsequent comments will automatically be copied to jira without having to mention JIRA issue explicitly in each comment of the PR.</jira-issue-description></p>
+All subsequent comments will then automatically be copied to JIRA.</jira-issue-description></p>
 
 <h1 id="best-practises">Best Practises</h1>
 
 <h2 id="avoiding-accidentally-committing-private-branches-to-the-asf-repo">Avoiding accidentally committing private branches to the ASF repo</h2>
 
-<p>Its dangerously easy —especially when using IDEs— to accidentally commit changes to the ASF repo, be it direct to the trunk, branch-2 or other standard branch on which you are developing, or to a private branch you had intended to keep on github (or a private repo).</p>
+<p>It’s dangerous —especially when using IDEs— to accidentally commit changes to the ASF repo, be directed to the trunk, branch-2, other standard branch on which you are developing, or to a private branch you had intended to keep on github (or a private repo).</p>
 
-<p>Committers can avoid this by having the directory in which they develop code set up with read only access to the ASF repository on github, without the apache repository added. A separate directory should be set up with write access to the ASF repository as well as read access to your other repositories. Merging operations and pushes back to the ASF repo are done from this directory —so isolated from all local development.</p>
+<p>Committers can avoid this by setting the directory in which they develop code to read only access to the ASF repository on github. A separate directory should also be set up with write access to the ASF repository as well as read access to your other repositories. Merging operations and push backs to the ASF repo are done from this directory —so it will be immune to all local changes.</p>
 
-<p>If you accidentally commit a patch to an ASF branch, do not attempt to roll back the branch and force out a new update. Simply commit and push out a new patch revoking the change.</p>
+<p>If you accidentally committed a patch to an ASF branch, do not attempt to roll back the branch and force out a new update. Simply commit and push out a new patch revoking the change.</p>
 
-<p>If you do accidentally commit a branch to the ASF repo, the infrastructure team can delete it —but they cannot stop it propagating to github and potentially being visible. Try not to do that.</p>
+<p>If you do accidentally committed a branch to the ASF repo, the infrastructure team can delete it —but they cannot stop it propagating to github and potentially being visible. Please avoid this.</p>
 
 
         
@@ -654,7 +648,7 @@ In this case all subsequent comments will automatically be copied to jira withou
     <h4 class="page__share-title">Share on</h4>
   
 
-  <a href="https://twitter.com/intent/tweet?via=ApacheRocketMQ&text=Best Practice in Pull Request /docs/pull-request/" class="btn btn--twitter" title="Share on Twitter"><i class="fa fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
+  <a href="https://twitter.com/intent/tweet?via=ApacheRocketMQ&text=How to manage Pull Request /docs/pull-request/" class="btn btn--twitter" title="Share on Twitter"><i class="fa fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
 
   <a href="https://www.facebook.com/sharer/sharer.php?u=/docs/pull-request/" class="btn btn--facebook" title="Share on Facebook"><i class="fa fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/quick-start/index.html
----------------------------------------------------------------------
diff --git a/content/docs/quick-start/index.html b/content/docs/quick-start/index.html
index e71b367..90afbae 100644
--- a/content/docs/quick-start/index.html
+++ b/content/docs/quick-start/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     
@@ -442,7 +439,8 @@
       
 
       <section class="page__content" itemprop="text">
-        <p>This quick start guide is a detailed instruction of setting up RocketMQ messaging system on a local machine and sending/receiving messages.</p>
+        <p>This quick start guide is a detailed instruction of setting up RocketMQ messaging system on your local machine to send 
+and receive messages.</p>
 
 <aside class="sidebar__right">
 <nav class="toc">

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/release-manual.html
----------------------------------------------------------------------
diff --git a/content/docs/release-manual.html b/content/docs/release-manual.html
index ae57037..c231e9b 100644
--- a/content/docs/release-manual.html
+++ b/content/docs/release-manual.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     
@@ -473,11 +470,11 @@
   </nav>
 </aside>
 
-<p>This is a guide to making a release of Apache RocketMQ (incubating). Please follow the steps below.</p>
+<p>This is a guide to make a released version of Apache RocketMQ (incubating). Please follow the steps below:</p>
 
 <h2 id="preliminaries">Preliminaries</h2>
 <h3 id="apache-release-documentation">Apache Release Documentation</h3>
-<p>There are some release documentations provided by The ASF, including the incubator release documentation, can be found here:</p>
+<p>The release documentations provided by The ASF can be found here:</p>
 
 <ul>
   <li><a href="http://www.apache.org/dev/release-publishing">Apache Release Guide</a></li>
@@ -488,12 +485,12 @@
 </ul>
 
 <h3 id="code-signing-key">Code Signing Key</h3>
-<p>Create a code signing gpg key for release signing, use <strong>&lt;your Apache ID&gt;@apache.org</strong> as your primary ID for the code signing key. See the <a href="https://www.apache.org/dev/release-signing">Apache Release Signing documentation</a> for more details.</p>
+<p>Create a code signing gpg key for release signing, use <strong>&lt;your Apache ID&gt;@apache.org</strong> as your primary ID for the code signing key. See <a href="https://www.apache.org/dev/release-signing">Apache Release Signing documentation</a> for more details.</p>
 
 <ul>
-  <li>Create new pgp key. How to use pgp please refer to <a href="http://www.apache.org/dev/openpgp.html">here</a>.</li>
+  <li>Create new pgp key. Please refer to <a href="http://www.apache.org/dev/openpgp.html">here</a> on how to use gpg key.</li>
   <li>Generate a new key via <code class="highlighter-rouge">gpg --gen-key</code>, and answer 4096 bits with no expiration time.</li>
-  <li>Upload your key to a public key server, like <code class="highlighter-rouge">gpg --keyserver pgpkeys.mit.edu --send-key &lt;your key id&gt;</code>.</li>
+  <li>Upload your key to a public key server by <code class="highlighter-rouge">gpg --keyserver pgpkeys.mit.edu --send-key &lt;your key id&gt;</code>.</li>
   <li>Get the key signed by other committers(Optional).</li>
   <li>Add the key to the RocketMQ <a href="https://dist.apache.org/repos/dist/dev/incubator/rocketmq/KEYS">KEYS file</a>.</li>
 </ul>
@@ -501,7 +498,7 @@
 <p><strong>Tips:</strong> If you have more than one key in your gpg, set the code signing key to <code class="highlighter-rouge">~/.gnupg/gpg.conf</code> as default key is recommended.</p>
 
 <h3 id="prepare-your-maven-settings">Prepare Your Maven Settings</h3>
-<p>Make sure that your Maven settings.xml file contains the following:</p>
+<p>Make sure your Maven settings.xml file contains the following:</p>
 
 <div class="language-xml highlighter-rouge"><pre class="highlight"><code><span class="nt">&lt;settings&gt;</span>
    <span class="nt">&lt;profiles&gt;</span>
@@ -552,33 +549,33 @@
 <p>Before building the release artifacts, do some verifications below:</p>
 
 <ul>
-  <li>Ensure that now your are in the candidate release branch.</li>
-  <li>Ensure that all the unit tests can pass via <code class="highlighter-rouge">mvn clean install</code>.</li>
-  <li>Ensure that all the integration tests can pass via <code class="highlighter-rouge">mvn clean test -Pit-test</code>.</li>
+  <li>Make sure that your are in the candidate release branch.</li>
+  <li>Make sure that all the unit tests can pass via <code class="highlighter-rouge">mvn clean install</code>.</li>
+  <li>Make sure that all the integration tests can pass via <code class="highlighter-rouge">mvn clean test -Pit-test</code>.</li>
 </ul>
 
 <p>Perform the following to generate and stage the artifacts:</p>
 
 <ol>
   <li><code class="highlighter-rouge">mvn clean release:clean</code></li>
-  <li><code class="highlighter-rouge">mvn release:prepare -Psigned_release -Darguments="-DskipTests"</code>, answer the right release version, SCM release tag, and the new development version.</li>
+  <li><code class="highlighter-rouge">mvn release:prepare -Psigned_release -Darguments="-DskipTests"</code>, answer the correct release version, SCM release tag, and the new development version.</li>
   <li><code class="highlighter-rouge">mvn -Psigned_release release:perform -Darguments="-DskipTests"</code>, generate the artifacts and push them to the <a href="https://repository.apache.org/#stagingRepositories">Nexus repo</a>. If you would like to perform a dry run first (without pushing the artifacts to the repo), add the arg -DdryRun=true</li>
 </ol>
 
 <p>Now, the candidate release artifacts can be found in the <a href="https://repository.apache.org/#stagingRepositories">Nexus staging repo</a> and in the <code class="highlighter-rouge">target</code> folder of your local branch.</p>
 
-<p><strong>Tips:</strong> If you are performing a source-only release, please remove all artifacts from the staging repo except for the .zip file containing the source and the javadocs jar file. In the Nexus GUI, you can right click on each artifact to be deleted and then select <code class="highlighter-rouge">Delete</code>.</p>
+<p><strong>Tips:</strong> If you are performing a source-only release, please remove all artifacts from the staging repo besides the .zip file containing the source and the javadocs jar file. In the Nexus GUI, you can right click on each artifact to be deleted and then select <code class="highlighter-rouge">Delete</code>.</p>
 
 <h3 id="validate-the-release-candidate">Validate the Release Candidate</h3>
-<p>Now the release candidate is ready, before calling a vote, the artifacts must satisfy the following checklist:</p>
+<p>Now the release candidate is ready, before calling a vote, the artifacts must satisfy the following requirements:</p>
 
 <ul>
   <li>Checksums and PGP signatures are valid.</li>
   <li>Build is successful including unit and integration tests.</li>
-  <li>DISCLAIMER is correct, filenames include “incubating”.</li>
+  <li>DISCLAIMER is correct and filenames must include “incubating”.</li>
   <li>LICENSE and NOTICE files are correct and dependency licenses are acceptable.</li>
-  <li>All source files have license headers where appropriate, RAT checks pass</li>
-  <li>Javadocs have been generated correctly and are accurate.</li>
+  <li>All source files have license headers and pass RAT checks.</li>
+  <li>Javadocs have been generated correctly.</li>
   <li>The provenance of all source files is clear (ASF or software grants).</li>
 </ul>
 
@@ -601,14 +598,14 @@
 <div class="language-shell highlighter-rouge"><pre class="highlight"><code>  gpg --verify rocketmq-all-%version-number%-incubating-source-release.zip.asc rocketmq-all-%version-number%-incubating-source-release.zip
 </code></pre>
 </div>
-<p>Check the output to ensure it contains only good signatures:</p>
+<p>Check the output to ensure it only contains good signatures:</p>
 
 <div class="language-text highlighter-rouge"><pre class="highlight"><code>  gpg: Good signature from ... gpg: Signature made ...
 </code></pre>
 </div>
 
 <ol>
-  <li>Compare MD5, SHA hash generated from the below command with the downloaded hash files.</li>
+  <li>Compare MD5, SHA hash generated by the below command with the downloaded hash files.</li>
 </ol>
 
 <div class="language-shell highlighter-rouge"><pre class="highlight"><code>  gpg --print-mds rocketmq-all-%version-number%-incubating-source-release.zip 
@@ -616,13 +613,13 @@
 </div>
 
 <h3 id="release-artifacts-to-dev-repository">Release Artifacts to Dev-Repository</h3>
-<p>If the release candidate appears to pass the validation checklist, close the staging repository in Nexus by selecting the staging repository <code class="highlighter-rouge">orgapacherocketmq-XXX</code> and clicking on the <code class="highlighter-rouge">Close</code> icon.</p>
+<p>If the release candidate passes the validation checklist, close the staging repository in Nexus by selecting the staging repository <code class="highlighter-rouge">orgapacherocketmq-XXX</code> and clicking on the <code class="highlighter-rouge">Close</code> icon.</p>
 
 <p>Nexus will now run through a series of checksum and signature validations.</p>
 
-<p>If the checks pass, Nexus will close the repository and give a URL to the closed staging repo (which contains the candidate artifacts). Include this URL in the voting email so that folks can find the staged candidate release artifacts.</p>
+<p>If the checks are passed, Nexus will close the repository and produce a URL to the closed staging repo (which contains the candidate artifacts). Include this URL in the voting email so that folks can find the staged candidate release artifacts.</p>
 
-<p>If the checks do not pass, fix the issues, roll back and restart the release process.</p>
+<p>If the checks aren’t passed, fix the issues then go back and restart the release process.</p>
 
 <p>If everything is ok, use svn to copy the candidate release artifacts to RocketMQ repo: https://dist.apache.org/repos/dist/dev/incubator/rocketmq/${release version}.</p>
 
@@ -633,7 +630,7 @@
 <p>General information regarding the Apache voting process can be found <a href="http://www.apache.org/foundation/voting.html">here</a>.</p>
 
 <h3 id="apache-rocketmq-community-vote">Apache RocketMQ Community Vote</h3>
-<p>To vote on a candidate release, send an email to the <a href="mailto:dev@rocketmq.apache.incubator.org">dev list</a> with subject <strong>[VOTE]: Release Apache RocketMQ &lt;release version&gt;(incubating) RC&lt;RC Number&gt;</strong> and a body along the lines of:</p>
+<p>To vote on a candidate release, send an email to the <a href="mailto:dev@rocketmq.apache.incubator.org">dev list</a> with subject <strong>[VOTE]: Release Apache RocketMQ &lt;release version&gt;(incubating) RC&lt;RC Number&gt;</strong> and body:</p>
 
 <blockquote>
   <p>Hello RocketMQ Community,</p>
@@ -670,7 +667,7 @@ https://dist.apache.org/repos/dist/dev/incubator/rocketmq/KEYS</p>
 The Apache RocketMQ Team</p>
 </blockquote>
 
-<p>Once 72 hours has passed (which is generally preferred) and/or at least three +1 (binding) votes have been cast with no -1 (binding) votes, send an email closing the vote and pronouncing the release candidate a success. Please use the subject: <strong>[RESULT][VOTE]: Release Apache RocketMQ &lt;release version&gt;(incubating) RC&lt;RC Number&gt;</strong> :</p>
+<p>Once 72 hours has passed (which is generally preferred) and/or at least three +1 (binding) votes have been cast with no -1 (binding) votes, send an email closing the vote and congratulate the release candidate. Please use the subject: <strong>[RESULT][VOTE]: Release Apache RocketMQ &lt;release version&gt;(incubating) RC&lt;RC Number&gt;</strong> :</p>
 
 <blockquote>
   <p>Hello RocketMQ Community,</p>
@@ -693,7 +690,7 @@ User Name (Apache ID)<br />
 The Apache RocketMQ Team</p>
 </blockquote>
 
-<p>If we do not pass the VOTE, fix the related issues, roll back, restart the release process and increase RC number. When we call a new vote, we must use the updated mail subject: <strong>[RESTART][VOTE][#&lt;Attempt Number&gt;]: Release Apache RocketMQ &lt;release version&gt;(incubating) RC&lt;RC Number&gt;</strong></p>
+<p>If we do not pass the VOTE, fix the related issues, go back, restart the release process and increase RC number. When we call a new vote, we must use the updated mail subject: <strong>[RESTART][VOTE][#&lt;Attempt Number&gt;]: Release Apache RocketMQ &lt;release version&gt;(incubating) RC&lt;RC Number&gt;</strong></p>
 
 <h3 id="incubator-pmc-vote">Incubator PMC Vote</h3>
 <p>Once the candidate release vote passes on dev@rocketmq, send an email to <a href="mailto:general@incubator.apache.org">IMPC</a> with subject <strong>[VOTE]: Release Apache RocketMQ &lt;release version&gt;(incubating) RC&lt;RC Number&gt;</strong> and a body along the lines of:</p>
@@ -739,7 +736,7 @@ https://dist.apache.org/repos/dist/dev/incubator/rocketmq/KEYS</p>
 The Apache RocketMQ Team</p>
 </blockquote>
 
-<p>Also don’t forget announce the vote result:</p>
+<p>Also don’t forget to announce the vote result:</p>
 
 <blockquote>
   <p>Hello Incubator PMC,</p>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/rmq-arc/index.html
----------------------------------------------------------------------
diff --git a/content/docs/rmq-arc/index.html b/content/docs/rmq-arc/index.html
index 03ea9ae..5db7168 100644
--- a/content/docs/rmq-arc/index.html
+++ b/content/docs/rmq-arc/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     
@@ -458,7 +455,7 @@
 
 <h1 id="overview">Overview</h1>
 
-<p>The greatest strengths of RocketMQ are high throughput, high reliability, and low latency when supporting massive messages through exquisite scale out and scale up. RocketMQ consists of four parts: name servers, brokers, producers and consumers. Each of them can be horizontally extended without a single Point of Failure. As shown in screenshot below.</p>
+<p>Apache RocketMQ is a distributed messaging and streaming platform with low latency, high performance and reliability, trillion-level capacity and flexible scalability. It consists of four parts: name servers, brokers, producers and consumers. Each of them can be horizontally extended without a single Point of Failure. As shown in screenshot above.</p>
 
 <p><strong>NameServer Cluster</strong></p>
 
@@ -466,7 +463,7 @@
 
 <p><strong>Broker Cluster</strong></p>
 
-<p>Brokers take care of message storage by providing lightweight TOPIC and QUEUE mechanisms. It supports the Push and Pull model, contains fault tolerance mechanism (2 copies or 3 copies), and provides strong padding of peaks and capacity of accumulating hundreds of billion messages in their original time order. In addition, Brokers provide disaster recovery, rich metrics statistics, and alert mechanisms, all of which are lacking in traditional messaging systems.</p>
+<p>Brokers take care of message storage by providing lightweight TOPIC and QUEUE mechanisms. They support the Push and Pull model, contains fault tolerance mechanism (2 copies or 3 copies), and provides strong padding of peaks and capacity of accumulating hundreds of billion messages in their original time order. In addition, Brokers provide disaster recovery, rich metrics statistics, and alert mechanisms, all of which are lacking in traditional messaging systems.</p>
 
 <p><strong>Producer Cluster</strong></p>
 
@@ -475,7 +472,7 @@
 <p><strong>Consumer Cluster</strong></p>
 
 <p>Consumers support distributed deployment in the Push and Pull model as well. It also supports cluster consumption and message broadcasting. It provides real-time message subscription mechanism and can meet most consumer requirements. 
-RocketMQ’s website provides a simple quick-start guide[3] to interested users.</p>
+RocketMQ’s website provides a simple quick-start guide to interested users.</p>
 
 <h1 id="nameserver">NameServer</h1>
 
@@ -506,11 +503,11 @@ RocketMQ’s website provides a simple quick-start guide[3] to interested users.
 <p>As shown in image below, Broker server has searval important sub modules:</p>
 
 <ul>
-  <li>Remoting Module, the entry of broker, handle the requests from clients.</li>
-  <li>Client Manager, manage the clients (Producer/Consumer), maintain topic subscription of consumer.</li>
-  <li>Store Service, provide simple APIs to store or query message in physical disk.</li>
-  <li>HA Service, provide data sync feature between master broker and slave broker.</li>
-  <li>Index Service, build index for messages by specified key and provide quick message query function.</li>
+  <li>Remoting Module, the entry of broker, handles the requests from clients.</li>
+  <li>Client Manager, manages the clients (Producer/Consumer) and maintains topic subscription of consumer.</li>
+  <li>Store Service, provides simple APIs to store or query message in physical disk.</li>
+  <li>HA Service, provides data sync feature between master broker and slave broker.</li>
+  <li>Index Service, builds index for messages by specified key and provides quick message query.</li>
 </ul>
 
 <p><img src="/assets/images/rmq-basic-component.png" alt="" /></p>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/rmq-deployment/index.html
----------------------------------------------------------------------
diff --git a/content/docs/rmq-deployment/index.html b/content/docs/rmq-deployment/index.html
index 98ee4e6..005b7af 100644
--- a/content/docs/rmq-deployment/index.html
+++ b/content/docs/rmq-deployment/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     
@@ -474,24 +471,24 @@
   </nav>
 </aside>
 
-<p>This section is to introduce deployment solution which is considered production-ready. Generally speaking, we are deploying a resilient RocketMQ cluster having no single point of failure.</p>
+<p>This section introduces production-ready deployment solution. Generally speaking, we are deploying a resilient RocketMQ cluster having no single point of failure.</p>
 
 <h3 id="prerequisite">Prerequisite</h3>
-<p>Before starting this section, make sure you have read Quick Start section, in which core concepts and components of RocketMQ are introduced.</p>
+<p>Before starting this section, make sure you have read Quick Start section, and are farmiliar with the core concepts and components of RocketMQ.</p>
 
 <h4 id="production-ready-deployment">Production-ready Deployment</h4>
 <h5 id="name-server">Name Server</h5>
-<p>To ensure the cluster can still operate normally when one instance crashes, two or more name server instances are recommended. As long as there is one name server instance alive, the whole cluster remains in service.</p>
+<p>To ensure the cluster can still function when one instance crashes, two or more name server instances are recommended. As long as there is one name server instance alive, the whole cluster remains in service.</p>
 
-<p>Name server follows the share-nothing design paradigm. Brokers send heartbeat data to all name servers. Producers and consumers may query meta data from any of name servers available while sending / consuming messages.</p>
+<p>Name server follows the share-nothing design paradigm. Brokers send heartbeat data to all name servers. Producers and consumers can query meta data from any of name servers available while sending / consuming messages.</p>
 
 <h4 id="broker">Broker</h4>
 <p>Brokers can be divided into two categories according to their roles: master and slave. Master brokers provide RW access while slave brokers only accept read access.</p>
 
-<p>To deploy a high-availability RocketMQ cluster which has no single point of failure, a series of broker sets should be deployed. A broker set contains one master with brokerId set to 0 and several slaves with non-zero brokerIDs. All of the brokers in one set have the same brokerName. In serious scenarios, we should have at least two brokers in one broker set. Each topic resides in two or more brokers.</p>
+<p>To deploy a high-availability RocketMQ cluster with no single point of failure, a series of broker sets should be deployed. A broker set contains one master with brokerId set to 0 and several slaves with non-zero brokerIDs. All of the brokers in one set have the same brokerName. In serious scenarios, we should have at least two brokers in one broker set. Each topic resides in two or more brokers.</p>
 
 <h3 id="configuration">Configuration</h3>
-<p>When deploying a RocketMQ cluster, below configurations should be taken into consideration.</p>
+<p>When deploying a RocketMQ cluster, recommended configuration is listed below:</p>
 
 <h5 id="broker-configuration">Broker configuration</h5>
 
@@ -499,7 +496,7 @@
   <thead>
     <tr>
       <th>Property Name</th>
-      <th style="text-align: center">Default values</th>
+      <th style="text-align: center">Default value</th>
       <th style="text-align: right">Details</th>
     </tr>
   </thead>
@@ -578,12 +575,12 @@
 <h4 id="how-to-get">How To Get</h4>
 <p>The admin tool is shipped along with RocketMQ. Either you download a pre-built binary version or build from source by yourself, you already have it.</p>
 
-<p>In case you have source code, the rocketmq-tools module contains its source code.</p>
+<p>In case you need the source code, the rocketmq-tools module contains its source code.</p>
 
 <h4 id="how-to-use">How to use</h4>
 <p>The Admin Tool is very easy to use. Here, for demonstration purpose, *nix environment is assumed.</p>
 
-<p>Change directory to ${PACKAGE}/bin, command bash mqadmin, you should see the following help menu pops out:</p>
+<p>Change directory to ${PACKAGE}/bin, command bash mqadmin, you should see the following help menu:</p>
 
 <div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="n">The</span> <span class="n">most</span> <span class="n">commonly</span> <span class="n">used</span> <span class="n">mqadmin</span> <span class="n">commands</span> <span class="nl">are:</span>
    <span class="n">updateTopic</span>          <span class="n">Update</span> <span class="n">or</span> <span class="n">create</span> <span class="n">topic</span>
@@ -602,13 +599,13 @@
    <span class="n">queryMsgByOffset</span>     <span class="n">Query</span> <span class="n">Message</span> <span class="n">by</span> <span class="n">offset</span>
    <span class="n">queryMsgByUniqueKey</span>  <span class="n">Query</span> <span class="n">Message</span> <span class="n">by</span> <span class="n">Unique</span> <span class="n">key</span>
    <span class="n">printMsg</span>             <span class="n">Print</span> <span class="n">Message</span> <span class="n">Detail</span>
-   <span class="n">sendMsgStatus</span>        <span class="n">send</span> <span class="n">msg</span> <span class="n">to</span> <span class="n">broker</span>
+   <span class="n">sendMsgStatus</span>        <span class="n">Send</span> <span class="n">msg</span> <span class="n">to</span> <span class="n">broker</span>
    <span class="n">brokerConsumeStats</span>   <span class="n">Fetch</span> <span class="n">broker</span> <span class="n">consume</span> <span class="n">stats</span> <span class="n">data</span>
    <span class="n">producerConnection</span>   <span class="n">Query</span> <span class="n">producer</span><span class="err">'</span><span class="n">s</span> <span class="n">socket</span> <span class="n">connection</span> <span class="n">and</span> <span class="n">client</span> <span class="n">version</span>
    <span class="n">consumerConnection</span>   <span class="n">Query</span> <span class="n">consumer</span><span class="err">'</span><span class="n">s</span> <span class="n">socket</span> <span class="n">connection</span><span class="o">,</span> <span class="n">client</span> <span class="n">version</span> <span class="n">and</span> <span class="n">subscription</span>
    <span class="n">consumerProgress</span>     <span class="n">Query</span> <span class="n">consumers</span><span class="err">'</span><span class="n">s</span> <span class="n">progress</span><span class="o">,</span> <span class="n">speed</span>
    <span class="n">consumerStatus</span>       <span class="n">Query</span> <span class="n">consumer</span><span class="err">'</span><span class="n">s</span> <span class="n">internal</span> <span class="n">data</span> <span class="n">structure</span>
-   <span class="n">cloneGroupOffset</span>     <span class="n">clone</span> <span class="n">offset</span> <span class="n">from</span> <span class="n">other</span> <span class="n">group</span>
+   <span class="n">cloneGroupOffset</span>     <span class="n">Clone</span> <span class="n">offset</span> <span class="n">from</span> <span class="n">other</span> <span class="n">group</span>
    <span class="n">clusterList</span>          <span class="n">List</span> <span class="n">all</span> <span class="n">of</span> <span class="n">clusters</span>
    <span class="n">topicList</span>            <span class="n">Fetch</span> <span class="n">all</span> <span class="n">topic</span> <span class="n">list</span> <span class="n">from</span> <span class="n">name</span> <span class="n">server</span>
    <span class="n">updateKvConfig</span>       <span class="n">Create</span> <span class="n">or</span> <span class="n">update</span> <span class="n">KV</span> <span class="n">config</span>
@@ -622,7 +619,7 @@
    <span class="n">statsAll</span>             <span class="n">Topic</span> <span class="n">and</span> <span class="n">Consumer</span> <span class="n">tps</span> <span class="n">stats</span>
    <span class="n">syncDocs</span>             <span class="n">Synchronize</span> <span class="n">wiki</span> <span class="n">and</span> <span class="n">issue</span> <span class="n">to</span> <span class="n">github</span><span class="o">.</span><span class="na">com</span>
    <span class="n">allocateMQ</span>           <span class="n">Allocate</span> <span class="n">MQ</span>
-   <span class="n">checkMsgSendRT</span>       <span class="n">check</span> <span class="n">message</span> <span class="n">send</span> <span class="n">response</span> <span class="n">time</span>
+   <span class="n">checkMsgSendRT</span>       <span class="n">Check</span> <span class="n">message</span> <span class="n">send</span> <span class="n">response</span> <span class="n">time</span>
    <span class="n">clusterRT</span>            <span class="n">List</span> <span class="n">All</span> <span class="n">clusters</span> <span class="n">Message</span> <span class="n">Send</span> <span class="n">RT</span>
 
 </code></pre>
@@ -639,7 +636,7 @@ If you want to get more information about a specific command like ‘clusterList
 </div>
 
 <h3 id="replication-mode">Replication mode</h3>
-<p>To guarantee any successfully published message won’t be lost, RocketMQ provides a Replication mode to gain stronger durability and higher availability with two replication way: Sync &amp; Async.</p>
+<p>To make sure that no successfully published message will be lost, RocketMQ provides a Replication mode to gain stronger durability and higher availability with two replication ways: Sync &amp; Async.</p>
 
 <h5 id="replication-sync--async-broker">Replication: Sync / Async Broker</h5>
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/roadmap/index.html
----------------------------------------------------------------------
diff --git a/content/docs/roadmap/index.html b/content/docs/roadmap/index.html
index 9723b15..d1d03d9 100644
--- a/content/docs/roadmap/index.html
+++ b/content/docs/roadmap/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     
@@ -445,7 +442,7 @@
         <h2 id="410430-incubating-roadmap">4.1.0~4.3.0-incubating RoadMap:</h2>
 
 <h3 id="openmessaging">OpenMessaging</h3>
-<p>OpenMessaging, which includes the establishment of industry guidelines and messaging, streaming specifications to provide a common framework for finance, e-commerce, IoT and big-data area. The design principles are the cloud-oriented, simplicity, flexibility, and language independent in distributed heterogeneous environments. Conformance to these specifications will make it possible to develop a heterogeneous messaging applications across all major platforms and operating systems. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-17">JIRA</a></p>
+<p>OpenMessaging, which includes the establishment of industry guidelines and messaging, streaming specifications to provide a common framework for finance, e-commerce, IoT and big-data area. The design principles are the cloud-orientedness, simplicity, flexibility, and language independency in distributed heterogeneous environments. Conformance to these specifications allows the development of a heterogeneous messaging applications across all major platforms and operating systems. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-17">JIRA</a></p>
 
 <aside class="sidebar__right">
 <nav class="toc">
@@ -472,44 +469,44 @@
 </aside>
 
 <h3 id="message-filtering">Message Filtering</h3>
-<p>So far, RocketMQ only support message filtering feature by <code class="highlighter-rouge">TAG</code>, but one message only can own one tag, this is too limited to meet complex business requirements.</p>
+<p>So far, RocketMQ only supports message filtering feature by <code class="highlighter-rouge">TAG</code>, but one message can only own one tag, which is too limited to meet complex business requirements.</p>
 
 <p>So, we want to define and implement a reasonable filter language based on a subset of the SQL 92 expression syntax to support customized message filtering. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-121">JIRA</a></p>
 
 <h3 id="batch-messaging">Batch Messaging</h3>
 
-<p>In order to use RocketMQ in big data related scenarios, batch messaging is necessary, which will bring million-level TPS for RocketMQ. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-80">JIRA</a>, <a href="https://github.com/apache/incubator-rocketmq/pull/53">PR</a></p>
+<p>In order to use RocketMQ in big data related scenarios, batch messaging is necessary and will bring million-level TPS for RocketMQ. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-80">JIRA</a>, <a href="https://github.com/apache/incubator-rocketmq/pull/53">PR</a></p>
 
 <h3 id="consistent-hash-allocate-strategychas">Consistent Hash Allocate Strategy(CHAS)</h3>
 
-<p>Consumer clients use the average allocate strategy by far, which is very sensitive when clients register or unregister continually.</p>
+<p>Consumer clients use the average allocate strategy by far, which is very sensitive when clients register or unregister continuously.</p>
 
-<p>A Consistent Hash allocate strategy is valuable for the developer who cares more about stabilization than averaging.</p>
+<p>A Consistent Hash allocate strategy is valuable for developers who care more about stabilization than averaging.</p>
 
-<p>So it’s better for us to support CHAS as a extra choice in consumer load balancing. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-67">JIRA</a>, <a href="https://github.com/apache/incubator-rocketmq/pull/67">PR</a></p>
+<p>So we decided to support CHAS as an extra choice in consumer load balancing. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-67">JIRA</a>, <a href="https://github.com/apache/incubator-rocketmq/pull/67">PR</a></p>
 
 <h3 id="global-order-messaging">Global Order Messaging</h3>
 
 <p>As we know, messages in the same queue can be consumed sequentially. So we always send the congeneric messages to the same queue to guarantee ordering, which will cause hot-point issue.</p>
 
-<p>So It’s cool if we support a new global order messaging mechanism, without hot-points problem. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-122">JIRA</a></p>
+<p>So it’d be cool if we can support a new global order messaging mechanism without the hot-point problem. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-122">JIRA</a></p>
 
 <h3 id="distributed-transaction-messaging">Distributed Transaction Messaging</h3>
-<p>Undoubtedly, transaction messaging is very frequently-used in most business.</p>
+<p>Undoubtedly, transaction messaging is frequently used in most business.</p>
 
-<p>But it is unfortunate that users must implement transaction mechanism by themselves until now, may be they need DataBase to implement it.</p>
+<p>But users have to implement transaction mechanism by themselves for now, so there is a potential need of a database implementation to solve the problem.</p>
 
-<p>It’s time to support distributed transaction messaging to make it convenient for the user, help them handle complex business with skill and ease. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-123">JIRA</a></p>
+<p>Now we can support distributed transaction messaging to make it convenient for the users and help them handle complex business. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-123">JIRA</a></p>
 
 <h3 id="non-redundant-message-delivery-mechanism">Non-Redundant Message Delivery Mechanism</h3>
 
-<p>The duplicated messages are worrisome. It will cost much if user need non-repeating messages.</p>
+<p>The duplicated messages will impose extra cost if user needs non-repeating messages.</p>
 
-<p>In most cases, user need store the consume records to judge a message is replicated or not, and the store stage should guarantee strong consistency. As you see, it’s very complicated, so support a strict and non-redundant message delivery mechanism is impending. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-124">JIRA</a></p>
+<p>In most cases, user needs to store the consume records to determine if a message is duplicated, and the store stage should guarantee consistency. So we need to support a strict and non-redundant message delivery mechanism. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-124">JIRA</a></p>
 
 <h3 id="intellective-ha-architecture">Intellective HA Architecture</h3>
 
-<p>RocketMQ uses master-slave as HA architecture, which has low latency and high throughput features, but this program need human intervention to recover from abnormal situations.</p>
+<p>RocketMQ uses master-slave as HA architecture, which has low latency and high throughput, but this program needs human intervention to recover from abnormal situations.</p>
 
 <p>So, we want to support a multi-replication high availability/reliability mechanism, without human intervention. <a href="https://issues.apache.org/jira/browse/ROCKETMQ-125">JIRA</a></p>
 
@@ -523,7 +520,7 @@
 
 <ol>
   <li>Support more application layer protocol: WebSocket, HTTP2, etc.</li>
-  <li>Support more native language SDK: PHP, Python, .Net, Node, Go, etc. The chosen programming languages are the result of surveying many cloud platforms.</li>
+  <li>Support more native language SDK: PHP, Python, .Net, Node, Go, etc. The chosen programming languages are based on the investigation of many cloud platforms.</li>
   <li>Support advanced message queuing protocol(AMQP).</li>
 </ol>
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/schedule-example/index.html
----------------------------------------------------------------------
diff --git a/content/docs/schedule-example/index.html b/content/docs/schedule-example/index.html
index 162ac02..e02a28c 100644
--- a/content/docs/schedule-example/index.html
+++ b/content/docs/schedule-example/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     


[4/8] incubator-rocketmq-site git commit: Polish web site pages

Posted by li...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/simple-example/index.html
----------------------------------------------------------------------
diff --git a/content/docs/simple-example/index.html b/content/docs/simple-example/index.html
index 05f8d01..16a7cb8 100644
--- a/content/docs/simple-example/index.html
+++ b/content/docs/simple-example/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     
@@ -457,11 +454,10 @@
 <p>Use RocketMQ to send messages in three ways: reliable synchronous, reliable
 asynchronous, and one-way transmission.</p>
 
-<p>This page introduces: 
-the use cases, similarities and differences between the three implementations, 
-and a code example for reference.</p>
+<p>This page exemplifies these three message-sending ways. Checkout the notes along with the example to figure out which 
+way to use for your specific use case.</p>
 
-<h3 id="reliable-synchronous-transmission">Reliable synchronous transmission</h3>
+<h4 id="reliable-synchronous-transmission">Reliable synchronous transmission</h4>
 
 <p>Application: Reliable synchronous transmission is used in extensive scenes, such as
 important notification messages, SMS notification, SMS marketing system, etc..</p>
@@ -491,15 +487,14 @@ important notification messages, SMS notification, SMS marketing system, etc..</
 
 </code></pre>
 </div>
-<h3 id="reliable-asynchronous-transmission">Reliable asynchronous transmission</h3>
+<h4 id="reliable-asynchronous-transmission">Reliable asynchronous transmission</h4>
 
-<p>Application: asynchronous transmission is generally used to link time-consuming, 
-response time sensitive business scenarios.</p>
+<p>Application: asynchronous transmission is generally used in response time sensitive business scenarios.</p>
 
 <div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">AsyncProducer</span> <span class="o">{</span>
     <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">Exception</span> <span class="o">{</span>
         <span class="c1">//Instantiate with a producer group name.</span>
-        <span class="n">DefaultMQProducer</span> <span class="n">producer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">DefaultMQProducer</span><span class="o">(</span><span class="s">"Jodie_Daily_test"</span><span class="o">);</span>
+        <span class="n">DefaultMQProducer</span> <span class="n">producer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">DefaultMQProducer</span><span class="o">(</span><span class="s">"ExampleProducerGroup"</span><span class="o">);</span>
         <span class="c1">//Launch the instance.</span>
         <span class="n">producer</span><span class="o">.</span><span class="na">start</span><span class="o">();</span>
         <span class="n">producer</span><span class="o">.</span><span class="na">setRetryTimesWhenSendAsyncFailed</span><span class="o">(</span><span class="mi">0</span><span class="o">);</span>
@@ -530,7 +525,7 @@ response time sensitive business scenarios.</p>
 </code></pre>
 </div>
 
-<h3 id="one-way-transmission">One-way transmission</h3>
+<h4 id="one-way-transmission">One-way transmission</h4>
 
 <p>Application: One-way transmission is used for cases requiring moderate reliability,
 such as log collection.</p>
@@ -538,7 +533,7 @@ such as log collection.</p>
 <div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">OnewayProducer</span> <span class="o">{</span>
     <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">Exception</span><span class="o">{</span>
         <span class="c1">//Instantiate with a producer group name.</span>
-        <span class="n">DefaultMQProducer</span> <span class="n">producer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">DefaultMQProducer</span><span class="o">(</span><span class="s">"example_group_name"</span><span class="o">);</span>
+        <span class="n">DefaultMQProducer</span> <span class="n">producer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">DefaultMQProducer</span><span class="o">(</span><span class="s">"ExampleProducerGroup"</span><span class="o">);</span>
         <span class="c1">//Launch the instance.</span>
         <span class="n">producer</span><span class="o">.</span><span class="na">start</span><span class="o">();</span>
         <span class="k">for</span> <span class="o">(</span><span class="kt">int</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">0</span><span class="o">;</span> <span class="n">i</span> <span class="o">&lt;</span> <span class="mi">100</span><span class="o">;</span> <span class="n">i</span><span class="o">++)</span> <span class="o">{</span>
@@ -550,7 +545,7 @@ such as log collection.</p>
             <span class="o">);</span>
             <span class="c1">//Call send message to deliver message to one of brokers.</span>
             <span class="n">producer</span><span class="o">.</span><span class="na">sendOneway</span><span class="o">(</span><span class="n">msg</span><span class="o">);</span>
-            
+
         <span class="o">}</span>
         <span class="c1">//Shut down once the producer instance is not longer in use.</span>
         <span class="n">producer</span><span class="o">.</span><span class="na">shutdown</span><span class="o">();</span>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/dowloading/releases/index.html
----------------------------------------------------------------------
diff --git a/content/dowloading/releases/index.html b/content/dowloading/releases/index.html
index 498e8be..4c867a1 100644
--- a/content/dowloading/releases/index.html
+++ b/content/dowloading/releases/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/feed.xml
----------------------------------------------------------------------
diff --git a/content/feed.xml b/content/feed.xml
index de93222..3ac9dd4 100644
--- a/content/feed.xml
+++ b/content/feed.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.4.3">Jekyll</generator><link href="/feed.xml" rel="self" type="application/atom+xml" /><link href="/" rel="alternate" type="text/html" /><updated>2017-06-08T11:24:44+08:00</updated><id>/</id><title type="html">Apache RocketMQ</title><subtitle>The homepage of RocketMQ.</subtitle><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt;&quot;/assets/images/rmq-logo.png&quot;, &quot;bio&quot;=&gt;&quot;A fast, low latency, reliable, scalable, distributed MOM.&quot;, &quot;location&quot;=&gt;&quot;Hangzhou, China&quot;, &quot;email&quot;=&gt;&quot;dev@rocketmq.incubator.apache.org&quot;, &quot;uri&quot;=&gt;&quot;http://incubator.staging.apache.org/projects/rocketmq.html&quot;, &quot;bitbucket&quot;=&gt;nil, &quot;codepen&quot;=&gt;nil, &quot;dribbble&quot;=&gt;nil, &quot;flickr&quot;=&gt;nil, &quot;facebook&quot;=&gt;nil, &quot;foursquare&quot;=&gt;n
 il, &quot;github&quot;=&gt;&quot;apache/incubator-rocketmq&quot;, &quot;google_plus&quot;=&gt;nil, &quot;keybase&quot;=&gt;nil, &quot;instagram&quot;=&gt;nil, &quot;lastfm&quot;=&gt;nil, &quot;linkedin&quot;=&gt;nil, &quot;pinterest&quot;=&gt;nil, &quot;soundcloud&quot;=&gt;nil, &quot;stackoverflow&quot;=&gt;&quot;questions/tagged/rocketmq&quot;, &quot;steam&quot;=&gt;nil, &quot;tumblr&quot;=&gt;nil, &quot;twitter&quot;=&gt;&quot;ApacheRocketMQ&quot;, &quot;vine&quot;=&gt;nil, &quot;weibo&quot;=&gt;nil, &quot;xing&quot;=&gt;nil, &quot;youtube&quot;=&gt;nil, &quot;quora&quot;=&gt;&quot;topic/RocketMQ&quot;}</name><email>dev@rocketmq.incubator.apache.org</email><uri>http://incubator.staging.apache.org/projects/rocketmq.html</uri></author><entry><title type="html">Release Notes - Apache RocketMQ - Version 4.1.0-incubating</title><link href="/release-notes-4.1.0-incubating/" rel="alternate" type="text/html" title="Release Notes - Apache RocketMQ - Version 4.1.0-incubating" /><published>
 2017-06-02T00:00:00+08:00</published><updated>2017-06-02T00:00:00+08:00</updated><id>/release-notes-4.1.0-incubating</id><content type="html" xml:base="/release-notes-4.1.0-incubating/">&lt;p&gt;Release Notes - Apache RocketMQ - Version 4.1.0-incubating&lt;/p&gt;
+<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.4.3">Jekyll</generator><link href="/feed.xml" rel="self" type="application/atom+xml" /><link href="/" rel="alternate" type="text/html" /><updated>2017-06-08T13:09:18+08:00</updated><id>/</id><title type="html">Apache RocketMQ</title><subtitle>The homepage of RocketMQ.</subtitle><author><name>{&quot;name&quot;=&gt;nil, &quot;avatar&quot;=&gt;&quot;/assets/images/rmq-logo.png&quot;, &quot;bio&quot;=&gt;&quot;A fast, low latency, reliable, scalable, distributed MOM.&quot;, &quot;location&quot;=&gt;&quot;Hangzhou, China&quot;, &quot;email&quot;=&gt;&quot;dev@rocketmq.incubator.apache.org&quot;, &quot;uri&quot;=&gt;&quot;http://incubator.staging.apache.org/projects/rocketmq.html&quot;, &quot;bitbucket&quot;=&gt;nil, &quot;codepen&quot;=&gt;nil, &quot;dribbble&quot;=&gt;nil, &quot;flickr&quot;=&gt;nil, &quot;facebook&quot;=&gt;nil, &quot;foursquare&quot;=&gt;n
 il, &quot;github&quot;=&gt;&quot;apache/incubator-rocketmq&quot;, &quot;google_plus&quot;=&gt;nil, &quot;keybase&quot;=&gt;nil, &quot;instagram&quot;=&gt;nil, &quot;lastfm&quot;=&gt;nil, &quot;linkedin&quot;=&gt;nil, &quot;pinterest&quot;=&gt;nil, &quot;soundcloud&quot;=&gt;nil, &quot;stackoverflow&quot;=&gt;&quot;questions/tagged/rocketmq&quot;, &quot;steam&quot;=&gt;nil, &quot;tumblr&quot;=&gt;nil, &quot;twitter&quot;=&gt;&quot;ApacheRocketMQ&quot;, &quot;vine&quot;=&gt;nil, &quot;weibo&quot;=&gt;nil, &quot;xing&quot;=&gt;nil, &quot;youtube&quot;=&gt;nil, &quot;quora&quot;=&gt;&quot;topic/RocketMQ&quot;}</name><email>dev@rocketmq.incubator.apache.org</email><uri>http://incubator.staging.apache.org/projects/rocketmq.html</uri></author><entry><title type="html">Release Notes - Apache RocketMQ - Version 4.1.0-incubating</title><link href="/release-notes-4.1.0-incubating/" rel="alternate" type="text/html" title="Release Notes - Apache RocketMQ - Version 4.1.0-incubating" /><published>
 2017-06-02T00:00:00+08:00</published><updated>2017-06-02T00:00:00+08:00</updated><id>/release-notes-4.1.0-incubating</id><content type="html" xml:base="/release-notes-4.1.0-incubating/">&lt;p&gt;Release Notes - Apache RocketMQ - Version 4.1.0-incubating&lt;/p&gt;
 
 &lt;h2 id=&quot;new-feature&quot;&gt;New Feature&lt;/h2&gt;
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/sitemap.xml
----------------------------------------------------------------------
diff --git a/content/sitemap.xml b/content/sitemap.xml
index 9edb2ec..9ee04fb 100644
--- a/content/sitemap.xml
+++ b/content/sitemap.xml
@@ -2,111 +2,115 @@
 <urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
 <url>
 <loc>/about/team/</loc>
-<lastmod>2017-06-08T11:24:44+08:00</lastmod>
+<lastmod>2017-06-08T13:09:18+08:00</lastmod>
 </url>
 <url>
 <loc>/about/contact/</loc>
-<lastmod>2017-06-08T11:24:44+08:00</lastmod>
+<lastmod>2017-06-08T13:09:18+08:00</lastmod>
 </url>
 <url>
 <loc>/about/rewards/</loc>
-<lastmod>2017-06-08T11:24:44+08:00</lastmod>
+<lastmod>2017-06-08T13:09:18+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/quick-start/</loc>
-<lastmod>2017-06-08T11:24:44+08:00</lastmod>
+<lastmod>2017-06-08T13:09:18+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/motivation/</loc>
-<lastmod>2017-06-08T11:24:44+08:00</lastmod>
+<lastmod>2017-06-08T13:09:18+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/core-concept/</loc>
-<lastmod>2017-06-08T11:24:44+08:00</lastmod>
+<lastmod>2017-06-08T13:09:18+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/cli-admin-tool/</loc>
-<lastmod>2017-06-08T11:24:44+08:00</lastmod>
+<lastmod>2017-06-08T13:09:18+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/cluster-deployment/</loc>
-<lastmod>2017-06-08T11:24:44+08:00</lastmod>
+<lastmod>2017-06-08T13:09:18+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/pull-request/</loc>
-<lastmod>2017-06-08T11:24:44+08:00</lastmod>
+<lastmod>2017-06-08T13:09:18+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/code-guidelines/</loc>
-<lastmod>2017-06-08T11:24:44+08:00</lastmod>
+<lastmod>2017-06-08T13:09:18+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/documentation/</loc>
-<lastmod>2017-06-08T11:24:44+08:00</lastmod>
+<lastmod>2017-06-08T13:09:18+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/faq/</loc>
-<lastmod>2017-06-08T11:24:44+08:00</lastmod>
+<lastmod>2017-06-08T13:09:18+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/release-manual</loc>
-<lastmod>2017-06-08T11:24:44+08:00</lastmod>
+<lastmod>2017-06-08T13:09:18+08:00</lastmod>
 </url>
 <url>
 <loc>/dowloading/releases/</loc>
-<lastmod>2017-06-08T11:24:44+08:00</lastmod>
+<lastmod>2017-06-08T13:09:18+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/roadmap/</loc>
-<lastmod>2017-06-08T11:24:44+08:00</lastmod>
+<lastmod>2017-06-08T13:09:18+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/batch-example/</loc>
-<lastmod>2017-06-08T11:24:44+08:00</lastmod>
+<lastmod>2017-06-08T13:09:18+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/broadcast-example/</loc>
-<lastmod>2017-06-08T11:24:44+08:00</lastmod>
+<lastmod>2017-06-08T13:09:18+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/rmq-deployment/</loc>
-<lastmod>2017-06-08T11:24:44+08:00</lastmod>
+<lastmod>2017-06-08T13:09:18+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/order-example/</loc>
-<lastmod>2017-06-08T11:24:44+08:00</lastmod>
+<lastmod>2017-06-08T13:09:18+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/rmq-arc/</loc>
-<lastmod>2017-06-08T11:24:44+08:00</lastmod>
+<lastmod>2017-06-08T13:09:18+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/schedule-example/</loc>
-<lastmod>2017-06-08T11:24:44+08:00</lastmod>
+<lastmod>2017-06-08T13:09:18+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/simple-example/</loc>
-<lastmod>2017-06-08T11:24:44+08:00</lastmod>
+<lastmod>2017-06-08T13:09:18+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/filter-by-sql92-example/</loc>
-<lastmod>2017-06-08T11:24:44+08:00</lastmod>
+<lastmod>2017-06-08T13:09:18+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/best-practice-broker/</loc>
-<lastmod>2017-06-08T11:24:44+08:00</lastmod>
+<lastmod>2017-06-08T13:09:18+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/best-practice-consumer/</loc>
-<lastmod>2017-06-08T11:24:44+08:00</lastmod>
+<lastmod>2017-06-08T13:09:18+08:00</lastmod>
+</url>
+<url>
+<loc>/docs/create-pull-request/</loc>
+<lastmod>2017-06-08T13:09:18+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/best-practice-namesvr/</loc>
-<lastmod>2017-06-08T11:24:44+08:00</lastmod>
+<lastmod>2017-06-08T13:09:18+08:00</lastmod>
 </url>
 <url>
 <loc>/docs/best-practice-producer/</loc>
-<lastmod>2017-06-08T11:24:44+08:00</lastmod>
+<lastmod>2017-06-08T13:09:18+08:00</lastmod>
 </url>
 <url>
 <loc>/rocketmq/how-to-support-more-queues-in-rocketmq/</loc>
@@ -226,6 +230,9 @@
 <loc>/docs/best-practice-consumer/</loc>
 </url>
 <url>
+<loc>/docs/create-pull-request/</loc>
+</url>
+<url>
 <loc>/docs/best-practice-namesvr/</loc>
 </url>
 <url>


[8/8] incubator-rocketmq-site git commit: Polish web site pages

Posted by li...@apache.org.
Polish web site pages


Project: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/commit/5b69a90f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/tree/5b69a90f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/diff/5b69a90f

Branch: refs/heads/asf-site
Commit: 5b69a90ff16f05edf8db22f68233b0fd494a5577
Parents: f0ed1ac
Author: Li Zhanhui <li...@gmail.com>
Authored: Thu Jun 8 13:09:46 2017 +0800
Committer: Li Zhanhui <li...@gmail.com>
Committed: Thu Jun 8 13:09:46 2017 +0800

----------------------------------------------------------------------
 content/about/contact/index.html                |   2 +-
 content/about/rewards/index.html                |   2 +-
 content/about/team/index.html                   |   2 +-
 content/archive-layout-with-content/index.html  |  15 +-
 content/assets/css/main.css                     |   2 +-
 content/assets/images/community/tree-logo.png   | Bin 0 -> 9954 bytes
 content/assets/images/community/yhsoft-logo.png | Bin 0 -> 18076 bytes
 content/assets/images/eco.png                   | Bin 0 -> 116702 bytes
 content/collection-archive/index.html           |  29 +-
 content/community/index.html                    |   2 +-
 content/customer/index.html                     |  48 ++
 content/docs/batch-example/index.html           |  31 +-
 content/docs/best-practice-broker/index.html    |  23 +-
 content/docs/best-practice-consumer/index.html  |  49 +-
 content/docs/best-practice-namesvr/index.html   |  59 +-
 content/docs/best-practice-producer/index.html  |  63 +-
 content/docs/broadcast-example/index.html       |  29 +-
 content/docs/cli-admin-tool/index.html          |  39 +-
 content/docs/cluster-deployment/index.html      |  27 +-
 content/docs/code-guidelines/index.html         |  27 +-
 content/docs/core-concept/index.html            |  47 +-
 content/docs/create-pull-request/index.html     | 705 +++++++++++++++++++
 content/docs/documentation/index.html           |  23 +-
 content/docs/faq/index.html                     | 125 ++--
 content/docs/filter-by-sql92-example/index.html |  23 +-
 content/docs/motivation/index.html              |  48 +-
 content/docs/order-example/index.html           |  23 +-
 content/docs/pull-request/index.html            |  94 ++-
 content/docs/quick-start/index.html             |  26 +-
 content/docs/release-manual.html                |  71 +-
 content/docs/rmq-arc/index.html                 |  39 +-
 content/docs/rmq-deployment/index.html          |  49 +-
 content/docs/roadmap/index.html                 |  51 +-
 content/docs/schedule-example/index.html        |  23 +-
 content/docs/simple-example/index.html          |  43 +-
 content/dowloading/releases/index.html          |  23 +-
 content/feed.xml                                |   2 +-
 content/sitemap.xml                             |  61 +-
 38 files changed, 1331 insertions(+), 594 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/about/contact/index.html
----------------------------------------------------------------------
diff --git a/content/about/contact/index.html b/content/about/contact/index.html
index 29ceb65..ea66168 100644
--- a/content/about/contact/index.html
+++ b/content/about/contact/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/about/rewards/index.html
----------------------------------------------------------------------
diff --git a/content/about/rewards/index.html b/content/about/rewards/index.html
index 43142c1..38beb2e 100644
--- a/content/about/rewards/index.html
+++ b/content/about/rewards/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/about/team/index.html
----------------------------------------------------------------------
diff --git a/content/about/team/index.html b/content/about/team/index.html
index 020ed0c..dbbf2f6 100644
--- a/content/about/team/index.html
+++ b/content/about/team/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/archive-layout-with-content/index.html
----------------------------------------------------------------------
diff --git a/content/archive-layout-with-content/index.html b/content/archive-layout-with-content/index.html
index 37a6a25..02cf644 100644
--- a/content/archive-layout-with-content/index.html
+++ b/content/archive-layout-with-content/index.html
@@ -677,7 +677,7 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/pull-request/" rel="permalink">Best Practice in Pull Request</a>
+        <a href="/docs/pull-request/" rel="permalink">How to manage Pull Request</a>
       
     </h2>
     
@@ -950,6 +950,19 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
+        <a href="/docs/create-pull-request/" rel="permalink">How to create Pull Request</a>
+      
+    </h2>
+    
+    
+  </article>
+</div>
+
+<div class="list__item">
+  <article class="archive__item" itemscope="" itemtype="http://schema.org/CreativeWork">
+    
+    <h2 class="archive__item-title" itemprop="headline">
+      
         <a href="/docs/best-practice-namesvr/" rel="permalink">Best Practice For NameServer</a>
       
     </h2>


[2/8] incubator-rocketmq-site git commit: Polish web-site documents

Posted by li...@apache.org.
Polish web-site documents


Project: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/commit/fbef4631
Tree: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/tree/fbef4631
Diff: http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/diff/fbef4631

Branch: refs/heads/asf-site
Commit: fbef4631dd407793d7ffdde81771a5c88f7ce6d9
Parents: 899327e
Author: Li Zhanhui <li...@gmail.com>
Authored: Thu Jun 8 13:08:18 2017 +0800
Committer: Li Zhanhui <li...@gmail.com>
Committed: Thu Jun 8 13:08:18 2017 +0800

----------------------------------------------------------------------
 _data/navigation.yml                    |   7 ++-
 _docs/01-quick-start-guide.md           |   5 +-
 _docs/02-motivation.md                  |  17 ++++--
 _docs/03-core-concept.md                |  24 ++++----
 _docs/04-cli-admin-tool.md              |  16 ++---
 _docs/05-cluster-deployment.md          |   2 +-
 _docs/06-best-practice-pull-request.md  |  55 ++++++++---------
 _docs/07-code-guidelines.md             |   2 +-
 _docs/07-frequently-asked-questions.md  |  88 +++++++++++++--------------
 _docs/08-release-manual.md              |  48 +++++++--------
 _docs/11-rocketmq-road-map.md           |  28 ++++-----
 _docs/12-rmq-batch-example.md           |  12 ++--
 _docs/13-rmq-broadcasting-example.md    |   6 +-
 _docs/14-rmq-deployment.md              |  26 ++++----
 _docs/16-rmq-architecture.md            |  16 ++---
 _docs/18-simple-example.md              |  24 ++++----
 _docs/best-practice-consumer.md         |  24 ++++----
 _docs/best-practice-create-pr.md        |  84 +++++++++++++++++++++++++
 _docs/best-practice-namesvr.md          |  26 ++++----
 _docs/best-practice-producer.md         |  40 ++++++------
 _pages/community.md                     |   2 +-
 _pages/customer.md                      |   9 ++-
 _sass/_archive.scss                     |   4 +-
 assets/images/community/tree-logo.png   | Bin 0 -> 9954 bytes
 assets/images/community/yhsoft-logo.png | Bin 0 -> 18076 bytes
 assets/images/eco.png                   | Bin 0 -> 116702 bytes
 26 files changed, 333 insertions(+), 232 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/fbef4631/_data/navigation.yml
----------------------------------------------------------------------
diff --git a/_data/navigation.yml b/_data/navigation.yml
index 5185f2d..cc6c8cd 100644
--- a/_data/navigation.yml
+++ b/_data/navigation.yml
@@ -35,6 +35,8 @@ docs:
         url: /docs/batch-example/
       - title: "Filter Example"
         url: /docs/filter-by-sql92-example/
+      - title: "FAQ"
+        url: /docs/faq/
 
   - title: Deployment & Operations
     children:
@@ -51,7 +53,7 @@ docs:
         url: /docs/code-guidelines/
       #- title: "Branching Model"
       #  url: /docs/branching-model
-      - title: "Pull Request"
+      - title: "Manage Pull Request"
         url: /docs/pull-request/
       - title: "Release Manual"
         url: /docs/release-manual
@@ -76,8 +78,7 @@ docs:
         url: /release_notes/release-notes-4.0.0-incubating/
   - title: RoadMap
     url: /docs/roadmap/
-  - title: FAQ
-    url: /docs/faq/
+
 
 about:
   - title: Team

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/fbef4631/_docs/01-quick-start-guide.md
----------------------------------------------------------------------
diff --git a/_docs/01-quick-start-guide.md b/_docs/01-quick-start-guide.md
index e298d39..cd7d4f2 100644
--- a/_docs/01-quick-start-guide.md
+++ b/_docs/01-quick-start-guide.md
@@ -5,7 +5,8 @@ excerpt: "How to quickly install and setup Apache RocketMQ."
 modified: 2016-12-29T15:01:43-04:00
 ---
 
-This quick start guide is a detailed instruction of setting up RocketMQ messaging system on a local machine and sending/receiving messages.
+This quick start guide is a detailed instruction of setting up RocketMQ messaging system on your local machine to send 
+and receive messages.
 
 {% include toc %}
 
@@ -42,7 +43,7 @@ This quick start guide is a detailed instruction of setting up RocketMQ messagin
   > tail -f ~/logs/rocketmqlogs/broker.log 
   The broker[%s, 172.30.30.233:10911] boot success...
 ```
-  
+
 
 # Send & Receive Messages
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/fbef4631/_docs/02-motivation.md
----------------------------------------------------------------------
diff --git a/_docs/02-motivation.md b/_docs/02-motivation.md
index 14eb57a..b15cee2 100644
--- a/_docs/02-motivation.md
+++ b/_docs/02-motivation.md
@@ -4,16 +4,25 @@ permalink: /docs/motivation/
 modified: 2016-12-16T15:01:43-04:00
 ---
 
-At early stages, we constructed our distributed messaging middleware based on ActiveMQ 5.x(prior to 5.3). Our multinational business uses it for async communication, search, social network activity stream, data pipeline, even in its trade processes. As our trade business throughput rises, pressure originating from our messaging cluster also become urgent.
+At early stages, we constructed our distributed messaging middleware based on ActiveMQ 5.x(prior to 5.3). Our 
+multinational business uses it for asynchronous communication, search, social network activity stream, data pipeline,
+even in its trade processes. As our trade business throughput rises, pressure originating from our messaging cluster
+also becomes urgent.
 
 {% include toc %}
 
 # Why RocketMQ ?
 
-Based on our research, with increased queues and virtual topics in use, ActiveMQ IO module reaches a bottleneck. We tried our best to solve this problem through throttling, circuit breaker or degradation, but it didn't work well. So we begin to focus on the popular messaging solution Kafka at that time. Unfortunately, Kafka can not meet our requirements especially low latency and high reliability, see [here](/rocketmq/how-to-support-more-queues-in-rocketmq/) for details.
+Based on our research, with increased queues and virtual topics in use, ActiveMQ IO module reaches a bottleneck. We 
+tried our best to solve this problem through throttling, circuit breaker or degradation, but it did not work well. So 
+we begin to focus on the popular messaging solution Kafka at that time. Unfortunately, Kafka can not meet our 
+requirements especially in terms of low latency and high reliability, see [here](/rocketmq/how-to-support-more-queues-in-rocketmq/) for details.
 
-In this context, we decided to invent a new messaging engine to handle a broader set of use cases, ranging from traditional pub/sub scenarios to high volume realtime zero-loss tolerance transaction system. We believe this solution can be beneficial, so we would like to open source it to the community. Today, more than 100 companies are using the open source version of RocketMQ in their business. We also published a commercial distribution based on RocketMQ, a Platform as a Service (PaaS) product called the
-[Alibaba Cloud Platform](https://intl.aliyun.com/).
+In this context, we decided to invent a new messaging engine to handle a broader set of use cases, ranging from 
+traditional pub/sub scenarios to high volume real-time zero-loss tolerance transaction system. We believe this solution
+can be beneficial, so we would like to open source it to the community. Today, more than 100 companies are using the 
+open source version of RocketMQ in their business. We also published a commercial distribution based on RocketMQ, a PaaS
+ product called the [Alibaba Cloud Platform](https://intl.aliyun.com/).
 
 
 The following table demonstrates the comparison between RocketMQ, ActiveMQ and Kafka (Apache's most popular messaging solutions according to [awesome-java](https://github.com/akullpp/awesome-java)):

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/fbef4631/_docs/03-core-concept.md
----------------------------------------------------------------------
diff --git a/_docs/03-core-concept.md b/_docs/03-core-concept.md
index 06d4add..ec0734a 100644
--- a/_docs/03-core-concept.md
+++ b/_docs/03-core-concept.md
@@ -6,7 +6,7 @@ modified: 2016-12-16T15:01:43-04:00
 
 ![RocketMQ model](/assets/images/rmq-model.png)
 
-From the above model, we can look deeper into some topics about messaging system design:
+According to the above model, we can dig deeper into some topics about messaging system design:
 
 {% include toc %}
 
@@ -23,9 +23,9 @@ A producer sends messages generated by the business application systems to broke
 
 ## Producer Group
 
-Producers of the same role are grouped together. A different producer instance of the same producer group may be contacted by a broker to commit or roll back a transaction in case the original producer crashed after starting the transaction. 
+Producers of the same role are grouped together. A different producer instance of the same producer group may be contacted by a broker to commit or roll back a transaction in case the original producer crashed after the transaction.
 
-**Warning**: Considering the provided producer is sufficiently powerful at sending messages, only one instance is allowed per producer group and process to avoid unnecessarily initializing of producer instances.
+**Warning**: Considering the provided producer is sufficiently powerful at sending messages, only one instance is allowed per producer group to avoid unnecessary initialization of producer instances.
 
 # Consumer
 
@@ -37,7 +37,7 @@ A Consumer pulls messages from brokers and feeds them into application. In persp
 
 ## PushConsumer
 
-  Push consumer, on the other hand, encapsulates message pulling, consuming progress maintaining and other effortful work inside, leaving a callback interface to end user to implement which will be executed on message arrival.
+  Push consumer, on the other hand, encapsulates message pulling, consuming progress and maintaining other work inside, leaving a callback interface to end user to implement which will be executed on message arrival.
 
 ## Consumer Group
 
@@ -45,31 +45,31 @@ Similar to previously mentioned producer group, consumers of the exactly same ro
 
 Consumer Group is a great concept with which achieving goals of load-balance and fault-tolerance, in terms of message consuming, is super easy. 
 
-**Warning**: consumer instances of a consumer group **must** have exactly same topic subscription(s).
+**Warning**: consumer instances of a consumer group **must** have exactly the same topic subscription(s).
 
 # Topic
 
-Topic is a category to which producers deliver messages and from which consumers pull messages. Topics have very loose relation with producers and consumers. Specifically, a topic may have zero, one or multiple producers that sends messages to it; conversely, a producer can sends messages of different topics. In consumer's view, a topic may be subscribed by zero, one or multiple consumer groups; and a consumer group, in the same paradigm, may subscribe one or multiple topics as long as instances of this group keep their subscription consistent as emphasized in the previous section. 
+Topic is a category in which producers deliver messages and consumers pull messages. Topics have very loose relationship with producers and consumers. Specifically, a topic may have zero, one or multiple producers that sends messages to it; conversely, a producer can send messages of different topics. In consumer's perspective, a topic may be subscribed by zero, one or multiple consumer groups. And a consumer group, similarly, may subscribe to one or more topics as long as instances of this group keep their subscription consistent.
 
 # Message
     
-Message is the envelope of your information to deliver. A message must be specified with a topic, which can be interpreted as address of your letter to mail to. A message may also have an optional tag set. Extra key-value pairs may also be included. For example, you may set a business key for your message and look up the message on broker server to diagnose issues during development.
+Message is the information to be delivered. A message must have a topic, which can be interpreted as address of your letter to mail to. A message may also have an optional tag and extra key-value pairs. For example, you may set a business key to your message and look up the message on a broker server to diagnose issues during development.
 
 ## Message Queue
 
-Topic, internally, is logically partitioned into one or more sub-topics. We call these sub-topics "message queues". This concept plays a major role in implementing valuable features, including fail-over, maximum concurrency, etc. 
+Topic is partitioned into one or more sub-topics, "message queues".
 
 ## Tag
 
-Tag, which can be thought as sub-topic, provides an extra flexibility for user. Through introducing tag,  messages with different purposes from the same business module may have the same topic yet different tag. It would be helpful to keep your code clean and coherent.
+Tag, in other words sub-topic, provides extra flexibility to users. With tag, messages with different purposes from the same business module may have the same topic and different tag. Tags would be helpful to keep your code clean and coherent, and tags also can facilitate the query system RocketMQ provides.
 
 ## Broker
 
-Broker is the major role of the RocketMQ system. It receives messages sent from producers, store them and being prepared to serve pull requests from consumers. It also stores message consuming related meta data, including consumer groups, consuming progress offsets and topic / queue info.
+Broker is a major component of the RocketMQ system. It receives messages sent from producers, store them and prepare to handle pull requests from consumers. It also stores message related meta data, including consumer groups, consuming progress offsets and topic / queue info.
 
 # Name Server
 
-Name server serves as the routing information provider. Producer/Consumer clients look up topics to find broker list to read from and write to.
+Name server serves as the routing information provider. Producer/Consumer clients look up topics to find the corresponding broker list.
 
 # Message Model
 
@@ -89,7 +89,7 @@ Consuming messages orderly means messages are consumed the same order they are s
 
 * Concurrently
    
-When consuming concurrently, maximum concurrency of message consuming is only limited by thread pool specified for each consumer client.
+When consuming messages concurrently, maximum concurrency of message consuming is only limited by thread pool specified for each consumer client.
 
 **Warn**: Message order is no longer guaranteed in this mode.
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/fbef4631/_docs/04-cli-admin-tool.md
----------------------------------------------------------------------
diff --git a/_docs/04-cli-admin-tool.md b/_docs/04-cli-admin-tool.md
index aa2ef44..943c8be 100644
--- a/_docs/04-cli-admin-tool.md
+++ b/_docs/04-cli-admin-tool.md
@@ -15,15 +15,15 @@ Make sure you have walked through [Quick Start](/docs/quick-start/) and [Core Co
 
 # How To Get it
 
-The admin tool is shipped along with RocketMQ. Either you download a pre-built binary version or build from source by yourself, you already have it.
+The admin tool is shipped along with RocketMQ. Whether you download a pre-built binary version or build from source by yourself, you have the tool with the package.
 
-In case you don't have source code, the [rocketmq-tools module](https://github.com/apache/incubator-rocketmq/tree/master/tools) contains its source code.
+If you want to look at the source code, please refer to [rocketmq-tools module](https://github.com/apache/incubator-rocketmq/tree/master/tools)
 
 # How to use
 
-The Admin Tool is very easy to use. Here, for demonstration purpose, *nix environment is assumed.
+The Admin Tool is very user friendly. Here, for demonstration purpose, *nix environment is assumed.
 
-Change directory to ${PACKAGE}/bin, command `bash mqadmin`, you should see the following help menu pops out.
+Change directory to ${PACKAGE}/bin, command `bash mqadmin`, you should see the following help menu.
 
     The most commonly used mqadmin commands are:
        updateTopic          Update or create topic
@@ -34,7 +34,7 @@ Change directory to ${PACKAGE}/bin, command `bash mqadmin`, you should see the f
        updateTopicPerm      Update topic perm
        topicRoute           Examine topic route info
        topicStatus          Examine topic Status info
-       topicClusterList     get cluster info for topic
+       topicClusterList     Get cluster info for topic
        brokerStatus         Fetch broker runtime status data
        queryMsgById         Query Message by Id
        queryMsgByKey        Query Message by Key
@@ -42,13 +42,13 @@ Change directory to ${PACKAGE}/bin, command `bash mqadmin`, you should see the f
        queryMsgByOffset     Query Message by offset
        queryMsgByUniqueKey  Query Message by Unique key
        printMsg             Print Message Detail
-       sendMsgStatus        send msg to broker.
+       sendMsgStatus        Send msg to broker.
        brokerConsumeStats   Fetch broker consume stats data
        producerConnection   Query producer's socket connection and client version
        consumerConnection   Query consumer's socket connection, client version and subscription
        consumerProgress     Query consumers's progress, speed
        consumerStatus       Query consumer's internal data structure
-       cloneGroupOffset     clone offset from other group.
+       cloneGroupOffset     Clone offset from other group.
        clusterList          List all of clusters
        topicList            Fetch all topic list from name server
        updateKvConfig       Create or update KV config.
@@ -62,7 +62,7 @@ Change directory to ${PACKAGE}/bin, command `bash mqadmin`, you should see the f
        statsAll             Topic and Consumer tps stats
        syncDocs             Synchronize wiki and issue to github.com
        allocateMQ           Allocate MQ
-       checkMsgSendRT       check message send response time
+       checkMsgSendRT       Check message send response time
        clusterRT            List All clusters Message Send RT
     
     See 'mqadmin help <command>' for more information on a specific command.

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/fbef4631/_docs/05-cluster-deployment.md
----------------------------------------------------------------------
diff --git a/_docs/05-cluster-deployment.md b/_docs/05-cluster-deployment.md
index 7874f89..38c41c8 100644
--- a/_docs/05-cluster-deployment.md
+++ b/_docs/05-cluster-deployment.md
@@ -22,7 +22,7 @@ Name server follows share-nothing design paradigm. Brokers send heartbeat data t
 
 # Broker
 
-Brokers can be divided into two categories according to their roles: master and slave. Master brokers can read and write while slave brokers can only read messages replicated from master. Master brokers have brokerId=0; brokerId of slave is non-zero. 
+Brokers can be divided into two categories according to their roles: master and slave. Master brokers can read and write while slave brokers can only read messages replicated from master. Master brokers have brokerID=0; brokerID of slave is non-zero.
 
 Brokers may also be grouped by the brokerName property. Slave brokers find their master through brokerName. One master broker along with zero, one or multiple slave brokers is called a broker set.
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/fbef4631/_docs/06-best-practice-pull-request.md
----------------------------------------------------------------------
diff --git a/_docs/06-best-practice-pull-request.md b/_docs/06-best-practice-pull-request.md
index 7442604..321ba1a 100644
--- a/_docs/06-best-practice-pull-request.md
+++ b/_docs/06-best-practice-pull-request.md
@@ -1,5 +1,5 @@
 ---
-title: "Best Practice in Pull Request"
+title: "How to manage Pull Request"
 permalink: /docs/pull-request/
 modified: 2016-12-24T15:01:43-04:00
 ---
@@ -16,13 +16,12 @@ First of all, fork github’s `apache/incubator-rocketmq` to your own account on
 Cloning this locally will set up `origin` to point to your remote fork on github as the default remote.
 Now you can create your pull requests.
 
-You will need to update a local master sometimes (to merge to your development branches sometimes).
+You will need to update a local master sometimes (to merge to your development branches).
 For this, you have to add remote for RocketMQ mirror as follows,
 
     git remote add upstream https://github.com/apache/incubator-rocketmq.git
     
-and update your local master via `git fetch` followed by `git rebase`, for instance, as follows
-
+and update your local master via `git fetch` followed by `git rebase`, for instance:
     git fetch upstream master
     git rebase upstream/master
 
@@ -48,14 +47,14 @@ Now if you want to experiment with a branch everything, by default, points to yo
 
     git checkout -b ROCKETMQ-xxxx #xxxx typically is a JIRA ticket number
     
-_To guarantee code quality of the master branch, all but minor changes should go through pull requests reviewed by peer committers._
+_To ensure the code quality of the master branch, all but minor changes should go through pull requests reviewed by peer committers._
     
 # Do some work on the branch
 
     git commit -a -m "doing some work"
     git push origin ROCKETMQ-xxxx # notice pushing to **origin** not **apache**
     
-Once you are ready to commit to the apache remote you can merge and push them directly or better yet create a PR.
+Once you are ready to commit to the apache remote you can merge and push them directly, otherwise always create a PR.
 
 # How to create a PR (committers)
 
@@ -64,48 +63,48 @@ Push your branch to Github:
     git checkout ROCKETMQ-xxxx
     git push origin ROCKETMQ-xxxx
     
-1. Go to your ROCKETMQ-xxxx branch on Github. Since you forked it from Github's apache/incubator-rocketmq. it will default any PR to go to apache/master.
+1. Go to your ROCKETMQ-xxxx branch on Github. Since you forked it from Github's apache/incubator-rocketmq. By default all PR will go to apache/master.
 
-2. Click the green "Compare, review, and create pull request" button.You can edit the to and from for the PR if it isn't correct. The "base fork" should be apache/incubator-rocketmq unless you are collaborating separately with one of the committers on the list. The "base" will be master. Don't submit a PR to one of the other branches unless you know what you are doing. The "head fork" will be your forked repo and the "compare" will be your ROCKETMQ-xxxx branch.
+2. Click the green "Compare, review, and create pull request" button. You can edit the to and from for the PR if it isn't correct. The "base fork" should be apache/incubator-rocketmq unless you are collaborating with one of the committers on the list. The "base" will be master. Don't submit a PR to any other branches unless permitted by branch owner. The "head fork" will be your forked repo and the "compare" will be your ROCKETMQ-xxxx branch.
 3. Click the "Create pull request" button and name the request "ROCKETMQ-xxxx" all caps. This will connect the comments of the PR to the mailing list and JIRA comments.
-4. From now on the PR lives on github's apache/incubator-rocketmq. You use the commenting UI there.
-5. If you are looking for a review or sharing with someone else say so in the comments but don't worry about automated merging of your PR -- you will have to do that later. The PR is tied to your branch so you can respond to comments, make fixes, and commit them from your local repo. They will appear on the PR page and be mirrored to Jira and the mailing list.
-6. When you are satisfied and want to push it to Apache's remote repo proceed with Merging a PR
+4. From now on the PR lives on github's apache/incubator-rocketmq. You can use the commenting UI there.
+5. If you are looking for a review or wanting to share with someone else please write a note in the comments and don't worry about automated merging of your PR -- you will have to do that later. The PR is tied to your branch so you can respond to comments, make fixes, and commit them from your local repo. They will appear on the PR page and be mirrored to JIRA and the mailing list.
+6. When you are satisfied and want to push it to Apache's remote repo, you can merge this PR.
 
 # How to create a PR (contributors)
 Before you create a pull request, make sure
 1. A corresponding [JIRA](https://issues.apache.org/jira/browse/ROCKETMQ/) issue is created and has a clear problem description.
-2. You follow [Coding Guidelines](/docs/code-guidelines/).
-3. You have unit tests for it, whenever applicable.
+2. Make sure you follow [Coding Guidelines](/docs/code-guidelines/).
+3. You have unit tests for everything you are about to commit.
 
-For information on creating pull requests, see [GitHub PR docs](https://help.github.com/articles/creating-a-pull-request/).
+For information about creating pull requests, please check [GitHub PR docs](https://help.github.com/articles/creating-a-pull-request/).
 
 Pull requests are made to `apache/incubator-rocketmq` repository on Github. 
-In the Github UI you should pick the master branch to target the PR as described in the section for committers. <br /> 
-You pull request will be reviewed and commented by committers, and issues can be discussed the contribution in progress. When all reviewers are positive on the pull request, it will be merged.
+In the Github UI you should pick the master branch as target of the PR. <br />
+You pull request will be reviewed and commented by committers, and issues can be discussed. When all reviewers are positive on the pull request, it will be merged.
 
 # Merging a PR (yours or contributors)
-Start with reading [GitHub PR merging locally](https://help.github.com/articles/checking-out-pull-requests-locally/). Remember that pull requests are equivalent to a remote github branch with potentially a multitude of commits. In this case it is recommended to squash remote commit history to have one commit per issue, rather than merging in a multitude of contributor's commits. In order to do that, as well as close the PR at the same time, it is recommended to use squash commits.
+Start with reading [GitHub PR merging locally](https://help.github.com/articles/checking-out-pull-requests-locally/). Remember that pull requests are equivalent to a remote github branch with potentially a multitude of commits. In this case it is recommended to squash remote commit history to have one commit per issue, rather than merging in a multitude of contributor's commits. In order to do that, as well as to close the PR at the same time, it is recommended to use squash commits.
 Merging pull requests are equivalent to a "pull" of a contributor's branch:
 
     git checkout master      # switch to local master branch
     git pull apache master   # fast-forward to current remote HEAD
     git pull --squash https://github.com/cuser/incubator-rocketmq.git ROCKETMQ-xxxx  # merge to master
     
-`--squash` ensures all PR history is squashed into single commit, and allows committer to use his/her own message. Read git help for merge or pull for more information about `--squash` option. In this example we assume that the contributor's Github handle is "cuser" and the PR branch name is "ROCKETMQ-xxxx". Next, resolve conflicts, if any, or ask a contributor to rebase on top of master, if PR went out of sync.
+`--squash` ensures all PR history is squashed into single commit, and allows committer to use his/her own message. Please refer to git help for merge or pull for more information about `--squash` option. In this example we assume that the contributor's Github handle is "cuser" and the PR branch name is "ROCKETMQ-xxxx". Next, resolve all conflicts, or ask a contributor to rebase on top of master, if PR went out of sync.
 
-If you are ready to merge your own (committer's) PR you probably only need to merge (not pull), since you have a local copy that you've been working on. This is the branch that you used to create the PR.
+If you are ready to merge your own (committer's) PR you only need to merge (not pull), since you have a local copy that you've been working on. This is the branch that you used to create the PR.
 
     git checkout master      # switch to local master branch
     git pull apache master   # fast-forward to current remote HEAD
     git merge --squash ROCKETMQ-xxxx
     
-Remember to run regular patch checks, build with tests enabled, and change CHANGELOG.
-If everything is fine, you now can commit the squashed request along the lines
+Please run regular patch checks, build with tests enabled, and change CHANGELOG whenever needed.
+If all requirements are met, you can commit the squashed request using:
 
     git commit --author="contributor_name <contributor_email>" -a -m "ROCKETMQ-XXXX description closes apache/incubator-rocketmq#ZZ"
     
-ROCKETMQ-XXXX is all caps and where ZZ is the pull request number on apache/incubator-rocketmq repository. Including "closes apache/incubator-rocketmq#ZZ" will close the PR automatically. More information is found here [GitHub PR closing docs.](https://help.github.com/articles/closing-issues-via-commit-messages/).
+ROCKETMQ-XXXX is all capitalized and ZZ is the pull request number on apache/incubator-rocketmq repository. Including "closes apache/incubator-rocketmq#ZZ" will close the PR automatically. More information can be found here [GitHub PR closing docs.](https://help.github.com/articles/closing-issues-via-commit-messages/).
 Next, push to git-wip-us.apache.org:
 
     git push apache master
@@ -115,7 +114,7 @@ The PR, once pushed, will get mirrored to github. To update your github version
 
     git push origin master
     
-Note on squashing: Since squash discards remote branch history, repeated PRs from the same remote branch are difficult for merging. The workflow implies that every new PR starts with a new rebased branch. This is more important for contributors to know, rather than for committers, because if new PR is not mergeable, github would warn to begin with. Anyway, watch for dupe PRs (based on same source branches). This is a bad practice.
+Note on squashing: Since squash discards remote branch history, repeated PRs from the same remote branch are difficult to be merged. The workflow implies that every new PR starts with a new rebased branch. This is more important for contributors to know, rather than for committers, because if new PR is not mergeable, github would warn at the start. Please watch for dupe PRs (based on same source branches).
 
 # Closing a PR without committing (for committers)
 When we want to reject a PR (close without committing), we can just issue an empty commit on master's HEAD without merging the PR:
@@ -130,18 +129,18 @@ that should close PR ZZ on github mirror without merging and any code modificati
 
 Read [infra blog](https://blogs.apache.org/infra/entry/improved_integration_between_apache_and). Comments and PRs with RocketMQ issue handles should post to mailing lists and JIRA. RocketMQ issue handles must in the form ROCKETMQ-YYYYY (all capitals). Usually it makes sense to file a JIRA issue first, and then create a PR with description
 ROCKETMQ-YYYY: <jira-issue-description>
-In this case all subsequent comments will automatically be copied to jira without having to mention JIRA issue explicitly in each comment of the PR.
+All subsequent comments will then automatically be copied to JIRA.
 
 # Best Practises
 
 ## Avoiding accidentally committing private branches to the ASF repo
 
-Its dangerously easy —especially when using IDEs— to accidentally commit changes to the ASF repo, be it direct to the trunk, branch-2 or other standard branch on which you are developing, or to a private branch you had intended to keep on github (or a private repo).
+It's dangerous —especially when using IDEs— to accidentally commit changes to the ASF repo, be directed to the trunk, branch-2, other standard branch on which you are developing, or to a private branch you had intended to keep on github (or a private repo).
 
-Committers can avoid this by having the directory in which they develop code set up with read only access to the ASF repository on github, without the apache repository added. A separate directory should be set up with write access to the ASF repository as well as read access to your other repositories. Merging operations and pushes back to the ASF repo are done from this directory —so isolated from all local development.
+Committers can avoid this by setting the directory in which they develop code to read only access to the ASF repository on github. A separate directory should also be set up with write access to the ASF repository as well as read access to your other repositories. Merging operations and push backs to the ASF repo are done from this directory —so it will be immune to all local changes.
 
-If you accidentally commit a patch to an ASF branch, do not attempt to roll back the branch and force out a new update. Simply commit and push out a new patch revoking the change.
+If you accidentally committed a patch to an ASF branch, do not attempt to roll back the branch and force out a new update. Simply commit and push out a new patch revoking the change.
 
-If you do accidentally commit a branch to the ASF repo, the infrastructure team can delete it —but they cannot stop it propagating to github and potentially being visible. Try not to do that.
+If you do accidentally committed a branch to the ASF repo, the infrastructure team can delete it —but they cannot stop it propagating to github and potentially being visible. Please avoid this.
 
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/fbef4631/_docs/07-code-guidelines.md
----------------------------------------------------------------------
diff --git a/_docs/07-code-guidelines.md b/_docs/07-code-guidelines.md
index 3326140..1901370 100644
--- a/_docs/07-code-guidelines.md
+++ b/_docs/07-code-guidelines.md
@@ -8,7 +8,7 @@ modified: 2016-12-29T15:01:43-04:00
 {% include toc %}
 
 # Introduction
-This document describes formatting rules and guidelines for software source code. Note that this document does not cover best programming practices or techniques. It is solely concentrating on source code formatting and conventions.
+This page describes formatting rules and guidelines for software source code.
 
 Studies have shown that 80% of development time is spent on software maintenance which involves software source code understanding, refactoring and support. Established and enforced code formatting rules and guidelines improve source code readability, promote team code ownership, allow engineers understand new code more quickly and thorough as well as simplify maintenance.
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/fbef4631/_docs/07-frequently-asked-questions.md
----------------------------------------------------------------------
diff --git a/_docs/07-frequently-asked-questions.md b/_docs/07-frequently-asked-questions.md
index 68d45e1..24629cd 100644
--- a/_docs/07-frequently-asked-questions.md
+++ b/_docs/07-frequently-asked-questions.md
@@ -16,80 +16,80 @@ No. RocketMQ can run independently.
 ### 1. Where does the newly created Consumer ID start consuming messages?
  
 1. If the topic sends a message within three days, then the consumer start consuming messages from the first message saved in the server.
-2. If the topic sends a message three days ago, the consumer start consuming messages from the latest message in the server, in other words, starting from the tail of message queue.
-3. If such consumer is the second reboot, then start to consumer message from the last consumption location.
+2. If the topic sends a message three days ago, the consumer starts to consume messages from the latest message in the server, in other words, starting from the tail of message queue.
+3. If such consumer is rebooted, then it starts to consume messages from the last consumption location.
 
 ### 2. How to reconsume message when consumption fails?
-	1.Cluster consumption pattern
-	The consumer business logic code return Action.ReconsumerLater, or NULL, or throws an exception, the message will go up to 16 times retry procedure, if still fail to retry 16 times, then such message descarded.
 	
-	2.Broadcast consumption pattern
-	The broadcaset consumption still ensures that a message is consumered at least once, but it is consumed fail without retry.
+1. Cluster consumption pattern
+The consumer business logic code returns Action.ReconsumerLater, NULL, or throws an exception, if a message failed to be consumed, it will retry for up to 16 times, after that, the message would be descarded.
+
+2. Broadcast consumption pattern
+The broadcaset consumption still ensures that a message is consumered at least once, but no resend option is provided.
 	
 
-### 3. How to deal with consume message failed?
+### 3. How to query the failed message if there is a consumption failure?
 
-1. Use topic query by the time range, you can query to a period of time Topic received all the messages.
+1. Using topic query by time, you can query messages within a period of time.
 2. Using Topic and Message Id to accurately query the message.
 3. Using Topic and Message Key accurately query a class of messages with the same Message Key.
 
 
-### 4. Delivery exactly once?
+### 4. Are messages delivered exactly once?
 
-In most cases, the message is not repeated. As a distributed message middleware, in the network jitter, application processing timeout and other abnormal circumstances, can not guarantee that the message is not repeated, but can ensure that the message is not lost.
+RocketMQ ensures that all messages are delivered at least once. In most cases, the messages are not repeated.
 
 ### 5. How to add a new broker?
 
-1. Start up a new broker and make it register to the same list of name servers.
-2. On default, only internally system topics and consumer groups are created automatically. If you would like to have your business topic and consumer groups on the new node, remember to replicate them from the existing broker. You may turn to admin tool command to achieve this.
+1. Start up a new broker and register it to the same list of name servers.
+2. By default, only internal system topics and consumer groups are created automatically. If you would like to have your business topic and consumer groups on the new node, please replicate them from the existing broker. Admin tool and command lines are provided to handle this.
 
 ## Configuration related
-### 1. How long the message is saved on the server?
+The following answers are all default values and can be modified by configuration.
+### 1. How long are the messages saved on the server?
 
-Stored messages are saved for up to 3 days, and messages that are not consumed for more than 3 days will be deleted.
+Stored messages are will be saved for up to 3 days, and messages that are not consumed for more than 3 days will be deleted.
 
-### 2. What is the length limit for message Body?
-Generally 256KB, but can be modified by configuration.
+### 2. What is the size limit for message Body?
+Generally 256KB.
 
 ### 3. How to set the number of consumer threads?
-When you start Consumer, set a ConsumeThreadNums property, example as follow.
+When you start Consumer, set a ConsumeThreadNums property, example is as follows:
 
-    properties.put(PropertyKeyConst.ConsumeThreadNums,20);
+    consumer.setConsumeThreadMin(20);
+    consumer.setConsumeThreadMax(20);
 
 ## Errors
-### 1. Start producer or consumer failed and producer group or consumer repeat?
-Reason:In the same JVM inside using the same Producer ID/Consumer ID launched multiple instances of Producer/Consumer, it may cause the client to start failure.
+### 1. If you start a producer or consumer failed and the error message is producer group or consumer repeat?
+Reason:Using the same Producer /Consumer Group to launch multiple instances of Producer/Consumer in the same JVM may cause the client fail to start.
 
-Solution: Ensure that a JVM corresponds to a Producer ID/Consumer ID starts only with a Producer/Consumer instance.
+Solution: Make sure that a JVM corresponding to one Producer /Consumer Group starts only with one Producer/Consumer instance.
 
-### 2. In broadcast mode, consumer start loading json file failed?
-Reason: Fastjson version is too low to cause the broadcast consumer to load a local offsets.json file failed, which causing the consumer boot failure.
+### 2. If consumer failed to start loading json file in broadcast mode?
+Reason: Fastjson version is too low to allow the broadcast consumer to load local offsets.json, causing the consumer boot failure. Damaged fastjson file can also cause the same problem.
 
-Solution: Fastjson version will be upgraded to rocketmq client dependent version, to ensure that the local offsets.json can be normal loading. By default offsets.json file is in /home/{user}/.rocketmq_offsets.
+Solution: Fastjson version has to be upgraded to rocketmq client dependent version to ensure that the local offsets.json can be loaded. By default offsets.json file is in /home/{user}/.rocketmq_offsets. Or check the integrity of fastjson.
 
-### 3. What if a broker crashes?
+### 3. What is the impact of a broker crash?
     
-    1. Master crashes
-       Messages can no longer be sent to this broker set, but if you have another broker set available, messages can be still sent there given the topic is present.Messages can still be consumed from slaves.
-    2. One slaves crashes
-       As long as there is another working slave, no impact on writing messages;No impact on consuming messages except when the consumer group is set to consume from this slave preferably. By default, it is from master.
-    3. All slaves crash
-       No impact on writing messages on master, but if master is a SYNC_MASTER, the producer will get a result of SLAVE_NOT_AVAILABLE indicating that the message is not replicated to any slaves.No impact on consuming messages except that if the consumer group is set to consume from slave preferably. By default, it is from master.
+1. Master crashes
 
-### 4. Producer complains "No Topic Route Info", how to diagnose?
-This happens when you are trying to send message to a topic whose route info is not available to the producer.
-	
-1. Confirm the producer can connect to a name server and capable of fetching routing meta info from it.
-2. Confirm that name servers do contain routing meta info of the topic. You may query the routing meta info from name server through topicRoute of admin tools or web console.
-3. Confirm your brokers are sending heartbeats to the same list of name servers your producer is connecting to.
-4. Confirm that the topic's perm is 6(rw-), or at least 2(-w-).
+  Messages can no longer be sent to this broker set, but if you have another broker set available, messages can still be sent given the topic is present. Messages can still be consumed from slaves.
+
+2. Some slave crash
 
-If you can't find this topic, create it via admin tools command updateTopic or web console on a broker. 
+  As long as there is another working slave, there will be no impact on sending messages. There will also be no impact on consuming messages except when the consumer group is set to consume from this slave preferably. By default, comsumer group consumes from master.
 
+3. All slaves crash
 
-## Features
-### 1. What kind of consumption pattern does RocketMQ provide?
-In RocketMQ, it providers two types of consumption patterns, such as Clustering consumption patterns and broadcasting consumption patterns. See the documentation on cluster patterns for details.
+  There will be no impact on sending messages to master, but, if the master is SYNC_MASTER, producer will get a SLAVE_NOT_AVAILABLE indicating that the message is not sent to any slaves. There will also be no impact on consuming messages except that if the consumer group is set to consume from slave preferably. By default, comsumer group consumes from master.
+
+### 4. Producer complains "No Topic Route Info", how to diagnose?
+This happens when you are trying to send messages to a topic whose routing info is not available to the producer.
+	
+1. Make sure that the producer can connect to a name server and is capable of fetching routing meta info from it.
+2. Make sure that name servers do contain routing meta info of the topic. You may query the routing meta info from name server through topicRoute using admin tools or web console.
+3. Make sure that your brokers are sending heartbeats to the same list of name servers your producer is connecting to.
+4. Make sure that the topic's permssion is 6(rw-), or at least 2(-w-).
 
-### 2. How many kinds of message type are supported?
-There are several types of messages that are currently supported in rocketmq,such as common message, timed message, transaction message, sequential message and delay message. User can select the appropriate message type according to the needs of the business.
+If you can't find this topic, create it on a broker via admin tools command updateTopic or web console.

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/fbef4631/_docs/08-release-manual.md
----------------------------------------------------------------------
diff --git a/_docs/08-release-manual.md b/_docs/08-release-manual.md
index fd0f05b..428ef80 100644
--- a/_docs/08-release-manual.md
+++ b/_docs/08-release-manual.md
@@ -7,11 +7,11 @@ modified: 2017-02-7T15:01:43-04:00
 
 {% include toc %}
 
-This is a guide to making a release of Apache RocketMQ (incubating). Please follow the steps below.
+This is a guide to make a released version of Apache RocketMQ (incubating). Please follow the steps below:
 
 ## Preliminaries
 ### Apache Release Documentation
-There are some release documentations provided by The ASF, including the incubator release documentation, can be found here:
+The release documentations provided by The ASF can be found here:
 
 * [Apache Release Guide](http://www.apache.org/dev/release-publishing)
 * [Apache Release Policy](http://www.apache.org/dev/release.html)
@@ -20,18 +20,18 @@ There are some release documentations provided by The ASF, including the incubat
 * [Maven Release Info](http://www.apache.org/dev/publishing-maven-artifacts.html)
 
 ### Code Signing Key
-Create a code signing gpg key for release signing, use **\<your Apache ID\>@apache.org** as your primary ID for the code signing key. See the [Apache Release Signing documentation](https://www.apache.org/dev/release-signing) for more details.
+Create a code signing gpg key for release signing, use **\<your Apache ID\>@apache.org** as your primary ID for the code signing key. See [Apache Release Signing documentation](https://www.apache.org/dev/release-signing) for more details.
 
-* Create new pgp key. How to use pgp please refer to [here](http://www.apache.org/dev/openpgp.html).
+* Create new pgp key. Please refer to [here](http://www.apache.org/dev/openpgp.html) on how to use gpg key.
 * Generate a new key via `gpg --gen-key`, and answer 4096 bits with no expiration time.
-* Upload your key to a public key server, like `gpg --keyserver pgpkeys.mit.edu --send-key <your key id>`.
+* Upload your key to a public key server by `gpg --keyserver pgpkeys.mit.edu --send-key <your key id>`.
 * Get the key signed by other committers(Optional).
 * Add the key to the RocketMQ [KEYS file](https://dist.apache.org/repos/dist/dev/incubator/rocketmq/KEYS).
 
 **Tips:** If you have more than one key in your gpg, set the code signing key to `~/.gnupg/gpg.conf` as default key is recommended.
  
 ### Prepare Your Maven Settings
-Make sure that your Maven settings.xml file contains the following:
+Make sure your Maven settings.xml file contains the following:
 
 ```xml
 <settings>
@@ -81,29 +81,29 @@ Firstly, checkout a new branch from `master` with its name equal to the release
 ### Build the Candidate Release Artifacts
 Before building the release artifacts, do some verifications below:
 
-* Ensure that now your are in the candidate release branch.
-* Ensure that all the unit tests can pass via `mvn clean install`.
-* Ensure that all the integration tests can pass via `mvn clean test -Pit-test`.
+* Make sure that your are in the candidate release branch.
+* Make sure that all the unit tests can pass via `mvn clean install`.
+* Make sure that all the integration tests can pass via `mvn clean test -Pit-test`.
 
 Perform the following to generate and stage the artifacts:
 
 1. `mvn clean release:clean`
-2. `mvn release:prepare -Psigned_release -Darguments="-DskipTests"`, answer the right release version, SCM release tag, and the new development version.
+2. `mvn release:prepare -Psigned_release -Darguments="-DskipTests"`, answer the correct release version, SCM release tag, and the new development version.
 3. `mvn -Psigned_release release:perform -Darguments="-DskipTests"`, generate the artifacts and push them to the [Nexus repo](https://repository.apache.org/#stagingRepositories). If you would like to perform a dry run first (without pushing the artifacts to the repo), add the arg -DdryRun=true
 
 Now, the candidate release artifacts can be found in the [Nexus staging repo](https://repository.apache.org/#stagingRepositories) and in the `target` folder of your local branch.
 
-**Tips:** If you are performing a source-only release, please remove all artifacts from the staging repo except for the .zip file containing the source and the javadocs jar file. In the Nexus GUI, you can right click on each artifact to be deleted and then select `Delete`.
+**Tips:** If you are performing a source-only release, please remove all artifacts from the staging repo besides the .zip file containing the source and the javadocs jar file. In the Nexus GUI, you can right click on each artifact to be deleted and then select `Delete`.
 
 ### Validate the Release Candidate
-Now the release candidate is ready, before calling a vote, the artifacts must satisfy the following checklist:
+Now the release candidate is ready, before calling a vote, the artifacts must satisfy the following requirements:
 
 * Checksums and PGP signatures are valid.
 * Build is successful including unit and integration tests.
-* DISCLAIMER is correct, filenames include “incubating”.
+* DISCLAIMER is correct and filenames must include “incubating”.
 * LICENSE and NOTICE files are correct and dependency licenses are acceptable.
-* All source files have license headers where appropriate, RAT checks pass
-* Javadocs have been generated correctly and are accurate.
+* All source files have license headers and pass RAT checks.
+* Javadocs have been generated correctly.
 * The provenance of all source files is clear (ASF or software grants).
 
 Please follow the steps below to verify the checksums and PGP signatures:
@@ -123,26 +123,26 @@ Please follow the steps below to verify the checksums and PGP signatures:
   ```shell
   gpg --verify rocketmq-all-%version-number%-incubating-source-release.zip.asc rocketmq-all-%version-number%-incubating-source-release.zip
   ```
-  Check the output to ensure it contains only good signatures:
+  Check the output to ensure it only contains good signatures:
   
   ```text
   gpg: Good signature from ... gpg: Signature made ...
   ```
 
-3. Compare MD5, SHA hash generated from the below command with the downloaded hash files.
+3. Compare MD5, SHA hash generated by the below command with the downloaded hash files.
 
   ```shell
   gpg --print-mds rocketmq-all-%version-number%-incubating-source-release.zip 
   ```
 
 ### Release Artifacts to Dev-Repository
-If the release candidate appears to pass the validation checklist, close the staging repository in Nexus by selecting the staging repository `orgapacherocketmq-XXX` and clicking on the `Close` icon.
+If the release candidate passes the validation checklist, close the staging repository in Nexus by selecting the staging repository `orgapacherocketmq-XXX` and clicking on the `Close` icon.
 
 Nexus will now run through a series of checksum and signature validations.
 
-If the checks pass, Nexus will close the repository and give a URL to the closed staging repo (which contains the candidate artifacts). Include this URL in the voting email so that folks can find the staged candidate release artifacts.
+If the checks are passed, Nexus will close the repository and produce a URL to the closed staging repo (which contains the candidate artifacts). Include this URL in the voting email so that folks can find the staged candidate release artifacts.
 
-If the checks do not pass, fix the issues, roll back and restart the release process. 
+If the checks aren't passed, fix the issues then go back and restart the release process.
 
 If everything is ok, use svn to copy the candidate release artifacts to RocketMQ repo: https://dist.apache.org/repos/dist/dev/incubator/rocketmq/${release version}.
 
@@ -153,7 +153,7 @@ As per the Apache Incubator [release guidelines](http://incubator.apache.org/inc
 General information regarding the Apache voting process can be found [here](http://www.apache.org/foundation/voting.html).
 
 ### Apache RocketMQ Community Vote
-To vote on a candidate release, send an email to the [dev list](mailto:dev@rocketmq.apache.incubator.org) with subject **[VOTE]: Release Apache RocketMQ \<release version\>(incubating) RC\<RC Number\>** and a body along the lines of:
+To vote on a candidate release, send an email to the [dev list](mailto:dev@rocketmq.apache.incubator.org) with subject **[VOTE]: Release Apache RocketMQ \<release version\>(incubating) RC\<RC Number\>** and body:
 
 > Hello RocketMQ Community,  
 >
@@ -188,7 +188,7 @@ To vote on a candidate release, send an email to the [dev list](mailto:dev@rocke
 > Thanks,  
 > The Apache RocketMQ Team  
 
-Once 72 hours has passed (which is generally preferred) and/or at least three +1 (binding) votes have been cast with no -1 (binding) votes, send an email closing the vote and pronouncing the release candidate a success. Please use the subject: **[RESULT][VOTE]: Release Apache RocketMQ \<release version\>(incubating) RC\<RC Number\>** :  
+Once 72 hours has passed (which is generally preferred) and/or at least three +1 (binding) votes have been cast with no -1 (binding) votes, send an email closing the vote and congratulate the release candidate. Please use the subject: **[RESULT][VOTE]: Release Apache RocketMQ \<release version\>(incubating) RC\<RC Number\>** :
 
 > Hello RocketMQ Community,  
 >
@@ -209,7 +209,7 @@ Once 72 hours has passed (which is generally preferred) and/or at least three +1
 > Thanks,   
 > The Apache RocketMQ Team
 
-If we do not pass the VOTE, fix the related issues, roll back, restart the release process and increase RC number. When we call a new vote, we must use the updated mail subject: **[RESTART][VOTE][#\<Attempt Number\>]: Release Apache RocketMQ \<release version\>(incubating) RC\<RC Number\>**
+If we do not pass the VOTE, fix the related issues, go back, restart the release process and increase RC number. When we call a new vote, we must use the updated mail subject: **[RESTART][VOTE][#\<Attempt Number\>]: Release Apache RocketMQ \<release version\>(incubating) RC\<RC Number\>**
 
 ### Incubator PMC Vote
 Once the candidate release vote passes on dev@rocketmq, send an email to [IMPC](mailto:general@incubator.apache.org) with subject **[VOTE]: Release Apache RocketMQ \<release version\>(incubating) RC\<RC Number\>** and a body along the lines of:
@@ -253,7 +253,7 @@ Once the candidate release vote passes on dev@rocketmq, send an email to [IMPC](
 > Thanks,  
 > The Apache RocketMQ Team
 
-Also don't forget announce the vote result:
+Also don't forget to announce the vote result:
 
 > Hello Incubator PMC,  
 >

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/fbef4631/_docs/11-rocketmq-road-map.md
----------------------------------------------------------------------
diff --git a/_docs/11-rocketmq-road-map.md b/_docs/11-rocketmq-road-map.md
index abf9d7b..76a2581 100644
--- a/_docs/11-rocketmq-road-map.md
+++ b/_docs/11-rocketmq-road-map.md
@@ -8,14 +8,14 @@ modified: 2017-3-7T15:01:43-04:00
 
 
 ### OpenMessaging 
-OpenMessaging, which includes the establishment of industry guidelines and messaging, streaming specifications to provide a common framework for finance, e-commerce, IoT and big-data area. The design principles are the cloud-oriented, simplicity, flexibility, and language independent in distributed heterogeneous environments. Conformance to these specifications will make it possible to develop a heterogeneous messaging applications across all major platforms and operating systems. [JIRA](https://issues.apache.org/jira/browse/ROCKETMQ-17) 
+OpenMessaging, which includes the establishment of industry guidelines and messaging, streaming specifications to provide a common framework for finance, e-commerce, IoT and big-data area. The design principles are the cloud-orientedness, simplicity, flexibility, and language independency in distributed heterogeneous environments. Conformance to these specifications allows the development of a heterogeneous messaging applications across all major platforms and operating systems. [JIRA](https://issues.apache.org/jira/browse/ROCKETMQ-17)
 
 
 {% include toc %} 
 
 
 ### Message Filtering 
-So far, RocketMQ only support message filtering feature by `TAG`, but one message only can own one tag, this is too limited to meet complex business requirements. 
+So far, RocketMQ only supports message filtering feature by `TAG`, but one message can only own one tag, which is too limited to meet complex business requirements.
 
 
 So, we want to define and implement a reasonable filter language based on a subset of the SQL 92 expression syntax to support customized message filtering. [JIRA](https://issues.apache.org/jira/browse/ROCKETMQ-121) 
@@ -23,38 +23,38 @@ So, we want to define and implement a reasonable filter language based on a subs
 
 ### Batch Messaging 
 
-In order to use RocketMQ in big data related scenarios, batch messaging is necessary, which will bring million-level TPS for RocketMQ. [JIRA](https://issues.apache.org/jira/browse/ROCKETMQ-80), [PR](https://github.com/apache/incubator-rocketmq/pull/53) 
+In order to use RocketMQ in big data related scenarios, batch messaging is necessary and will bring million-level TPS for RocketMQ. [JIRA](https://issues.apache.org/jira/browse/ROCKETMQ-80), [PR](https://github.com/apache/incubator-rocketmq/pull/53)
 
 ### Consistent Hash Allocate Strategy(CHAS) 
 
-Consumer clients use the average allocate strategy by far, which is very sensitive when clients register or unregister continually. 
+Consumer clients use the average allocate strategy by far, which is very sensitive when clients register or unregister continuously.
 
-A Consistent Hash allocate strategy is valuable for the developer who cares more about stabilization than averaging. 
+A Consistent Hash allocate strategy is valuable for developers who care more about stabilization than averaging.
 
-So it's better for us to support CHAS as a extra choice in consumer load balancing. [JIRA](https://issues.apache.org/jira/browse/ROCKETMQ-67), [PR](https://github.com/apache/incubator-rocketmq/pull/67) 
+So we decided to support CHAS as an extra choice in consumer load balancing. [JIRA](https://issues.apache.org/jira/browse/ROCKETMQ-67), [PR](https://github.com/apache/incubator-rocketmq/pull/67)
 
 ### Global Order Messaging 
 
 As we know, messages in the same queue can be consumed sequentially. So we always send the congeneric messages to the same queue to guarantee ordering, which will cause hot-point issue. 
 
-So It's cool if we support a new global order messaging mechanism, without hot-points problem. [JIRA](https://issues.apache.org/jira/browse/ROCKETMQ-122) 
+So it'd be cool if we can support a new global order messaging mechanism without the hot-point problem. [JIRA](https://issues.apache.org/jira/browse/ROCKETMQ-122)
 
 ### Distributed Transaction Messaging 
-Undoubtedly, transaction messaging is very frequently-used in most business.  
+Undoubtedly, transaction messaging is frequently used in most business.
 
-But it is unfortunate that users must implement transaction mechanism by themselves until now, may be they need DataBase to implement it. 
+But users have to implement transaction mechanism by themselves for now, so there is a potential need of a database implementation to solve the problem.
  
-It's time to support distributed transaction messaging to make it convenient for the user, help them handle complex business with skill and ease. [JIRA](https://issues.apache.org/jira/browse/ROCKETMQ-123) 
+Now we can support distributed transaction messaging to make it convenient for the users and help them handle complex business. [JIRA](https://issues.apache.org/jira/browse/ROCKETMQ-123)
 
 ### Non-Redundant Message Delivery Mechanism 
 
-The duplicated messages are worrisome. It will cost much if user need non-repeating messages. 
+The duplicated messages will impose extra cost if user needs non-repeating messages.
 
-In most cases, user need store the consume records to judge a message is replicated or not, and the store stage should guarantee strong consistency. As you see, it's very complicated, so support a strict and non-redundant message delivery mechanism is impending. [JIRA](https://issues.apache.org/jira/browse/ROCKETMQ-124) 
+In most cases, user needs to store the consume records to determine if a message is duplicated, and the store stage should guarantee consistency. So we need to support a strict and non-redundant message delivery mechanism. [JIRA](https://issues.apache.org/jira/browse/ROCKETMQ-124)
 
 ### Intellective HA Architecture 
 
-RocketMQ uses master-slave as HA architecture, which has low latency and high throughput features, but this program need human intervention to recover from abnormal situations. 
+RocketMQ uses master-slave as HA architecture, which has low latency and high throughput, but this program needs human intervention to recover from abnormal situations.
   
 So, we want to support a multi-replication high availability/reliability mechanism, without human intervention. [JIRA](https://issues.apache.org/jira/browse/ROCKETMQ-125) 
 
@@ -67,7 +67,7 @@ MQTT is a machine-to-machine (M2M)/"Internet of Things" connectivity protocol, w
 ## 4.4.0-incubating+ RoadMap: 
 
 1. Support more application layer protocol: WebSocket, HTTP2, etc. 
-2. Support more native language SDK: PHP, Python, .Net, Node, Go, etc. The chosen programming languages are the result of surveying many cloud platforms. 
+2. Support more native language SDK: PHP, Python, .Net, Node, Go, etc. The chosen programming languages are based on the investigation of many cloud platforms.
 3. Support advanced message queuing protocol(AMQP). 
 
 ## RocketMQ Externals 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/fbef4631/_docs/12-rmq-batch-example.md
----------------------------------------------------------------------
diff --git a/_docs/12-rmq-batch-example.md b/_docs/12-rmq-batch-example.md
index a94c27c..67a436c 100644
--- a/_docs/12-rmq-batch-example.md
+++ b/_docs/12-rmq-batch-example.md
@@ -7,15 +7,15 @@ modified: 2017-04-24T15:01:43-04:00
 
 {% include toc %}
 
-### Why batch?
-Sending messages in batch improves performance of delivering small messages. 
+#### Why batch?
+Sending messages in batch improves performance of delivering small messages.
 
-### Usage constraints
+#### Usage constraints
 Messages of the same batch should have: same topic, same waitStoreMsgOK and no schedule support.
 
 Besides, the total size of the messages in one batch should be no more than 1MiB.
 
-### How to use batch
+#### How to use batch
 If you just send messages of no more than 1MiB at a time, it is easy to use batch:
 
 ```java
@@ -32,7 +32,7 @@ try {
 }
     
 ```
-### Split into lists
+#### Split into lists
 The complexity only grow when you send large batch and you may not sure if it exceeds the size limit (1MiB).
 
 At this time, you'd better split the lists:
@@ -91,4 +91,4 @@ while (splitter.hasNext()) {
        //handle the error
    }
 }
-```
+```
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/fbef4631/_docs/13-rmq-broadcasting-example.md
----------------------------------------------------------------------
diff --git a/_docs/13-rmq-broadcasting-example.md b/_docs/13-rmq-broadcasting-example.md
index ea2b30d..f236abf 100644
--- a/_docs/13-rmq-broadcasting-example.md
+++ b/_docs/13-rmq-broadcasting-example.md
@@ -7,10 +7,10 @@ modified: 2017-04-24T15:01:43-04:00
 
 {% include toc %}
 
-### What is broadcasting
+#### What is broadcasting
 Broadcasting is sending a message to all subscribers of a topic. If you want all subscribers receive messages about a topic, broadcasting is a good choice.
 
-### Producer example
+#### Producer example
 
 ```java
 public class BroadcastProducer {
@@ -31,7 +31,7 @@ public class BroadcastProducer {
 }
 ```
 
-### Consumer example
+#### Consumer example
 
 ```java
 public class BroadcastConsumer {

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/fbef4631/_docs/14-rmq-deployment.md
----------------------------------------------------------------------
diff --git a/_docs/14-rmq-deployment.md b/_docs/14-rmq-deployment.md
index 9e52422..497b0ac 100644
--- a/_docs/14-rmq-deployment.md
+++ b/_docs/14-rmq-deployment.md
@@ -7,28 +7,28 @@ modified: 2017-04-24T15:01:43-04:00
 
 {% include toc %}
 
-This section is to introduce deployment solution which is considered production-ready. Generally speaking, we are deploying a resilient RocketMQ cluster having no single point of failure.
+This section introduces production-ready deployment solution. Generally speaking, we are deploying a resilient RocketMQ cluster having no single point of failure.
 
 ### Prerequisite
-Before starting this section, make sure you have read Quick Start section, in which core concepts and components of RocketMQ are introduced.
+Before starting this section, make sure you have read Quick Start section, and are farmiliar with the core concepts and components of RocketMQ.
 
 #### Production-ready Deployment
 ##### Name Server
-To ensure the cluster can still operate normally when one instance crashes, two or more name server instances are recommended. As long as there is one name server instance alive, the whole cluster remains in service.
+To ensure the cluster can still function when one instance crashes, two or more name server instances are recommended. As long as there is one name server instance alive, the whole cluster remains in service.
 
-Name server follows the share-nothing design paradigm. Brokers send heartbeat data to all name servers. Producers and consumers may query meta data from any of name servers available while sending / consuming messages.
+Name server follows the share-nothing design paradigm. Brokers send heartbeat data to all name servers. Producers and consumers can query meta data from any of name servers available while sending / consuming messages.
 
 #### Broker
 Brokers can be divided into two categories according to their roles: master and slave. Master brokers provide RW access while slave brokers only accept read access.
 
-To deploy a high-availability RocketMQ cluster which has no single point of failure, a series of broker sets should be deployed. A broker set contains one master with brokerId set to 0 and several slaves with non-zero brokerIDs. All of the brokers in one set have the same brokerName. In serious scenarios, we should have at least two brokers in one broker set. Each topic resides in two or more brokers.
+To deploy a high-availability RocketMQ cluster with no single point of failure, a series of broker sets should be deployed. A broker set contains one master with brokerId set to 0 and several slaves with non-zero brokerIDs. All of the brokers in one set have the same brokerName. In serious scenarios, we should have at least two brokers in one broker set. Each topic resides in two or more brokers.
 
 ### Configuration
-When deploying a RocketMQ cluster, below configurations should be taken into consideration.
+When deploying a RocketMQ cluster, recommended configuration is listed below:
 
 ##### Broker configuration
 
-| Property Name        | Default values           | Details  |
+| Property Name        | Default value           | Details  |
 | ----------------- |:------------------:| ---------------:|
 | listenPort      | 10911 | listen port for client |
 | namesrvAddr      | null      |   name server address |
@@ -50,12 +50,12 @@ RocketMQ provides a CLI(command-line interface) admin tool belt to query, manage
 #### How To Get
 The admin tool is shipped along with RocketMQ. Either you download a pre-built binary version or build from source by yourself, you already have it.
 
-In case you have source code, the rocketmq-tools module contains its source code.
+In case you need the source code, the rocketmq-tools module contains its source code.
 
 #### How to use
 The Admin Tool is very easy to use. Here, for demonstration purpose, *nix environment is assumed.
 
-Change directory to ${PACKAGE}/bin, command bash mqadmin, you should see the following help menu pops out:
+Change directory to ${PACKAGE}/bin, command bash mqadmin, you should see the following help menu:
 
 ```java 
 The most commonly used mqadmin commands are:
@@ -75,13 +75,13 @@ The most commonly used mqadmin commands are:
    queryMsgByOffset     Query Message by offset
    queryMsgByUniqueKey  Query Message by Unique key
    printMsg             Print Message Detail
-   sendMsgStatus        send msg to broker
+   sendMsgStatus        Send msg to broker
    brokerConsumeStats   Fetch broker consume stats data
    producerConnection   Query producer's socket connection and client version
    consumerConnection   Query consumer's socket connection, client version and subscription
    consumerProgress     Query consumers's progress, speed
    consumerStatus       Query consumer's internal data structure
-   cloneGroupOffset     clone offset from other group
+   cloneGroupOffset     Clone offset from other group
    clusterList          List all of clusters
    topicList            Fetch all topic list from name server
    updateKvConfig       Create or update KV config
@@ -95,7 +95,7 @@ The most commonly used mqadmin commands are:
    statsAll             Topic and Consumer tps stats
    syncDocs             Synchronize wiki and issue to github.com
    allocateMQ           Allocate MQ
-   checkMsgSendRT       check message send response time
+   checkMsgSendRT       Check message send response time
    clusterRT            List All clusters Message Send RT
 
 ```
@@ -111,7 +111,7 @@ usage: mqadmin clusterList [-h] [-i <arg>] [-m] [-n <arg>]
 ```
 
 ### Replication mode
-To guarantee any successfully published message won't be lost, RocketMQ provides a Replication mode to gain stronger durability and higher availability with two replication way: Sync & Async.
+To make sure that no successfully published message will be lost, RocketMQ provides a Replication mode to gain stronger durability and higher availability with two replication ways: Sync & Async.
 
 ##### Replication: Sync / Async Broker
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/fbef4631/_docs/16-rmq-architecture.md
----------------------------------------------------------------------
diff --git a/_docs/16-rmq-architecture.md b/_docs/16-rmq-architecture.md
index 0cd352b..165e2c3 100644
--- a/_docs/16-rmq-architecture.md
+++ b/_docs/16-rmq-architecture.md
@@ -13,7 +13,7 @@ modified: 2017-04-24T15:01:43-04:00
 
 # Overview
 
-The greatest strengths of RocketMQ are high throughput, high reliability, and low latency when supporting massive messages through exquisite scale out and scale up. RocketMQ consists of four parts: name servers, brokers, producers and consumers. Each of them can be horizontally extended without a single Point of Failure. As shown in screenshot below.
+Apache RocketMQ is a distributed messaging and streaming platform with low latency, high performance and reliability, trillion-level capacity and flexible scalability. It consists of four parts: name servers, brokers, producers and consumers. Each of them can be horizontally extended without a single Point of Failure. As shown in screenshot above.
 
 
 
@@ -23,7 +23,7 @@ Name Servers provide lightweight service discovery and routing. Each Name Server
 
 **Broker Cluster**
 
-Brokers take care of message storage by providing lightweight TOPIC and QUEUE mechanisms. It supports the Push and Pull model, contains fault tolerance mechanism (2 copies or 3 copies), and provides strong padding of peaks and capacity of accumulating hundreds of billion messages in their original time order. In addition, Brokers provide disaster recovery, rich metrics statistics, and alert mechanisms, all of which are lacking in traditional messaging systems.
+Brokers take care of message storage by providing lightweight TOPIC and QUEUE mechanisms. They support the Push and Pull model, contains fault tolerance mechanism (2 copies or 3 copies), and provides strong padding of peaks and capacity of accumulating hundreds of billion messages in their original time order. In addition, Brokers provide disaster recovery, rich metrics statistics, and alert mechanisms, all of which are lacking in traditional messaging systems.
 
 **Producer Cluster**
 
@@ -32,7 +32,7 @@ Producers support distributed deployment. Distributed Producers send messages to
 **Consumer Cluster**
 
 Consumers support distributed deployment in the Push and Pull model as well. It also supports cluster consumption and message broadcasting. It provides real-time message subscription mechanism and can meet most consumer requirements. 
-RocketMQ’s website provides a simple quick-start guide[3] to interested users.
+RocketMQ’s website provides a simple quick-start guide to interested users.
 
 # NameServer
 
@@ -58,11 +58,11 @@ Broker server is responsible for message store and delivery, message query, HA g
 
 As shown in image below, Broker server has searval important sub modules:
 
-* Remoting Module, the entry of broker, handle the requests from clients.
-* Client Manager, manage the clients (Producer/Consumer), maintain topic subscription of consumer.
-* Store Service, provide simple APIs to store or query message in physical disk.
-* HA Service, provide data sync feature between master broker and slave broker.
-* Index Service, build index for messages by specified key and provide quick message query function.
+* Remoting Module, the entry of broker, handles the requests from clients.
+* Client Manager, manages the clients (Producer/Consumer) and maintains topic subscription of consumer.
+* Store Service, provides simple APIs to store or query message in physical disk.
+* HA Service, provides data sync feature between master broker and slave broker.
+* Index Service, builds index for messages by specified key and provides quick message query.
 
 ![](/assets/images/rmq-basic-component.png)
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/fbef4631/_docs/18-simple-example.md
----------------------------------------------------------------------
diff --git a/_docs/18-simple-example.md b/_docs/18-simple-example.md
index f7436b9..c782117 100644
--- a/_docs/18-simple-example.md
+++ b/_docs/18-simple-example.md
@@ -10,13 +10,12 @@ modified: 2017-04-24T15:01:43-04:00
 {% include toc %}
 
 Use RocketMQ to send messages in three ways: reliable synchronous, reliable
-asynchronous, and one-way transmission. 
+asynchronous, and one-way transmission.
 
-This page introduces: 
-the use cases, similarities and differences between the three implementations, 
-and a code example for reference.
+This page exemplifies these three message-sending ways. Checkout the notes along with the example to figure out which 
+way to use for your specific use case.
 
-### Reliable synchronous transmission
+#### Reliable synchronous transmission
 
 Application: Reliable synchronous transmission is used in extensive scenes, such as
 important notification messages, SMS notification, SMS marketing system, etc..
@@ -46,16 +45,15 @@ public class SyncProducer {
 }
 
 ```
-### Reliable asynchronous transmission
+#### Reliable asynchronous transmission
 
-Application: asynchronous transmission is generally used to link time-consuming, 
-response time sensitive business scenarios.
+Application: asynchronous transmission is generally used in response time sensitive business scenarios.
 
 ```java
 public class AsyncProducer {
     public static void main(String[] args) throws Exception {
         //Instantiate with a producer group name.
-        DefaultMQProducer producer = new DefaultMQProducer("Jodie_Daily_test");
+        DefaultMQProducer producer = new DefaultMQProducer("ExampleProducerGroup");
         //Launch the instance.
         producer.start();
         producer.setRetryTimesWhenSendAsyncFailed(0);
@@ -85,7 +83,7 @@ public class AsyncProducer {
 }
 ```
 
-### One-way transmission
+#### One-way transmission
 
 Application: One-way transmission is used for cases requiring moderate reliability,
 such as log collection.
@@ -94,7 +92,7 @@ such as log collection.
 public class OnewayProducer {
     public static void main(String[] args) throws Exception{
         //Instantiate with a producer group name.
-        DefaultMQProducer producer = new DefaultMQProducer("example_group_name");
+        DefaultMQProducer producer = new DefaultMQProducer("ExampleProducerGroup");
         //Launch the instance.
         producer.start();
         for (int i = 0; i < 100; i++) {
@@ -106,11 +104,11 @@ public class OnewayProducer {
             );
             //Call send message to deliver message to one of brokers.
             producer.sendOneway(msg);
-            
+
         }
         //Shut down once the producer instance is not longer in use.
         producer.shutdown();
     }
 }
 
-```
+```
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/fbef4631/_docs/best-practice-consumer.md
----------------------------------------------------------------------
diff --git a/_docs/best-practice-consumer.md b/_docs/best-practice-consumer.md
index a1d6c6b..c1bd2c5 100644
--- a/_docs/best-practice-consumer.md
+++ b/_docs/best-practice-consumer.md
@@ -8,25 +8,25 @@ Some useful tips for users.
 
 {% include toc %}
 ## Consumer Group and Subscriptions
-The first thing you should be aware of is that different Consumer Group can consume the same topic independently, each of the group will have their own consuming offsets. 
-And make sure each Consumer within the same Group to subscribe the same topics.
+The first thing you should be aware of is that different Consumer Group can consume the same topic independently, and each of them will have their own consuming offsets.
+Please make sure each Consumer within the same Group to subscribe the same topics.
 ## MessageListener
 ### Orderly
-The Consumer will lock each MessageQueue to make sure it is consumed one by one orderly. This will cause performance loss, but it is useful when you are care about the order of the messages.
-It is not recommended to throw exception, you can return ConsumeOrderlyStatus.SUSPEND_CURRENT_QUEUE_A_MOMENT instead.
+The Consumer will lock each MessageQueue to make sure it is consumed one by one in order. This will cause a performance loss, but it is useful when you care about the order of the messages.
+It is not recommended to throw exceptions, you can return ConsumeOrderlyStatus.SUSPEND_CURRENT_QUEUE_A_MOMENT instead.
 ### Concurrently
-As the name tells, the Consumer will consume the messages concurrently. It is recommended to use this for achieving good performance.
-It is not recommended to throw exception, you can return ConsumeConcurrentlyStatus.RECONSUME_LATER instead.
+As the name tells, the Consumer will consume the messages concurrently. It is recommended to use this for good performance.
+It is not recommended to throw exceptions, you can return ConsumeConcurrentlyStatus.RECONSUME_LATER instead.
 ### Consume Status
 For MessageListenerConcurrently, you can return RECONSUME_LATER to tell the consumer that you can not consume it right now and want to reconsume it later. Then you can continue to consume other messages. 
-For MessageListenerOrderly, as that you care about the order, so you can not jump over the message, but you can return SUSPEND_CURRENT_QUEUE_A_MOMENT to tell the consumer to hold on for a moment.
+For MessageListenerOrderly, because you care about the order, you can not jump over the message, but you can return SUSPEND_CURRENT_QUEUE_A_MOMENT to tell the consumer to wait for a moment.
 ### Blocking
-It is not recommend to block the Listener, for in return it will block the thread pool, and finally the consuming process may get stuck.
+It is not recommend to block the Listener, because it will block the thread pool, and eventually may stop the consuming process.
 ## Thread Number
-The consumer use a ThreadPoolExecutor to process consuming internally. So you can tune it by using setConsumeThreadMin or setConsumeThreadMax.
+The consumer use a ThreadPoolExecutor to process consuming internally, so you can change it by setting setConsumeThreadMin or setConsumeThreadMax.
 ## ConsumeFromWhere
-When a new Consumer Group is established, it will need to decide whether it need to consume the historical messages which had already existed in the Broker. 
-CONSUME_FROM_LAST_OFFSET will ignore the historical messages, and consume any newly produced.
+When a new Consumer Group is established, it will need to decide whether it needs to consume the historical messages which had already existed in the Broker.
+CONSUME_FROM_LAST_OFFSET will ignore the historical messages, and consume anything produced after that.
 CONSUME_FROM_FIRST_OFFSET will consume every message existed in the Broker.
 You can also use CONSUME_FROM_TIMESTAMP to consume messages produced after the specified timestamp.
 ## Duplication
@@ -35,5 +35,5 @@ Many circumstances could cause duplication, such as:
 * Consumer shutdown with some offsets not updated to the Broker in time.
 
 
-So you may need to do some external work to handle this if your application cannot tolerate. For example, you may check the primary key of your DB.
+So you may need to do some external work to handle this if your application cannot tolerate duplication. For example, you may check the primary key of your DB.
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/fbef4631/_docs/best-practice-create-pr.md
----------------------------------------------------------------------
diff --git a/_docs/best-practice-create-pr.md b/_docs/best-practice-create-pr.md
new file mode 100644
index 0000000..aeced4f
--- /dev/null
+++ b/_docs/best-practice-create-pr.md
@@ -0,0 +1,84 @@
+---
+title: "How to create Pull Request"
+permalink: /docs/create-pull-request/
+modified: 2016-12-24T15:01:43-04:00
+---
+
+This page guides you through the pull request creation process.
+
+{% include toc %}
+
+# Git setup for Contributors
+First of all, fork github’s `apache/incubator-rocketmq` to your own account on github and clone it as follows,
+
+    git clone https://github.com/<your_github_name>/incubator-rocketmq.git
+
+Cloning this locally will set up `origin` to point to your remote fork on github as the default remote.
+Now you can create your pull requests.
+
+You will need to update a local master sometimes (to merge to your development branches sometimes).
+For this, you have to add remote for RocketMQ mirror as follows,
+
+    git remote add upstream https://github.com/apache/incubator-rocketmq.git
+
+and update your local master via `git fetch` followed by `git rebase`, for instance:
+    git fetch upstream master
+    git rebase upstream/master
+
+# Git setup for Committers
+In addition to contributors' configurations, committers will have to attach the apache git repo:
+
+    git remote add apache https://git-wip-us.apache.org/repos/asf/incubator-rocketmq.git
+
+To check your remote setup, issue
+
+    git remote -v
+
+You should see something like this:
+
+    origin    https://github.com/<your_github_name>/incubator-rocketmq.git (fetch)
+    origin    https://github.com/<your_github_name>/incubator-rocketmq.git (push)
+    upstream  https://github.com/apache/incubator-rocketmq.git (fetch)
+    upstream  https://github.com/apache/incubator-rocketmq.git (push)
+    apache    https://git-wip-us.apache.org/repos/asf/incubator-rocketmq.git (fetch)
+    apache    https://git-wip-us.apache.org/repos/asf/incubator-rocketmq.git (push)
+
+Now if you want to experiment with a branch everything, by default, points to your github account because 'origin' is default. You can work as normal using only github until you are ready to merge with the apache remote. Some conventions will integrate with Apache JIRA ticket numbers.
+
+    git checkout -b ROCKETMQ-xxxx #xxxx typically is a JIRA ticket number
+
+_To ensure the code quality of the master branch, all but minor changes should go through pull requests reviewed by peer committers._
+
+# Do some work on the branch
+
+    git commit -a -m "doing some work"
+    git push origin ROCKETMQ-xxxx # notice pushing to **origin** not **apache**
+
+Once you are ready to commit to the apache remote you can merge and push them directly, otherwise always create a PR.
+
+# How to create a PR (committers)
+
+Push your branch to Github:
+
+    git checkout ROCKETMQ-xxxx
+    git push origin ROCKETMQ-xxxx
+
+1. Go to your ROCKETMQ-xxxx branch on Github. Since you forked it from Github's apache/incubator-rocketmq. By default all PR will go to apache/master.
+
+2. Click the green "Compare, review, and create pull request" button. You can edit the to and from for the PR if it isn't correct. The "base fork" should be apache/incubator-rocketmq unless you are collaborating with one of the committers on the list. The "base" will be master. Don't submit a PR to any other branches unless permitted by branch owner. The "head fork" will be your forked repo and the "compare" will be your ROCKETMQ-xxxx branch.
+3. Click the "Create pull request" button and name the request "ROCKETMQ-xxxx" all caps. This will connect the comments of the PR to the mailing list and JIRA comments.
+4. From now on the PR lives on github's apache/incubator-rocketmq. You can use the commenting UI there.
+5. If you are looking for a review or wanting to share with someone else please write a note in the comments and don't worry about automated merging of your PR -- you will have to do that later. The PR is tied to your branch so you can respond to comments, make fixes, and commit them from your local repo. They will appear on the PR page and be mirrored to JIRA and the mailing list.
+6. When you are satisfied and want to push it to Apache's remote repo, you can merge this PR.
+
+# How to create a PR (contributors)
+Before you create a pull request, make sure
+1. A corresponding [JIRA](https://issues.apache.org/jira/browse/ROCKETMQ/) issue is created and has a clear problem description.
+2. Make sure you follow [Coding Guidelines](/docs/code-guidelines/).
+3. You have unit tests for everything you are about to commit.
+
+For information about creating pull requests, please check [GitHub PR docs](https://help.github.com/articles/creating-a-pull-request/).
+
+Pull requests are made to `apache/incubator-rocketmq` repository on Github.
+In the Github UI you should pick the master branch as target of the PR. <br />
+You pull request will be reviewed and commented by committers, and issues can be discussed. When all reviewers are positive on the pull request, it will be merged.
\ No newline at end of file



[6/8] incubator-rocketmq-site git commit: Polish web site pages

Posted by li...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/assets/images/community/tree-logo.png
----------------------------------------------------------------------
diff --git a/content/assets/images/community/tree-logo.png b/content/assets/images/community/tree-logo.png
new file mode 100644
index 0000000..a168313
Binary files /dev/null and b/content/assets/images/community/tree-logo.png differ

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/assets/images/community/yhsoft-logo.png
----------------------------------------------------------------------
diff --git a/content/assets/images/community/yhsoft-logo.png b/content/assets/images/community/yhsoft-logo.png
new file mode 100644
index 0000000..9bfad50
Binary files /dev/null and b/content/assets/images/community/yhsoft-logo.png differ

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/assets/images/eco.png
----------------------------------------------------------------------
diff --git a/content/assets/images/eco.png b/content/assets/images/eco.png
new file mode 100644
index 0000000..64e58ad
Binary files /dev/null and b/content/assets/images/eco.png differ

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/collection-archive/index.html
----------------------------------------------------------------------
diff --git a/content/collection-archive/index.html b/content/collection-archive/index.html
index 967294a..ee12afb 100644
--- a/content/collection-archive/index.html
+++ b/content/collection-archive/index.html
@@ -403,7 +403,8 @@
       
     </h2>
     
-    <p class="archive__item-excerpt" itemprop="description">At early stages, we constructed our distributed messaging middleware based on ActiveMQ 5.x(prior to 5.3). Our multinational business uses it for async commun...</p>
+    <p class="archive__item-excerpt" itemprop="description">At early stages, we constructed our distributed messaging middleware based on ActiveMQ 5.x(prior to 5.3). Our 
+multinational business uses it for asynchronou...</p>
   </article>
 </div>
     
@@ -484,7 +485,7 @@
     
     <h2 class="archive__item-title" itemprop="headline">
       
-        <a href="/docs/pull-request/" rel="permalink">Best Practice in Pull Request
+        <a href="/docs/pull-request/" rel="permalink">How to manage Pull Request
 </a>
       
     </h2>
@@ -848,13 +849,35 @@ General
     
     <h2 class="archive__item-title" itemprop="headline">
       
+        <a href="/docs/create-pull-request/" rel="permalink">How to create Pull Request
+</a>
+      
+    </h2>
+    
+    <p class="archive__item-excerpt" itemprop="description">This page guides you through the pull request creation process.
+
+</p>
+  </article>
+</div>
+    
+  
+    
+      
+
+
+
+<div class="list__item">
+  <article class="archive__item" itemscope itemtype="http://schema.org/CreativeWork">
+    
+    <h2 class="archive__item-title" itemprop="headline">
+      
         <a href="/docs/best-practice-namesvr/" rel="permalink">Best Practice For NameServer
 </a>
       
     </h2>
     
     <p class="archive__item-excerpt" itemprop="description">In Apache RocketMQ, name servers are designed to coordinate each component of the distributed system
-and fulfill much of this responsibility through managing...</p>
+and the coordination is mainly achieved through managing...</p>
   </article>
 </div>
     

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/community/index.html
----------------------------------------------------------------------
diff --git a/content/community/index.html b/content/community/index.html
index fccad28..d996c59 100644
--- a/content/community/index.html
+++ b/content/community/index.html
@@ -204,7 +204,7 @@
 
 <h1 id="ecosystem">Ecosystem</h1>
 
-<p>TODO</p>
+<p><img src="/assets/images/eco.png" alt="" /></p>
 
 
     </section>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/customer/index.html
----------------------------------------------------------------------
diff --git a/content/customer/index.html b/content/customer/index.html
index 68bf020..cab3538 100644
--- a/content/customer/index.html
+++ b/content/customer/index.html
@@ -423,6 +423,54 @@
 
 </div>
 
+<div class="feature__wrapper">
+
+  
+
+    
+
+    <div class="feature__item">
+      <div class="archive__item">
+        
+          <div class="archive__item-teaser">
+            <img src="/assets/images/community/tree-logo.png" alt="Tree Finance Group" />
+          </div>
+        
+
+        <div class="archive__item-body">
+          
+
+          
+
+          
+        </div>
+      </div>
+    </div>
+  
+
+    
+
+    <div class="feature__item">
+      <div class="archive__item">
+        
+          <div class="archive__item-teaser">
+            <img src="/assets/images/community/yhsoft-logo.png" alt="YH software Group" />
+          </div>
+        
+
+        <div class="archive__item-body">
+          
+
+          
+
+          
+        </div>
+      </div>
+    </div>
+  
+
+</div>
+
     </section>
   </article>
 </div>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/batch-example/index.html
----------------------------------------------------------------------
diff --git a/content/docs/batch-example/index.html b/content/docs/batch-example/index.html
index da410d2..8e2ddf8 100644
--- a/content/docs/batch-example/index.html
+++ b/content/docs/batch-example/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     
@@ -455,15 +452,15 @@
   </nav>
 </aside>
 
-<h3 id="why-batch">Why batch?</h3>
+<h4 id="why-batch">Why batch?</h4>
 <p>Sending messages in batch improves performance of delivering small messages.</p>
 
-<h3 id="usage-constraints">Usage constraints</h3>
+<h4 id="usage-constraints">Usage constraints</h4>
 <p>Messages of the same batch should have: same topic, same waitStoreMsgOK and no schedule support.</p>
 
 <p>Besides, the total size of the messages in one batch should be no more than 1MiB.</p>
 
-<h3 id="how-to-use-batch">How to use batch</h3>
+<h4 id="how-to-use-batch">How to use batch</h4>
 <p>If you just send messages of no more than 1MiB at a time, it is easy to use batch:</p>
 
 <div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="n">String</span> <span class="n">topic</span> <span class="o">=</span> <span class="s">"BatchTest"</span><span class="o">;</span>
@@ -480,7 +477,7 @@
     
 </code></pre>
 </div>
-<h3 id="split-into-lists">Split into lists</h3>
+<h4 id="split-into-lists">Split into lists</h4>
 <p>The complexity only grow when you send large batch and you may not sure if it exceeds the size limit (1MiB).</p>
 
 <p>At this time, you’d better split the lists:</p>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/best-practice-broker/index.html
----------------------------------------------------------------------
diff --git a/content/docs/best-practice-broker/index.html b/content/docs/best-practice-broker/index.html
index 15090df..c3e391c 100644
--- a/content/docs/best-practice-broker/index.html
+++ b/content/docs/best-practice-broker/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/best-practice-consumer/index.html
----------------------------------------------------------------------
diff --git a/content/docs/best-practice-consumer/index.html b/content/docs/best-practice-consumer/index.html
index 8d2e29c..a3ad8c8 100644
--- a/content/docs/best-practice-consumer/index.html
+++ b/content/docs/best-practice-consumer/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     
@@ -464,25 +461,25 @@
   </nav>
 </aside>
 <h2 id="consumer-group-and-subscriptions">Consumer Group and Subscriptions</h2>
-<p>The first thing you should be aware of is that different Consumer Group can consume the same topic independently, each of the group will have their own consuming offsets. 
-And make sure each Consumer within the same Group to subscribe the same topics.</p>
+<p>The first thing you should be aware of is that different Consumer Group can consume the same topic independently, and each of them will have their own consuming offsets.
+Please make sure each Consumer within the same Group to subscribe the same topics.</p>
 <h2 id="messagelistener">MessageListener</h2>
 <h3 id="orderly">Orderly</h3>
-<p>The Consumer will lock each MessageQueue to make sure it is consumed one by one orderly. This will cause performance loss, but it is useful when you are care about the order of the messages.
-It is not recommended to throw exception, you can return ConsumeOrderlyStatus.SUSPEND_CURRENT_QUEUE_A_MOMENT instead.</p>
+<p>The Consumer will lock each MessageQueue to make sure it is consumed one by one in order. This will cause a performance loss, but it is useful when you care about the order of the messages.
+It is not recommended to throw exceptions, you can return ConsumeOrderlyStatus.SUSPEND_CURRENT_QUEUE_A_MOMENT instead.</p>
 <h3 id="concurrently">Concurrently</h3>
-<p>As the name tells, the Consumer will consume the messages concurrently. It is recommended to use this for achieving good performance.
-It is not recommended to throw exception, you can return ConsumeConcurrentlyStatus.RECONSUME_LATER instead.</p>
+<p>As the name tells, the Consumer will consume the messages concurrently. It is recommended to use this for good performance.
+It is not recommended to throw exceptions, you can return ConsumeConcurrentlyStatus.RECONSUME_LATER instead.</p>
 <h3 id="consume-status">Consume Status</h3>
 <p>For MessageListenerConcurrently, you can return RECONSUME_LATER to tell the consumer that you can not consume it right now and want to reconsume it later. Then you can continue to consume other messages. 
-For MessageListenerOrderly, as that you care about the order, so you can not jump over the message, but you can return SUSPEND_CURRENT_QUEUE_A_MOMENT to tell the consumer to hold on for a moment.</p>
+For MessageListenerOrderly, because you care about the order, you can not jump over the message, but you can return SUSPEND_CURRENT_QUEUE_A_MOMENT to tell the consumer to wait for a moment.</p>
 <h3 id="blocking">Blocking</h3>
-<p>It is not recommend to block the Listener, for in return it will block the thread pool, and finally the consuming process may get stuck.</p>
+<p>It is not recommend to block the Listener, because it will block the thread pool, and eventually may stop the consuming process.</p>
 <h2 id="thread-number">Thread Number</h2>
-<p>The consumer use a ThreadPoolExecutor to process consuming internally. So you can tune it by using setConsumeThreadMin or setConsumeThreadMax.</p>
+<p>The consumer use a ThreadPoolExecutor to process consuming internally, so you can change it by setting setConsumeThreadMin or setConsumeThreadMax.</p>
 <h2 id="consumefromwhere">ConsumeFromWhere</h2>
-<p>When a new Consumer Group is established, it will need to decide whether it need to consume the historical messages which had already existed in the Broker. 
-CONSUME_FROM_LAST_OFFSET will ignore the historical messages, and consume any newly produced.
+<p>When a new Consumer Group is established, it will need to decide whether it needs to consume the historical messages which had already existed in the Broker.
+CONSUME_FROM_LAST_OFFSET will ignore the historical messages, and consume anything produced after that.
 CONSUME_FROM_FIRST_OFFSET will consume every message existed in the Broker.
 You can also use CONSUME_FROM_TIMESTAMP to consume messages produced after the specified timestamp.</p>
 <h2 id="duplication">Duplication</h2>
@@ -492,7 +489,7 @@ You can also use CONSUME_FROM_TIMESTAMP to consume messages produced after the s
   <li>Consumer shutdown with some offsets not updated to the Broker in time.</li>
 </ul>
 
-<p>So you may need to do some external work to handle this if your application cannot tolerate. For example, you may check the primary key of your DB.</p>
+<p>So you may need to do some external work to handle this if your application cannot tolerate duplication. For example, you may check the primary key of your DB.</p>
 
 
         
@@ -530,7 +527,7 @@ You can also use CONSUME_FROM_TIMESTAMP to consume messages produced after the s
 ">Previous</a>
     
     
-      <a href="/docs/best-practice-namesvr/" class="pagination--pager" title="Best Practice For NameServer
+      <a href="/docs/create-pull-request/" class="pagination--pager" title="How to create Pull Request
 ">Next</a>
     
   </nav>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/best-practice-namesvr/index.html
----------------------------------------------------------------------
diff --git a/content/docs/best-practice-namesvr/index.html b/content/docs/best-practice-namesvr/index.html
index 52075fe..eb9db80 100644
--- a/content/docs/best-practice-namesvr/index.html
+++ b/content/docs/best-practice-namesvr/index.html
@@ -18,7 +18,7 @@
 
 
 
-<meta name="description" content="In Apache RocketMQ, name servers are designed to coordinate each component of the distributed systemand fulfill much of this responsibility through managing topic route information.">
+<meta name="description" content="In Apache RocketMQ, name servers are designed to coordinate each component of the distributed systemand the coordination is mainly achieved through managing topic routing information.">
 
 
 
@@ -30,13 +30,13 @@
 
 
 
-  <meta property="og:description" content="In Apache RocketMQ, name servers are designed to coordinate each component of the distributed systemand fulfill much of this responsibility through managing topic route information.">
+  <meta property="og:description" content="In Apache RocketMQ, name servers are designed to coordinate each component of the distributed systemand the coordination is mainly achieved through managing topic routing information.">
 
 
 
   <meta name="twitter:site" content="@ApacheRocketMQ">
   <meta name="twitter:title" content="Best Practice For NameServer">
-  <meta name="twitter:description" content="In Apache RocketMQ, name servers are designed to coordinate each component of the distributed systemand fulfill much of this responsibility through managing topic route information.">
+  <meta name="twitter:description" content="In Apache RocketMQ, name servers are designed to coordinate each component of the distributed systemand the coordination is mainly achieved through managing topic routing information.">
   <meta name="twitter:url" content="">
 
   
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     
@@ -428,7 +425,7 @@
 
   <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
     <meta itemprop="headline" content="Best Practice For NameServer">
-    <meta itemprop="description" content="In Apache RocketMQ, name servers are designed to coordinate each component of the distributed systemand fulfill much of this responsibility through managing topic route information.">
+    <meta itemprop="description" content="In Apache RocketMQ, name servers are designed to coordinate each component of the distributed systemand the coordination is mainly achieved through managing topic routing information.">
     <meta itemprop="datePublished" content="June 08, 2017">
     <meta itemprop="dateModified" content="December 24, 2016">
 
@@ -443,7 +440,7 @@
 
       <section class="page__content" itemprop="text">
         <p>In Apache RocketMQ, name servers are designed to coordinate each component of the distributed system
-and fulfill much of this responsibility through managing topic route information.</p>
+and the coordination is mainly achieved through managing topic routing information.</p>
 
 <aside class="sidebar__right">
 <nav class="toc">
@@ -459,9 +456,9 @@ and fulfill much of this responsibility through managing topic route information
   </nav>
 </aside>
 
-<p>The management, roughly speaking, consists two parts:</p>
+<p>Management consists of two parts:</p>
 <ul>
-  <li>Brokers periodically renew meta data, including topics they have, which are kept in every name servers.</li>
+  <li>Brokers periodically renew meta data kept in every name server.</li>
   <li>Name servers are serving clients, including producers, consumers and command line clients with the latest routing information.</li>
 </ul>
 
@@ -470,9 +467,9 @@ In Apache RocketMQ, this can be done in four ways.</p>
 
 <h2 id="programmatic-way">Programmatic Way</h2>
 
-<p>For broker, we may specify <code class="highlighter-rouge">namesrvAddr=name-server-ip1:port;name-server-ip2:port</code> in broker configuration file.</p>
+<p>For brokers, we can specify <code class="highlighter-rouge">namesrvAddr=name-server-ip1:port;name-server-ip2:port</code> in broker configuration file.</p>
 
-<p>For producers and consumers, we may feed name server address list to them as follows:</p>
+<p>For producers and consumers, we can feed name server address list to them as follows:</p>
 
 <div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="n">DefaultMQProducer</span> <span class="n">producer</span> <span class="o">=</span> <span class="k">new</span> <span class="n">DefaultMQProducer</span><span class="o">(</span><span class="s">"please_rename_unique_group_name"</span><span class="o">);</span>
 <span class="n">producer</span><span class="o">.</span><span class="na">setNamesrvAddr</span><span class="o">(</span><span class="s">"name-server1-ip:port;name-server2-ip:port"</span><span class="o">);</span>
@@ -482,17 +479,17 @@ In Apache RocketMQ, this can be done in four ways.</p>
 </code></pre>
 </div>
 
-<p>If you use admin command line from shell, you may specify this way:</p>
+<p>If you use admin command line from shell, you can also specify this way:</p>
 
-<div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="n">sh</span> <span class="n">mqadmin</span> <span class="n">command</span><span class="o">-</span><span class="n">name</span> <span class="o">-</span><span class="n">n</span> <span class="n">name</span><span class="o">-</span><span class="n">server</span><span class="o">-</span><span class="nl">ip1:</span><span class="n">port</span><span class="o">;</span><span class="n">name</span><span class="o">-</span><span class="n">server</span><span class="o">-</span><span class="nl">ip2:</span><span class="n">port</span> <span class="o">-</span><span class="n">X</span> <span class="n">OTHER</span><span class="o">-</span><span class="n">OPTION</span>
+<div class="language-bash highlighter-rouge"><pre class="highlight"><code>sh mqadmin <span class="nb">command</span>-name -n name-server-ip1:port;name-server-ip2:port -X OTHER-OPTION
 </code></pre>
 </div>
 
-<p>a simple example is:
+<p>A simple example is:
 <code class="highlighter-rouge">sh mqadmin -n localhost:9876 clusterList</code>
 assuming to query cluster info on the name server node.</p>
 
-<p>If integrating admin tool into your own dashboard, you may</p>
+<p>If you have integrated admin tool into your own dashboard, you can:</p>
 
 <div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="n">DefaultMQAdminExt</span> <span class="n">defaultMQAdminExt</span> <span class="o">=</span> <span class="k">new</span> <span class="n">DefaultMQAdminExt</span><span class="o">(</span><span class="s">"please_rename_unique_group_name"</span><span class="o">);</span>
 <span class="n">defaultMQAdminExt</span><span class="o">.</span><span class="na">setNamesrvAddr</span><span class="o">(</span><span class="s">"name-server1-ip:port;name-server2-ip:port"</span><span class="o">);</span>
@@ -514,12 +511,12 @@ assuming to query cluster info on the name server node.</p>
  the following HTTP end point to acquire and update name server address list every two minutes with initial delay of
  ten seconds.</p>
 
-<p>On default, the end point is:</p>
+<p>By default, the end point is:</p>
 
 <p><code class="highlighter-rouge">http://jmenv.tbsite.net:8080/rocketmq/nsaddr</code></p>
 
-<p>You may override <code class="highlighter-rouge">jmenv.tbsite.net</code> by this java option: <code class="highlighter-rouge">rocketmq.namesrv.domain</code>,
-You may also override <code class="highlighter-rouge">nsaddr</code> part by this java option: <code class="highlighter-rouge">rocketmq.namesrv.domain.subgroup</code></p>
+<p>You may override <code class="highlighter-rouge">jmenv.tbsite.net</code> using this Java option: <code class="highlighter-rouge">rocketmq.namesrv.domain</code>,
+You may also override <code class="highlighter-rouge">nsaddr</code> part using this Java option: <code class="highlighter-rouge">rocketmq.namesrv.domain.subgroup</code></p>
 
 <p>If you are running Apache RocketMQ in production, this method is recommended because it gives you maximum flexibility
  – you can dynamically add or remove name server nodes without necessity of rebooting your brokers and clients 
@@ -527,7 +524,7 @@ You may also override <code class="highlighter-rouge">nsaddr</code> part by this
 
 <h2 id="priority">Priority</h2>
 
-<p>Methods introduced first take precedence over the latter, namely, <br />
+<p>Methods introduced first take precedence over the latter ones: <br />
 <code class="highlighter-rouge">Programmatic Way &gt; Java Options &gt; Environment Variable &gt; HTTP Endpoint</code></p>
 
 
@@ -562,7 +559,7 @@ You may also override <code class="highlighter-rouge">nsaddr</code> part by this
       
   <nav class="pagination">
     
-      <a href="/docs/best-practice-consumer/" class="pagination--pager" title="Best Practice For Consumer
+      <a href="/docs/create-pull-request/" class="pagination--pager" title="How to create Pull Request
 ">Previous</a>
     
     

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/best-practice-producer/index.html
----------------------------------------------------------------------
diff --git a/content/docs/best-practice-producer/index.html b/content/docs/best-practice-producer/index.html
index 698819f..f3ba386 100644
--- a/content/docs/best-practice-producer/index.html
+++ b/content/docs/best-practice-producer/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     
@@ -468,38 +465,38 @@
 </aside>
 
 <h2 id="sendstatus">SendStatus</h2>
-<p>When sending a message, you will get SendResult and it will contain the SendStatus. Firstly, we assume that Message’s isWaitStoreMsgOK=true(default is true). If not, we will always get SEND_OK if no exception is thrown.
-Follow are the descriptions about each status.</p>
+<p>When sending a message, you will get SendResult which contains SendStatus. Firstly, we assume that Message’s isWaitStoreMsgOK=true(default is true). If not, we will always get SEND_OK if no exception is thrown.
+Below is a list of descriptions about each status:</p>
 <h3 id="flush_disk_timeout">FLUSH_DISK_TIMEOUT</h3>
-<p>If the Broker set MessageStoreConfig’s FlushDiskType=SYNC_FLUSH(default is ASYNC_FLUSH), and the Broker dose not finish flushing disk within MessageStoreConfig’s syncFlushTimeout(default is 5 secs), you will get such status.</p>
+<p>If the Broker set MessageStoreConfig’s FlushDiskType=SYNC_FLUSH(default is ASYNC_FLUSH), and the Broker doesn’t finish flushing the disk within MessageStoreConfig’s syncFlushTimeout(default is 5 secs), you will get this status.</p>
 <h3 id="flush_slave_timeout">FLUSH_SLAVE_TIMEOUT</h3>
-<p>If the Broker’s role is SYNC_MASTER(default is ASYNC_MASTER), and the slave Broker dose not finish synchronizing with the master within the MessageStoreConfig’s syncFlushTimeout(default is 5 secs), you will get such status.</p>
+<p>If the Broker’s role is SYNC_MASTER(default is ASYNC_MASTER), and the slave Broker doesn’t finish synchronizing with the master within the MessageStoreConfig’s syncFlushTimeout(default is 5 secs), you will get this status.</p>
 <h3 id="slave_not_available">SLAVE_NOT_AVAILABLE</h3>
-<p>If the Broker’s role is SYNC_MASTER(default is ASYNC_MASTER), but no slave Broker is configured, you will get such status.</p>
+<p>If the Broker’s role is SYNC_MASTER(default is ASYNC_MASTER), but no slave Broker is configured, you will get this status.</p>
 <h3 id="send_ok">SEND_OK</h3>
-<p>You should be aware that SEND_OK does not mean it is reliable. If you cannot tolerate message missing, you should also enable SYNC_MASTER or SYNC_FLUSH.</p>
+<p>SEND_OK does not mean it is reliable. To make sure no message would be lost, you should also enable SYNC_MASTER or SYNC_FLUSH.</p>
 <h3 id="duplication-or-missing">Duplication or Missing</h3>
-<p>If you get FLUSH_DISK_TIMEOUT, FLUSH_SLAVE_TIMEOUT and the Broker happens to shutdown right the moment, you may get your message missing.
-At this time, you have two choices, one is letting it go, which may get message missing; another is resending, which may get message duplication.
-Often we suggest resend and make a way to handle the duplication removal when consuming. Unless you feel it does not matter when some messages are missed.
-But be ware that resending has no use when you get SLAVE_NOT_AVAILABLE, you’d better keep the scene and send some alerts to the Cluster Manager.</p>
+<p>If you get FLUSH_DISK_TIMEOUT, FLUSH_SLAVE_TIMEOUT and the Broker happens to shutdown right the moment, you can find your message missing.
+At this time, you have two choices, one is to let it go, which may cause this message to be lost; another is to resend the message, which may get message duplication.
+Often we suggest resend and find a way to handle the duplication removal when consuming. Unless you feel it doesn’t matter when some messages are lost.
+But keep in mind that resending is useless when you get SLAVE_NOT_AVAILABLE. If this happens, you should keep the scene and alert the Cluster Manager.</p>
 <h2 id="timeout">Timeout</h2>
-<p>The Client send requests to Broker, and wait the responses, but if the max wait time is elapsed and no response is return, the Client will throw a RemotingTimeoutException.
-The default wait time is 3 seconds.You can also pass timeout argument using send(msg, timeout) instead of send(msg).
-Note that we do not suggest the value to be too small, for the Broker need some time to flush disk or synchronize with slave. Also the value may have little effect if it is too bigger than syncFlushTimeout for Broker may return a response with FLUSH_SLAVE_TIMEOUT or FLUSH_SLAVE_TIMEOUT before the timeout.</p>
+<p>The Client sends requests to Broker, and wait for the responses, but if the max wait time has elapsed and no response is returned, the Client will throw a RemotingTimeoutException.
+The default wait time is 3 seconds. You can also pass timeout argument using send(msg, timeout) instead of send(msg).
+Note that we do not suggest the wait time to be too small, as the Broker needs some time to flush the disk or synchronize with slaves. Also the value may have little effect if it exceeds syncFlushTimeout by a lot as Broker may return a response with FLUSH_SLAVE_TIMEOUT or FLUSH_SLAVE_TIMEOUT before the timeout.</p>
 <h2 id="message-size">Message Size</h2>
-<p>We suggest the message should be no more than 512K.</p>
+<p>We suggest the size of message should be no more than 512K.</p>
 <h2 id="async-sending">Async Sending</h2>
-<p>Default send(msg) will block until the response is return. So if you care about performance, we suggest you use send(msg, callback) which will act in a async way.</p>
+<p>Default send(msg) will block until the response is returned. So if you care about performance, we suggest you use send(msg, callback) which will act in the async way.</p>
 <h2 id="producer-group">Producer Group</h2>
-<p>Normally, the producer group has no effects. But if you are involved in  transaction, you should pay attention to it. 
-In default, you can only create only one producer with the same producer group in the same JVM. Usually, this is enough.</p>
+<p>Normally, the producer group has no effects. But if you are involved in a transaction, you should pay attention to it.
+By default, you can only create only one producer with the same producer group in the same JVM, which is usually enough.</p>
 <h2 id="thread-safety">Thread Safety</h2>
-<p>The producer is thread-safe, you can just use it in your business logic.</p>
+<p>The producer is thread-safe, you can just use it in your business solution.</p>
 <h2 id="performance">Performance</h2>
-<p>If you want more than one producer in one JVM, maybe for big data processing, we suggest you:</p>
+<p>If you want more than one producer in one JVM for big data processing, we suggest:</p>
 <ul>
-  <li>use async sending with a few producers(3~5 is enough)</li>
+  <li>use async sending with a few producers (3~5 is enough)</li>
   <li>setInstanceName for each producer</li>
 </ul>
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/broadcast-example/index.html
----------------------------------------------------------------------
diff --git a/content/docs/broadcast-example/index.html b/content/docs/broadcast-example/index.html
index 3bc9f69..9885b5a 100644
--- a/content/docs/broadcast-example/index.html
+++ b/content/docs/broadcast-example/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     
@@ -454,10 +451,10 @@
   </nav>
 </aside>
 
-<h3 id="what-is-broadcasting">What is broadcasting</h3>
+<h4 id="what-is-broadcasting">What is broadcasting</h4>
 <p>Broadcasting is sending a message to all subscribers of a topic. If you want all subscribers receive messages about a topic, broadcasting is a good choice.</p>
 
-<h3 id="producer-example">Producer example</h3>
+<h4 id="producer-example">Producer example</h4>
 
 <div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">BroadcastProducer</span> <span class="o">{</span>
     <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">Exception</span> <span class="o">{</span>
@@ -478,7 +475,7 @@
 </code></pre>
 </div>
 
-<h3 id="consumer-example">Consumer example</h3>
+<h4 id="consumer-example">Consumer example</h4>
 
 <div class="language-java highlighter-rouge"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">BroadcastConsumer</span> <span class="o">{</span>
     <span class="kd">public</span> <span class="kd">static</span> <span class="kt">void</span> <span class="nf">main</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">args</span><span class="o">)</span> <span class="kd">throws</span> <span class="n">Exception</span> <span class="o">{</span>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/cli-admin-tool/index.html
----------------------------------------------------------------------
diff --git a/content/docs/cli-admin-tool/index.html b/content/docs/cli-admin-tool/index.html
index 54e84f2..09c4e24 100644
--- a/content/docs/cli-admin-tool/index.html
+++ b/content/docs/cli-admin-tool/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     
@@ -463,15 +460,15 @@
 
 <h1 id="how-to-get-it">How To Get it</h1>
 
-<p>The admin tool is shipped along with RocketMQ. Either you download a pre-built binary version or build from source by yourself, you already have it.</p>
+<p>The admin tool is shipped along with RocketMQ. Whether you download a pre-built binary version or build from source by yourself, you have the tool with the package.</p>
 
-<p>In case you don’t have source code, the <a href="https://github.com/apache/incubator-rocketmq/tree/master/tools">rocketmq-tools module</a> contains its source code.</p>
+<p>If you want to look at the source code, please refer to <a href="https://github.com/apache/incubator-rocketmq/tree/master/tools">rocketmq-tools module</a></p>
 
 <h1 id="how-to-use">How to use</h1>
 
-<p>The Admin Tool is very easy to use. Here, for demonstration purpose, *nix environment is assumed.</p>
+<p>The Admin Tool is very user friendly. Here, for demonstration purpose, *nix environment is assumed.</p>
 
-<p>Change directory to ${PACKAGE}/bin, command <code class="highlighter-rouge">bash mqadmin</code>, you should see the following help menu pops out.</p>
+<p>Change directory to ${PACKAGE}/bin, command <code class="highlighter-rouge">bash mqadmin</code>, you should see the following help menu.</p>
 
 <div class="highlighter-rouge"><pre class="highlight"><code>The most commonly used mqadmin commands are:
    updateTopic          Update or create topic
@@ -482,7 +479,7 @@
    updateTopicPerm      Update topic perm
    topicRoute           Examine topic route info
    topicStatus          Examine topic Status info
-   topicClusterList     get cluster info for topic
+   topicClusterList     Get cluster info for topic
    brokerStatus         Fetch broker runtime status data
    queryMsgById         Query Message by Id
    queryMsgByKey        Query Message by Key
@@ -490,13 +487,13 @@
    queryMsgByOffset     Query Message by offset
    queryMsgByUniqueKey  Query Message by Unique key
    printMsg             Print Message Detail
-   sendMsgStatus        send msg to broker.
+   sendMsgStatus        Send msg to broker.
    brokerConsumeStats   Fetch broker consume stats data
    producerConnection   Query producer's socket connection and client version
    consumerConnection   Query consumer's socket connection, client version and subscription
    consumerProgress     Query consumers's progress, speed
    consumerStatus       Query consumer's internal data structure
-   cloneGroupOffset     clone offset from other group.
+   cloneGroupOffset     Clone offset from other group.
    clusterList          List all of clusters
    topicList            Fetch all topic list from name server
    updateKvConfig       Create or update KV config.
@@ -510,7 +507,7 @@
    statsAll             Topic and Consumer tps stats
    syncDocs             Synchronize wiki and issue to github.com
    allocateMQ           Allocate MQ
-   checkMsgSendRT       check message send response time
+   checkMsgSendRT       Check message send response time
    clusterRT            List All clusters Message Send RT
 
 See 'mqadmin help &lt;command&gt;' for more information on a specific command.

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/cluster-deployment/index.html
----------------------------------------------------------------------
diff --git a/content/docs/cluster-deployment/index.html b/content/docs/cluster-deployment/index.html
index e520172..e419585 100644
--- a/content/docs/cluster-deployment/index.html
+++ b/content/docs/cluster-deployment/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     
@@ -475,7 +472,7 @@
 
 <h1 id="broker">Broker</h1>
 
-<p>Brokers can be divided into two categories according to their roles: master and slave. Master brokers can read and write while slave brokers can only read messages replicated from master. Master brokers have brokerId=0; brokerId of slave is non-zero.</p>
+<p>Brokers can be divided into two categories according to their roles: master and slave. Master brokers can read and write while slave brokers can only read messages replicated from master. Master brokers have brokerID=0; brokerID of slave is non-zero.</p>
 
 <p>Brokers may also be grouped by the brokerName property. Slave brokers find their master through brokerName. One master broker along with zero, one or multiple slave brokers is called a broker set.</p>
 
@@ -570,7 +567,7 @@ Assuming binary RocketMQ is at <code class="highlighter-rouge">/home/rocketmq/di
 ">Previous</a>
     
     
-      <a href="/docs/pull-request/" class="pagination--pager" title="Best Practice in Pull Request
+      <a href="/docs/pull-request/" class="pagination--pager" title="How to manage Pull Request
 ">Next</a>
     
   </nav>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/code-guidelines/index.html
----------------------------------------------------------------------
diff --git a/content/docs/code-guidelines/index.html b/content/docs/code-guidelines/index.html
index d3a8338..6c1ffc9 100644
--- a/content/docs/code-guidelines/index.html
+++ b/content/docs/code-guidelines/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     
@@ -460,7 +457,7 @@
 </aside>
 
 <h1 id="introduction">Introduction</h1>
-<p>This document describes formatting rules and guidelines for software source code. Note that this document does not cover best programming practices or techniques. It is solely concentrating on source code formatting and conventions.</p>
+<p>This page describes formatting rules and guidelines for software source code.</p>
 
 <p>Studies have shown that 80% of development time is spent on software maintenance which involves software source code understanding, refactoring and support. Established and enforced code formatting rules and guidelines improve source code readability, promote team code ownership, allow engineers understand new code more quickly and thorough as well as simplify maintenance.</p>
 
@@ -511,7 +508,7 @@
       
   <nav class="pagination">
     
-      <a href="/docs/pull-request/" class="pagination--pager" title="Best Practice in Pull Request
+      <a href="/docs/pull-request/" class="pagination--pager" title="How to manage Pull Request
 ">Previous</a>
     
     

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/core-concept/index.html
----------------------------------------------------------------------
diff --git a/content/docs/core-concept/index.html b/content/docs/core-concept/index.html
index 86fb23d..03da58d 100644
--- a/content/docs/core-concept/index.html
+++ b/content/docs/core-concept/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>
     
@@ -444,7 +441,7 @@
       <section class="page__content" itemprop="text">
         <p><img src="/assets/images/rmq-model.png" alt="RocketMQ model" /></p>
 
-<p>From the above model, we can look deeper into some topics about messaging system design:</p>
+<p>According to the above model, we can dig deeper into some topics about messaging system design:</p>
 
 <aside class="sidebar__right">
 <nav class="toc">
@@ -490,9 +487,9 @@
 
 <h2 id="producer-group">Producer Group</h2>
 
-<p>Producers of the same role are grouped together. A different producer instance of the same producer group may be contacted by a broker to commit or roll back a transaction in case the original producer crashed after starting the transaction.</p>
+<p>Producers of the same role are grouped together. A different producer instance of the same producer group may be contacted by a broker to commit or roll back a transaction in case the original producer crashed after the transaction.</p>
 
-<p><strong>Warning</strong>: Considering the provided producer is sufficiently powerful at sending messages, only one instance is allowed per producer group and process to avoid unnecessarily initializing of producer instances.</p>
+<p><strong>Warning</strong>: Considering the provided producer is sufficiently powerful at sending messages, only one instance is allowed per producer group to avoid unnecessary initialization of producer instances.</p>
 
 <h1 id="consumer">Consumer</h1>
 
@@ -504,7 +501,7 @@
 
 <h2 id="pushconsumer">PushConsumer</h2>
 
-<p>Push consumer, on the other hand, encapsulates message pulling, consuming progress maintaining and other effortful work inside, leaving a callback interface to end user to implement which will be executed on message arrival.</p>
+<p>Push consumer, on the other hand, encapsulates message pulling, consuming progress and maintaining other work inside, leaving a callback interface to end user to implement which will be executed on message arrival.</p>
 
 <h2 id="consumer-group">Consumer Group</h2>
 
@@ -512,31 +509,31 @@
 
 <p>Consumer Group is a great concept with which achieving goals of load-balance and fault-tolerance, in terms of message consuming, is super easy.</p>
 
-<p><strong>Warning</strong>: consumer instances of a consumer group <strong>must</strong> have exactly same topic subscription(s).</p>
+<p><strong>Warning</strong>: consumer instances of a consumer group <strong>must</strong> have exactly the same topic subscription(s).</p>
 
 <h1 id="topic">Topic</h1>
 
-<p>Topic is a category to which producers deliver messages and from which consumers pull messages. Topics have very loose relation with producers and consumers. Specifically, a topic may have zero, one or multiple producers that sends messages to it; conversely, a producer can sends messages of different topics. In consumer’s view, a topic may be subscribed by zero, one or multiple consumer groups; and a consumer group, in the same paradigm, may subscribe one or multiple topics as long as instances of this group keep their subscription consistent as emphasized in the previous section.</p>
+<p>Topic is a category in which producers deliver messages and consumers pull messages. Topics have very loose relationship with producers and consumers. Specifically, a topic may have zero, one or multiple producers that sends messages to it; conversely, a producer can send messages of different topics. In consumer’s perspective, a topic may be subscribed by zero, one or multiple consumer groups. And a consumer group, similarly, may subscribe to one or more topics as long as instances of this group keep their subscription consistent.</p>
 
 <h1 id="message">Message</h1>
 
-<p>Message is the envelope of your information to deliver. A message must be specified with a topic, which can be interpreted as address of your letter to mail to. A message may also have an optional tag set. Extra key-value pairs may also be included. For example, you may set a business key for your message and look up the message on broker server to diagnose issues during development.</p>
+<p>Message is the information to be delivered. A message must have a topic, which can be interpreted as address of your letter to mail to. A message may also have an optional tag and extra key-value pairs. For example, you may set a business key to your message and look up the message on a broker server to diagnose issues during development.</p>
 
 <h2 id="message-queue">Message Queue</h2>
 
-<p>Topic, internally, is logically partitioned into one or more sub-topics. We call these sub-topics “message queues”. This concept plays a major role in implementing valuable features, including fail-over, maximum concurrency, etc.</p>
+<p>Topic is partitioned into one or more sub-topics, “message queues”.</p>
 
 <h2 id="tag">Tag</h2>
 
-<p>Tag, which can be thought as sub-topic, provides an extra flexibility for user. Through introducing tag,  messages with different purposes from the same business module may have the same topic yet different tag. It would be helpful to keep your code clean and coherent.</p>
+<p>Tag, in other words sub-topic, provides extra flexibility to users. With tag, messages with different purposes from the same business module may have the same topic and different tag. Tags would be helpful to keep your code clean and coherent, and tags also can facilitate the query system RocketMQ provides.</p>
 
 <h2 id="broker">Broker</h2>
 
-<p>Broker is the major role of the RocketMQ system. It receives messages sent from producers, store them and being prepared to serve pull requests from consumers. It also stores message consuming related meta data, including consumer groups, consuming progress offsets and topic / queue info.</p>
+<p>Broker is a major component of the RocketMQ system. It receives messages sent from producers, store them and prepare to handle pull requests from consumers. It also stores message related meta data, including consumer groups, consuming progress offsets and topic / queue info.</p>
 
 <h1 id="name-server">Name Server</h1>
 
-<p>Name server serves as the routing information provider. Producer/Consumer clients look up topics to find broker list to read from and write to.</p>
+<p>Name server serves as the routing information provider. Producer/Consumer clients look up topics to find the corresponding broker list.</p>
 
 <h1 id="message-model">Message Model</h1>
 
@@ -565,7 +562,7 @@
   <li>Concurrently</li>
 </ul>
 
-<p>When consuming concurrently, maximum concurrency of message consuming is only limited by thread pool specified for each consumer client.</p>
+<p>When consuming messages concurrently, maximum concurrency of message consuming is only limited by thread pool specified for each consumer client.</p>
 
 <p><strong>Warn</strong>: Message order is no longer guaranteed in this mode.</p>
 

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/create-pull-request/index.html
----------------------------------------------------------------------
diff --git a/content/docs/create-pull-request/index.html b/content/docs/create-pull-request/index.html
new file mode 100644
index 0000000..0950624
--- /dev/null
+++ b/content/docs/create-pull-request/index.html
@@ -0,0 +1,705 @@
+<!doctype html>
+<html lang="en" class="no-js">
+  <head>
+    <meta charset="utf-8">
+
+<!-- begin SEO -->
+
+
+
+
+
+
+
+
+
+<title>How to create Pull Request - Apache RocketMQ</title>
+
+
+
+
+<meta name="description" content="This page guides you through the pull request creation process.">
+
+
+
+
+<meta property="og:locale" content="en">
+<meta property="og:site_name" content="Apache RocketMQ">
+<meta property="og:title" content="How to create Pull Request">
+
+
+
+
+  <meta property="og:description" content="This page guides you through the pull request creation process.">
+
+
+
+  <meta name="twitter:site" content="@ApacheRocketMQ">
+  <meta name="twitter:title" content="How to create Pull Request">
+  <meta name="twitter:description" content="This page guides you through the pull request creation process.">
+  <meta name="twitter:url" content="">
+
+  
+    <meta name="twitter:card" content="summary">
+    
+  
+
+  
+
+
+
+  
+
+  
+
+
+
+
+
+  <meta property="og:type" content="article">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
+
+
+
+
+
+
+
+
+  <script type="application/ld+json">
+    {
+      "@context" : "http://schema.org",
+      "@type" : "Person",
+      "name" : "Apache RocketMQ",
+      "url" : null,
+      "sameAs" : null
+    }
+  </script>
+
+
+
+  <meta name="google-site-verification" content="aand0XZkSGsziuC-UPD4ZJniFD0m0JhGx6820y2mAQY" />
+
+
+  <meta name="baidu-site-verification" content="wD06EbDRkQ" />
+
+
+
+
+<!-- end SEO -->
+
+
+<link href="/feed.xml" type="application/atom+xml" rel="alternate" title="Apache RocketMQ Feed">
+
+<!-- http://t.co/dKP3o1e -->
+<meta name="HandheldFriendly" content="True">
+<meta name="MobileOptimized" content="320">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+<script>
+  document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/g, '') + ' js ';
+</script>
+
+<!-- For all browsers -->
+<link rel="stylesheet" href="/assets/css/main.css">
+
+<meta http-equiv="cleartype" content="on">
+    <!-- start custom head snippets -->
+
+<!-- insert favicons. use http://realfavicongenerator.net/ -->
+
+<!-- end custom head snippets -->
+  </head>
+
+  <body class="layout--single">
+
+    <!--[if lt IE 9]>
+<div class="notice--danger align-center" style="margin: 0;">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</div>
+<![endif]-->
+    <div class="masthead">
+  <div class="masthead__inner-wrap">
+    <div class="masthead__menu">
+      <nav id="site-nav" class="greedy-nav">
+        <button><div class="navicon"></div></button>
+        <ul class="visible-links">
+          <li class="masthead__menu-item masthead__menu-item--lg"><a href="/">Apache RocketMQ</a></li>
+          
+            
+            <li class="masthead__menu-item"><a href="/docs/quick-start/">Documentation</a></li>
+          
+            
+            <li class="masthead__menu-item"><a href="/year-archive/">Blog</a></li>
+          
+            
+            <li class="masthead__menu-item"><a href="/community/">Community</a></li>
+          
+            
+            <li class="masthead__menu-item"><a href="/customer/">Customer</a></li>
+          
+            
+            <li class="masthead__menu-item"><a href="/about/team/">About</a></li>
+          
+        </ul>
+        <ul class="hidden-links hidden"></ul>
+      </nav>
+    </div>
+  </div>
+</div>
+
+    
+
+
+
+<div id="main" role="main">
+  
+  <div class="sidebar sticky">
+  
+  
+    
+      
+      
+      
+    
+    
+      
+
+<nav class="nav__list">
+  
+  <input id="ac-toc" name="accordion-toc" type="checkbox" />
+  <label for="ac-toc">Toggle Menu</label>
+  <ul class="nav__items">
+    
+      <li>
+        
+          <span class="nav__sub-title">User Guide</span>
+        
+
+        
+        <ul>
+          
+            
+            
+
+            
+            
+
+            <li><a href="/docs/motivation/" class="">Why RocketMQ</a></li>
+          
+            
+            
+
+            
+            
+
+            <li><a href="/docs/quick-start/" class="">Quick Start</a></li>
+          
+            
+            
+
+            
+            
+
+            <li><a href="/docs/simple-example/" class="">Simple Example</a></li>
+          
+            
+            
+
+            
+            
+
+            <li><a href="/docs/order-example/" class="">Order Example</a></li>
+          
+            
+            
+
+            
+            
+
+            <li><a href="/docs/broadcast-example/" class="">Broadcasting Example</a></li>
+          
+            
+            
+
+            
+            
+
+            <li><a href="/docs/schedule-example/" class="">Schedule Example</a></li>
+          
+            
+            
+
+            
+            
+
+            <li><a href="/docs/batch-example/" class="">Batch Example</a></li>
+          
+            
+            
+
+            
+            
+
+            <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
+          
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
+        </ul>
+        
+      </li>
+    
+      <li>
+        
+          <span class="nav__sub-title">Deployment & Operations</span>
+        
+
+        
+        <ul>
+          
+            
+            
+
+            
+            
+
+            <li><a href="/docs/rmq-arc/" class="">Architecture</a></li>
+          
+            
+            
+
+            
+            
+
+            <li><a href="/docs/rmq-deployment/" class="">Deployment</a></li>
+          
+            
+            
+
+            
+            
+
+            <li><a href="/docs/cli-admin-tool/" class="">CLI Admin Tool</a></li>
+          
+        </ul>
+        
+      </li>
+    
+      <li>
+        
+          <span class="nav__sub-title">Contributor Guide</span>
+        
+
+        
+        <ul>
+          
+            
+            
+
+            
+            
+
+            <li><a href="/docs/code-guidelines/" class="">Code Guidelines</a></li>
+          
+            
+            
+
+            
+            
+
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
+          
+            
+            
+
+            
+            
+
+            <li><a href="/docs/release-manual" class="">Release Manual</a></li>
+          
+        </ul>
+        
+      </li>
+    
+      <li>
+        
+          <span class="nav__sub-title">Best Practice</span>
+        
+
+        
+        <ul>
+          
+            
+            
+
+            
+            
+
+            <li><a href="/docs/core-concept/" class="">Core Concept</a></li>
+          
+            
+            
+
+            
+            
+
+            <li><a href="/docs/best-practice-broker/" class="">Broker</a></li>
+          
+            
+            
+
+            
+            
+
+            <li><a href="/docs/best-practice-producer/" class="">Producer</a></li>
+          
+            
+            
+
+            
+            
+
+            <li><a href="/docs/best-practice-consumer/" class="">Consumer</a></li>
+          
+            
+            
+
+            
+            
+
+            <li><a href="/docs/best-practice-namesvr/" class="">NameServer</a></li>
+          
+        </ul>
+        
+      </li>
+    
+      <li>
+        
+          <span class="nav__sub-title">Release Notes</span>
+        
+
+        
+        <ul>
+          
+            
+            
+
+            
+            
+
+            <li><a href="/dowloading/releases/" class="">Download</a></li>
+          
+            
+            
+
+            
+            
+
+            <li><a href="/release_notes/release-notes-4.0.0-incubating/" class="">4.0.0-incubating</a></li>
+          
+        </ul>
+        
+      </li>
+    
+      <li>
+        
+          
+          
+
+          <a href="/docs/roadmap/"><span class="nav__sub-title">RoadMap</span></a>
+        
+
+        
+      </li>
+    
+  </ul>
+</nav>
+    
+  
+  </div>
+
+
+  <article class="page" itemscope itemtype="http://schema.org/CreativeWork">
+    <meta itemprop="headline" content="How to create Pull Request">
+    <meta itemprop="description" content="This page guides you through the pull request creation process.">
+    <meta itemprop="datePublished" content="June 08, 2017">
+    <meta itemprop="dateModified" content="December 24, 2016">
+
+    <div class="page__inner-wrap">
+      
+        <header>
+          <h1 class="page__title" itemprop="headline">How to create Pull Request
+</h1>
+          
+        </header>
+      
+
+      <section class="page__content" itemprop="text">
+        <p>This page guides you through the pull request creation process.</p>
+
+<aside class="sidebar__right">
+<nav class="toc">
+    <header><h4 class="nav__title"><i class="fa fa-file-text"></i> On This Page</h4></header>
+<ul class="toc__menu" id="markdown-toc">
+  <li><a href="#git-setup-for-contributors" id="markdown-toc-git-setup-for-contributors">Git setup for Contributors</a></li>
+  <li><a href="#git-setup-for-committers" id="markdown-toc-git-setup-for-committers">Git setup for Committers</a></li>
+  <li><a href="#do-some-work-on-the-branch" id="markdown-toc-do-some-work-on-the-branch">Do some work on the branch</a></li>
+  <li><a href="#how-to-create-a-pr-committers" id="markdown-toc-how-to-create-a-pr-committers">How to create a PR (committers)</a></li>
+  <li><a href="#how-to-create-a-pr-contributors" id="markdown-toc-how-to-create-a-pr-contributors">How to create a PR (contributors)</a></li>
+</ul>
+
+  </nav>
+</aside>
+
+<h1 id="git-setup-for-contributors">Git setup for Contributors</h1>
+<p>First of all, fork github’s <code class="highlighter-rouge">apache/incubator-rocketmq</code> to your own account on github and clone it as follows,</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>git clone https://github.com/&lt;your_github_name&gt;/incubator-rocketmq.git
+</code></pre>
+</div>
+
+<p>Cloning this locally will set up <code class="highlighter-rouge">origin</code> to point to your remote fork on github as the default remote.
+Now you can create your pull requests.</p>
+
+<p>You will need to update a local master sometimes (to merge to your development branches sometimes).
+For this, you have to add remote for RocketMQ mirror as follows,</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>git remote add upstream https://github.com/apache/incubator-rocketmq.git
+</code></pre>
+</div>
+
+<p>and update your local master via <code class="highlighter-rouge">git fetch</code> followed by <code class="highlighter-rouge">git rebase</code>, for instance:
+    git fetch upstream master
+    git rebase upstream/master</p>
+
+<h1 id="git-setup-for-committers">Git setup for Committers</h1>
+<p>In addition to contributors’ configurations, committers will have to attach the apache git repo:</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>git remote add apache https://git-wip-us.apache.org/repos/asf/incubator-rocketmq.git
+</code></pre>
+</div>
+
+<p>To check your remote setup, issue</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>git remote -v
+</code></pre>
+</div>
+
+<p>You should see something like this:</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>origin    https://github.com/&lt;your_github_name&gt;/incubator-rocketmq.git (fetch)
+origin    https://github.com/&lt;your_github_name&gt;/incubator-rocketmq.git (push)
+upstream  https://github.com/apache/incubator-rocketmq.git (fetch)
+upstream  https://github.com/apache/incubator-rocketmq.git (push)
+apache    https://git-wip-us.apache.org/repos/asf/incubator-rocketmq.git (fetch)
+apache    https://git-wip-us.apache.org/repos/asf/incubator-rocketmq.git (push)
+</code></pre>
+</div>
+
+<p>Now if you want to experiment with a branch everything, by default, points to your github account because ‘origin’ is default. You can work as normal using only github until you are ready to merge with the apache remote. Some conventions will integrate with Apache JIRA ticket numbers.</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>git checkout -b ROCKETMQ-xxxx #xxxx typically is a JIRA ticket number
+</code></pre>
+</div>
+
+<p><em>To ensure the code quality of the master branch, all but minor changes should go through pull requests reviewed by peer committers.</em></p>
+
+<h1 id="do-some-work-on-the-branch">Do some work on the branch</h1>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>git commit -a -m "doing some work"
+git push origin ROCKETMQ-xxxx # notice pushing to **origin** not **apache**
+</code></pre>
+</div>
+
+<p>Once you are ready to commit to the apache remote you can merge and push them directly, otherwise always create a PR.</p>
+
+<h1 id="how-to-create-a-pr-committers">How to create a PR (committers)</h1>
+
+<p>Push your branch to Github:</p>
+
+<div class="highlighter-rouge"><pre class="highlight"><code>git checkout ROCKETMQ-xxxx
+git push origin ROCKETMQ-xxxx
+</code></pre>
+</div>
+
+<ol>
+  <li>
+    <p>Go to your ROCKETMQ-xxxx branch on Github. Since you forked it from Github’s apache/incubator-rocketmq. By default all PR will go to apache/master.</p>
+  </li>
+  <li>Click the green “Compare, review, and create pull request” button. You can edit the to and from for the PR if it isn’t correct. The “base fork” should be apache/incubator-rocketmq unless you are collaborating with one of the committers on the list. The “base” will be master. Don’t submit a PR to any other branches unless permitted by branch owner. The “head fork” will be your forked repo and the “compare” will be your ROCKETMQ-xxxx branch.</li>
+  <li>Click the “Create pull request” button and name the request “ROCKETMQ-xxxx” all caps. This will connect the comments of the PR to the mailing list and JIRA comments.</li>
+  <li>From now on the PR lives on github’s apache/incubator-rocketmq. You can use the commenting UI there.</li>
+  <li>If you are looking for a review or wanting to share with someone else please write a note in the comments and don’t worry about automated merging of your PR – you will have to do that later. The PR is tied to your branch so you can respond to comments, make fixes, and commit them from your local repo. They will appear on the PR page and be mirrored to JIRA and the mailing list.</li>
+  <li>When you are satisfied and want to push it to Apache’s remote repo, you can merge this PR.</li>
+</ol>
+
+<h1 id="how-to-create-a-pr-contributors">How to create a PR (contributors)</h1>
+<p>Before you create a pull request, make sure</p>
+<ol>
+  <li>A corresponding <a href="https://issues.apache.org/jira/browse/ROCKETMQ/">JIRA</a> issue is created and has a clear problem description.</li>
+  <li>Make sure you follow <a href="/docs/code-guidelines/">Coding Guidelines</a>.</li>
+  <li>You have unit tests for everything you are about to commit.</li>
+</ol>
+
+<p>For information about creating pull requests, please check <a href="https://help.github.com/articles/creating-a-pull-request/">GitHub PR docs</a>.</p>
+
+<p>Pull requests are made to <code class="highlighter-rouge">apache/incubator-rocketmq</code> repository on Github.
+In the Github UI you should pick the master branch as target of the PR. <br />
+You pull request will be reviewed and commented by committers, and issues can be discussed. When all reviewers are positive on the pull request, it will be merged.</p>
+
+        
+      </section>
+
+      <footer class="page__meta">
+        
+        
+
+
+        
+          <p class="page__date"><strong><i class="fa fa-fw fa-calendar" aria-hidden="true"></i> Updated:</strong> <time datetime="2016-12-24">December 24, 2016</time></p>
+        
+      </footer>
+
+      <section class="page__share">
+  
+    <h4 class="page__share-title">Share on</h4>
+  
+
+  <a href="https://twitter.com/intent/tweet?via=ApacheRocketMQ&text=How to create Pull Request /docs/create-pull-request/" class="btn btn--twitter" title="Share on Twitter"><i class="fa fa-fw fa-twitter" aria-hidden="true"></i><span> Twitter</span></a>
+
+  <a href="https://www.facebook.com/sharer/sharer.php?u=/docs/create-pull-request/" class="btn btn--facebook" title="Share on Facebook"><i class="fa fa-fw fa-facebook" aria-hidden="true"></i><span> Facebook</span></a>
+
+  <a href="https://plus.google.com/share?url=/docs/create-pull-request/" class="btn btn--google-plus" title="Share on Google Plus"><i class="fa fa-fw fa-google-plus" aria-hidden="true"></i><span> Google+</span></a>
+
+  <a href="https://www.linkedin.com/shareArticle?mini=true&url=/docs/create-pull-request/" class="btn btn--linkedin" title="Share on LinkedIn"><i class="fa fa-fw fa-linkedin" aria-hidden="true"></i><span> LinkedIn</span></a>
+</section>
+
+
+      
+  <nav class="pagination">
+    
+      <a href="/docs/best-practice-consumer/" class="pagination--pager" title="Best Practice For Consumer
+">Previous</a>
+    
+    
+      <a href="/docs/best-practice-namesvr/" class="pagination--pager" title="Best Practice For NameServer
+">Next</a>
+    
+  </nav>
+
+    </div>
+
+    
+      <div class="page__comments">
+  
+  
+    <h4 class="page__comments-title">Leave a Comment</h4>
+    <section id="disqus_thread"></section>
+  
+</div>
+    
+  </article>
+
+  
+  
+</div>
+
+    <div class="page__footer">
+      <footer>
+        <!-- start custom footer snippets -->
+
+<!-- end custom footer snippets -->
+        <style type="text/css">
+  div.columns   { float: left; margin-left: 10px;}
+  div.clear     { clear: both; } 
+</style>
+<div>
+  <div class="columns">
+    <a href="https://www.apache.org/"><img src="/assets/images/feather-small.gif" alt="Apache Software Foundation" style="height: 88px !important" /></a>
+  </div>
+  <div class="columns" style="width: 80%">
+    <div class="page__footer-follow">
+      <ul class="social-icons">
+        
+          <li><strong>Follow:</strong></li>
+        
+        
+          <li><a href="https://twitter.com/ApacheRocketMQ"><i class="fa fa-fw fa-twitter-square" aria-hidden="true"></i> Twitter</a></li>
+        
+        
+        
+          <li><a href="http://github.com/apache/incubator-rocketmq"><i class="fa fa-fw fa-github" aria-hidden="true"></i> GitHub</a></li>
+        
+        
+        <li><a href="/feed.xml"><i class="fa fa-fw fa-rss-square" aria-hidden="true"></i> Feed</a></li>
+      </ul>
+    </div>
+
+    <div class="page__footer-copyright">Copyright &copy; 2017 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved.</div>
+  </div>
+</div>
+<div class="clear"></div>
+      </footer>
+    </div>
+
+    <script src="/assets/js/main.min.js"></script>
+
+
+
+
+  <script>
+  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+  ga('create', 'UA-89603173-1', 'auto');
+  ga('send', 'pageview');
+</script>
+
+<script>
+var _hmt = _hmt || [];
+(function() {
+  var hm = document.createElement("script");
+  hm.src = "https://hm.baidu.com/hm.js?36428f2b841d08e7405724cbf7f860d2";
+  var s = document.getElementsByTagName("script")[0]; 
+  s.parentNode.insertBefore(hm, s);
+})();
+</script>
+
+
+
+
+  
+  <script type="text/javascript">
+  	/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
+  	var disqus_shortname = 'rocketmq';
+
+  	/* * * DON'T EDIT BELOW THIS LINE * * */
+  	(function() {
+  		var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
+  		dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
+  		(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
+  	})();
+
+  	/* * * DON'T EDIT BELOW THIS LINE * * */
+  	(function () {
+  		var s = document.createElement('script'); s.async = true;
+  		s.type = 'text/javascript';
+  		s.src = '//' + disqus_shortname + '.disqus.com/count.js';
+  		(document.getElementsByTagName('HEAD')[0] || document.getElementsByTagName('BODY')[0]).appendChild(s);
+  	}());
+  </script>
+  <noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
+
+
+
+
+
+
+  </body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-rocketmq-site/blob/5b69a90f/content/docs/documentation/index.html
----------------------------------------------------------------------
diff --git a/content/docs/documentation/index.html b/content/docs/documentation/index.html
index 7c38719..57dcf16 100644
--- a/content/docs/documentation/index.html
+++ b/content/docs/documentation/index.html
@@ -57,7 +57,7 @@
 
 
   <meta property="og:type" content="article">
-  <meta property="article:published_time" content="2017-06-08T11:24:44+08:00">
+  <meta property="article:published_time" content="2017-06-08T13:09:18+08:00">
 
 
 
@@ -241,6 +241,14 @@
 
             <li><a href="/docs/filter-by-sql92-example/" class="">Filter Example</a></li>
           
+            
+            
+
+            
+            
+
+            <li><a href="/docs/faq/" class="">FAQ</a></li>
+          
         </ul>
         
       </li>
@@ -303,7 +311,7 @@
             
             
 
-            <li><a href="/docs/pull-request/" class="">Pull Request</a></li>
+            <li><a href="/docs/pull-request/" class="">Manage Pull Request</a></li>
           
             
             
@@ -408,17 +416,6 @@
         
       </li>
     
-      <li>
-        
-          
-          
-
-          <a href="/docs/faq/"><span class="nav__sub-title">FAQ</span></a>
-        
-
-        
-      </li>
-    
   </ul>
 </nav>