<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: 王下邀月熊(Chevalier)</title>
    <description>The latest articles on DEV Community by 王下邀月熊(Chevalier) (@wxyyxc1992).</description>
    <link>https://dev.to/wxyyxc1992</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F28936%2Fda1d8345-aa21-49ab-b6e8-0bb35c05539f.jpeg</url>
      <title>DEV Community: 王下邀月熊(Chevalier)</title>
      <link>https://dev.to/wxyyxc1992</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/wxyyxc1992"/>
    <language>en</language>
    <item>
      <title>fc-whiteboard, Web whiteboard screencasting</title>
      <dc:creator>王下邀月熊(Chevalier)</dc:creator>
      <pubDate>Wed, 17 Apr 2019 06:28:52 +0000</pubDate>
      <link>https://dev.to/wxyyxc1992/fc-whiteboard-web-whiteboard-screencasting-2b42</link>
      <guid>https://dev.to/wxyyxc1992/fc-whiteboard-web-whiteboard-screencasting-2b42</guid>
      <description>&lt;h1&gt;
  
  
  fc-whiteboard
&lt;/h1&gt;

&lt;p&gt;Web whiteboard screencasting(both live and playback mode) with background slides, can be used as a graphics tablet for online tutoring or remote collaboration.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IIKoCLdK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.postimg.cc/CLG53MF8/image.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IIKoCLdK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://i.postimg.cc/CLG53MF8/image.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Usage
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Whiteboard live mode
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--gW6FWXGX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://i.postimg.cc/65t7MNBQ/Kapture-2019-04-17-at-13-47-52.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--gW6FWXGX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://i.postimg.cc/65t7MNBQ/Kapture-2019-04-17-at-13-47-52.gif" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Source code can be found in &lt;a href="https://codesandbox.io/s/3q1z35q53p"&gt;Code Sandbox&lt;/a&gt; or &lt;a href="https://3q1z35q53p.codesandbox.io/"&gt;Demo&lt;/a&gt;;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;EventHub&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;Whiteboard&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;MirrorWhiteboard&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;fc-whiteboard&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;eventHub&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;EventHub&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="nx"&gt;eventHub&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;on&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;sync&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;changeEv&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;SyncEvent&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;changeEv&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;images&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;https://upload-images.jianshu.io/upload_images/1647496-6bede989c09af527.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;http://upload-images.jianshu.io/upload_images/1647496-d281090a702045e5.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;http://upload-images.jianshu.io/upload_images/1647496-611a416be07d7ca3.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;span class="p"&gt;];&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;whiteboard&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Whiteboard&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;root&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nx"&gt;HTMLDivElement&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;sources&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;images&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;eventHub&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="c1"&gt;// Enable this option to disable incremental sync, just use full sync&lt;/span&gt;
  &lt;span class="na"&gt;onlyEmitSnap&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;whiteboard&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;open&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;mirrorWhiteboard&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;MirrorWhiteboard&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;root-mirror&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nx"&gt;HTMLDivElement&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;sources&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;images&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;eventHub&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;mirrorWhiteboard&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;open&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  Whiteboard replay mode
&lt;/h2&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;ReplayWhiteboard&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;fc-whiteboard&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nx"&gt;events&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./events.json&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;let&lt;/span&gt; &lt;span class="nx"&gt;hasSend&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;whiteboard&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;ReplayWhiteboard&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;root&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nx"&gt;HTMLDivElement&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;whiteboard&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;setContext&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;events&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;].&lt;/span&gt;&lt;span class="nx"&gt;timestamp&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;async&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;t1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;t2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;hasSend&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;hasSend&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;events&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="kr"&gt;any&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;[];&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;whiteboard&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;open&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;The persistent events are listed as follow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"event"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"borderSnap"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"08e65660-6064-11e9-be21-fb33250b411f"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"target"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"whiteboard"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"border"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"08e65660-6064-11e9-be21-fb33250b411f"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"sources"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"https://upload-images.jianshu.io/upload_images/1647496-6bede989c09af527.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"http://upload-images.jianshu.io/upload_images/1647496-d281090a702045e5.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"http://upload-images.jianshu.io/upload_images/1647496-611a416be07d7ca3.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"pageIds"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"08e65661-6064-11e9-be21-fb33250b411f"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"08e6a480-6064-11e9-be21-fb33250b411f"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="s2"&gt;"08e6cb91-6064-11e9-be21-fb33250b411f"&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"visiblePageIndex"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"pages"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"08e65661-6064-11e9-be21-fb33250b411f"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"markers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"08e6a480-6064-11e9-be21-fb33250b411f"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"markers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"08e6cb91-6064-11e9-be21-fb33250b411f"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nl"&gt;"markers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[]&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"timestamp"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1555431837&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  Use drawboard alone
&lt;/h2&gt;



&lt;div class="highlight"&gt;&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"root"&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"https://upload-images.jianshu.io/upload_images/1647496-6bede989c09af527.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/img&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;





&lt;div class="highlight"&gt;&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Drawboard&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;fc-whiteboard/src&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;d&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Drawboard&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;imgEle&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;root&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="nx"&gt;HTMLImageElement&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="nx"&gt;d&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;open&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h1&gt;
  
  
  Motivation &amp;amp; Credits
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://markerjs.com/"&gt;markerjs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Another Awesome Lists: Systematic &amp; Structured Guide to Galaxy</title>
      <dc:creator>王下邀月熊(Chevalier)</dc:creator>
      <pubDate>Mon, 21 Jan 2019 08:35:43 +0000</pubDate>
      <link>https://dev.to/wxyyxc1992/awesome-lists-systematic--structured-guide-to-galaxy-45jo</link>
      <guid>https://dev.to/wxyyxc1992/awesome-lists-systematic--structured-guide-to-galaxy-45jo</guid>
      <description>&lt;p&gt;Everyone may be very familiar with the so-called awesome list:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;An awesome list is a list of awesome things curated by the community, about everything from CLI applications to fantasy books. Just like other thousands of awesome lists,&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://github.com/wxyyxc1992/Awesome-List/blob/master/README-en.md" rel="noopener noreferrer"&gt;Awesome Lists&lt;/a&gt; collects curated, worthy and up-to-date links for ITCS, including Programming Language(Java, JavaScript, Python, Go, Rust, etc.), Software Engineering, Backend(Spring, Nginx, MicroServices, etc.), Infrastructure(Database, Network, etc.), InfoSecurity &amp;amp; Penetration, Industrial Application, DataScienceAI(Statistics, Machine Learning, Deep Learning, NLP, CV), Frontend Technology(iOS, Android, RN, Electron), etc. Note that I've attempted to order the books in order of most "tackleable". So the idea is to read books from top to bottom.&lt;/p&gt;

&lt;p&gt;What's the difference between &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master" rel="noopener noreferrer"&gt;Awesome Lists&lt;/a&gt; and others?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;All lists are organized in a systematic and structured way, keep to my Ultimate Knowledge Graph(see below).&lt;/li&gt;
&lt;li&gt;Links in single list are ordered mannualy, seperated into multiple sections: Overview, Resources(Books, Courses, etc), Tutorials, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Navigation
&lt;/h2&gt;

&lt;p&gt;Finally, Let these lists speak for themselves:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If you wan't to learn Web Development, you may like &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master/Web/Syntax/DOM/DOM-List.md" rel="noopener noreferrer"&gt;DOM List&lt;/a&gt;, &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master/Web/Syntax/CSS/CSS-List.md" rel="noopener noreferrer"&gt;CSS List&lt;/a&gt;, &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master/Web/Framework/React/React-List.md" rel="noopener noreferrer"&gt;React List&lt;/a&gt;, &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master/Web/Framework/Redux/Redux-List.md" rel="noopener noreferrer"&gt;Redux List&lt;/a&gt;, &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master/Web/Framework/Vue/Vue-List.md" rel="noopener noreferrer"&gt;Vue List&lt;/a&gt;, &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master/Web/Tuning/PWA/Web-PWA-List.md" rel="noopener noreferrer"&gt;PWA List&lt;/a&gt;, &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master/Web/Tuning/Performance/Web-Performance-List.md" rel="noopener noreferrer"&gt;Web Performance List&lt;/a&gt;, &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master" rel="noopener noreferrer"&gt;WebAssembly List&lt;/a&gt;, etc.&lt;/li&gt;
&lt;li&gt;If you wan't to learn Java, Go, MicroService... you may like &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master/Web/Syntax/DOM/DOM-List.md" rel="noopener noreferrer"&gt;Java List&lt;/a&gt;, &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master/ProgrammingLanguage/Java/JVM/JVM-List.md" rel="noopener noreferrer"&gt;JVM List&lt;/a&gt;, &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master/ProgrammingLanguage/Go/Go-List.md" rel="noopener noreferrer"&gt;Go List&lt;/a&gt;, &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master/Backend/MicroService/MicroService-List.md" rel="noopener noreferrer"&gt;MicroService List&lt;/a&gt;, &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master/Backend/WebFramework/Java/Spring/Spring-List.md" rel="noopener noreferrer"&gt;Spring List&lt;/a&gt;, &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master/Backend/DevOps/DevOps-List.md" rel="noopener noreferrer"&gt;DevOps List&lt;/a&gt;, etc.&lt;/li&gt;
&lt;li&gt;If you wan't to learn Distributed System, Database, Concurrent Programming... you may like &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master/Infrastructure/Virtualization/Container/Docker/Docker-List.md" rel="noopener noreferrer"&gt;Docker List&lt;/a&gt;, &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master/Infrastructure/Virtualization/Orchestration/Kubernetes/Kubernetes-List.md" rel="noopener noreferrer"&gt;Kubernetes List&lt;/a&gt;, &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master/Infrastructure/OS/Linux/Linux-List.md" rel="noopener noreferrer"&gt;Linux List&lt;/a&gt;, &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master/Infrastructure/Network/HTTP/HTTP-List.md" rel="noopener noreferrer"&gt;HTTP List&lt;/a&gt;, &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master" rel="noopener noreferrer"&gt;Distributed System List&lt;/a&gt;, &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master/Infrastructure/DistributedSystem/Blockchain/Blockchain-List.md" rel="noopener noreferrer"&gt;Blockchain List&lt;/a&gt;, &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master/Infrastructure/DistributedComputing/Streaming/Flink/Flink-List.md" rel="noopener noreferrer"&gt;Flink List&lt;/a&gt;, &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master/Infrastructure/DistributedComputing/MOM/Kafka-List.md" rel="noopener noreferrer"&gt;Kafka List&lt;/a&gt;, &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master/Infrastructure/Database/Database-List.md" rel="noopener noreferrer"&gt;Database List&lt;/a&gt;, &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master/Infrastructure/Database/RDB/MySQL/MySQL-List.md" rel="noopener noreferrer"&gt;MySQL List&lt;/a&gt;, &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master/Infrastructure/Database/RDB/PostgreSQL/PostgreSQL-List.md" rel="noopener noreferrer"&gt;PostgreSQL List&lt;/a&gt;, etc.&lt;/li&gt;
&lt;li&gt;If you wan't to learn AI, DeepLearning, TensorFlow... you may like &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master/DataScienceAI/DataScienceAI-Book-List.md" rel="noopener noreferrer"&gt;DataScienceAI Book List&lt;/a&gt;, &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master/DataScienceAI/DataScienceAI-Course-List.md" rel="noopener noreferrer"&gt;DataScienceAI Course List&lt;/a&gt;, &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master/DataScienceAI/MachineLearning/MachineLearning-List.md" rel="noopener noreferrer"&gt;Machine Learning List&lt;/a&gt;, &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master/DataScienceAI/DeepLearning/DeepLearning-List.md" rel="noopener noreferrer"&gt;Deep Learning List&lt;/a&gt;, &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master/DataScienceAI/NLP/NLP-List.md" rel="noopener noreferrer"&gt;NLP List&lt;/a&gt;, &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master/DataScienceAI/Toolkit/TensorFlow/TensorFlow-List.md" rel="noopener noreferrer"&gt;TensorFlow List&lt;/a&gt;, &lt;a href="https://github.com/wxyyxc1992/Awesome-Lists/blob/master/DataScienceAI/Toolkit/PyTorch/PyTorch-List.md" rel="noopener noreferrer"&gt;PyTorch List&lt;/a&gt;, etc.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can use &lt;a href="https://https:wxyyxc1992.github.io/home/#/search?query=React" rel="noopener noreferrer"&gt;xCompass&lt;/a&gt; for searching in Web or &lt;a href="https://github.com/wxyyxc1992/xCompass/blob/master/soogle/alfred-sg/" rel="noopener noreferrer"&gt;alfred-sg&lt;/a&gt; for searching in MAC.&lt;/p&gt;

&lt;h2&gt;
  
  
  Knowledge Graph
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/wxyyxc1992/Developer-Zero-To-Mastery/blob/master/TechRoad/MindMap/MindMap.summary.png?raw=true" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.com%2Fwxyyxc1992%2FDeveloper-Zero-To-Mastery%2Fraw%2Fmaster%2FTechRoad%2FMindMap%2FMindMap.summary.png%3Fraw%3Dtrue" alt="img"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are massive curated links to help you study anything about heading first, with tutorials, practices, opensource, courses, books, etc. Each domain may contain the following files:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;{Something}-List.md - This file may contain or separate into the following:

&lt;ul&gt;
&lt;li&gt;Overview &amp;amp; Case Study &amp;amp; CheatSheet&lt;/li&gt;
&lt;li&gt;Resource &amp;amp; Book &amp;amp; Collection&lt;/li&gt;
&lt;li&gt;Tutorial &amp;amp; Learning Path&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;{Something}-Syntax-List.md - This file may contain or separate into the following:

&lt;ul&gt;
&lt;li&gt;Variable &amp;amp; Expression&lt;/li&gt;
&lt;li&gt;Control flow &amp;amp; Error Handler&lt;/li&gt;
&lt;li&gt;Function &amp;amp; Functional Programming&lt;/li&gt;
&lt;li&gt;Class &amp;amp; Object&lt;/li&gt;
&lt;li&gt;MetaProgramming&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;{Something}-DataStructure-List.md - This file may contain or separate into the following:

&lt;ul&gt;
&lt;li&gt;Basic Type&lt;/li&gt;
&lt;li&gt;Indexed Collection&lt;/li&gt;
&lt;li&gt;Keyed Collection&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;{Something}-Functionality-List.md - This file may contain or separate into the following:

&lt;ul&gt;
&lt;li&gt;Storage&lt;/li&gt;
&lt;li&gt;Network&lt;/li&gt;
&lt;li&gt;System / Process&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;{Something}-DevOps-List.md - This file may contain or separate into the following:

&lt;ul&gt;
&lt;li&gt;Builder, Task runner, Bundler, dependence management&lt;/li&gt;
&lt;li&gt;Debug&lt;/li&gt;
&lt;li&gt;Test, unit test, integration test, e2e test&lt;/li&gt;
&lt;li&gt;Architecture, module system, State management,&lt;/li&gt;
&lt;li&gt;StyleGuide, coding standards for source code in the JavaScript programming language.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;{Something}-Production-List.md - This file may contain or separate into the following:

&lt;ul&gt;
&lt;li&gt;Performance Optimization / Tunning&lt;/li&gt;
&lt;li&gt;Release / Deploy&lt;/li&gt;
&lt;li&gt;Accessibility / Monitor&lt;/li&gt;
&lt;li&gt;RealTime&lt;/li&gt;
&lt;li&gt;I18n&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;{Something}-OpenSource-List.md - Awesome tools, frameworks, projects&lt;/li&gt;

&lt;li&gt;{Something}-Internals-List.md Inner mechanism under the hood, Core/Compiler/Engine&lt;/li&gt;

&lt;/ul&gt;

</description>
      <category>java</category>
      <category>web</category>
      <category>ai</category>
      <category>devops</category>
    </item>
    <item>
      <title>Notes of Don’t Make Me Think. A Common Sense Approach to Web Usability.</title>
      <dc:creator>王下邀月熊(Chevalier)</dc:creator>
      <pubDate>Thu, 17 Jan 2019 16:01:12 +0000</pubDate>
      <link>https://dev.to/wxyyxc1992/notes-of-dont-make-me-think-a-common-sense-approach-to-web-usability-25ld</link>
      <guid>https://dev.to/wxyyxc1992/notes-of-dont-make-me-think-a-common-sense-approach-to-web-usability-25ld</guid>
      <description>

&lt;p&gt;&lt;a href="https://cdn-images-1.medium.com/max/1600/0*cpdquJU_V1OC3hq0" class="article-body-image-wrapper"&gt;&lt;img src="https://cdn-images-1.medium.com/max/1600/0*cpdquJU_V1OC3hq0" alt="img"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After reading &lt;a href="https://github.com/wxyyxc1992/Awesome-CS-Books-Warehouse"&gt;Don’t Make Me Think&lt;/a&gt;, I has learned a lot and rethinking the design of my personal site, my repo, etc. This is summary and reading notes meanwhile, most of them are picked from the origin.&lt;/p&gt;




&lt;p&gt;Here are a few things you &lt;strong&gt;won’t&lt;/strong&gt; find in this book:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hard and fast usability rules&lt;/li&gt;
&lt;li&gt;Predictions about the future of technology and the Web&lt;/li&gt;
&lt;li&gt;Bad-mouthing of poorly designed sites and apps.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You’ll find a lot of different definitions of usability often breaking it down into attributes like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Useful: Does it do something people need done?&lt;/li&gt;
&lt;li&gt;Learnable: Can people figure out how to use it?&lt;/li&gt;
&lt;li&gt;Memorable: Do they have to relearn it each time they use&lt;/li&gt;
&lt;li&gt;Effective: Does it get the job done?&lt;/li&gt;
&lt;li&gt;Efficient: Does it do it with a reasonable amount of time and effort?&lt;/li&gt;
&lt;li&gt;Desirable: Do people want it?&lt;/li&gt;
&lt;li&gt;Delightful: Is using it enjoyable, or even fun?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Person of average (or even below average) ability and experience can figure out how to use the thing [i.e., it’s learnable] to accomplish something[effective] without it being more trouble than it’s worth [efficient].&lt;/p&gt;

&lt;h3&gt;
  
  
  Chapter 1. Dont make me think
&lt;/h3&gt;

&lt;p&gt;What’s the most important thing I should do if i want to make sure my site or app is easy to use? It’s not “Nothing important should ever be more than two clicks away” or “Speak the user’ s language” or “Be consistent.” It’s Dont make me think.&lt;/p&gt;

&lt;p&gt;All kinds of things on a Web page can make us stop and think unnecessarily. Your goal should be for each page or screen to be self-evident, so that just by looking at it the average user. Here’s the rule: If you can t make something self-evident, you at least need to make it self-explanatory.&lt;/p&gt;

