<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[彬仔博客]]></title><description><![CDATA[半亩方塘一鉴开，天光云影共徘徊]]></description><link>http://blog.helibin.com/</link><image><url>http://blog.helibin.com/favicon.png</url><title>彬仔博客</title><link>http://blog.helibin.com/</link></image><generator>Ghost 5.25</generator><lastBuildDate>Tue, 07 Apr 2026 06:08:14 GMT</lastBuildDate><atom:link href="http://blog.helibin.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Hello World]]></title><description><![CDATA[<p>2023-02-27 09:40</p>]]></description><link>http://blog.helibin.com/hello-world/</link><guid isPermaLink="false">63fc0bf568fed800014b8752</guid><dc:creator><![CDATA[Lybeen]]></dc:creator><pubDate>Mon, 27 Feb 2023 01:48:59 GMT</pubDate><media:content url="http://blog.helibin.com/content/images/2023/07/2347-106.jpg" medium="image"/><content:encoded><![CDATA[<img src="http://blog.helibin.com/content/images/2023/07/2347-106.jpg" alt="Hello World"><p>2023-02-27 09:40</p>]]></content:encoded></item><item><title><![CDATA[docker及docker-compose安装及使用]]></title><description><![CDATA[<h1 id="docker%E5%8F%8Adocker-compose%E5%AE%89%E8%A3%85%E5%8F%8A%E4%BD%BF%E7%94%A8">docker&#x53CA;docker-compose&#x5B89;&#x88C5;&#x53CA;&#x4F7F;&#x7528;</h1><blockquote>docker&#x5B89;&#x88C5;</blockquote><pre><code># docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
</code></pre><blockquote>docker&#x4F7F;&#x7528;</blockquote><pre><code># &#x8BBE;&#x7F6E;&#x5F00;&#x673A;&#x81EA;&#x542F;&#x5E76;&#x542F;&#x52A8;docker&#x670D;&#x52A1;
sudo systemctl enable docker.service &amp;&amp; sudo systemctl start docker.service</code></pre>]]></description><link>http://blog.helibin.com/docker-jidockercompose-an-zhuang-ji-shi/</link><guid isPermaLink="false">61c51ffaabf9d20001e01984</guid><dc:creator><![CDATA[Lybeen]]></dc:creator><pubDate>Fri, 24 Dec 2021 01:18:51 GMT</pubDate><content:encoded><![CDATA[<h1 id="docker%E5%8F%8Adocker-compose%E5%AE%89%E8%A3%85%E5%8F%8A%E4%BD%BF%E7%94%A8">docker&#x53CA;docker-compose&#x5B89;&#x88C5;&#x53CA;&#x4F7F;&#x7528;</h1><blockquote>docker&#x5B89;&#x88C5;</blockquote><pre><code># docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
</code></pre><blockquote>docker&#x4F7F;&#x7528;</blockquote><pre><code># &#x8BBE;&#x7F6E;&#x5F00;&#x673A;&#x81EA;&#x542F;&#x5E76;&#x542F;&#x52A8;docker&#x670D;&#x52A1;
sudo systemctl enable docker.service &amp;&amp; sudo systemctl start docker.service

# &#x67E5;&#x770B;&#x955C;&#x50CF;
docker images

# &#x62C9;&#x53D6;&#x955C;&#x50CF;
docker pull &lt;image&gt;[:tag]
&#x4F8B;&#xFF1A;docker pull nginx:1.10.0

# &#x5220;&#x9664;&#x955C;&#x50CF;
docker rmi &lt;image&gt;[:tag]
&#x4F8B;&#xFF1A;docker rmi nginx:1.10.0

# &#x542F;&#x52A8;docker&#x5BB9;&#x5668;
docker run [args...] &lt;iamge&gt;
&#x4F8B;&#xFF1A;docker run -d -p 80:80 --name web_server nginx

# &#x67E5;&#x770B;docker&#x8FDB;&#x7A0B;
docker ps -a

# &#x91CD;&#x542F;&#x5BB9;&#x5668;
docker restart &lt;&#x5BB9;&#x5668;ID/&#x540D;&#x5B57;&gt;

# &#x505C;&#x6B62;&#x5BB9;&#x5668;
docker stop &lt;&#x5BB9;&#x5668;ID/&#x540D;&#x5B57;&gt;

# &#x5220;&#x9664;&#x5BB9;&#x5668;
docker rm -f &lt;&#x5BB9;&#x5668;ID/&#x540D;&#x5B57;&gt;
</code></pre><hr><blockquote>docker-compose&#x5B89;&#x88C5;</blockquote><pre><code>pip install -U docker-compose

&#x6216;

curl -L &quot;https://get.daocloud.io/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)&quot; &gt; /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
</code></pre><blockquote>docker-compose&#x4F7F;&#x7528;</blockquote><pre><code># &#x542F;&#x52A8;&#x5BB9;&#x5668;&#x670D;&#x52A1;
docker-compose -f &lt;&#x914D;&#x7F6E;&#x6587;&#x4EF6;&gt; up -d
&#x4F8B;&#xFF1A;docker-compose -f ~/nginx.yml up -d

cat ~/nginx.yml
version: &apos;3&apos;
services:
  nginx:
    image: &apos;nginx&apos;
    container_name: web_server
    restart: always
    ports:
      - &apos;80:80&apos;

# &#x91CD;&#x542F;&#x5BB9;&#x5668;&#x670D;&#x52A1;
docker-compose -f &lt;&#x914D;&#x7F6E;&#x6587;&#x4EF6;&gt; restart [&#x5BB9;&#x5668;ID/&#x540D;&#x5B57;]

# &#x67E5;&#x770B;&#x5BB9;&#x5668;&#x670D;&#x52A1;
docker-compose -f &lt;&#x914D;&#x7F6E;&#x6587;&#x4EF6;&gt; ps
</code></pre>]]></content:encoded></item><item><title><![CDATA[Ubuntu之netplan踩坑记录]]></title><description><![CDATA[<h1 id="%E8%83%8C%E6%99%AF">&#x80CC;&#x666F;</h1><p>&#x672C;&#x673A;&#x7528;vmware&#x5B89;&#x88C5;&#x865A;&#x673A;Ubuntu 20.04&#xFF0C;&#x6DFB;&#x52A0;2&#x5F20;&#x7F51;&#x5361;&#xFF0C;&#x4E00;&#x5F20;&#x5916;&#x7F51;&#x4F7F;&#x7528;&#xFF08;nat&#xFF09;&#xFF0C;&#x4E00;&#x5F20;&#x5185;&#x7F51;&#x4F7F;&#x7528;(host), &#x7ED3;&#x679C;&#x6240;&#x6709;&#x6D41;&#x91CF;&#x8D70;host&#x90A3;&#x5F20;&#x7F51;&#x5361;</p>]]></description><link>http://blog.helibin.com/ubuntu-zhinetplan-cai-keng-ji-lu/</link><guid isPermaLink="false">6190b293cf110e00011c46e9</guid><dc:creator><![CDATA[Lybeen]]></dc:creator><pubDate>Sun, 14 Nov 2021 06:54:11 GMT</pubDate><content:encoded><![CDATA[<h1 id="%E8%83%8C%E6%99%AF">&#x80CC;&#x666F;</h1><p>&#x672C;&#x673A;&#x7528;vmware&#x5B89;&#x88C5;&#x865A;&#x673A;Ubuntu 20.04&#xFF0C;&#x6DFB;&#x52A0;2&#x5F20;&#x7F51;&#x5361;&#xFF0C;&#x4E00;&#x5F20;&#x5916;&#x7F51;&#x4F7F;&#x7528;&#xFF08;nat&#xFF09;&#xFF0C;&#x4E00;&#x5F20;&#x5185;&#x7F51;&#x4F7F;&#x7528;(host), &#x7ED3;&#x679C;&#x6240;&#x6709;&#x6D41;&#x91CF;&#x8D70;host&#x90A3;&#x5F20;&#x7F51;&#x5361;&#xFF0C;&#x5BFC;&#x81F4;&#x5916;&#x7F51;&#x4E0D;&#x901A;&#xFF0C;&#x7ECF;&#x8FC7;&#x4E00;&#x7CFB;&#x5217;&#x67E5;&#x8BE2;&#x8D44;&#x6599;&#x53CA;&#x6298;&#x817E;&#x7EC8;&#x4E8E;&#x89E3;&#x51B3;&#xFF0C;&#x73B0;&#x8BB0;&#x5F55;&#x4E4B;&#x3002;</p><blockquote>&#x5E38;&#x7528;&#x547D;&#x4EE4;</blockquote><pre><code># &#x7F51;&#x7EDC;&#x914D;&#x7F6E;&#x751F;&#x6548;
netplay apply

# &#x67E5;&#x770B;&#x8DEF;&#x7531;
ip route show

# &#x5220;&#x9664;&#x8DEF;&#x7531;
ip route del default via x.x.x.1
&#x4F8B;: ip route del default via 192.168.56.1

# dns&#x914D;&#x7F6E;&#x67E5;&#x770B;
resolvectl dns
</code></pre><blockquote>&#x73AF;&#x5883;</blockquote><pre><code>&#x865A;&#x62DF;&#x673A;: VMware Fusion 12
&#x7CFB;&#x7EDF;: Ubuntu 20.04 LTS
&#x7F51;&#x5361;1:
    &#x540D;&#x79F0;: enps33
    &#x7C7B;&#x578B;: nat
    &#x7F51;&#x5173;: 192.168.65.1
&#x7F51;&#x5361;2:
    &#x540D;&#x79F0;: enps34
    &#x7C7B;&#x578B;: host
    &#x7F51;&#x5173;: 192.168.56.1
</code></pre><h2 id="%E6%96%B9%E6%A1%88%E4%B8%80-%E5%88%A0%E9%99%A4%E9%BB%98%E8%AE%A4%E8%B7%AF%E7%94%B1">&#x65B9;&#x6848;&#x4E00;: &#x5220;&#x9664;&#x9ED8;&#x8BA4;&#x8DEF;&#x7531;</h2><ul><li>&#x4E34;&#x65F6;&#x65B9;&#x6848;<br>ip route del default via 192.168.56.1</li><li>&#x6301;&#x4E45;&#x65B9;&#x6848;<br>&#x52A0;&#x5165;&#x5F00;&#x673A;&#x81EA;&#x542F;</li></ul><pre><code>sudo tee /etc/rc.local&lt;&lt;EOF
#!/bin/sh
  
ip route del default via 192.168.56.1
EOF
</code></pre><h2 id="%E6%96%B9%E6%A1%88%E4%BA%8C%EF%BC%9A%E4%BF%AE%E6%94%B9netplan%E9%85%8D%E7%BD%AE%EF%BC%88%E6%8E%A8%E8%8D%90%EF%BC%89">&#x65B9;&#x6848;&#x4E8C;&#xFF1A;&#x4FEE;&#x6539;netplan&#x914D;&#x7F6E;&#xFF08;&#x63A8;&#x8350;&#xFF09;</h2><p>&#x5173;&#x952E;&#x70B9;&#x5728;&#x4E8E;metric&#x7684;&#x503C;&#xFF0C;&#x5982;&#x679C;&#x662F;DHCP&#x65B9;&#x5F0F;&#x9700;&#x8981;dhcp4-overrides&#x8986;&#x76D6;&#x4E0B;&#xFF0C;&#x5177;&#x4F53;&#x53C2;&#x8003;&#x5982;&#x4E0B;&#x914D;&#x7F6E;<br>cat /etc/netplan/00-installer-config.yaml</p><pre><code>network:
  version: 2
  ethernets:
    ens33-:
      dhcp4: true
      dhcp4-overrides:
        route-metric: 50 # &#x8DEF;&#x7531;&#x4F18;&#x5148;&#x7EA7;&#xFF0C;&#x8D8A;&#x5C0F;&#x4F18;&#x5148;&#x7EA7;&#x8D8A;&#x9AD8;
    ens33: # nat&#x7F51;&#x5361;
      optional: true
      dhcp4: false
      addresses:
        - 192.168.65.102/24
      nameservers:
        addresses:
          - 192.168.65.2
      routes:
      - to: 0.0.0.0/0
        via: 192.168.65.2
        metric: 50 # &#x8DEF;&#x7531;&#x4F18;&#x5148;&#x7EA7;&#xFF0C;&#x8D8A;&#x5C0F;&#x4F18;&#x5148;&#x7EA7;&#x8D8A;&#x9AD8;
        
    ens34: # host&#x7F51;&#x5361;
      optional: true # &#x7CFB;&#x7EDF;&#x542F;&#x52A8;&#x4E0D;&#x7528;&#x7B49;&#x5F85;&#x7F51;&#x7EDC;&#x63A5;&#x53E3;&#x5B8C;&#x5168;&#x6FC0;&#x6D3B;
      dhcp4: false
      addresses:
        - 192.168.56.102/24
      routes:
      - to: 0.0.0.0/0
        via: 192.168.56.1
        metric: 100
</code></pre><p>ip route show</p><pre><code>default via 192.168.65.2 dev ens33 proto static metric 50 
default via 192.168.56.1 dev ens34 proto static metric 100 
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown 
192.168.56.0/24 dev ens34 proto kernel scope link src 192.168.56.102 
192.168.65.0/24 dev ens33 proto kernel scope link src 192.168.65.102
</code></pre><p>ping qq.com &#x6210;&#x529F;<br>ping 192.168.56.1 &#x6210;&#x529F;</p>]]></content:encoded></item><item><title><![CDATA[道闸屏显数据下发（crc16校验）]]></title><description><![CDATA[<!--kg-card-begin: markdown--><pre><code>const bin2base64 = (input) =&gt; {
  var base64_chars =
    &quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/&quot;;
  var ret =[];
  var i = 0;
  var j = 0;
  var char_array_3 = new Array(3);
  var char_array_4 = new Array(4);
  var in_len = input.length;
  var pos = 0;

  while (in_len--) {
    char_array_3[i++] = input[pos++];
    if</code></pre>]]></description><link>http://blog.helibin.com/dao-zha-ping-xian-shu-ju-xia-fa/</link><guid isPermaLink="false">6184e0fecf110e00011c46d6</guid><dc:creator><![CDATA[Lybeen]]></dc:creator><pubDate>Fri, 05 Nov 2021 07:47:10 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><pre><code>const bin2base64 = (input) =&gt; {
  var base64_chars =
    &quot;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/&quot;;
  var ret =[];
  var i = 0;
  var j = 0;
  var char_array_3 = new Array(3);
  var char_array_4 = new Array(4);
  var in_len = input.length;
  var pos = 0;

  while (in_len--) {
    char_array_3[i++] = input[pos++];
    if (i == 3) {
      char_array_4[0] = (char_array_3[0] &amp; 0xfc) &gt;&gt; 2;
      char_array_4[1] =
        ((char_array_3[0] &amp; 0x03) &lt;&lt; 4) + ((char_array_3[1] &amp; 0xf0) &gt;&gt; 4);
      char_array_4[2] =
        ((char_array_3[1] &amp; 0x0f) &lt;&lt; 2) + ((char_array_3[2] &amp; 0xc0) &gt;&gt; 6);
      char_array_4[3] = char_array_3[2] &amp; 0x3f;

      for (i = 0; i &lt; 4; i++) ret += base64_chars.charAt(char_array_4[i]);
      i = 0;
    }
  }

  if (i) {
    for (j = i; j &lt; 3; j++) char_array_3[j] = 0;

    char_array_4[0] = (char_array_3[0] &amp; 0xfc) &gt;&gt; 2;
    char_array_4[1] =
      ((char_array_3[0] &amp; 0x03) &lt;&lt; 4) + ((char_array_3[1] &amp; 0xf0) &gt;&gt; 4);
    char_array_4[2] =
      ((char_array_3[1] &amp; 0x0f) &lt;&lt; 2) + ((char_array_3[2] &amp; 0xc0) &gt;&gt; 6);
    char_array_4[3] = char_array_3[2] &amp; 0x3f;

    for (j = 0; j &lt; i + 1; j++) ret += base64_chars.charAt(char_array_4[j]);

    while (i++ &lt; 3) ret += &quot;=&quot;;
  }

  return ret;
}
</code></pre>
<pre><code>const hex2Base64 = (hexStr) =&gt; {
  hexStr = hexStr.replace(/ /g, &apos;&apos;)
  var binary = [];
  for (var i = 0; i &lt; hexStr.length / 2; i++) {
    var h = hexStr.substr(i * 2, 2);
    binary[i] = parseInt(h, 16);
  }
  return bin2base64(binary);
}
</code></pre>
<pre><code>const table = [
  0x0000, 0x8005, 0x800f, 0x000a, 0x801b, 0x001e, 0x0014, 0x8011,
  0x8033, 0x0036, 0x003c, 0x8039, 0x0028, 0x802d, 0x8027, 0x0022,
  0x8063, 0x0066, 0x006c, 0x8069, 0x0078, 0x807d, 0x8077, 0x0072,
  0x0050, 0x8055, 0x805f, 0x005a, 0x804b, 0x004e, 0x0044, 0x8041,
  0x80c3, 0x00c6, 0x00cc, 0x80c9, 0x00d8, 0x80dd, 0x80d7, 0x00d2,
  0x00f0, 0x80f5, 0x80ff, 0x00fa, 0x80eb, 0x00ee, 0x00e4, 0x80e1,
  0x00a0, 0x80a5, 0x80af, 0x00aa, 0x80bb, 0x00be, 0x00b4, 0x80b1,
  0x8093, 0x0096, 0x009c, 0x8099, 0x0088, 0x808d, 0x8087, 0x0082,
  0x8183, 0x0186, 0x018c, 0x8189, 0x0198, 0x819d, 0x8197, 0x0192,
  0x01b0, 0x81b5, 0x81bf, 0x01ba, 0x81ab, 0x01ae, 0x01a4, 0x81a1,
  0x01e0, 0x81e5, 0x81ef, 0x01ea, 0x81fb, 0x01fe, 0x01f4, 0x81f1,
  0x81d3, 0x01d6, 0x01dc, 0x81d9, 0x01c8, 0x81cd, 0x81c7, 0x01c2,
  0x0140, 0x8145, 0x814f, 0x014a, 0x815b, 0x015e, 0x0154, 0x8151,
  0x8173, 0x0176, 0x017c, 0x8179, 0x0168, 0x816d, 0x8167, 0x0162,
  0x8123, 0x0126, 0x012c, 0x8129, 0x0138, 0x813d, 0x8137, 0x0132,
  0x0110, 0x8115, 0x811f, 0x011a, 0x810b, 0x010e, 0x0104, 0x8101,
  0x8303, 0x0306, 0x030c, 0x8309, 0x0318, 0x831d, 0x8317, 0x0312,
  0x0330, 0x8335, 0x833f, 0x033a, 0x832b, 0x032e, 0x0324, 0x8321,
  0x0360, 0x8365, 0x836f, 0x036a, 0x837b, 0x037e, 0x0374, 0x8371,
  0x8353, 0x0356, 0x035c, 0x8359, 0x0348, 0x834d, 0x8347, 0x0342,
  0x03c0, 0x83c5, 0x83cf, 0x03ca, 0x83db, 0x03de, 0x03d4, 0x83d1,
  0x83f3, 0x03f6, 0x03fc, 0x83f9, 0x03e8, 0x83ed, 0x83e7, 0x03e2,
  0x83a3, 0x03a6, 0x03ac, 0x83a9, 0x03b8, 0x83bd, 0x83b7, 0x03b2,
  0x0390, 0x8395, 0x839f, 0x039a, 0x838b, 0x038e, 0x0384, 0x8381,
  0x0280, 0x8285, 0x828f, 0x028a, 0x829b, 0x029e, 0x0294, 0x8291,
  0x82b3, 0x02b6, 0x02bc, 0x82b9, 0x02a8, 0x82ad, 0x82a7, 0x02a2,
  0x82e3, 0x02e6, 0x02ec, 0x82e9, 0x02f8, 0x82fd, 0x82f7, 0x02f2,
  0x02d0, 0x82d5, 0x82df, 0x02da, 0x82cb, 0x02ce, 0x02c4, 0x82c1,
  0x8243, 0x0246, 0x024c, 0x8249, 0x0258, 0x825d, 0x8257, 0x0252,
  0x0270, 0x8275, 0x827f, 0x027a, 0x826b, 0x026e, 0x0264, 0x8261,
  0x0220, 0x8225, 0x822f, 0x022a, 0x823b, 0x023e, 0x0234, 0x8231,
  0x8213, 0x0216, 0x021c, 0x8219, 0x0208, 0x820d, 0x8207, 0x0202
]

