<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title><![CDATA[liuhui998's new blog]]></title>
  <link href="liuhui998.com/atom.xml" rel="self"/>
  <link href="liuhui998.com/"/>
  <updated>2019-11-20T08:56:00+08:00</updated>
  <id>liuhui998.com/</id>
  <author>
    <name><![CDATA[liuhui998]]></name>
    
  </author>
  <generator uri="http://octopress.org/">Octopress</generator>

  
  <entry>
    <title type="html"><![CDATA[中年危机在哪里？]]></title>
    <link href="liuhui998.com/2019/11/20/mid-life-crisis/"/>
    <updated>2019-11-20T08:41:00+08:00</updated>
    <id>liuhui998.com/2019/11/20/mid-life-crisis</id>
    <content type="html"><![CDATA[<p>最近和一个朋友聊天，他比我小10岁左右。他和我提到了他要面对中年危机了，我当时脑袋一下子抽筋了。我想，如果他中年危机，那我是不是得老年危机？</p>

<p>诚然人在30岁后很多的压力，父母开始变老，儿女需要照顾。但是也发现自己的学习能力变强了，经历多了一点。以前要发很多遍才能读得懂的书，现在，看一遍就基本懂意思了。</p>

<p>摩西在80岁的时候，才被神大大使用，带领以色列人从埃及为奴之地逃出来。在中国古代也有，周朝的姜子牙，80岁拜丞相，帮助周打败了商。</p>

<p>我今年37岁，我觉得人生才刚刚开始。我不知道我能活到多少岁，但我觉得，我需要善待每一天。</p>

<p>当然中年危机这个词也不完全是啊负面的或者是贩卖焦虑。他至少能让你警醒，能让你知道，你的人生需要有突破，你要善用每一天的时间。</p>

<p>忧虑是你该想的不去想，不该想的拼命去想。该想的是，你在世的日子会一天天减少，你有没有利用好神给你这一天生命？不该想的事，你今年多大了，你和别人比怎么样了？</p>

<p>如果一切太顺利了，就没有感恩和珍惜。</p>

<p>我觉得要把中年危机的中年去掉，改成有危机感。假设我还要活50年，那我就只有18,000多天可以过的。那么每过一天，你就少一天。</p>

<p>当你在世的日子，由18,000变成17,000，变成16,000这样，一点点的倒数的时候你会感觉到强烈的危机感和紧迫感。</p>

<p>其实这比什么中年危机或者老年危机更为重要。</p>

<hr />

<p>这是补充，其实这个文章写好了有2周左右，但是在几天前我爷爷过世了，刚好87岁。</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[儿时回忆与长期成长]]></title>
    <link href="liuhui998.com/2019/10/17/kids-memory-and-long-term-growth/"/>
    <updated>2019-10-17T08:37:00+08:00</updated>
    <id>liuhui998.com/2019/10/17/kids-memory-and-long-term-growth</id>
    <content type="html"><![CDATA[<p>在我读高三的时候，父亲下岗了，他当时是县城副食品公司的副总经理。</p>

<p>虽然他当时没有什么积蓄，很幸运，后来他很快成功的开始做自己的生意。由于过去经验，知识和人脉的积累，代理了一些副食的品牌，整个家庭的生活没有陷入困顿。</p>

<p>同期，我父亲的下属的一个经理也下岗了，由于他更接近业务，他下岗后的生意比我父亲做的更大。</p>

<p>但当时公司的总经理，没有那么幸运。他没有什么很多的资源积累，听说后来他开了一个烟摊，生活有点艰难。</p>

<p>当然这三个人的经历肯定有运气的成分，但这件事在我幼年留下比较深的印象。所以也在工作的选择上面，只要不违反道德和良心的缘故，我通常会选择，更有挑战的工作，哪怕短期回报会低一些。</p>

<p>如果你的注意力聚焦在解决真正的问题上面，你的长期回报一定不会很差。或者说当你遇上黑天鹅世界的时候，而你的抗风险能力会强很多。</p>

<p>重要的的是解决问题后给身边人带来的帮助，而不是个人的荣耀。</p>

<p>不再是我，乃是基督。</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[关于组织混合作战的思考]]></title>
    <link href="liuhui998.com/2019/09/27/new-idea-for-org/"/>
    <updated>2019-09-27T08:41:00+08:00</updated>
    <id>liuhui998.com/2019/09/27/new-idea-for-org</id>
    <content type="html"><![CDATA[<p>管理领域的很多重大创新思路都来自于军事。我是一名工程师我一直在思考如何让开发组织的效率更大化。</p>

<p>传统的做法是把开发团队和业务团队，完全割裂开，中间用产品经理来进行沟通。</p>

<p>但是当我读二战史的时候发现，跨兵种协作好的军队，那么他的战斗力都比较强。</p>

<p>在太平洋战场的日军，由于陆军和海军的目标各不相同，他们错失了非常多的机会。在一次海战中，本来舰队的目的是为驻守岛上的陆军运送给养，但是当他们遇到美军舰队时，海军为了杀敌立功，把给养都丢掉了，结果造成了陆军的重大损失。</p>

<p>还有在敦克尔克战役的时候，德军出本来有机会全歼盟军。但是由于德空军与陆军的配合不佳，给盟军留下了很大的时间空窗，让他们得以顺利脱逃。</p>

<p>这也就是传说中的，跨组织沟通的问题。</p>

<p>所以，在现代军事组织里面一般会将军种混编。比如说，海军陆战队这种组织形式，它里面有空军，有海军，也有陆军。</p>

<p>我在想对于工程开发团队，是否有可能也实现混编。所谓的混编就是，程序员在兵种上还属于他的军种司令部，但是实际配属上就是和业务人员混合搭档。</p>

<p>比如财务部可以配1~2个程序员，他的绩效80%都归财务部来打。他平时也是和财务的同事坐在一起，虽然他可能还人员编制上是属于工程开发部门。</p>

<p>工程开发部门，主要提供在专业能力和技术平台上的支撑。跨兵种混成后，组织的做战效率更高，也能更好的面对变化。</p>

<p>上面的都是我在上班路上的随想，也没有验证过，希望以后可以尝试一下，哈哈。</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[感恩刘雅贤老师]]></title>
    <link href="liuhui998.com/2019/09/26/thanksiving-to-my-teacher/"/>
    <updated>2019-09-26T08:45:00+08:00</updated>
    <id>liuhui998.com/2019/09/26/thanksiving-to-my-teacher</id>
    <content type="html"><![CDATA[<p>我一直想写一下我大学的班主任。刘雅贤老师。</p>

<p>在2000年的时候，我高中毕业到湖南师大去读自考，有幸碰到了我当时的班主任刘老师。</p>

<p>她是哈尔滨人，因为先生是湖南人，所以到了湖南。她是湖南师大的退休老师，当时已经60多岁。</p>

<p>我们这一批学生都是高考连大专录取线都不到的学生，没有书读了，所以去湖南师大读自考，基本上是学渣中的学渣。</p>

<p>我们到了师大之后，教室在师大图书馆北边的计算机教学部7楼；学生宿舍在嗯大学堂坡的民房里面。</p>

<p>大家即兴奋也有点有迷茫，因为高中基础太差了，到大家来学习高数英语等课程还是非常的吃力。</p>

<p>她的家刚好也在宿舍的附近，每天都会主动来过问，我们学习和生活的情况，就像老妈妈一般。</p>

<p>像我们这一批人，在原来的高中里面，基本上都是nobody。然后到大学里面有这么，这一位关爱人的老师，让大家心里嗯都非常的暖和。</p>

<p>很可惜的是，她只做了了我们一年的班主任，然后因为东北老家有事就没有做我们的班主任。</p>

<p>但是这一年的时间，也是我们当时那一波同学，非常温馨的回忆。</p>

<p>大学毕业以后，同学们还经常三五成群去看她，我去年去看她的时候，她说自己记性不好了，有时找不到回家的路。</p>

<p>转眼间19年过去了。</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[基础设施即代码]]></title>
    <link href="liuhui998.com/2019/09/11/iac-talk/"/>
    <updated>2019-09-11T08:43:00+08:00</updated>
    <id>liuhui998.com/2019/09/11/iac-talk</id>
    <content type="html"><![CDATA[<p>Infrastructure-as-code (IaC) 就是基础设施即代码。</p>

<p>所有的服务器网络等IT资源都通过代码来描述, 并自动创建。在传统的自建机房时代几乎是不可能完成的任务，但是现在，大部分的新兴企业都把资源已到了云端，比如亚马逊云或者阿里云。
这慢慢就变成可能的事情了。</p>

<p>Iac也是我们持续集成和持续构建里面不可或缺的一环，如果你没有把所有的基础设施都变成代码，那么你每一次的代码修改所依赖的环境变动都是不可预测的。</p>

<p>基础设施及代码有很多种搞法，有用 Docker的,也有用ansible或者是亚马逊自带的cloudformation的。选哪个工具也不是重点，重要的是选择适合自己的工具。</p>

<p>程序员应该把大部分精力都放在嗯业务逻辑上面或者架构上面，对于基础设施，对他们不应该成为瓶颈，程序员可以向写代码一样写他的需要的资源。</p>

<p>对于服务器环境网络的配置可代码版本化管理，可回退可记录可重现。</p>

<p>这些话我是讲给自己听，或者能明白的人听。哈哈！</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[20190809给儿子的家书-园丁]]></title>
    <link href="liuhui998.com/2019/09/05/letter-to-my-son-4/"/>
    <updated>2019-09-05T07:20:00+08:00</updated>
    <id>liuhui998.com/2019/09/05/letter-to-my-son-4</id>
    <content type="html"><![CDATA[<blockquote><p>这是我在20190809早上给大儿子的信，他当时在邵东老家</p>

<p>今天抽时间整理出来</p></blockquote>

<p>儿子你好，爸爸今天早上又在上班路上，又可以给你写信。</p>

<p>你在奶奶家也待了好多天，也很想爸爸了吧，爸爸也非常想你。</p>

<p>我看到你把最近作业写得很好，人也在成长，让爸爸心里很是欣慰。</p>

<p>就像园丁看到他所栽培的树一天天长大，他所种的花，一天天的开放。</p>

<p>人生就是这样，一代又一代在传承。</p>

<p>你栽种什么就收成什么。</p>

<p>每天要在善的事情上面栽种，在恶事上拔除。当最后的一天，你就会收获丰盛的果实。</p>

<p>人生路很长，找对目标，一直走下去。</p>

<p>好的，儿子今天时间很短，我们就先聊这么多。</p>

<p><img src="http://liuhui998.com/images/letter-to-my-son-4/shaodong_rice.jpg" alt="邵东田间景像" />
邵东田间景像</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[20190806给儿子的家书]]></title>
    <link href="liuhui998.com/2019/09/04/letter-to-my-son-3/"/>
    <updated>2019-09-04T06:48:00+08:00</updated>
    <id>liuhui998.com/2019/09/04/letter-to-my-son-3</id>
    <content type="html"><![CDATA[<blockquote><p>这是我在20190806早上给大儿子的信，他当时在邵东老家</p>

<p>今天抽时间整理出来</p></blockquote>

<p>儿子你好，现在爸爸在上班的路上，我又有时间来给你写一封短信。</p>

<p>最近在中国的南边一个叫香港的地方，发生了很多的冲突。很多香港的市民，因着各种原因上街去游行。</p>

<p>其中一个重要的原因就是，对于未来的恐惧。担心未来法律是否一如既往的健全。</p>

<p>法律是什么呢？法律就是大人世界里面的规矩。他规定了在大人世界里面彼此应该怎样合作。规定了什么样的人该去进监狱, 这可不只是好爸爸牌打屁股那么简单。</p>

<p>我对香港和大陆都怀有同样的怜悯之心，因为他们都是生活在某种恐惧之中，就像儿子你怕写作业一样。</p>

<p>我想告诉你的是，在大人的世界里，除了工作之外也有他的规矩，那就是法律。当然除了法律之外，更高的还有上帝赐人心里的和良心，良心和道德的要求比法律更高。</p>

<p>比如有一个人没有饭吃，到你家来讨饭。你可以不给他吃的，这没有违法，但是你违背了你的良心。</p>

<p>好的，儿子，今天就说这么多爸爸就要到单位了。</p>

<p>记得给我回两句话哦😃</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[20190805给儿子的家书]]></title>
    <link href="liuhui998.com/2019/09/03/letter-to-my-son-2/"/>
    <updated>2019-09-03T08:51:00+08:00</updated>
    <id>liuhui998.com/2019/09/03/letter-to-my-son-2</id>
    <content type="html"><![CDATA[<blockquote><p>这是我在20190805早上给大儿子的信，他当时在邵东老家
今天抽时间整理出来</p></blockquote>

<p>儿子又到了给你写信的时间。现在爸爸正在坐车去单位的路上，这几天长沙没有以前那么热了。</p>

<p>不知道爸爸在你心目中是什么样的形象，是不是就像长沙的太阳一样火辣热烈严厉。</p>

<p>在很久以前爸爸也像你一样是一个10岁左右的小孩。每天也只会想着玩，想着吃好吃的或者是偷偷的看电视。我知道靠人的努力是没有办法能达到自律的。人里面都有你可能向善的心，但是也有一个想偷懒的心。</p>

<p>就像我常和你说的一样，你里面有一个好小孩，还有一个坏小孩。</p>

<p>有时候稍不注意你里面的那个坏小孩就出来了。作为父母，我肯定希望，你表现出来的都只有那个好小孩，没有坏小孩。但是我知道这是做不到的。每个人从出生就带着罪，看到自己所没有的，不管是不是自己该得的，都会很想要。</p>

<p>儿子，我也常常的为你祷告，俺希望你成为一个像使徒Peter那样，虽然有过软弱，但是总必坚强的男人。</p>

<p>期待着你给我回信😀</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[20190803给儿子的家书]]></title>
    <link href="liuhui998.com/2019/09/02/letter-to-my-son-1/"/>
    <updated>2019-09-02T09:04:00+08:00</updated>
    <id>liuhui998.com/2019/09/02/letter-to-my-son-1</id>
    <content type="html"><![CDATA[<blockquote><p>暑假儿子回老家，我利用坐班车的时间给他写了信</p></blockquote>

<p>儿子你好，爸爸答应明天要给你写信，所以今天就提前把信要写好。</p>

<p>你现在已经10岁多了，还有两年小学就要毕业了，到时你就可以独立的出门去旅行了。</p>

<p>时间过得真快，我现在还记得你当年在湘雅附三医院出生的情景。你从医院出来的那天，你奶奶用棉被包着你，把你抱着从医院抱出来，然后抱到了我们租住的杏林小区。</p>

<p>我现在手上没有相片，但是我还一直记得那天你的样子，真是非常可爱。</p>

<p>在未来的一天，你会变成一个大人，你要承担起一个男人的责任。就像爷爷每天去照顾老爷爷一样，就像爸爸每天也要来照顾你一样。</p>

<p>好的，不说多了，期待着你给我回信。</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Peter的时间管理-1]]></title>
    <link href="liuhui998.com/2019/08/30/time-management-1/"/>
    <updated>2019-08-30T08:36:00+08:00</updated>
    <id>liuhui998.com/2019/08/30/time-management-1</id>
    <content type="html"><![CDATA[<blockquote><p>最近一直在看德鲁克写的《卓有成效的管理者》，第二章讲的是： &#8220;掌握自己的时间&#8221;</p>

<p>时间无论对于身家百亿的CEO, 还是最底层的员工，都是最紧缺资源，一天只有24个小时。</p></blockquote>

<p>掌握时间： <em>第1步就是记录时间</em></p>

<p>人是感性的，TA对时间的感觉和记录，是不精确的。在做我们自己感兴趣的事情上，时间过得很快，比如刷手机;在我们不喜欢的事情上，时间过的比较慢，比如看书。我们常常以为自己在无关紧要的时间花时间不多，但是如果你记录下来发现，其实还蛮可观的。</p>

<p>我刚工作的时候，听说麦肯锡要求员工每半个小时记录自己做了什么？当时觉得这个公司真的是很资本家。</p>

<p>但是后来自己想明白了，如果你自己在公司里面一天都不知道自己每半小时做了什么，那你的老板更难清楚你做什么？</p>

<p>员工和老板之间本质是是一种契约关系，员工将工时售卖给老板，如果员工需要老板更高的出价，就需要自证其工作的效率。</p>

<p>如果要卓有成效的完成你的工作，利用好时间，那肯定第1步是要记录时间。</p>

<p>我现在使用番茄工作法来，每天计划记录每天的工作。我把时间分割成半小时为单位，记录我每半个小时主要做了什么？我坚持了8年。</p>

<p>我发现自己在很多不重要也不紧急的事情上面，花了超出预想的时间。</p>

<p>经过长时间的记录训练我嗯，知道自己一天可以，做多少事情。这为后面的时间管理和时间计划提供了很好的帮助。</p>

<p>后面我再来细细说我怎么进行每天的计划管理与时间记录。</p>

<p>我每天写这些文章的目的就是，利用在通勤的时间把自己的想法记录下来。不要浪费时间，仅此而已。</p>

<p>哈哈！</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Peter的技术选项思路]]></title>
    <link href="liuhui998.com/2019/08/29/tech-choices/"/>
    <updated>2019-08-29T08:13:00+08:00</updated>
    <id>liuhui998.com/2019/08/29/tech-choices</id>
    <content type="html"><![CDATA[<p>现有每天早上强制自己写一点东西。</p>

<p>本来今天早上要写 Redshift 相关的技术，但是自己转念一想，为什么不写写自己技术选项上的思路，让更多的人可以了解背后的原理。</p>

<p>对于技术造型我有几个原则:</p>

<blockquote><ol>
<li>技术要简单(简练)</li>
<li>技术要成熟</li>
<li>技术要有生态</li>
</ol>
</blockquote>

<h3>简单(简练)：</h3>

<ul>
<li>简练的技术才能组合出复杂的事物</li>
<li>简单的技术才能易维护</li>
<li>简单的技术才能少出 BUG</li>
<li>简单的技术新人才能更容易入门，也更容易搭建Team</li>
</ul>


<p>比如C语言就比C++简练很多，也简单很多，重要系统用C写就比C++多。</p>

<h3>成熟:</h3>

<ul>
<li>成熟不是指这个技术出来很久（和年份不强相关）</li>
<li>而是指这个技术的设计者已经深思熟虑，在前人的经验上设计出成熟的产品。</li>
</ul>


<p>比如Git就是Linus在BitKeeper的基础上想了很久，设计出的产品。</p>

<h3>生态</h3>

<ul>
<li>这项技术是否有足够技术资料</li>
<li>上下游是否配套的服务</li>
<li>这技术有无大量的技术爱好者</li>
<li>这项技术是否有最佳实践</li>
</ul>


<p>比如Ruby On Rails, 比如 Redshift 等。</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[谁是这个世界的主人]]></title>
    <link href="liuhui998.com/2019/08/28/the-earth-owner/"/>
    <updated>2019-08-28T08:45:00+08:00</updated>
    <id>liuhui998.com/2019/08/28/the-earth-owner</id>
    <content type="html"><![CDATA[<blockquote><p>诗篇 24 篇</p>

<p>地和其中所充满的、世界、和住在其间的、都属耶和华.</p>

<p>The earth is the LORD&#8217;s, and everything in it, the world, and all who live in it;</p></blockquote>

<p>我最近在为南方的事担心，心里很不平安，于是给一个弟兄打电话.</p>

<p>他问了我一句话：“对于基督徒来说，这世界的主人是哪位？”</p>

<p>是的，对基督徒来说，这个世界是属神的，一切事情的发生，都有神的允许; 我们无须对未来担心，未来有神的主权。</p>

<p>还有一件事情，我和另一个弟兄祷告时，他特意提到，不要把自己现在所拥有的能力或特长，当作自己所有以。这一切能力都是神所赐的，我们要谦卑顺服的以管家的心态用好能力与恩赐。</p>

<p>好的，一切交托！</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[怎么做好一个馒头(Mentor)]]></title>
    <link href="liuhui998.com/2019/08/26/mentor-123/"/>
    <updated>2019-08-26T21:36:00+08:00</updated>
    <id>liuhui998.com/2019/08/26/mentor-123</id>
    <content type="html"><![CDATA[<blockquote><p>Mentor这个词，中文翻译成导师，本来也没有大错。比如，在学校里面的博士生指导教授，正规的称呼应该是导师, 所以国内称为博导。但是的导师这个词没有表达出Mentor本来的含义。翻译成馒头，应该是一个不错的有趣味的现代翻译。馒头主要给新进来的新人各方面的一些工作指导。但他们又不是这些新人的上级，所以比较好相处, 但是对新人。</p></blockquote>

<h3>怎么做好一个Mentor馒头？</h3>

<p>我最近一直在公司做馒头，应该带了前后不下10个人，这是一个比较难回答的问题。</p>

<p>前期可能也耽误过一些同学，但是也是最近才开始有了一点感觉。</p>

<p>特别是上了7步工作法导师培训班后，对于一些工作方法和理论，有了更深刻的认识。</p>

<p>最近也在看: 德鲁克先生写的 《卓有成效的管理者》。</p>

<p>里面有一个片段特别让我印象深刻。</p>

<blockquote><p>美国的报纸曾刊登一篇采访越南战场上一位青年步兵上尉的报道。
记者问: &#8220;在战场混乱的情况下，你如何指挥你的下属？&#8221;
那位青年步兵上尉回答说: &#8220;在那里我是唯一的负责人。当我的下属在丛林中遭遇敌人，却不知该怎么行动时，我也因为距离太远无法告诉他们。
我的任务只是训练他们，知道在这种情形下应该如何行动。至于实际上该怎么做，应由他们根据情况加以判断。
责任虽然在我，但是行动的决策，却有战场上的每个人，自己决定。&#8221;</p></blockquote>

<p>我们作为馒头，带新人也就如这个军官一样。我们不可能像用线牵着莫让你的学员，按照你的想法去行动。</p>

<p>好的馒头是激发学员的兴趣，告诉学员处理问题的基本原则，让他在实战中学习成长。</p>

<p>​最后也是最重要的，馒头们必须要使使命感，TA有义务和责任去帮助别人，去让这个世界更美好！</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Peter 数据一班 晨谈-3]]></title>
    <link href="liuhui998.com/2019/08/23/anker-data-team-one-3/"/>
    <updated>2019-08-23T08:52:00+08:00</updated>
    <id>liuhui998.com/2019/08/23/anker-data-team-one-3</id>
    <content type="html"><![CDATA[<p>不好意思，昨天我说答应给大家推荐两本编程方面的书，但是我只找到一本合适的，那就先大家就把这一本看好。这是一本台湾人写的，R语言的入门书籍。它是免费的，可以在网上免费下载，等一下我会把这本书发到群里。</p>

<p>我在网上找了很久，没有找到特别满意的书。总是在这些地方或是那些地方，有一些让我不太满意的。我也想过自己卷起袖子，来写一本针对大家的教材。但是我知道，这从时间上几乎是不可能的，我如果能够按时把PPT给做好，我觉得这也是很大的奇迹了。</p>

<p>R Basic这本书在各个方面，比较接近于我的理想值。请大家注意这里只是接近，当然它也有一些不完美的地方，大家可以先尽量的按照书上的例子去做，然后有不懂的可以使用谷歌进行搜索。</p>

<p><img src="http://liuhui998.com//images/anker-data-team-one-3/rbasic.jpg" alt="book1" /></p>

<p><a href="http://liuhui998.com//images/anker-data-team-one-3/R_basic.pdf">下载 R_Basic.pdf</a>
http://liuhui998.com//images/anker-data-team-one-3/R_basic.pdf</p>

<p>下面又是学习方法的重点, 请大家注意。</p>

<p>作为成年人，大家最重要的是有一个学习和解决问题的能力，而且是自驱的。我们上6次课，横跨了统计学，编程，然后线性回归和时间序列分析。如果没有大家的全情投入，自己学习，解决问题的能力，这是一个不可能完成的任务。</p>

<p>我本人每天在工作中也会碰到非常非常多的我不知道答案的专业问题，那么我这时候我就会用谷歌和stack over flow来进行专业知识的搜索及查找。再强调一次这是本文的重点。</p>

<p><img src="http://liuhui998.com//images/anker-data-team-one-3/stackoverflow1.jpg" alt="book1" /></p>

<p><img src="http://liuhui998.com//images/anker-data-team-one-3/stackoverflow2.jpg" alt="book1" />
好的，嗯，我觉得这三篇文章加起来基本上，把学习的方法都讲了一遍了。嗯，如果有心学习的同学，就请把这三篇文章都收藏起来，遇到困难的时候反复的看。这些看起来很简单的事情，也是我想了很多年才想明白想通的。</p>

<p>下一次我想谈谈我为什么用R来做我的教学语言。</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Peter数据一班晨谈-2]]></title>
    <link href="liuhui998.com/2019/08/22/anker-data-team-one-2/"/>
    <updated>2019-08-22T08:35:00+08:00</updated>
    <id>liuhui998.com/2019/08/22/anker-data-team-one-2</id>
    <content type="html"><![CDATA[<blockquote><p>把几月前写有东西整理一下再发出来，零基础的同学可以好好读一下</p></blockquote>

<p>今天下雨我又坐班车，然后我想接着上一次的话题，我们继续来聊一聊。
当一项新的技能或者职业出现的时候，它都会很复杂。因为它是新的，他会有很多综合性的知识要学习，让你觉得很难。</p>

<p>在中国大陆30多年前，要是想学开车的话，得去上一个专门的培训学校学上半年，你不但要学怎样开车，还要学习怎样修车。20多年前，如果要学英语用来工作的话，大家觉得这可能就是英语专业的人的事情。</p>

<p>但是能当技术不断的发展，这项技术应用的面也越来越广。厂家或者专家他们也会去改进技术的实现或者学习方法，它的学习难度和它诞生的时候相比，会降低几个数量级。如果这个时候，你还停留在对这项技术刚开始诞生的时候的学习难度的印象的话，那么你就落伍了。</p>

<p>对于编程其实也是一样的。它刚诞生的时候，确实非常复杂。你要能够写出正确的程序，确实得懂非常多的东西。就像最开始开汽车的那一拨人，你要能开好车，你必须得学会修一点车。但是现在不一样了，由于厂家和专家们的努力，编程编得比以往的任何时候都简单一些。</p>

<p>你以前必须学会换挡，但是现在你一上来就可以开自动挡的车。以前你开车的时候，你必须心里知道每一档对应的汽车内部工作原理的对应关系，但是你现在几乎不需要了。</p>

<p>编程的发展也近乎于此。</p>

<p>为什么好的编程人员稀缺？因为编程的人，他需要又懂技术原理又懂业务，其实这种复合的人在世界的任何地方都比较难找。如果我们在技术进步的前提下，让大家需要花比较少的精力去关注技术的底层原理，类似于你不再需要关心发动机怎么转，而是更多的去让你有精力去关注你要开车到哪里去，就是你业务要做什么。</p>

<p>今天我们要做的就是这件事情，让一群懂业务的人能够学会编程。就像一群热爱旅游的人，他不再需要司机，他可以自己开着自己的自动挡的汽车到处去转转，也许可以环游中国（环游世界也许要会点修车）。</p>

<p>好的，前面啰嗦了很多，那么会有人问我，&#8221;我完全是0基础的，我要怎么学习编程？&#8221;</p>

<p>但是我今天要告诉大家，今天在座的各位，都不是0基础的。因为你们都已经迈出了勇敢的第1步，都自学了程序员最经典的第1句 Hello，World。
备注：参加这个班的的同学我让TA们在入学前自学安装了 RStudio, 再写一个R语言的 Hello,World!</p>

<p>我真的非常你们感到自豪的啊，因为我知道你们大部分人都来自于非科班背景，都很多都是文科生，能够做出这样的一个转变，真的是非常难得。我们有25个人报了名，然后我希望在5月底6月初的时候，我们能够看到这25个人全部都毕业。</p>

<p>我上课的方式是，我希望做的是加法或者乘法，而不是做平均，就是让每个人在自己的原有的基础上都得到提高。因为每个人的基础，天赋，时间，学习的意愿都相差很大。最基础的就是上课能够听好，上课把作业做完，没有任何的课后阅读和练习。这种人其实也能够毕业。但是他很难把自己学到的东西用到工作上。</p>

<p>我其实更希望的学习方法是，我会给大家指定一些阅读的书，然后大家，在上课前提前去看，提前去练习。我上一周给大家推荐了两本统计学的书，我其实是怀着一个忐忑的心情进行推荐的。但是我没有想到，嗯，大家反应这么热烈，然后我了解到还有之前本科是文科的，研究生成功的转学了统计学，这让我信心大增。我明天还会给大家推荐两本关于编程的电子书，都是很简单的。大家可以下载下来看，进行练习。</p>

<p>学习编程最好的办法就是找到一些好的学习资料，然后不停的重复抄资料上的示例程序。类似于学习开车一样，最好的学习方法就是在一条适合练习的道路上不停的开，不停的练，你自然就熟悉了。因为编程其实小学生都可以学会，我觉得大家更有信心能够学好。</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Peter 数据一班晨谈-1]]></title>
    <link href="liuhui998.com/2019/08/21/anker-data-team-one-1/"/>
    <updated>2019-08-21T08:26:00+08:00</updated>
    <id>liuhui998.com/2019/08/21/anker-data-team-one-1</id>
    <content type="html"><![CDATA[<blockquote><p>在 Anker 工作，我们每周有业务的同学来找我分析数据；我发现自己一个人处理不过来，于是想到开一个数据分析师训练营。
在开班的初期，我利用早上坐班车的时间给参加训练营的同学写了几封信，来鼓励TA们来学习。
现在第一期结束了，有不少同学找问下一期什么时候开，我真的不知道；我想不如先把这些信放出来，让有兴趣的同学先飞吧。</p></blockquote>

<p>我遇到的很多优秀数据科学家原本是业务人员，程序员，统计学家，业务分析师，或者是科技工作者，他们在原有的知识储备的基础上多学一些技术，就成为了优秀的数据科学家。</p>

<p>很高兴我们能够在一起去学习一些基本的数据分析的知识。</p>

<p>我们现在有二十几个人报了名，然后我通过看大家的入班考核作业和线下沟通，发现里面有一小部分的人是科班出身，有统计学的背景，写过程序；但是大部分的同学，他们是一张白纸。</p>

<p>我知道现在有很多同学有各种各样的恐惧，比如说那些数学知识我已经全部还给老师了，我现在只有小学或者初中的数学水平；然后我觉得编程太难了，我想讲的这些其实都不是问题。</p>

<p>我在高考的时候，我的数学打了50分。我相信今天报名参加这门课程的人，高考数学分数应该没有比我还低的。为什么大家学不好数学，其实很重要一个原因是我们的教材有问题。他教你的时候只讲了结论，但是没有把问题的背景讲清楚。所以你就越学越不想学，形成一个恶性循环。</p>

<p>但是国外一些优秀的数学教材，看过就会有一种如沐春风的感觉。今天我们这个班学的数学也只是统计学相关的，因为我们数据分析主要应用的还是统计学的知识。
我大学其实是没有学过统计学的。来到Anker公司之后, 有一些朋友向我推荐了一些国外的教材，让我开始入门。</p>

<p>我想向大家推荐这两本，我觉得这两本书应该回答了我们日常工作中大部分基础的统计学知识。而且这里面对你的数学基础的要求几乎是0要求，只要你把这两本书买了每天找一些你感兴趣的部分来看，把课后的习题做了，应该就差不多了。我的建议是大家尽量看自己能看懂的部分，因为有有很少的部分我也不是很懂。不过这没关系，因为你工作中要用到的地方没有那么多，毕竟我们现在不是在做学术研究，我们现在是在工作解决问题。</p>

<p><a href="https://item.jd.com/11605571.html">你一定爱读的极简统计学</a> https://item.jd.com/11605571.html</p>

<p><img src="http://liuhui998.com//images/anker-data-team-one-1/book_11605571.jpg" alt="book1" /></p>

<p><a href="https://item.jd.com/12162100.html">写给所有人的极简统计学</a> https://item.jd.com/12162100.html</p>

<p><img src="http://liuhui998.com//images/anker-data-team-one-1/book_12162100.jpg" alt="book2" /></p>

<p>好的，我们现在来讲编程这个问题。我之前和公司的另外一位同事在聊天，我说在20多年前，会有大量的司机这么一个专门的职业，但是现在很少了，除了开卡车的。然后在十几年前，做外贸的大部分都是英语科班出身，但是我现在也很少了，我了解到各种科班出身的人，都可以来做外贸了。这是为什么呢？</p>

<p>好的，班车快到站了，我先写到这里。下一次我们再聊。</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Peter软件晨思-3]]></title>
    <link href="liuhui998.com/2019/08/19/peter-tech-think-in-morning-3/"/>
    <updated>2019-08-19T22:23:00+08:00</updated>
    <id>liuhui998.com/2019/08/19/peter-tech-think-in-morning-3</id>
    <content type="html"><![CDATA[<h2>工匠学习之路</h2>

<p>Hi Benson</p>

<p>今天是写给你的第三封信。只要我早上坐班车，有时间我就会想办法写点东西。</p>

<p>我发现你最近进步还是挺快的; 对业务和代码的观察，对待工作也比较仔细。</p>

<p>我今天想讲的主题是，怎么去阅读别人的代码</p>

<p>作为一名画家，提高自己能力，最好的办法就是临摹。作为一名程序员，把提高自己能力最好的办法也是去读别人的代码。</p>

<p>作为一个Java程序员，也许可以读JDK的源代码, 如果Ruby程序员可以读Ruby标准库的代码；我以前读过 <a href="https://github.com/chyojn/git-0.01">Git 0.01源代码</a>。</p>

<p>你可以根据自己感兴趣的方向选一些代码来读。那么有什么要注意的呢。</p>

<ul>
<li><p>第一，代码要是可以运行的。
因为代码不能运行，你很多想法就没有办法去验证。你发现有一段代码不懂，在关键的点设上断点调试或是加一行打印语句，去跟踪它，你就豁然开朗。</p></li>
<li><p>第二, 是代码尽量不要太大，或者太复杂。
如果太大太复杂的代码，就很可能坚持不下来就半途而废了；或者也不是一个好的阅读范本。以我个人的经验是，一两万行以内，不能超过这个数目。比如现在Linux的内核，源代码比较大，很多人就去读linux早期版本的源代码。</p></li>
<li><p>第三, 可以考虑把代码打印出来。
这样把它当做一本书来读，然后在脑袋里去构想，他是怎么样设计怎么样？把它放在枕头边，或者放在洗手间里，有空就翻一下。</p></li>
</ul>


<p><img src="http://liuhui998.com/images/peter-tech-think-in-morning-3/code.jpg" alt="code" /></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Peter软件开发晨思-2]]></title>
    <link href="liuhui998.com/2019/08/16/peter-tech-think-in-morning-2/"/>
    <updated>2019-08-16T22:47:00+08:00</updated>
    <id>liuhui998.com/2019/08/16/peter-tech-think-in-morning-2</id>
    <content type="html"><![CDATA[<h2>关于恐惧</h2>

<p>我们每天都在面对这样的恐惧。</p>

<p>比如说不想上医院，不想工作;或者说不想做复杂的工作。这背后的原因是恐惧，害怕失败，害怕不被肯定，或者说是害怕不确定性。</p>

<p>在软件行业里面，对复杂性的恐惧是与生俱来的。因为软件就是现实社会的一个镜像。复杂的软件代码里面，会有很多没有测试过的功能，会有很多没有文档的功能。也会有很多大家都不理解的功能。你不小心，就会碰到那个炸弹跳线，引起连锁反应。</p>

<p>像我在工作的早期，经历过一些类似系统，再加上当时的编程能力很一般，就会对这种系统，有一种本能的自我保护反应。</p>

<p>在面对恐惧这一块，我没有什么好的经验。从我失败的教训里面，得到反思就是，对于恐惧，最好的办法就是去祷告去行动。</p>

<p>对于一个新人来讲。他面对的也许不是那么复杂的系统，他可能只是开发一个简单的新功能。但是对于他们的恐惧来说，也是同样的大。</p>

<p>新人们一缺编程实战，二缺乏设计思路，第三缺少业务知识。就像把一个参军一周的新兵丢到了战场，这个新人是花很多时间在犹豫开不开枪这个问题上。我的理解就是，先投入战斗，在战斗中修复问题。</p>

<p>我在这里想引用罗斯福的一句话：</p>

<blockquote><p>“我们唯一值得恐惧的就是恐惧本身——这是一种难以名状、盲目冲动、毫无缘由的恐惧，可以使人们转退为进所需的努力全部丧失效力”。</p></blockquote>

<p><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/b/b8/FDR_in_1933.jpg/440px-FDR_in_1933.jpg" alt="罗斯福" /></p>

<p>是的，就是这个小儿麻痹症患者当选四届美国总统；和很多人一起努力打赢第二次世界大战。</p>

<p>备注：这篇文章我是在做新人Mentor时，利用早上通勤的时间，用语言输入写给Mentee的，希望把我的一些经验能对他有所启发；现在发出来，希望有更多的人可以看到。</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[从数据中提取季节性和趋势 [2-1]]]></title>
    <link href="liuhui998.com/2018/06/24/seasonal-trend-decomposition-in-r/"/>
    <updated>2018-06-24T14:05:00+08:00</updated>
    <id>liuhui998.com/2018/06/24/seasonal-trend-decomposition-in-r</id>
    <content type="html"><![CDATA[<p>因为最近在做销售预测的一些工作，同时也在Team内做一些小的分享；为了让自己把一些基础概念搞的更清楚，我试着翻译了一些有趣的文章。只是自己练练，哈哈！</p>

<p>读了这篇文章你能得到什么：</p>

<ol>
<li><p>你能知道你的手上数据的趋势到底是上升还是下降, 速度（斜率）怎么样</p></li>
<li><p>知道怎么开始学数据的季度性（季节系数）</p></li>
</ol>


<p>本文来自: <a href="https://anomaly.io/seasonal-trend-decomposition-in-r/">Extracting Seasonality and Trend from Data: Decomposition Using R</a></p>

<p><img src="liuhui998.com/images/seasonal-trend-decomposition-in-r/time-series-decomposition-seasonal-trend.png" alt="time series decomposition seasonal trend" /></p>

<p>时间序列分解时间序列分成三个子序列。</p>

<p>译注：看起来很难，实际需要的数学只有加减剩除，如果有人抬杠说这篇需要线性代数，你可以先不理他哈。</p>

<h2>理解时序分解</h2>

<h3>将一个时间序列分解为多个序列</h3>

<p>时间序列分解是将时间序列转换为多个不同时间序列的数学过程。原始时间序列通常分为三个组件系列：</p>

<ul>
<li>季节性：以固定时间段重复的模式。</li>
</ul>


<p>例如，一个网站在周末可能会收到更多的访问; 这会产生季节性(周期)为7天的数据；</p>

<p>也可能是某个电商平台的每天销售数据，那么这样数据的季节性(周期)是 365.25天。</p>

<ul>
<li><p>趋势：指标的基本趋势。一个日益流行的网站应该显示出一个普遍的趋势；某个电商品类也有有自己的趋势。</p></li>
<li><p>随机：也称为“噪音”，“不规则”或“余数(remainder)”，这是季节和趋势序列删除后原始时间序列的残差（residuals）；比如911事件对 对美国航空业的影响就是一个噪音，你很难预测他的产生。</p></li>
</ul>


<h3>使用加法或乘法分解？</h3>

<p>为了实现成功的分解，在加法和乘法模型之间进行选择非常重要，这需要分析系列。例如，当时间序列增加时，季节性的大小是否会增加？</p>

<p>澳大利亚啤酒生产 - 季节性变化(方差)看起来不变; 当时间序列值增加时它不会改变。我们应该使用加法模型。
<img src="liuhui998.com/images/seasonal-trend-decomposition-in-r/additive-model.png" alt="aus beer produce, additive-model " /></p>

<p>航空公司乘客数量 - 随着时间序列数量的增加，季节性变化(方差)也随之增加。这里我们应该使用乘法模型。
<img src="liuhui998.com/images/seasonal-trend-decomposition-in-r/multiplicative-model.png" alt="Airline Passenger Numbers, Multiplicative-model " /></p>

<p><strong> 加法模型：时间序列=季节性+趋势+随机 </strong></p>

<p><strong><em> 译注：如果时间序列的波峰波谷的差距一直差不多，就用加法模型。</em></strong></p>

<p><strong> 乘法模型：时间序列=趋势*季节性*随机 </strong></p>

<p><strong><em> 译注：如果时间序列的波峰波谷的差距随着时间推移而一直加大，就用乘法模型。</em></strong></p>

<h2>循序渐进：时间序列分解</h2>

<p>我们将研究R中的decompose()函数。作为分解函数，它将时间序列作为参数，并将其分解为季节性，趋势和随机时间序列。我们将逐步重现R中的decompose()函数以了解它的工作原理。由于两种模式之间存在差异，我们将使用两个示例：澳大利亚啤酒生产（加法）和航空公司乘客数量（乘法）。</p>

<p><strong> 译注：如果不懂编程可跳过上面这段话；后面会有一些程序代码，没关系，你只看你能看的懂的文字和图表就可以了。</strong></p>

<p><strong> 这一系列文章使用的编程语言是 <a href="https://blog.gtwang.org/programming/r/">R</a>, 这是一门在机器学习非常简练的语言！</strong></p>

<h3>第1步：导入数据</h3>

<h4>加法模型</h4>

<p>如前所述，加法模型时间序列的一个很好的例子是啤酒生产; 随着时间增加，季节性保持相对恒定。</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>install.packages("fpp")
</span><span class='line'>library(fpp)
</span><span class='line'>data(ausbeer)
</span><span class='line'>timeserie_beer = tail(head(ausbeer, 17*4+2),17*4-4)
</span><span class='line'>plot(as.ts(timeserie_beer))</span></code></pre></td></tr></table></div></figure>


<p><img src="liuhui998.com/images/seasonal-trend-decomposition-in-r/additive-model.png" alt="aus beer produce, additive-model " /></p>

<h4>乘法模型</h4>

<p>每月的航空公司乘客数字是乘法时间序列的一个很好的例子； 乘客数据越多，观察到的季节性就越大。</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>install.packages("Ecdat")
</span><span class='line'>library(Ecdat)
</span><span class='line'>data(AirPassengers)
</span><span class='line'>timeserie_air = AirPassengers
</span><span class='line'>plot(as.ts(timeserie_air))</span></code></pre></td></tr></table></div></figure>


<p><img src="liuhui998.com/images/seasonal-trend-decomposition-in-r/multiplicative-model.png" alt="Airline Passenger Numbers, Multiplicative-model " /></p>

<h3>第2步：检测趋势</h3>

<p>为了检测潜在的趋势，我们使用<a href="http://www.itl.nist.gov/div898/handbook/pmc/section4/pmc422.htm">中心移动平均线</a> 来平滑时间序列。要执行分解，使用具有季节性的确切大小的移动窗口非常重要。</p>

<p><strong> 译注：这听起来有点难懂，你可以把这个移动窗口想像成一个移动漏斗机器人，它会自己动把漏斗中心两边的数据取平均，然后再放下来！</strong></p>

<p>因此，要分解一个时间序列，我们需要知道季节性周期：每周，每月等&#8230;如果您不知道这个数字，可以  使用<a href="https://anomaly.io/detect-seasonality-using-fourier-transform-r/">傅里叶变换检测季节性</a>。</p>

<h4>加法模型</h4>

<p>澳大利亚啤酒生产明显遵循年度季节性。由于每季度记录一次，每年记录4个数据点，我们使用期数为4的移动平均窗口。</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>install.packages("forecast")
</span><span class='line'>library(forecast)
</span><span class='line'>trend_beer = ma(timeserie_beer, order = 4, centre = T) #计算移动平均数，期数为4
</span><span class='line'>plot(as.ts(timeserie_beer))
</span><span class='line'>lines(trend_beer)
</span><span class='line'>plot(as.ts(trend_beer))</span></code></pre></td></tr></table></div></figure>


<p>澳洲啤酒实际产量与趋势（移动平均数）的叠加
<img src="liuhui998.com/images/seasonal-trend-decomposition-in-r/additive-moving-average.png" alt="aus beer produce, additive-model  : time series + trend" /></p>

<p>澳洲啤酒产量趋势（移动平均数）
<img src="liuhui998.com/images/seasonal-trend-decomposition-in-r/additive-trend.png" alt="aus beer produce, additive-model trend" /></p>

<h4>乘法模型</h4>

<p>这里的过程与添加剂模型相同。航空公司的乘客数季节性看起来也是年度的。但是，它是按月记录的，所以我们选择期数为12的移动平均窗口。</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>install.packages("forecast")
</span><span class='line'>library(forecast)
</span><span class='line'>trend_air = ma(timeserie_air, order = 12, centre = T) #计算移动平均数，期数为12
</span><span class='line'>plot(as.ts(timeserie_air))
</span><span class='line'>lines(trend_air)
</span><span class='line'>plot(as.ts(trend_air))</span></code></pre></td></tr></table></div></figure>


<p>澳洲实际空乘数与趋势（移动平均数）的叠加
<img src="https://anomaly.io/wp-content/uploads/2015/12/multiplicative-moving-average.png" alt="Airline Passenger Numbers, Multiplicative-model:  timeseries + trend" /></p>

<p>澳洲空乘数趋势
<img src="https://anomaly.io/wp-content/uploads/2015/12/multiplicative-trend.png" alt="Airline Passenger Numbers, Multiplicative-model:  trend" /></p>

<h3>第3步：去掉趋势信息，得到季节性</h3>

<p>从时间序列中去掉先前计算的趋势，让新的时间序列清楚地显示季节性。</p>

<h4>加法模型</h4>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>detrend_beer = timeserie_beer - trend_beer #实际数据减去趋势
</span><span class='line'>plot(as.ts(detrend_beer)) #画出季度性图</span></code></pre></td></tr></table></div></figure>


<p><img src="https://anomaly.io/wp-content/uploads/2015/12/additive-detrend.png" alt="additive-detrend" /></p>

<h4>乘法模型</h4>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>detrend_air = timeserie_air / trend_air #实际数据除以趋势
</span><span class='line'>plot(as.ts(detrend_air)) #画出季度性图</span></code></pre></td></tr></table></div></figure>


<p><img src="https://anomaly.io/wp-content/uploads/2015/12/multiplicative-detrend.png" alt="multiplicative-detrend" /></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[2017 AWS 技术分享]]></title>
    <link href="liuhui998.com/2018/02/02/aws-tech-share-2017/"/>
    <updated>2018-02-02T06:30:00+08:00</updated>
    <id>liuhui998.com/2018/02/02/aws-tech-share-2017</id>
    <content type="html"><![CDATA[<p>2017年10月28号的时候，应 AWS 的邀请，我以个人名义做了《云计算上的大数据应用》的分享</p>

<p>主要介绍了一个自己在 AWS Redshift, AWS EMR, AirFlow使用上的一些心得</p>

<p>这是: <a href="http://aws-big-data.liuhui998.com/">PPT 的 link</a></p>

<p>下图是AWS做的海报</p>

<p><img src="liuhui998.com/images/aws-tech-share-2017/aws_post.jpeg" alt="AWS做的海报" /></p>

<p>做这个分享看起很风光，但是压力还是很大的；平时工作很忙，基本上没有时写PPT。</p>

<p>分享那天早上 4点多又开始写，PPT一直到开始演讲前 1 个小时才写完。</p>
]]></content>
  </entry>
  
</feed>