&lt;p&gt;On a self-explanatory page, it takes a little thought to get it, but only a little. The appearance of things (like size, color, and layout), their well-chosen names, and the small amounts of carefully crafted text should all work together to create a sense of nearly effortless understanding.&lt;/p&gt;

&lt;h3&gt;
  
  
  Chapter 2. How we really use the Web
&lt;/h3&gt;

&lt;p&gt;When we’re creating Sites, we act as though people are going to pore over each page, reading all of our carefully crafted text, figuring out how we’ve organized things, and weighing their options before deciding which link to click.&lt;/p&gt;

&lt;p&gt;What they actually do most of the time (if were lucky is glance at each new page, scan some of the text, and click on the first link that catches their interest or vaguely resembles the thing they’re looking for.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;FACT OF LIFE #1: &lt;strong&gt;We dont read pages. We scan them&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;FACT OF LIFE #2: &lt;strong&gt;We dont make optimal choices. We satisfice.&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;FACT OF LIFE #3: &lt;strong&gt;We don’t figure out how things work. We muddle through.&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Chapter 3. Billboard Design 101
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;DESIGNING FOR SCANNING, NOT READING&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Take advantage of conventions
&lt;/h3&gt;

&lt;p&gt;Like Stop signs, Given how crucial it is that drivers see and recognize them at a glance at a distance, in all kinds of weather and lighting conditions, it’s a really good thing that all stop signs look the same.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://cdn-images-1.medium.com/max/1600/0*2ANKeS89tkGXj91i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://cdn-images-1.medium.com/max/1600/0*2ANKeS89tkGXj91i.png" alt="img"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Create effective visual hierarchies
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;The more important something is, the more prominent it is.&lt;/li&gt;
&lt;li&gt;Things that are related logically are related visually.&lt;/li&gt;
&lt;li&gt;Things are”nested visually to show what’s part of what&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://cdn-images-1.medium.com/max/1600/0*H414mK1ocvyMGAfK.png" class="article-body-image-wrapper"&gt;&lt;img src="https://cdn-images-1.medium.com/max/1600/0*H414mK1ocvyMGAfK.png" alt="img"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Break pages up into clearly defined areas
&lt;/h3&gt;

&lt;p&gt;Web page scanning suggest that users decide very quickly in their initial glances which parts of the page are likely to have useful information and then rarely look at the other parts.&lt;/p&gt;

&lt;p&gt;Banner blindness-the ability of users to completely ignore areas they think will&lt;br&gt;
contain ads — is just the extreme case.&lt;/p&gt;

&lt;h3&gt;
  
  
  Make it obvious what’s clickable
&lt;/h3&gt;

&lt;p&gt;As we scan a page, we’re looking for a variety of visual cues that identify things as clickable(or tappable?’on touch screens )-things like shape(buttons, tabs, etc.), location(in a menu bar, for instance), and formatting(color and underlining).&lt;/p&gt;

&lt;h3&gt;
  
  
  Eliminate distractions/noise
&lt;/h3&gt;

&lt;p&gt;One of the great enemies of easy-to-grasp pages is visual noise. There are really three different kinds of noise:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Shouting: Automated slideshows, animation, pop-ups, and the never-ending array of new attention-grabbing ad formats! Shouting is usually the result of a failure to make tough decisions about which elements are really the most important and then create a visual hierarchy that guides users to them first.&lt;/li&gt;
&lt;li&gt;Disorganization: This is a sure sign that the designer doesn’t understand the importance of using grids to align the elements on a page.&lt;/li&gt;
&lt;li&gt;Clutter: It’s hard to find and focus on the messages you actually care about.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A good idea to start with the assumption that everything is visual noise (the “presumed guilty until proven innocent” approach) and get rid of anything that’s not making a real contribution.&lt;/p&gt;

&lt;h3&gt;
  
  
  Format content to support scanning
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Use plenty of headings.&lt;/li&gt;
&lt;li&gt;Keep paragraphs short.&lt;/li&gt;
&lt;li&gt;Use bulleted lists.&lt;/li&gt;
&lt;li&gt;Highlight key terms.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Chapter 4. Animal, Vegetable, or Mineral? WHY USERS LIKE MINDLESS CHOICES
&lt;/h3&gt;

&lt;p&gt;It doesn’t matter how many times I have to click, as long as each click is a mindless, unambiguous. But over time I’ve come to think that what really counts is not the number of clicks it takes me to get to what I want (although there are limits), but rather how hard each click is — the amount of thought required and the amount of uncertainty about whether I’m making the right choice.&lt;/p&gt;

&lt;h3&gt;
  
  
  Some assistance may be required
&lt;/h3&gt;

&lt;p&gt;This guidance works best when it’s&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Brief: The smallest amount of information that will help me&lt;/li&gt;
&lt;li&gt;Timely: Placed so I encounter it exactly when I need it&lt;/li&gt;
&lt;li&gt;Unavoidable: Formatted in a way that ensures that I’ll notice it&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Chapter 5. Omit needless words
&lt;/h3&gt;

&lt;p&gt;Get rid of half the words on each page, then get rid of half of what’s left.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Happy talk must die: It’s the introductory text that’s supposed to welcome us to the site and tell us how great it is or to tell us what we’re about to see in the section we’ve just entered. Happy talk is like small talk — content-free, basically just a way to be sociable. But most Web users don’t have time for small talk; they want to get right to the point. You can — and should — eliminate as much happy talk as possible.&lt;/li&gt;
&lt;li&gt;Instructions must die: Your objective should always be to eliminate instructions entirely by making everything self-explanatory, or as close to it as possible.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Chapter 6. Street signs and Breadcrumbs
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Web Navigation 101
&lt;/h3&gt;

&lt;p&gt;In many ways, you go through the same process when you enter a Web site.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You’re usually trying to find something.&lt;/li&gt;
&lt;li&gt;You decide whether to ask first or browse first. The difference is that on a Web site there’s no one standing around who can tell you where things are. The Web equivalent of asking directions is searching — typing a description of what you’re looking for in a search box and getting back a list of links to places.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Some people (Jakob Nielsen calls them “search-dominant” users) will almost always look for a search box as soon as they enter a site. Other people (Nielsen’s “link-dominant” users) will almost always browse first, searching only when they’ve run out of likely links to click or when they have gotten sufficiently frustrated by the site.&lt;/p&gt;

&lt;p&gt;Web experience is missing many of the cues we’ve relied on all our lives to negotiate spaces. Consider these oddities of Web space:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No sense of scale.&lt;/li&gt;
&lt;li&gt;No sense of direction.&lt;/li&gt;
&lt;li&gt;No sense of location.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This lack of physicality is both good and bad. On the plus side, the sense of weightlessness can be exhilarating and partly explains why it’s so easy to lose track of time on the Web — the same as when we’re “lost” in a good book.&lt;br&gt;
On the negative side, If you look up navigation in a dictionary, it’s about doing two things: getting from one place to another, and figuring out where you are.&lt;/p&gt;

&lt;p&gt;Two of the purposes of navigation are fairly obvious: to help us find whatever it is we’re looking for and to tell us where we are.&lt;/p&gt;

&lt;h3&gt;
  
  
  Persistent navigation
&lt;/h3&gt;

&lt;p&gt;Just having the navigation appear in the same place on every page with a consistent look gives you instant confirmation that you’re still in the same site.&lt;/p&gt;

&lt;p&gt;Persistent navigation should include the four elements you most need to have on hand at all times:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://cdn-images-1.medium.com/max/1600/0*zUS8soZCpJZIyemE.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://cdn-images-1.medium.com/max/1600/0*zUS8soZCpJZIyemE.jpg" alt="img"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;On pages where a form needs to be filled in, the persistent navigation can sometimes be an unnecessary distraction.&lt;/p&gt;

&lt;p&gt;One of the ways navigation can counteract the Web’s inherent “lost in space” feeling is by showing&lt;br&gt;
me where I am in the scheme of things.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pages
&lt;/h3&gt;

&lt;p&gt;There are four things you need to know about page names:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Every page needs a name. Just as every corner should have a street sign, every page should have a name.&lt;/li&gt;
&lt;li&gt;The name needs to be in the right place. In the visual hierarchy of the page, the page name should appear to be framing the content that is unique to this page&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://cdn-images-1.medium.com/max/1600/0*Amh3XHnr6ydl0kxg.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://cdn-images-1.medium.com/max/1600/0*Amh3XHnr6ydl0kxg.jpg" alt="img"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The name needs to be prominent.&lt;/li&gt;
&lt;li&gt;The name needs to match what I clicked.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Breadcrumbs
&lt;/h3&gt;

&lt;p&gt;Like “You are here” indicators, Breadcrumbs show you where you are. They’re called Breadcrumbs because they’re reminiscent of the trail of crumbs Hansel dropped in the woods so he and Gretel could find their way back home.&lt;/p&gt;

&lt;p&gt;Breadcrumbs show you the path from the Home page to where you are and make it easy to move back up to higher levels in the hierarchy of a site.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Put them at the top.&lt;/li&gt;
&lt;li&gt;Use &amp;gt; between levels.&lt;/li&gt;
&lt;li&gt;Boldface the last item.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Tabs
&lt;/h3&gt;

&lt;p&gt;Tabs are one of the very few cases where using a physical metaphor in a user interface actually works. Here’s why I like them:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;They’re self-evident.&lt;/li&gt;
&lt;li&gt;They’re hard to miss.&lt;/li&gt;
&lt;li&gt;They’re slick.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://cdn-images-1.medium.com/max/1600/0*aRgdYzr39kv2rfL7.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://cdn-images-1.medium.com/max/1600/0*aRgdYzr39kv2rfL7.jpg" alt="img"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If the page is well designed, when your vision clears you should be able to answer these questions without hesitation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What site is this? (Site ID)&lt;/li&gt;
&lt;li&gt;What page am I on? (Page name)&lt;/li&gt;
&lt;li&gt;What are the major sections of this site? (Sections)&lt;/li&gt;
&lt;li&gt;What are my options at this level? (Local navigation)&lt;/li&gt;
&lt;li&gt;Where am I in the scheme of things? (“You are here” indicators)&lt;/li&gt;
&lt;li&gt;How can I search?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here’s how you perform the trunk test:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Step 1: Choose a page anywhere in the site at random, and print it.&lt;/li&gt;
&lt;li&gt;Step 2: Hold it at arm’s length or squint so you can’t really study it closely.&lt;/li&gt;
&lt;li&gt;Step 3: As quickly as possible, try to find and circle each of these items:&lt;/li&gt;
&lt;li&gt;Site ID&lt;/li&gt;
&lt;li&gt;Page name&lt;/li&gt;
&lt;li&gt;Sections (Primary navigation)&lt;/li&gt;
&lt;li&gt;Local navigation&lt;/li&gt;
&lt;li&gt;“You are here” indicator(s)&lt;/li&gt;
&lt;li&gt;Search&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Chapter 7. The Big Bang Theory of Web Design
&lt;/h3&gt;

&lt;p&gt;THE IMPORTANCE OFGETTING PEOPLE OFFON THE RIGHT FOOT.&lt;/p&gt;

&lt;p&gt;As quickly and clearly as possible, the Home page needs to answer the four questions I have in my&lt;br&gt;
head when I enter a new site for the first time:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://cdn-images-1.medium.com/max/1600/0*RtuAPy34D2M_vG4r.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://cdn-images-1.medium.com/max/1600/0*RtuAPy34D2M_vG4r.jpg" alt="img"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is what I call the Big Bang Theory of Web Design. Like the Big Bang Theory, it’s based on the idea that the first few seconds you spend on a new Web site or Web page are critical.&lt;/p&gt;

&lt;p&gt;Everything on the Home page can contribute to our understanding of what the site is. But there are&lt;br&gt;
three important places on the page where we expect to find explicit statements of what the site is&lt;br&gt;
about.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The tag line&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One of the most valuable bits of real estate is the space right next to the Site ID. When we see a phrase that’s visually connected to the ID, we know it’s meant to be a tagline, and so we read it as a description of the whole site. We’ll look at taglines in detail in the next section.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://cdn-images-1.medium.com/max/1600/0*krNSoJkpTNopPptH.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://cdn-images-1.medium.com/max/1600/0*krNSoJkpTNopPptH.jpg" alt="img"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Welcome blurb.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The Welcome blurb is a terse description of the site, displayed in a&lt;br&gt;
prominent block on the Home page, usually at the top left or center of the content space so it’s the first thing that catches your eye.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://cdn-images-1.medium.com/max/1600/0*hWVW8qZEdlFjK8lH.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://cdn-images-1.medium.com/max/1600/0*hWVW8qZEdlFjK8lH.jpg" alt="img"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The “Learn more.”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Innovative products and business models tend to require a fair amount of&lt;br&gt;
explanation, often more than most people have the patience for. But people have become accustomed to watching short videos on their computers and mobile devices. As a result, people have now come to expect a short explanatory video on most sites and are often willing to watch them.&lt;/p&gt;

&lt;h3&gt;
  
  
  Chapter 8. “The Farmer and the Cowman Should Be Friends” | 论内部协作
&lt;/h3&gt;

&lt;p&gt;Left to their own devices, Web teams aren’t notoriously successful at making decisions about usability questions. Most teams end up spending a lot of precious time rehashing the same issues over and over.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://cdn-images-1.medium.com/max/1600/0*J8ZRDPuvYTHt7WxF.png" class="article-body-image-wrapper"&gt;&lt;img src="https://cdn-images-1.medium.com/max/1600/0*J8ZRDPuvYTHt7WxF.png" alt="img"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://cdn-images-1.medium.com/max/1600/0*GKrwwUCzRt09TWIO.png" class="article-body-image-wrapper"&gt;&lt;img src="https://cdn-images-1.medium.com/max/1600/0*GKrwwUCzRt09TWIO.png" alt="img"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The point is, it’s not productive to ask questions like “Do most people like pull-down menus?” The right kind of question to ask is “Does this pull-down, with these items and this wording in this context on this page create a good experience for most people who are likely to use this site?”&lt;/p&gt;

&lt;p&gt;And there’s really only one way to answer that kind of question: testing. You have to use the collective skill, experience, creativity, and common sense of the team to build some version of the thing (even a crude version), then watch some people carefully as they try to figure out what it is and&lt;br&gt;
how to use it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Chapter 9. Usability testing on 10 cents a day
&lt;/h3&gt;

&lt;p&gt;Usability testing has been around for a long time, and the basic idea is pretty simple: If you want to know whether something is easy enough to use, watch some people while they try to use it and note where they run into problems. Testing one user is 100 percent better than testing none. Testing one user early in the project is better than testing 50 near the end.&lt;/p&gt;

&lt;h3&gt;
  
  
  Repeat after me: Focus groups are not usability tests
&lt;/h3&gt;

&lt;p&gt;Here’s the difference in a nutshell:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In a focus group, a small group of people (usually 5 to 10) sit around a table and talk about things, like their opinions about products, their past experiences with them, or their reactions to new concepts. Focus groups are good for quickly getting a sampling of users’ feelings and opinions about things.&lt;/li&gt;
&lt;li&gt;Usability tests are about watching one person at a time try to use something (whether it’s a Web site, a prototype, or some sketches of a new design) to do typical tasks so you can detect and fix the things that confuse or frustrate them.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The main difference is that in usability tests, you watch people actually use things, instead of just&lt;br&gt;
listening to them talk about them.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do-it-yourself usability testing
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://cdn-images-1.medium.com/max/1600/0*ZuahCtU-SCofieCu.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://cdn-images-1.medium.com/max/1600/0*ZuahCtU-SCofieCu.jpg" alt="img"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The purpose of this kind of testing isn’t to prove anything. You don’t need to find all of the problems. In fact, you’ll never find all of the problems in anything you test. And it wouldn’t help if you did, because of this fact:&lt;br&gt;
You can find more problems in half a day than you can fix in a month.&lt;/p&gt;

&lt;p&gt;A typical one-hour test would be broken down something like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Welcome (4 minutes). You begin by explaining how the test will work so the participant knows what to expect.&lt;/li&gt;
&lt;li&gt;The questions (2 minutes). Next you ask the participant a few questions about themselves. This helps put them at ease and gives you an idea of how computer-savvy and Web-savvy they are.&lt;/li&gt;
&lt;li&gt;The Home page tour (3 minutes). Then you open the Home page of the site you’re testing and ask the participant to look around and tell you what they make of it. This will give you an idea
of how easy it is to understand your Home page and how much the participant already knows your domain.&lt;/li&gt;
&lt;li&gt;The tasks (35 minutes). This is the heart of the test: watching the participant try to perform a series of tasks (or in some cases, just one long task). Again, your job is to make sure the participant stays focused on the tasks and keeps thinking aloud.
If the participant stops saying what they’re thinking, prompt them by saying — wait for it — “What are you thinking?” (For variety, you can also say things like “What are you looking at?” and “What are you doing now?”)
During this part of the test, it’s crucial that you let them work on their own and don’t do or say anything to influence them. Don’t ask them leading questions, and don’t give them any clues or assistance unless they’re hopelessly stuck or extremely frustrated. If they ask for help, just say something like “What would you do if I wasn’t here?”&lt;/li&gt;
&lt;li&gt;Probing (5 minutes). After the tasks, you can ask the participant questions about anything that happened during the test and any questions that the people in the observation room would like
you to ask.&lt;/li&gt;
&lt;li&gt;Wrapping up (5 minutes). Finally, you thank them for their help, pay them, and show them to the door.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  The debriefing: Deciding what to fix
&lt;/h3&gt;

&lt;p&gt;Here are some of the types of problems you’re going to see most often:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Users are unclear on the concept.&lt;/li&gt;
&lt;li&gt;The words they’re looking for aren’t there.&lt;/li&gt;
&lt;li&gt;There’s too much going on.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;FOCUS RUTHLESSLY ON FIXING THE MOST SERIOUS PROBLEMS FIRST&lt;/p&gt;

&lt;h3&gt;
  
  
  Chapter 10. Mobile: It’s not just a city in Alabama anymore
&lt;/h3&gt;

&lt;p&gt;So, what’s different about usability when you’re designing for use on a mobile device?In one sense, the answer is: Not much. The basic principles are still the same. If anything, people are&lt;br&gt;
moving faster and reading even less on small screens. Most of the challenges in creating good mobile usability boil down to making good tradeoffs.&lt;/p&gt;

&lt;p&gt;Which parts do you leave out? One approach was Mobile First. Instead of designing a full-featured (and perhaps bloated) version of your Web site first and then paring it down to create the mobile version, you design the mobile version first based on the features and content that are most important to your users. Then you add on more features and content to create the desktop/full version&lt;/p&gt;

&lt;h3&gt;
  
  
  Breeding chameleons
&lt;/h3&gt;

&lt;p&gt;If there are two things I can tell you about scalable design (a/k/a dynamic layout, fluid design, adaptive design, and responsive design), they’re these:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It tends to be a lot of work.&lt;/li&gt;
&lt;li&gt;It’s very hard to do it well.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In the meantime, here are three suggestions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Allow zooming.&lt;/li&gt;
&lt;li&gt;Don’t leave me standing at the front door. You tap on a link in an email or a social media site and instead of taking you to the article in question it takes you to the mobile Home page, leaving you to hunt for the thing yourself.&lt;/li&gt;
&lt;li&gt;Always provide a link to the “full” Web site.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Be careful that your responsive design solutions aren’t loading up pages with huge amounts of code and images that are larger than necessary for the user’s screen.&lt;/p&gt;

&lt;h3&gt;
  
  
  Don’t hide your affordances under a bushel
&lt;/h3&gt;

&lt;p&gt;Affordances are visual clues in an object’s design that suggest how we can use it.&lt;/p&gt;

&lt;p&gt;This is not to say that all affordances need to hit you in the face. They just have to be visible enough&lt;br&gt;
that people can notice the ones they need to get their tasks done.&lt;/p&gt;

&lt;p&gt;Flat design has a tendency to take along with it not just the potentially distracting decoration but also the useful information that the more textured elements were conveying.&lt;/p&gt;

&lt;h3&gt;
  
  
  Delightful &amp;amp; Learnable
&lt;/h3&gt;

&lt;p&gt;Delightful apps usually come from marrying an idea about something people would really enjoy being able to do, but don’t imagine is possible, with a bright idea about how to use some new technology to accomplish it.&lt;/p&gt;

&lt;p&gt;One of the biggest problems with apps is that if they have more than a few features they may not be very easy to learn.&lt;/p&gt;

&lt;p&gt;That’s not to say that no one in the real world learns how to use it. It gets great reviews and is&lt;br&gt;
consistently a best seller. But I have to wonder how many people who bought it have never mastered&lt;br&gt;
it, or how many more sales they could make if it were easier to learn.&lt;/p&gt;

&lt;p&gt;There’s one more attribute that’s important: memorability. Once you’ve figured out how to use an app,&lt;br&gt;
will you remember how to use it the next time you try or will you have to start over again from&lt;br&gt;
scratch?&lt;/p&gt;

&lt;h3&gt;
  
  
  Usability testing on mobile devices
&lt;/h3&gt;

&lt;p&gt;Here are some of the issues you have to deal with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Do you need to let the participants use their own devices?&lt;/li&gt;
&lt;li&gt;Do they need to hold the device naturally, or can it be sitting on a table or propped up on a stand?&lt;/li&gt;
&lt;li&gt;What do the observers need to see (e.g., just the screen, or both the screen and the participant’s fingers so they can see their gestures)? And how do you display it in the observation room?&lt;/li&gt;
&lt;li&gt;How do you create a recording?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Until better technology-based solutions come along, here’s what I’d lean toward:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use a camera pointed at the screen instead of mirroring.&lt;/li&gt;
&lt;li&gt;Attach the camera to the device so the user can hold it naturally.&lt;/li&gt;
&lt;li&gt;Don’t bother with a camera pointed at the participant.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://cdn-images-1.medium.com/max/1600/0*h5SxWymWMWZpyJLr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://cdn-images-1.medium.com/max/1600/0*h5SxWymWMWZpyJLr.png" alt="img"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Chapter 11. Usability as common courtesy(绅士)
&lt;/h3&gt;

&lt;p&gt;Here are a few of the things that tend to make users feel like the people publishing a site don’t have their best interests at heart(避免做以下的事):&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Hiding information that I want. The most common things to hide are customer support phone numbers, shipping rates, and prices.&lt;/li&gt;
&lt;li&gt;Punishing me for not doing things your way. I should never have to think about formatting data: whether or not to put dashes in my Social Security number, spaces in my credit card number, or parentheses in my phone number.&lt;/li&gt;
&lt;li&gt;Asking me for information you don’t really need.&lt;/li&gt;
&lt;li&gt;Shucking and jiving me. We’re always on the lookout for faux sincerity, and disingenuous attempts to convince me that you care about me can be particularly annoying.&lt;/li&gt;
&lt;li&gt;Putting sizzle in my way. Having to wade through pages bloated with feel-good marketing photos makes it clear that you don’t understand — or care — that I’m in a hurry.&lt;/li&gt;
&lt;li&gt;Your site looks amateurish. You can lose goodwill if your site looks sloppy, disorganized, or unprofessional, like no effort has gone into making it presentable.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The good news is that even if you make mistakes, it’s possible to restore my goodwill by doing things that convince me that you do have my interests at heart. Most of these are just the flip side of the other list:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Know the main things that people want to do on your site and make them obvious and
eas&lt;/li&gt;
&lt;li&gt;Tell me what I want to know.&lt;/li&gt;
&lt;li&gt;Save me steps wherever you can.&lt;/li&gt;
&lt;/ul&gt;


</description>
      <category>uxweb</category>
    </item>
    <item>
      <title>Awesome Docker Links</title>
      <dc:creator>王下邀月熊(Chevalier)</dc:creator>
      <pubDate>Tue, 18 Sep 2018 15:33:16 +0000</pubDate>
      <link>https://dev.to/wxyyxc1992/awesome-docker-links-53g2</link>
      <guid>https://dev.to/wxyyxc1992/awesome-docker-links-53g2</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/wxyyxc1992/Awesome-Links"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rjve3lCp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/5803001/38079637-ff0abcf0-3371-11e8-9b76-ad651620afc7.jpg" alt="返回目录"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Docker Links | Docker 资料索引
&lt;/h1&gt;

&lt;p&gt;&lt;a href="./https://parg.co/o90"&gt;Docker Links&lt;/a&gt; aggregates curated popular links for studing Docker and the Ecosystem. More reference about ITCS can turn to &lt;a href="https://github.com/wxyyxc1992/Awesome-Links"&gt;Awesome Links : Guide to Galaxy&lt;/a&gt;, which collects valuable, popular and up-to-date links for CS, including Programming Language, Software Engineering, Server Side Application, Infrastructure, InfoSecurity, Industrial Application, DataScienceAI, Frontend Technology(iOS, Android, RN, Electron), etc.&lt;/p&gt;

&lt;h1&gt;
  
  
  Overview
&lt;/h1&gt;

&lt;h2&gt;
  
  
  CheatSheet
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/eon01/DockerCheatSheet"&gt;2017-DockerCheatSheet&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/wsargent/docker-cheat-sheet#images"&gt;docker-cheat-sheet&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://gist.github.com/botchagalupe/53695f50eebbd3eaa9aa"&gt;Docker Tutorial - Cheatsheet&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Resource
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Book
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://dockerpool.com/static/books/docker_practice/introduction/README.html"&gt;Docker 实战&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/xianlubird/mydocker"&gt;2016-mydocker #Book#&lt;/a&gt;: 本书在详细分析 Docker 所依赖的技术栈的基础上,一步一步地通过代码实例,让读者可以自己循 序渐进地用 Go 语言构建出一个容器的引擎。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.phei.com.cn/module/goods/wssd_content.jsp?bookid=50014"&gt;2017-自己动手写 Docker #Book#&lt;/a&gt;：通过讲解 Docker 使用到的各种底层技术，例如 Namespace、Cgroups 等来自己一步步动手完成一个简单版本的 Docker。在自己动手的过程中，从而对 Docker 这个技术有一个整体、细致的了解。能够明白 Docker 的原理以及结构，从而加深对目前炽手可热的 Docker 技术的理解，方便解决工作中使用 Docker 遇到的各种问题。&lt;a href="https://yq.aliyun.com/articles/64928"&gt;系列书摘&lt;/a&gt;。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/bjC"&gt;2017-The DevOps 2.1 Toolkit: Docker Swarm #Book#&lt;/a&gt;: Viktor Farcic's latest book, The DevOps 2.1 Toolkit: Docker Swarm, shows you how to successfully integrate Docker Swarm into your DevOps toolset.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/UrV"&gt;2017-Continuous Delivery with Docker and Jenkins #Book#&lt;/a&gt;: Unleash the combination of Docker and Jenkins in order to enhance the DevOps workflow.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://thenewstack.io/ebooks/"&gt;2017-The New Stack-The Docker and Container Ecosystem #Book#&lt;/a&gt;: The container ecosystem is constantly changing and impacting the developer landscape. Our five ebook series on the container ecosystem covers everything from application development to orchestration, networking, security, data storage, and monitoring.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tutorial
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/UVt"&gt;Docker + Kubernetes&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/UvP"&gt;2018-A crash course on Docker — Learn to swim with the big fish&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://docker-curriculum.com/"&gt;2018-Docker for Beginners&lt;/a&gt;: Learn to build and deploy your distributed applications easily to the cloud with Docker.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/prakhar1989/docker-curriculum"&gt;2018-docker-curriculum&lt;/a&gt;: A comprehensive tutorial on getting started with Docker!&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Docker Configuration Links
&lt;/h1&gt;

&lt;h1&gt;
  
  
  System
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://cizixs.com/2017/08/04/docker-resources-limit"&gt;2018-使用 docker 对容器资源进行限制&lt;/a&gt;: 这篇文章就介绍如何使用 docker 来限制 CPU、内存和 IO，以及对应的 cgroups 文件。&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Docker Storage
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/Ur8"&gt;2016-Docker : Storage Patterns for Persistence&lt;/a&gt;: We’ll go over several variants when it comes down to data persistence.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://thenewstack.io/methods-dealing-container-storage/"&gt;2017-Managing Persistence for Docker Containers&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://medium.com/@gchudnov/copying-data-between-docker-containers-26890935da3f"&gt;copying-data-between-docker-containers&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://container42.com/2014/11/03/docker-indepth-volumes/"&gt;docker-indepth-volumes&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://dockone.io/article/128"&gt;深入理解 Docker Volume&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Network
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://dockone.io/article/1255"&gt;Docker 网络部分执行流分析(Libnetwork 源码解读)&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.container42.com/2015/10/30/docker-networking-reborn/"&gt;Docker Networking: Reborn&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://blog.nigelpoulton.com/demystifying-docker-overlay-networking/"&gt;2018-Demystifying Docker overlay networking&lt;/a&gt;: We’ll explain the theory behind how it works.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Dockerfile
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/UyX"&gt;2018-An Exhaustive Guide to Writing Dockerfiles for Node.js Web Apps&lt;/a&gt;: This post is filled with examples ranging from a simple Dockerfile to multistage production builds for Node.js web apps.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.jianshu.com/p/a9d08ba3d979?from=groupmessage&amp;amp;isappinstalled=0"&gt;高效编写 Dockerfile 的几条准则&lt;/a&gt;: 写 Dockerfile 也像写代码一样，一份精心设计、Clean Code 的 Dockerfile 能在提高可读性的同时也大大提升 Docker 的使用效率。&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Registry
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/fzuleta/private-docker-registry-ssl"&gt;private-docker-registry-ssl&lt;/a&gt;: Private Docker registry protected with Let's Encrypt SSL&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Application
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://codefresh.io/blog/node_docker_multistage/"&gt;2017-Create lean Node.js image with Docker multi-stage build&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://hackernoon.com/3-tricks-for-mastering-docker-with-python-99876412348d?source=reading_list---------6-1---------"&gt;3 tricks for mastering Docker with Python&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Engineering Practices
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Security
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.sqreen.io/resources/docker-security-best-practices"&gt;Docker Security Best Practices&lt;/a&gt;: This Docker Security Cheat Sheet will walk you through five actions to protect your Docker containers and infrastructure. Improve your Docker security today.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/d6b"&gt;Docker Security CheatSheet&lt;/a&gt;: The following tips should help you to secure a container based system.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Optimization
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/beS"&gt;2017-Tips to Reduce Docker Image Sizes&lt;/a&gt;: Docker images can easily get to 2–3GB. Here’s some tips that can help reduce their sizes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://dockone.io/article/132"&gt;Dockerfile 最佳实践&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://dockone.io/article/255"&gt;Dockerfile 优化浅谈&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Docker Swarm Links
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://blog.csdn.net/wangtaoking1/article/details/46731913"&gt;Swarm 介绍&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.tuicool.com/articles/vuM7zyy"&gt;Swarm、Fleet 、 Kubernetes、Mesos - 编排工具的对比分析&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://technologyconversations.com/2015/11/04/docker-clustering-tools-compared-kubernetes-vs-docker-swarm/"&gt;Docker Clustering Tools Compared: Kubernetes vs Docker Swarm&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://blog.nigelpoulton.com/demystifying-docker-overlay-networking/"&gt;2016-Demystifying Docker overlay networking&lt;/a&gt;: we’ll build and test a Docker overlay network in swarm mode; We’ll explain the theory behind how it works.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://embaby.com/blog/using-glusterfs-docker-swarm-cluster/"&gt;2017-Using GlusterFS with Docker swarm cluster&lt;/a&gt;: In this blog I will create a 3 node Docker swarm cluster and use GlusterFS to share volume storage across Docker swarm nodes.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Docker Internals Links | Docker 内部原理资料索引
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://coolshell.cn/articles/17010.html"&gt;2015-Docker 基础技术 #Series#&lt;/a&gt;: 我会用几篇文章来把这些技术给大家做个介绍，希望通过这些文章大家可以自己打造一个山寨版的 docker。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/rancher/docker-from-scratch"&gt;2015-Tiny Docker in Docker #Project#&lt;/a&gt;: Docker-in-Docker image based off of the empty image scratch. Only the bare minimum required files are included to make Docker run. This image weighs in around 25MB expanded.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://docker-saigon.github.io/post/Docker-Internals/"&gt;2016-Docker Internals&lt;/a&gt;: A Deep Dive Into Docker For Engineers Interested In The Gritty Details.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/Fewbytes/rubber-docker"&gt;2017-rubber-docker #Project#&lt;/a&gt;: A workshop on Linux containers: Rebuild Docker from Scratch&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/UvM"&gt;2018-手把手教你写 Docker&lt;/a&gt;: 模拟 Docker 实现一个简单的容器不到 200 行代码(包括空行、注释、异常处理)。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/lIW"&gt;记一次 docker 问题定位&lt;/a&gt;: 性能测试发现业务进程运行在容器中比业务进程运行在宿主机上吞吐量下降了 100 倍，这让周一显得更加阴暗。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.jianshu.com/p/7a1ce51a0eba"&gt;2018-Docker 底层技术&lt;/a&gt;: Docker 容器技术已经发展了好些年，在很多项目都有应用，线上运行也很稳定。整理了部分 Docker 的学习笔记以及新版本特性，对 Docker 感兴趣的同学可以看看，之前整理过的 Linux namespace 可以见之前的博文。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://segmentfault.com/a/1190000002766882"&gt;深入 Docker：容器和镜像&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  cgroup
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://cizixs.com/2017/08/25/linux-cgroup"&gt;2017-docker 容器基础技术：linux cgroup 简介&lt;/a&gt;: Linux cgroups 的全称是 Linux Control Groups，它是 Linux 内核的特性，主要作用是限制、记录和隔离进程组（process groups）使用的物理资源（cpu、memory、IO 等）。&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Network
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://blog.csdn.net/xuguokun1986/article/details/54411394"&gt;2017-理解 Docker 容器网络之 Linux Network Namespace&lt;/a&gt;: 在本文中我们将尝试理解 Linux Network Namespace 及相关 Linux 内核网络设备的概念，并手工模拟 Docker 容器网络模型的部分实现，包括单机容器网络中的容器与主机连通、容器。&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  Docker OpenSource Links | Docker 开源框架与工具索引
&lt;/h1&gt;

&lt;h1&gt;
  
  
  Tool
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/bcicen/ctop"&gt;ctop #Project#&lt;/a&gt;: Top-like interface for container metrics&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/GoogleCloudPlatform/container-diff"&gt;container-diff #Project#&lt;/a&gt;: container-diff is a tool for analyzing and comparing container images. container-diff can examine images along several different criteria&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Storage | 存储
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/ClusterHQ/flocker"&gt;2015-Flocker #Project#&lt;/a&gt;: Flocker is an open-source Container Data Volume Manager for your Dockerized applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/thecodeteam/rexray"&gt;2017-REX-Ray #Project#&lt;/a&gt;: REX-Ray is a container storage orchestration engine enabling persistence for cloud native workloads&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/gluster/glusterfs"&gt;GlusterFS #Project#&lt;/a&gt;: Gluster is a software defined distributed storage that can scale to several petabytes. It provides interfaces for object, block and file storage.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Registry
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/alibaba/Dragonfly"&gt;Dragonfly #Project#&lt;/a&gt;: Dragonfly is an intelligent P2P based file distribution system. It aims to resolve issues related to low-efficiency, low-success rate and waste of network bandwidth in file transferring process.&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Awesome CS Collections: Curated links of awesome sites &amp; collections &amp; resources</title>
      <dc:creator>王下邀月熊(Chevalier)</dc:creator>
      <pubDate>Sun, 16 Sep 2018 07:15:07 +0000</pubDate>
      <link>https://dev.to/wxyyxc1992/awesome-cs-collections-curated-links-of-awesome-sites--collections--resources-jin</link>
      <guid>https://dev.to/wxyyxc1992/awesome-cs-collections-curated-links-of-awesome-sites--collections--resources-jin</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/wxyyxc1992/Awesome-Links"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rjve3lCp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://user-images.githubusercontent.com/5803001/38079637-ff0abcf0-3371-11e8-9b76-ad651620afc7.jpg" alt="返回目录"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://parg.co/ddq"&gt;Awesome CS Collections&lt;/a&gt; is collections of collection, including Programming Language, Software Engineering, Web, Server Side Application, Frontend, etc. Every link in this collection may containing massive domains.&lt;/p&gt;

&lt;p&gt;Awesome CS Collections is subject to &lt;a href="https://github.com/wxyyxc1992/Awesome-Links/"&gt;Awesome Links&lt;/a&gt;, which is also part of &lt;a href="https://github.com/wxyyxc1992/Awesome-Coder"&gt;Awesome Coder&lt;/a&gt;. You may also like &lt;a href="https://parg.co/ddS"&gt;Awesome-DataSet-Collections&lt;/a&gt;, &lt;a href="https://parg.co/ddc"&gt;Awesome Tools&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;Awesome CS Collections 是对于资源集锦的集锦，希望能够帮您快速找到合适的学习指引。&lt;/p&gt;

&lt;h1&gt;
  
  
  Sites: Blog &amp;amp; News &amp;amp; Forum | 博客、资讯与论坛
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Content Aggregation Portal: &lt;a href="https://news.ycombinator.com/news"&gt;HackerNews&lt;/a&gt;, &lt;a href="https://www.reddit.com/"&gt;Reddit&lt;/a&gt;, &lt;a href="//plus.google.com"&gt;Google+&lt;/a&gt;, &lt;a href="//tuicool.com"&gt;推酷&lt;/a&gt;, &lt;a href="https://www.techmeme.com/"&gt;TechMeme&lt;/a&gt;, &lt;a href="https://www.v2ex.com/"&gt;V2EX&lt;/a&gt;, &lt;a href="//dzone.com"&gt;DZone&lt;/a&gt;, &lt;a href="https://voat.co/"&gt;Voat&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Online Books: &lt;a href="https://www.gitbook.com/"&gt;Gitbook&lt;/a&gt;, &lt;a href="https://www.safaribooksonline.com/"&gt;SafariBooksOnline&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Blogs: &lt;a href="https://medium.com"&gt;Medium&lt;/a&gt;, &lt;a href="https://toutiao.io"&gt;开发者头条&lt;/a&gt;, &lt;a href="https://gold.xitu.io/"&gt;掘金&lt;/a&gt;, &lt;a href="http://www.csdn.net/"&gt;CSDN&lt;/a&gt;, &lt;a href="https://guide.freecodecamp.org/agile"&gt;freeCodeCamp Guide&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Q &amp;amp; A Community: &lt;a href="https://stackoverflow.com/"&gt;StackOverflow&lt;/a&gt;, &lt;a href="https://segmentfault.com/"&gt;SegmentFault&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;OpenSource Community: &lt;a href="https://github.com/"&gt;Github&lt;/a&gt;, &lt;a href="https://git.oschina.net/"&gt;OSChina&lt;/a&gt;, &lt;a href="https://coding.net"&gt;coding.net&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Newsletter: &lt;a href="//mybridge.co"&gt;MyBridge&lt;/a&gt;, &lt;a href="//www.infoq.com/cn"&gt;InfoQ 架构师&lt;/a&gt;, &lt;a href=""&gt;CSDN 程序员杂志&lt;/a&gt;, &lt;a href="http://weekly.manong.io/"&gt;码农周刊&lt;/a&gt;, &lt;a href="https://parg.co/UnB"&gt;高可用架构系列&lt;/a&gt;, &lt;a href="https://assets.thoughtworks.com/assets/technology-radar-apr-2016-cn.pdf"&gt;ThoughtWorks Technology Radar&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Online Course: &lt;a href="https://www.pluralsight.com/"&gt;Pluralsight&lt;/a&gt;, &lt;a href="https://www.coursera.org/"&gt;Coursera&lt;/a&gt;, &lt;a href="https://www.edx.org/"&gt;edX&lt;/a&gt;, &lt;a href="https://cn.udacity.com/"&gt;Udacity&lt;/a&gt;, &lt;a href="https://ocw.mit.edu/index.htm"&gt;MIT 公开课&lt;/a&gt;, &lt;a href="http://mooc.guokr.com/course/"&gt;MOOC 学院&lt;/a&gt;, &lt;a href="http://www.imooc.com/"&gt;慕课网&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Online Judging: &lt;a href="https://leetcode.com/"&gt;LeetCode&lt;/a&gt;, &lt;a href="https://projecteuler.net/"&gt;Project Euler&lt;/a&gt;, &lt;a href="https://www.codingame.com/start"&gt;CodingGame&lt;/a&gt;, &lt;a href="https://www.kaggle.com/"&gt;Kaggle&lt;/a&gt;, &lt;a href="https://www.topcoder.com/"&gt;Topcoder&lt;/a&gt;, 牛客网, &lt;a href="https://www.hackerrank.com/"&gt;HackerRank&lt;/a&gt;, &lt;a href="https://jsfight.club/"&gt;JS Fight&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Giants: &lt;a href="https://msdn.microsoft.com/zh-cn"&gt;MSDN&lt;/a&gt;, &lt;a href="https://developers.google.cn/"&gt;Google Developers&lt;/a&gt;, &lt;a href="https://yq.aliyun.com/"&gt;云栖社区&lt;/a&gt;, &lt;a href="http://www.ibm.com/developerworks/"&gt;IBM DeveloperWorks&lt;/a&gt;, &lt;a href="https://research.fb.com/ai-helps-facebooks-internet-drones-find-where-the-people-are/"&gt;Facebook AI Research &lt;/a&gt;, &lt;a href="https://code.facebook.com/posts/"&gt;Facebook&lt;/a&gt;, &lt;a href="http://nerds.airbnb.com/"&gt;Airbnb&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Universe | 通用
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/learn-anything/learn-anything"&gt;Learn Anything #Project#&lt;/a&gt;: Learn Anything is an Open Source Website built by community to Learn Anything with Interactive Maps.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/ossu/computer-science"&gt;Computer Science: Open Source Society University&lt;/a&gt;: The OSSU curriculum is a complete education in computer science using online materials.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/LeCoupa/awesome-cheatsheets"&gt;2018-Awesome Cheatsheets&lt;/a&gt;: Useful cheatsheets with everything you should know in one single-file. 🚀&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/stanzhai/be-a-professional-programmer"&gt;2016-成为专业程序员路上用到的各种优秀资料、神器及框架&lt;/a&gt;: 成为一名专业程序员的道路上，需要坚持练习、学习与积累，技术方面既要有一定的广度，更要有自己的深度。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/EbookFoundation/free-programming-books"&gt;List of Free Learning Resources&lt;/a&gt;: This list was originally a clone of stackoverflow - List of Freely Available Programming Books with contributions from Karan Bhangui and George Stocker.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/rShetty/awesome-podcasts"&gt;Awesome Podcasts&lt;/a&gt;: Collection of awesome podcasts. Awesome list of Important Podcasts for software engineers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/danistefanovic/build-your-own-x#build-your-own-database"&gt;Build your own (insert technology here)&lt;/a&gt;: What I cannot create, I do not understand.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://devdocs.io/"&gt;devdocs&lt;/a&gt;: 这里集合了大量的在线的文档，同时 DevDocs 还支持离线浏览，主要是依靠 IndexDB 将数据存放在浏览器的本地缓存中。&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Interview | 面试
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/InterviewMap/InterviewMap"&gt;InterviewMap #Project#&lt;/a&gt;: uild the best interview map. The current content includes JS, network, browser related, performance optimization, security, framework, Git, data structure, algorithm, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/CyC2018/InterviewNotes"&gt;InterviewNotes&lt;/a&gt;: 计算机基础知识整理，持续更新中~&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/kdn251/interviews"&gt;2018-Interviews #Collection#&lt;/a&gt;: Everything you need to know to get the job.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/imhuay/Interview_Notes-Chinese"&gt;2018-Interview_Notes-Chinese #Collection#&lt;/a&gt;: 2018/2019/校招/春招/秋招/自然语言处理(NLP)/深度学习(Deep Learning)/机器学习(Machine Learning)/C/C++/Python/面试笔记&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Programming Language | 编程语言
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://exercism.io/"&gt;Exercism&lt;/a&gt;: Exercism gives you hundreds of practice problems in over 30 programming languages, and a place where you can get feedback on your solutions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/EbookFoundation/free-programming-books"&gt;Freely available programming books&lt;/a&gt;: List of Free Learning Resources&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://hackr.io/"&gt;Hackr&lt;/a&gt;: Find the Best Programming Courses &amp;amp; Tutorials&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/user/shiffman/about"&gt;The Coding Train&lt;/a&gt;: Subjects covered range from the basics of programming languages like JavaScript (with p5.js) and Java (with Processing) to generative algorithms like physics simulation, computer vision, and data visualization.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Software Engineering | 软件工程
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/jwasham/coding-interview-university"&gt;Coding Interview University&lt;/a&gt;: A complete computer science study plan to become a software engineer.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/alebcay/awesome-shell"&gt;awesome-shell&lt;/a&gt;: A curated list of awesome command-line frameworks, toolkits, guides and gizmos. Inspired by awesome-php.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Web
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/yangshun/front-end-interview-handbook"&gt;Front End Interview Handbook&lt;/a&gt;: Almost complete answers to "Front-end Job Interview Questions" which you can use to interview potential candidates, test yourself or completely ignore.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/andrew--r/frontend-case-studies"&gt;Frontend Case Studies&lt;/a&gt;: A curated list of technical talks and articles about real-world enterprise frontend development&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://blog.sessionstack.com/tagged/tutorial"&gt;How JavaScript works #Series#&lt;/a&gt;: the series dedicated to exploring JavaScript and its building components.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Server Side Application | 服务端应用程序
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/UXF"&gt;2016-Back-End Developer Interview Questions&lt;/a&gt;: A list of back-end related questions you can be inspired from to interview potential candidates, test yourself or completely ignore&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/binhnguyennus/awesome-scalability"&gt;2018-Awesome Scalability, Availability, and Stability Back-end Design Patterns&lt;/a&gt;: A curated list of selected readings to illustrate Scalability, Availability, and Stability Design Patterns in Back-end Development.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/xingshaocheng/architect-awesome"&gt;2018-后端架构师技术图谱&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Infrastructure | 基础架构
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://12factor.net/zh_cn/"&gt;The Twelve-Factor App&lt;/a&gt;: To raise awareness of some systemic problems we’ve seen in modern application development, to provide a shared vocabulary for discussing those problems, and to offer a set of broad conceptual solutions to those problems with accompanying terminology.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/donnemartin/system-design-primer"&gt;The System Design Primer&lt;/a&gt;: Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Frontend | 前端
&lt;/h1&gt;

&lt;h1&gt;
  
  
  DataScienceAI
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://projecteuler.net/about"&gt;Project Euler&lt;/a&gt;: Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve.&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Awesome Links of Books, Courses, Examples for AI, MachineLearning, DeepLearning and Tensorflow in 2018</title>
      <dc:creator>王下邀月熊(Chevalier)</dc:creator>
      <pubDate>Sun, 20 May 2018 15:44:40 +0000</pubDate>
      <link>https://dev.to/wxyyxc1992/awesome-links-of-books-courses-examples-for-ai-machinelearning-deeplearning-and-tensorflow-in-2018-1gi0</link>
      <guid>https://dev.to/wxyyxc1992/awesome-links-of-books-courses-examples-for-ai-machinelearning-deeplearning-and-tensorflow-in-2018-1gi0</guid>
      <description>&lt;p&gt;&lt;a href="https://github.com/wxyyxc1992/Awesome-Links" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fuser-images.githubusercontent.com%2F5803001%2F38079637-ff0abcf0-3371-11e8-9b76-ad651620afc7.jpg" alt="返回目录"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  DataScienceAI Book Links | 机器学习、深度学习与自然语言处理领域推荐的书籍列表
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://github.com/wxyyxc1992/Awesome-Links" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/a34cfbf37ba6848362bf2bee0f3915c2e38b1cc1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5052732d77656c636f6d652d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265" alt="PRs Welcome"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A curated list of Artificial Intelligence (AI) courses and books, aggerated with &lt;a href="https://github.com/wxyyxc1992/Awesome-Links/blob/master/DataScienceAI/DataScienceAI-Book-Links.md" rel="noopener noreferrer"&gt;DataScienceAI-Book-Links&lt;/a&gt; and &lt;a href="https://github.com/wxyyxc1992/Awesome-Links/blob/master/DataScienceAI/DataScienceAI-Course-Links.md" rel="noopener noreferrer"&gt;DataScienceAI-Course-Links&lt;/a&gt; from &lt;a href="https://github.com/wxyyxc1992/Awesome-Links" rel="noopener noreferrer"&gt;Awesome-Links&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Mathematics | 数学基础
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://book.douban.com/subject/3180810/" rel="noopener noreferrer"&gt;2008-统计学完全教程 #Book#&lt;/a&gt;：由美国当代著名统计学家 L·沃塞曼所著的《统计学元全教程》是一本几乎包含了统计学领域全部知识的优秀教材。本书除了介绍传统数理统计学的全部内容以外，还包含了 Bootstrap 方法(自助法)、独立性推断、因果推断、图模型、非参数回归、正交函数光滑法、分类、统计学理论及数据挖掘等统计学领域的新方法和技术。本书不但注重概率论与数理统计基本理论的阐述，同时还强调数据分析能力的培养。本书中含有大量的实例以帮助广大读者快速掌握使用 R 软件进行统计数据分析。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://stanford.edu/~boyd/cvxbook/bv_cvxbook.pdf" rel="noopener noreferrer"&gt;2009-Convex Optimization #Book#&lt;/a&gt;:This book is about convex optimization, a special class of mathematical optimization problems, which includes least-squares and linear programming problems. It is well known that least-squares and linear programming problems have a fairly complete theory, arise in a variety of applications, and can be solved numerically very efficiently. The basic point of this book is that the same can be said for the larger class of convex optimization problems.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://web.stanford.edu/~hastie/ElemStatLearn/" rel="noopener noreferrer"&gt;2009-The Elements of Statistical Learning: Data Mining, Inference, and Prediction-Second Edition&lt;/a&gt;: Hastie and Tibshirani cover a broad range of topics, from supervised learning (prediction) to unsupervised learning including neural networks, support vector machines, classification trees and boosting---the first comprehensive treatment of this topic in any book.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://read.pudn.com/downloads158/ebook/702714/Larry%20Wasserman_ALL%20OF%20Statistics.pdf" rel="noopener noreferrer"&gt;2010-All of Statistics: A Concise Course in Statistical Inference #Book#&lt;/a&gt;: The goal of this book is to provide a broad background in probability and statistics for students in statistics, Computer science (especially data mining and machine learning), mathematics, and related disciplines.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.amazon.cn/dp/B007TSFMTA" rel="noopener noreferrer"&gt;2012-李航-统计方法学 #Book#&lt;/a&gt;: 本书全面系统地介绍了统计学习的主要方法，特别是监督学习方法，包括感知机、k 近邻法、朴素贝叶斯法、决策树、逻辑斯谛回归与熵模型、支持向量机、提升方法、EM 算法、隐马尔可夫模型和条件随机场等。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://immersivemath.com/ila/index.html" rel="noopener noreferrer"&gt;2016-Immersive Linear Algebra #Book#&lt;/a&gt;: The World's First Linear Algeria Book with fully Interactive Figures.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.datasciencecentral.com/profiles/blogs/the-mathematics-of-machine-learning" rel="noopener noreferrer"&gt;2017-The Mathematics of Machine Learning #Book#&lt;/a&gt;: Machine Learning theory is a field that intersects statistical, probabilistic, computer science and algorithmic aspects arising from learning iteratively from data and finding hidden insights which can be used to build intelligent applications. Despite the immense possibilities of Machine and Deep Learning, a thorough mathematical understanding of many of these techniques is necessary for a good grasp of the inner workings of the algorithms and getting good results.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Machine Learning | 机器学习
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://book.douban.com/subject/2061116/" rel="noopener noreferrer"&gt;2007-Pattern Recognition And Machine Learning #Book#&lt;/a&gt;: The book is suitable for courses on machine learning, statistics, computer science, signal processing, computer vision, data mining, and bioinformatics.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.amazon.com/Machine-Learning-Probabilistic-Perspective-Computation/dp/0262018020" rel="noopener noreferrer"&gt;2012-Machine Learning A Probabilistic Perspective #Book#&lt;/a&gt;: This textbook offers a comprehensive and self-contained introduction to the field of machine learning, a unified, probabilistic approach. The coverage combines breadth and depth, offering necessary background material on such topics as probability, optimization, and linear algebra as well as discussion of recent developments in the field, including conditional random fields, L1 regularization, and deep learning.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/Y6V" rel="noopener noreferrer"&gt;2014-The Cambridge Handbook of Artificial Intelligence #Book#&lt;/a&gt;: With a focus on theory rather than technical and applied issues, the volume will be valuable not only to people working in AI, but also to those in other disciplines wanting an authoritative and up-to-date introduction to the field.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.springer.com/gp/book/9783319141411" rel="noopener noreferrer"&gt;2015-Data Mining, The Textbook #Book#&lt;/a&gt;: This textbook explores the different aspects of data mining from the fundamentals to the complex data types and their applications, capturing the wide diversity of problem domains for data mining issues.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/hangtwenty/dive-into-machine-learning" rel="noopener noreferrer"&gt;2016-Dive into Machine Learning #Book#&lt;/a&gt;: I learned Python by hacking first, and getting serious later. I wanted to do this with Machine Learning. If this is your style, join me in getting a bit ahead of yourself.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.amazon.cn/dp/B01ARKEV1G" rel="noopener noreferrer"&gt;2016-周志华-机器学习 #Book#&lt;/a&gt;：机器学习》作为该领域的入门教材，在内容上尽可能涵盖机器学习基础知识的各方面。介绍了机器学习的基础知识，经典而常用的机器学习方法（决策树、神经网络、支持向量机、贝叶斯分类器、集成学习、聚类、降维与度量学习），特征选择与稀疏学习、计算学习理论、半监督学习、概率图模型、规则学习以及强化学习等。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/Y63" rel="noopener noreferrer"&gt;2016-Prateek Joshi-Python Real World Machine Learning #Book#&lt;/a&gt;: Learn to solve challenging data science problems by building powerful machine learning models using Python.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/Y6O" rel="noopener noreferrer"&gt;2016-Designing Machine Learning Systems with Python&lt;/a&gt;: Gain an understanding of the machine learning design process, Optimize machine learning systems for improved accuracy, Understand common programming tools and techniques for machine learning, Develop techniques and strategies for dealing with large amounts of data from a variety of sources, Build models to solve unique tasks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.mlyearning.org/" rel="noopener noreferrer"&gt;2018-AndrewNG-Machine Learning Yearning #Book#&lt;/a&gt;: This book is focused not on teaching you ML algorithms, but on how to make ML algorithms work. Some technical AI classes will give you a hammer; this book teaches you how to use the hammer.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/Y6t" rel="noopener noreferrer"&gt;2018-Artificial Intelligence: A Modern Approach-3rd Edition #Book#&lt;/a&gt;:Artificial Intelligence: A Modern Approach, 3e offers the most comprehensive, up-to-date introduction to the theory and practice of artificial intelligence. Number one in its field, this textbook is ideal for one or two-semester, undergraduate or graduate-level courses in Artificial Intelligence.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Reinforcement Learning | 强化学习
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://parg.co/Y6M" rel="noopener noreferrer"&gt;2018-Reinforcement Learning: An Introduction-Second Edition #Book#&lt;/a&gt;: This textbook provides a clear and simple account of the key ideas and algorithms of reinforcement learning that is accessible to readers in all the related disciplines. Familiarity with elementary concepts of probability is required.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  DeepLearning | 深度学习
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="http://www.deeplearningbook.org/" rel="noopener noreferrer"&gt;2015-Goodfellow, Bengio and Courville-The Deep Learning Textbook #Book#&lt;/a&gt;:中文译本&lt;a href="https://exacity.github.io/deeplearningbook-chinese/Chapter1_introduction/" rel="noopener noreferrer"&gt;这里&lt;/a&gt;，The Deep Learning textbook is a resource intended to help students and practitioners enter the field of machine learning in general and deep learning in particular. The online version of the book is now complete and will remain available online for free.&lt;/li&gt;
&lt;li&gt;
&lt;a href="http://deeplearning.stanford.edu/tutorial/" rel="noopener noreferrer"&gt;2016-Stanford Deep Learning Tutorial #Book#&lt;/a&gt;: This tutorial will teach you the main ideas of Unsupervised Feature Learning and Deep Learning. By working through it, you will also get to implement several feature learning/deep learning algorithms, get to see them work for yourself, and learn how to apply/adapt these ideas to new problems.&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/Y6s" rel="noopener noreferrer"&gt;2016-Building Machine Learning Projects with TensorFlow #Book#&lt;/a&gt;: Engaging projects that will teach you how complex data can be exploited to gain the most insight.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/PaddlePaddle/book/blob/develop/README.md" rel="noopener noreferrer"&gt;2016-深度学习入门 #Book#&lt;/a&gt;：您现在在看的这本书是一本“交互式”电子书 —— 每一章都可以运行在一个 Jupyter Notebook 里。 我们把 Jupyter, PaddlePaddle, 以及各种被依赖的软件都打包进一个 Docker image 了。所以您不需要自己来安装各种软件，只需要安装 Docker 即可。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://neuralnetworksanddeeplearning.com/" rel="noopener noreferrer"&gt;2017-Neural Networks and Deep Learning #Book#&lt;/a&gt;: Neural Networks and Deep Learning is a free online book. The book will teach you about: (1) Neural networks, a beautiful biologically-inspired programming paradigm which enables a computer to learn from observational data. (2) Deep learning, a powerful set of techniques for learning in neural networks&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/BinRoot/TensorFlow-Book" rel="noopener noreferrer"&gt;2017-TensorFlow Book #Book#&lt;/a&gt;: Accompanying source code for Machine Learning with TensorFlow. Refer to the book for step-by-step explanations.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  NLP | 自然语言处理
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://dl.acm.org/citation.cfm?id=2915031" rel="noopener noreferrer"&gt;2016-Text Data Management and Analysis #Book#&lt;/a&gt;: A Practical Introduction to Information Retrieval and Text Mining&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/andrewt3000/DL4NLP" rel="noopener noreferrer"&gt;2017-DL4NLP-Deep Learning for NLP resources&lt;/a&gt;: State of the art resources for NLP sequence modeling tasks such as machine translation, image captioning, and dialog.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Computer Vision | 计算机视觉
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://parg.co/Y6Q" rel="noopener noreferrer"&gt;2016-OpenCV: Computer Vision Projects with Python&lt;/a&gt;: Use OpenCV's Python bindings to capture video, manipulate images, and track objects. Learn about the different functions of OpenCV and their actual implementations.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  DataScience | 泛数据科学
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://book.douban.com/subject/5257905/" rel="noopener noreferrer"&gt;2012-深入浅出数据分析-中文版 #Book#&lt;/a&gt;: 深入浅出数据分析》以类似“章回小说”的活泼形式，生动地向读者展现优秀的数据分析人员应知应会的技术：数据分析基本步骤、实验方法、最优化方法、假设检验方法、贝叶斯统计方法、主观概率法、启发法、直方图法、回归法、误差处理、相关数据库、数据整理技巧；正文之后，意犹未尽地以三篇附录介绍数据分析十大要务、R 工具及 ToolPak 工具，在充分展现目标知识以外，为读者搭建了走向深入研究的桥梁。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://shop.oreilly.com/product/0636920033400.do" rel="noopener noreferrer"&gt;2014-DataScience From Scratch #Book#&lt;/a&gt;: In this book, you’ll learn how many of the most fundamental data science tools and algorithms work by implementing them from scratch.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/jakevdp/PythonDataScienceHandbook" rel="noopener noreferrer"&gt;2016-Python Data Science Handbook #Book#&lt;/a&gt;:Jupyter Notebooks for the Python Data Science Handbook&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  DataScienceAI Course Links | 机器学习、深度学习与自然语言处理领域推荐的课程列表
&lt;/h1&gt;

&lt;h1&gt;
  
  
  Machine Learning | 机器学习
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/Y6h" rel="noopener noreferrer"&gt;2010-MIT Artifical Intelligence Videos&lt;/a&gt;: This course includes interactive demonstrations which are intended to stimulate interest and to help students gain intuition about how artificial intelligence methods work under a variety of circumstances.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://zh.coursera.org/learn/machine-learning" rel="noopener noreferrer"&gt;2014-斯坦福-机器学习课程 #Course#&lt;/a&gt;: 在本课程中，您将学习最高效的机器学习技术，了解如何使用这些技术，并自己动手实践这些技术。更重要的是，您将不仅将学习理论知识，还将学习如何实践，如何快速使用强大的技术来解决新问题。最后，您将了解在硅谷企业如何在机器学习和 AI 领域进行创新。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/Y6f" rel="noopener noreferrer"&gt;2014-Statistical Learning (Self-Paced) #Course#&lt;/a&gt;: This is an introductory-level course in supervised learning, with a focus on regression and classification methods.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.udacity.com/course/intro-to-artificial-intelligence--cs271" rel="noopener noreferrer"&gt;2015-Udacity-Intro to Artificial Intelligence #Course#&lt;/a&gt;: In this course, you’ll learn the basics of modern AI as well as some of the representative applications of AI. Along the way, we also hope to excite you about the numerous applications and huge possibilities in the field of AI, which continues to expand human capability beyond our imagination.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/playlist?list=PLXVfgk9fNX2IQOYPmqjqWsNUFl2kpk1U2" rel="noopener noreferrer"&gt;2016-台大机器学习技法 #Course#&lt;/a&gt;: Linear Support Vector Machine (SVM) :: Course Introduction @ Machine Learning Techniques, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/Y64" rel="noopener noreferrer"&gt;2017-EdX-Artificial Intelligence (AI) #Course#&lt;/a&gt;: Learn the fundamentals of Artificial Intelligence (AI), and apply them. Design intelligent agents to solve real-world problems including, search, games, machine learning, logic, and constraint satisfaction problems.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://developers.google.com/machine-learning/crash-course/" rel="noopener noreferrer"&gt;2018-Machine Learning Crash Course with TensorFlow APIs by Google #Course#&lt;/a&gt;: Machine Learning Crash Course features a series of lessons with video lectures, real-world case studies, and hands-on practice exercises.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Deep Learning
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/Y6N" rel="noopener noreferrer"&gt;2016-Deep Learning by Google #Course#&lt;/a&gt;: In this course, you’ll develop a clear understanding of the motivation for deep learning, and design intelligent systems that learn from complex and/or large-scale datasets.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://web.stanford.edu/class/cs20si/" rel="noopener noreferrer"&gt;2017-CS 20SI: TensorFlow for Deep Learning Research #Course#&lt;/a&gt;: This course will cover the fundamentals and contemporary usage of the TensorFlow library for deep learning research. We aim to help students understand the graphical computational model of TensorFlow, explore the functions it has to offer, and learn how to build and structure models best suited for a deep learning project.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/fastai/fastai" rel="noopener noreferrer"&gt;2017-Fast.ai DeepLearning AI #Course#&lt;/a&gt;: Most of the library is quite well tested since many students have used it to complete the Practical Deep Learning for Coders course. However it hasn't been widely used yet outside of the course, so you may find some missing features or rough edges.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  NLP | 自然语言处理
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://zh.coursera.org/learn/text-mining" rel="noopener noreferrer"&gt;2016-University of Illinois at Urbana-Champaign:Text Mining and Analytics #Course#&lt;/a&gt;: This course will cover the major techniques for mining and analyzing text data to discover interesting patterns, extract useful knowledge, and support decision making, with an emphasis on statistical approaches that can be generally applied to arbitrary text data in any natural language with no or minimum human effort.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.coursera.org/learn/neural-networks" rel="noopener noreferrer"&gt;2017-Neural Networks for Machine Learning #Course#&lt;/a&gt;: Learn about artificial neural networks and how they're being used for machine learning, as applied to speech and object recognition, image segmentation, modeling language and human motion, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/oxford-cs-deepnlp-2017/lectures" rel="noopener noreferrer"&gt;2017-Oxford Deep NLP course #Course#&lt;/a&gt;: This is an advanced course on natural language processing. Automatically processing natural language inputs and producing language outputs is a key component of Artificial General Intelligence.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://cs224d.stanford.edu/syllabus.html" rel="noopener noreferrer"&gt;2017-CS224d: Deep Learning for Natural Language Processing #Course#&lt;/a&gt;: Intro to NLP and Deep Learning, Simple Word Vector representations: word2vec, GloVe, etc.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Industrial Applications | 行业应用
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Autonomous Driving | 自动驾驶
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.class-central.com/course/udacity-artificial-intelligence-for-robotics-319" rel="noopener noreferrer"&gt;2017-Artificial Intelligence for Robotics #Course#&lt;/a&gt;: Learn how to program all the major systems of a robotic car from the leader of Google and Stanford's autonomous driving teams.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Examples | 示范
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/fchollet/deep-learning-models" rel="noopener noreferrer"&gt;2015-Trained image classification models for Keras #Project#&lt;/a&gt;: Keras code and weights files for popular deep learning models.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/saiprashanths/dl-docker" rel="noopener noreferrer"&gt;All-in-one Docker image for Deep Learning #Project#&lt;/a&gt;: An all-in-one Docker image for deep learning. Contains all the popular DL frameworks (TensorFlow, Theano, Torch, Caffe, etc.)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/aymericdamien/TopDeepLearning" rel="noopener noreferrer"&gt;Top Deep Learning Projects&lt;/a&gt;: A list of popular github projects related to deep learning (ranked by stars).&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h1&gt;
  
  
  TensorFlow Learning &amp;amp; Practices Links | TensorFlow 资料索引
&lt;/h1&gt;

&lt;h1&gt;
  
  
  Overview | 概述
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://chatbotslife.com/tensorflow-demystified-80987184faf7" rel="noopener noreferrer"&gt;2017- TensorFlow demystified&lt;/a&gt;: To understand a new framework, Google’s TensorFlow is a framework for machine-learning calculations, it is often useful to see a ‘toy’ example and learn from it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://zhuanlan.zhihu.com/p/30719727" rel="noopener noreferrer"&gt;如何将 TensorFlow 用作计算框架&lt;/a&gt;: 如果你刚刚接触 TensorFlow 并想使用其来作为计算框架，那么本文是你的一个很好的选择，阅读它相信会对你有所帮助。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/YqN" rel="noopener noreferrer"&gt;2017-We Need to Go Deeper: A Practical Guide to TensorFlow and Inception&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Case Study | 案例分析
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.exastax.com/deep-learning/top-five-use-cases-of-tensorflow/" rel="noopener noreferrer"&gt;2017-Top Five Use Cases of Tensorflow&lt;/a&gt;: TensorFlow is mainly used for: Classification, Perception, Understanding, Discovering, Prediction and Creation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/Yqf" rel="noopener noreferrer"&gt;2018-Google Brain 研究员详解聊天机器人&lt;/a&gt;: 面临的深度学习技术问题以及基于 TensorFlow 的开发实践。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://medium.com/zendesk-engineering/how-zendesk-serves-tensorflow-models-in-production-751ee22f0f4b#.x0o7mpnd3" rel="noopener noreferrer"&gt;How Zendesk Serves TensorFlow Models in Production&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Resource | 资源集锦
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Series | 系列教程
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/pkmital/tensorflow_tutorials" rel="noopener noreferrer"&gt;2015-tensorflow_tutorials&lt;/a&gt;: From the basics to slightly more interesting applications of Tensorflow&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/vahidk/EffectiveTensorflow" rel="noopener noreferrer"&gt;2017-Effective TensorFlow&lt;/a&gt;: My attempt is to gradually expand this series by adding new articles and keep the content up to date with the latest releases of TensorFlow API.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://mubaris.com/2017-10-21/tensorflow-101" rel="noopener noreferrer"&gt;2017-TensorFlow 101&lt;/a&gt;: TensorFlow is an open source machine learning library developed at Google. TensorFlow uses data flow graphs for numerical computations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/astorfi/TensorFlow-World" rel="noopener noreferrer"&gt;2017-TensorFlow-World&lt;/a&gt;: This repository is aimed to provide simple and ready-to-use tutorials for TensorFlow.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Examples | 示例
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/aymericdamien/TensorFlow-Examples" rel="noopener noreferrer"&gt;2015-TensorFlow Examples&lt;/a&gt;: This tutorial was designed for easily diving into TensorFlow, through examples. For readability, it includes both notebooks and source codes with explanation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/anujdutt9/Tensorflow-DeepLearning" rel="noopener noreferrer"&gt;2016-Deep Learning Using Tensorflow&lt;/a&gt;: This repository contains the code for Tensorflow Tutorials for Deep Learning from Starting to End. All the code is written using Python3.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/hzy46/Deep-Learning-21-Examples" rel="noopener noreferrer"&gt;2017-Deep Learning 21 Examples&lt;/a&gt;: 本工程是《21 个项目玩转深度学习———基于 TensorFlow 的实践详解》的配套代码，代码推荐的运行环境为：Ubuntu 14.04，Python 2.7、TensorFlow &amp;gt;= 1.4.0。请尽量使用类 UNIX 系统和 Python 2 运行本书的代码。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/Sarasra/models" rel="noopener noreferrer"&gt;2017-TensorFlow Models by Sarasra #Project#&lt;/a&gt;: This repository contains a number of different models implemented in TensorFlow: the official models, the research models, the samples folder and the tutorials folder.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://6me.us/GbWFKx" rel="noopener noreferrer"&gt;Android TensorFlow Machine Learning Example&lt;/a&gt;: This article is for those who are already familiar with machine learning and know how to the build model for machine learning(for this example I will be using a pre-trained model).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/anujdutt9/Tensorflow-DeepLearning" rel="noopener noreferrer"&gt;2018-Deep Learning Using Tensorflow&lt;/a&gt;:&lt;br&gt;
This repository contains the code for Tensorflow Tutorials for Deep Learning from Starting to End. All the code is written using Python3.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/Mrgemy95/TensorFlow-Project-Template" rel="noopener noreferrer"&gt;2018-TensorFlow Project Template #Project#&lt;/a&gt;: A simple and well designed structure is essential for any Deep Learning project, so after a lot of practice and contributing in tensorflow projects here's a tensorflow project template that combines simplcity, best practice for folder structure and good OOP design.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://hpssjellis.github.io/beginner-tensorflowjs-examples-in-javascript/" rel="noopener noreferrer"&gt;2018-Beginner Tensorflowjs Examples in Javascript&lt;/a&gt;: This is the easiest set of Machine Learning examples that I can find or make. I hope you enjoy it.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Collection
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/jtoy/awesome-tensorflow#github-projects" rel="noopener noreferrer"&gt;Awesome TensorFlow #Collection#&lt;/a&gt;: A curated list of awesome TensorFlow experiments, libraries, and projects. Inspired by awesome-machine-learning.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/astorfi/TensorFlow-World-Resources" rel="noopener noreferrer"&gt;TensorFlow-World-Resources #Collection#&lt;/a&gt;: Organized &amp;amp; Useful Resources about Deep Learning with TensorFlow&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Tutorial | 教程
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://medium.com/@camrongodbout/tensorflow-in-a-nutshell-part-one-basics-3f4403709c9d#.m0948trt3" rel="noopener noreferrer"&gt;2016-TensorFlow in a Nutshell — Part One: Basics&lt;/a&gt;: The fast and easy guide to the most popular Deep Learning framework in the world.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://blog.csdn.net/stdcoutzyx/article/details/51645396" rel="noopener noreferrer"&gt;2016-Tensorflow 架构&lt;/a&gt;: TF 的特点之一就是可以支持很多种设备，大到 GPU、CPU，小到手机平板，五花八门的设备都可以跑起来 TF。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://bamos.github.io/2016/08/09/deep-completion/" rel="noopener noreferrer"&gt;2016-Image Completion with Deep Learning in TensorFlow&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/jostmey/NakedTensor" rel="noopener noreferrer"&gt;2017-NakedTensor&lt;/a&gt;: Bare bone examples of machine learning in TensorFlow.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://chatbotslife.com/deep-learning-in-7-lines-of-code-7879a8ef8cfb" rel="noopener noreferrer"&gt;2017-Deep Learning in 7 lines of code&lt;/a&gt;: The essence of machine learning is recognizing patterns within data. This boils down to 3 things: data, software and math. What can be done in seven lines of code you ask? A lot.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://zhuanlan.zhihu.com/p/25646408" rel="noopener noreferrer"&gt;2017- TensorFlow 代码解析&lt;/a&gt;：本文由浅入深的阐述 Tensor 和 Flow 的概念。先介绍了 TensorFlow 的核心概念和基本概述，然后剖析了 OpKernels 模块、Graph 模块、Session 模块。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://zhuanlan.zhihu.com/p/25352208" rel="noopener noreferrer"&gt;2017-TensorFlow 入门级解读：矩阵、多特征线性和逻辑回归&lt;/a&gt;：本文是日本东京 TensorFlow 聚会联合组织者 Hin Khor 所写的 TensorFlow 系列介绍文章。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://6me.us/s2n" rel="noopener noreferrer"&gt;2017-We Need to Go Deeper: A Practical Guide to TensorFlow and Inception&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>deeplearning</category>
      <category>tensorflow</category>
    </item>
    <item>
      <title>JavaScript Learning &amp; Practices Links, from Zero to Hero</title>
      <dc:creator>王下邀月熊(Chevalier)</dc:creator>
      <pubDate>Tue, 01 May 2018 16:39:40 +0000</pubDate>
      <link>https://dev.to/wxyyxc1992/javascript-learning--practices-links-from-zero-to-hero-40ob</link>
      <guid>https://dev.to/wxyyxc1992/javascript-learning--practices-links-from-zero-to-hero-40ob</guid>
      <description>&lt;h1&gt;
  
  
  JavaScript Learning &amp;amp; Practices Links
&lt;/h1&gt;

&lt;p&gt;This file aggregates curated popular links for learning JavaScript. More reference about ITCS can turn to &lt;a href="https://github.com/wxyyxc1992/Awesome-Links"&gt;Awesome Links : Guide to Galaxy&lt;/a&gt;, which collects valuable, popular and up-to-date links for CS, including Programming Language, Software Engineering, Server Side Application, Infrastructure, InfoSecurity, Industrial Application, DataScienceAI, Frontend Technology(iOS, Android, RN, Electron), etc.&lt;/p&gt;

&lt;h1&gt;
  
  
  Overview | 概述
&lt;/h1&gt;

&lt;h2&gt;
  
  
  JavaScript History
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://auth0.com/blog/a-brief-history-of-javascript/"&gt;2017-A Brief History of JavaScript&lt;/a&gt;: We take a look at the evolution of JavaScript, arguably one of the most important languages of today, and tomorrow&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://hackernoon.com/javascript-a-first-class-language-at-last-209376f69731"&gt;2017-JavaScript — A First-Class Language At Last&lt;/a&gt;: As a JavaScript engineer, I wanted to dig deeper into the public perception of the language and how rooted in reality it is. What I found is that some criticisms hold water, but many do not.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Modern JavaScript | 现代 JavaScript 明晰
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.sitepoint.com/10-languages-compile-javascript/"&gt;10 Languages That Compile to JavaScript&lt;/a&gt;: This article includes a list of ten interesting languages that can be transpiled to JavaScript to be executed in the browser or on a platform like Node.js.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/mbeaudru/modern-js-cheatsheet"&gt;Modern JavaScript cheatsheet&lt;/a&gt;: This document is a cheatsheet for JavaScript you will frequently encounter in modern projects and in most contemporary sample code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://closebrace.com/articles/2017-09-11/a-brief-incomplete-history-of-javascript"&gt;2017-A Brief, Incomplete History of JavaScript&lt;/a&gt;: Where did we start, where are we now, how did we get here, and why?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/UAf"&gt;2017-Modern JavaScript Explained For Dinosaurs&lt;/a&gt;: The ecosystem is growing and changing so rapidly that it’s hard to understand the problems that different tools are trying to solve.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/USa"&gt;2017-What’s the difference between JavaScript and ECMAScript?&lt;/a&gt;: This article represents my current understanding of the differences between JavaScript and ECMAScript.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://medium.com/craft-academy/everything-i-learned-from-javascript30-d8d2db246b7?source=userActivityShare-fe48c4221a4c-1488448383"&gt;2017-Everything I learned from #Javascript30&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://auth0.com/blog/glossary-of-modern-javascript-concepts/"&gt;Glossary of Modern JavaScript&lt;/a&gt;: In this article, we'll address concepts that are crucial to understanding functional programming, reactive programming, and functional reactive programming and their use with JavaScript.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/bXD"&gt;TC39, ECMAScript, and the Future of JavaScript&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://codetower.github.io/es6-features/"&gt;简明 ES6 Features 列表&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://auth0.com/blog/the-real-story-behind-es4/"&gt;The Real Story Behind ECMAScript 4&lt;/a&gt;: Our JavaScript history article sparked interesting comments regarding what really happened during the ECMAScript 4 era. Below you will find a more detailed perspective of what really went down between 1999 and 2008 in the world of JavaScript. Read on!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://medium.com/@Eugeniya/es8-feature-set-javascript-is-getting-asynchronous-2a8a43dd0cbc#.brnqngo2n"&gt;ES8 Feature Set: JavaScript is Getting Asynchronous&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://speakerdeck.com/rauschma/ecmascript-2017-and-beyond"&gt;ECMAScript 2017 and beyond&lt;/a&gt;: In this talk, we’ll go into the latest JavaScript features and how they are designed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://exploringjs.com/es2018-es2019/toc.html"&gt;Exploring ES2018 and ES2019&lt;/a&gt;: This book is about two versions of JavaScript: ECMAScript 2018 and ECMAScript 2019.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  CheatSheet | 语法速览
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://mp.weixin.qq.com/s/I7A1iC8Et6uOGZ234DsTlA"&gt;2017-JavaScript 核心概念归纳整理&lt;/a&gt;：本文针对 JavaScript 语言的核心概念进行简单的梳理，对应的每个知识点仅仅点到为止，不作详细介绍。目的是为了方便大家快速审查自己对 JavaScript 的知识结构是否完善，如有遗漏或不正确的地方，还望批评指正。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dev.to/scastiel/writing-modern-javascript-code"&gt;2017-Writing modern JavaScript code&lt;/a&gt;: I'll try here to list some good practices to make your JavaScript code easier to write, read and maintain.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/denysdovhan/wtfjs#-is-equal-"&gt;2017-What the f*ck JavaScript?&lt;/a&gt;: A list of funny and tricky JavaScript examples&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/mbeaudru/modern-js-cheatsheet"&gt;2017-Modern JavaScript Cheatsheet&lt;/a&gt;: This document is a cheatsheet for JavaScript you will frequently encounter in modern projects and most contemporary sample code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/UZS"&gt;2017-The Definitive JavaScript Handbook for a developer interview &lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/Chalarangelo/30-seconds-of-code"&gt;2017-30 seconds of code&lt;/a&gt;: Curated collection of useful Javascript snippets that you can understand in 30 seconds or less.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Collection | 资料集锦
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://6me.us/snwXG"&gt;Master JavaScript Programming With 18 OpenSource Books #Collection#&lt;/a&gt;: This compilation focuses on the JavaScript language with 18 solid recommendations. There are books here for beginner, intermediate, and advanced programmers alike. All of the texts are released under an open source license.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/sorrycc/awesome-javascript"&gt;Awesome JavaScript #Collection#&lt;/a&gt;: A collection of awesome browser-side JavaScript libraries, resources and shiny things.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://bonsaiden.github.io/JavaScript-Garden/"&gt;JavaScript-Garden&lt;/a&gt;: JavaScript Garden is a growing collection of documentation about the most quirky parts of the JavaScript programming language. It gives advice to avoid common mistakes and subtle bugs, as well as performance issues and bad practices, that non-expert JavaScript programmers may encounter on their endeavours into the depths of the language.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/U37"&gt;2017-Must-Watch JavaScript #Project#&lt;/a&gt;: This is a collection of well-received talks about JavaScript, covering topics such as ES6, JavaScript frameworks, client-side apps, mobile integration, JavaScript performance, tooling, leveling up, and more.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Book
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://es6.ruanyifeng.com/#README"&gt;2015-ECMAScript 6 入门 #Book#&lt;/a&gt;：ECMAScript 6 入门是由阮一峰老师编写的一本开源的 JavaScript 语言教程，全面介绍 ECMAScript 6 新引入的语法特性。&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://ponyfoo.com/articles/tagged/es6-in-depth"&gt;2015-ES6 in Depth #Book#&lt;/a&gt;： A twenty-four article-long series of pragmatic articles describing JavaScript language features in ES6. 中文译本&lt;a href=""&gt;深入浅出 ES6&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://exploringjs.com/es6/index.html"&gt;2015-Exploring ES6 #Book#&lt;/a&gt;: Upgrade to the next version of JavaScript&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://javascript.info/"&gt;2017-The Modern JavaScript Tutorial #Book#&lt;/a&gt;: How it's done now. From the basics to advanced topics with simple, but detailed explanations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/bpesquet/thejsway"&gt;2017-The JavaScript Wa #Book#&lt;/a&gt;: A modern introduction to an essential language.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/iliakan/javascript-tutorial-en"&gt;Modern JavaScript Tutorial #Book#&lt;/a&gt;: How it's done now. From the basics to advanced topics with simple, but detailed explanations.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://dmitrysoshnikov.com/ecmascript/javascript-the-core-2nd-edition/#class"&gt;JavaScript. The Core: 2nd Edition #Book#&lt;/a&gt;: This is the second edition of the JavaScript. The Core overview lecture, devoted to ECMAScript programming language and core components of its runtime system.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Interview | 面试
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://6me.us/JAZ4"&gt;3 JavaScript questions to watch out for during coding interviews&lt;/a&gt;: This article isn’t about the newest JavaScript libraries, common development practices, or any of the new ES6 functions. Rather, it’s about 3 things that usually come up in interviews when discussing JavaScript.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/kennymkchan/interview-questions-in-javascript"&gt;Interview Algorithm Questions in Javascript() {...}&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/bIL"&gt;2017-The Best Frontend JavaScript Interview Questions (written by a Frontend Engineer)&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Tutorial
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://exploringjs.com/es2018-es2019/toc.html"&gt;Exploring ES2018 and ES2019&lt;/a&gt;: This book is about two versions of JavaScript: ECMAScript 2018 and ECMAScript 2019.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/bwX"&gt;2017-To type or not to type: quantifying detectable bugs in JavaScript&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://weeklywebwisdom.com/2017/09/24/javascript-closures-explained-in-depth/"&gt;2017-Javascript closures explained in depth&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/UlR"&gt;6 Simple Tips on How to Start Writing Clean Code&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://www.datchley.name/es6-promises/"&gt;2015-ES6 Promises&lt;/a&gt;: there is a better pattern using Promises, which give us much more than just an escape from callback hell.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://hackernoon.com/how-to-write-clean-code-for-cascaded-promises-809de5b950fd"&gt;2017-How to write clean code for cascaded promises&lt;/a&gt;: An in-depth guide about working with Interdependent Promises&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://codeburst.io/promise-error-handling-in-depth-90b0965149c0"&gt;2017-Promise error handling in-depth&lt;/a&gt;: This blog is written in Q and A form and targeting those who are looking for the answers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/vasanthk/js-bits"&gt;2017-js-bits&lt;/a&gt;: JavaScript concepts explained with code.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Frontend+ Weekly No.10: D3 5.0，React and React Native Event System Explained, SketchCode</title>
      <dc:creator>王下邀月熊(Chevalier)</dc:creator>
      <pubDate>Mon, 26 Mar 2018 09:40:37 +0000</pubDate>
      <link>https://dev.to/wxyyxc1992/frontend-weekly-no10-d3-50react-and-react-native-event-system-explained-sketchcode-2gck</link>
      <guid>https://dev.to/wxyyxc1992/frontend-weekly-no10-d3-50react-and-react-native-event-system-explained-sketchcode-2gck</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/http%3A%2F%2Fupload-images.jianshu.io%2Fupload_images%2F1647496-b6ba72596e038da7.jpg%3FimageMogr2%2Fauto-orient%2Fstrip%257CimageView2%2F2%2Fw%2F1240" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/http%3A%2F%2Fupload-images.jianshu.io%2Fupload_images%2F1647496-b6ba72596e038da7.jpg%3FimageMogr2%2Fauto-orient%2Fstrip%257CimageView2%2F2%2Fw%2F1240" alt="周报封面56.jpg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The best articles, links and news related to Frontend Development, and more, delivered once a week. All reference in this issue are gathered from &lt;a href="https://medium.com/@384924552" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;, &lt;a href="https://news.ycombinator.com/news" rel="noopener noreferrer"&gt;Hacker News&lt;/a&gt;, &lt;a href="//reddit.com"&gt;Reddit&lt;/a&gt;,&lt;a href="//twitter.com"&gt;Twitter&lt;/a&gt;, &lt;a href="//mybridge.co"&gt;MyBridge&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;More Issues can be found in &lt;a href="https://parg.co/U9x" rel="noopener noreferrer"&gt;Frontend+ Weekly Repository&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;By the way, sorry for my poor English.&lt;/p&gt;

&lt;h2&gt;
  
  
  News
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/U7f" rel="noopener noreferrer"&gt;D3 5.0&lt;/a&gt;: D3 5.0 introduces only a few non-backwards-compatible changes. D3 now uses Promises instead of asynchronous callbacks to load data. Promises simplify the structure of asynchronous code, especially in modern browsers that support async and await. With the adoption of promises, D3 now uses the Fetch API instead of XMLHttpRequest, the d3-request module has been replaced by d3-fetch. More links about this can be found in &lt;a href="https://github.com/wxyyxc1992/Awesome-Links/blob/master/README-en.md" rel="noopener noreferrer"&gt;Awesome Links&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.infoworld.com/article/3230507/java/java-jdk-10-what-new-features-to-expect-in-the-next-java.html" rel="noopener noreferrer"&gt;Java 10 Release&lt;/a&gt;: JDK 10, an implementation of Java Standard Edition 10, was released on March 20, 2018. Key improvements include local variable types as well as enhancements for garbage collection and compilation. JDK 10 is scheduled to be just a short-term release, and public updates for JDK 10 are slated to end in six months. The upcoming JDK 11, due in September, will be a long-term support (LTS) version of Java. LTS releases are due every three years. More links about this can be found in &lt;a href="https://github.com/wxyyxc1992/Awesome-Links/blob/master/README-en.md" rel="noopener noreferrer"&gt;Awesome Links&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tutorial
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/U2K" rel="noopener noreferrer"&gt;How to build a Cryptocurrency price list app using Flutter SDK&lt;/a&gt;: Flutter is Google’s new open-source toolkit for helping developers build iOS and Android apps with just one codebase. Flutter apps are written in the Dart programming language and compile to native code, so the performance is really, really great. In this tutorial, I will show you how to use Flutter to build an app that shows the current price of different cryptocurrencies. I will walk you through the fundamentals of Flutter and Dart. More links about this can be found in &lt;a href="https://github.com/wxyyxc1992/Awesome-Links/blob/master/README-en.md" rel="noopener noreferrer"&gt;Awesome Links&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://medium.freecodecamp.org/a-comprehensive-guide-to-react-js-in-2018-ba8bb6975597" rel="noopener noreferrer"&gt;A Comprehensive Guide to React.js in 2018&lt;/a&gt;: This article was originally published in January of 2015, but was recently updated to React 16.3 and all the goodness it contains. The topics below are what I believe to be the fundamental aspects of React. If you understand all of them and their purposes, you’ll be at a very good spot after reading this tutorial: JSX, Virtual DOM, React.Component, state, Component LifeCycle, Events. More links about this can be found in &lt;a href="https://github.com/wxyyxc1992/Awesome-Links/blob/master/README-en.md" rel="noopener noreferrer"&gt;Awesome Links&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://dev-blog.apollodata.com/introducing-react-apollo-2-1-c837cc23d926" rel="noopener noreferrer"&gt;Introducing React Apollo 2.1&lt;/a&gt;: Recently, React Apollo 2.1 was announced, a huge step forward in improving how you develop React applications with GraphQL. It features a new render prop API and much stronger TypeScript support, along with upgraded docs. In this blog post, we will look through the following features: Data fetching with Query, Updating data with Mutation, Simplifying local state with ApolloConsumer, etc. More links about this can be found in &lt;a href="https://github.com/wxyyxc1992/Awesome-Links/blob/master/README-en.md" rel="noopener noreferrer"&gt;Awesome Links&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Engineering Practices
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/Ux9" rel="noopener noreferrer"&gt;Comparing the top JS animation libraries for use in React apps&lt;/a&gt;: You may have noticed that animation is pretty popular on the web. There’s no shortage of tutorials, case studies, and libraries targeting motion lovers. It’s a facet of development that can intrigue, enhance, delight, motivate, and impress users. In this article, I’ve chosen five JavaScript animation libraries and dissected their abilities to perform from both a business and a development perspective. Instead of asking “what do I use to build X?”, I explore concerns like: How well is this project maintained? Is it easy for a team to pick up? What’s the syntax like? More links about this can be found in &lt;a href="https://github.com/wxyyxc1992/Awesome-Links/blob/master/README-en.md" rel="noopener noreferrer"&gt;Awesome Links&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://julian.is/article/css-grid-at-scale/" rel="noopener noreferrer"&gt;How We Adopted CSS Grid at Scale&lt;/a&gt;: Last month we launched the redesign of Thomasnet.com, From team buy-in to fallbacks, here’s the approach we took at Thomas with the implementation of CSS Grid. This blog post contains following contents: A quick primer on CSS Grid, Our Grid “aha” moment, Resolving the CSS Grid vs. Flexbox argument, Laying the Grid foundation, Fallbacks for browsers without support. More links about this can be found in &lt;a href="https://github.com/wxyyxc1992/Awesome-Links/blob/master/README-en.md" rel="noopener noreferrer"&gt;Awesome Links&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://levelup.gitconnected.com/ultimate-react-component-patterns-with-typescript-2-8-82990c516935" rel="noopener noreferrer"&gt;Ultimate React Component Patterns with Typescript 2.8&lt;/a&gt;: Stateful, Stateless, Default Props, Render Callbacks, Component Injection, Generic Components, High Order Components, Controlled Components. More links about this can be found in &lt;a href="https://github.com/wxyyxc1992/Awesome-Reference/blob/master/Web/Framework/React/React-DevPractices-Links.md" rel="noopener noreferrer"&gt;React DevPractices Links&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Under the hood
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://timkadlec.com/remembers/2018-03-22-compressive-images-revisited/" rel="noopener noreferrer"&gt;Compressive Images Revisited&lt;/a&gt;: The compressive images technique relies on you sizing a JPG image to be larger than the size it ultimately is displayed at and then compressing it to an incredibly low-quality setting. This cuts the image weight dramatically, but also makes the image look absolutely terrible. The benefit in weight can be substantial. In the Filament Group’s article, the example image was a whopping 53% lighter (from 95kb to 44kb). The trade-off for compressive images is primarily the memory cost (there used to be scaling and decoding risks, but browsers have improved in that area). More links about this can be found in &lt;a href="https://github.com/wxyyxc1992/Awesome-Links/blob/master/README-en.md" rel="noopener noreferrer"&gt;Awesome Links&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/UDc" rel="noopener noreferrer"&gt;Automated front-end development using deep learning&lt;/a&gt;: At Insight, he developed a model that allows users to create working HTML websites from hand-drawn wireframes, significantly accelerating the design process. He is now a Deep Learning Scientist at Mythic. More links about this can be found in &lt;a href="https://github.com/wxyyxc1992/Awesome-Links/blob/master/README-en.md" rel="noopener noreferrer"&gt;Awesome Links&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/UDq" rel="noopener noreferrer"&gt;The React and React Native Event System Explained: A Harmonious Coexistence&lt;/a&gt;: There are an awful lot of posts explaining how to use React’s event handling system, but not many that explain how it works. I have been working on React Native lately, and my struggles with event handling acted as a reminder of how important it was to understand precisely what’s going on. I thus decided to gather as much info as possible regarding event handling in React: the following is a report of what I found looking around the source code. More links about this can be found in &lt;a href="https://github.com/wxyyxc1992/Awesome-Links/blob/master/README-en.md" rel="noopener noreferrer"&gt;Awesome Links&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  OpenSource
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/kamranahmedse/driver.js" rel="noopener noreferrer"&gt;Driver.js&lt;/a&gt;: Driver.js is a powerful yet light-weight, vanilla JavaScript engine to drive the user's focus across the page. Driver.js is not only another tour library, Tours are just one of the many use-cases. Driver.js can be used wherever you need some sort of overlay for the page; some common usecases could be: e.g. dimming the background when user is interacting with some component.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/BrainJS/brain.js" rel="noopener noreferrer"&gt;brain.js&lt;/a&gt;: brain.js is a library of Neural Networks written in JavaScript.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/appbaseio/dejavu" rel="noopener noreferrer"&gt;dejavu&lt;/a&gt;: dejavu is the missing web UI for Elasticsearch. Existing web UIs leave much to be desired or are built with server side page rendering techniques that make it less responsive and bulkier to run (I am looking at you, Kibana).Starting v1.0, dejavu is the only Elasticsearch web UI that supports importing data via JSON and CSV files, as well as defining field mappings from the GUI.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>web</category>
      <category>javascript</category>
      <category>react</category>
    </item>
    <item>
      <title>Frontend+ Weekly No.9: MobX 4 Features, iOS Hacks, Distributed Transaction</title>
      <dc:creator>王下邀月熊(Chevalier)</dc:creator>
      <pubDate>Fri, 23 Mar 2018 13:04:09 +0000</pubDate>
      <link>https://dev.to/wxyyxc1992/frontend-weekly-no9-mobx-4-features-ios-hacks-distributed-transaction-3538</link>
      <guid>https://dev.to/wxyyxc1992/frontend-weekly-no9-mobx-4-features-ios-hacks-distributed-transaction-3538</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/http%3A%2F%2Fupload-images.jianshu.io%2Fupload_images%2F1647496-e1d5b6bb971ea4df.jpg%3FimageMogr2%2Fauto-orient%2Fstrip%257CimageView2%2F2%2Fw%2F1240" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/http%3A%2F%2Fupload-images.jianshu.io%2Fupload_images%2F1647496-e1d5b6bb971ea4df.jpg%3FimageMogr2%2Fauto-orient%2Fstrip%257CimageView2%2F2%2Fw%2F1240" alt="周报封面55.jpg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The best articles, links and news related to Frontend Development, and more, delivered once a week. All reference in this issue are gathered from &lt;a href="https://medium.com/@384924552" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;, &lt;a href="https://news.ycombinator.com/news" rel="noopener noreferrer"&gt;Hacker News&lt;/a&gt;, &lt;a href="//reddit.com"&gt;Reddit&lt;/a&gt;,&lt;a href="//twitter.com"&gt;Twitter&lt;/a&gt;, &lt;a href="//mybridge.co"&gt;MyBridge&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;More Issues can be found in &lt;a href="https://parg.co/U9x" rel="noopener noreferrer"&gt;Frontend+ Weekly Repository&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;By the way, sorry for my poor English.&lt;/p&gt;

&lt;h2&gt;
  
  
  News
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.mozilla.org/en-US/firefox/59.0/releasenotes/" rel="noopener noreferrer"&gt;Firefox 59.0 Release&lt;/a&gt;: On Firefox for desktop, we’ve improved page load times, added tools to annotate and crop your Firefox Screenshots, and made it easier to arrange your Top Sites on the Firefox Home page. Improve graphics rendering using Off-Main-Thread Painting (OMTP) for Mac users (OMTP for Windows was released in Firefox 58) On Firefox for Android, we’ve added support for sites that stream video using the HLS protocol.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://community.letsencrypt.org/t/acme-v2-and-wildcard-certificate-support-is-live/55579" rel="noopener noreferrer"&gt;Let's Encrypt Announce ACME v2 and Wildcard Certificate Support&lt;/a&gt;: We’re pleased to announce that ACMEv2 and wildcard certificate support is live! With today’s new features we’re continuing to break down barriers for HTTPS adoption across the Web by making it even easier for every website to get and manage certificates. ACMEv2 is an updated version of our ACME protocol which has gone through the IETF standards process, taking into account feedback from industry experts and other organizations that might want to use the ACME protocol for certificate issuance and management some day. Wildcard certificates allow you to secure all subdomains of a domain with a single certificate.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://insights.stackoverflow.com/survey/2018" rel="noopener noreferrer"&gt;Stack Overflow Developer Survey Results 2018&lt;/a&gt;: Over 100,000 developers took the 30-minute survey this past January. DevOps and machine learning are important trends in the software industry today, Developers are overall optimistic about the possibilities that artificial intelligence offers, but are not in agreement about what the dangers of AI are. Python has risen in the ranks of programming languages on our survey, surpassing C# in popularity this year, much like it surpassed PHP last year. For the third year in a row, Rust is the most loved programming language among our respondents, followed close behind by Kotlin.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tutorial
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/UzS" rel="noopener noreferrer"&gt;MobX 4: Better, simpler, faster, smaller&lt;/a&gt;: A new major version of MobX has been released, in this blog post I’m just going to highlight the most compelling new features. Decorators without decorator syntax, Dynamically extend observable objects, await when and flow to further simplify asynchronous processes, onBecome(Un)Observed to automatically fetch data sources, Dedicated production build. Smaller &amp;amp; faster. More links about this can be found in &lt;a href="https://github.com/wxyyxc1992/Awesome-Links/blob/master/README-en.md" rel="noopener noreferrer"&gt;Awesome Links&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://developers.google.com/web/updates/2018/03/clipboardapi" rel="noopener noreferrer"&gt;Unblocking Clipboard Access&lt;/a&gt;: Over the past few years, browsers have converged on using document.execCommand for clipboard interactions. It's great to have a single widely-supported way to integrate copy and paste into web apps, but this came at a cost: clipboard access is synchronous, and can only read &amp;amp; write to the DOM. That's the new Async Clipboard API, the text-focused portion of which we're shipping in Chrome 66. It's a replacement for execCommand-based copy &amp;amp; paste that has a well-defined permissions model and doesn't block the page. More links about this can be found in &lt;a href="https://github.com/wxyyxc1992/Awesome-Links/blob/master/README-en.md" rel="noopener noreferrer"&gt;Awesome Links&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://android.jlelse.eu/comparing-apk-sizes-a0eb37bb36f" rel="noopener noreferrer"&gt;Comparing APK sizes, For apps in Flutter, React Native, Kotlin and Java&lt;/a&gt;: There are so many ways to make mobile apps ranging from direct platform specific development. Ever wondered how these libraries and frameworks affect the size of your app? Let’s analyze some apk files for apps written in some of these ways. The apps are very basic, containing just a title at the top and a text at the center of the screen. This will show, for a bare minimum app what these frameworks need to package along with the apk for it to be able to run. More links about this can be found in &lt;a href="https://github.com/wxyyxc1992/Awesome-Links/blob/master/README-en.md" rel="noopener noreferrer"&gt;Awesome Links&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Engineering Practices
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://hackernoon.com/how-graphql-replaces-redux-3fff8289221d" rel="noopener noreferrer"&gt;How GraphQL Replaces Redux&lt;/a&gt;: GraphQL is a server side query language. Redux is a client-side state management library. How could one replace the other? Most of our state management code was concerned with merging and mutating data from discreet REST resources into the right shape for our UI (reducers, selectors, actions etc.). A lot of our most complex state management was trying to manage the asynchronous nature of getting all that data in the right order for a specific route (sagas, middleware, thunks etc.). More links about this can be found in &lt;a href="https://github.com/wxyyxc1992/Awesome-Links/blob/master/README-en.md" rel="noopener noreferrer"&gt;Awesome Links&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/U2c" rel="noopener noreferrer"&gt;Best iOS hacks from Twitter: January &amp;amp; February Edition&lt;/a&gt;: Last two months community shared nice debugging tips, advices on improving Xcode performance and smart ways to use functions in Swift. How to improve Xcode performance, A great little tip on how to make your code more readable and understandable, etc. More links about this can be found in &lt;a href="https://github.com/wxyyxc1992/Awesome-Links/blob/master/README-en.md" rel="noopener noreferrer"&gt;Awesome Links&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/UTU" rel="noopener noreferrer"&gt;Loading Third-Party JavaScript&lt;/a&gt;: Addy Osmani wrote up the fundamentals of loading third-party JavaScript in a proper guide, including privacy, security and performance problems. Third-party scripts provide a wide range of useful functionality, making the web more dynamic, interactive, and interconnected. In this guide, we’ll walk through how to find and fix issues related to loading third-party JavaScript: performance, privacy, security, unpredictable, unintended consequences, and critical rendering path. More links about this can be found in &lt;a href="https://github.com/wxyyxc1992/Awesome-Links/blob/master/README-en.md" rel="noopener noreferrer"&gt;Awesome Links&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Under the hood
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/U2q" rel="noopener noreferrer"&gt;Distributed transactions and why you should care&lt;/a&gt;: This article is a great introduction for distributed transactions, it includes the following: The Distributed Data Model, The optimist’s data model and The pessimist’s data model; Atomicity, Multi-Version Concurrency Control and Clock-synchronization across the network; Consistency, Two-Phase Commit Protocol, PAXOS, RAFT; Isolation, Snapshot Isolation, Serializable Isolation, Durability, etc. More links about this can be found in &lt;a href="https://github.com/wxyyxc1992/Awesome-Links/blob/master/README-en.md" rel="noopener noreferrer"&gt;Awesome Links&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/U2E" rel="noopener noreferrer"&gt;A Guided Tour inside a clean architecture code base.&lt;/a&gt;: Recently, I released an open-source sample project called MovieNight. In the past couple of weeks, I got lots of questions regarding the application architecture, so I’ve decided to write this blog post. I’ll describe the different components at play and the relationships between them as well as talk about some of the architecture decisions I’ve made along the way. More links about this can be found in &lt;a href="https://github.com/wxyyxc1992/Awesome-Links/blob/master/README-en.md" rel="noopener noreferrer"&gt;Awesome Links&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/Uz5" rel="noopener noreferrer"&gt;How JavaScript works: the rendering engine and tips to optimize its performance&lt;/a&gt;: When you’re building web apps, however, you don’t just write isolated JavaScript code that runs on its own. The JavaScript you write is interacting with the environment. Understanding this environment, how it works and what it is composed of will allow you to build better apps and be well-prepared for potential issues that might arise once your apps are released into the wild. More links about this can be found in &lt;a href="https://github.com/wxyyxc1992/Awesome-Links/blob/master/README-en.md" rel="noopener noreferrer"&gt;Awesome Links&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  OpenSource
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://roughjs.com/" rel="noopener noreferrer"&gt;Rough.js&lt;/a&gt;: Rough.js is a light weight (~8k), Canvas based library that lets you draw in a sketchy, hand-drawn-like, style. The library defines primitives to draw lines, curves, arcs, polygons, circles, and ellipses. It also supports drawing SVG paths. More links about this can be found in &lt;a href="https://github.com/wxyyxc1992/Awesome-Links/blob/master/README-en.md" rel="noopener noreferrer"&gt;Awesome Links&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/nhnent/tui.chart" rel="noopener noreferrer"&gt;TOAST UI Chart&lt;/a&gt;: The TOAST UI Chart is an open source JavaScript library that can be used in legacy browsers including IE8. It is intuitive and easy to apply without any other learning. If you like, you can change the chart in detail using many options and custom themes. More links about this can be found in &lt;a href="https://github.com/wxyyxc1992/Awesome-Links/blob/master/README-en.md" rel="noopener noreferrer"&gt;Awesome Links&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/sindresorhus/fkill-cli" rel="noopener noreferrer"&gt;fkill-cli&lt;/a&gt;: fkill-cli is a cross-platform fabulous processes killer, it works on macOS, Linux, and Windows. To kill a port, prefix it with a colon. For example: :8080. Run without arguments to use the interactive interface. The process name is case insensitive. More links about this can be found in &lt;a href="https://github.com/wxyyxc1992/Awesome-Links/blob/master/README-en.md" rel="noopener noreferrer"&gt;Awesome Links&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>web</category>
      <category>javascript</category>
      <category>react</category>
    </item>
    <item>
      <title>Frontend+ Weekly No.8: SwiftNIO, Custom Vue Router, React Time Slicing and Suspense API</title>
      <dc:creator>王下邀月熊(Chevalier)</dc:creator>
      <pubDate>Tue, 13 Mar 2018 15:08:00 +0000</pubDate>
      <link>https://dev.to/wxyyxc1992/frontend-weekly-no8-swiftnio-custom-vue-router-react-time-slicing-and-suspense-api--4lj5</link>
      <guid>https://dev.to/wxyyxc1992/frontend-weekly-no8-swiftnio-custom-vue-router-react-time-slicing-and-suspense-api--4lj5</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HvbsbQLG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/http://upload-images.jianshu.io/upload_images/1647496-9533a9cf0d76768e.jpg%3FimageMogr2/auto-orient/strip%257CimageView2/2/w/1240" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HvbsbQLG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/http://upload-images.jianshu.io/upload_images/1647496-9533a9cf0d76768e.jpg%3FimageMogr2/auto-orient/strip%257CimageView2/2/w/1240" alt="周报封面54.jpg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The best articles, links and news related to Frontend Development, and more, delivered once a week. All reference in this issue are gathered from &lt;a href="https://medium.com/@384924552"&gt;Medium&lt;/a&gt;, &lt;a href="https://news.ycombinator.com/news"&gt;Hacker News&lt;/a&gt;, &lt;a href="//reddit.com"&gt;Reddit&lt;/a&gt;,&lt;a href="//twitter.com"&gt;Twitter&lt;/a&gt;, &lt;a href="//mybridge.co"&gt;MyBridge&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;More Issues can be found in &lt;a href="https://parg.co/U9x"&gt;Frontend+ Weekly Repository&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  News
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/apple/swift-nio"&gt;Apple Open Source SwiftNIO&lt;/a&gt;: At the recent try! Swift Conference in Tokyo, Apple announced the SwiftNIO project, a Netty-like non-blocking cross-platform I/O framework written in Swift. SwiftNIO aims to be an asynchronous event-driven network framework for the development of high-performance servers and clients. It is currently developed and tested on macOS (10.12+) and Linux (Ubuntu 14.04). According to Apple: SwiftNIO is a cross-platform asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers &amp;amp; clients.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://nodejs.org/en/blog/release/v8.10.0/"&gt;Node v8.10.0 (LTS) &amp;amp; v9.8.0 (Current)&lt;/a&gt;: This release comes with a lot of big changes. There are updates to V8, libuv, and ICU, a bugfix in npm, and support for building with OpenSSL 1.1.0.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://developers.google.com/web/updates/2018/03/nic65"&gt;New in Chrome 65&lt;/a&gt;: The CSS Paint API allows you to programmatically generate an image. The Server Timing API allows web servers to provide performance timing information via HTTP headers. the new CSS display: contents property can make boxes disappear!&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tutorial
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://medium.com/@weblab_tech/graphql-everything-you-need-to-know-58756ff253d8"&gt;GraphQL: Everything You Need to Know&lt;/a&gt;: So you’ve been constructing and using REST API’s for quite some time now and short while ago started hearing about GraphQL — a new hype in the field of API technologies. The purpose of this article is to highlight the major features associated with GraphQL along with discussing the significant pros and cons associated with this particular API specification. More links about this can be found in &lt;a href="https://parg.co/UXa"&gt;Awesome Web Reference&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/Uah"&gt;Learn Redux by Building Redux from Scratch&lt;/a&gt;: A tutorial to understand the core Redux library by building it step-by-step. More links about this can be found in &lt;a href="https://parg.co/UXa"&gt;Awesome Web Reference&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://thecodebarbarian.com/algorithm-interview-questions-in-js-glob-matching.html"&gt;Algorithm Interview Questions in JavaScript: Glob Matching&lt;/a&gt;: Much to many people's chagrin, the practice of asking algorithms questions in tech interviews doesn't seem like it is going anywhere. From what I've heard though, more and more companies are allowing people to answer algorithms questions in JavaScript. In this week's article, I'll walk through a common interview question, glob matching), and implement the solution in JavaScript. More links about this can be found in &lt;a href="https://parg.co/UXa"&gt;Awesome Web Reference&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Engineering Practices
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/Ugc"&gt;Structuring projects and naming components in React&lt;/a&gt;: As React is just a lib, it doesn’t dictate rules about how you should organize and structure your projects. This is nice, because it gives us freedom to try different approaches and adapt the ones that better fit for us. On the other hand, this could cause some confusion for devs that are starting in React world. In this post, I’m going to show some approaches that I have been using for a while and have been scaling very well. These approaches doesn’t re-create the wheel, they just put together and refine what we have on the market. More links about this can be found in &lt;a href="https://parg.co/UXa"&gt;Awesome Web Reference&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://css-tricks.com/build-a-custom-vue-router/"&gt;Let’s Build a Custom Vue Router&lt;/a&gt;: vue-router does a fantastic job by providing us with the items needed to map an application’s components to different browser URL routes. But, simple applications often don’t need a fully fledged routing library like vue-router. In this article, we'll build a simple custom client-side router with Vue. By doing so, we’ll gather an understanding of what needs to be handled to construct client-side routing as well as where potential shortcomings can exist. More links about this can be found in &lt;a href="https://parg.co/UXa"&gt;Awesome Web Reference&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/UFt"&gt;The hidden components of Web Caching&lt;/a&gt;: Caching allows you to increase application processing speed. Storing a copy of the previously fetched data or computed results increases processing speed. This enables future requests to be served faster. It is an effective architectural pattern, because most programs access the same data or instructions over and over. It is applied to everything from web-browsers to web-servers and hard-disks to CPUs. Let’s take a bottom-up approach to understanding the various layers of caching. We will focus on where data can be cached instead of how to cache it. More links about this can be found in &lt;a href="https://parg.co/UXa"&gt;Awesome Web Reference&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Under the hood
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://ben.akrin.com/?p=5997"&gt;Turning your web traffic into a Super Computer&lt;/a&gt;: The subject matter of this post is controversial as it discusses extracting computing resources from the visitors of a website. There are a lot of discussions at the moment centered around web-browser based crypto currency mining. Most paint a deplorable picture of the practice; please keep in mind that there are very desirable paths alongside which these practices can develop. I am not elaborating on these arguments here, I am only describing a method to harness the resources. More links about this can be found in &lt;a href="https://parg.co/UXa"&gt;Awesome Web Reference&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://auth0.com/blog/time-slice-suspense-react16/"&gt;Beyond React 16: Time Slicing and Suspense API&lt;/a&gt;: ReactJS is a UI library that's a very powerful tool amongst frontend developers in building JavaScript applications. In this article, I'll introduce you to a few features coming to ReactJS. Time-slicing allows ReactJS, which now runs on React Fiber, to split computations of updates on children components into chunks during idle callbacks and rendering work is spread out over multiple frames. The simple definition of the suspense feature is that ReactJS can pause any state update until the data been fetched is ready to be rendered. More links about this can be found in &lt;a href="https://parg.co/UXa"&gt;Awesome Web Reference&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/UFV"&gt;8 React conditional rendering methods&lt;/a&gt;: JSX is a powerful extension to JavaScript that allows us to define UI components. But it doesn’t support loops or conditional expressions directly. There’s more than one way to use conditional expressions in React. And, as with most things in programming, some are better suited than others depending on the problem you’re trying to solve. This tutorial covers the most popular conditional renderings methods: If/Else, Prevent rendering with null, Element variables, Ternary operator, Short-circuit operator (&amp;amp;&amp;amp; ), Immediately-Invoked Function Expressions (IIFE), Subcomponents, High Order Components (HOCs). More links about this can be found in &lt;a href="https://parg.co/UXa"&gt;Awesome Web Reference&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  OpenSource
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://propelml.org/"&gt;Propel&lt;/a&gt;: Propel provides a GPU-backed numpy-like infrastructure for scientific computing in JavaScript. JavaScript is a fast, dynamic language which, we think, could act as an ideal workflow for scientific programmers of all sorts. Propel runs both in the browser and natively from Node. In both environments Propel is able to use GPU hardware for computations. In the browser it utilizes WebGL through deeplearn.js and on Node it uses TensorFlow's C API.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/Genymobile/scrcpy"&gt;scrcpy&lt;/a&gt;: This application provides display and control of Android devices connected on USB. It does not require any root access. It works on GNU/Linux, Windows and Mac OS.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/atom/xray"&gt;Xray&lt;/a&gt;: Xray is an experimental Electron-based text editor informed by what we've learned in the four years since the launch of Atom. In the short term, this project is a testbed for rapidly iterating on several radical ideas without risking the stability of Atom. The longer term future of the code in this repository will become clearer after a few months of progress. For now, our primary goal is to iterate rapidly and learn as much as possible.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>react</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>graphql</category>
    </item>
    <item>
      <title>Frontend+ Weekly No.7: WebAssembly architecture for Go, React Suspense, Redesigning Redux</title>
      <dc:creator>王下邀月熊(Chevalier)</dc:creator>
      <pubDate>Wed, 07 Mar 2018 14:15:55 +0000</pubDate>
      <link>https://dev.to/wxyyxc1992/frontend-weekly-no7-webassembly-architecture-for-go-react-suspense-redesigning-redux-k9p</link>
      <guid>https://dev.to/wxyyxc1992/frontend-weekly-no7-webassembly-architecture-for-go-react-suspense-redesigning-redux-k9p</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6yf5ccu8no667o8brf8h.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6yf5ccu8no667o8brf8h.jpg" alt="周报封面53.jpg" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The best articles, links and news related to Frontend Development, and more, delivered once a week. All reference in this issue are gathered from &lt;a href="https://medium.com/@384924552" rel="noopener noreferrer"&gt;Medium&lt;/a&gt;, &lt;a href="https://news.ycombinator.com/news" rel="noopener noreferrer"&gt;Hacker News&lt;/a&gt;, &lt;a href="//reddit.com"&gt;Reddit&lt;/a&gt;,&lt;a href="//twitter.com"&gt;Twitter&lt;/a&gt;, &lt;a href="//mybridge.co"&gt;MyBridge&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;More Issues can be found in &lt;a href="https://parg.co/U9x" rel="noopener noreferrer"&gt;Frontend+ Weekly Repository&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  News
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/UWu" rel="noopener noreferrer"&gt;WebAssembly architecture for Go&lt;/a&gt;: This documents describes the design decisions that went into the new WebAssembly architecture (short “wasm”) for the Go compiler. The goal is to upstream it to the official Go repository in the current development cycle, targeting Go 1.11. The WebAssembly architecture will allow Go to become an alternative to JavaScript for writing code that runs in a web browser. This new freedom of choice will hopefully have a positive impact on the software engineering ecosystem overall.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/Ua1" rel="noopener noreferrer"&gt;Announcing Flutter beta 1: Build beautiful native apps&lt;/a&gt;: as part of Mobile World Congress 2018, the first beta release of Flutter is announced. Flutter is Google's new mobile UI framework that helps developers craft high-quality native interfaces for both iOS and Android. Flutter targets the sweet spot of mobile development: performance and platform integrations of native mobile, with high-velocity development and multi-platform reach of portable UI toolkits.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/ariya/phantomjs/issues/15344" rel="noopener noreferrer"&gt;PhantomJS: Archiving the project, suspending development&lt;/a&gt;: Due to the lack of active contribution, PhantomJS will be archived soon and stop the development. PhantomJS version 2.1.1 will remain the last known stable release until further notice. Chrome and Firefox gaining headless modes is the ultimate goal Phantom could've achieved, but it served its purpose very well, while it was needed. Thanks &amp;amp; Goodbye.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tutorial
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://developers.google.com/machine-learning/crash-course/" rel="noopener noreferrer"&gt;Google releases machine learning course&lt;/a&gt;: As part of Google’s transition into an AI first world, the company wants to widely open up this technology. Its latest initiative involves a new website with a number of resources, as well as a previously internal online learning course. “Learn with Google AI” is a new educational addition to a site originally announced at the I/O developer conference last year. In recent years, the company has repeatedly stated that its goal is to democratize AI and make its tool available for everyone. More changelogs can be found in &lt;a href="https://parg.co/Ugb" rel="noopener noreferrer"&gt;this&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://exploringjs.com/es2018-es2019/toc.html" rel="noopener noreferrer"&gt;Exploring ES2018 and ES2019&lt;/a&gt;: This book is about two versions of JavaScript: ECMAScript 2018 and ECMAScript 2019.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/UWr" rel="noopener noreferrer"&gt;A Walkthrough of &lt;em&gt;that&lt;/em&gt; React Suspense Demo&lt;/a&gt;: The Async React demo at JSConf Iceland lived up to the hype: Time Slicing and React Suspense are on the way! In this walkthrough of the 300ish line Movie Search demo, we learn the various aspects of the React Suspense API: simple-cache-provider.SimpleCache, simple-cache-provider.createResource, ReactDOM.unstable_deferredUpdates, etc. More changelogs can be found in &lt;a href="https://parg.co/Ugb" rel="noopener noreferrer"&gt;this&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Engineering Practices
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/UW4" rel="noopener noreferrer"&gt;Lesser known CSS quirks &amp;amp; advanced tips&lt;/a&gt;: Below you’ll find some of the weirdest CSS features, along with tips and tricks for advanced CSS users. Another practices for CSS is &lt;a href="https://atomiks.github.io/30-seconds-of-css" rel="noopener noreferrer"&gt;30 Seconds of CSS&lt;/a&gt;, a curated collection of useful CSS snippets you can understand in 30 seconds or less. More changelogs can be found in &lt;a href="https://parg.co/Ugb" rel="noopener noreferrer"&gt;this&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/andrew--r/frontend-case-studies" rel="noopener noreferrer"&gt;frontend case studies&lt;/a&gt;: Articles like “Building a simple todo list with [framework or technology name]” won't teach you how that framework or technology solves real-world problems and works at a large scale. This document is a curated list of technical talks and articles about real-world enterprise frontend development. More changelogs can be found in &lt;a href="https://parg.co/Ugb" rel="noopener noreferrer"&gt;this&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Under the hood
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/UW5" rel="noopener noreferrer"&gt;Didact Fiber: Incremental reconciliation&lt;/a&gt;: This is a really nice deep dive into a sketch of Fiber implementation. Didact is a DIY guide to build your own React, in this post we are going to rewrite most of the code from the didact series to follow React 16 new architecture. We’ll try to mirror the structure, variables and function names from the React codebase. More changelogs can be found in &lt;a href="https://parg.co/Ugb" rel="noopener noreferrer"&gt;this&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://hackernoon.com/redesigning-redux-b2baee8b8a38" rel="noopener noreferrer"&gt;Redesigning Redux&lt;/a&gt;: Shouldn’t state management be a solved problem by now? Intuitively, developers seem to know a hidden truth: state management seems harder than it needs to be. In this article, we’ll try to answer some questions you’ve probably been asking yourself: Do you really need a library for state management? s the popularity of Redux deserved? Why or why not? ould we make a better state management solution? If so, how? More changelogs can be found in &lt;a href="https://parg.co/Ugb" rel="noopener noreferrer"&gt;this&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://v8project.blogspot.sg/2018/03/tracing-js-dom.html" rel="noopener noreferrer"&gt;Tracing from JS to the DOM and back again&lt;/a&gt;: Debugging memory leaks in Chrome 66 just became much easier. Chrome’s DevTools can now trace and snapshot C++ DOM objects and display all reachable DOM objects from JavaScript with their references. This feature is one of the benefits of the new C++ tracing mechanism of the V8 garbage collector. More changelogs can be found in &lt;a href="https://parg.co/Ugb" rel="noopener noreferrer"&gt;this&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  OpenSource
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/midwayjs/pandora" rel="noopener noreferrer"&gt;Pandora.js&lt;/a&gt;:Pandora.js is a Manageable, Measurable and Traceable Node.js Application Manager represented by Alibaba powered by TypeScript. As a consequence of years of experiences on enterprise Node.js applications management, Midway team from Alibaba open-sourced Pandora.js finally. It is an application manager integrates many capabilities like monitoring, debugging, resiliency.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/kantord/just-dashboard" rel="noopener noreferrer"&gt;just-dashboard&lt;/a&gt;: just-dashboard can generate dashboards using YAML or JSON files. As your dashboard is just data, you can generate it instead of repeating yourself. You can do that by generating the YAML or JSON file yourself, or you can use jq queries in your YAML file. And one with a dashboard that contains a component that can fetch the data from other other gist and turn it into 3 different charts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/terkelg/prompts" rel="noopener noreferrer"&gt;prompts&lt;/a&gt;: Lightweight, beautiful and user-friendly interactive prompts. prompts has no big dependencies nor is it broken into a dozen tiny modules that only work well together, and uses layout and colors to create beautiful cli interfaces..&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/pqina/filepond" rel="noopener noreferrer"&gt;filepond&lt;/a&gt;: A Flexible and Fun JavaScript File Upload Plugin.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>web</category>
      <category>javascript</category>
      <category>react</category>
    </item>
    <item>
      <title>Frontend+ Weekly No.6: Webpack 4.0.0, Securing Your GraphQL API, Why Decentralization Matters</title>
      <dc:creator>王下邀月熊(Chevalier)</dc:creator>
      <pubDate>Tue, 27 Feb 2018 15:43:36 +0000</pubDate>
      <link>https://dev.to/wxyyxc1992/frontend-weekly-no6-webpack-400-securing-your-graphql-api-why-decentralization-matters-2dfl</link>
      <guid>https://dev.to/wxyyxc1992/frontend-weekly-no6-webpack-400-securing-your-graphql-api-why-decentralization-matters-2dfl</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cpOQ6kpS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/http://upload-images.jianshu.io/upload_images/1647496-2555c0980f838e48.jpg%3FimageMogr2/auto-orient/strip%257CimageView2/2/w/1240" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cpOQ6kpS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/http://upload-images.jianshu.io/upload_images/1647496-2555c0980f838e48.jpg%3FimageMogr2/auto-orient/strip%257CimageView2/2/w/1240" alt="周报封面52.jpg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The best articles, links and news related to Frontend Development, and more, delivered once a week. All reference in this issue are gathered from &lt;a href="https://medium.com/@384924552"&gt;Medium&lt;/a&gt;, &lt;a href="https://news.ycombinator.com/news"&gt;Hacker News&lt;/a&gt;, &lt;a href="//reddit.com"&gt;Reddit&lt;/a&gt;,&lt;a href="//twitter.com"&gt;Twitter&lt;/a&gt;, &lt;a href="//mybridge.co"&gt;MyBridge&lt;/a&gt;, etc.&lt;/p&gt;

&lt;p&gt;More Issues can be found in &lt;a href="https://parg.co/U9x"&gt;Frontend+ Weekly Repository&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  News
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/U1f"&gt;Webpack 4.0.0 Release&lt;/a&gt;: This week, Webpack 4 (Legato) is available; There are so many new things in webpack 4, and it is fast(up to 98% faster). Webpack 4 have deprecated and removed CommonsChunkPlugin, and have replaced it with a set of defaults and easily overridable API called optimize.splitChunks. It also introduce a new property for your config called mode, for either build size (production) optimization, or build time (development) optimization. More changelogs can be found in &lt;a href="https://parg.co/U1N"&gt;this&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/UIi"&gt;Parcel v1.6.0 Release&lt;/a&gt;: Parcel v1.6.0 is a huge release that comes just 3 weeks after v1.5.0, with over 15 new features and lots of bugfixes and improvements. The highlights include: Zero config ES6+ transpilation with Babel, Automatic JSX support for React and Preact, Node and Electron targets, Production bundle statistics, Node 6 support, W3C WebManifest support.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="http://blog.npmjs.org/post/171139955345/v570/amp"&gt;npm v5.7.0 Release&lt;/a&gt;: This release brings a bunch of exciting new features and bug fixes. Package-lock git merge conflict resolution allows npm install to fix package-lock.json and npm-shrinkwrap.json files that have merge conflicts in them without your having to edit them. The new npm ci command installs from your lock-file ONLY. If your package.json and your lock-file are out of sync then it will report an error, it’s also much faster (2x-10x!) than npm install when you don’t start with a node_modules. It works by throwing away your node_modules and recreating it from scratch.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tutorial
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/UIJ"&gt;Everything you need to know about CSS Variables&lt;/a&gt;: Most programming languages have support for variables. But sadly, CSS has lacked support for native variables from the very beginning. Well the web is moving fast. And I’m glad to report that CSS now finally supports variables. In this guide, I’ll show you how variables work natively in CSS, and how you can use them to make your life a lot easier. I’ll wrap things up by showing you how to build 3 projects that show off CSS variables and their ease of use: Creating Component Variations using CSS Variables, Theme Styles with CSS Variables, Building the CSS Variable Booth. More links about this can be found in &lt;a href="https://parg.co/UXa"&gt;Awesome Web Reference&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/U14"&gt;An Overview of JavaScript Testing in 2018&lt;/a&gt;: This guide is intended to catch you up with the most important reasoning, terms, tools, and approaches to JavaScript testing in 2018. It combines information from many great articles, that are linked at the bottom, and adds from our own experience in Welldone Software Solutions where we implemented different testing solutions for different products for years. He uses Jest for unit and integration tests and TestCafe for UI tests. More links about this can be found in &lt;a href="https://github.com/wxyyxc1992/Awesome-Reference#javascript"&gt;Awesome JavaScript Reference&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/U1M"&gt;Facial-Recognition: Using React-Redux and Kairos to Identify Yourself&lt;/a&gt;: We are in the era where Face ID and Facial Recognition is no longer a maybe or simply good-to-have feature. It has become rather the talk of the town. So as a developer, my curiosity was heightened by the prospect of trying to create a face recognition based application and testing out this awesome feature which has been apparently bestowed to mankind. More links about this can be found in &lt;a href="https://parg.co/Ual"&gt;DataScienceAI MindMap&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Engineering Practices
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://zeit.co/blog/streaming-server-rendering-at-spectrum"&gt;Streaming Server-Side Rendering and Caching at Spectrum&lt;/a&gt;: React 16 introduced streaming server-side rendering, which allows you to send down HTML in chunks in parallel to rendering it. This enables a faster time to first byte and first meaningful paint for your users since the initial markup arrives in the browser sooner. In this guest post he describes the journey to high performance server-rendering of their React application with streaming responses and distributed caching. More links about this can be found in &lt;a href="https://parg.co/UXI"&gt;React Reference&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/U1t"&gt;Securing Your GraphQL API from Malicious Queries&lt;/a&gt;: With GraphQL you can query exactly what you want whenever you want. That is amazing for working with an API, but also has complex security implications. Instead of asking for legitimate, useful data, a malicious actor could submit an expensive, nested query to overload your server, database, network, or all of these. In this guest post he describes how they secured their GraphQL API from attackers. More links about this can be found in &lt;a href="https://parg.co/UX2"&gt;GraphQL Reference&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/U1V"&gt;Event sourcing vs CRUD&lt;/a&gt;: In many cases event sourcing is combined with domain-driven design (DDD) and the design pattern CQRS, but it is only partly related to the two concepts. Event sourcing is a specific procedure for storing data. Unlike the traditional approach with a relational database, event sourcing does not persist the current state of a record, but instead stores the individual changes as a series of deltas that led to the current state over time. More links about this can be found in &lt;a href="https://github.com/wxyyxc1992/Awesome-Reference#softwarearchitecture"&gt;Awesome SoftwareArchitecture Reference&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Under the hood
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://staltz.com/promises-are-not-neutral-enough.html"&gt;Promises are not neutral enough&lt;/a&gt;: Promises in JavaScript create problems which affect the entire ecosystem. In this blog post I’ll explain some of those problems. The basic purpose of Promises is to represent a value that will be eventually available. It could become available in the next event loop or in the next minutes. Basically Promises are not neutral enough because they introduce 4 opinions: Eager, not lazy; No cancellation; Never synchronous; then() is a mix of map() and flatMap(). More links about this can be found in &lt;a href="https://github.com/wxyyxc1992/Awesome-Reference#javascript"&gt;Awesome JavaScript Reference&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/maxchehab/CSS-Keylogging"&gt;CSS Keylogging&lt;/a&gt;: CSS Keylogging contains a chrome extension and Express server that exploits keylogging abilities of CSS. This attack is really simple. Utilizing CSS attribute selectors, one can request resources from an external server under the premise of loading a background-image. Using a simple script one can create a css file that will send a custom request for every ASCII character. More links about this can be found in &lt;a href="https://parg.co/UXa"&gt;Awesome Web Reference&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://parg.co/UIk"&gt;Why Decentralization Matters&lt;/a&gt;: During the first era of the internet — from the 1980s through the early 2000s — internet services were built on open protocols that were controlled by the internet community. During the second era of the internet, from the mid 2000s to the present, for-profit tech companies — most notably Google, Apple, Facebook, and Amazon (GAFA) — built software and services that rapidly outpaced the capabilities of open protocols. Decentralized platforms, by contrast, often launch half-baked and without clear use cases. Cryptonetworks are a powerful way to develop community-owned networks and provide a level playing field for 3rd-party developers, creators, and businesses. More links about this can be found in &lt;a href="https://github.com/wxyyxc1992/Awesome-Reference"&gt;Awesome Reference&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  OpenSource
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/GhostText/GhostText"&gt;GhostText&lt;/a&gt;: Use your text editor to write in your browser. Everything you type in the editor will be instantly updated in the browser (and vice versa).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://proton-native.js.org/#/"&gt;Proton Native&lt;/a&gt;: On mobile, the React Native gives us a seamless way to build user interfaces and manage state in code, all while doing it cross platform. Proton Native does the same to desktop that React Native did to mobile. Build cross-platform apps for the desktop, all while never leaving the React eco-system. Popular React packages such as Redux still work.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/redacademy/vue-ethereum-ipfs"&gt;vue-ethereum-ipfs&lt;/a&gt;: It is a distributed application starter wih Vue, Ethereum and IPFS. Ethereum is a distributed virtual machine that pays eth in return for miners running your smart contracts. IPFS is a kind of distributed content distribution network. Vue is a javascript framework for building client-side webapps. By keeping state inside ethereum and using IPFS to deliver HTML, webapps can become nearly indestructable!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://github.com/electerious/basicScroll"&gt;basicScroll&lt;/a&gt;: Standalone parallax scrolling for mobile and desktop with CSS variables. basicScroll allows you to change CSS variables depending on the scroll position. Use the variables directly in your CSS to animate whatever you want. Highly inspired by skrollr and Reactive Animations with CSS Variables.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>web</category>
      <category>javascript</category>
      <category>css</category>
      <category>react</category>
    </item>
  </channel>
</rss>