const crc16CheckSum = (data) =&gt; {
  if (!data.length) return 0x00
  if (!Buffer.isBuffer(data)) data = Buffer.from(data)

  let crc = 0x00
  let tableIdx

  for (let d of data) {
    tableIdx = (crc &gt;&gt; 8) ^ d
    crc = ((crc &lt;&lt; 8) ^ table[tableIdx]) &amp; 0xffff;
  }

  return crc.toString(16).toUpperCase()
}
</code></pre>
<pre><code>const hex2Arr = (hex) =&gt; {
  //&#x6E05;&#x9664;&#x6240;&#x6709;&#x7A7A;&#x683C;
  hex = hex.replace(/\s/g, &quot;&quot;);
  //&#x82E5;&#x5B57;&#x7B26;&#x4E2A;&#x6570;&#x4E3A;&#x5947;&#x6570;&#xFF0C;&#x8865;&#x4E00;&#x4E2A;&#x7A7A;&#x683C;
  hex += hex.length % 2 ? &quot; &quot; : &quot;&quot;;

  const arr = [];
  for (var i = 0; i &lt; hex.length / 2; i++) {
    arr.push(hex.substr(i * 2, 2));
  }
  return (&apos;0x&apos; + arr.join(&apos; 0x&apos;)).split(&apos; &apos;);
};
</code></pre>
<pre><code>let gen485Data = (fnCode = 10, word = &apos;&apos;, subcmd = &apos;&apos;, loop = 1) =&gt; {
//   const iconv = require(&apos;iconv-lite&apos;)

  const hexStart = &apos;AA55&apos;
  const hexFirst = &apos;FFFF&apos; + String(fnCode).toUpperCase().padStart(2, &apos;0&apos;)
  const hexSubcmd = subcmd &amp;&amp; String(subcmd).toString(16).toUpperCase().padStart(2, &apos;0&apos;)
  const hexLoop = loop &amp;&amp; String(loop).toString(16).toUpperCase().padStart(2, &apos;0&apos;)
  const hexData = iconvLite.encode(word, &apos;GBK&apos;).toString(&apos;hex&apos;).toUpperCase()
  const hexLen = (~~!!hexSubcmd + ~~!!hexLoop + hexData.length / 2 + 2).toString(16).toUpperCase().padStart(2, &apos;0&apos;)
  let hexStr = hexFirst + hexLen + hexSubcmd + hexLoop + hexData
  const hexCrc = crc16CheckSum(hex2Arr(hexStr))
  
  const targetData = hex2Base64(hexStart + hexStr + hexCrc)

  return targetData
}

