-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
49 lines (49 loc) · 52.7 KB
/
index.html
File metadata and controls
49 lines (49 loc) · 52.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<!DOCTYPE html><html lang="zh-CN"><head><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport"><meta content="yes" name="apple-mobile-web-app-capable"><meta content="black-translucent" name="apple-mobile-web-app-status-bar-style"><meta content="telephone=no" name="format-detection"><meta name="description"><title>Horbie Blog | Record Mind</title><link rel="stylesheet" type="text/css" href="/css/style.css?v=0.1.0"><link rel="stylesheet" type="text/css" href="//cdn.bootcss.com/normalize/6.0.0/normalize.min.css"><link rel="stylesheet" type="text/css" href="//cdn.bootcss.com/pure/0.6.2/pure-min.css"><link rel="stylesheet" type="text/css" href="//cdn.bootcss.com/pure/0.6.2/grids-responsive-min.css"><link rel="stylesheet" href="//cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.min.css"><script type="text/javascript" src="//cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script><link rel="Shortcut Icon" type="image/x-icon" href="/favicon.png"><link rel="apple-touch-icon" href="/apple-touch-icon.png"><link rel="apple-touch-icon-precomposed" href="/apple-touch-icon.png"><link rel="alternate" type="application/atom+xml" href="/atom.xml"></head><body><div class="body_container"><div id="header"><div class="site-name"><h1 class="hidden">Horbie Blog</h1><a id="logo" href="/.">Horbie Blog</a><p class="description">Record Mind</p></div><div id="nav-menu"><a href="/." class="current"><i class="fa fa-home"> 首页</i></a><a href="/archives/"><i class="fa fa-archive"> 归档</i></a><a href="/about/"><i class="fa fa-user"> 关于</i></a><a href="/atom.xml"><i class="fa fa-rss"> 订阅</i></a></div></div><div id="layout" class="pure-g"><div class="pure-u-1 pure-u-md-3-4"><div class="content_container"><div class="post"><h1 class="post-title"><a href="/2017/07/26/d3-V4-树形结构-不完全demo/">d3 V4 树形结构 不完全demo</a></h1><div class="post-meta">2017-07-26</div><a href="/2017/07/26/d3-V4-树形结构-不完全demo/#comments" class="ds-thread-count cloud-tie-join-count"><span lang="join-count" style="margin: 0 3px 0 1px;" data-url="http://blog.codeme.site/2017/07/26/d3-V4-树形结构-不完全demo/" class="join-count">0</span><span> 条参与</span></a><div class="post-content"><ul>
<li><p>首先贴个小图<br><img src="http://oh14x29vm.bkt.clouddn.com/d3_tree.jpg" alt="d3_tree" title="d3_tree"></p>
</li>
<li><p>下面是显示上面图片的部分代码</p>
<figure class="highlight html"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div><div class="line">18</div><div class="line">19</div><div class="line">20</div><div class="line">21</div><div class="line">22</div><div class="line">23</div><div class="line">24</div><div class="line">25</div><div class="line">26</div><div class="line">27</div><div class="line">28</div><div class="line">29</div><div class="line">30</div><div class="line">31</div><div class="line">32</div><div class="line">33</div><div class="line">34</div><div class="line">35</div><div class="line">36</div><div class="line">37</div><div class="line">38</div><div class="line">39</div><div class="line">40</div><div class="line">41</div><div class="line">42</div><div class="line">43</div><div class="line">44</div><div class="line">45</div><div class="line">46</div><div class="line">47</div><div class="line">48</div><div class="line">49</div><div class="line">50</div><div class="line">51</div><div class="line">52</div><div class="line">53</div><div class="line">54</div><div class="line">55</div><div class="line">56</div><div class="line">57</div><div class="line">58</div><div class="line">59</div><div class="line">60</div><div class="line">61</div><div class="line">62</div><div class="line">63</div><div class="line">64</div><div class="line">65</div><div class="line">66</div><div class="line">67</div><div class="line">68</div><div class="line">69</div><div class="line">70</div><div class="line">71</div><div class="line">72</div><div class="line">73</div><div class="line">74</div><div class="line">75</div><div class="line">76</div><div class="line">77</div><div class="line">78</div><div class="line">79</div><div class="line">80</div><div class="line">81</div><div class="line">82</div><div class="line">83</div><div class="line">84</div><div class="line">85</div><div class="line">86</div><div class="line">87</div><div class="line">88</div><div class="line">89</div><div class="line">90</div><div class="line">91</div><div class="line">92</div><div class="line">93</div><div class="line">94</div><div class="line">95</div><div class="line">96</div><div class="line">97</div><div class="line">98</div><div class="line">99</div><div class="line">100</div><div class="line">101</div><div class="line">102</div><div class="line">103</div><div class="line">104</div><div class="line">105</div><div class="line">106</div><div class="line">107</div><div class="line">108</div><div class="line">109</div><div class="line">110</div><div class="line">111</div><div class="line">112</div><div class="line">113</div><div class="line">114</div><div class="line">115</div><div class="line">116</div><div class="line">117</div><div class="line">118</div><div class="line">119</div><div class="line">120</div><div class="line">121</div><div class="line">122</div><div class="line">123</div><div class="line">124</div><div class="line">125</div><div class="line">126</div><div class="line">127</div><div class="line">128</div><div class="line">129</div><div class="line">130</div><div class="line">131</div><div class="line">132</div><div class="line">133</div><div class="line">134</div><div class="line">135</div><div class="line">136</div><div class="line">137</div><div class="line">138</div><div class="line">139</div><div class="line">140</div><div class="line">141</div><div class="line">142</div><div class="line">143</div><div class="line">144</div><div class="line">145</div><div class="line">146</div><div class="line">147</div><div class="line">148</div><div class="line">149</div><div class="line">150</div><div class="line">151</div><div class="line">152</div><div class="line">153</div><div class="line">154</div><div class="line">155</div><div class="line">156</div><div class="line">157</div><div class="line">158</div><div class="line">159</div><div class="line">160</div><div class="line">161</div><div class="line">162</div><div class="line">163</div><div class="line">164</div><div class="line">165</div><div class="line">166</div><div class="line">167</div><div class="line">168</div><div class="line">169</div></pre></td><td class="code"><pre><div class="line"><span class="tag"><<span class="name">script</span> <span class="attr">src</span>=<span class="string">"/admin/lib/d3/d3.v4.min.js"</span>></span><span class="undefined"></span><span class="tag"></<span class="name">script</span>></span></div><div class="line"><span class="tag"><<span class="name">style</span>></span><span class="undefined"></span></div><div class="line"> .node circle {</div><div class="line"> fill: #fff;</div><div class="line"> stroke: steelblue;</div><div class="line"> stroke-width: 1.5px;</div><div class="line"> }</div><div class="line"></div><div class="line"> .node {</div><div class="line"> font: 12px sans-serif;</div><div class="line"> }</div><div class="line"></div><div class="line"> .link {</div><div class="line"> fill: none;</div><div class="line"> stroke: #ccc;</div><div class="line"> stroke-width: 1.5px;</div><div class="line"> }</div><div class="line"><span class="tag"></<span class="name">style</span>></span></div><div class="line"><span class="tag"><<span class="name">body</span>></span></div><div class="line"> <span class="tag"><<span class="name">div</span> <span class="attr">id</span>=<span class="string">"auth_body"</span>></span><span class="tag"></<span class="name">div</span>></span></div><div class="line"><span class="tag"></<span class="name">body</span>></span></div><div class="line"></div><div class="line"><span class="tag"><<span class="name">script</span> <span class="attr">type</span>=<span class="string">"text/javascript"</span>></span><span class="undefined"></span></div><div class="line"> var width = 500,</div><div class="line"> height = 500;</div><div class="line"></div><div class="line"> var tree = d3.tree()</div><div class="line"> .size([width, height - 200])</div><div class="line"> .separation(function (a, b) {</div><div class="line"> return (a.parent == b.parent ? 1 : 2);</div><div class="line"> });</div><div class="line"></div><div class="line"> var svg = d3.select("#auth_body").append("svg")</div><div class="line"> .attr("width", width)</div><div class="line"> .attr("height", height)</div><div class="line"> .append("g")</div><div class="line"> .attr("transform", "translate(40,0)");</div><div class="line"></div><div class="line"></div><div class="line"> var root = {</div><div class="line"> "name": "中国",</div><div class="line"> "children": [{</div><div class="line"> "name": "浙江",</div><div class="line"> "children": [{</div><div class="line"> "name": "杭州"</div><div class="line"> },</div><div class="line"> {</div><div class="line"> "name": "宁波"</div><div class="line"> },</div><div class="line"> {</div><div class="line"> "name": "温州"</div><div class="line"> },</div><div class="line"> {</div><div class="line"> "name": "绍兴"</div><div class="line"> }</div><div class="line"> ]</div><div class="line"> },</div><div class="line"></div><div class="line"> {</div><div class="line"> "name": "广西",</div><div class="line"> "children": [{</div><div class="line"> "name": "桂林",</div><div class="line"> "children": [{</div><div class="line"> "name": "秀峰区"</div><div class="line"> },</div><div class="line"> {</div><div class="line"> "name": "叠彩区"</div><div class="line"> },</div><div class="line"> {</div><div class="line"> "name": "象山区"</div><div class="line"> },</div><div class="line"> {</div><div class="line"> "name": "七星区"</div><div class="line"> }</div><div class="line"> ]</div><div class="line"> },</div><div class="line"> {</div><div class="line"> "name": "南宁"</div><div class="line"> },</div><div class="line"> {</div><div class="line"> "name": "柳州"</div><div class="line"> },</div><div class="line"> {</div><div class="line"> "name": "防城港"</div><div class="line"> }</div><div class="line"> ]</div><div class="line"> },</div><div class="line"></div><div class="line"> {</div><div class="line"> "name": "黑龙江",</div><div class="line"> "children": [{</div><div class="line"> "name": "哈尔滨"</div><div class="line"> },</div><div class="line"> {</div><div class="line"> "name": "齐齐哈尔"</div><div class="line"> },</div><div class="line"> {</div><div class="line"> "name": "牡丹江"</div><div class="line"> },</div><div class="line"> {</div><div class="line"> "name": "大庆"</div><div class="line"> }</div><div class="line"> ]</div><div class="line"> },</div><div class="line"></div><div class="line"> {</div><div class="line"> "name": "新疆",</div><div class="line"> "children": [{</div><div class="line"> "name": "乌鲁木齐"</div><div class="line"> },</div><div class="line"> {</div><div class="line"> "name": "克拉玛依"</div><div class="line"> },</div><div class="line"> {</div><div class="line"> "name": "吐鲁番"</div><div class="line"> },</div><div class="line"> {</div><div class="line"> "name": "哈密"</div><div class="line"> }</div><div class="line"> ]</div><div class="line"> }</div><div class="line"> ]</div><div class="line"> }</div><div class="line"> var hierarchy = d3.hierarchy(root);</div><div class="line"> tree(hierarchy);</div><div class="line"></div><div class="line"> function diagonal(d) {</div><div class="line"> if (d.parent === hierarchy.descendants[0]) {</div><div class="line"> return "M" + d.y + "," + d.x +</div><div class="line"> " " + d.parent.y + "," + d.parent.x</div><div class="line"> } else {</div><div class="line"> return "M" + d.y + "," + d.x +</div><div class="line"> "C" + (d.parent.y + 100) + "," + d.x +</div><div class="line"> " " + (d.parent.y + 100) + "," + d.parent.x +</div><div class="line"> " " + d.parent.y + "," + d.parent.x;</div><div class="line"> }</div><div class="line"> }</div><div class="line"></div><div class="line"> var link = svg.selectAll(".link")</div><div class="line"> .data(hierarchy.descendants().slice(1))</div><div class="line"> .enter()</div><div class="line"> .append("path")</div><div class="line"> .attr("class", "link")</div><div class="line"> .attr("d", diagonal);</div><div class="line"></div><div class="line"> var node = svg.selectAll(".node")</div><div class="line"> .data(hierarchy.descendants())</div><div class="line"> .enter()</div><div class="line"> .append("g")</div><div class="line"> .attr("class", "node")</div><div class="line"> .attr("transform", function (d) {</div><div class="line"> return "translate(" + d.y + "," + d.x + ")";</div><div class="line"> })</div><div class="line"></div><div class="line"> node.append("circle")</div><div class="line"> .attr("r", 4.5);</div><div class="line"></div><div class="line"> node.append("text")</div><div class="line"> .attr("dx", function (d) {</div><div class="line"> return d.children ? -8 : 8;</div><div class="line"> })</div><div class="line"> .attr("dy", 3)</div><div class="line"> .style("text-anchor", function (d) {</div><div class="line"> return d.children ? "end" : "start";</div><div class="line"> })</div><div class="line"> .text(function (d) {</div><div class="line"> return d.data.name;</div><div class="line"> });</div><div class="line"><span class="tag"></<span class="name">script</span>></span></div></pre></td></tr></table></figure></li></div><p class="readmore"><a href="/2017/07/26/d3-V4-树形结构-不完全demo/">阅读全文</a></p></div><div class="post"><h1 class="post-title"><a href="/2017/06/07/fluentd-elasticsearch-kibana-收集日志/">fluentd+elasticsearch+kibana 收集 flask 日志</a></h1><div class="post-meta">2017-06-07</div><a href="/2017/06/07/fluentd-elasticsearch-kibana-收集日志/#comments" class="ds-thread-count cloud-tie-join-count"><span lang="join-count" style="margin: 0 3px 0 1px;" data-url="http://blog.codeme.site/2017/06/07/fluentd-elasticsearch-kibana-收集日志/" class="join-count">0</span><span> 条参与</span></a><div class="post-content"><p>部署的机器是ubuntu 14.04 内存 2G</p>
<ol>
<li><p>首先是 elasticsearch 安装</p>
<ul>
<li>elasticsearch版本是5.4.1,<a href="https://www.elastic.co/downloads/elasticsearch" target="_blank" rel="external">官网地址</a></li></div><p class="readmore"><a href="/2017/06/07/fluentd-elasticsearch-kibana-收集日志/">阅读全文</a></p></div><div class="post"><h1 class="post-title"><a href="/2017/06/01/python-使用-logging/">python 使用 logging</a></h1><div class="post-meta">2017-06-01</div><a href="/2017/06/01/python-使用-logging/#comments" class="ds-thread-count cloud-tie-join-count"><span lang="join-count" style="margin: 0 3px 0 1px;" data-url="http://blog.codeme.site/2017/06/01/python-使用-logging/" class="join-count">0</span><span> 条参与</span></a><div class="post-content"><p>首先是json格式的配置文件, 其中配置的有 DatagramHandler ,udp形式的日志<br><figure class="highlight json"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div><div class="line">18</div><div class="line">19</div><div class="line">20</div><div class="line">21</div><div class="line">22</div><div class="line">23</div><div class="line">24</div><div class="line">25</div><div class="line">26</div><div class="line">27</div><div class="line">28</div><div class="line">29</div><div class="line">30</div><div class="line">31</div><div class="line">32</div><div class="line">33</div><div class="line">34</div><div class="line">35</div><div class="line">36</div><div class="line">37</div><div class="line">38</div><div class="line">39</div><div class="line">40</div><div class="line">41</div><div class="line">42</div><div class="line">43</div><div class="line">44</div><div class="line">45</div><div class="line">46</div><div class="line">47</div><div class="line">48</div><div class="line">49</div><div class="line">50</div><div class="line">51</div><div class="line">52</div><div class="line">53</div><div class="line">54</div><div class="line">55</div><div class="line">56</div><div class="line">57</div><div class="line">58</div><div class="line">59</div></pre></td><td class="code"><pre><div class="line">{</div><div class="line"> <span class="attr">"version"</span>: <span class="number">1</span>,</div><div class="line"> <span class="attr">"disable_existing_loggers"</span>: <span class="literal">false</span>,</div><div class="line"> <span class="attr">"formatters"</span>: {</div><div class="line"> <span class="attr">"simple"</span>: {</div><div class="line"> <span class="attr">"format"</span>: <span class="string">"%(asctime)s - %(name)s - %(levelname)s - %(message)s"</span></div><div class="line"> }</div><div class="line"> },</div><div class="line"></div><div class="line"> <span class="attr">"handlers"</span>: {</div><div class="line"> <span class="attr">"console"</span>: {</div><div class="line"> <span class="attr">"class"</span>: <span class="string">"logging.StreamHandler"</span>,</div><div class="line"> <span class="attr">"level"</span>: <span class="string">"DEBUG"</span>,</div><div class="line"> <span class="attr">"formatter"</span>: <span class="string">"simple"</span>,</div><div class="line"> <span class="attr">"stream"</span>: <span class="string">"ext://sys.stdout"</span></div><div class="line"> },</div><div class="line"></div><div class="line"> <span class="attr">"info_file_handler"</span>: {</div><div class="line"> <span class="attr">"class"</span>: <span class="string">"logging.handlers.RotatingFileHandler"</span>,</div><div class="line"> <span class="attr">"level"</span>: <span class="string">"INFO"</span>,</div><div class="line"> <span class="attr">"formatter"</span>: <span class="string">"simple"</span>,</div><div class="line"> <span class="attr">"filename"</span>: <span class="string">"info.log"</span>,</div><div class="line"> <span class="attr">"maxBytes"</span>: <span class="number">10485760</span>,</div><div class="line"> <span class="attr">"backupCount"</span>: <span class="number">20</span>,</div><div class="line"> <span class="attr">"encoding"</span>: <span class="string">"utf8"</span></div><div class="line"> },</div><div class="line"></div><div class="line"> <span class="attr">"error_file_handler"</span>: {</div><div class="line"> <span class="attr">"class"</span>: <span class="string">"logging.handlers.RotatingFileHandler"</span>,</div><div class="line"> <span class="attr">"level"</span>: <span class="string">"ERROR"</span>,</div><div class="line"> <span class="attr">"formatter"</span>: <span class="string">"simple"</span>,</div><div class="line"> <span class="attr">"filename"</span>: <span class="string">"errors.log"</span>,</div><div class="line"> <span class="attr">"maxBytes"</span>: <span class="number">10485760</span>,</div><div class="line"> <span class="attr">"backupCount"</span>: <span class="number">20</span>,</div><div class="line"> <span class="attr">"encoding"</span>: <span class="string">"utf8"</span></div><div class="line"> },</div><div class="line"></div><div class="line"> <span class="attr">"udp_handler"</span>: {</div><div class="line"> <span class="attr">"class"</span>: <span class="string">"logging.handlers.DatagramHandler"</span>,</div><div class="line"> <span class="attr">"level"</span>: <span class="string">"INFO"</span>,</div><div class="line"> <span class="attr">"formatter"</span>: <span class="string">"simple"</span>,</div><div class="line"> <span class="attr">"host"</span>: <span class="string">"localhost"</span>,</div><div class="line"> <span class="attr">"port"</span>: <span class="number">11111</span></div><div class="line"> }</div><div class="line"> },</div><div class="line"></div><div class="line"> <span class="attr">"loggers"</span>: {</div><div class="line"> <span class="attr">"lifemg"</span>: {</div><div class="line"> <span class="attr">"level"</span>: <span class="string">"INFO"</span>,</div><div class="line"> <span class="attr">"handlers"</span>: [<span class="string">"udp_handler"</span>],</div><div class="line"> <span class="attr">"propagate"</span>: <span class="string">"no"</span></div><div class="line"> }</div><div class="line"> },</div><div class="line"></div><div class="line"> <span class="attr">"root"</span>: {</div><div class="line"> <span class="attr">"level"</span>: <span class="string">"INFO"</span>,</div><div class="line"> <span class="attr">"handlers"</span>: [<span class="string">"console"</span>]</div><div class="line"> }</div><div class="line">}</div></pre></td></tr></table></figure></p></div><p class="readmore"><a href="/2017/06/01/python-使用-logging/">阅读全文</a></p></div><div class="post"><h1 class="post-title"><a href="/2017/05/25/hello-world/">Hello World</a></h1><div class="post-meta">2017-05-25</div><a href="/2017/05/25/hello-world/#comments" class="ds-thread-count cloud-tie-join-count"><span lang="join-count" style="margin: 0 3px 0 1px;" data-url="http://blog.codeme.site/2017/05/25/hello-world/" class="join-count">0</span><span> 条参与</span></a><div class="post-content"><p>Welcome to <a href="https://hexo.io/" target="_blank" rel="external">Hexo</a>! This is your very first post. Check <a href="https://hexo.io/docs/" target="_blank" rel="external">documentation</a> for more info. If you get any problems when using Hexo, you can find the answer in <a href="https://hexo.io/docs/troubleshooting.html" target="_blank" rel="external">troubleshooting</a> or you can ask me on <a href="https://github.com/hexojs/hexo/issues" target="_blank" rel="external">GitHub</a>.</p></div><p class="readmore"><a href="/2017/05/25/hello-world/">阅读全文</a></p></div><div class="post"><h1 class="post-title"><a href="/2017/05/19/Dockerfile-demo/">Dockerfile demo</a></h1><div class="post-meta">2017-05-19</div><a href="/2017/05/19/Dockerfile-demo/#comments" class="ds-thread-count cloud-tie-join-count"><span lang="join-count" style="margin: 0 3px 0 1px;" data-url="http://blog.codeme.site/2017/05/19/Dockerfile-demo/" class="join-count">0</span><span> 条参与</span></a><div class="post-content"><p>一个简单的Dockerfile的demo</p>
<figure class="highlight dockerfile"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div><div class="line">18</div><div class="line">19</div><div class="line">20</div><div class="line">21</div><div class="line">22</div><div class="line">23</div><div class="line">24</div><div class="line">25</div><div class="line">26</div><div class="line">27</div><div class="line">28</div><div class="line">29</div><div class="line">30</div><div class="line">31</div><div class="line">32</div><div class="line">33</div><div class="line">34</div><div class="line">35</div><div class="line">36</div><div class="line">37</div><div class="line">38</div><div class="line">39</div><div class="line">40</div><div class="line">41</div><div class="line">42</div><div class="line">43</div><div class="line">44</div><div class="line">45</div><div class="line">46</div><div class="line">47</div><div class="line">48</div><div class="line">49</div><div class="line">50</div><div class="line">51</div><div class="line">52</div><div class="line">53</div><div class="line">54</div><div class="line">55</div><div class="line">56</div><div class="line">57</div><div class="line">58</div><div class="line">59</div><div class="line">60</div><div class="line">61</div><div class="line">62</div><div class="line">63</div><div class="line">64</div><div class="line">65</div><div class="line">66</div><div class="line">67</div><div class="line">68</div><div class="line">69</div><div class="line">70</div><div class="line">71</div><div class="line">72</div><div class="line">73</div><div class="line">74</div></pre></td><td class="code"><pre><div class="line"><span class="keyword">FROM</span> python:<span class="number">2.7</span>-slim</div><div class="line"><span class="keyword">MAINTAINER</span> XX <XX@yy.com></div><div class="line"></div><div class="line"><span class="keyword">RUN</span> apt-get update && \</div><div class="line"> apt-get install -y supervisor \</div><div class="line"> libmysqlclient-dev unzip libaio1 \</div><div class="line"> build-essential libssl-dev libffi-dev curl && \</div><div class="line"> apt-get clean && \</div><div class="line"> rm -rf /var/lib/apt/lists/* \</div><div class="line"> /tmp/* \</div><div class="line"> /var/tmp/*</div><div class="line"></div><div class="line"><span class="keyword">ENV</span> MYSQL_DATABASE tmp</div><div class="line"><span class="keyword">ENV</span> MYSQL_USER tmp</div><div class="line"><span class="keyword">ENV</span> MYSQL_PASSWORD tmp</div><div class="line"><span class="keyword">ENV</span> MYSQL_HOST mysql_db</div><div class="line"><span class="keyword">ENV</span> MYSQL_PORT <span class="number">3306</span></div><div class="line"><span class="keyword">ENV</span> HOST_IP <span class="string">'127.0.0.1'</span></div><div class="line"><span class="keyword">ENV</span> HOST_PORT <span class="number">5000</span></div><div class="line"><span class="keyword">ENV</span> GIT_BRANCH_NAME <span class="string">'UNKOWN'</span></div><div class="line"><span class="keyword">ENV</span> ES_HOST es_db</div><div class="line"><span class="keyword">ENV</span> ES_PORT <span class="number">9200</span></div><div class="line"><span class="keyword">ENV</span> REDIS_HOST redis_db</div><div class="line"><span class="keyword">ENV</span> REDIS_PORT <span class="number">6379</span></div><div class="line"><span class="keyword">ENV</span> FLASK_ENV docker</div><div class="line"></div><div class="line"><span class="keyword">WORKDIR</span> /opt/oracle/</div><div class="line"><span class="keyword">ADD</span> instantclient-basic-linux.x64-12.2.0.1.0.zip .</div><div class="line"><span class="keyword">ADD</span> instantclient-sdk-linux.x64-12.2.0.1.0.zip .</div><div class="line"><span class="keyword">RUN</span> unzip instantclient-basic-linux.x64-12.2.0.1.0.zip && \</div><div class="line"> unzip instantclient-sdk-linux.x64-12.2.0.1.0.zip && \</div><div class="line"> rm instantclient-basic-linux.x64-12.2.0.1.0.zip && \</div><div class="line"> rm instantclient-sdk-linux.x64-12.2.0.1.0.zip && \</div><div class="line"> cd instantclient_12_2 && \</div><div class="line"> ln -s libclntsh.so.12.1 libclntsh.so && \</div><div class="line"> ln -s libocci.so.12.1 libocci.so</div><div class="line"></div><div class="line"><span class="keyword">ENV</span> ORACLE_HOME <span class="string">"/opt/oracle/instantclient_12_2"</span></div><div class="line"><span class="keyword">ENV</span> DYLD_LIBRARY_PATH <span class="string">"$ORACLE_HOME:$ORACLE_HOME/sdk/oracle/ott:$DYLD_LIBRARY_PATH"</span></div><div class="line"><span class="keyword">ENV</span> LD_LIBRARY_PATH <span class="string">"$ORACLE_HOME/sdk/include:$LD_LIBRARY_PATH"</span></div><div class="line"></div><div class="line"><span class="keyword">RUN</span> curl https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh -o - | bash && \</div><div class="line"> export NVM_DIR="/root/.nvm" && . "$NVM_DIR/nvm.sh" && \</div><div class="line"> nvm install v0.12.7 && \</div><div class="line"> nvm use v0.12.7 && \</div><div class="line"> npm config set user 0 && npm config set unsafe-perm true && \</div><div class="line"> npm install -g fis && \</div><div class="line"> npm install -g fis-postprocessor-require-async && \</div><div class="line"> npm install -g fis-parser-ejs && \</div><div class="line"> npm install -g fis-parser-sass && \</div><div class="line"> npm install -g fis-postpackager-autoload</div><div class="line"></div><div class="line"><span class="keyword">WORKDIR</span> /opt/lifemg</div><div class="line"><span class="keyword">ADD</span> requirements.txt .</div><div class="line"><span class="keyword">RUN</span> pip --no-cache-dir --disable-pip-version-check install -r requirements.txt</div><div class="line"></div><div class="line"><span class="keyword">ADD</span> manage.py .</div><div class="line"><span class="keyword">ADD</span> scripts scripts</div><div class="line"><span class="keyword">ADD</span> configs configs</div><div class="line"><span class="keyword">ADD</span> lws lws</div><div class="line"></div><div class="line"><span class="keyword">RUN</span> ls -l && pybabel compile -d ./lws/translations && \</div><div class="line"> export NVM_DIR="/root/.nvm" && . "$NVM_DIR/nvm.sh" && \</div><div class="line"> nvm use v0.12.7 && \</div><div class="line"> fis release --root ./lws/frontend/ -pcmd ./lws/ && \</div><div class="line"> rm -rf $NVM_DIR</div><div class="line"></div><div class="line"><span class="comment"># RUN ln -s ./configs/supervisor_docker_app.conf /etc/supervisor/conf.d/supervisor_docker_app.conf</span></div><div class="line"></div><div class="line"><span class="keyword">EXPOSE</span> <span class="number">443</span></div><div class="line"><span class="keyword">EXPOSE</span> <span class="number">80</span></div><div class="line"></div><div class="line"><span class="comment"># CMD supervisorctl start lifemg && tail -f /dev/null</span></div><div class="line"><span class="keyword">CMD</span> gunicorn -w 2 -b 0.0.0.0:80 -k sync --log-level debug manage:app && tail -f /dev/null</div></pre></td></tr></table></figure></div><p class="readmore"><a href="/2017/05/19/Dockerfile-demo/">阅读全文</a></p></div><div class="post"><h1 class="post-title"><a href="/2017/05/17/docker中安装cx-Oracle/">docker中安装cx-Oracle</a></h1><div class="post-meta">2017-05-17</div><a href="/2017/05/17/docker中安装cx-Oracle/#comments" class="ds-thread-count cloud-tie-join-count"><span lang="join-count" style="margin: 0 3px 0 1px;" data-url="http://blog.codeme.site/2017/05/17/docker中安装cx-Oracle/" class="join-count">0</span><span> 条参与</span></a><div class="post-content"><ol>
<li><p>下载下面两个压缩文件 <a href="http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html" target="_blank" rel="external">地址</a></p>
<ul>
<li>instantclient-basic-linux.x64-12.2.0.1.0.zip</li></div><p class="readmore"><a href="/2017/05/17/docker中安装cx-Oracle/">阅读全文</a></p></div><div class="post"><h1 class="post-title"><a href="/2017/05/04/etcd配置/">etcd配置</a></h1><div class="post-meta">2017-05-04</div><a href="/2017/05/04/etcd配置/#comments" class="ds-thread-count cloud-tie-join-count"><span lang="join-count" style="margin: 0 3px 0 1px;" data-url="http://blog.codeme.site/2017/05/04/etcd配置/" class="join-count">0</span><span> 条参与</span></a><div class="post-content"><p>下载和解压etcd的相关文件,略过</p>
<p>不输的文件夹是 /var/lib/etcd,其中 etcd 和 etcdctl 需要在 /usr/bin/ 下创建相关软连接,以便后续的service文件使用,也可以修改service文件</p>
<p>启动 etcd 服务的命令是 sudo systemctl start etcd<br>启动后检查,curl <a href="http://127.0.0.1:2379/v2/members" target="_blank" rel="external">http://127.0.0.1:2379/v2/members</a> 或者使用其他工具请求这个链接,IP地址为部署的任意机器的IP<br><figure class="highlight json"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div><div class="line">18</div><div class="line">19</div><div class="line">20</div><div class="line">21</div><div class="line">22</div><div class="line">23</div><div class="line">24</div><div class="line">25</div><div class="line">26</div><div class="line">27</div><div class="line">28</div><div class="line">29</div><div class="line">30</div><div class="line">31</div><div class="line">32</div><div class="line">33</div><div class="line">34</div></pre></td><td class="code"><pre><div class="line">{</div><div class="line"> <span class="attr">"members"</span>: [</div><div class="line"> {</div><div class="line"> <span class="attr">"id"</span>: <span class="string">"5b123c0b90e015"</span>,</div><div class="line"> <span class="attr">"name"</span>: <span class="string">"etcd01"</span>,</div><div class="line"> <span class="attr">"peerURLs"</span>: [</div><div class="line"> <span class="string">"http://192.168.56.101:2380"</span></div><div class="line"> ],</div><div class="line"> <span class="attr">"clientURLs"</span>: [</div><div class="line"> <span class="string">"http://192.168.56.101:2379"</span></div><div class="line"> ]</div><div class="line"> },</div><div class="line"> {</div><div class="line"> <span class="attr">"id"</span>: <span class="string">"b082d7cebafd0896"</span>,</div><div class="line"> <span class="attr">"name"</span>: <span class="string">"etcd02"</span>,</div><div class="line"> <span class="attr">"peerURLs"</span>: [</div><div class="line"> <span class="string">"http://192.168.56.102:2380"</span></div><div class="line"> ],</div><div class="line"> <span class="attr">"clientURLs"</span>: [</div><div class="line"> <span class="string">"http://192.168.56.102:2379"</span></div><div class="line"> ]</div><div class="line"> },</div><div class="line"> {</div><div class="line"> <span class="attr">"id"</span>: <span class="string">"ea85a2410887d0cd"</span>,</div><div class="line"> <span class="attr">"name"</span>: <span class="string">"etcd03"</span>,</div><div class="line"> <span class="attr">"peerURLs"</span>: [</div><div class="line"> <span class="string">"http://192.168.56.103:2380"</span></div><div class="line"> ],</div><div class="line"> <span class="attr">"clientURLs"</span>: [</div><div class="line"> <span class="string">"http://192.168.56.103:2379"</span></div><div class="line"> ]</div><div class="line"> }</div><div class="line"> ]</div><div class="line">}</div></pre></td></tr></table></figure></p></div><p class="readmore"><a href="/2017/05/04/etcd配置/">阅读全文</a></p></div><div class="post"><h1 class="post-title"><a href="/2017/04/28/git使用问题记录/">git使用问题记录</a></h1><div class="post-meta">2017-04-28</div><a href="/2017/04/28/git使用问题记录/#comments" class="ds-thread-count cloud-tie-join-count"><span lang="join-count" style="margin: 0 3px 0 1px;" data-url="http://blog.codeme.site/2017/04/28/git使用问题记录/" class="join-count">0</span><span> 条参与</span></a><div class="post-content"><ol>
<li><p>git pull 失败 ,提示:fatal: refusing to merge unrelated histories<br> <em>本地使用git init命令初始化后,并关联了远程仓库,本地和远程均有commit,首次推送出现的问题</em><br> 解决方法: <strong>git pull origin master –allow-unrelated-histories</strong></p></div><p class="readmore"><a href="/2017/04/28/git使用问题记录/">阅读全文</a></p></div><div class="post"><h1 class="post-title"><a href="/2017/04/27/多表连接查询统计sql示例/">多表连接查询统计sql示例</a></h1><div class="post-meta">2017-04-27</div><a href="/2017/04/27/多表连接查询统计sql示例/#comments" class="ds-thread-count cloud-tie-join-count"><span lang="join-count" style="margin: 0 3px 0 1px;" data-url="http://blog.codeme.site/2017/04/27/多表连接查询统计sql示例/" class="join-count">0</span><span> 条参与</span></a><div class="post-content"><p><strong>背景:</strong> 一个电商类似的项目,这个是后台统计使用的sql,之前使用的sqlalchemy ,但是运行的时间太长,400条记录,运行时间在1分钟左右,使用sql后运行时间在3秒左右</p>
<p>下面是示例的sql语句<br><figure class="highlight sql"><table><tr><td class="gutter"><pre><div class="line">1</div><div class="line">2</div><div class="line">3</div><div class="line">4</div><div class="line">5</div><div class="line">6</div><div class="line">7</div><div class="line">8</div><div class="line">9</div><div class="line">10</div><div class="line">11</div><div class="line">12</div><div class="line">13</div><div class="line">14</div><div class="line">15</div><div class="line">16</div><div class="line">17</div><div class="line">18</div><div class="line">19</div><div class="line">20</div><div class="line">21</div><div class="line">22</div><div class="line">23</div><div class="line">24</div><div class="line">25</div><div class="line">26</div><div class="line">27</div><div class="line">28</div><div class="line">29</div><div class="line">30</div><div class="line">31</div><div class="line">32</div><div class="line">33</div><div class="line">34</div><div class="line">35</div><div class="line">36</div></pre></td><td class="code"><pre><div class="line"><span class="keyword">SELECT</span> </div><div class="line">table_1.id <span class="keyword">AS</span> table_1_id, </div><div class="line">table_1.item_id <span class="keyword">AS</span> table_1_item_id, </div><div class="line">table_1.sku_no <span class="keyword">AS</span> table_1_sku_no, </div><div class="line">table_1.sku_name <span class="keyword">AS</span> table_1_sku_name, </div><div class="line">table_1.MDM_code <span class="keyword">AS</span> table_1_MDM_code,</div><div class="line">table_1.created_at <span class="keyword">AS</span> table_1_created_at, </div><div class="line">table_1.created_by <span class="keyword">AS</span> table_1_created_by, </div><div class="line">table_2.id <span class="keyword">AS</span> item_id, </div><div class="line">table_2.name <span class="keyword">AS</span> item_name, </div><div class="line">table_2.item_no <span class="keyword">AS</span> item_item_no, </div><div class="line">table_2.item_type <span class="keyword">AS</span> item_item_type, </div><div class="line">table_2.price <span class="keyword">AS</span> item_price, </div><div class="line"><span class="keyword">count</span>(<span class="keyword">DISTINCT</span> table_3.id) <span class="keyword">AS</span> browse_times, <span class="comment">/*用 DISTINCT 去重,统计数量*/</span></div><div class="line"><span class="keyword">count</span>(<span class="keyword">DISTINCT</span> table_4.id) <span class="keyword">AS</span> like_times, </div><div class="line"><span class="keyword">count</span>(<span class="keyword">DISTINCT</span> table_5.id) <span class="keyword">AS</span> item_share_times, </div><div class="line"><span class="keyword">count</span>(<span class="keyword">DISTINCT</span> table_6.id) <span class="keyword">AS</span> add_cart_times, </div><div class="line"><span class="keyword">count</span>(<span class="keyword">DISTINCT</span> table_7.id) <span class="keyword">AS</span> table_7_times, </div><div class="line"><span class="keyword">count</span>(<span class="keyword">DISTINCT</span> table_8.id) <span class="keyword">AS</span> comment_times, </div><div class="line"><span class="keyword">count</span>(<span class="keyword">DISTINCT</span> table_9.id) <span class="keyword">AS</span> table_9_order_count,</div><div class="line"><span class="keyword">sum</span>(table_9.cnt)/(<span class="keyword">count</span>(table_9.order_id)/<span class="keyword">count</span>(<span class="keyword">distinct</span> table_9.order_id)) <span class="keyword">AS</span> table_9_sku_count,</div><div class="line"><span class="keyword">sum</span>(table_9.cnt * table_9.price)/(<span class="keyword">count</span>(table_9.order_id)/<span class="keyword">count</span>(<span class="keyword">distinct</span> table_9.order_id)) <span class="keyword">AS</span> table_9_total_price</div><div class="line"><span class="comment">/* sum算总和的时候除掉重复的次数,目前没有找到什么更好的办法来解决 */</span></div><div class="line"></div><div class="line"><span class="keyword">FROM</span> table_1 <span class="keyword">JOIN</span> table_2 <span class="keyword">ON</span> table_1.item_id = table_2.id</div><div class="line"></div><div class="line"><span class="keyword">LEFT</span> <span class="keyword">OUTER</span> <span class="keyword">JOIN</span> table_3 <span class="keyword">ON</span> table_3.detail = table_1.item_id <span class="keyword">AND</span> table_3.act_time <span class="keyword">BETWEEN</span> <span class="string">'1487981301.0'</span> <span class="keyword">AND</span> <span class="string">'1493165301.0'</span> </div><div class="line"><span class="keyword">LEFT</span> <span class="keyword">OUTER</span> <span class="keyword">JOIN</span> table_4 <span class="keyword">ON</span> table_4.detail = table_1.item_id <span class="keyword">AND</span> table_4.act_time <span class="keyword">BETWEEN</span> <span class="string">'1487981301.0'</span> <span class="keyword">AND</span> <span class="string">'1493165301.0'</span> </div><div class="line"><span class="keyword">LEFT</span> <span class="keyword">OUTER</span> <span class="keyword">JOIN</span> table_5 <span class="keyword">ON</span> table_5.detail = table_1.item_id <span class="keyword">AND</span> table_5.act_time <span class="keyword">BETWEEN</span> <span class="string">'1487981301.0'</span> <span class="keyword">AND</span> <span class="string">'1493165301.0'</span> </div><div class="line"><span class="keyword">LEFT</span> <span class="keyword">OUTER</span> <span class="keyword">JOIN</span> table_6 <span class="keyword">ON</span> table_6.detail = table_1.item_id <span class="keyword">AND</span> table_6.act_time <span class="keyword">BETWEEN</span> <span class="string">'1487981301.0'</span> <span class="keyword">AND</span> <span class="string">'1493165301.0'</span> </div><div class="line"><span class="keyword">LEFT</span> <span class="keyword">OUTER</span> <span class="keyword">JOIN</span> table_8 <span class="keyword">ON</span> table_8.item_id = table_1.item_id <span class="keyword">AND</span> table_8.created_at <span class="keyword">BETWEEN</span> <span class="string">'2017-02-25 08:08:21'</span> <span class="keyword">AND</span> <span class="string">'2017-04-26 08:08:21'</span> </div><div class="line"><span class="keyword">LEFT</span> <span class="keyword">OUTER</span> <span class="keyword">JOIN</span> table_7 <span class="keyword">ON</span> table_7.sku_id = table_1.id <span class="keyword">AND</span> table_7.created_at <span class="keyword">BETWEEN</span> <span class="string">'2017-02-25 08:08:21'</span> <span class="keyword">AND</span> <span class="string">'2017-04-26 08:08:21'</span> </div><div class="line"><span class="keyword">LEFT</span> <span class="keyword">OUTER</span> <span class="keyword">JOIN</span> table_9 <span class="keyword">ON</span> table_9.sku_id = table_1.id <span class="keyword">AND</span> table_9.order_id <span class="keyword">in</span> </div><div class="line"> (<span class="keyword">select</span> table_10.id <span class="keyword">from</span> table_10 <span class="keyword">WHERE</span> table_10.created_at <span class="keyword">BETWEEN</span> <span class="string">'2017-02-25 08:08:21'</span> <span class="keyword">AND</span> <span class="string">'2017-04-26 08:08:21'</span>)</div><div class="line"></div><div class="line"><span class="keyword">GROUP</span> <span class="keyword">BY</span> table_1.id;</div></pre></td></tr></table></figure></p></div><p class="readmore"><a href="/2017/04/27/多表连接查询统计sql示例/">阅读全文</a></p></div><div class="post"><h1 class="post-title"><a href="/2017/01/06/Hexo搭建博客/">Hexo搭建博客</a></h1><div class="post-meta">2017-01-06</div><a href="/2017/01/06/Hexo搭建博客/#comments" class="ds-thread-count cloud-tie-join-count"><span lang="join-count" style="margin: 0 3px 0 1px;" data-url="http://blog.codeme.site/2017/01/06/Hexo搭建博客/" class="join-count">0</span><span> 条参与</span></a><div class="post-content"><h2 id="Hexo-搭建个人博客"><a href="#Hexo-搭建个人博客" class="headerlink" title="Hexo 搭建个人博客"></a>Hexo 搭建个人博客</h2><hr>
<p>Hexo是基于nodejs的工具,需要先安装nodejs</p>
<ol>
<li>windows下自己接下载nodejs的安装包,安装即可。</li></div><p class="readmore"><a href="/2017/01/06/Hexo搭建博客/">阅读全文</a></p></div><script>var yunModuleEnv = true;</script><script src="//img1.cache.netease.com/f2e/tie/yun/sdk/loader.js"></script><script>var yunTieProductKey = 'b2f1a3586920430c913b8b0f32d4a9eb';
Tie.loader('aHR0cHM6Ly9hcGkuZ2VudGllLjE2My5jb20vZXh0ZW5kL2xpc3Rfam9pbl9zY3JpcHQuaHRtbA==', true);</script></div></div><div class="pure-u-1-4 hidden_mid_and_down"><div id="sidebar"><div class="widget"><div class="search-form"><input id="local-search-input" placeholder="Search" type="text" name="q" results="0"/><div id="local-search-result"></div></div></div><div class="widget"><div class="widget-title"><i class="fa fa-folder-o"> 分类</i></div></div><div class="widget"><div class="widget-title"><i class="fa fa-star-o"> 标签</i></div><div class="tagcloud"><a href="/tags/d3/" style="font-size: 15px;">d3</a></div></div><div class="widget"><div class="widget-title"><i class="fa fa-file-o"> 最近文章</i></div><ul class="post-list"><li class="post-list-item"><a class="post-list-link" href="/2017/07/26/d3-V4-树形结构-不完全demo/">d3 V4 树形结构 不完全demo</a></li><li class="post-list-item"><a class="post-list-link" href="/2017/06/07/fluentd-elasticsearch-kibana-收集日志/">fluentd+elasticsearch+kibana 收集 flask 日志</a></li><li class="post-list-item"><a class="post-list-link" href="/2017/06/01/python-使用-logging/">python 使用 logging</a></li><li class="post-list-item"><a class="post-list-link" href="/2017/05/25/hello-world/">Hello World</a></li><li class="post-list-item"><a class="post-list-link" href="/2017/05/19/Dockerfile-demo/">Dockerfile demo</a></li><li class="post-list-item"><a class="post-list-link" href="/2017/05/17/docker中安装cx-Oracle/">docker中安装cx-Oracle</a></li><li class="post-list-item"><a class="post-list-link" href="/2017/05/04/etcd配置/">etcd配置</a></li><li class="post-list-item"><a class="post-list-link" href="/2017/04/28/git使用问题记录/">git使用问题记录</a></li><li class="post-list-item"><a class="post-list-link" href="/2017/04/27/多表连接查询统计sql示例/">多表连接查询统计sql示例</a></li><li class="post-list-item"><a class="post-list-link" href="/2017/01/06/Hexo搭建博客/">Hexo搭建博客</a></li></ul></div><div class="widget"><div class="widget-title"><i class="fa fa-external-link"> 友情链接</i></div><ul></ul><a href="http://blog.codeme.site/" title="这什么也没有" target="_blank">这什么也没有</a></div></div></div><div class="pure-u-1 pure-u-md-3-4"><div id="footer">Copyright © 2017 <a href="/." rel="nofollow">Horbie Blog.</a> Powered by<a rel="nofollow" target="_blank" href="https://hexo.io"> Hexo.</a><a rel="nofollow" target="_blank" href="https://github.com/tufu9441/maupassant-hexo"> Theme</a> by<a rel="nofollow" target="_blank" href="https://github.com/pagecho"> Cho.</a></div><script>var host_domain = window.location.host;
if (host_domain == 'b.codeme.site') {
$("#footer").append("<p>Hosted by <a href=\"https://pages.coding.me\" style=\"font-weight: bold\">Coding Pages</a></p>");
}</script></div></div><a id="rocket" href="#top" class="show"></a><script type="text/javascript" src="/js/totop.js?v=0.1.0" async></script><script type="text/javascript" src="//cdn.bootcss.com/fancybox/3.0.47/jquery.fancybox.min.js" async></script><script type="text/javascript" src="/js/fancybox.js?v=0.1.0" async></script><link rel="stylesheet" type="text/css" href="//cdn.bootcss.com/fancybox/3.0.47/jquery.fancybox.min.css"><script type="text/javascript" src="/js/search.js?v=0.1.0"></script><script>var search_path = 'search.xml';
if (search_path.length == 0) {
search_path = 'search.xml';
}
var path = '/' + search_path;
searchFunc(path, 'local-search-input', 'local-search-result');
</script><script>var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
var host_domain = window.location.host;
if (host_domain == "b.codeme.site") {
hm.src = "//hm.baidu.com/hm.js?836c271507e94fe8a1ac6f9c1b2b1bde";
} else {
hm.src = "//hm.baidu.com/hm.js?c2aeb8f595a477a6bbd654908aefd7bb";
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script><script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
var host_domain = window.location.host;if(host_domain == "b.codeme.site"){
ga('create','UA-98266527-3','auto');}else{ga('create','UA-98266527-2','auto');}
ga('send','pageview');
</script><script type="text/javascript" src="/js/codeblock-resizer.js?v=0.1.0"></script><script type="text/javascript" src="/js/smartresize.js?v=0.1.0"></script></div></body></html>