Sorry, I missed your prior email. RE Apache Rat, its more to check that the files have the right header. But yes, it can add the header where missing.
When i run rat manually, many files are missing headers. As a podling and an Apache project, you are expected to be able to run Rat. John On Thu, May 3, 2018 at 11:19 AM Kevin A. McGrail <[email protected]> wrote: > Hi Shuang, I don't know that John will have the cycles to respond but there > is nothing stopping you from proposing a new RC and taking a vote though of > course, you generally only want to do so when you believe issues have been > hammered out. > > Regards, > KAM > > -- > Kevin A. McGrail > Asst. Treasurer & VP Fundraising, Apache Software Foundation > Chair Emeritus Apache SpamAssassin Project > https://www.linkedin.com/in/kmcgrail - 703.798.0171 <(703)%20798-0171> > > On Wed, May 2, 2018 at 2:18 AM, SHUANG SU <[email protected]> wrote: > > > John, > > > > Could I release rc2 now? > > > > > > ------------------------------ > > Su Shuang (100pah) > > ------------------------------ > > > > > > 2018-04-30 1:23 GMT+08:00 SHUANG SU <[email protected]>: > > > > > John, > > > > > > I think that Apache Rat is used to check which files are missing > license > > > and add licenses for them. (Do I understand it right?) > > > > > > Before we know the tool Apache Rat, another tool, > > `echarts/build/addHeader.js`, > > > has been created to do that job: > > > > > > Run it in the Node.js environment: > > > `node build/addHeader.js` > > > Then the source files that are missing license will be added an Apache > > > License. > > > > > > I have also tried Apache Rat just now to check the license, got the > same > > > result. > > > (but got some trouble when trying to add a license, have not followed > up > > > on this issue yet.) > > > > > > For most of the JavaScript project developers, Java environment is not > > > necessarily installed, > > > but the Node.js usually already installed for building projects. So > could > > > we use the > > > `build/addHeader.js` to do the jobs of checking and adding the license? > > > > > > > > > > > > > > > > > > > > > ------------------------------ > > > Su Shuang (100pah) > > > ------------------------------ > > > > > > > > > > > > 2018-04-29 20:25 GMT+08:00 John D. Ament <[email protected]>: > > > > > >> Su, > > >> > > >> Did you ever see my question about running Apache Rat against the > > project? > > >> Please let me know. > > >> > > >> John > > >> > > >> On Sun, Apr 29, 2018 at 6:27 AM SHUANG SU <[email protected]> > > wrote: > > >> > > >> > Thanks John ~ > > >> > > > >> > I've updated the LICENSE file and added a DISCAIMER and updated the > > >> license > > >> > statements in the files that using 3rd party code, > > >> > and then packed > > >> > https://dist.apache.org/repos/dist/dev/incubator/echarts/4.1.0.rc2/ > . > > >> > > > >> > Would you please check that is there any other defeat in rc2? > > >> > > > >> > Thanks :) > > >> > > > >> > > > >> > > > >> > > > >> > ---------------------------- > > >> > Su Shuang (100pah) > > >> > ---------------------------- > > >> > > > >> > > > >> > > > >> > 2018-04-29 1:56 GMT+08:00 John D. Ament <[email protected]>: > > >> > > > >> > > On Sat, Apr 28, 2018 at 10:31 AM SHUANG SU < > [email protected]> > > >> > wrote: > > >> > > > > >> > > > > Our definition of import is > > >> > > > > that you have copied the source code from the project > (zrender) > > >> into > > >> > > > > echarts. > > >> > > > > > >> > > > Oh, I get it~ > > >> > > > echarts does not copy zrender code to its source code file (that > > is, > > >> > all > > >> > > of > > >> > > > the file under the directory "echarts/src/"). > > >> > > > But the zrender code is actually included in the "echarts dist > > file" > > >> > > (that > > >> > > > is, all of the file under the directory "echarts/dist"), > > >> > > > which are auto generated by the build tool > > (echarts/build/build.js) > > >> > when > > >> > > > echarts is about to be released. > > >> > > > The dist files can be used in the production environment. > > >> > > > > > >> > > > So if the "dist file" is not considered as "source code", do we > > >> still > > >> > > need > > >> > > > to add zrender license to echarts LICENSE file? > > >> > > > Or we might list all of the "dist files" in echarts LICENSE file > > >> that > > >> > is > > >> > > > using zrender? > > >> > > > > > >> > > > > > >> > > Since the dist directory is in your source release, then yes you > > would > > >> > need > > >> > > to list it out in the license file. > > >> > > > > >> > > It would look something like > > >> > > > > >> > > dist/echarts.min.js embeds zrender BSD 3 Clause > > >> > > > > >> > > <content or path to the license file> > > >> > > > > >> > > John > > >> > > > > >> > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > ---------------------------- > > >> > > > Su Shuang (100pah) > > >> > > > ---------------------------- > > >> > > > > > >> > > > > > >> > > > > > >> > > > 2018-04-28 22:01 GMT+08:00 John D. Ament <[email protected] > >: > > >> > > > > > >> > > > > On Sat, Apr 28, 2018 at 9:45 AM SHUANG SU < > > [email protected] > > >> > > > >> > > > wrote: > > >> > > > > > > >> > > > > > > Here's the question. Is zrender embedded in this source > > >> release? > > >> > > If > > >> > > > > so, > > >> > > > > > > we need to spell out the files and the license. > > >> > > > > > > > >> > > > > > Yes, zrender is embedded in this source release. But zrender > > is > > >> > used > > >> > > > > > as the underlying > > >> > > > > > render engine, > > >> > > > > > the zrender code is almost imported by every echarts source > > file > > >> > (via > > >> > > > > > "module import"). > > >> > > > > > So is there a better way to describe the usage of zrender, > but > > >> not > > >> > > list > > >> > > > > all > > >> > > > > > files? > > >> > > > > > > > >> > > > > > > > >> > > > > No, that's not what import means in this case. Our definition > > of > > >> > > import > > >> > > > is > > >> > > > > that you have copied the source code from the project > (zrender) > > >> into > > >> > > > > echarts. > > >> > > > > > > >> > > > > > > >> > > > > > > > >> > > > > > > > >> > > > > > > > >> > > > > > > > >> > > > > > ---------------------------- > > >> > > > > > Su Shuang (100pah) > > >> > > > > > ---------------------------- > > >> > > > > > > > >> > > > > > > > >> > > > > > > > >> > > > > > 2018-04-28 21:11 GMT+08:00 John D. Ament < > > [email protected] > > >> >: > > >> > > > > > > > >> > > > > > > On Sat, Apr 28, 2018 at 8:47 AM SHUANG SU < > > >> > [email protected]> > > >> > > > > > wrote: > > >> > > > > > > > > >> > > > > > > > Thanks John, > > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > (1) > > >> > > > > > > > > - LICENSE file correctly lists out 3rd party license, > > >> however > > >> > > we > > >> > > > > > > require > > >> > > > > > > > > the actual license text to be placed in the file, or a > > >> > pointer > > >> > > > to a > > >> > > > > > > file > > >> > > > > > > > > relative to the LICENSE file be used. We do not > accept > > >> > links, > > >> > > > > since > > >> > > > > > > > those > > >> > > > > > > > > links could change. > > >> > > > > > > > > > >> > > > > > > > The actual 3rd party license license is listed in the > > >> directory > > >> > > > > > > > "echarts/licenses/*", > > >> > > > > > > > and the pointers to the those files are listed in the > > >> LICENSE > > >> > > file, > > >> > > > > not > > >> > > > > > > > external links. > > >> > > > > > > > > > >> > > > > > > > For example, in echarts LICENSE file, the file pointer > > >> > > > > > > > <licenses/LICENSE-zrender> > > >> > > > > > > > has been listed in the snippet about zrender license : > > >> > > > > > > > > > >> > > > > > > > > [BSD 3-Clause] <https://github.com/ecomfe/zrender> is > > >> used > > >> > as > > >> > > > the > > >> > > > > > > render > > >> > > > > > > > > engine. See <licenses/LICENSE-zrender> for details. > > >> > > > > > > > > > >> > > > > > > > I saw some other apache projects do it in that way [1]. > > >> > > > > > > > So did I do it right for the part? > > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > Here's the question. Is zrender embedded in this source > > >> release? > > >> > > If > > >> > > > > so, > > >> > > > > > > we need to spell out the files and the license. I'm not > > sure > > >> > what > > >> > > > > apache > > >> > > > > > > projects you looked at so I can't comment, the verbiage > > isn't > > >> > quite > > >> > > > > > right. > > >> > > > > > > > > >> > > > > > > The format should be > > >> > > > > > > > > >> > > > > > > - Files under different license > > >> > > > > > > - (repeat for each) > > >> > > > > > > > > >> > > > > > > License path/text > > >> > > > > > > > > >> > > > > > > --- > > >> > > > > > > > > >> > > > > > > src/files/zrender.js > > >> > > > > > > > > >> > > > > > > <ZRender license text> > > >> > > > > > > > > >> > > > > > > --- > > >> > > > > > > > > >> > > > > > > If you are in fact referencing Spark, the format you're > > using > > >> and > > >> > > > > they're > > >> > > > > > > using are very different. > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > > >> > > > > > > > (2) > > >> > > > > > > > > - It looks like we check in the distribution (seems > > >> common in > > >> > > JS > > >> > > > > > > > projects), > > >> > > > > > > > > however its not clear to me if all licenses are > > accounted > > >> for > > >> > > > (they > > >> > > > > > may > > >> > > > > > > > > be). For instance, we're including d3.js code which > is > > >> BSD > > >> > > > > 3-clause > > >> > > > > > > (per > > >> > > > > > > > > the license file), yet those files have been giving > the > > >> ASF > > >> > > > header. > > >> > > > > > > This > > >> > > > > > > > > would not be correct. > > >> > > > > > > > > > >> > > > > > > > echarts has little 3rd party reference: only zrender and > > >> very > > >> > > > little > > >> > > > > > > > (modified) code based on d3. > > >> > > > > > > > so if a file uses some code originally from d3, should > we > > >> add > > >> > its > > >> > > > BSD > > >> > > > > > > > 3-clause license in > > >> > > > > > > > the file head? > > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > Its ideal if you have brought in code from a third party, > it > > >> > > remains > > >> > > > > in a > > >> > > > > > > separate file. If you've taken the code and modified I > > would > > >> > leave > > >> > > > the > > >> > > > > > > original license in place. > > >> > > > > > > > > >> > > > > > > > > >> > > > > > > > > > >> > > > > > > > (3) > > >> > > > > > > > > How do I rebuild the dist area? > > >> > > > > > > > The building tool is "echarts/build/build.js". For > example > > >> > "node > > >> > > > > > > > echarts/build/build.js --help" > > >> > > > > > > > But generally speaking, the dist file can be used > > directly, > > >> no > > >> > > need > > >> > > > > to > > >> > > > > > > > rebuild in most cases. > > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > [1]: > > >> > > > > > > > https://github.com/apache/spark/blob/master/LICENSE > > >> > > > > > > > https://github.com/apache/incu > > >> bator-mxnet/blob/master/LICENSE > > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > ---------------------------- > > >> > > > > > > > Su Shuang (100pah) > > >> > > > > > > > ---------------------------- > > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > > >> > > > > > > > 2018-04-28 19:25 GMT+08:00 John D. Ament < > > >> > [email protected] > > >> > > >: > > >> > > > > > > > > > >> > > > > > > > > For those voting +1 it's good to include what you've > > >> checked. > > >> > > > > Here's > > >> > > > > > > an > > >> > > > > > > > > example of one we use on the incubator general list > [1]. > > >> > > > > > > > > > > >> > > > > > > > > I am -1. > > >> > > > > > > > > > > >> > > > > > > > > - Disclaimer file is missing > > >> > > > > > > > > - LICENSE file correctly lists out 3rd party license, > > >> however > > >> > > we > > >> > > > > > > require > > >> > > > > > > > > the actual license text to be placed in the file, or a > > >> > pointer > > >> > > > to a > > >> > > > > > > file > > >> > > > > > > > > relative to the LICENSE file be used. We do not > accept > > >> > links, > > >> > > > > since > > >> > > > > > > > those > > >> > > > > > > > > links could change. > > >> > > > > > > > > - It looks like we check in the distribution (seems > > >> common in > > >> > > JS > > >> > > > > > > > projects), > > >> > > > > > > > > however its not clear to me if all licenses are > > accounted > > >> for > > >> > > > (they > > >> > > > > > may > > >> > > > > > > > > be). For instance, we're including d3.js code which > is > > >> BSD > > >> > > > > 3-clause > > >> > > > > > > (per > > >> > > > > > > > > the license file), yet those files have been giving > the > > >> ASF > > >> > > > header. > > >> > > > > > > This > > >> > > > > > > > > would not be correct. > > >> > > > > > > > > > > >> > > > > > > > > Some ancillary questions. How do I run Apache Rat > > against > > >> > the > > >> > > > > > project? > > >> > > > > > > > > How do I rebuild the dist area? > > >> > > > > > > > > > > >> > > > > > > > > [1]: > > >> > > > > > > > > https://lists.apache.org/thread.html/ > > >> > > > > eba057d8f7c4cb5ef82b0109bcd848 > > >> > > > > > > > > 302232b7e68bb665cd0c2394b1@%3C > > >> general.incubator.apache.org > > >> > %3E > > >> > > > > > > > > > > >> > > > > > > > > On Sat, Apr 28, 2018 at 5:01 AM 沈毅 < > > [email protected]> > > >> > > wrote: > > >> > > > > > > > > > > >> > > > > > > > > > +1 > > >> > > > > > > > > > > > >> > > > > > > > > > Tan,Zhongyi <[email protected]> 于2018年4月28日周六 > > >> 下午4:38写道: > > >> > > > > > > > > > > > >> > > > > > > > > > > +1 > > >> > > > > > > > > > > > > >> > > > > > > > > > > 在 2018/4/28 上午1:58, "SHUANG SU" < > > >> [email protected]> > > >> > > 写入: > > >> > > > > > > > > > > > > >> > > > > > > > > > > >I am pleased to be calling this vote for the > > release > > >> of > > >> > > > Apache > > >> > > > > > > > ECharts > > >> > > > > > > > > > > >4.1.0.rc1. > > >> > > > > > > > > > > > > > >> > > > > > > > > > > >The release candidate to be voted over is > available > > >> at: > > >> > > > > > > > > > > > > https://dist.apache.org/repos/dist/dev/incubator/ > > >> > > > > > > echarts/4.1.0.rc1/ > > >> > > > > > > > > > > >MD5 (apache-echarts-4.1.0.rc1-incubating.zip) = > > >> > > > > > > > > > > >7413cf540642b0e0698ba73dbdf0f599 > > >> > > > > > > > > > > > > > >> > > > > > > > > > > >The release candidate is signed with a GPG key > > >> available > > >> > > at: > > >> > > > > > > > > > > > > > >> > > > https://dist.apache.org/repos/dist/dev/incubator/echarts/KEYS > > >> > > > > > > > > > > > > > >> > > > > > > > > > > >A tagged git repository is available for review > at: > > >> > > > > > > > > > > >https://github.com/apache/inc > > >> ubator-echarts/releases/ > > >> > > > > > > tag/4.1.0.rc1 > > >> > > > > > > > > > > > > > >> > > > > > > > > > > >The Git commit for this release is: > > >> > > > > > > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > > https://gitbox.apache.org/ > > repos/asf?p=incubator-echarts > > >> . > > >> > > > > > > > > git;a=commit;h=409 > > >> > > > > > > > > > > >49ae5d19a6de64d4b5cd0fa109a4c04051e66 > > >> > > > > > > > > > > > > > >> > > > > > > > > > > > > > >> > > > > > > > > > > > > > >> > > > > > > > > > > >[Release Note] > > >> > > > > > > > > > > > > > >> > > > > > > > > > > >+ [Feature] Enable candlestick and bar chart > > >> rendering > > >> > and > > >> > > > > > zooming > > >> > > > > > > > in > > >> > > > > > > > > > > >large > > >> > > > > > > > > > > >amount of data (200K). Add option > > >> > > > > `series.progressiveChunkMode` > > >> > > > > > to > > >> > > > > > > > > > enhance > > >> > > > > > > > > > > >the effect when progressively rendering. > > >> > > > > > > > > > > >+ [Feature] Add zoom and drag interactions for > tree > > >> > > diagram. > > >> > > > > > > > > > > >+ [Feature] Support keeping-aspect for legend > path. > > >> > #7831 > > >> > > > > > > > > > > >+ [Feature] Support node dragging for sankey > chart. > > >> > > > > > > > > > > > > > >> > > > > > > > > > > >+ [Enhance] Category axis enhancement: > > >> > > > > > > > > > > >+ Optimize the performance in large amount of > data > > (> > > >> > > 100K ~ > > >> > > > > 1M) > > >> > > > > > > > > > > >+ Enhance the auto interval strategy. > > >> > > > > > > > > > > >+ Enhance the animation when zooming and moving > the > > >> data > > >> > > > > window > > >> > > > > > of > > >> > > > > > > > > > > >cartesian. > > >> > > > > > > > > > > >+ [Enhance] In line chart, enhance symbol display > > >> > strategy > > >> > > > > when > > >> > > > > > > > using > > >> > > > > > > > > > > >category axis (see `showAllSymbol:'auto'`). > > >> > > > > > > > > > > >+ [Enhance] Support that lift the brushed > elements > > to > > >> > the > > >> > > > top > > >> > > > > > (add > > >> > > > > > > > > > option > > >> > > > > > > > > > > >`visualMap.inRange.liftZ`). > > >> > > > > > > > > > > >+ [Enhance] Enhance the category axis ticks and > > >> labels > > >> > > when > > >> > > > > > there > > >> > > > > > > > was > > >> > > > > > > > > no > > >> > > > > > > > > > > >enough space to display all labels. > > >> > > > > > > > > > > >+ [Enhance] Enhance the order of nodes for sankey > > >> > diagram. > > >> > > > > #3390 > > >> > > > > > > > #3543 > > >> > > > > > > > > > > >#6365 #4880 #4986 > > >> > > > > > > > > > > >+ [Enhance] Enhance sampling performance in > > >> progressive > > >> > > > mode. > > >> > > > > > > > > > > >+ [Enhance] Enhance parallel performance in > > >> progressive > > >> > > > mode. > > >> > > > > > > > > > > >+ [Enhance] Currently do not filter empty data > item > > >> in > > >> > > data > > >> > > > > > zoom, > > >> > > > > > > > > which > > >> > > > > > > > > > > >makes line chart keeping broken. #7955 > > >> > > > > > > > > > > >+ [Enhance] Support toolbox.feature merge. > > >> > > > > > > > > > > >+ [Enhance] Add tree directions from right to > left, > > >> from > > >> > > > > bottom > > >> > > > > > to > > >> > > > > > > > top > > >> > > > > > > > > > for > > >> > > > > > > > > > > >tree series. #7351 #7154 > > >> > > > > > > > > > > > > > >> > > > > > > > > > > >+ [Fix] Resolve browser become unresponsive when > > the > > >> > data > > >> > > of > > >> > > > > > > sankey > > >> > > > > > > > > > series > > >> > > > > > > > > > > >has cycle. #7495 #8117 #7583 #7325 #6555 > > >> > > > > > > > > > > >+ [Fix] `yAxis` extent did not update when some > of > > >> the > > >> > > > stacked > > >> > > > > > bar > > >> > > > > > > > > > series > > >> > > > > > > > > > > >hide. #8003 > > >> > > > > > > > > > > >+ [Fix] Currently we fetch name from > > `dateItem.name` > > >> > > firstly > > >> > > > > in > > >> > > > > > > > list. > > >> > > > > > > > > > > >#7966 > > >> > > > > > > > > > > >+ [Fix] Typed array incorrect usage in WeChat > app. > > >> > > > > > > > > > > >+ [Fix] `option` in axis data item did not work. > > >> #7954 > > >> > > > > > > > > > > >+ [Fix] `markArea` only displayed the last one. > > #7902 > > >> > > > > > > > > > > >+ [Fix] Fixed the WeChat environment imprecise > > >> > detection. > > >> > > > > > > > > > > >+ [Fix] Rounding error in clip symbol for line > > chart. > > >> > > #7913 > > >> > > > > > > > > > > >+ [Fix] The default tooltip in candlestick only > > >> showed > > >> > one > > >> > > > > item. > > >> > > > > > > > #8149 > > >> > > > > > > > > > > >+ [Fix] Bar chart start point was incorrect when > > >> > multiple > > >> > > > axes > > >> > > > > > > > exist. > > >> > > > > > > > > > > >#7412 > > >> > > > > > > > > > > >+ [Fix] `markArea` did not display when using > > ordinal > > >> > > > string. > > >> > > > > > > #7849 > > >> > > > > > > > > > > >+ [Fix] `dataZoom` threw error when series was > > empty. > > >> > > #7666 > > >> > > > > > > > > > > >+ [Fix] Add compatibility of data exceptions for > > >> sankey > > >> > > > > series. > > >> > > > > > > > #2867 > > >> > > > > > > > > > > >+ [Fix] Fix error when removing node or rendering > > >> again > > >> > > for > > >> > > > > the > > >> > > > > > > tree > > >> > > > > > > > > > > >series. #8038 #8040 #7720 #7363 #7315 > > >> > > > > > > > > > > >+ [Fix] `sunburst` chart roll-up element was not > > >> removed > > >> > > > when > > >> > > > > > > > > > > >chart.setOption called. #8132 > > >> > > > > > > > > > > >+ [Fix] SVG axisPointer text position bug. #7947 > > >> > > > > > > > > > > >+ [Fix] Large lines chart render bug in large > mode. > > >> > > > > > > > > > > >+ [Fix] The last day of a month was not displayed > > in > > >> > > > calendar. > > >> > > > > > > #8045 > > >> > > > > > > > > > > >+ [Fix] Data sampling of line chart caused > > incorrect > > >> > > extent > > >> > > > > when > > >> > > > > > > > data > > >> > > > > > > > > > had > > >> > > > > > > > > > > >NaN. > > >> > > > > > > > > > > >+ [Fix] Data sampling of line chart worked > > abnormally > > >> > when > > >> > > > > using > > >> > > > > > > > > > > >`series.encode`. #8017 > > >> > > > > > > > > > > >+ [Fix] `legendHoverLink: false` did not work > > >> > > appropriately > > >> > > > > when > > >> > > > > > > > > > multiple > > >> > > > > > > > > > > >series had the same name. #8010 > > >> > > > > > > > > > > >+ [Fix] Some of the graph hover style did not > work. > > >> > > > > > > > > > > >+ [Fix] Fix axis extent calculation error when > > using > > >> > > stack. > > >> > > > > > > > > > > > > > >> > > > > > > > > > > > > > >> > > > > > > > > > > > > > >> > > > > > > > > > > >Please vote on releasing this package as: > > >> > > > > > > > > > > >Apache ECharts 4.1.0.rc1 > > >> > > > > > > > > > > > > > >> > > > > > > > > > > >This vote will be open until "Tue May 01 2018 > > >> 02:56:20 > > >> > > > > GMT+0800 > > >> > > > > > > > (CST)" > > >> > > > > > > > > > and > > >> > > > > > > > > > > >passes if a majority of at least three +1 Apache > > >> ECharts > > >> > > > IPMC > > >> > > > > > > votes > > >> > > > > > > > > are > > >> > > > > > > > > > > >cast. > > >> > > > > > > > > > > > > > >> > > > > > > > > > > >[ ] +1 Release this package > > >> > > > > > > > > > > >[ ] 0 I don't feel strongly about it, but don't > > >> object > > >> > > > > > > > > > > >[ ] -1 Do not release this package because... > > >> > > > > > > > > > > > > > >> > > > > > > > > > > >Anyone can participate in testing and voting, not > > >> just > > >> > > > > > committers, > > >> > > > > > > > > > please > > >> > > > > > > > > > > >feel free to try out the release candidate and > > >> provide > > >> > > your > > >> > > > > > votes. > > >> > > > > > > > > > > > > > >> > > > > > > > > > > > > > >> > > > > > > > > > > > > > >> > > > > > > > > > > >---------------------------- > > >> > > > > > > > > > > >Su Shuang (100pah) > > >> > > > > > > > > > > >---------------------------- > > >> > > > > > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > > > > >> > > > > > > > > > -- > > >> > > > > > > > > > Yi Shen > > >> > > > > > > > > > Senior Developer > > >> > > > > > > > > > Baidu, Inc. > > >> > > > > > > > > > > > >> > > > > > > > > > > >> > > > > > > > > > >> > > > > > > > > >> > > > > > > > >> > > > > > > >> > > > > > >> > > > > >> > > > >> > > > > > > > > >