</code></pre>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[虚拟环境]]></title><description><![CDATA[<p>virtualenv</p><ul><li>&#x5B89;&#x88C5;</li></ul><pre><code class="language-text">pip install virtualenv
</code></pre><ul><li>&#x73AF;&#x5883;&#x53D8;&#x91CF;</li></ul><p>&#x7F16;&#x8F91;~/.bash_profile&#xFF0C;&#x8FFD;&#x52A0;</p><pre><code class="language-text"># virtualenvwrapper
if [ -f /usr/local/bin/virtualenvwrapper.sh ]; then
   export WORKON_HOME=~/.virtualenvs
   export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python
   source /usr/local/bin/virtualenvwrapper.sh
fi
</code></pre><p>virtualenvwrapper</p><ul><li>&#x5B89;&#x88C5;</li></ul><pre><code class="language-text">pip install virtualenvwrapper</code></pre>]]></description><link>http://blog.helibin.com/xu-ni-huan-jing/</link><guid isPermaLink="false">5f6aaf228cd36a000187b857</guid><category><![CDATA[Python]]></category><dc:creator><![CDATA[Lybeen]]></dc:creator><pubDate>Wed, 23 Sep 2020 02:12:50 GMT</pubDate><content:encoded><![CDATA[<p>virtualenv</p><ul><li>&#x5B89;&#x88C5;</li></ul><pre><code class="language-text">pip install virtualenv
</code></pre><ul><li>&#x73AF;&#x5883;&#x53D8;&#x91CF;</li></ul><p>&#x7F16;&#x8F91;~/.bash_profile&#xFF0C;&#x8FFD;&#x52A0;</p><pre><code class="language-text"># virtualenvwrapper
if [ -f /usr/local/bin/virtualenvwrapper.sh ]; then
   export WORKON_HOME=~/.virtualenvs
   export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python
   source /usr/local/bin/virtualenvwrapper.sh
fi
</code></pre><p>virtualenvwrapper</p><ul><li>&#x5B89;&#x88C5;</li></ul><pre><code class="language-text">pip install virtualenvwrapper
</code></pre><ul><li>&#x5E38;&#x7528;&#x547D;&#x4EE4;</li></ul><pre><code class="language-text">mkvirtualenv project_env # &#x521B;&#x5EFA;
rmvirtualenv project_env # &#x5220;&#x9664;
lsvirtualenv # &#x5217;&#x4E3E;&#x6240;&#x6709;&#x7684;&#x73AF;&#x5883;&#x3002;
cdvirtualenv # &#x5BFC;&#x822A;&#x5230;&#x5F53;&#x524D;&#x6FC0;&#x6D3B;&#x7684;&#x865A;&#x62DF;&#x73AF;&#x5883;&#x7684;&#x76EE;&#x5F55;&#x4E2D;&#xFF0C;&#x6BD4;&#x5982;&#x8BF4;&#x8FD9;&#x6837;&#x60A8;&#x5C31;&#x80FD;&#x591F;&#x6D4F;&#x89C8;&#x5B83;&#x7684; site-packages&#x3002;
cdsitepackages # &#x548C;&#x4E0A;&#x9762;&#x7684;&#x7C7B;&#x4F3C;&#xFF0C;&#x4F46;&#x662F;&#x662F;&#x76F4;&#x63A5;&#x8FDB;&#x5165;&#x5230; site-packages &#x76EE;&#x5F55;&#x4E2D;&#x3002;
lssitepackages # &#x663E;&#x793A; site-packages &#x76EE;&#x5F55;&#x4E2D;&#x7684;&#x5185;&#x5BB9;&#x3002;
</code></pre><ul><li>&#x5207;&#x6362;</li></ul><pre><code class="language-text">workon [project_env]
</code></pre>]]></content:encoded></item><item><title><![CDATA[Docker从零到壹]]></title><description><![CDATA[<p>&#x4EC0;&#x4E48;&#x662F;docker&#xFF1F;</p><p>balabala...&#xFEFF;&#x200B;<br>macGUI&#x5BA2;&#x6237;&#x7AEF;&#x4E0B;&#x8F7D;&#xFF1A;<a href="https://download.docker.com/mac/stable/Docker.dmg">https://download.docker.com/mac/stable/Docker.dmg</a><br>windwosGUI&#x5BA2;&#x6237;&#x7AEF;&#x4E0B;&#x8F7D;: <a href="https://download.docker.com/win/stable/Docker%20Desktop%20Installer.exe">https://download.docker.com/win/stable/Docker%20Desktop%20Installer.exe</a><br>kitematic&#x5BA2;&#x6237;&#x7AEF;&#x4E0B;&#x8F7D;: <a href="https://download.docker.com/kitematic/Kitematic-Mac.zip">https://download.docker.com/kitematic/</a></p>]]></description><link>http://blog.helibin.com/docker-cong-ling-dao-yi/</link><guid isPermaLink="false">5f6428948cd36a000187b850</guid><category><![CDATA[Docker]]></category><dc:creator><![CDATA[Lybeen]]></dc:creator><pubDate>Fri, 18 Sep 2020 03:25:08 GMT</pubDate><content:encoded><![CDATA[<p>&#x4EC0;&#x4E48;&#x662F;docker&#xFF1F;</p><p>balabala...&#xFEFF;&#x200B;<br>macGUI&#x5BA2;&#x6237;&#x7AEF;&#x4E0B;&#x8F7D;&#xFF1A;<a href="https://download.docker.com/mac/stable/Docker.dmg">https://download.docker.com/mac/stable/Docker.dmg</a><br>windwosGUI&#x5BA2;&#x6237;&#x7AEF;&#x4E0B;&#x8F7D;: <a href="https://download.docker.com/win/stable/Docker%20Desktop%20Installer.exe">https://download.docker.com/win/stable/Docker%20Desktop%20Installer.exe</a><br>kitematic&#x5BA2;&#x6237;&#x7AEF;&#x4E0B;&#x8F7D;: <a href="https://download.docker.com/kitematic/Kitematic-Mac.zip">https://download.docker.com/kitematic/Kitematic-Mac.zip</a></p><p>&#x4F7F;&#x7528;docker&#x524D;&#x7F6E;&#x6761;&#x4EF6;</p><pre><code class="language-text">Docker requires a 64-bit OS and version 3.10 or higher of the Linux kernel.
// &#x7FFB;&#x8BD1;&#xFF1A;docker &#x9700;&#x8981;64&#x4F4D;&#x64CD;&#x4F5C;&#x7CFB;&#x7EDF; &#x5E76;&#x4E14;linux&#x5185;&#x6838;&#x5927;&#x4E8E;&#x6216;&#x7B49;&#x4E8E;3.10
</code></pre><p>&#x5B89;&#x88C5;</p><pre><code class="language-text">curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
</code></pre><p>&#x914D;&#x7F6E;Docker&#x52A0;&#x901F;&#x5668;</p><pre><code class="language-text"># Docker&#x4E2D;&#x56FD;&#x955C;&#x50CF;
&#x4FEE;&#x6539; /etc/docker/daemon.json &#x6587;&#x4EF6;&#x5E76;&#x6DFB;&#x52A0;&#x4E0A; registry-mirrors &#x952E;&#x503C;&#xFF1A;
{
    &quot;registry-mirrors&quot;: [
        &quot;https://registry.docker-cn.com&quot;,
        &quot;https://docker.mirrors.ustc.edu.cn&quot;
    ]
}

# daocloud&#x52A0;&#x901F;
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
</code></pre><p>&#x542F;&#x52A8;</p><pre><code class="language-text">sudo systemctl start docker
sudo systemctl enable docker.service // &#x5F00;&#x673A;&#x81EA;&#x542F;
</code></pre><p>&#x4F7F;&#x7528;</p><pre><code class="language-text">sudo groupadd docker // &#x589E;&#x52A0;docker&#x7EC4;
sudo gpasswd -a $USER docker // &#x5C06;&#x5F53;&#x524D;&#x7528;&#x6237;&#x52A0;&#x5165;&#x5230;docker&#x7684;&#x7528;&#x6237;&#x7EC4;&#x4E2D;
sudo newgrp docker // &#x66F4;&#x65B0;docker&#x7528;&#x6237;&#x7EC4;
docker run --rm hello-world // &#x9A8C;&#x8BC1;&#x662F;&#x5426;&#x6210;&#x529F;&#x5B89;&#x88C5;
</code></pre><p>&#x5378;&#x8F7D;</p><pre><code class="language-text">sudo yum remove docker*
sudo rm -rf /var/lib/docker
</code></pre><p>&#x4F7F;&#x7528;</p><pre><code class="language-text">&#x4E0B;&#x8F7D;docker&#x955C;&#x50CF;&#xFF1A;
docker pull &lt;image-name&gt;
&#x521B;&#x5EFA;docker:
docker run &lt;image-name&gt;
&#x4F8B;&#xFF1A;docker run -d -p 27017:27017 --name mongo mongo
&#x7BA1;&#x7406;docker&#xFF1A;
docker ps # &#x67E5;&#x770B; 
docker stop &lt;NAMES|ID&gt; #&#x505C;&#x6B62;&#x67D0;&#x4E2A;&#x5BB9;&#x5668;
docker start &lt;NAMES|ID&gt; #&#x542F;&#x52A8;&#x67D0;&#x4E2A;&#x5BB9;&#x5668;
docker restart &lt;NAMES|ID&gt; #&#x91CD;&#x542F;&#x67D0;&#x4E2A;&#x5BB9;&#x5668;
docker kill &lt;NAMES|ID&gt; #&#x6740;&#x6389;&#x67D0;&#x4E2A;&#x5BB9;&#x5668;

&#x67E5;&#x770B;docker&#x955C;&#x50CF;&#xFF1A;
docker images

&#x8FDB;&#x5165;&#x5BB9;&#x5668;
docker exec -it &lt;&#x8FD0;&#x884C;&#x7684;&#x5BB9;&#x5668;ID&gt; sh
</code></pre><p>Alpine&#x5BB9;&#x5668;&#x5B89;&#x88C5;&#x8F6F;&#x4EF6;</p><pre><code class="language-text">apk add --update curl
</code></pre>]]></content:encoded></item><item><title><![CDATA[外借金钱原则]]></title><description><![CDATA[<p>&#x6551;&#x6025;&#x4E0D;&#x6551;&#x7A77;&#x7684;&#x539F;&#x5219;</p><ul><li>&#x9700;&#x8981;&#x94B1;&#x770B;&#x75C5;&#xFF0C;&#x8FD9;&#x4E2A;&#x662F;&#x7B2C;&#x4E00;&#x6025;<br>&#x5C24;&#x5176;&#x662F;&#x4F60;&#x7684;&#x4EB2;&#x621A;&#x5982;&#x679C;&#x9700;&#x8981;&#x94B1;&#x770B;&#x75C5;&#xFF0C;&#x8FD9;&#x4E2A;&#x80FD;&#x501F;&#x5C31;&#x501F;&#x70B9;&#xFF0C;&#x6BD5;&#x7ADF;&#x8FD9;&#x662F;&#x6551;&#x547D;&#x94B1;</li></ul>]]></description><link>http://blog.helibin.com/wai-jie-jin-qian-yuan-ze/</link><guid isPermaLink="false">5e9a883336e8e500012ee12a</guid><category><![CDATA[经济]]></category><dc:creator><![CDATA[Lybeen]]></dc:creator><pubDate>Sat, 18 Apr 2020 04:55:15 GMT</pubDate><content:encoded><![CDATA[<p>&#x6551;&#x6025;&#x4E0D;&#x6551;&#x7A77;&#x7684;&#x539F;&#x5219;</p><ul><li>&#x9700;&#x8981;&#x94B1;&#x770B;&#x75C5;&#xFF0C;&#x8FD9;&#x4E2A;&#x662F;&#x7B2C;&#x4E00;&#x6025;<br>&#x5C24;&#x5176;&#x662F;&#x4F60;&#x7684;&#x4EB2;&#x621A;&#x5982;&#x679C;&#x9700;&#x8981;&#x94B1;&#x770B;&#x75C5;&#xFF0C;&#x8FD9;&#x4E2A;&#x80FD;&#x501F;&#x5C31;&#x501F;&#x70B9;&#xFF0C;&#x6BD5;&#x7ADF;&#x8FD9;&#x662F;&#x6551;&#x547D;&#x94B1;&#xFF0C;&#x5982;&#x679C;&#x4EB2;&#x4EBA;&#x90FD;&#x89C1;&#x6B7B;&#x4E0D;&#x6551;&#xFF0C;&#x90A3;&#x8FD9;&#x4E2A;&#x793E;&#x4F1A;&#x5C82;&#x4E0D;&#x662F;&#x592A;&#x51B7;&#x6F20;&#x4E86;&#x3002;</li><li>&#x9700;&#x8981;&#x94B1;&#x529E;&#x4E27;&#x4E8B;&#xFF0C;&#x8FD9;&#x4E2A;&#x662F;&#x7B2C;&#x4E8C;&#x6025;<br>&#x53E4;&#x4EE3;&#x597D;&#x591A;&#x6E05;&#x8D2B;&#x5B98;&#x5458;&#x6B7B;&#x540E;&#x8FDE;&#x4E2A;&#x68FA;&#x6750;&#x90FD;&#x4E70;&#x4E0D;&#x8D77;&#xFF0C;&#x597D;&#x591A;&#x540C;&#x50DA;&#x90FD;&#x4F1A;&#x501F;&#x94B1;&#x8D44;&#x52A9;&#x5176;&#x5B50;&#x5B59;&#x4E70;&#x4E2A;&#x68FA;&#x6750;&#x5165;&#x846C;&#x53CB;&#x4EBA;&#x3002;</li><li>&#x9700;&#x8981;&#x94B1;&#x5A36;&#x5AB3;&#x5987;&#xFF0C;&#x8FD9;&#x4E2A;&#x662F;&#x7B2C;&#x4E09;&#x6025;<br>&#x5728;&#x4E2D;&#x56FD;&#x4E0D;&#x7BA1;&#x662F;&#x53E4;&#x4EE3;&#x8FD8;&#x662F;&#x73B0;&#x4EE3;&#x5A36;&#x4E2A;&#x5AB3;&#x5987;&#x82B1;&#x8D39;&#x5BF9;&#x4E00;&#x822C;&#x5BB6;&#x5EAD;&#x6765;&#x8BF4;&#x90FD;&#x662F;&#x5927;&#x6570;&#x76EE;&#xFF0C;&#x4FD7;&#x8BDD;&#x8BF4;&#xFF1A;&#x4E0D;&#x5B5D;&#x6709;&#x4E09;&#xFF0C;&#x65E0;&#x540E;&#x4E3A;&#x5927;&#x3002;&#x8FD9;&#x6837;&#x7684;&#x4E8B;&#x60C5;&#x80FD;&#x5E2E;&#x5C31;&#x5E2E;&#x4E86;&#x3002;</li><li>&#x9700;&#x8981;&#x94B1;&#x8BFB;&#x4E66;&#xFF0C;&#x8FD9;&#x4E2A;&#x662F;&#x7B2C;&#x56DB;&#x6025;<br>&#x5982;&#x4ECA;&#x8FD8;&#x6709;&#x4E00;&#x4E9B;&#x5BB6;&#x5EAD;&#x7684;&#x5B69;&#x5B50;&#x8003;&#x4E0A;&#x5927;&#x5B66;&#xFF0C;&#x7531;&#x4E8E;&#x5BB6;&#x5EAD;&#x56F0;&#x96BE;&#x65E0;&#x6CD5;&#x5C31;&#x8BFB;&#x7684;&#xFF0C;&#x8FD9;&#x4E2A;&#x65F6;&#x5019;&#x505A;&#x4E3A;&#x4EB2;&#x621A;&#x6216;&#x670B;&#x53CB;&#xFF0C;&#x80FD;&#x76F8;&#x52A9;&#x5C31;&#x76F8;&#x52A9;&#x3002;&#x77E5;&#x8BC6;&#x53EF;&#x4EE5;&#x6539;&#x53D8;&#x4E00;&#x4E2A;&#x4EBA;&#x7684;&#x547D;&#x8FD0;&#xFF0C;&#x8FD9;&#x4E5F;&#x662F;&#x4E00;&#x4EF6;&#x79EF;&#x5FB7;&#x884C;&#x5584;&#x7684;&#x4E8B;&#x60C5;&#x3002;</li></ul><p>&#x6597;&#x7C73;&#x517B;&#x6069;&#x4EBA;, &#x62C5;&#x7C73;&#x517B;&#x4EC7;&#x4EBA;</p><ul><li>&#x5C0F;&#x94B1;&#x4E0D;&#x8981;&#x592A;&#x8BA1;&#x8F83;&#xFF0C;&#x5927;&#x91D1;&#x989D;&#x4E00;&#x5B9A;&#x8981;&#x7ACB;&#x5B57;&#x636E;<br>&#x9632;&#x6B62;&#x5BF9;&#x65B9;&#x6709;&#x4FA5;&#x5E78;&#x5FC3;&#x7406;&#x3002;</li><li>&#x4E8B;&#x4E0D;&#x8FC7;&#x4E09;<br>&#x501F;&#x94B1;&#x4E00;&#x6B21;&#x4E24;&#x6B21;&#x53EF;&#x4EE5;&#xFF0C;&#x7B2C;&#x4E09;&#x6B21;&#x8FD8;&#x627E;&#x4F60;&#x501F;&#x94B1;&#x7684;&#xFF0C;&#x4E00;&#x5B9A;&#x662F;&#x4E0D;&#x8981;&#x8138;&#x7684;&#x4EBA;&#xFF0C;&#x57FA;&#x672C;&#x4E0A;&#x4E0D;&#x8981;&#x6307;&#x671B;&#x4ED6;&#x8FD8;&#x94B1;&#x4E86;&#xFF0C;&#x7B2C;&#x4E09;&#x6B21;&#x4E0D;&#x501F;&#x7ED9;&#x4ED6;&#xFF0C;&#x4ED6;&#x5FC3;&#x91CC;&#x5DF2;&#x7ECF;&#x5728;&#x6028;&#x6068;&#x4F60;&#x4E86;&#xFF0C;&#x4E0D;&#x4F1A;&#x8BB0;&#x7740;&#x4F60;&#x4E4B;&#x524D;&#x5E2E;&#x52A9;&#x8FC7;&#x4ED6;&#x3002;</li><li>&#x4E0D;&#x8981;&#x501F;&#x94B1;&#x7ED9;&#x559C;&#x6B22;&#x8D4C;&#x535A;&#x7684;&#x4EBA;&#x3002;</li></ul>]]></content:encoded></item><item><title><![CDATA[fds相关名词概念]]></title><description><![CDATA[<p>fds</p><p>fds, &#x5DE5;&#x5382;&#x6570;&#x636E;&#x7CFB;&#x7EDF;&#xFF0C;&#x5168;&#x79F0;Factory Data System</p><p>&#x7EC4;&#x6001;&#x8F6F;&#x4EF6;</p><p>&#x7EC4;&#x6001;&#x8F6F;&#x4EF6;&#xFF0C;SCADA&#xFF0C;&#x53C8;&#x79F0;&#x7EC4;&#x6001;&#x76D1;&#x63A7;&#x7CFB;&#x7EDF;&#x8F6F;&#x4EF6;&#xFF0C;&#x662F;&#x6307;&#x6570;&#x636E;&#x91C7;&#x96C6;&#x4E0E;&#x8FC7;&#x7A0B;&#x63A7;&#x5236;&#x7684;&#x4E13;&#x7528;</p>]]></description><link>http://blog.helibin.com/ming-ci-gai-nian/</link><guid isPermaLink="false">5e7b282736e8e500012ee11a</guid><category><![CDATA[fds]]></category><dc:creator><![CDATA[Lybeen]]></dc:creator><pubDate>Wed, 25 Mar 2020 09:45:11 GMT</pubDate><content:encoded><![CDATA[<p>fds</p><p>fds, &#x5DE5;&#x5382;&#x6570;&#x636E;&#x7CFB;&#x7EDF;&#xFF0C;&#x5168;&#x79F0;Factory Data System</p><p>&#x7EC4;&#x6001;&#x8F6F;&#x4EF6;</p><p>&#x7EC4;&#x6001;&#x8F6F;&#x4EF6;&#xFF0C;SCADA&#xFF0C;&#x53C8;&#x79F0;&#x7EC4;&#x6001;&#x76D1;&#x63A7;&#x7CFB;&#x7EDF;&#x8F6F;&#x4EF6;&#xFF0C;&#x662F;&#x6307;&#x6570;&#x636E;&#x91C7;&#x96C6;&#x4E0E;&#x8FC7;&#x7A0B;&#x63A7;&#x5236;&#x7684;&#x4E13;&#x7528;&#x8F6F;&#x4EF6;&#xFF0C;&#x4E5F;&#x662F;&#x6307;&#x5728;&#x81EA;&#x52A8;&#x63A7;&#x5236;&#x7CFB;&#x7EDF;&#x76D1;&#x63A7;&#x5C42;&#x4E00;&#x7EA7;&#x7684;&#x8F6F;&#x4EF6;&#x5E73;&#x53F0;&#x548C;&#x5F00;&#x53D1;&#x73AF;&#x5883;&#x3002;&#x8FD9;&#x4E9B;&#x8F6F;&#x4EF6;&#x5B9E;&#x9645;&#x4E0A;&#x4E5F;&#x662F;&#x4E00;&#x79CD;&#x901A;&#x8FC7;&#x7075;&#x6D3B;&#x7684;&#x7EC4;&#x6001;&#x65B9;&#x5F0F;&#xFF0C;&#x4E3A;&#x7528;&#x6237;&#x63D0;&#x4F9B;&#x5FEB;&#x901F;&#x6784;&#x5EFA;&#x5DE5;&#x4E1A;&#x81EA;&#x52A8;&#x63A7;&#x5236;&#x7CFB;&#x7EDF;&#x76D1;&#x63A7;&#x529F;&#x80FD;&#x7684;&#x3001;&#x901A;&#x7528;&#x5C42;&#x6B21;&#x7684;&#x8F6F;&#x4EF6;&#x5DE5;&#x5177;&#x3002;&#x7EC4;&#x6001;&#x8F6F;&#x4EF6;&#x5E7F;&#x6CDB;&#x5E94;&#x7528;&#x4E8E;&#x673A;&#x68B0;&#x3001;&#x6C7D;&#x8F66;&#x3001;&#x77F3;&#x6CB9;&#x3001;&#x5316;&#x5DE5;&#x3001;&#x9020;&#x7EB8;&#x3001;&#x6C34;&#x5904;&#x7406;&#x4EE5;&#x53CA;&#x8FC7;&#x7A0B;&#x63A7;&#x5236;&#x7B49;&#x8BF8;&#x591A;&#x9886;&#x57DF;&#x3002;</p><ul><li>InTouch<br>Wonderware&#x7684;InTouch&#x8F6F;&#x4EF6;&#x662F;&#x6700;&#x65E9;&#x8FDB;&#x5165;&#x6211;&#x56FD;&#x7684;&#x7EC4;&#x6001;&#x8F6F;&#x4EF6;&#x3002;&#x5728;80&#x5E74;&#x4EE3;&#x672B;&#x3001;90&#x5E74;&#x4EE3;&#x521D;&#xFF0C;&#x57FA;&#x4E8E;Windows3.1&#x7684;InTouch&#x8F6F;&#x4EF6;&#x66FE;&#x8BA9;&#x6211;&#x4EEC;&#x8033;&#x76EE;&#x4E00;&#x65B0;&#xFF0C;&#x5E76;&#x4E14;InTouch&#x63D0;&#x4F9B;&#x4E86;&#x4E30;&#x5BCC;&#x7684;&#x56FE;&#x5E93;&#x3002;</li></ul><p>&#x4F46;&#x662F;&#xFF0C;&#x65E9;&#x671F;&#x7684;InTouch&#x8F6F;&#x4EF6;&#x91C7;&#x7528;DDE&#x65B9;&#x5F0F;&#x4E0E;&#x9A71;&#x52A8;&#x7A0B;&#x5E8F;&#x901A;&#x4FE1;&#xFF0C;&#x6027;&#x80FD;&#x8F83;&#x5DEE;&#xFF0C;&#x6700;&#x65B0;&#x7684;InTouch7.0&#x7248;&#x5DF2;&#x7ECF;&#x5B8C;&#x5168;&#x57FA;&#x4E8E;32&#x4F4D;&#x7684;Windows&#x5E73;&#x53F0;&#xFF0C;&#x5E76;&#x4E14;&#x63D0;&#x4F9B;&#x4E86;OPC&#x652F;&#x6301;&#x3002;</p><ul><li>iFix</li></ul><p>Intellution&#x516C;&#x53F8;&#x4EE5;Fix&#x7EC4;&#x6001;&#x8F6F;&#x4EF6;&#x8D77;&#x5BB6;&#xFF0C;1995&#x5E74;&#x88AB;&#x7231;&#x9ED8;&#x751F;&#x6536;&#x8D2D;&#xFF0C;&#x73B0;&#x5728;&#x662F;&#x7231;&#x9ED8;&#x751F;&#x96C6;&#x56E2;&#x7684;&#x5168;&#x8D44;&#x5B50;&#x516C;&#x53F8;&#xFF0C;Fix6.x&#x8F6F;&#x4EF6;&#x63D0;&#x4F9B;&#x5DE5;&#x63A7;&#x4EBA;&#x5458;&#x719F;&#x6089;&#x7684;&#x6982;&#x5FF5;&#x548C;&#x64CD;&#x4F5C;&#x754C;&#x9762;&#xFF0C;&#x5E76;&#x63D0;&#x4F9B;&#x5B8C;&#x5907;&#x7684;&#x9A71;&#x52A8;&#x7A0B;&#x5E8F;&#xFF08;&#x9700;&#x5355;&#x72EC;&#x8D2D;&#x4E70;&#xFF09;&#x3002;</p><p>Intellution&#x5C06;&#x81EA;&#x5DF1;&#x6700;&#x65B0;&#x7684;&#x4EA7;&#x54C1;&#x7CFB;&#x5217;&#x547D;&#x540D;&#x4E3A;iFiX&#xFF0C;&#x5728;iFiX&#x4E2D;&#xFF0C;Intellution&#x63D0;&#x4F9B;&#x4E86;&#x5F3A;&#x5927;&#x7684;&#x7EC4;&#x6001;&#x529F;&#x80FD;&#xFF0C;&#x4F46;&#x65B0;&#x7248;&#x672C;&#x4E0E;&#x4EE5;&#x5F80;&#x7684;6.x&#x7248;&#x672C;&#x5E76;&#x4E0D;&#x5B8C;&#x5168;&#x517C;&#x5BB9;&#x3002;&#x539F;&#x6709;&#x7684;Script&#x8BED;&#x8A00;&#x6539;&#x4E3A;VBA&#xFF08;Visual Basic For Application&#xFF09;&#xFF0C;&#x5E76;&#x4E14;&#x5728;&#x5185;&#x90E8;&#x96C6;&#x6210;&#x4E86;&#x5FAE;&#x8F6F;&#x7684;VBA&#x5F00;&#x53D1;&#x73AF;&#x5883;&#x3002;</p><ul><li>Citech</li></ul><p>CiT&#x516C;&#x53F8;&#x7684;Citech&#x4E5F;&#x662F;&#x8F83;&#x65E9;&#x8FDB;&#x5165;&#x4E2D;&#x56FD;&#x5E02;&#x573A;&#x7684;&#x4EA7;&#x54C1;&#x3002;Citech&#x5177;&#x6709;&#x7B80;&#x6D01;&#x7684;&#x64CD;&#x4F5C;&#x65B9;&#x5F0F;&#xFF0C;&#x4F46;&#x5176;&#x64CD;&#x4F5C;&#x65B9;&#x5F0F;&#x66F4;&#x591A;&#x7684;&#x662F;&#x9762;&#x5411;&#x7A0B;&#x5E8F;&#x5458;&#xFF0C;&#x800C;&#x4E0D;&#x662F;&#x5DE5;&#x63A7;&#x7528;&#x6237;&#x3002;</p><p>Citech&#x63D0;&#x4F9B;&#x4E86;&#x7C7B;&#x4F3C;C&#x8BED;&#x8A00;&#x7684;&#x811A;&#x672C;&#x8BED;&#x8A00;&#x8FDB;&#x884C;&#x4E8C;&#x6B21;&#x5F00;&#x53D1;&#xFF0C;&#x4F46;&#x4E0E;iFix&#x4E0D;&#x540C;&#x7684;&#x662F;&#xFF0C;Citech&#x7684;&#x811A;&#x672C;&#x8BED;&#x8A00;&#x5E76;&#x975E;&#x662F;&#x9762;&#x5411;&#x5BF9;&#x8C61;&#x7684;&#xFF0C;&#x800C;&#x662F;&#x7C7B;&#x4F3C;&#x4E8E;C&#x8BED;&#x8A00;&#xFF0C;&#x8FD9;&#x65E0;&#x7591;&#x4E3A;&#x7528;&#x6237;&#x8FDB;&#x884C;&#x4E8C;&#x6B21;&#x5F00;&#x53D1;&#x589E;&#x52A0;&#x4E86;&#x96BE;&#x5EA6;&#x3002;</p><p>opc</p><p>OPC&#x662F;OLE for Process Control&#x7684;&#x7F29;&#x5199;&#xFF0C;&#x5373;&#x5E94;&#x7528;&#x4E8E;&#x8FC7;&#x7A0B;&#x63A7;&#x5236;&#x7684;OLE&#x3002;&#x5B83;&#x662F;&#x4E3A;&#x4E86;&#x89E3;&#x51B3;&#x5E94;&#x7528;&#x8F6F;&#x4EF6;&#x4E0E;&#x5404;&#x79CD;&#x8BBE;&#x5907;&#x9A71;&#x52A8;&#x7A0B;&#x5E8F;&#x7684;&#x901A;&#x4FE1;&#x800C;&#x4EA7;&#x751F;&#x7684;&#x4E00;&#x9879;&#x5DE5;&#x4E1A;&#x6280;&#x672F;&#x89C4;&#x8303;&#x548C;&#x6807;&#x51C6;&#x3002;&#x5B83;&#x91C7;&#x7528;&#x5BA2;&#x6237;/&#x670D;&#x52A1;&#x5668;&#x4F53;&#x7CFB;&#xFF0C;&#x57FA;&#x4E8E;Microsoft&#x7684;OLE/COM&#x6280;&#x672F;&#xFF0C;&#x4E3A;&#x786C;&#x4EF6;&#x5382;&#x5546;&#x548C;&#x5E94;&#x7528;&#x8F6F;&#x4EF6;&#x5F00;&#x53D1;&#x8005;&#x63D0;&#x4F9B;&#x4E86;&#x4E00;&#x5957;&#x6807;&#x51C6;&#x7684;&#x63A5;&#x53E3;&#x3002;</p><p>OLE</p><p>Object Linking and Embedding&#xFF0C;&#x5BF9;&#x8C61;&#x8FDE;&#x63A5;&#x4E0E;&#x5D4C;&#x5165;&#xFF0C;&#x7B80;&#x79F0;OLE&#x6280;&#x672F;&#x3002;OLE &#x4E0D;&#x4EC5;&#x662F;&#x684C;&#x9762;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x96C6;&#x6210;&#xFF0C;&#x800C;&#x4E14;&#x8FD8;&#x5B9A;&#x4E49;&#x548C;&#x5B9E;&#x73B0;&#x4E86;&#x4E00;&#x79CD;&#x5141;&#x8BB8;&#x5E94;&#x7528;&#x7A0B;&#x5E8F;&#x4F5C;&#x4E3A;&#x8F6F;&#x4EF6;&#x201C;&#x5BF9;&#x8C61;&#x201D;&#xFF08;&#x6570;&#x636E;&#x96C6;&#x5408;&#x548C;&#x64CD;&#x4F5C;&#x6570;&#x636E;&#x7684;&#x51FD;&#x6570;&#xFF09;&#x5F7C;&#x6B64;&#x8FDB;&#x884C;&#x201C;&#x8FDE;&#x63A5;&#x201D;&#x7684;&#x673A;&#x5236;&#xFF0C;&#x8FD9;&#x79CD;&#x8FDE;&#x63A5;&#x673A;&#x5236;&#x548C;&#x534F;&#x8BAE;&#x79F0;&#x4E3A;&#x7EC4;&#x4EF6;&#x5BF9;&#x8C61;&#x6A21;&#x578B;&#xFF08;COM&#xFF09;&#x3002;</p><p>MES</p><p>MES&#x7CFB;&#x7EDF;&#x5373;&#x5236;&#x9020;&#x6267;&#x884C;&#x7CFB;&#x7EDF; (manufacturing execution system&#xFF0C;&#x7B80;&#x79F0;MES&#xFF09;&#x662F;&#x7F8E;&#x56FD;AMR&#x516C;&#x53F8;(Advanced Manufacturing Research&#xFF0C;Inc&#xFF0E;)&#x5728;90&#x5E74;&#x4EE3;&#x521D;&#x63D0;&#x51FA;&#x7684;&#xFF0C;&#x65E8;&#x5728;&#x52A0;&#x5F3A;MRP&#x8BA1;&#x5212;&#x7684;&#x6267;&#x884C;&#x529F;&#x80FD;&#xFF0C;&#x628A;MRP&#x8BA1;&#x5212;&#x540C;&#x8F66;&#x95F4;&#x4F5C;&#x4E1A;&#x73B0;&#x573A;&#x63A7;&#x5236;&#xFF0C;&#x901A;&#x8FC7;&#x6267;&#x884C;&#x7CFB;&#x7EDF;&#x8054;&#x7CFB;&#x8D77;&#x6765;&#x3002;&#x8FD9;&#x91CC;&#x7684;&#x73B0;&#x573A;&#x63A7;&#x5236;&#x5305;&#x62EC;PLC&#x7A0B;&#x63A7;&#x5668;&#x3001;&#x6570;&#x636E;&#x91C7;&#x96C6;&#x5668;&#x3001;&#x6761;&#x5F62;&#x7801;&#x3001;&#x5404;&#x79CD;&#x8BA1;&#x91CF;&#x53CA;&#x68C0;&#x6D4B;&#x4EEA;&#x5668;&#x3001;&#x673A;&#x68B0;&#x624B;&#x7B49;&#x3002;MES&#x7CFB;&#x7EDF;&#x8BBE;&#x7F6E;&#x4E86;&#x5FC5;&#x8981;&#x7684;&#x63A5;&#x53E3;&#xFF0C;&#x4E0E;&#x63D0;&#x4F9B;&#x751F;&#x4EA7;&#x73B0;&#x573A;&#x63A7;&#x5236;&#x8BBE;&#x65BD;&#x7684;&#x5382;&#x5546;&#x5EFA;&#x7ACB;&#x5408;&#x4F5C;&#x5173;&#x7CFB;&#x3002;</p><p>plc</p><p>&#x53EF;&#x7F16;&#x7A0B;&#x903B;&#x8F91;&#x63A7;&#x5236;&#x5668;(Programmable Logic Controller&#xFF0C;PLC)&#xFF0C;&#x4E00;&#x79CD;&#x5177;&#x6709;&#x5FAE;&#x5904;&#x7406;&#x5668;&#x7684;&#x7528;&#x4E8E;&#x81EA;&#x52A8;&#x5316;&#x63A7;&#x5236;&#x7684;&#x6570;&#x5B57;&#x8FD0;&#x7B97;&#x63A7;&#x5236;&#x5668;&#xFF0C;&#x53EF;&#x4EE5;&#x5C06;&#x63A7;&#x5236;&#x6307;&#x4EE4;&#x968F;&#x65F6;&#x8F7D;&#x5165;&#x5185;&#x5B58;&#x8FDB;&#x884C;&#x50A8;&#x5B58;&#x4E0E;&#x6267;&#x884C;&#x3002;&#x53EF;&#x7F16;&#x7A0B;&#x63A7;&#x5236;&#x5668;&#x7531;CPU&#x3001;&#x6307;&#x4EE4;&#x53CA;&#x6570;&#x636E;&#x5185;&#x5B58;&#x3001;&#x8F93;&#x5165;/&#x8F93;&#x51FA;&#x63A5;&#x53E3;&#x3001;&#x7535;&#x6E90;&#x3001;&#x6570;&#x5B57;&#x6A21;&#x62DF;&#x8F6C;&#x6362;&#x7B49;&#x529F;&#x80FD;&#x5355;&#x5143;&#x7EC4;&#x6210;&#x3002;&#x65E9;&#x671F;&#x7684;&#x53EF;&#x7F16;&#x7A0B;&#x903B;&#x8F91;&#x63A7;&#x5236;&#x5668;&#x53EA;&#x6709;&#x903B;&#x8F91;&#x63A7;&#x5236;&#x7684;&#x529F;&#x80FD;&#xFF0C;&#x6240;&#x4EE5;&#x88AB;&#x547D;&#x540D;&#x4E3A;&#x53EF;&#x7F16;&#x7A0B;&#x903B;&#x8F91;&#x63A7;&#x5236;&#x5668;&#xFF0C;&#x540E;&#x6765;&#x968F;&#x7740;&#x4E0D;&#x65AD;&#x5730;&#x53D1;&#x5C55;&#xFF0C;&#x8FD9;&#x4E9B;&#x5F53;&#x521D;&#x529F;&#x80FD;&#x7B80;&#x5355;&#x7684;&#x8BA1;&#x7B97;&#x673A;&#x6A21;&#x5757;&#x5DF2;&#x7ECF;&#x6709;&#x4E86;&#x5305;&#x62EC;&#x903B;&#x8F91;&#x63A7;&#x5236;&#x3001;&#x65F6;&#x5E8F;&#x63A7;&#x5236;&#x3001;&#x6A21;&#x62DF;&#x63A7;&#x5236;&#x3001;&#x591A;&#x673A;&#x901A;&#x4FE1;&#x7B49;&#x5404;&#x7C7B;&#x529F;&#x80FD;&#xFF0C;&#x540D;&#x79F0;&#x4E5F;&#x6539;&#x4E3A;&#x53EF;&#x7F16;&#x7A0B;&#x63A7;&#x5236;&#x5668;(Programmable Controller)&#xFF0C;&#x4F46;&#x662F;&#x7531;&#x4E8E;&#x5B83;&#x7684;&#x7B80;&#x5199;PC&#x4E0E;&#x4E2A;&#x4EBA;&#x7535;&#x8111;(Personal Computer)&#x7684;&#x7B80;&#x5199;&#x76F8;&#x51B2;&#x7A81;&#xFF0C;&#x52A0;&#x4E0A;&#x4E60;&#x60EF;&#x7684;&#x539F;&#x56E0;&#xFF0C;&#x4EBA;&#x4EEC;&#x8FD8;&#x662F;&#x7ECF;&#x5E38;&#x4F7F;&#x7528;&#x53EF;&#x7F16;&#x7A0B;&#x903B;&#x8F91;&#x63A7;&#x5236;&#x5668;&#x8FD9;&#x4E00;&#x79F0;&#x547C;&#xFF0C;&#x5E76;&#x4ECD;&#x4F7F;&#x7528;PLC&#x8FD9;&#x4E00;&#x7F29;&#x5199;</p><p>Modbus</p><p>Modbus&#x662F;&#x4E00;&#x79CD;&#x4E32;&#x884C;&#x901A;&#x4FE1;&#x534F;&#x8BAE;&#xFF0C;&#x662F;Modicon&#x516C;&#x53F8;&#xFF08;&#x73B0;&#x5728;&#x7684;&#x65BD;&#x8010;&#x5FB7;&#x7535;&#x6C14; Schneider Electric&#xFF09;&#x4E8E;1979&#x5E74;&#x4E3A;&#x4F7F;&#x7528;&#x53EF;&#x7F16;&#x7A0B;&#x903B;&#x8F91;&#x63A7;&#x5236;&#x5668;&#xFF08;PLC&#xFF09;&#x901A;&#x4FE1;&#x800C;&#x53D1;&#x8868;&#x3002;Modbus&#x5DF2;&#x7ECF;&#x6210;&#x4E3A;&#x5DE5;&#x4E1A;&#x9886;&#x57DF;&#x901A;&#x4FE1;&#x534F;&#x8BAE;&#x7684;&#x4E1A;&#x754C;&#x6807;&#x51C6;&#xFF08;De facto&#xFF09;&#xFF0C;&#x5E76;&#x4E14;&#x73B0;&#x5728;&#x662F;&#x5DE5;&#x4E1A;&#x7535;&#x5B50;&#x8BBE;&#x5907;&#x4E4B;&#x95F4;&#x5E38;&#x7528;&#x7684;&#x8FDE;&#x63A5;&#x65B9;&#x5F0F;&#x3002;&#x5927;&#x591A;&#x6570;Modbus&#x8BBE;&#x5907;&#x901A;&#x4FE1;&#x901A;&#x8FC7;&#x4E32;&#x53E3;EIA-485&#x7269;&#x7406;&#x5C42;&#x8FDB;&#x884C;&#x3002;</p><p>FPGA</p><p>FPGA&#xFF08;Field Programmable Gate Array&#xFF09;&#x662F;&#x5728;PAL&#x3001;GAL&#x7B49;&#x53EF;&#x7F16;&#x7A0B;&#x5668;&#x4EF6;&#x7684;&#x57FA;&#x7840;&#x4E0A;&#x8FDB;&#x4E00;&#x6B65;&#x53D1;&#x5C55;&#x7684;&#x4EA7;&#x7269;&#x3002;&#x5B83;&#x662F;&#x4F5C;&#x4E3A;&#x4E13;&#x7528;&#x96C6;&#x6210;&#x7535;&#x8DEF;&#xFF08;ASIC&#xFF09;&#x9886;&#x57DF;&#x4E2D;&#x7684;&#x4E00;&#x79CD;&#x534A;&#x5B9A;&#x5236;&#x7535;&#x8DEF;&#x800C;&#x51FA;&#x73B0;&#x7684;&#xFF0C;&#x65E2;&#x89E3;&#x51B3;&#x4E86;&#x5B9A;&#x5236;&#x7535;&#x8DEF;&#x7684;&#x4E0D;&#x8DB3;&#xFF0C;&#x53C8;&#x514B;&#x670D;&#x4E86;&#x539F;&#x6709;&#x53EF;&#x7F16;&#x7A0B;&#x5668;&#x4EF6;&#x95E8;&#x7535;&#x8DEF;&#x6570;&#x6709;&#x9650;&#x7684;&#x7F3A;&#x70B9;&#x3002;FPGA&#x91C7;&#x7528;&#x4E86;&#x903B;&#x8F91;&#x5355;&#x5143;&#x9635;&#x5217;LCA&#xFF08;Logic Cell Array&#xFF09;&#x8FD9;&#x6837;&#x4E00;&#x4E2A;&#x6982;&#x5FF5;&#xFF0C;&#x5185;&#x90E8;&#x5305;&#x62EC;&#x53EF;&#x914D;&#x7F6E;&#x903B;&#x8F91;&#x6A21;&#x5757;CLB&#xFF08;Configurable Logic Block&#xFF09;&#x3001;&#x8F93;&#x5165;&#x8F93;&#x51FA;&#x6A21;&#x5757;IOB&#xFF08;Input Output Block&#xFF09;&#x548C;&#x5185;&#x90E8;&#x8FDE;&#x7EBF;&#xFF08;Interconnect&#xFF09;&#x4E09;&#x4E2A;&#x90E8;&#x5206;&#x3002; &#x73B0;&#x573A;&#x53EF;&#x7F16;&#x7A0B;&#x95E8;&#x9635;&#x5217;&#xFF08;FPGA&#xFF09;&#x662F;&#x53EF;&#x7F16;&#x7A0B;&#x5668;&#x4EF6;&#xFF0C;&#x4E0E;&#x4F20;&#x7EDF;&#x903B;&#x8F91;&#x7535;&#x8DEF;&#x548C;&#x95E8;&#x9635;&#x5217;&#xFF08;&#x5982;PAL&#xFF0C;GAL&#x53CA;CPLD&#x5668;&#x4EF6;&#xFF09;&#x76F8;&#x6BD4;&#xFF0C;FPGA&#x5177;&#x6709;&#x4E0D;&#x540C;&#x7684;&#x7ED3;&#x6784;</p><p>&#x667A;&#x80FD;&#x4E09;&#x83F1;&#x7F51;&#x5173;</p><p>&#x667A;&#x80FD;&#x4E09;&#x83F1;&#x7F51;&#x5173;&#x662F;&#x4E00;&#x6B3E;&#x652F;&#x6301;4G/3G/WIFI/PPPOE/ethernet&#x7B49;&#x5404;&#x79CD;&#x7F51;&#x7EDC;&#x63A5;&#x5165;&#x65B9;&#x5F0F;&#x3001;&#x652F;&#x6301;&#x5404;&#x79CD;&#x5DE5;&#x63A7;&#x534F;&#x8BAE;&#x89E3;&#x6790;&#xFF0C;&#x652F;&#x6301;MQTT&#x4E0A;&#x884C;&#x534F;&#x8BAE;&#xFF0C;&#x652F;&#x6301;&#x4E09;&#x83F1;&#x7F51;&#x5173;&#x4FE1;&#x606F;&#x91C7;&#x96C6;&#x7BA1;&#x7406;&#xFF0C;&#x652F;&#x6301;&#x8BBE;&#x5907;&#x548C;&#x53D8;&#x91CF;&#x7684;&#x5B9A;&#x4E49;&#x548C;&#x8FDC;&#x7A0B;&#x90E8;&#x7F72;&#x3001;&#x652F;&#x6301;&#x81EA;&#x5B9A;&#x4E49;&#x65B9;&#x5F0F;&#x7684;&#x6570;&#x636E;&#x91C7;&#x96C6;&#x548C;&#x6570;&#x636E;&#x63A7;&#x5236;&#x548C;&#x652F;&#x6301;&#x9632;&#x706B;&#x5899;&#x7B49;&#x529F;&#x80FD;&#x4E3A;&#x4E00;&#x4F53;&#x7684;&#x5D4C;&#x5165;&#x5F0F;&#x5DE5;&#x4E1A;&#x7EA7;&#x667A;&#x80FD;&#x4E09;&#x83F1;&#x7F51;&#x5173;&#x3002;</p><p>CX-Programmer</p><p>plc&#x7F16;&#x7A0B;&#x8F6F;&#x4EF6;&#xFF0C;&#x5B98;&#x7F51;&#xFF1A; <a href="https://www.fa.omron.com.cn">https://www.fa.omron.com.cn</a></p><p>&#x6B27;&#x59C6;&#x9F99;CX-P&#x68AF;&#x5F62;&#x56FE;&#x7F16;&#x7A0B;&#x652F;&#x6301;&#x8F6F;&#x4EF6;&#x4E3A;&#x4F7F;&#x7528;&#x8005;&#x63D0;&#x4F9B;&#x4E86;&#x4ECE;&#x64CD;&#x4F5C;&#x754C;&#x9762;&#x5230;&#x7A0B;&#x5E8F;&#x6CE8;&#x91CA;&#x7684;&#x5168;&#x4E2D;&#x6587;&#x64CD;&#x4F5C;&#x73AF;&#x5883;&#xFF0C;&#x652F;&#x6301;Windows&#x7684;&#x62D6;&#x62C9;&#x53CA;&#x7C98;&#x8D34;&#x64CD;&#x4F5C;&#xFF0C;&#x4EE5;&#x53CA;&#x5B8C;&#x5907;&#x7684;&#x68C0;&#x7D22;&#x529F;&#x80FD;&#x548C;&#x5E38;&#x7528;&#x6807;&#x51C6;&#x4F4D;&#x7B80;&#x6613;&#x8F93;&#x5165;&#x529F;&#x80FD;&#x3002;&#x4E3A;&#x4F7F;&#x7528;&#x8005;&#x521B;&#x9020;&#x4E86;&#x4E00;&#x4E2A;&#x9AD8;&#x6548;&#x7684;&#x7F16;&#x7A0B;&#x64CD;&#x4F5C;&#x73AF;&#x5883;</p><p>PLC&#x5382;&#x5546;</p><ul><li>&#x897F;&#x95E8;&#x5B50;</li><li>&#x6B27;&#x59C6;&#x9F99;</li><li>&#x65BD;&#x8010;&#x5FB7;</li><li>&#x901A;&#x7528;</li></ul><p>&#x4F20;&#x611F;&#x5668;</p><p>Sensors&#xFF0C;&#x4E5F;&#x5E38;&#x88AB;&#x79F0;&#x4E3A;&#x8F6C;&#x6362;&#x5668;&#xFF0C;&#x53EF;&#x5C06;&#x771F;&#x5B9E;&#x4E16;&#x754C;&#x4E2D;&#x7684;&#x7269;&#x7406;&#x73B0;&#x8C61;&#x5982;&#x6E29;&#x5EA6;&#x3001;&#x529B;&#x548C;&#x8FD0;&#x52A8;&#x8F6C;&#x5316;&#x4E3A;&#x7535;&#x538B;&#x6216;&#x7535;&#x6D41;&#x4FE1;&#x53F7;&#xFF0C;&#x5E76;&#x8F93;&#x5165;&#x5230;ADC&#x4E2D;&#x3002;&#x5E38;&#x89C1;&#x7684;&#x4F20;&#x611F;&#x5668;&#x5305;&#x62EC;&#x6D4B;&#x91CF;&#x6E29;&#x5EA6;&#x7684;&#x70ED;&#x7535;&#x5076;&#x3001;&#x70ED;&#x654F;&#x7535;&#x963B;&#x4E0E;RTD&#xFF0C;&#x6D4B;&#x91CF;&#x8FD0;&#x52A8;&#x7684;&#x52A0;&#x901F;&#x5EA6;&#x8BA1;&#x4EE5;&#x53CA;&#x6D4B;&#x91CF;&#x529B;&#x7684;&#x5E94;&#x53D8;&#x8BA1;&#x3002;</p><p>&#x7075;&#x79C0;&#x667A;&#x80FD;&#x8BBE;&#x5907;&#x6570;&#x636E;&#x91C7;&#x96C6;&#x7CFB;&#x7EDF;&#x67B6;&#x6784;</p><p>&#x5B98;&#x7F51;&#xFF1A;<a href="http://www.xalxzn.com/">http://www.xalxzn.com/</a></p><figure class="kg-card kg-image-card"><img src="http://blog.helibin.com/content/images/2020/03/15851249190108.jpg" class="kg-image" alt loading="lazy"></figure>]]></content:encoded></item><item><title><![CDATA[homebrew]]></title><description><![CDATA[<p>&#x5B89;&#x88C5;&#x4F7F;&#x7528;</p><ul><li>&#x5B89;&#x88C5;</li></ul><pre><code class="language-text">/usr/bin/ruby -e &quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&quot;
&#x6CE8;&#xFF1A;&#x671F;&#x95F4;&#x4F1A;&#x963B;&#x65AD;&#xFF0C;&#x9700;&#x8981;&#x6572;&#x56DE;&#x8F66;&#x952E;&#x7EE7;&#x7EED;&#xFF0C;&#x7136;&#x540E;&#x8F93;&#x5165;&#x5BC6;&#x7801;&#x5B89;&#x88C5;
</code></pre><ul><li>&#x56FD;&#x5185;&#x955C;</li></ul>]]></description><link>http://blog.helibin.com/homebrew/</link><guid isPermaLink="false">5e6ee8b0e5494500015219fe</guid><category><![CDATA[Mac]]></category><dc:creator><![CDATA[Lybeen]]></dc:creator><pubDate>Mon, 16 Mar 2020 02:47:12 GMT</pubDate><content:encoded><![CDATA[<p>&#x5B89;&#x88C5;&#x4F7F;&#x7528;</p><ul><li>&#x5B89;&#x88C5;</li></ul><pre><code class="language-text">/usr/bin/ruby -e &quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)&quot;
&#x6CE8;&#xFF1A;&#x671F;&#x95F4;&#x4F1A;&#x963B;&#x65AD;&#xFF0C;&#x9700;&#x8981;&#x6572;&#x56DE;&#x8F66;&#x952E;&#x7EE7;&#x7EED;&#xFF0C;&#x7136;&#x540E;&#x8F93;&#x5165;&#x5BC6;&#x7801;&#x5B89;&#x88C5;
</code></pre><ul><li>&#x56FD;&#x5185;&#x955C;&#x50CF;&#x6E90;-&#x4E2D;&#x79D1;&#x5927;</li></ul><pre><code class="language-text"># &#x66FF;&#x6362;brew.git:
cd &quot;$(brew --repo)&quot; &amp;&amp; git remote set-url origin https://mirrors.ustc.edu.cn/brew.git
# &#x66FF;&#x6362;homebrew-core.git:
cd &quot;$(brew --repo)/Library/Taps/homebrew/homebrew-core&quot; &amp;&amp; git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git 
# &#x66FF;&#x6362;homebrew-bottles
echo &apos;export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles&apos; &gt;&gt; ~/.zshrc
</code></pre><ul><li>&#x56FD;&#x5185;&#x955C;&#x50CF;&#x6E90;-&#x963F;&#x91CC;&#x4E91;</li></ul><pre><code class="language-text"># &#x66FF;&#x6362;brew.git:
cd &quot;$(brew --repo)&quot; &amp;&amp; git remote set-url origin https://mirrors.aliyun.com/homebrew/brew.git
# &#x66FF;&#x6362;homebrew-core.git:
cd &quot;$(brew --repo)/Library/Taps/homebrew/homebrew-core&quot; &amp;&amp; git remote set-url origin https://mirrors.aliyun.com/homebrew/homebrew-core.git 
# &#x66FF;&#x6362;homebrew-bottles
echo &apos;export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles&apos; &gt;&gt; ~/.bash_custom
</code></pre><ul><li>&#x91CD;&#x7F6E;&#x955C;&#x50CF;&#x6E90;</li></ul><pre><code class="language-text"># &#x91CD;&#x7F6E;brew.git:
cd &quot;$(brew --repo)&quot; &amp;&amp; git remote set-url origin https://github.com/Homebrew/brew.git
# &#x91CD;&#x7F6E;homebrew-core.git:
cd &quot;$(brew --repo)/Library/Taps/homebrew/homebrew-core&quot; &amp;&amp; git remote set-url origin https://github.com/Homebrew/homebrew-core.git

cd $home &amp;&amp; brew update
</code></pre><ul><li>&#x4F7F;&#x7528;</li></ul><pre><code class="language-text">brew install [&#x8F6F;&#x4EF6;&#x5305;]&#xFF0C;&#x5982;&#xFF1A;brew install wget
</code></pre><p>&#x4E0B;&#x8F7D;&#x7F13;&#x6162;&#xFF0C;&#x624B;&#x52A8;&#x4E0B;&#x8F7D;</p><ul><li>brew [cask] install &lt;&#x8F6F;&#x4EF6;&#x540D;&gt;<br>&#x81EA;&#x52A8;&#x751F;&#x6210;&#x7F13;&#x5B58;&#x6587;&#x4EF6;&#xFF0C;&#x83B7;&#x53D6;&#x4E0B;&#x8F7D;&#x94FE;&#x63A5;&#xFF0C;&#x4F8B;&#xFF1A;<br></li></ul><figure class="kg-card kg-image-card"><img src="http://blog.helibin.com/content/images/2020/03/15843197216740.jpg" class="kg-image" alt loading="lazy"></figure><p><br>&#x4E0B;&#x8F7D;&#x94FE;&#x63A5;&#xFF1A;<a href="https://github.com/AdoptOpenJDK/openjdk12-binaries/releases/download/jdk-12.0.2%2B10.2/OpenJDK12U-jdk_x64_mac_hotspot_12.0.2_10.pkg">https://github.com/AdoptOpenJDK/openjdk12-binaries/releases/download/jdk-12.0.2%2B10.2/OpenJDK12U-jdk_x64_mac_hotspot_12.0.2_10.pkg</a></p><p>&#x624B;&#x52A8;&#x4E0B;&#x8F7D;&#x6587;&#x4EF6;&#xFF0C;&#x62F7;&#x8D1D;&#x5230;&#x7F13;&#x5B58;&#x4F4D;&#x7F6E;</p><ul><li>ll ~/Library/Caches/Homebrew/downloads</li><li>&#x8986;&#x76D6;&#x539F;&#x6765;&#x7684;&#x7F13;&#x5B58;&#x6587;&#x4EF6;&#x540D;<br>&#x4F8B;&#xFF1A;cp ~/Downloads/OpenJDK12U-jdk_x64_mac_hotspot_12.0.2_10.pkg 436348d9da26743e0ad4ac73a028385399e9f02ae915743dae53ca104bbe790e--OpenJDK12U-jdk_x64_mac_hotspot_12.0.2_10.pkg.incomplete<br></li></ul><figure class="kg-card kg-image-card"><img src="http://blog.helibin.com/content/images/2020/03/15843205118173.jpg" class="kg-image" alt loading="lazy"></figure><ul><li>brew [cask] install &lt;&#x8F6F;&#x4EF6;&#x540D;&gt;</li></ul>]]></content:encoded></item><item><title><![CDATA[MySql-5.7]]></title><description><![CDATA[<p>&#x53D6;&#x6D88;&#x5BC6;&#x7801;&#x5F3A;&#x5EA6;&#x9650;&#x5236;</p><pre><code class="language-text">[mysqld]
# &#x5BC6;&#x7801;&#x7B56;&#x7565;&#x5F3A;&#x5EA6;&#xFF08;LOW|MEDIUM|STRONG&#xFF09;
validate_password_policy=LOW
# &#x5BC6;&#x7801;&#x957F;&#x5EA6;
validate_password_length=1
# &#x5BC6;&#x7801;&#x5305;&#x542B;&#x6DF7;&#x5408;&#x5B57;&#x6BCD;&#x4E2A;&#x6570;
validate_password_mixed_case_count=0
# &#x5BC6;&#x7801;</code></pre>]]></description><link>http://blog.helibin.com/mysql57/</link><guid isPermaLink="false">5e0d9eb27a77ad0001a755cb</guid><category><![CDATA[Sql]]></category><dc:creator><![CDATA[Lybeen]]></dc:creator><pubDate>Thu, 02 Jan 2020 07:41:38 GMT</pubDate><content:encoded><![CDATA[<p>&#x53D6;&#x6D88;&#x5BC6;&#x7801;&#x5F3A;&#x5EA6;&#x9650;&#x5236;</p><pre><code class="language-text">[mysqld]
# &#x5BC6;&#x7801;&#x7B56;&#x7565;&#x5F3A;&#x5EA6;&#xFF08;LOW|MEDIUM|STRONG&#xFF09;
validate_password_policy=LOW
# &#x5BC6;&#x7801;&#x957F;&#x5EA6;
validate_password_length=1
# &#x5BC6;&#x7801;&#x5305;&#x542B;&#x6DF7;&#x5408;&#x5B57;&#x6BCD;&#x4E2A;&#x6570;
validate_password_mixed_case_count=0
# &#x5BC6;&#x7801;&#x5305;&#x542B;&#x6570;&#x5B57;&#x4E2A;&#x6570;
validate_password_number_count=0
# &#x5BC6;&#x7801;&#x5305;&#x542B;&#x7279;&#x6B8A;&#x5B57;&#x7B26;&#x4E2A;&#x6570;
validate_password_special_char_count=0
# &#x5BC6;&#x7801;&#x8FC7;&#x671F;&#x65F6;&#x95F4;
default_password_lifetime=0
</code></pre><p>&#x6570;&#x636E;&#x76EE;&#x5F55;&#x66F4;&#x6539;</p><pre><code class="language-text">1.&#x505C;&#x6B62;mysql&#x670D;&#x52A1;
    systemctl stop mysqld
2.&#x4FEE;&#x6539;mysql&#x914D;&#x7F6E;&#x6587;&#x4EF6;
    sudo vim /etc/my.cnf
    #&#x5220;&#x9664;
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    #&#x589E;&#x52A0;
    datadir=/data/db/mysql
    socket=/data/db/mysql/mysql.sock
3.&#x5EFA;&#x7ACB;&#x65B0;&#x6570;&#x636E;&#x76EE;&#x5F55;&#x5E76;&#x6388;&#x6743;
    sudo mkdir /data/db/mysql -p
    sudo chown -R mysql:mysql /data/db/mysql
    sudo chmod 751 /data/db/mysql
4.&#x6E05;&#x7406;&#x65E5;&#x5FD7;
    sudo touch /var/log/mysqld.log
    sudo echo &apos;&apos; &gt; /var/log/mysqld.log
    sudo chmod 640 /var/log/mysqld.log
5.&#x57FA;&#x7840;&#x6570;&#x636E;&#x521D;&#x59CB;&#x5316;
    sudo /usr/sbin/mysqld --initialize --user=mysql --explicit_defaults_for_timestamp
6.&#x542F;&#x52A8;mysql&#x670D;&#x52A1;
    systemctl start mysqld
7.&#x5173;&#x95ED;SELINUX&#xFF08;&#x53EF;&#x9009;&#xFF09;
    sestatus #&#x67E5;&#x770B;SELINUX&#x72B6;&#x6001;
    sudo vi /etc/selinux/config
    #&#x5220;&#x9664;
    SELINUX=enforcing
    #&#x589E;&#x52A0;
    SELINUX=disabled
    sudo reboot
8.&#x5EFA;&#x7ACB;mysql.socket&#x8F6F;&#x94FE;&#x63A5;
    sudo ln -s /data/db/mysql/mysql.sock /var/lib/mysql/mysql.sock
9.&#x83B7;&#x53D6;root&#x4E34;&#x65F6;&#x5BC6;&#x7801;
    sudo cat /var/log/mysqld.log | grep &apos;temporary password&apos;
</code></pre>]]></content:encoded></item><item><title><![CDATA[macOS精品软件]]></title><description><![CDATA[<p>&#x514D;&#x8D39;</p><ul><li><a href="https://www.iterm2.com/">iTerm2</a></li><li><a href="https://brew.sh/">brew</a></li><li><a href="https://www.google.com/intl/zh-CN/chrome/">Google Chrome</a></li><li><a href="https://www.teamviewer.com">TeamViewer</a></li><li><a href="https://kantu.qq.com/">&#x770B;&#x56FE;</a></li><li><a href="https://github.com/shadowsocks/ShadowsocksX-NG/releases">ShadowsocksX-NG</a></li><li><a href="https://termius.com/">Termius</a></li><li><a href="https://www.virtualbox.org/">VirtualBox</a></li><li><a href="https://code.visualstudio.com/">Visual Studio Code</a></li><li><a href="https://www.sequelpro.com/">Sequel Pro</a></li><li><a href="https://filezilla-project.org/">FileZilla</a></li><li><a href="https://oldj.github.io/SwitchHosts/">switchHosts!</a></li><li><a href="https://mac.guanjia.qq.com/">&#x817E;&#x8BAF;&#x67E0;&#x6AAC;&#x6E05;&#x7406;</a></li><li><a href="https://handbrake.fr/">HandBrake</a></li><li><a href="https://zipzapmac.com/Go2Shell">Go2Shell</a></li><li><a href="https://www.balena.io/etcher/">balenaEtcher</a></li><li><a href="https://github.com/wigl/iSimulator">iSimulator</a></li><li><a href="https://molunerfinn.com/PicGo/">PicGo</a></li><li><a href="http://pan.baidu.com/download#pan">&#x767E;&#x5EA6;&#x7F51;&#x76D8;</a></li><li><a href="https://www.wps.cn/">WPS Office</a></li><li><a href="https://leanote.com/">&#x8682;&#x8681;&#x7B14;&#x8BB0;</a></li><li><a href="https://redisdesktop.com/">Redis Desktop Manager</a> - Redis&#x56FE;&#x5F62;&#x5BA2;&#x6237;&#x7AEF;</li></ul>]]></description><link>http://blog.helibin.com/macos-jing-pin-ruan-jian/</link><guid isPermaLink="false">5dfd81dc7a77ad0001a75589</guid><category><![CDATA[Mac]]></category><dc:creator><![CDATA[Lybeen]]></dc:creator><pubDate>Sat, 21 Dec 2019 02:22:20 GMT</pubDate><content:encoded><![CDATA[<p>&#x514D;&#x8D39;</p><ul><li><a href="https://www.iterm2.com/">iTerm2</a></li><li><a href="https://brew.sh/">brew</a></li><li><a href="https://www.google.com/intl/zh-CN/chrome/">Google Chrome</a></li><li><a href="https://www.teamviewer.com">TeamViewer</a></li><li><a href="https://kantu.qq.com/">&#x770B;&#x56FE;</a></li><li><a href="https://github.com/shadowsocks/ShadowsocksX-NG/releases">ShadowsocksX-NG</a></li><li><a href="https://termius.com/">Termius</a></li><li><a href="https://www.virtualbox.org/">VirtualBox</a></li><li><a href="https://code.visualstudio.com/">Visual Studio Code</a></li><li><a href="https://www.sequelpro.com/">Sequel Pro</a></li><li><a href="https://filezilla-project.org/">FileZilla</a></li><li><a href="https://oldj.github.io/SwitchHosts/">switchHosts!</a></li><li><a href="https://mac.guanjia.qq.com/">&#x817E;&#x8BAF;&#x67E0;&#x6AAC;&#x6E05;&#x7406;</a></li><li><a href="https://handbrake.fr/">HandBrake</a></li><li><a href="https://zipzapmac.com/Go2Shell">Go2Shell</a></li><li><a href="https://www.balena.io/etcher/">balenaEtcher</a></li><li><a href="https://github.com/wigl/iSimulator">iSimulator</a></li><li><a href="https://molunerfinn.com/PicGo/">PicGo</a></li><li><a href="http://pan.baidu.com/download#pan">&#x767E;&#x5EA6;&#x7F51;&#x76D8;</a></li><li><a href="https://www.wps.cn/">WPS Office</a></li><li><a href="https://leanote.com/">&#x8682;&#x8681;&#x7B14;&#x8BB0;</a></li><li><a href="https://redisdesktop.com/">Redis Desktop Manager</a> - Redis&#x56FE;&#x5F62;&#x5BA2;&#x6237;&#x7AEF;&#x8FDE;&#x63A5;&#x5DE5;&#x5177;</li><li><a href="https://github.com/qishibo/AnotherRedisDesktopManager">Another_Redis_Desktop_Manager</a></li><li><a href="https://www.getpostman.com/downloads/">Postman</a></li><li><a href="https://robomongo.org/">Robo 3T</a> - MongoDB&#x56FE;&#x5F62;&#x5BA2;&#x6237;&#x7AEF;&#x8FDE;&#x63A5;&#x5DE5;&#x5177;</li><li><a href="https://www.sourcetreeapp.com/">Sourcetree</a></li><li><a href="https://www.genymotion.com/download/">Genymotion</a></li><li><a href="https://www.docker.com/">Docker</a></li><li><a href="https://developer.android.com/studio">Android Studio</a></li><li><a href="https://www.jetbrains.com/idea/">IntelliJ IDEA</a></li><li><a href="https://visualstudio.microsoft.com/zh-hans/downloads/">Visual Studio</a></li><li><a href="https://iina.io/">IINA</a></li><li><a href="https://www.videolan.org/vlc/">VLC media player</a></li><li><a href="https://chrome.360.cn">360&#x6781;&#x901F;&#x6D4F;&#x89C8;&#x5668;</a></li><li><a href="http://xunlei.com">&#x8FC5;&#x96F7;</a></li><li><a href="https://pqrs.org/osx/karabiner/">Karabiner-Elements</a></li></ul><p>App Store</p><ul><li>Random Passwords</li><li>&#x9489;&#x9489;</li><li>QQ</li><li>&#x5FAE;&#x4FE1;</li><li>&#x4F01;&#x4E1A;&#x5FAE;&#x4FE1;</li><li>&#x7F51;&#x6613;&#x90AE;&#x7BB1;&#x5927;&#x5E08;</li><li>Parallels Client</li><li>enpass</li><li>xnip</li><li>Amphetamine</li><li>&#x4F18;&#x9177;</li><li>&#x7231;&#x5947;&#x827A;</li><li>&#x817E;&#x8BAF;&#x89C6;&#x9891;</li><li>GIF Brewery 3</li></ul><p>Brew</p><ul><li>Mounty - <code>brew cask install mounty</code></li><li>Nginx-full - <code>brew tap denji/nginx &amp;&amp; brew cask install nginx-full</code></li></ul><p>&#x7834;&#x89E3;-xclient.info</p><ul><li><a href="https://www.alfredapp.com/">Alfred</a></li><li><a href="https://www.shimovpn.com/">Shimo</a></li><li><a href="https://bjango.com/mac/istatmenus/">iStat Menus</a></li><li><a href="https://www.charlesproxy.com/">Charles</a></li><li><a href="https://wifispoof.com/">WiFiSpoof</a></li></ul><p>&#x5C4F;&#x5E55;&#x4FDD;&#x62A4;</p><ul><li><a href="https://github.com/pedrommcarrasco/Brooklyn">Brooklyn</a></li><li><a href="https://fliqlo.com">fliqlo</a></li><li><a href="https://line.me/en/download/screen-saver">Line Friends</a></li></ul>]]></content:encoded></item><item><title><![CDATA[GIT-从零到壹]]></title><description><![CDATA[<p>&#x6CE8;&#xFF1A;<code>&lt;&gt;</code> &#x4E3A;&#x5FC5;&#x586B;&#x9879;&#xFF0C;<code>[]</code>&#x4E3A;&#x9009;&#x586B;&#x9879;</p><p>&#x5B89;&#x88C5;git</p><p>&#x5B89;&#x88C5;&#x6559;&#x7A0B;&#x53C2;&#x8003;&#xFF1A;<a href="https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git">GIT&#x5B98;&#x7F51;-&#x8D77;&#x6B65;</a></p><p>&#x751F;&#x6210;&#x5BC6;&#x94A5;&#x5BF9;</p><pre><code class="language-text">ssh-keygen -t rsa -C &lt;&#x4F60;&#x7684;&#x90AE;&#x7BB1;&gt; // &#x751F;&#x6210;&#x5BC6;&#x94A5;&#xFF0C;&#x4E00;</code></pre>]]></description><link>http://blog.helibin.com/cong-ling-dao-yi/</link><guid isPermaLink="false">5dfd81b07a77ad0001a75582</guid><category><![CDATA[Git]]></category><dc:creator><![CDATA[Lybeen]]></dc:creator><pubDate>Sat, 21 Dec 2019 02:21:36 GMT</pubDate><content:encoded><![CDATA[<p>&#x6CE8;&#xFF1A;<code>&lt;&gt;</code> &#x4E3A;&#x5FC5;&#x586B;&#x9879;&#xFF0C;<code>[]</code>&#x4E3A;&#x9009;&#x586B;&#x9879;</p><p>&#x5B89;&#x88C5;git</p><p>&#x5B89;&#x88C5;&#x6559;&#x7A0B;&#x53C2;&#x8003;&#xFF1A;<a href="https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git">GIT&#x5B98;&#x7F51;-&#x8D77;&#x6B65;</a></p><p>&#x751F;&#x6210;&#x5BC6;&#x94A5;&#x5BF9;</p><pre><code class="language-text">ssh-keygen -t rsa -C &lt;&#x4F60;&#x7684;&#x90AE;&#x7BB1;&gt; // &#x751F;&#x6210;&#x5BC6;&#x94A5;&#xFF0C;&#x4E00;&#x8DEF;&#x56DE;&#x8F66;&#x5373;&#x53EF;&#x751F;&#x6210;~/.ssh/id_rsa
&#x4F8B;&#xFF1A;ssh-keygen -t rsa -C me@helibin.com
</code></pre><p>&#x6DFB;&#x52A0;&#x516C;&#x94A5;&#x5230;git&#x670D;&#x52A1;&#x5668;</p><ul><li>&#x767B;&#x5F55;<a href="https://git.ajaxp.com">git&#x670D;&#x52A1;&#x5668;</a></li><li>&#x8FDB;&#x5165;<a href="https://git.ajaxp.com/user/settings/ssh">&#x4E2A;&#x4EBA;&#x4E2D;&#x5FC3;&#x6DFB;&#x52A0;ssh&#x5BC6;&#x94A5;</a>&#xFF0C;&#x5BC6;&#x94A5;&#x5185;&#x5BB9;&#x662F;&#x4E0A;&#x4E00;&#x6B65;&#x751F;&#x6210;&#x7684;~/.ssh/id_rsa.pub&#x6587;&#x4EF6;&#x7684;&#x5185;&#x5BB9;</li></ul><p>&#x914D;&#x7F6E;git</p><pre><code class="language-text"># &#x6240;&#x6709;&#x9879;&#x76EE;&#xFF08;&#x5728;&#x4EFB;&#x610F;&#x4F4D;&#x7F6E;&#x6267;&#x884C;&#x4EE5;&#x4E0B;&#x547D;&#x4EE4;&#xFF09;
git config --global user.name &lt;&#x4F60;&#x7684;&#x540D;&#x5B57;&gt;
git config --global user.email &lt;&#x4F60;&#x7684;&#x90AE;&#x7BB1;&gt;
&#x4F8B;&#xFF1A;git config --global user.name lybeen
    git config --global user.email me@helibin.com
# &#x67D0;&#x4E00;&#x9879;&#x76EE;&#xFF08;&#x5728;&#x9879;&#x76EE;&#x76EE;&#x5F55;&#x6267;&#x884C;&#x4EE5;&#x4E0B;&#x547D;&#x4EE4;&#xFF09;
git config --local user.name &lt;&#x4F60;&#x7684;&#x540D;&#x5B57;&gt;
git config --local user.email &lt;&#x4F60;&#x7684;&#x90AE;&#x7BB1;&gt;
&#x4F8B;&#xFF1A;git config --local user.name &#x4F55;&#x4E3D;&#x5F6C;
    git config --local user.email helibin@work.com
</code></pre><p>&#x514D;&#x5BC6;&#x7801;&#x8FDE;&#x63A5;git&#x670D;&#x52A1;&#x5668;&#x914D;&#x7F6E;</p><pre><code class="language-text">echo &apos;
# AJAX&#x6D3E;
Host git.ajaxp.com
HostName git.ajaxp.com
Port 60222
IdentityFile ~/.ssh/id_rsa
User git&apos; | tee -a ~/.ssh/config
</code></pre><p>&#x6D4B;&#x8BD5;git&#x670D;&#x52A1;&#x5668;&#x8FDE;&#x63A5;</p><pre><code class="language-text">ssh -T git@git.ajaxp.com
</code></pre><p>&#x62C9;&#x53D6;&#x4EE3;&#x7801;</p><pre><code class="language-text">git clone &lt;&#x9879;&#x76EE;&#x5730;&#x5740;&gt;
&#x4F8B;&#xFF1A;git clone git.ajaxp.com:helibin/test.git
</code></pre>]]></content:encoded></item><item><title><![CDATA[ES6/7/8异步实例]]></title><description><![CDATA[<!--kg-card-begin: markdown--><blockquote>
<p>ES5&#x5199;&#x6CD5;</p>
</blockquote>
<pre><code class="language-javascript">function es5() {
  setTimeout(function () {
    console.log(&apos;es5 111&apos;);
    setTimeout(() =&gt; {
      console.log(&apos;es5 222&apos;)
    }, 111);
  }, 1111)
}
</code></pre>
<blockquote>
<p>ES6/7/8 &#x5199;&#x6CD5;</p>
</blockquote>
<pre><code class="language-javascript">let pro1 = () =&gt; {
  return new Promise((resolve, reject) =&gt; {
    setTimeout(() =&gt; {
      resolve(&apos;es6/7/8 111&apos;)
    }, 1111);
  })
}
let pro2 = () =&gt;</code></pre>]]></description><link>http://blog.helibin.com/es6-7-8/</link><guid isPermaLink="false">5a59a84d98b62c254b382b67</guid><dc:creator><![CDATA[Lybeen]]></dc:creator><pubDate>Sat, 13 Jan 2018 06:49:10 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><blockquote>
<p>ES5&#x5199;&#x6CD5;</p>
</blockquote>
<pre><code class="language-javascript">function es5() {
  setTimeout(function () {
    console.log(&apos;es5 111&apos;);
    setTimeout(() =&gt; {
      console.log(&apos;es5 222&apos;)
    }, 111);
  }, 1111)
}
</code></pre>
<blockquote>
<p>ES6/7/8 &#x5199;&#x6CD5;</p>
</blockquote>
<pre><code class="language-javascript">let pro1 = () =&gt; {
  return new Promise((resolve, reject) =&gt; {
    setTimeout(() =&gt; {
      resolve(&apos;es6/7/8 111&apos;)
    }, 1111);
  })
}
let pro2 = () =&gt; {
  return new Promise((resolve, reject) =&gt; {
    setTimeout(() =&gt; {
      resolve(&apos;es6/7/8 222&apos;)
    }, 111);
  })
}
</code></pre>
<blockquote>
<p>ES6 then&#x7528;&#x6CD5;</p>
</blockquote>
<pre><code class="language-javascript">let es6 = () =&gt; {
  pro1().then(d =&gt; {
    console.log(d, &apos;d1,,,&apos;)
    return 111
  }).then(d =&gt; {
    console.log(d, &apos;d2,,,&apos;)
    return pro2()
  }).then(d =&gt; {
    console.log(d, &apos;d3,,,&apos;)
  }).catch(ex =&gt; {
    console.log(ex, &apos;es6 ex,,,&apos;)
  })
}
</code></pre>
<blockquote>
<p>ES7 async&#x7528;&#x6CD5;</p>
</blockquote>
<pre><code class="language-javascript">let es7 = async() =&gt; {
  let t1 = null
  let t2 = null
  try{
    t1 = await pro1()
    console.log(t1, &apos;t1,,,&apos;)
    t2 = await pro2()
    console.log(t2, &apos;t2,,,&apos;)
  } catch(ex) {
    console.log(ex, &apos;es7 ex,,,&apos;)
  }
}
</code></pre>
<blockquote>
<p>&#x6267;&#x884C;</p>
</blockquote>
<ul>
<li>
<p>es5()<br>
<img src="http://blog.helibin.com/content/images/2018/01/QQ20180113-143736@2x.png" alt="QQ20180113-143736@2x" loading="lazy"></p>
</li>
<li>
<p>es6()<br>
<img src="http://blog.helibin.com/content/images/2018/01/QQ20180113-143811@2x.png" alt="QQ20180113-143811@2x" loading="lazy"></p>
</li>
<li>
<p>es7()<br>
<img src="http://blog.helibin.com/content/images/2018/01/QQ20180113-143832@2x.png" alt="QQ20180113-143832@2x" loading="lazy"></p>
</li>
</ul>
<pre><code></code></pre>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[2018！不再迷茫。]]></title><description><![CDATA[<!--kg-card-begin: markdown--><blockquote>
<p>&#x5B66;&#x4E60;&#x5145;&#x7535;&#xFF1A;</p>
</blockquote>
<ul>
<li>Python&#xFF08;flask&#xFF09;</li>
<li>PHP&#xFF08;laravel&#xFF09;</li>
<li>ES7</li>
<li>Vue.js&#xFF08;element&#xFF09;</li>
<li>Socket.IO</li>
</ul>
<blockquote>
<p>&#x76EE;&#x6807;</p>
</blockquote>
<ul>
<li>&#x5B9E;&#x73B0;&#x4E00;&#x4E2A;&#x7535;&#x5B50;&#x5546;&#x57CE;</li>
<li>&#x7535;&#x5B50;&#x5546;&#x57CE;app</li>
<li>&#x5FAE;&#x4FE1;&#x516C;&#x4F17;&#x53F7;/&#x5C0F;&#x7A0B;&#x5E8F;</li>
<li>&#x4E2A;&#x4EBA;&#x7F51;&#x7AD9;&#x53CA;&#x5468;</li></ul>]]></description><link>http://blog.helibin.com/2018/</link><guid isPermaLink="false">5a57561b98b62c254b382b64</guid><dc:creator><![CDATA[Lybeen]]></dc:creator><pubDate>Thu, 11 Jan 2018 12:20:35 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><blockquote>
<p>&#x5B66;&#x4E60;&#x5145;&#x7535;&#xFF1A;</p>
</blockquote>
<ul>
<li>Python&#xFF08;flask&#xFF09;</li>
<li>PHP&#xFF08;laravel&#xFF09;</li>
<li>ES7</li>
<li>Vue.js&#xFF08;element&#xFF09;</li>
<li>Socket.IO</li>
</ul>
<blockquote>
<p>&#x76EE;&#x6807;</p>
</blockquote>
<ul>
<li>&#x5B9E;&#x73B0;&#x4E00;&#x4E2A;&#x7535;&#x5B50;&#x5546;&#x57CE;</li>
<li>&#x7535;&#x5B50;&#x5546;&#x57CE;app</li>
<li>&#x5FAE;&#x4FE1;&#x516C;&#x4F17;&#x53F7;/&#x5C0F;&#x7A0B;&#x5E8F;</li>
<li>&#x4E2A;&#x4EBA;&#x7F51;&#x7AD9;&#x53CA;&#x5468;&#x8FB9;</li>
<li>&#x5B58;&#x70B9;&#x5C0F;&#x94B1;</li>
<li>&#x8BFB;&#x4E24;&#x4E09;&#x672C;&#x4E66;</li>
</ul>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[微信小游戏-跳一跳]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>2017-12-29&#x4E0B;&#x5348;&#xFF0C;&#x5FAE;&#x4FE1;&#x63A8;&#x51FA;&#x4E86;&#x5C0F;&#x6E38;&#x620F;&#xFF0C;&#x4EC5;&#x8FC7;&#x4E86;&#x4E00;&#x5929;&#xFF0C;&#x5176;&#x4E2D;&#x8DF3;&#x4E00;&#x8DF3;&#x5C0F;&#x6E38;&#x620F;&#x5C31;&#x706B;&#x904D;&#x5927;&#x6C5F;&#x5357;&#x5317;&#xFF0C;&#x670B;&#x53CB;&#x5708;&#x5404;&#x79CD;&#x9738;&#x5C4F;&#x3002;</p>
<p>&#x9057;&#x61BE;&#x7684;&#x662F;&#x6211;&#x7684;&#x624B;</p>]]></description><link>http://blog.helibin.com/wechat-jump-game/</link><guid isPermaLink="false">5a4c63af98b62c254b382b5e</guid><dc:creator><![CDATA[Lybeen]]></dc:creator><pubDate>Wed, 03 Jan 2018 05:46:17 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>2017-12-29&#x4E0B;&#x5348;&#xFF0C;&#x5FAE;&#x4FE1;&#x63A8;&#x51FA;&#x4E86;&#x5C0F;&#x6E38;&#x620F;&#xFF0C;&#x4EC5;&#x8FC7;&#x4E86;&#x4E00;&#x5929;&#xFF0C;&#x5176;&#x4E2D;&#x8DF3;&#x4E00;&#x8DF3;&#x5C0F;&#x6E38;&#x620F;&#x5C31;&#x706B;&#x904D;&#x5927;&#x6C5F;&#x5357;&#x5317;&#xFF0C;&#x670B;&#x53CB;&#x5708;&#x5404;&#x79CD;&#x9738;&#x5C4F;&#x3002;</p>
<p>&#x9057;&#x61BE;&#x7684;&#x662F;&#x6211;&#x7684;&#x624B;&#x673A;&#x8FDB;&#x6C34;&#x4E86;&#xFF0C;&#x4FEE;&#x597D;&#x5DF2;&#x7ECF;&#x662F;&#x540E;&#x8BDD;&#x4E86;&#x3002;&#x4E3A;&#x4E86;&#x767B;&#x4E0A;&#x670B;&#x53CB;&#x6392;&#x884C;&#x699C;&#x9996;&#xFF0C;&#x6211;&#x4E5F;&#x662F;&#x6233;&#x4E86;&#x4E00;&#x4E0B;&#x5348;&#x5C4F;&#x5E55;&#xFF0C;&#x6700;&#x7EC8;&#x6CA1;&#x80FD;&#x4E0A;&#x699C;&#x3002;&#x95F2;&#x6765;&#x65E0;&#x4E8B;&#x901B;&#x6280;&#x672F;&#x8BBA;&#x575B;&#xFF0C;&#x53D1;&#x73B0;&#x5DF2;&#x7ECF;&#x6709;&#x5927;&#x795E;&#x7528;<a href="https://github.com/wangshub/wechat_jump_game">&#x7A0B;&#x5E8F;</a>&#x5B9E;&#x73B0;&#x81EA;&#x52A8;&#x8DF3;&#xFF0C;&#x4E5F;&#x662F;&#xFF0C;&#x80FD;&#x7528;&#x7A0B;&#x5E8F;&#x89E3;&#x51B3;&#x7684;&#x95EE;&#x9898;&#x4F55;&#x5FC5;&#x6D88;&#x8017;&#x4EBA;&#x5DE5;&#x3002;&#x524D;&#x4EBA;&#x683D;&#x6811;&#xFF0C;&#x540E;&#x4EBA;&#x4E58;&#x51C9;&#xFF0C;&#x4EE5;&#x4E0B;&#x662F;&#x201C;&#x4E58;&#x51C9;&#x201D;&#x7684;&#x6B63;&#x786E;&#x59FF;&#x52BF;&#xFF1A;</p>
<blockquote>
<p>&#x786C;&#x4EF6;&#x8981;&#x6C42;</p>
</blockquote>
<pre><code>android&#x624B;&#x673A;&#x4E00;&#x90E8;
&#x6570;&#x636E;&#x7EBF;&#x4E00;&#x6839;
mac&#x7535;&#x8111;&#x4E00;&#x53F0;
</code></pre>
<blockquote>
<p>&#x73AF;&#x5883;&#x8981;&#x6C42;</p>
</blockquote>
<pre><code>homebrew
python
pip
virtualenv
adb
</code></pre>
<blockquote>
<p>&#x6B65;&#x9AA4;</p>
</blockquote>
<ol>
<li>&#x8FDB;&#x5165;&#x624B;&#x673A;&#x5F00;&#x53D1;&#x8005;&#x6A21;&#x5F0F;&#xFF0C;&#x5F00;&#x542F;USB&#x8C03;&#x8BD5;&#x548C;&#x5B89;&#x5168;&#x8C03;&#x8BD5;&#xFF0C;&#x8FDE;&#x63A5;&#x7535;&#x8111;</li>
<li>&#x5B89;&#x88C5;adb<pre><code>brew cask install android-platform-tools
</code></pre>
</li>
<li>&#x6D4B;&#x8BD5;&#x624B;&#x673A;&#x8FDE;&#x63A5;&#x72B6;&#x6001;<pre><code>adb devices
</code></pre>
</li>
<li>&#x5B89;&#x88C5;virtualenv<pre><code>brew install virtualenv
</code></pre>
</li>
<li>&#x62C9;&#x53D6;&#x4EE3;&#x7801;<pre><code>git clone git@github.com:wangshub/wechat_jump_game.git ~/wechat_jump_game
</code></pre>
</li>
<li>&#x521D;&#x59CB;&#x5316;python&#x865A;&#x62DF;&#x73AF;&#x5883;<pre><code>virtualevn ~/wechat_jump_game
cd ~/wechat_jump_game
source bin/activate
python -V
pip -V
pip install -r requirements.txt
</code></pre>
</li>
<li>&#x6253;&#x5F00;&#x8DF3;&#x4E00;&#x8DF3;&#x6E38;&#x620F;&#x5E76;&#x70B9;&#x51FB;&#x5F00;&#x59CB;&#x6E38;&#x620F;<br>
<img src="http://blog.helibin.com/content/images/2018/01/Screenshot_2018-01-03-13-49-56-374-1.png" alt="Screenshot_2018-01-03-13-49-56-374-1" loading="lazy"></li>
<li>&#x8FD0;&#x884C;&#x81EA;&#x52A8;&#x8DF3;&#x4E00;&#x8DF3;&#x811A;&#x672C;<pre><code>python wechat_jump_auto.py
</code></pre>
</li>
</ol>
<p>&#x4E0D;&#x51FA;&#x610F;&#x5916;&#xFF0C;&#x624B;&#x673A;&#x4E0A;&#x7684;&#x8DF3;&#x4E00;&#x8DF3;&#x6E38;&#x620F;&#x4F1A;&#x81EA;&#x52A8;&#x8DF3;&#x8D77;&#x6765;</p>
<!--kg-card-end: markdown-->]]></content:encoded></item></channel></rss>