<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Henry Z&#39;s blog</title>
    <link>https://changchen.me/</link>
    <description>Recent content on Henry Z&#39;s blog</description>
    <generator>Hugo</generator>
    <language>zh-hans</language>
    <managingEditor>daya0576@gmail.com (Henry Zhu)</managingEditor>
    <webMaster>daya0576@gmail.com (Henry Zhu)</webMaster>
    <lastBuildDate>Fri, 10 Apr 2026 07:35:49 +0800</lastBuildDate>
    <atom:link href="https://changchen.me/atom.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Flask, OpenClaw &amp; Pi - 时光交错的宿命</title>
      <link>https://changchen.me/blog/20260410/read-ive-sold-out/</link>
      <pubDate>Fri, 10 Apr 2026 07:35:49 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20260410/read-ive-sold-out/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/17757783359245.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://mariozechner.at/posts/2026-04-08-ive-sold-out/&#34;&gt;https://mariozechner.at/posts/2026-04-08-ive-sold-out/&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;Pi 作者选择加入 &lt;a href=&#34;https://earendil.com/&#34;&gt;Earendil&lt;/a&gt; 后分享的文章，其中包含 &lt;strong&gt;开源项目商业化&lt;/strong&gt; 的经历和思考，令人感触颇深，忍不住分享给大家。&lt;/p&gt;&#xA;&lt;h2 id=&#34;名词解释&#34;&gt;名词解释&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Pi：一个模块化的 AI agent 工具包，近期爆火的龙虾 Openclaw 就是基于 Pi 构建。详情参考另一篇文章 &lt;a href=&#34;https://changchen.me/blog/20260224/openclaw_pai_the_minimal_agent/&#34;&gt;读 Pi: The Minimal Agent Within OpenClaw&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Maria：Pi 项目的作者&lt;/li&gt;&#xA;&lt;li&gt;Earendil：Armin 创建的一家公共利益公司（Public Benefit Corporation），除了追求利益，还要履行社会的公共利益承诺。&lt;/li&gt;&#xA;&lt;li&gt;Armin：Flask/Jinja 的作者，之前在 Sentry 工作。与 Maria 是多年的好友，也是 Pi 的大力推崇者。&lt;/li&gt;&#xA;&lt;li&gt;Colin：Earendil 公司中的另一位成员&lt;/li&gt;&#xA;&lt;li&gt;Peter：openclaw 项目的作者&lt;/li&gt;&#xA;&lt;li&gt;OSS：开源软件 (Open Source Software)&lt;/li&gt;&#xA;&lt;li&gt;Sentry：sentry.io 是一款有名的错误日志（error stack）实时监控平台，Armin 在这家公司工作了 10 年，于 2025 年 4 月左右离职。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;历史教训&#34;&gt;历史教训&lt;/h2&gt;&#xA;&lt;p&gt;原文作者第一个成功的项目：&lt;a href=&#34;https://libgdx.com/&#34;&gt;libGDX&lt;/a&gt;。这是一个基于 Java 的跨平台游戏框架，例如被我们熟知的「杀戮尖塔」就是基于该项目开发。&lt;/p&gt;&#xA;&lt;p&gt;由于项目的成功，作者加入了 RoboVM 公司 &amp;mdash;&amp;mdash; libGDX 的 iOS 跨平台解决方案（将 Java 字节码翻译为 iOS 设备的原生机器码）。RoboVM 的核心技术是开源的，但附加的调试器等是收费的，也是 Maria 的主要工作之一。&lt;/p&gt;</description>
    </item>
    <item>
      <title>读 Cloudflare Outage February 20 2026</title>
      <link>https://changchen.me/blog/20260406/cloudflare-outage-february-20-2026/</link>
      <pubDate>Mon, 06 Apr 2026 18:54:55 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20260406/cloudflare-outage-february-20-2026/</guid>
      <description>&lt;p&gt;假如将故障比做生活中的挫折，它们几乎都是不可避免，但并非完全负面 &amp;mdash;&amp;mdash; 珍贵的学习与进步机会。这个系列会持续分享各种故障复盘（Postmortem），与大家一起学习进步。&lt;/p&gt;&#xA;&lt;h2 id=&#34;名词解释&#34;&gt;名词解释&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;BYOIP（Bring Your Own IP，自带 IP）：允许企业将自己拥有的公网 IPv4 或 IPv6 地址段迁移到云服务商的基础设施中使用的服务（BGP 本地宣告 -&amp;gt; 云厂商宣告）。&lt;/li&gt;&#xA;&lt;li&gt;BGP（Border Gateway Protocal）：互联网的邮政服务。当有人把一封信投进邮筒时，邮政服务就会处理这封邮件，并选择一条快速、高效的路线将这封信投递给收件人。&lt;/li&gt;&#xA;&lt;li&gt;BGP Path Hunting：&#xA;&lt;ul&gt;&#xA;&lt;li&gt;假设你在 AS1（比如中国电信），想访问位于 AS5（比如 Cloudflare）的服务器，可能存在以下几条路径，每个路由器根据路径选择算法选出最优路径。&#xA;&lt;ul&gt;&#xA;&lt;li&gt;路径 A：&lt;code&gt;AS1 -&amp;gt; AS2 -&amp;gt; AS5&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;路径 B：&lt;code&gt;AS1 -&amp;gt; AS3 -&amp;gt; AS4 -&amp;gt; AS5&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;路径 C：&lt;code&gt;AS1 -&amp;gt; AS2 -&amp;gt; AS3 -&amp;gt; AS5&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;最优路径中，假如 &lt;code&gt;AS2 -&amp;gt; AS5&lt;/code&gt; 链路断了，&lt;code&gt;AS2&lt;/code&gt; 会向 &lt;code&gt;AS1&lt;/code&gt; 发出撤销消息，告诉它此路不通&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;AS1&lt;/code&gt; 收到撤销消息后，告诉 &lt;code&gt;AS2&lt;/code&gt; 可以通过 &lt;code&gt;AS3 → AS5&lt;/code&gt; 到达。&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;AS2&lt;/code&gt; 收到 &lt;code&gt;AS1&lt;/code&gt; 的通告，发现自己可以绕道走 &lt;code&gt;AS2 → AS1 → AS3 → AS5&lt;/code&gt;，于是又向外通告这条路径（&lt;strong&gt;所有邻居&lt;/strong&gt;）。&lt;/li&gt;&#xA;&lt;li&gt;但 &lt;code&gt;AS1&lt;/code&gt; 一看，&lt;code&gt;AS2&lt;/code&gt; 通告的这条路径包含 &lt;code&gt;AS1&lt;/code&gt; 自己（AS Path 里有 &lt;code&gt;AS1&lt;/code&gt;），按 BGP 规则会拒绝（防环），所以 &lt;code&gt;AS1&lt;/code&gt; 再次撤销，改选路径C（经 &lt;code&gt;AS4&lt;/code&gt;）&amp;hellip;&lt;/li&gt;&#xA;&lt;li&gt;结果整个网络里产生了大量的 UPDATE/WITHDRAW 消息，每个路由器都在反复更新路由表，直到最终所有人都稳定在同一条可用路径上，这种反复切换、探索和收敛的过程就是 &lt;strong&gt;Path Hunting&lt;/strong&gt;。可能持续数十秒甚至几分钟。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;故障过程&#34;&gt;故障过程&lt;/h2&gt;&#xA;&lt;p&gt;故障一共持续 &lt;strong&gt;6 小时 7 分钟&lt;/strong&gt;，下面是完整的时间线：&lt;/p&gt;</description>
    </item>
    <item>
      <title>《How to Talk So Little Kids Will Listen》- #5 因人而异</title>
      <link>https://changchen.me/blog/20260328/how-to-talk-so-little-kids-will-listen-chapter5/</link>
      <pubDate>Sat, 28 Mar 2026 14:03:59 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20260328/how-to-talk-so-little-kids-will-listen-chapter5/</guid>
      <description>&lt;p&gt;一个猴一个拴法 &amp;mdash;&amp;mdash; 有的孩子特别敏感固执，而有的孩子患有自闭症与外界缺乏互动。针对特别的孩子，家长可能觉得书中通用的技巧都是纸上谈兵，根本不可能对自己的孩子生效。&lt;/p&gt;&#xA;&lt;p&gt;这章将继续讨论针对这些挑战的处理技巧。无论孩子属于哪种类型，作为家长的你，都希望有所收获。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;原著书中作者的三个孩子中，前两个被诊断为感觉统合失调和自闭症。但作者表示，所有孩子都渴望社交、被理解并拥有自主权。而针对特殊的孩子，唯一不同的是，家长在努力面对挑战的过程中，不要被沮丧打败，更不要去责怪孩子。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;感觉统合失调：大脑对感官信息的组织加工出现障碍，例如书中作者提到自己的孩子不喜欢脚踩地面，而有的孩子很难察觉到疼痛。&lt;/li&gt;&#xA;&lt;li&gt;自闭症：孩子活在自己的世界中，不会主动响应外界的呼喊。一般表现为大运动发育全面迟缓。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;tool-1-join-them-in-their-world&#34;&gt;TOOL #1: Join Them in Their World&lt;/h2&gt;&#xA;&lt;p&gt;第一个工具：试试走入到孩子的世界中。&lt;/p&gt;&#xA;&lt;p&gt;例如：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;安吉拉躺在一个安静房间的地板上，观察着自己的手指在墙壁上的影子。相比于喊他过来，不如试试在他身边躺下，将你的手指也倒映在墙上。&lt;/li&gt;&#xA;&lt;li&gt;如果皮特特别喜欢和你分享火车时间表（对于自闭症的孩子，确定性和秩序感是令他们感到安稳的“解药”），不如就和他一起讨论火车时间表。&lt;/li&gt;&#xA;&lt;li&gt;&amp;hellip;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;如果孩子喜欢独处，家长可能在不断尝试和被拒绝的过程中饱受挫折，但请不要放弃尝试这个技巧。&lt;/p&gt;&#xA;&lt;p&gt;一个真实例子：自闭症的艾登喜欢躲在自己房间的帐篷中，一个人玩 iPad 游戏，从不回应任何人。这一次，大人轻手轻脚的坐到孩子身边，细声细语地说“我可以看着你玩吗”？。看了一会后，继续问：“你玩的是什么游戏？”。出乎意料的是，艾登第一次回复说他在玩泡泡游戏。大人将头伸到帐篷中，问：“我可以和你一起玩吗？”。孩子条件反射地摇了摇头，但过了一会，答应会教大人怎么做。最后两个人一来一回愉快的一起玩起了泡泡游戏。&lt;/p&gt;&#xA;&lt;p&gt;💡 这个故事告诉我们，如果你感到自己与孩子之间存在距离感，很可能是因为你一直按你的方式“带着”孩子走 &amp;mdash;&amp;mdash; 总是分享大人自己感兴趣的话题价值观，强迫孩子做大人想让他做的事。试着把主动权还给孩子。&lt;/p&gt;&#xA;&lt;h2 id=&#34;tool-2-take-time-to-imagine-what-your-child-is-experiencing&#34;&gt;TOOL #2: Take Time to Imagine What Your Child Is Experiencing&lt;/h2&gt;&#xA;&lt;p&gt;技巧二：设身处地想象孩子的感受，并理解他们。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;But we would both have similar feelings that things were not right, and we’d both be similarly upset if we were unable to make things right again.&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;想象你预定了一个会议室，但进入时发现，椅子并没有按你的预期整齐排放，管理员轻描淡写地说这有什么大不了，你难道不会感觉生气并抑制不住上手修复问题的冲动吗？有时候孩子奇怪的固执或秩序感，不也与大人的“强迫症”如出一辙。&lt;/p&gt;&#xA;&lt;p&gt;一个真实例子：杰克的抽屉里有一堆的袜子，但他只喜欢其中的三双。如果那三双袜子都脏了还没来得及洗，每次起床都像打仗。。甚至有时候大人会对杰克吼叫，因为觉得这是他不想去学校无理取闹的借口。然而，当大人设身处地站在孩子的视角，会开始思考，这三双特殊的袜子和其他袜子到底有什么区别？？？接着家长直接买了一大包孩子喜欢的那款一模一样的袜子。你猜怎么着？早上起床，再也没有因为袜子爆发过任何争执或阻力。只是因为孩子敏感的脚能觉察出不同袜子的触感。&lt;/p&gt;&#xA;&lt;h2 id=&#34;tool-3-put-into-words-what-kids-want-to-say&#34;&gt;TOOL #3: Put into Words What Kids Want to Say&lt;/h2&gt;&#xA;&lt;p&gt;技巧三：帮助孩子表达他们的需求。&lt;/p&gt;</description>
    </item>
    <item>
      <title>《How to Talk So Little Kids Will Listen》- #4 如何鼓励孩子</title>
      <link>https://changchen.me/blog/20260326/how-to-talk-so-little-kids-will-listen-chapter4/</link>
      <pubDate>Thu, 26 Mar 2026 14:01:33 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20260326/how-to-talk-so-little-kids-will-listen-chapter4/</guid>
      <description>&lt;p&gt;《Children: The Challenge》书中提到：鼓励是抚养儿童过程中最重要的部分。然而过去工作中与美国同事接触的过程中，发现他们有时候似乎有点过于自信了（非贬义）。让我们一起看看这一章是如何利用“欣赏与赞美”工具，来帮助与孩子沟通。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Sorry to say, praise can be complicated.&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;称赞与鼓励本身并不是一件简单的事情 - 心不在焉或虚伪的赞美，并不能让人受到鼓励，甚至反而可能达到反作用。&lt;/p&gt;&#xA;&lt;h2 id=&#34;tool-1-describe-what-you-see&#34;&gt;TOOL #1: Describe What You See&lt;/h2&gt;&#xA;&lt;p&gt;第一个技巧：如实描述你看到的事实（五官中的任意一种），而不是主观评价。&lt;/p&gt;&#xA;&lt;p&gt;例如：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;❌：干得好！&lt;/li&gt;&#xA;&lt;li&gt;✅：我看到你把地上的书都捡起来了，甚至把脏袜子也捡起来了！地板现在空空的。这可真是个大工程！&lt;/li&gt;&#xA;&lt;li&gt;❌：你的这幅画真漂亮！&lt;/li&gt;&#xA;&lt;li&gt;✅：画里的顶部弯曲的线条，和底部蓝色的线条，让我感受到了风和大海～&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;⚠️ 注意：相比于单方面夸奖，不如试试提出问题，并开启对话。例如 wow，你做的是什么呢？你是怎么想到做这个呢？&lt;/p&gt;&#xA;&lt;h2 id=&#34;tool-2-describe-the-effect-on-others&#34;&gt;TOOL #2: Describe the Effect on Others&lt;/h2&gt;&#xA;&lt;p&gt;第二个技巧：别只顾着夸孩子（小心用力过猛），试试如实描述他如何帮助了他人，越简单越细节越真实，越令他们倍受鼓舞。&lt;/p&gt;&#xA;&lt;p&gt;例如：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;❌：你真是世界上最体贴的女孩&lt;/li&gt;&#xA;&lt;li&gt;✅：你帮珍妮拉上了外套的拉链，她现在出去一定感到非常非常的暖和😊&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;tool-3-describe-effort&#34;&gt;TOOL #3 Describe Effort&lt;/h2&gt;&#xA;&lt;p&gt;第三个技巧：肯定孩子过程中的不懈努力，给予他们面对更大挑战的动力。&lt;/p&gt;&#xA;&lt;p&gt;例如一次考试后：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;❌：获得了很好的分数，真是个聪明的孩子，在数学方面很有天赋，是万中无一的天才。&lt;/li&gt;&#xA;&lt;li&gt;✅：获得了很好的分数，你们之前一定付出了特别多的努力。最后一题有点难，但我看到你不断试了好几个方法，最后竟然真的解出来了。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;背后的原因：假如孩子被夸奖很聪明，很有天赋，他们往往在新的挑战前退缩。背后的原因不难理解：既然此刻就是他们人生的最高亮时刻，为什么要去主动搞砸呢？&lt;/p&gt;&#xA;&lt;h2 id=&#34;tool-4-describe-progress&#34;&gt;TOOL #4: Describe Progress&lt;/h2&gt;&#xA;&lt;p&gt;第四个技巧：当孩子进展不顺甚至搞砸时，还是可以描述阶段性的胜利，利用具体真实的反馈，来鼓励孩子。&lt;/p&gt;&#xA;&lt;p&gt;同时需注意不要无条件无止尽地赞美，会让孩子迷失自我，意识不到自己的问题。家长需要及时指出孩子的问题，技巧：先夸奖&lt;strong&gt;三个&lt;/strong&gt;正面的地方，再指出一个需要改进的地方。&lt;/p&gt;&#xA;&lt;p&gt;例如：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;❌：别担心，你做的还可以啦（背后的含义：喔，你真的完全搞砸了）&lt;/li&gt;&#xA;&lt;li&gt;❌：你在逗我吗？你觉得已经整理好房间了？地上到处是积木，桌子上还有一堆垃圾！&lt;/li&gt;&#xA;&lt;li&gt;✅：我看到你把脏衣服放到脏衣篓里了，把湿毛巾挂起来了，从门口到床上出现了一条可以正常行走的通道。现在只要把地上的积木都扔到盒子里就好了。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Sometimes acknowledging feelings can be more helpful than praise.&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;⚠️ 注意客观承认自己的感受，比赞美更有用。&lt;/p&gt;</description>
    </item>
    <item>
      <title>派派成长日记 #12 - 垃圾佬</title>
      <link>https://changchen.me/blog/20260324/paipai_ten_months/</link>
      <pubDate>Tue, 24 Mar 2026 09:33:23 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20260324/paipai_ten_months/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/17748787809544.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;派派十个月啦&#34;&gt;派派十个月啦&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;意识到人们对于事物持有不同的观点，以及自己有左右他人感受的可能&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;最近一个月的里程碑：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;第一次叫爸爸&lt;/li&gt;&#xA;&lt;li&gt;第一次不扶东西站起&lt;/li&gt;&#xA;&lt;li&gt;第一次学会捉弄：分享玩具给大人时，故意快速缩回，然后坏笑&lt;/li&gt;&#xA;&lt;li&gt;第一次开始计事，这次打疫苗时，相比于以前的好奇，刚看见白大褂眼泪便在眼睛里打转&lt;/li&gt;&#xA;&lt;li&gt;第一次逛山姆超市，小月龄宝宝也可以直接坐在推车上，遛娃放电的好去处&lt;/li&gt;&#xA;&lt;li&gt;&amp;hellip;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;垃圾佬&#34;&gt;垃圾佬&lt;/h2&gt;&#xA;&lt;p&gt;相比于精心准备营养丰富的手指食物，宝宝在用餐后半段总是表现出时不时的不耐烦。本以为吃饱了，将他从餐椅中取出放到地板上，却又疯狂的快速爬过来，开心的用大拇指和指尖拾起地上食物残渣，放入嘴中。这倒也好，既锻炼了精细动作，也方便了大人打扫卫生。。&lt;/p&gt;&#xA;&lt;h2 id=&#34;红十字培训&#34;&gt;红十字培训&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;建议所有的家长和护理人员参加基本急救课程（一般可从美国心脏协会接受教育）或婴儿/儿童心肺复苏课程（由美国红十字会等机构提供），我们深表赞同，因为你所学习的技术可能会挽救一个生命！&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;在为宝宝引入辅食时，收《美国儿科学会实用喂养指南》书启发，便计划参加急救培训。&lt;/p&gt;&#xA;&lt;p&gt;最近终于抽空完成了红十字初级救护员认证，简单分享体验：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;💰培训费用：上海免费（守“沪”生命 -&amp;gt; 实事项目）&lt;/li&gt;&#xA;&lt;li&gt;培训内容：1️⃣ 心肺复苏（CPR） 2️⃣ 除颤仪的使用（AED） 3️⃣ 气道异物梗阻（成人&amp;amp;婴幼儿） 4️⃣ 创伤包扎&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;线下四课时的培训很干，基本上全程都在依次实操练习。比预想的难很多，想象标准的心肺复苏会把肋骨也按断。培训的老师也很负责严格，毕竟 AED 如果使用不当地上可能就躺着两个人了。&lt;/p&gt;&#xA;&lt;p&gt;推荐大家有空可以去学习。当然希望永远也用不上。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Reading DDIA as an SRE</title>
      <link>https://changchen.me/blog/20260322/sre_ddia_notes_en/</link>
      <pubDate>Sun, 22 Mar 2026 12:55:56 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20260322/sre_ddia_notes_en/</guid>
      <description>&lt;h2 id=&#34;henrys-ddia-notes&#34;&gt;Henry&amp;rsquo;s DDIA Notes&lt;/h2&gt;&#xA;&lt;p&gt;Over the past few weeks, to prepare for the system design interview, I read a book called DDIA (Designing Data-Intensive Applications). Not sure how much it will help my interview performance, but I truly enjoy it and have a brand new understanding of two past incidents.&lt;/p&gt;&#xA;&lt;p&gt;This note shares my takeaways and initial thoughts of a real incident from SRE&amp;rsquo;s perspective.&lt;/p&gt;&#xA;&lt;h2 id=&#34;problem&#34;&gt;Problem&lt;/h2&gt;&#xA;&lt;p&gt;It was a Friday morning and I was paged by a P1 alert showing that a key merchant&amp;rsquo;s payment request had dropped by 20%. Fortunately, as soon as I opened the dashboard, the service recovered automatically within one minute.&lt;/p&gt;</description>
    </item>
    <item>
      <title>读《数据密集型应用系统设计》</title>
      <link>https://changchen.me/blog/20260319/sre_ddia/</link>
      <pubDate>Thu, 19 Mar 2026 11:16:31 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20260319/sre_ddia/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/17741003795952.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;最近几周在读神书 DDIA &amp;mdash; &lt;a href=&#34;https://book.douban.com/subject/30329536/&#34;&gt;《数据密集型应用系统设计》&lt;/a&gt;，收获颇多。有趣的是，截图文章封面时，才发现六年前曾标记想读这本书，有种与六年前的自己对话的奇妙感觉。在阅读的过程中，过去经历的多个真实线上故障，突然跃入脑中，并有了全新的体会。&lt;/p&gt;&#xA;&lt;p&gt;本文尝试站在 &lt;a href=&#34;https://changchen.me/blog/20180403/impressions-of-google-sre/&#34;&gt;SRE&lt;/a&gt; 视角，分享在蚂蚁工作期间，两个故障的一点粗浅新感悟。&lt;/p&gt;&#xA;&lt;h2 id=&#34;故障1&#34;&gt;故障1&lt;/h2&gt;&#xA;&lt;p&gt;背景：当外部商户/用户的一笔请求到达机房后，依次经过 &lt;code&gt;证书卸载（七层）&lt;/code&gt; -&amp;gt; &lt;code&gt;负载均衡后（四层）&lt;/code&gt; -&amp;gt; &lt;code&gt;网关应用&lt;/code&gt; 后，内部服务调用全部走 RPC。由于微服务的流行或“泛滥”，一笔下单支付可能流转上百个服务，i.e. 上百次 RPC 调用。&lt;/p&gt;&#xA;&lt;p&gt;问题：在一次会员系统的灰度发布过程中，线上逐步出现支付失败报错，并呈现上升趋势。查看时间线大概率怀疑由这次代码发布引入，立即无脑回滚变更。&lt;/p&gt;&#xA;&lt;p&gt;幸运的是，变更回滚完成后，报错也随之消失。支付业务完全恢复后，进一步根据 traceid 排查造成问题的根因，最后竟然在中间件日志中发现 rpc 的反序列化报错？？&lt;u&gt;聪明的你猜一猜有可能是什么原因导致的？应该如何避免？&lt;/u&gt;&lt;/p&gt;&#xA;&lt;details&gt;&#xA;  &lt;summary&gt;答案解析&lt;/summary&gt;&#xA;&lt;p&gt;在 DDIA 第四章 - 数据编码与演化 中，我们学习了不同序列化方式进行通信的优缺点。例如 python 的 &lt;code&gt;pickle&lt;/code&gt; 虽然很方便，但存在安全和效率的问题；&lt;code&gt;JSON/XML/CSV&lt;/code&gt; 虽然简单，但存在很多模糊地带，例如大数字的表示、CSV 的分隔符等，并且存在冗余，例如自身格式与 HTTP 协议 headers。&lt;/p&gt;&#xA;&lt;p&gt;支付宝中一笔下单支付请求可能涉及超过 30+ 应用，上百个微服务的交互，所以不难理解公司内部使用 RPC 作为数据交换的协议。&lt;/p&gt;&#xA;&lt;p&gt;以 protobuf 举例，RPC 是如何通过巧妙编码，实现空间的高效利用。&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;message Person {&#xA;    required string user_name       = 1;&#xA;    optional int64  favorite_number = 2;&#xA;    repeated string interests       = 3;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;从下图中不难看出 Person 数据结构每个字段被分为 &lt;code&gt;field tag | type | length | value&lt;/code&gt;，然后编码为二进制进行传递。值得注意的一个细节是，编码的过程中并没有包含字段的名称，而是通过 field tag 序号表示。&#xA;&lt;img src=&#34;https://changchen.me/images/blog/global/17738943057763.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>读 How Coding Agents Are Reshaping Engineering, Product and Design</title>
      <link>https://changchen.me/blog/20260311/how-coding-agents-are-reshaping-engineering-product-and-design/</link>
      <pubDate>Wed, 11 Mar 2026 20:34:19 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20260311/how-coding-agents-are-reshaping-engineering-product-and-design/</guid>
      <description>&lt;p&gt;无意间看到的一篇文章，有种冬日喝了一碗鸡汤，一股暖流灌遍全身，分享给你一起品鉴。&lt;/p&gt;&#xA;&lt;h2 id=&#34;epd&#34;&gt;EPD&lt;/h2&gt;&#xA;&lt;p&gt;作者发明的一个单词：EPD (Engineering, Product, and Design)&lt;/p&gt;&#xA;&lt;h2 id=&#34;prds-已死&#34;&gt;PRDs 已死&lt;/h2&gt;&#xA;&lt;p&gt;过去公司的开发流程：Idea -&amp;gt; PRD (Product Requirement Documents) -&amp;gt; Mock -&amp;gt; Code&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/17732333281826.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;为什么软件开发的金科玉律已崩塌？因为以往开发软件需要大量精力和时间，所以被迫分工。而现在 coding agent 的出现，可以将一个想法，快速转化为功能完善的软件。&lt;/p&gt;&#xA;&lt;h2 id=&#34;瓶颈从实现转移到-review-环节&#34;&gt;瓶颈从实现转移到 review 环节&lt;/h2&gt;&#xA;&lt;p&gt;现在任何人都可以写代码，也就是每个人都可以构建产品。但生成的代码大概率不是完美的，EPD 还是需要承担 review 的职责：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;工程师视角：是否可扩展、高可靠、可维护&lt;/li&gt;&#xA;&lt;li&gt;产品视角：是不是真正解决了用户的问题&lt;/li&gt;&#xA;&lt;li&gt;设计视角：用户交互是否足够友好&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;转化为以下模型，但带来了新的问题：代码太容易生成，原型层出不穷，review 的节点反而成为了瓶颈。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/17732333537279.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;prd-浴火重生&#34;&gt;PRD 浴火重生&lt;/h2&gt;&#xA;&lt;p&gt;作者认为虽然传统 PRD 的流水线已不复存在，但假如只有生成的代码，reviewer 怎么能发现代码是否正确，代码是否多余。所以还是需要文档沉淀产品的要求。&lt;/p&gt;&#xA;&lt;p&gt;关于这份 PRD 文档，应该以什么形式维护呢？未来甚至有没有可能就是用户的提示词？&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/17732337291101.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;通才的黄金时代&#34;&gt;通才的黄金时代&lt;/h2&gt;&#xA;&lt;p&gt;同时擅长技术、产品与设计的“通才”，一直非常的吃香，而 agent 将这一杠杆加倍持续放大。&lt;/p&gt;&#xA;&lt;p&gt;背后的原因在于沟通成本：过去在大公司中，职责越多越清晰，沟通的效率反而指数降低。而现在所谓的“一人公司”，只需要与 AI coding agent 对话，反而会比多人的团队跑的更快更远。&lt;/p&gt;&#xA;&lt;h2 id=&#34;coding-agents-成为必需品&#34;&gt;Coding agents 成为必需品&lt;/h2&gt;&#xA;&lt;p&gt;产品、设计、开发，都要拥抱 agent（否则将被取代🤔）：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;产品可以直接构建 POC，而不是停在 spec 阶段，苦苦等待他人的实现&lt;/li&gt;&#xA;&lt;li&gt;设计可以直接通过代码迭代看到效果，而不是仅停留在 Figma 中&lt;/li&gt;&#xA;&lt;li&gt;开发可以利用 agent 将时间更多花在系统设计中&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;优秀的-pm-变得伟大不合格的-pm-将变得更加糟糕&#34;&gt;优秀的 PM 变得伟大，不合格的 PM 将变得更加糟糕&lt;/h2&gt;&#xA;&lt;p&gt;好的「产品思维」比任何时候都变得更有价值。&lt;/p&gt;</description>
    </item>
    <item>
      <title>造轮子</title>
      <link>https://changchen.me/blog/20260309/pi-mono-the-vim-alternative/</link>
      <pubDate>Mon, 09 Mar 2026 09:00:30 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20260309/pi-mono-the-vim-alternative/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/Xnip2026-03-13_16-13-22.png&#34; alt=&#34;Xnip2026-03-13_16-13-22&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;最近闲下时，便会尝试搜索 Vibe Coding 的课程，尝试“系统性”学习新时代编程的最佳实践。但奇怪的是每次都无功而返，找不到心仪的课程。仔细一想，似乎倒也在情理之中？毕竟在没有 AI 的旧时代，“古法编程”也没有一成不变的模版套路。&lt;/p&gt;&#xA;&lt;p&gt;另一个原因，或许是表面写代码的「工具」改变了，但底下软件开发的基本原则与最佳实践从未改变。所以问题可以转化为：&lt;u&gt;应该如何学习这个新工具呢？？&lt;/u&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;“大三，想暑假通过实习积累一些经验和丰富简历，但是不知道现在应该先学点什么为实习和求职面试准备一下”&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;苦苦不得其解，直至一天偶然看到一条帖子👆。作为“过来人”，个人可能会给出两条建议：1）向 AI 求助 2）尽早开始面试，通过面试来准备面试。&lt;/p&gt;&#xA;&lt;p&gt;转念一想，在新时代重新学习“编程”，似乎也异曲同工：1）agent 本身就是开发者最好的指导老师 2）通过编程来学习编程 - 俗称造轮子&lt;/p&gt;&#xA;&lt;h2 id=&#34;造轮子&#34;&gt;造轮子&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Pi also is a collection of little components that you can build your own agent on top. That&amp;rsquo;s how OpenClaw is built, and that&amp;rsquo;s also how I built my own little Telegram bot and how Mario built his mom. If you want to build your own agent, connected to something, Pi when pointed to itself and mom, will conjure one up for you.&lt;/p&gt;</description>
    </item>
    <item>
      <title>派派成长日记 #11 - 社交悍匪</title>
      <link>https://changchen.me/blog/20260308/paipai_nine_months/</link>
      <pubDate>Sun, 08 Mar 2026 21:26:29 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20260308/paipai_nine_months/</guid>
      <description>&lt;h2 id=&#34;派派九个月啦&#34;&gt;派派九个月啦&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;God could not be everywhere and therefore he made mothers&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;最近一个月的里程碑：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;第一次“喊妈妈”（&lt;a href=&#34;https://share.google/aimode/0eCVrcyWBIqx7yiG0&#34;&gt;mama/mom 的单词由来&lt;/a&gt;） &amp;mdash; 虽然只是无意思发出音节，但不知为何，CC 与我一同表示：“明明开了雨刮器，为什么前方还是那么模糊”。&lt;/li&gt;&#xA;&lt;li&gt;第一次站起双手悬空&lt;/li&gt;&#xA;&lt;li&gt;下侧长出第一颗小萌牙&lt;/li&gt;&#xA;&lt;li&gt;第一次触发了 HomePod，听到 “请先换一种说法再问我一次” 陷入了迷茫&lt;/li&gt;&#xA;&lt;li&gt;第一次去宜家，从此爱上了土豆泥&lt;/li&gt;&#xA;&lt;li&gt;第一次骑在爸爸头上&lt;/li&gt;&#xA;&lt;li&gt;第一次分享食物&lt;/li&gt;&#xA;&lt;li&gt;&amp;hellip;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;社交悍匪&#34;&gt;社交悍匪&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;“越是愿意远离父母，越是建立了健康的依恋关系”&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;为了消磨时间，增加宝宝社交，外加考察托儿所，便报名了家附近托育中心的亲子体验课。&lt;/p&gt;&#xA;&lt;p&gt;不知是否在家“散养”的缘故，宝宝进入托儿所后并未出现胆怯，偌大的爬爬区与数不清的玩具，让他兴奋的快速爬走远离了我们。想起书籍《美国儿科学会婴儿亲子游戏》中的一句话：“越是愿意远离父母，越是建立了健康的依恋关系”，但愿如此。&lt;/p&gt;&#xA;&lt;p&gt;由于体验课只能一位家长陪同，重担突然就落在了我身上。课程大致分为两部分：唱歌跳舞与大运动。前半部分，其他宝宝都安静的坐在妈妈身前，可派宝却不太遵守课堂规则，快速一个箭步，就要抢走老师手中的布书&amp;hellip; 然后又爬到其他家长身边，开始玩弄起她的苹果手表，别冠以“社交悍匪”的封号。后半部分，散养的孩子展现出远超同龄人的矫健身姿，虽然摔了个后空翻，却很快从情绪中恢复，被老师赞许情绪稳定。&lt;/p&gt;&#xA;&lt;p&gt;理解每个孩子发展的进程差异巨大，更不会因为老师提供的情绪价值而迷失。但这次体验让我们发现，当孩子逐渐成长，未来进入托班，获得专业的照料和尽情的玩耍，或许对他不失为一个更好的选择。&lt;/p&gt;&#xA;&lt;h2 id=&#34;出牙期&#34;&gt;出牙期&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;His new favorite toy is ME ! 🐒   &amp;mdash; Glued together . Clingy baby&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;进入八月龄后，不知是否受「客体永久性」的影响，原本可以自己玩超过十五分钟的独立派宝，突然变得粘人 - 仿佛屁股长刺，一放在地板上，便哭闹着爬向照料者，求抱抱。仿佛恨不得一天二十四小时，和照料者像胶水一样连在一起。&lt;/p&gt;&#xA;&lt;p&gt;多日之后，看到孩子下侧牙龈出现牙齿破土的迹象，还伴随着低烧，这才恍然大悟原来是出牙导致的不适。三个星期后，小小牙终于完全破土而出，小朋友果然恢复了往日的兴奋与独立。&lt;/p&gt;&#xA;&lt;p&gt;所以世界上没有所谓的“高需求宝宝”，可能只是没有满足某个需求。&lt;/p&gt;&#xA;&lt;h2 id=&#34;炸毛可爱&#34;&gt;炸毛可爱&lt;/h2&gt;&#xA;&lt;p&gt;某日晚上与 CC 在 iMessage 中聊天，正在调试的 OpenClaw 看到宝宝的照片，评论了一句：“&amp;hellip;头发还是那么炸毛可爱！” :p&lt;/p&gt;&#xA;&lt;p&gt;但话说回来，宝宝最可爱的时候，是他玩到一半，突然静止不动，半提屁股，小脸憋气拉屎的时候 🤭&lt;/p&gt;&#xA;&lt;h2 id=&#34;儿保&#34;&gt;儿保&lt;/h2&gt;&#xA;&lt;p&gt;九月儿保特地去拜访了偶像，新华医院，李峰医生。虽然由于放假的最后一天，人流巨大，体验非常糟糕。&lt;/p&gt;&#xA;&lt;p&gt;录音后让 AI 整理的问答（&lt;em&gt;仅供参考&lt;/em&gt;）：&lt;/p&gt;</description>
    </item>
    <item>
      <title>读 Pi: The Minimal Agent Within OpenClaw</title>
      <link>https://changchen.me/blog/20260224/openclaw_pai_the_minimal_agent/</link>
      <pubDate>Tue, 24 Feb 2026 13:49:18 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20260224/openclaw_pai_the_minimal_agent/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;OpenClaw runs a single embedded agent runtime derived from pi-mono.&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;在翻阅 OpenClaw 文档时，无意发现其 &lt;a href=&#34;https://docs.openclaw.ai/concepts/agent&#34;&gt;Agent Runtime&lt;/a&gt; 是基于 &lt;a href=&#34;https://github.com/badlogic/pi-mono/&#34;&gt;pi-mono&lt;/a&gt; 构建。恰好又看到 Armin 写的一篇文章：&lt;a href=&#34;https://lucumr.pocoo.org/2026/1/31/pi/&#34;&gt;Pi: The Minimal Agent Within OpenClaw&lt;/a&gt;，于是顺着好奇心读了下去。&lt;/p&gt;&#xA;&lt;h2 id=&#34;什么是-pi&#34;&gt;什么是 Pi&lt;/h2&gt;&#xA;&lt;p&gt;pi-mono 是一个模块化的 AI agent 工具包，涵盖 coding agent CLI、统一 LLM API、TUI &amp;amp; Web UI、Slack bot 等组件。本文聚焦其中的 &lt;strong&gt;coding agent&lt;/strong&gt; —— 原作者最初将其定位为 Claude Code 的替代品。&lt;/p&gt;&#xA;&lt;p&gt;值得一提的是，项目本身的分层设计相当清晰，下面是各子模块之间的大致依赖关系：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;pi-mom&#xA;└── pi-coding-agent&#xA;    ├── pi-agent-core&#xA;    │   └── pi-ai&#xA;    └── pi-tui&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;设计理念&#34;&gt;设计理念&lt;/h2&gt;&#xA;&lt;p&gt;OpenClaw 背后与 Pi 遵循同样的设计理念：既然大模型那么擅长输出文字与代码，不如放手，全权交给它们。&lt;/p&gt;&#xA;&lt;h2 id=&#34;大道至简&#34;&gt;大道至简&lt;/h2&gt;&#xA;&lt;p&gt;项目 Pi 吸引原文作者的两个原因 ♥️：minimal &amp;amp; extensible&lt;/p&gt;</description>
    </item>
    <item>
      <title>Claude Code 工作流学习</title>
      <link>https://changchen.me/blog/20260219/claude_tricks/</link>
      <pubDate>Thu, 19 Feb 2026 11:00:31 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20260219/claude_tricks/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/17716550765797.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;尽管本文的最佳实践都是针对 &lt;a href=&#34;https://code.claude.com/docs/en/best-practices&#34;&gt;Claude Code&lt;/a&gt;，但触类旁通，真正学习的是与 AI 打交道的沟通技巧。&lt;/p&gt;&#xA;&lt;h2 id=&#34;how-i-use-claude-code---bcherny&#34;&gt;“how I use Claude Code” - &lt;a href=&#34;https://x.com/bcherny/status/2007179832300581177&#34;&gt;@bcherny&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;There is no one correct way to use Claude Code: we intentionally build it in a way that you can use it, customize it, and hack it however you like. Each person on the Claude Code team uses it &lt;em&gt;very&lt;/em&gt; differently.&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;来自 Claude 创始人 Boris Cherny 的分享日常工作流：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;异步&lt;/strong&gt;管理五个 Agent（本地 + 云端 + 移动端 无缝切换），同时利用系统通知，在需要人工输入或确认时及时提醒自己。&lt;del&gt;orz 像极了公司中从来不用笔记本电脑，每天带个 iPad 平板到处乱晃的老板。&lt;/del&gt;&lt;/li&gt;&#xA;&lt;li&gt;永远使用最好的模型并开启 thinking：虽然每次问答相对有点慢，但长远地看，更加准确的回答反而提高了整体效率，节约了时间。&lt;/li&gt;&#xA;&lt;li&gt;多人协作维护一个 &lt;code&gt;CLAUDE.md&lt;/code&gt; 文件（每个 repo 一个）。更新逻辑非常简单：只要每次 claude 做错事，就无脑加一条“永远不要xxx”，确保下次不再犯。并且在 code review 时，也可以动态 &lt;code&gt;@claude&lt;/code&gt; 来不断更新该文件。&lt;/li&gt;&#xA;&lt;li&gt;每次从 plan mode 开始（双击 &lt;code&gt;shift+tab&lt;/code&gt;）&amp;mdash; 好的计划是成功的一半。&lt;/li&gt;&#xA;&lt;li&gt;自定义命令快捷键，高效触发高频的操作，例如自定义的 &lt;code&gt;/commit-push-pr&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;使用 &lt;a href=&#34;https://code.claude.com/docs/en/sub-agents&#34;&gt;sub-agents&lt;/a&gt; 自动化工作流程，例如每次回话结束后执行代码测试等固定流程。&lt;/li&gt;&#xA;&lt;li&gt;使用 &lt;a href=&#34;https://code.claude.com/docs/en/hooks#posttooluse-input&#34;&gt;PostToolUse hook&lt;/a&gt; 调用脚本保证 100% 格式化代码。&lt;/li&gt;&#xA;&lt;li&gt;相比于 &lt;code&gt;--dangerously-skip-permissions&lt;/code&gt;（一把梭），更加推荐使用 &lt;code&gt;/permissions&lt;/code&gt; 管理命令权限，并通过 &lt;code&gt;.claude/settings.json&lt;/code&gt; 在 repo 级别共享。&lt;/li&gt;&#xA;&lt;li&gt;使用 &lt;a href=&#34;https://code.claude.com/docs/en/mcp&#34;&gt;MCP&lt;/a&gt; 集成第三方工具，例如让 Agent 在 Slack 中查看与发送消息，调用 Sentry 检查错误日志等。同上配置在 repo 中同步共享。&lt;/li&gt;&#xA;&lt;li&gt;强调“验收”的重要性 - 构建一个良性的 feedback look 会事半功倍交付 2-3 倍质量的软件，例如让 Agent 自己打开游览器模拟验证，并不断重复改进。特别是长时间运行的复杂任务（例如超过一天），参考插件 &lt;a href=&#34;https://github.com/anthropics/claude-plugins-official/tree/2cd88e7947b7382e045666abee790c7f55f669f3/plugins/ralph-loop&#34;&gt;Ralph Loop&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;claude-code-101---the-complete-claude-code-tutorial---eyad_&#34;&gt;“Claude Code 101 - The complete claude code tutorial” - &lt;a href=&#34;https://x.com/eyad_khrais/status/2010076957938188661?s=20&#34;&gt;@eyad_khrais&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;10 out of 10 times, the output I&amp;rsquo;ve gotten with plan mode did significantly better than when I just started talking and spewing everything into Claude Code. It&amp;rsquo;s not even close.&lt;/p&gt;</description>
    </item>
    <item>
      <title>读 Effective harnesses for long-running agents</title>
      <link>https://changchen.me/blog/20260217/effective_harnesses_for_long-running_agents/</link>
      <pubDate>Tue, 17 Feb 2026 21:03:36 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20260217/effective_harnesses_for_long-running_agents/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/17712932866150.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;在家带娃快十个月，孩子叫出了第一声“mama”，世界似乎也发生了天翻地覆的变化。为了在新时代重新学习“编程”，尝试漫无目的地阅读感兴趣的文章并记录“编程小白”学习的过程。&lt;/p&gt;&#xA;&lt;h2 id=&#34;1-spec-driven-developmentsdd&#34;&gt;1. Spec-Driven Development（SDD）&lt;/h2&gt;&#xA;&lt;p&gt;相比于一问一答的 vibe coding，最近在想 &amp;mdash; 有没有可能更进一步：只提供需求背景和明确的期望结果，剩下的让 agent 长时间运行直到搞定？&lt;/p&gt;&#xA;&lt;p&gt;首先尝试了 Spec Driven Development (spec-kit)，一言难尽，有种在 2026 年驾驶“手动挡”汽车的别扭感。。越想要人工介入获得掌控感，反而越容易熄火。// 除非你就是特别喜欢手动挡的操作乐趣。&lt;/p&gt;&#xA;&lt;h2 id=&#34;2-effective-harnesses-for-long-running-agents&#34;&gt;2. Effective harnesses for long-running agents&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;The core challenge of long-running agents is that they must work in discrete sessions, and each new session begins with no memory of what came before.&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;另一篇来自 Anthropic 的文章，文中指出，为了实现 agent 自主地超长时间运行，最大的问题在于：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;项目初始化&lt;/strong&gt;阶段：模型天生倾向于一口吃成胖子 &amp;mdash;&amp;mdash; 一次性实现所有功能。但假如干到一半留了个烂摊子，下个“人”只能靠“猜”来继续完成工作。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;项目快速迭代&lt;/strong&gt;阶段：每次开启新 session 后，之前的上下文会完全丢失。想象你每隔一天都招聘一个新员工来帮你编程干活。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;基于上面两个问题，文章分别提出了 &lt;code&gt;Initializer agent&lt;/code&gt; &amp;amp; &lt;code&gt;Coding agent&lt;/code&gt;。下面尝试用一小段“伪代码”说明逻辑：&lt;/p&gt;</description>
    </item>
    <item>
      <title>2025 年终小结 👶</title>
      <link>https://changchen.me/blog/20260216/2025_summary/</link>
      <pubDate>Mon, 16 Feb 2026 22:35:51 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20260216/2025_summary/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/17712516041859.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;工作&#34;&gt;工作&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;这就好似一艘一直在一条固定航线上前行的船，突然有一天偏离了原来的方向，如果舵手还没想好往哪里去时，这艘船可能会随波逐流一阵子。&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;2025 年中，加入外企一年半后，所在的上海团队受到公司全球调整影响而“解散”（详见 &lt;a href=&#34;https://changchen.me/blog/20251005/postmortem_my_journey_in_autodesk/&#34;&gt;Postmortem of My Journey at Autodesk&lt;/a&gt;）。相反令人欣慰的是，差不多同一时间，家庭迎来了新成员👶♥️，小生命呱呱落地带来的强烈责任感，让我开启了全职奶爸的全新旅途（&lt;a href=&#34;https://changchen.me/series/paipai/&#34;&gt;派派成长日记&lt;/a&gt;）。&lt;/p&gt;&#xA;&lt;p&gt;带娃可比工作辛苦得多得多😅。想象一下 7x24 小时连轴转，“老板”还听不懂人话，动不动对你发脾气。一转眼八个月过去了，是时候相信孩子、学着放手了。如果有工作机会，欢迎推荐～&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.linkedin.com/in/henry-zhu-181191182/&#34;&gt;#OPENTOWORK&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;孩子&#34;&gt;孩子&lt;/h2&gt;&#xA;&lt;p&gt;分享与妻子独立带娃八个月的过程中，学习到的若干道理：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;不做不错&lt;/strong&gt;：相比于费尽心思去帮助孩子，有时候什么都不做，反而结果可能更好 &amp;mdash; 相信孩子可以也必须自己成长（来自与 &lt;a href=&#34;https://changchen.me/blog/20251229/paipai_seven_months/#%E7%9D%A1%E6%95%B4%E8%A7%89&#34;&gt;婴儿睡眠问题&lt;/a&gt; 斗争的经验）&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;少管闲事&lt;/strong&gt;：伴侣带孩子时，避免指指点点加以干涉 &amp;mdash; 越是控制越是说明对孩子能力的不自信（来自 &lt;a href=&#34;https://changchen.me/blog/20250926/children_the_challenge/#26-mind-your-own-business&#34;&gt;《Children: The Challenge｜孩子：挑战》- Mind you own business&lt;/a&gt;）// 想象坐在副驾驶，唯一要做的事就是挤上安全带然后闭上嘴巴。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;如果给自己带娃打分的话，大约 &lt;em&gt;50/100&lt;/em&gt;。回过头看，新手父母让孩子遭了不少不必要的&amp;quot;折磨&amp;quot;。但没办法，大人的世界也是充满痛苦和无奈的 :)&lt;/p&gt;&#xA;&lt;h2 id=&#34;读书&#34;&gt;读书&lt;/h2&gt;&#xA;&lt;p&gt;宝宝睡觉的间隙，个人喜欢读书（&lt;del&gt;总比刷短视频强&lt;/del&gt;）。不知不觉读了 20 本，五星为极力推荐：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;《美国儿科学会实用喂养指南(第2版)》 ★★★★★&lt;/li&gt;&#xA;&lt;li&gt;《在孩子下次生病前》 ★★★★☆&lt;/li&gt;&#xA;&lt;li&gt;《以日为鉴》 ★★★★☆&lt;/li&gt;&#xA;&lt;li&gt;《美国儿科学会婴儿亲子游戏》 ★★★★☆&lt;/li&gt;&#xA;&lt;li&gt;《每个孩子都能好好睡觉》 ★★★★☆&lt;/li&gt;&#xA;&lt;li&gt;《婴幼儿睡眠圣经》 ★★★☆☆&lt;/li&gt;&#xA;&lt;li&gt;《美国儿科学会睡眠手册》 ★★★★★&lt;/li&gt;&#xA;&lt;li&gt;《Children: The Challenge》 ★★★★★&lt;/li&gt;&#xA;&lt;li&gt;《美国儿科学会母乳喂养指南（第3版）》 ★★★★★&lt;/li&gt;&#xA;&lt;li&gt;《宝宝睡眠全书》 ★★★★☆&lt;/li&gt;&#xA;&lt;li&gt;《婴幼儿及其照料者（第8版）》 ★★★★☆&lt;/li&gt;&#xA;&lt;li&gt;《销售圣经》 ★★★☆☆&lt;/li&gt;&#xA;&lt;li&gt;《小狗钱钱》 ★★★★★&lt;/li&gt;&#xA;&lt;li&gt;《实用程序育儿法》 ★★★☆☆&lt;/li&gt;&#xA;&lt;li&gt;《MR.HUA 创业手记》 ★★★☆☆&lt;/li&gt;&#xA;&lt;li&gt;《真希望我父母读过这本书》 ★★★☆☆&lt;/li&gt;&#xA;&lt;li&gt;《护肤全书》 ★★★☆☆&lt;/li&gt;&#xA;&lt;li&gt;《The Mom Test》 ★★★★☆&lt;/li&gt;&#xA;&lt;li&gt;《精益创业》 ★★★☆☆&lt;/li&gt;&#xA;&lt;li&gt;《Atomic Habits》 ★★★★★&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;2025 年读书与运动的记录：&lt;/p&gt;</description>
    </item>
    <item>
      <title>《How to Talk So Little Kids Will Listen》- #3 如何处理冲突</title>
      <link>https://changchen.me/blog/20260205/how-to-talk-so-little-kids-will-listen-chapter3/</link>
      <pubDate>Thu, 05 Feb 2026 15:08:57 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20260205/how-to-talk-so-little-kids-will-listen-chapter3/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Tools for Resolving Conflict . . . Avoiding Combat on the Home Front&#xA;— Replacing punishment with more peaceful, effective solutions&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;中午和派派吃完羊肉火锅，在商场闲逛消食时，被一片小型室内轮滑场吸引。其中一个小女孩正在和教练一起练滑轮，小脸红扑扑的，像卡通人物一般可爱。练习结束后，教练半跪在地上鼓励了她许久，女孩似乎有一丝丝内向，不说话点着头，委屈的小脸慢慢舒展开。随后教练离开准备给孩子签发证书奖状时，在一旁一直板着脸的母亲突然开口说话：“你明明做得到，你在家里怎么不练呢？穿裙子不是你的借口！&lt;strong&gt;你下次要是再这样&lt;/strong&gt;，我就不带你来了！”。小女孩委屈的小脸瞬间绷不住，低下头泪花在眼睛里打转。&lt;/p&gt;&#xA;&lt;p&gt;在传统的中式家庭中，不难看到对孩子的威胁、打骂与惩罚，甚至如同传统一般一代代“传承”下去。时代在变迁，过去阅读的每一本育儿书中都明确反对&lt;strong&gt;打骂与惩罚&lt;/strong&gt;孩子。但作为父母，我们应该如何正确处理亲子“冲突”呢？&lt;/p&gt;&#xA;&lt;h2 id=&#34;第三章解决冲突的百宝箱&#34;&gt;第三章：解决冲突的百宝箱&lt;/h2&gt;&#xA;&lt;h3 id=&#34;关于-natural-consequence&#34;&gt;关于 Natural consequence&lt;/h3&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;From the point of view of the child, getting a consequence and getting a punishment are two different names for the same thing.&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://changchen.me/blog/20250926/children_the_challenge/&#34;&gt;《Children: The Challenge》&lt;/a&gt; 书中提到自然与逻辑后果（Natural and Logical Consequences）比惩罚更适合教育孩子。然而作者认为，对孩子而言，「后果」与「惩罚」并无区别，本质上都是让做错事的人“受苦”（造成了精神或物理上的痛苦），从而希望他门不要再重复不可接受的行为。&lt;/p&gt;&#xA;&lt;p&gt;作者进一步认为：“所有让孩子感到不适不悦的行为，都可以被定义为「惩罚」并不可取”。因为惩罚虽然见效快，但同时带来无数隐患与副作用❌。例如：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;当惩罚无效时，你可能会陷入越来越严厉的惩罚恶性循环。&lt;/li&gt;&#xA;&lt;li&gt;惩罚无法解决根本问题，例如孩子因社交障碍而咬人，惩罚并不能帮助他获取必要的社交技能。除此之外，惩罚使孩子被怨恨遮蔽双眼，而非反思自己的问题。&lt;/li&gt;&#xA;&lt;li&gt;对于意志坚定的孩子，惩罚往往会令他们更加坚决地反抗权威&lt;/li&gt;&#xA;&lt;li&gt;&lt;mark&gt;惩罚暗中“教会”了孩子如何处理冲突&lt;/mark&gt;，未来他们可能会如法炮制，用相同的方式对待同龄的兄弟姐妹。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;以下是一些规避惩罚的具体可行方法：&lt;/p&gt;&#xA;&lt;h3 id=&#34;tool-1-express-your-feelings----strongly&#34;&gt;TOOL #1: Express Your Feelings . . . Strongly!&lt;/h3&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;“HEY, I don’t like to see people being pushed!”&lt;/p&gt;</description>
    </item>
    <item>
      <title>《How to Talk So Little Kids Will Listen》- #2 如何促进合作</title>
      <link>https://changchen.me/blog/20260201/how-to-talk-so-little-kids-will-listen-chapter2/</link>
      <pubDate>Sun, 01 Feb 2026 14:31:31 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20260201/how-to-talk-so-little-kids-will-listen-chapter2/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Tools for Engaging Cooperation . . . Feelings Schmeelings, She Has to Brush Her Teeth&lt;br&gt;&#xA;— Getting kids to do what they have to do&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;过去阅读《婴幼儿及其照护者》时了解到：即使给婴儿换尿布也是培养“合作精神”的宝贵机会。然而，在派派学会独立坐后，这份和谐的合作关系彻底破裂 &amp;mdash;&amp;mdash; 宝宝再也不愿意乖乖躺着任我宰割，即使坐在我的腿上依旧拼命地挣扎，有一次甚至尿了我一身然后淘气地冲我坏笑（婴儿的尿原来是滚烫的）。&lt;/p&gt;&#xA;&lt;p&gt;想到逆子长大后，不愿意按时刷牙，不愿意好好吃饭，不愿意在公共场合保持安静&amp;hellip; 便令人头疼万分。所以作为父母，应该如何巧妙地获得孩子的合作？&lt;/p&gt;&#xA;&lt;h2 id=&#34;第二章让孩子做他们必须做的事&#34;&gt;第二章：让孩子做他们必须做的事&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&amp;ldquo;Even if I want to do something, as soon as somebody tells me to do it, I don’t want to do it anymore.&amp;rdquo;&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;想象小时候：即使是原本愿意做的事情，当父母一边唠叨一边命令你做时，你也会产生&lt;mark&gt;抗拒心理&lt;/mark&gt;，不想再去做了（人之常情，婴儿也不例外）。举个例子：当你行走在图书馆中，遇到一堆凌乱尚未整理的书籍。你本来想快步走开，但无意间注意到墙上的小牌子：“请不要碰！”。突然一股孩子般的叛逆感从心中油然而生，你故意触碰了那堆书，然后开心并心满意足地离开（“犯贱”）。&lt;/p&gt;&#xA;&lt;p&gt;下面将介绍巧妙规避孩子“逆鳞”的若干技巧。&lt;/p&gt;&#xA;&lt;h3 id=&#34;tool--1-be-playful---游戏化&#34;&gt;TOOL  #1: Be Playful - 游戏化&lt;/h3&gt;&#xA;&lt;h4 id=&#34;1对物体赋予生命&#34;&gt;1）对物体赋予生命&lt;/h4&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;One technique, sure to be a hit with the seven and under set, is to make an inanimate object talk.&lt;/p&gt;</description>
    </item>
    <item>
      <title>《How to Talk So Little Kids Will Listen》- #1 如何处理孩子的负面情绪</title>
      <link>https://changchen.me/blog/20260128/how-to-talk-so-little-kids-will-listen/</link>
      <pubDate>Wed, 28 Jan 2026 15:04:32 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20260128/how-to-talk-so-little-kids-will-listen/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Tools for Handling Emotions . . . What’s All the Fuss about Feelings?&#xA;— When kids don’t feel right, they can’t behave right&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;某日在小区楼下推车散步，路过游乐场时，遇见一个小男孩哭的撕心裂肺。。坐在婴儿车中派派继承了母亲爱看热闹的优良基因，盘起右腿半探身子，好奇地伸出他的小脑袋“看戏”。&lt;/p&gt;&#xA;&lt;p&gt;停下观察一会后，发现原来是两个小男生为了争夺滑梯而引发了“冲突” &amp;mdash;&amp;mdash; 哭着的男孩1向他父亲“投诉”对方霸占滑梯；而正在使用滑梯的男孩2，则与母亲一边窃窃私语一边发出夸张的笑声。男孩1的父亲因为孩子的哭闹看上去有一丝尴尬与丢面子，板着脸问：“&lt;strong&gt;你在说什么？？我完全听不懂，你能不能好好说话？&lt;/strong&gt;”。随后孩子的情绪彻底崩溃，歇斯底里地抱怨对方不排队，抢了他的位置。&lt;/p&gt;&#xA;&lt;p&gt;虽然情绪失控的男孩看上去有一丝宠溺，但后来完全演变成了一场无形的&amp;quot;霸凌盛宴&amp;quot;。觉的可怜又说不出哪里不对，便默默离开了。&lt;/p&gt;&#xA;&lt;p&gt;读完这本书的第一章后，我突然明白了问题的根源。虽然这本书适用于两岁以上的儿童，但对于其中包含的沟通技巧，不管是针对蹒跚学步的孩子，还是 30 多岁的大人，都十分适用 &amp;mdash;&amp;mdash; 毕竟绝大部分大人（包括我自己），都是未完全成熟的小孩。&lt;/p&gt;&#xA;&lt;h3 id=&#34;第一章处理孩子负面情绪的-5-种工具&#34;&gt;第一章：处理孩子负面情绪的 5 种工具&lt;/h3&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;When kids don’t feel right, they can’t behave right&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;面对婴幼儿的负面情绪，例如我讨厌某个小朋友、我厌倦了早餐的煎饼，大人总是忍不住尽快纠正或责骂他们。但想象如果你没睡好，上班时向同事抱怨不想上班，对方大概率会尝试理解你而不是立即反驳（&lt;mark&gt;负面情绪的被接纳会让人感到大大的宽慰&lt;/mark&gt;）。&lt;/p&gt;&#xA;&lt;h4 id=&#34;tool-1-acknowledge-feelings-with-words&#34;&gt;TOOL #1: Acknowledge Feelings with Words&lt;/h4&gt;&#xA;&lt;p&gt;技巧一：使用语言接纳孩子的情绪，具体的步骤：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;咬紧牙关，克制住马上反驳他的冲动（不要钻牛角尖，不要与孩子讲逻辑讲道理）&lt;/li&gt;&#xA;&lt;li&gt;想象孩子的感受（或提前教孩子与情感相关的一些词汇，以便于他可以在需要的时候求助）&lt;/li&gt;&#xA;&lt;li&gt;用一个陈述句描述说出这种情绪。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;真实案例解释：当孩子在搭积木，另一个婴儿快速爬过来&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;❌ 错误做法：&#xA;- 我：丹，让孩子吃几块积木。他只是想和你一起玩。&#xA;- 丹：不，不，我在做东西。&#xA;- 我：别这样，丹，他只会和他们玩一会儿。你知道婴儿是什么样的&#xA;- （丹推了他一下，他哭着摔倒了。）&#xA;- 我：丹，你在干什么？现在你把孩子弄哭了！！&#xA;&#xA;✅ 正确做法：&#xA;- 丹：不!不!不!&#xA;- 我（承认并识别他的感受）：哦，不，你在这里做一些特别的事情，婴儿过来抢它。多么令人沮丧!&#xA;- 丹：这里，这里，这里！（他迅速地把一把积木扔到地板上，以分散婴儿的注意力，&#xA;然后把他的创作搬到咖啡桌上。）&#xA;- 我：哇，你知道怎么让宝宝开心了&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;&#xA;&lt;p&gt;“But” takes away the gift you’ve just given. It’s like saying, “I hear how you feel and now I am going to explain to you why that feeling is wrong.” Imagine hearing someone say, “I am so sorry your mother passed away. But hey, she’s dead, you’re alive, tears won’t change it; let’s move on!”&lt;/p&gt;</description>
    </item>
    <item>
      <title>派派成长日记 #10 - 坐稳江山</title>
      <link>https://changchen.me/blog/20260127/paipai_eight_months/</link>
      <pubDate>Tue, 27 Jan 2026 20:17:46 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20260127/paipai_eight_months/</guid>
      <description>&lt;h2 id=&#34;派派马上八个月啦&#34;&gt;派派马上八个月啦&lt;/h2&gt;&#xA;&lt;p&gt;最近一个月的里程碑：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;第一次从趴着到独立坐稳，第一次扶着站起&lt;/li&gt;&#xA;&lt;li&gt;第一次过圣诞节，第一次出门短途旅行🚗&lt;/li&gt;&#xA;&lt;li&gt;第一次自主进食，第一次吃鸡蛋，第一次过敏 &lt;del&gt;(&amp;gt;_&amp;lt;)&lt;/del&gt;&lt;/li&gt;&#xA;&lt;li&gt;&amp;hellip;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;低质量糊弄带娃&#34;&gt;低质量糊弄带娃&lt;/h2&gt;&#xA;&lt;p&gt;随着宝宝一天天长大，慢慢地发展出&lt;strong&gt;陌生人焦虑&lt;/strong&gt; &amp;mdash;&amp;mdash; 喜欢一天当晚粘着照料者（小跟屁虫）。虽然将宝宝的房间打造成私人“游乐场”，但辽阔的活动空间最多只能硬控他十五分钟。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/17695190989192.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;面对日益难熬的居家时光，我们选择尝试自驾短途旅行，第一站是距离上海两个半小时的安吉🎋。抵达目的地时，清新的空气令人心旷神怡，本地的农家菜也令人印象深刻（推荐餐厅“小小饭店”）。但.. 两天三顿土鸡最后令人有一丝反胃，让人突然回忆起前前公司千岛湖团建的三天五顿红烧鱼头。更加糟糕的是，宝宝似乎对新环境并不适应，睡的不踏实，导致在同个房间的我们也如坐针毡，只盼着早日回家。但总的来说安吉是一个满分的旅行目的地，等宝宝长大一些，不妨故地重游。&lt;/p&gt;&#xA;&lt;p&gt;短途旅行的计划暂时搁浅，我们选择每日出门觅食，有趣的是宝宝对外面的世界好奇万分，在餐厅吃饭时，喜欢盯着陌生人看，有时甚至扭着头，在婴儿车上使劲探出半个身子张望，惹得隔壁桌的陌生人又尴尬又好笑。&lt;/p&gt;&#xA;&lt;p&gt;最近在社交媒体上学到一个新词：“低质量糊弄带娃”，深有同感。如果将带娃比做编程，看一百遍《流畅的 Python》也不如实战开发一个小项目的体验。对于零经验的新手父母，光满足婴儿基本生理需求便已消耗完精力，能够做一个 60 的分父母，也挺好了。&lt;/p&gt;&#xA;&lt;h2 id=&#34;交新朋友&#34;&gt;交新朋友&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;如果你还没有开始的话，现在就是将宝宝介绍给别的孩子的好时机。尽管他们在一段时间内还不会一起玩耍，在这个月龄，宝宝会并排玩。他们也会对同等身型和行为的其他人感到好奇。与其他宝宝的接触会帮助拓展宝宝的社交视野。&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;参考书上的建议，邀请邻居同月龄的小朋友来家里一起玩。相比育儿嫂和老人一起照顾的孩子，宝宝似乎显得没那么“娇气”。然而，过于独立的他，反而令人感到一丝可怜与担忧。&lt;/p&gt;&#xA;&lt;details&gt;&#xA;&lt;summary&gt;尝试向 Google Gemini 寻求帮助与安慰&lt;/summary&gt;&#xA;&lt;img src=&#34;https://changchen.me/images/blog/global/17695850475892.jpg&#34;&gt;&#xA;&lt;/details&gt;&#xA;&lt;p&gt;🤔既然 Gemini 如此强大。。有没有可能将宝宝作息（吃喝拉撒）等每日细节告诉 AI，让它一起帮忙带孩子？？虽然 AI 可以普惠通用的医学常识，但个人更多担心价值观的潜意识渗透。例如命令 AI 反驳刚刚的回答，AI 毫无犹豫立即给出了截然相反的结论，应该没人希望养育出一个像 AI 一样精准、却缺乏独立人格的孩子：&lt;/p&gt;&#xA;&lt;details&gt;&#xA;&lt;summary&gt;...&lt;/summary&gt;&#xA;&lt;img src=&#34;https://changchen.me/images/blog/global/17695851742554.jpg&#34;&gt;&#xA;&lt;/details&gt;&#xA;&lt;h2 id=&#34;开个玩笑&#34;&gt;开个玩笑&lt;/h2&gt;&#xA;&lt;p&gt;开个小小的玩笑，文章开头的图片中的乒乓球桌是 AI 生成加入的。但等孩子上大学，就把他的房间改成真实的乒乓球室。&lt;/p&gt;</description>
    </item>
    <item>
      <title>[读后感]《美国儿科学会实用喂养指南》</title>
      <link>https://changchen.me/blog/20260120/food_fights/</link>
      <pubDate>Tue, 20 Jan 2026 10:10:14 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20260120/food_fights/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;肥胖问题：如果父母连自己的饮食问题和腰围都控制不住，还怎么奢望能教育孩子呢？&lt;br&gt;&#xA;真正的目标：尽可能减少亲子之间因为喂养而发生冲突的情况，保证一家人能够和平进食。&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;最近与宝宝一起愉快地吃鸡蛋，作为一名 SRE（Site Reliability Engineer），竟然没有遵循&lt;a href=&#34;https://share.google/aimode/JI5P2qa3WjqHChhyv&#34;&gt;灰度策略&lt;/a&gt;，导致宝宝蛋清过敏变成了“香肠嘴”。虽然第二天红疹很快消退，但看到他挠脖子不舒服的样子，心中还是充满愧疚。所以购入了若干本辅食相关书籍，认真学习补课。&lt;/p&gt;&#xA;&lt;p&gt;相比于大部分指南平铺直叙罗列食谱，本书进一步讨论了饮食文化问题带来的家庭成员冲突与各种常见挑战。令人感到兴奋与眼前一亮，迫不及待地一口气读完。&lt;/p&gt;&#xA;&lt;h2 id=&#34;一你的喂养态度&#34;&gt;一、你的喂养态度&lt;/h2&gt;&#xA;&lt;h3 id=&#34;成功喂养的基本原则&#34;&gt;成功喂养的基本原则&lt;/h3&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;喂饭常见的窘境：孩子明明需要人喂却执拗的自己吃东西、孩子抓着奶瓶捣乱、孩子不吃自己的买的东西、防止孩子变胖（肥胖症）、&amp;hellip;&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;适用一切饮食问题的基本原则：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;不再吃的问题上与孩子大动干戈&lt;/strong&gt;：不与孩子斗气。你只管提供各种各样营养丰富的食物，&lt;mark&gt;孩子吃不吃、什么时候吃、吃多少，都不是你要决定的事&lt;/mark&gt;。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;吃什么不仅与营养有关&lt;/strong&gt;：1）吃什么、吃多少以及餐桌上的表现，代表了家长对孩子更深层次的诉求（好习惯、坏习惯的形成），所以需要抓住机会，培养健康的饮食态度。2）吃东西容易激起孩子的反叛天性，理解并利用孩子不守规矩的时机，来教孩子认识更多食物，培养餐桌礼仪。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;不要让孩子看到你招架不住&lt;/strong&gt;：孩子天生会不断试探和考验你耐心的极限。装作若无其事，避免给孩子压力或让他们找到“把柄”。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;饿了才吃，渴了才喝&lt;/strong&gt;：不要因为成人后天养成固定时间进食的习惯，而忽视了孩子的天性。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;如果出师不利就再来一遍&lt;/strong&gt;：成功的衡量标准不是孩子吃进去多少饭，而是孩子心甘情愿地张嘴吃饭。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;萝卜白菜，各有所爱&lt;/strong&gt;：尊重孩子口味的差异性。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;你自己先做好&lt;/strong&gt;：避免自己的坏习惯，或对某些食物的反感情绪，让孩子耳濡目染。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;眼不见、心不想&lt;/strong&gt;：孩子不理解延迟满足，直接把糖果藏起来。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;乐在其中&lt;/strong&gt;：&lt;mark&gt;让孩子也参与到准备食材的过程中&lt;/mark&gt;，例如打理菜园，帮厨，甚至给自己的作品取名字。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;着眼于大局&lt;/strong&gt;：孩子哪天吃了多少饭并不能决定什么，将眼光放得更加长远。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;二固体食物及喂养难题&#34;&gt;二、固体食物及喂养难题&lt;/h2&gt;&#xA;&lt;h3 id=&#34;多吃蔬菜不容易&#34;&gt;多吃蔬菜不容易&lt;/h3&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;请考虑一下你是否喜欢绿色蔬菜。如果你不喜欢，那么下列这些事情发生的概率就会增加（1）你不会遵守为孩子树立饮食榜样这一金科玉律；（2）孩子会注意到你不喜欢绿色蔬菜；（3）你不会经常给孩子吃绿色蔬菜。&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;孩子拒绝绿叶&lt;strong&gt;蔬菜&lt;/strong&gt;的原因？ &lt;br&gt;&#xA;1）大人强调吃绿色蔬菜的执拗让孩子产生了抵触心理（&lt;mark&gt;有人越是和你说某个东西对你有益处，你会越不喜欢它&lt;/mark&gt;） &lt;br&gt;&#xA;2）大人自己不喜欢绿色蔬菜对孩子潜移默化&lt;/p&gt;&#xA;&lt;h3 id=&#34;蔬菜和炸薯条阴谋&#34;&gt;蔬菜和炸薯条阴谋&lt;/h3&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;最值得注意的是，人们（甚至是美国农业部）通常将西红柿归类为蔬菜，但实际上西红柿毫无疑问是一种水果&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;🤔你觉得西红柿是水果还是蔬菜呢？&lt;/p&gt;&#xA;&lt;h2 id=&#34;三液体食物及喂养难题&#34;&gt;三、液体食物及喂养难题&lt;/h2&gt;&#xA;&lt;h3 id=&#34;无休无止的奶瓶--吸管杯综合症&#34;&gt;无休无止的奶瓶 &amp;amp; 吸管杯综合症&lt;/h3&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;6~9个月：拿着和拿住只要你的宝宝开始想要够东西，你就让他抓一个杯子并且向他介绍杯子。杯子肯定会晃动，虽然如果没有盖的话里面的液体可能会酒出来，但这恰恰给了宝宝大量时间练习用杯子喝的技巧，慢慢地宝宝就可以自己用杯子喝了。&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;尽早让孩子在高脚凳内独立学习使用杯子。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;父母花大量的时间试图弄明白怎样才能让孩子学会使用吸管杯，然后又要花更多的时间和精力让孩子不再使用吸管杯—这真是让人哭笑不得。&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;只要孩子能够使用杯子，就要换掉吸管杯，让孩子使用真正的杯子。&lt;/p&gt;&#xA;&lt;h3 id=&#34;牛奶应该怎样喝--让孩子爱上喝水&#34;&gt;牛奶应该怎样喝 &amp;amp; 让孩子爱上喝水&lt;/h3&gt;&#xA;&lt;p&gt;不同年龄应该喝什么牛奶？&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;年龄小于 1 岁：不喝牛奶&lt;/li&gt;&#xA;&lt;li&gt;1 ～ 2 岁：全脂牛奶&lt;/li&gt;&#xA;&lt;li&gt;2 岁以上：从降脂牛奶到脱脂牛奶&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;p.s. 睡前无论是母乳或牛奶都不建议摄入 -&amp;gt; 损伤牙齿并扰乱睡眠&lt;/p&gt;&#xA;&lt;p&gt;不同年龄如何喝水？&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;mark&gt;不到 6 个月大：实际上不需要喝水&lt;/mark&gt;&lt;/li&gt;&#xA;&lt;li&gt;6 个月以上：喝水的绝佳时机，但实际不需要很多水（辅食中包含大量的水）&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;汽水--果汁&#34;&gt;汽水 &amp;amp; 果汁&lt;/h3&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;但是，果汁与汽水不同，也不像汽水那样缺乏营养价值，100%纯果汁已经证实含有较高的营养价值。随后几项大型国家研究得到了关于孩子、果汁、营养和肥胖的一些有趣的数据，&lt;mark&gt;但是没有找到证据表明100%纯果汁会引发儿童肥胖&lt;/mark&gt;。这些新的发现使我们重新评估对于果汁的态度，并据此重新制订了与果汁相关的建议。&lt;/p&gt;</description>
    </item>
    <item>
      <title>派派成长日记 #3 - 小月龄好物推荐</title>
      <link>https://changchen.me/blog/20260119/paipai_top_picks/</link>
      <pubDate>Mon, 19 Jan 2026 20:38:55 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20260119/paipai_top_picks/</guid>
      <description>&lt;p&gt;当小月龄的宝宝在半夜三点半醒来不睡觉，还冲着疲惫不堪的你兴奋地微笑时，只有疯狂地购物才能安抚崩溃破碎的内心。&lt;/p&gt;&#xA;&lt;p&gt;本篇文章分享 0-6 个月婴儿的好物推荐列表，希望可以帮助到初为父母的新手奶爸奶妈～&lt;/p&gt;&#xA;&lt;h2 id=&#34;一婴儿生活用品家中常用&#34;&gt;一、婴儿生活用品（家中常用）&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://mall.jd.com/index-1000564261.html&#34;&gt;nest designs 睡袋&lt;/a&gt;：无意中发现的宝藏小众品牌，无论是睡袋还是连体衣，派派都很喜欢。只是不知是否饥饿营销，竟然经常容易断码断货。&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://hoppetta.tmall.com/shop/view_shop.htm?spm=pc_detail.30350276.shop_block.dshopinfo.360a7122fKjW1Y&#34;&gt;Hoppetta 纱布被盖/竹纤维包巾&lt;/a&gt;：家人在宝宝还未出生时赠送的礼盒，无论是纱布材质透气舒适的质感，还是实用上，都无可挑剔。&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://item.jd.com/100256231734.html&#34;&gt;love to dream 睡袋&lt;/a&gt;：宝宝刚出生需要打襁抱才能睡的安稳。稍大时使用了 “鸡翅”睡袋，提供安全感，有助入睡。但回过头来看录像，睡袋短期可以通过襁抱的原理避免了惊跳反应对睡眠的影响，但长期会不会反而阻碍了孩子吃手自我安抚的能力发展？&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://item.jd.com/100010364749.html&#34;&gt;jollybaby 布书&lt;/a&gt;：小区闲置群赠送的布书，每次出门遛娃都会带上，宝宝也会“装模作样”地看的起劲。有趣的是，不管多大，每次陪着他一起阅读，指着小猪大声念中英文时，他总会“莫名其妙”地咯咯大笑。&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://item.jd.com/10172225812147.html&#34;&gt;新安怡（AVENT）水温计&lt;/a&gt;：洗澡放水时，通过可视化的水温数字 &amp;ndash; 直观的颜色显示（蓝/绿/红），避免水温过热或过冷对宝宝造成伤害。&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://item.jd.com/100003617617.html&#34;&gt;费雪安抚酣睡小水獭&lt;/a&gt;：人民币 200+ 的售价着实不便宜，实话实说，对宝宝睡眠几乎没有帮助。但一键播放舒缓睡眠曲音乐，对安抚绝望的大人照料者倒是效果显著，所以最终留了下来。&lt;/li&gt;&#xA;&lt;li&gt;宜家儿童用品：宜家的玩具价廉物美，无论从安全性和可玩性，都令人万分放心。下面是我们购入的部分商品列表：&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.ikea.cn/cn/zh/p/leka-lei-qia-ying-er-you-xi-jia-hua-mu-xiao-he-ban-duo-se-30575082/&#34;&gt;LEKA 雷卡婴儿游戏架&lt;/a&gt;：俗称「宜家健身架」，宝宝学会坐后反而更喜欢，每次可硬控十分钟左右。&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.ikea.cn/cn/zh/p/gulliver-gu-li-fu-ying-tong-chuang-hua-mu-50248517/&#34;&gt;GULLIVER 古利福婴童床&lt;/a&gt;：选择的原因在于提供三种模式供调节，在宝宝快会站时可将床架放低。&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.ikea.cn/cn/zh/p/vallaby-wa-la-bi-di-tan-lu-se-90548217/&#34;&gt;VALLABY 瓦拉比地毯&lt;/a&gt;：价格便宜，可机洗。&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.ikea.cn/cn/zh/p/sandbi-sang-de-bi-er-tong-you-xi-dian-si-kan-de-na-wei-ya-de-zi-ran-feng-guang-duo-se-10564485/&#34;&gt;SANDBI 桑德比儿童游戏垫&lt;/a&gt;：游戏垫四角存在巧妙设计，例如触摸可发出声音的塑料小蜜蜂。派派刚能稳定抬头时，便可以玩挺久。&lt;/li&gt;&#xA;&lt;li&gt;&amp;hellip;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/1.png&#34; alt=&#34;1&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;二婴儿外出用品&#34;&gt;二、婴儿外出用品&lt;/h2&gt;&#xA;&lt;h3 id=&#34;婴儿推车bugaboo-小蝴蝶2&#34;&gt;婴儿推车（BUGABOO 小蝴蝶2）&lt;/h3&gt;&#xA;&lt;p&gt;对婴儿来说，大自然的声音、光线和气味等是最好的感官刺激，户外充足的放电对好的睡眠也起到至关重要的作用，因此拥有一款便捷耐用的婴儿推车必不可少。&lt;/p&gt;&#xA;&lt;p&gt;下面为进入决赛圈的常见热门推车列表，但相比于花时间在网上做功课，更推荐直接去线下亲身试用体验，平衡实用与便携，选择最合适自己的一款。&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;品牌 / 型号&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: right&#34;&gt;重量&lt;/th&gt;&#xA;          &lt;th&gt;备注&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Hauck 碳纤维&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: right&#34;&gt;5.5 KG&lt;/td&gt;&#xA;          &lt;td&gt;- 轻便；太轻了；安全带粗糙&lt;br&gt;❌ 过轻，贴牌产品&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;UPPAbaby minu3&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: right&#34;&gt;7.6 KG&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;BUGABOO 小蝴蝶2（最终选择）&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: right&#34;&gt;7.3 KG&lt;/td&gt;&#xA;          &lt;td&gt;- 角度：105–160&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;CYBEX Orfeo 小飞机&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: right&#34;&gt;6.3 KG&lt;/td&gt;&#xA;          &lt;td&gt;- 安全带一拉就收&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;CYBEX melio3 pro 2024&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: right&#34;&gt;5.9 KG&lt;/td&gt;&#xA;          &lt;td&gt;- 安全带一键收紧；双向推车&lt;br&gt;❌ 质感过于塑料，性价比低，旧产品库存。&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;yoyo3&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: right&#34;&gt;-&lt;/td&gt;&#xA;          &lt;td&gt;- 角度：六个月+&lt;br&gt;❌ 需要购买新生儿套件&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h3 id=&#34;汽车提篮与安全座椅&#34;&gt;汽车提篮与安全座椅&lt;/h3&gt;&#xA;&lt;p&gt;宝宝刚出生时，我们使用了朋友赠送的闲置 Cybex 提篮（注意提篮也存在有效期）。随着孩子逐渐长大，出于信任，更换了同品牌的 &lt;a href=&#34;https://item.jd.com/10033827107876.html&#34;&gt;Sirona Gi i-Size Plus&lt;/a&gt; —— 非常成熟的一款产品，除了价格小贵，实在挑不出其他任何毛病。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Python Dataclass 工作原理</title>
      <link>https://changchen.me/blog/20260102/python_dataclass_internals/</link>
      <pubDate>Fri, 02 Jan 2026 10:05:17 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20260102/python_dataclass_internals/</guid>
      <description>&lt;p&gt;近日 &lt;a href=&#34;https://pycoders.com/issues/715&#34;&gt;PyCoder&amp;rsquo;s Weekly&lt;/a&gt; newsletter 中看到的一篇好文章，简单分享一下阅读的笔记。&lt;/p&gt;&#xA;&lt;h2 id=&#34;基本概念&#34;&gt;基本概念&lt;/h2&gt;&#xA;&lt;p&gt;从下面的代码不难看出，dataclass 作为一个装饰器，接受用户自定义的类 cls 作为参数，进行一顿改动后返回。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;dataclass&lt;/span&gt;(cls):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#75715e&#34;&gt;# Modify cls...&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; cls&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;@dataclass&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Example&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    Pass&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;上面改动的核心逻辑依赖 &lt;code&gt;__annotations__&lt;/code&gt; 与 &lt;code&gt;exec&lt;/code&gt; 方法：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 1. to get names of the variables and the type hints&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(Example&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;__annotations__)  &lt;span style=&#34;color:#75715e&#34;&gt;# {&amp;#39;name&amp;#39;: str, &amp;#39;age&amp;#39;: int}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 2. to create the methods required for the class&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;namespace &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; {}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;exec(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;x = 1&amp;#39;&lt;/span&gt;, &lt;span style=&#34;color:#66d9ef&#34;&gt;None&lt;/span&gt;, namespace)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;print(namespace)  &lt;span style=&#34;color:#75715e&#34;&gt;# Output: {&amp;#39;x&amp;#39;: 1}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;简易版-__init__&#34;&gt;简易版 &lt;code&gt;__init__&lt;/code&gt;&lt;/h2&gt;&#xA;&lt;p&gt;竟然动态手动组装代码并塞入 cls 中。下面是一个简易版的 &lt;code&gt;__init__&lt;/code&gt; 方法实现：&lt;/p&gt;</description>
    </item>
    <item>
      <title>派派成长日记 #9 - 无齿之徒</title>
      <link>https://changchen.me/blog/20251229/paipai_seven_months/</link>
      <pubDate>Mon, 29 Dec 2025 18:45:42 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20251229/paipai_seven_months/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;你只是暂时不理他，并没有不管他&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;h1 id=&#34;马上七个月啦&#34;&gt;马上七个月啦&lt;/h1&gt;&#xA;&lt;p&gt;最近一个月的里程碑：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;第一次咯咯咯大声笑，第一次快速匍匐爬动&lt;/li&gt;&#xA;&lt;li&gt;第一次吃米粉，第一次吃苹果泥&lt;/li&gt;&#xA;&lt;li&gt;第一次展现出粘人（依恋）&lt;/li&gt;&#xA;&lt;li&gt;第一次睡整觉（8pm-8am），第一次分房睡&lt;/li&gt;&#xA;&lt;li&gt;第一次一夜没有尿（询问医生为正常现象，睡的好+身体神经发育逐步成熟）&lt;/li&gt;&#xA;&lt;li&gt;&amp;hellip;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;睡整觉&#34;&gt;睡整觉&lt;/h1&gt;&#xA;&lt;p&gt;从出生开始，婴儿的睡眠问题，便一直困扰着新手父母。&lt;/p&gt;&#xA;&lt;p&gt;进入六月龄之后，频繁的夜醒，白天小觉时间短等问题，严重影响了大人的作息 &amp;mdash;&amp;mdash; 夜醒一般不太会影响到孩子的生长发育，但是，夜醒会严重影响到我们家长的睡眠质量。&lt;/p&gt;&#xA;&lt;p&gt;得益于国内便利的互联网医疗，线上询问神医后（新华医院李锋），做出如下改变：&lt;/p&gt;&#xA;&lt;h3 id=&#34;1基本逻辑&#34;&gt;1）基本逻辑&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;六月龄的宝宝，即使母乳喂养，也有可能会睡整觉。整觉时间约是晚上21点-第二天7点（大部分是这样）&lt;/li&gt;&#xA;&lt;li&gt;无法睡整觉的原因：婴儿睡眠周期短，只有入睡的时候什么帮助都没有，就让他自己自己入睡，才能睡得久（三个月之后不要奶睡也不要抱睡，白噪音不需要安抚巾一般最好也不用，宝宝自己吃手入睡）。所以建立健康的睡眠关联，主动培养学习自主入睡能力，才能让婴儿&lt;mark&gt;克服睡眠周期转换的入睡障碍&lt;/mark&gt;，最终睡的更好。&lt;/li&gt;&#xA;&lt;li&gt;关于哭闹：他哭闹的话，就让他哭一下，不要一哭就抱。不要一哭一哭闹就睬他。你可以陪他玩，但是你不要抱。// 简而言之将孩子视作大人，想象你的成年伴侣在睡觉的时候，一直哭闹你会怎么办。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;2作息调整&#34;&gt;2）作息调整&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;白天：三觉并两觉，上午 9-11 点之间睡个小觉，13-16 点之间睡个小觉，傍晚 16-20 点之间最好不要睡了。// 同时多趴，多运动，少抱。&lt;/li&gt;&#xA;&lt;li&gt;夜间：从 19 点入睡 -&amp;gt; 20-21 点入睡（睡觉前 30 分钟不进食）。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;3立竿见影神医&#34;&gt;3）立竿见影（神医）&lt;/h3&gt;&#xA;&lt;p&gt;&lt;mark&gt;短短一周后&lt;/mark&gt;，凌乱的作息逐步规律：白天睡的更久，夜间也顺利睡了整觉。但是因为大人“立规矩”，还是自身生理发育，自然产生的结果呢？&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;（更新于一个月后：宝宝自从开始&lt;/em&gt;学会&lt;em&gt;睡整觉好，再也没有夜醒）&lt;/em&gt;&lt;/p&gt;&#xA;&lt;img width=&#34;300&#34; src=&#34;https://changchen.me/images/blog/global/17665592277954.jpg&#34; /&gt;&#xA;&lt;h3 id=&#34;4分房睡&#34;&gt;4）分房睡&lt;/h3&gt;&#xA;&lt;p&gt;宝宝开始稳定睡整觉后（8pm-8am），便很自然地与大人分房睡。父母不用再担心翻身或打呼的声响吵到宝宝，宝宝也不会因为闻到妈妈的味道而想喝奶安抚，双方都拥有了更加安稳的睡眠。&lt;/p&gt;&#xA;&lt;img width=&#34;300&#34; src=&#34;https://changchen.me/images/blog/global/19D7B8FE-442A-47CA-8CCA-58CC05B5F9AD.2025-12-22%2010_58_50.gif&#34; /&gt;&#xA;&lt;h1 id=&#34;like-your-smile&#34;&gt;Like your smile&lt;/h1&gt;&#xA;&lt;p&gt;某日中午外出就餐时，派宝一直盯着隔壁桌的陌生叔叔阿姨笑。尴尬之余，没料道到对方将小朋友，通过漫画的形式，记录下来并送给了我们。&lt;/p&gt;&#xA;&lt;img height=&#34;350&#34; src=&#34;https://changchen.me/images/blog/global/43E5DA7F-C986-4F49-BC4B-51A5C5F4B108_1_105_c.jpeg&#34; /&gt;&#xA;&lt;h1 id=&#34;拖鞋&#34;&gt;拖鞋&lt;/h1&gt;&#xA;&lt;p&gt;相比于大人购买的色彩斑斓玩具，宝宝却钟爱拖鞋（衣架，衣服标签等），一不留神便被他抓起兴奋地舔舐鞋底。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/17673249656518.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;碎碎叨&#34;&gt;碎碎叨&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;如果每天玩半小时逗逗小孩，确实乐趣无穷，但如果变成“工作”全天陪伴，就会让人感到疲惫不堪。&lt;/li&gt;&#xA;&lt;li&gt;有时候觉得小乖很逗，仔细一想，可能是因为他像个小大人的特有气质，皱着眉头，仿佛总有很多自己的想法。&lt;/li&gt;&#xA;&lt;li&gt;圣诞 &amp;amp; 新年快乐🎄&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>派派成长日记 #8 - 憔悴的妈，崩溃的爸，兴奋的娃</title>
      <link>https://changchen.me/blog/20251127/paipai_six_months/</link>
      <pubDate>Thu, 27 Nov 2025 09:38:28 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20251127/paipai_six_months/</guid>
      <description>&lt;h1 id=&#34;派派半岁啦&#34;&gt;派派半岁啦&lt;/h1&gt;&#xA;&lt;p&gt;最近一个月的里程碑：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;第一次从趴着翻身为躺着&lt;/li&gt;&#xA;&lt;li&gt;第一次拍睡，第一次自主入睡，第一次一边抓着自己的脚一边睡着了…&lt;/li&gt;&#xA;&lt;li&gt;第一次过万圣节（南瓜派）&lt;/li&gt;&#xA;&lt;li&gt;第一次一起尝试自助餐&lt;/li&gt;&#xA;&lt;li&gt;第一次开车回老家（很勇敢在安全座椅上全程七小时没有哭闹）&lt;/li&gt;&#xA;&lt;li&gt;&amp;hellip;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;回老家&#34;&gt;回老家&lt;/h1&gt;&#xA;&lt;p&gt;天气逐渐变冷，趁着深冬前驱车回了一趟老家台州。路途虽然顺利，但派宝在爷爷奶奶一声声宝贝与无尽的抱抱中迷失了自我。老房子隔音一般，为了不打扰他人，每次夜醒采用了饱和式喂奶策略。最终导致了恶性循环，频繁的夜醒与逐日减少的睡眠时间 :|&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/9FA69051-A065-41F5-90E5-A323298B7C7B.jpeg&#34; alt=&#34;9FA69051-A065-41F5-90E5-A323298B7C7B&#34;&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Now we pause and listen, if she needs us we will know and we’ll go and see her, if she’s just making a bit of noise but seems otherwise in a sleepy state, we leave her be and she often goes back to sleep herself.&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;回到上海后，疲惫的我们下定决心改变现状。新的策略简单粗暴：“&lt;strong&gt;什么也不做&lt;/strong&gt;” - 当孩子疲惫哭闹时，坚决不抱起，在旁边陪伴片刻，然后安静地离开房间耐心观察（每隔 5~10 分钟进入看一下宝宝）。&lt;/p&gt;&#xA;&lt;p&gt;有的人惊讶怎么能让宝宝哭？？！！但作为一个与婴儿朝夕相处了六个月的家长，个人&lt;em&gt;不觉得&lt;/em&gt;让一个快六个月具备自主入睡能力的宝宝哭，甚至哭到睡觉是一个残忍或不可理喻的事情。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;自主入睡&lt;/strong&gt;：溺爱事实上剥夺了孩子学会自主入睡的机会（睡整觉的关键）。抱着走变着法摇晃哄睡，以为在帮助他，实际上可能会让情况变得更糟糕，干扰宝宝的入睡。一些睡眠书籍把它比作当你想要入睡时有人不断戳你。。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;区别哭声&lt;/strong&gt;：需求未满足导致的大声尖叫，还是嗯嗯唧唧释放压力。如果满足了所有需求（提供了白噪音、安抚巾、舒服的婴儿床，适宜的温度、以及香甜可口自助畅饮的母乳、&amp;hellip;），宝宝哭只是因为他累了，却很难入睡，但他必须学会如何独立入睡。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;相互尊重&lt;/strong&gt;：如果孩子与父母一边或双方都很疲惫崩溃，那大概率某个环节出了问题，需要改变。孩子也需要尊重大人休息的权利。有人说“多抱抱孩子，好好享受与宝宝在一起的珍贵时光，因为不久之后，宝宝就会独立不再那么依赖你了” &amp;mdash;&amp;mdash; 自我感动，付出越多，只会让孩子一直无休止地索求。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;一致性&lt;/strong&gt;：与家人达成一致后，白天与夜间都需要保持一致的策略。假设你正在教孩子自己入睡，你已经每10分钟进来查看和安抚孩子。在孩子哭了45分钟之后，你感到精疲力竭，无法忍受了。于是你抱起孩子，带到你的床上。你刚刚教了孩子什么？你只是教给他，如果他哭的时间足够长，你会进来抱起他。所以第二天晚上会发生什么？他哭的时间会更长。因为他已经知道，如果他哭的时间足够长，你最终会进来抱起他。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;幸运的是，宝宝每次哭的时间越来越短：&lt;/p&gt;</description>
    </item>
    <item>
      <title>[读后感]《美国儿科学会睡眠手册》</title>
      <link>https://changchen.me/blog/20251124/sleep_what_every_parent_needs_to_know/</link>
      <pubDate>Mon, 24 Nov 2025 17:48:38 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20251124/sleep_what_every_parent_needs_to_know/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;以我多年上班的经验来说，带孩子就和谈恋爱一样，过度的关注，尽心的投入，最后遍体鳞伤，适时给予回应，但是漫不经心，不当回事，反而有意外收获。&lt;/p&gt;&#xA;&lt;p&gt;&amp;mdash;   蕾蕾杨（婴王）&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;“网红医生”崔玉涛翻译的书籍，译文流畅简洁，内容干货满满。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/8E5AAD6A-3D03-42ED-A556-67456CE52C74_1_105_c.jpeg&#34; alt=&#34;8E5AAD6A-3D03-42ED-A556-67456CE52C74_1_105_c&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;读书笔记：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;作为家长，你应该考虑做什么能让孩子&lt;strong&gt;长期受益&lt;/strong&gt;。即使这可能会是一段痛苦的过程，我保证最后一定是值得的。所以把电视从宝宝卧室里拿走，让宝宝戒掉半夜起来喝奶的习惯，他&lt;strong&gt;迟早会感激你的&lt;/strong&gt;。&lt;/li&gt;&#xA;&lt;li&gt;孩子出现睡眠问题，可能始于家长们提供了太多不必要的夜间喂养、安抚或者其他刺激。随着这些行为的持续，&lt;strong&gt;孩子们就会一直无休止地索求&lt;/strong&gt;。&lt;/li&gt;&#xA;&lt;li&gt;宝宝的生活是有规律的，但是这不意味着你要恪守一个严格的日程表。而且，你的宝宝越按照预期的顺序进行，那么当出现意外情况时，越容易处理。&lt;/li&gt;&#xA;&lt;li&gt;孩子们非常聪明。但在生活中需要有规矩让他们知道什么是适当的行为，什么是不适当的行为。假设你正在教孩子自己入睡，你已经每10分钟进来查看和安抚孩子。在孩子哭了45分钟之后，你感到精疲力竭，无法忍受了。于是你抱起孩子，带到你的床上。你刚刚教了孩子什么？&lt;strong&gt;你只是教给他，如果他哭的时间足够长，你会进来抱起他&lt;/strong&gt;。&lt;/li&gt;&#xA;&lt;li&gt;&lt;mark&gt;“睡整夜”用词不准确。包括宝宝在内的每个人，在夜间都会周期性地醒来。&lt;strong&gt;你的目标是帮助宝宝学会醒来后自己再次入睡&lt;/strong&gt;。&lt;/mark&gt;&lt;/li&gt;&#xA;&lt;li&gt;相比于奶粉喂养，母乳喂养的孩子通常喂养次数更多。&lt;/li&gt;&#xA;&lt;li&gt;添加辅食和睡整夜觉之间没有任何关联。&lt;/li&gt;&#xA;&lt;li&gt;在2岁前，最好不要让孩子看电视、手机，最好的活动是看书和讲故事。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;没有必要一听到孩子的哭声就冲到宝宝床前，也不要让宝宝一直难受地哭几个小时&lt;/strong&gt;。每晚宝宝都会在半清醒时常规地哭几嗓子或者迷迷糊糊地说话。在大部分情况下，他们能自己入睡。随着你对宝宝了解的加深，你会很快学会辨别孩子的哭声，比如哪种声音是她自我安抚，哪种声音是饥饿，哪种声音是不舒服，哪种声音是生气想让你去关注她。&lt;/li&gt;&#xA;&lt;li&gt;每次看宝宝时一定不要把他抱起来。如果你将他抱起来，他就会想让你长时间地抱着她，一旦你想放下让他自己入睡，他会再次哭起来；这样的话，说子就更没有睡意了。&lt;/li&gt;&#xA;&lt;li&gt;不良的睡眠习惯：1）允许宝宝边吃边睡；2）抱着、摇着宝宝入睡；3）让宝宝在父母床上入睡。 &amp;mdash; 这些做法形成的睡眠联结，会导致孩子在夜间醒来后，&lt;strong&gt;很难自己再次入睡&lt;/strong&gt;。 // 保持一致的睡觉环境。&lt;/li&gt;&#xA;&lt;li&gt;哭泣让宝宝放松：许多宝宝在爸爸妈妈刚离开时会哭得非常厉害。大多数情况下，几步料后哭声会突然停止，并且宝宝开始安抚自己入睡。这是宝宝在接受了一天的各种外界刺激后，释放情绪的一种方式。宝宝第一次哭的时候，不要立即去安抚她，因为她可能不需要额外关注。相反地，她需要一小段时间独处，以整理纷乱的感受和印象。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;宝宝睡整觉是每个心力憔悴父母的终极目标，而该挑战的核心在于「自主入睡」能力的培养。当婴儿所有生理需求被满足后，请选择适当放手，在成长伴随的短暂阵痛后，换来的是整个家庭长期的幸福与健康。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/6690E5C4-0367-4991-A979-090829434FE5_1_105_c.jpeg&#34; alt=&#34;6690E5C4-0367-4991-A979-090829434FE5_1_105_c&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>派派成长日记 #1 - Hello World 🐣</title>
      <link>https://changchen.me/blog/20251103/paipai_hello_world/</link>
      <pubDate>Mon, 03 Nov 2025 19:29:58 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20251103/paipai_hello_world/</guid>
      <description>&lt;p&gt;与母亲（派派奶奶）谈起我的出生，她总说那天的雨特别大，好像昏昏沉沉睡了一觉，你自己就出来了。然而实际情况却是惊险万分，人们不自觉地遗忘或淡化痛苦的记忆，所以趁早记录奶爸视角的生产流水账。&lt;/p&gt;&#xA;&lt;h1 id=&#34;名词解释&#34;&gt;名词解释&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;第一产程（开宫口期）：从规律宫缩开始到宫口完全开全（开到 10 厘米，俗称十指）。这是最长的阶段，初产妇约 8-12 小时，经产妇约 6-8 小时。分为潜伏期和活跃期。&lt;/li&gt;&#xA;&lt;li&gt;第二产程（胎儿娩出期）：从宫口完全开全到胎儿娩出。初产妇约 1-2 小时，经产妇约 30 分钟左右。这是用力时期，需要产妇配合用力将胎儿娩出。&lt;/li&gt;&#xA;&lt;li&gt;第三产程（胎盘娩出期）：从胎儿娩出到胎盘完全娩出。通常持续 5-30 分钟。这一阶段主要是娩出胎盘和胎膜。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;第一产程开宫口期&#34;&gt;第一产程（开宫口期）&lt;/h1&gt;&#xA;&lt;h2 id=&#34;急诊--产检39w5&#34;&gt;急诊 &amp;amp; 产检（39w+5）&lt;/h2&gt;&#xA;&lt;p&gt;当天清晨，天还未亮发现见红（产前征兆），立即驱车赶往急诊，医生检查无恙后，安心继续上午约定的常规产检。虽然未见明显宫缩，但较为幸运，产检医生先见之明直接开单住院观察，避免了俺们后续奔波再跑一趟。&lt;/p&gt;&#xA;&lt;p&gt;中午进入住院部登记后，等待双人间遥遥无期，果断入住最后一间单人间（高科西路宝格丽）。数小时后 CC 出现规律宫缩，便与俺分开，被推着轮椅，拉去了待产室。&lt;/p&gt;&#xA;&lt;h2 id=&#34;待产室39w5&#34;&gt;待产室（39w+5）&lt;/h2&gt;&#xA;&lt;p&gt;待产室是所有孕妇一起等待开指的大房间（据描述摆放着十多张床）。在等待宫口完全开全的过程中，因为不清楚开指的速度，准爸爸一夜未眠，CC 更是辛苦，规律的宫缩带来了物理上无法想象的痛苦，然而心理上的煎熬更令人折磨。&lt;/p&gt;&#xA;&lt;p&gt;凌晨天微亮时，经历大约十多个小时的开宫口期，终于开始进入了产房陪产。&lt;/p&gt;&#xA;&lt;h1 id=&#34;第二产程胎儿娩出期-第三产程胎盘娩出期&#34;&gt;第二产程（胎儿娩出期）&amp;amp; 第三产程（胎盘娩出期）&lt;/h1&gt;&#xA;&lt;h2 id=&#34;产房39w6&#34;&gt;产房（39w+6）&lt;/h2&gt;&#xA;&lt;p&gt;进入产房后，一阵阵宫缩带来的剧烈疼痛让 CC 脸上直冒冷汗。数小时的拉扯中，由于身体比较僵硬，导致派派的头一直出不来。经验丰富的助产师让 CC 侧着身子生产，终于将派派慢慢地拉出（字面意思的拉出）。&lt;/p&gt;&#xA;&lt;p&gt;派派一出生后还未来及打屁股，便嗷嗷大哭（小青蛙的声音），配上褶皱的皮肤，如同一个眼神中满是幽怨的小老头，似乎在控诉为什么把他从温暖舒适的子宫中强行搬家。&lt;/p&gt;&#xA;&lt;p&gt;与妈妈肌肤贴贴了十来分钟，依旧眉头紧锁，不知道小小的你在想什么呢。&lt;/p&gt;&#xA;&lt;h2 id=&#34;病房39w6&#34;&gt;病房（39w+6）&lt;/h2&gt;&#xA;&lt;p&gt;回到病房倒在沙发上长舒一口气。感谢群组化课程、妈妈的意志力、宝宝的配合、以及所有医护人员的专业。希望宝长大以后，也能靠自己的专业给世界带来美好 &amp;lt;3&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/93DDCC32-4280-409A-A45F-FF7FE9C48211_1_201_a.jpeg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>派派成长日记 #6 - “摆烂”（120-150天）</title>
      <link>https://changchen.me/blog/20251026/paipai_five_months/</link>
      <pubDate>Sun, 26 Oct 2025 11:31:38 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20251026/paipai_five_months/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&amp;ldquo;Our adult lives are filled with pain and discomfort. They are part of life. &amp;quot; &lt;br&gt;&#xA;— Children the Challenge&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;很多个安静的深夜，房间里只剩空调运作的嗡嗡声，老父亲拖着疲倦的身体辗转反侧难以入眠时，便开始翻小乖（派派）刚出生时的照片。那时的他被羊水泡的褶皱，眼睛还睁不太开，小小一只蜷缩襁褓中，看上去楚楚可怜。于是脑海中便不断冒出一个想法：请丢掉所有的规则枷锁，无条件地奶睡抱睡他，满足他的一切需求。&lt;/p&gt;&#xA;&lt;p&gt;有趣的是，第二天我读到&lt;a href=&#34;https://changchen.me/blog/20250926/children_the_challenge/&#34;&gt;《孩子：挑战｜Children: The Challenge》&lt;/a&gt; 第 21 章 Avoid That First Impulse: Do the Unexpected，刚好回答了我的困惑和犹豫。文中分享了一个小故事：“三周大的 Donna 每次一哭，妈妈就冲进去抱她安抚她，等她重新入睡后再将她放到小床中，最后陷入无尽的「哭-抱」循环。。” 为什么这种行为不可取？因为它导致宝宝不自主掌握了一门“武器”：每次只要想大人抱抱就开始大哭。每次一哭就有人抱的事实，让婴儿进一步不由自主地索取关注和服务。虽然将香香糯糯的婴儿抱在手中，是一件无比美妙的事情，但有没有可能反而剥夺了他休息的权利（干扰婴儿正常的休息周期与入睡技能的习得），同时不利于他们在这个世界上摆正自己的位置（认为有权得到他想要的任何东西）。孩子需要理解不是所有需求都能立即被满足，只有学习适应这个世界的规律和秩序，才能让彼此都过得舒适。&lt;del&gt;毕竟成人的生活就是充满了无奈与痛苦&lt;/del&gt;&lt;/p&gt;&#xA;&lt;p&gt;与孩子相处数月，对他的哭声基本免疫后，个人认为关键点在于“无条件回应”不等于“无条件满足需求”，例如无条件的奶睡抱睡无法让孩子养成良好的睡眠习惯，不利用婴幼儿与抚养者共同的长远利益。&lt;/p&gt;&#xA;&lt;h1 id=&#34;派派-150-天啦&#34;&gt;派派 150 天啦🐣&lt;/h1&gt;&#xA;&lt;p&gt;最近一个月的里程碑：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;第一次主动展示微笑：目不转睛看着我们吃早餐煎饼时，馋的露出了谄媚的微笑&lt;/li&gt;&#xA;&lt;li&gt;第一次学会了反向翻身，一不留神就在地上滚出了好远&lt;/li&gt;&#xA;&lt;li&gt;第一次午休不用接觉一次性睡了一个半小时&lt;/li&gt;&#xA;&lt;li&gt;第一次趴着睡着，第一次小脚翘着搭在婴儿床围栏上睡着了..&lt;/li&gt;&#xA;&lt;li&gt;第一次开始认人，似乎通过摸下巴的胡渣，来判断是妈妈还是爸爸&lt;/li&gt;&#xA;&lt;li&gt;第一次吃到了自己的小脚丫 &amp;amp; 第一次一起吃西贝 ;)&lt;/li&gt;&#xA;&lt;li&gt;第一次拿起乒乓球拍&lt;/li&gt;&#xA;&lt;li&gt;&amp;hellip;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/963B7D0E-D6C0-4F9C-9ECE-578F24FDB2E5_1_102_a.jpeg&#34; alt=&#34;963B7D0E-D6C0-4F9C-9ECE-578F24FDB2E5_1_102_a&#34;&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;可怕的四月睡眠倒退&#34;&gt;可怕的四月睡眠倒退&lt;/h1&gt;&#xA;&lt;p&gt;原以为已经成为掌管睡眠的神，形势一切稳中向好，结果迎来了四月睡眠倒退+厌奶（大运动发展➕睡眠阶段转变），直接让我们陷入深渊。但除了「熬」似乎也没有太多的办法。&lt;/p&gt;&#xA;&lt;p&gt;当孩子晚上睡到一半，一个翻身醒来睁着大眼睛看着你，有种既生气又好笑的无奈感。&lt;/p&gt;&#xA;&lt;h1 id=&#34;作息之摆烂&#34;&gt;作息之“摆烂”&lt;/h1&gt;&#xA;&lt;p&gt;虽然个人认同即使咿呀学语的小婴儿也需要保持规律的作息，不仅可以给他带来秩序感与安全感（自由的基础），还可以维持家庭舒适运转。然而，过于苛刻的固定作息反而成为了我们的枷锁与负担，因为生活中存在太多变量，例如婴儿动态的睡眠时长与频繁的外出。&lt;/p&gt;&#xA;&lt;p&gt;因此这个月作出一定改变：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;睡眠：&lt;strong&gt;清醒间隔&lt;/strong&gt;驱动，例如上一觉睡醒后两小时便在宝宝安静而不是哭闹的时候就开始哄睡。效果显著，即使宝宝看上去十分清醒，但 95% 的情况下会很快进入梦乡。&lt;/li&gt;&#xA;&lt;li&gt;喂养：按需喂养 - 母乳亲喂自助餐无限畅饮😋&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;P.S. 有趣的是，丢掉固定时间表后，反而&lt;strong&gt;自然地&lt;/strong&gt;形成了形成了一定“规律”。&lt;/p&gt;&#xA;&lt;p&gt;针对预期外的需求，同时也不要过于死板，记得灵活变通：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;奶睡：某天宝宝还没有到睡眠间隔（例如上一觉才睡觉一小时不到），就在吃奶后睡着，我会告诉自己：他现在可能真的太困太累了。母乳喂养已经很辛苦了，奶睡就当是大自然赠予的礼物。&lt;/li&gt;&#xA;&lt;li&gt;抱睡：某天宝宝放入小床中时，不知为何生气到失语爆哭，我会告诉自己他今天可能真的非常非常需要我，让他在我的怀里睡个半小时也不会世界末日。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h1 id=&#34;安抚道具&#34;&gt;安抚道具&lt;/h1&gt;&#xA;&lt;p&gt;每个孩子都是独一无二的，周末与朋友聊起他们家的女儿的睡眠情况：他家孩子从出生开始就从来不需要哄睡，抓着“棉毛衫”（每个孩子独特的安抚道具）就可以自己入睡。对于我们来说简直就是天方夜谭。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Postmortem of My Journey at Autodesk</title>
      <link>https://changchen.me/blog/20251005/postmortem_my_journey_in_autodesk/</link>
      <pubDate>Sun, 05 Oct 2025 20:00:00 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20251005/postmortem_my_journey_in_autodesk/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Sometimes when you lose, you win.&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;As an SRE (Site Reliability Engineer), switching jobs is extremely risky - comparing it to a production change without any canary strategy or rollback option! However, YOLO (you only live once), just embrace and enjoy the risks.&lt;/p&gt;&#xA;&lt;p&gt;After joining Autodesk for 1y5m, our entire product team at the Shanghai site was impacted by a global reduction in force. My biggest disappointment is that I had just built solid domain knowledge and picked up new technical skills to start making a real impact. However, my time at Autodesk has been really rewarding, I learned more than I ever expected, worked with truly talented and professional teams and built friendships I’ll carry for life &amp;lt;3&lt;/p&gt;</description>
    </item>
    <item>
      <title>[读后感]《Children: The Challenge｜孩子：挑战》</title>
      <link>https://changchen.me/blog/20250926/children_the_challenge/</link>
      <pubDate>Fri, 26 Sep 2025 11:25:16 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20250926/children_the_challenge/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;&amp;ldquo;We do not suggest that parents be either permissive or punitive. What parents have to learn is how to become a match for their children, wise to their ways and capable of guiding them without letting them run wild or stifling them.&amp;rdquo;&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;想象你第一次为人父母，全身心投入照顾天使般的孩子👶。在你精心的呵护下他（她）茁壮成长，但亲子关系却没有想象中的和谐🥲。一天，面对孩子的不断“挑衅”时，你隐隐觉得不能再像父辈那样粗暴地对待他们（打骂），忍无可忍却又无计可施。。&lt;/p&gt;&#xA;&lt;p&gt;上述场景在日常生活中再熟悉不过。如果你和我一样，都非常好奇导致这种困局的原因和解决办法，希望可以一起在这本书中寻找到答案。&lt;/p&gt;&#xA;&lt;p&gt;出乎意外，这竟是一本出版在 1964 年的书籍？！为表尊重，特地读了英文原版。本篇文章是个人的简短笔记。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/B9075F8F-BECD-4A9B-90A8-055AB68CBED9_1_105_c.jpeg&#34; alt=&#34;B9075F8F-BECD-4A9B-90A8-055AB68CBED9_1_105_c&#34;&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;1-our-present-dilemma&#34;&gt;1. Our Present Dilemma&lt;/h1&gt;&#xA;&lt;p&gt;想象下面的场景：7 岁的小朋友，带着 5 岁的弟弟，兴奋的跑进厨房，熟练地爬到灶台上。作为家长的你生气对他大吼：“你不能这么做！！”，但他们大声尖叫着拿走了棉花糖，然后一路小跑离开了厨房。留下在原地心烦意乱却无计可施的你。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&amp;ldquo;children are to be seen and no heard&amp;rdquo;&#xA;democracy is not just a political ideal, but a way of life&lt;/p&gt;</description>
    </item>
    <item>
      <title>派派成长日记 #5 - 成为掌管睡眠的神（90-120天）</title>
      <link>https://changchen.me/blog/20250924/paipai_four_months/</link>
      <pubDate>Wed, 24 Sep 2025 20:21:34 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20250924/paipai_four_months/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;每个孩子都是独特的，其发展速度不尽相同。&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;h1 id=&#34;派派-120-天啦-&#34;&gt;派派 120 天啦 🐣&lt;/h1&gt;&#xA;&lt;p&gt;不知不觉派派已经出生 120 天。小伙子每日肉眼可见的长大，特别是在弯腰将他抱起的那一刻感受最深。。。最近一个月的里程碑：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;第一次自己学会了翻身（但翻不回去..）&lt;/li&gt;&#xA;&lt;li&gt;第一次尝试了游泳&lt;/li&gt;&#xA;&lt;li&gt;第一次在自己的小床上自主入睡&lt;/li&gt;&#xA;&lt;li&gt;第一次抬头稳定超过一分钟 ☺️&lt;/li&gt;&#xA;&lt;li&gt;&amp;hellip;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Tips：避免焦虑与拔苗助长：“虽然存在大肌肉运动技能发展的里程碑，但我们应该谨慎使用；每个孩子都是独特的，其发展速度不尽相同。”。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/17585210623746.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;成为掌管睡眠的神-zzzz&#34;&gt;成为掌管睡眠的神 zZZZ&lt;/h1&gt;&#xA;&lt;p&gt;派派白天的小睡成为了过去三个月最为头疼的难题（小伙子如果不好好睡觉，大人也无法得到充分的休息）。&lt;/p&gt;&#xA;&lt;p&gt;通过不断的学习与实践，近期终于收获了一些改变。随着越来越规律的小睡，派派脸上露出发自内心的笑容（当然也时常伴随着令人崩溃的尖叫..）&lt;/p&gt;&#xA;&lt;p&gt;下面分享一些关于婴儿睡眠的学习笔记与实践：&lt;/p&gt;&#xA;&lt;h2 id=&#34;一建立吃-玩-睡的规律作息&#34;&gt;一、建立吃-玩-睡的规律作息&lt;/h2&gt;&#xA;&lt;p&gt;吃 &amp;amp; 玩 &amp;amp; 睡 三者密密相关，睡不好大概率是：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;没吃好&lt;/strong&gt;：例如频繁喂奶导致孩子变成了零食鬼👻，混淆了安抚与进食，反而在睡觉的时候饿肚子。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;没玩好&lt;/strong&gt;：例如出去溜圈放电半小时，或尝试游泳，回家后很快进入睡眠睡眠。以及鼓励两觉之间足够的俯卧时间也是类似的道理。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;参考《实用程序育儿法》中的 easy 程序实行规律作息后，最大的好处在于：婴儿出现哭闹时，可以根据当前的时间点，快速判断对应的需求（困了 or 饿了）。&lt;/p&gt;&#xA;&lt;p&gt;p.s. 下面是派派一天的作息（3m old）供参考：&#xA;&lt;img src=&#34;https://changchen.me/images/blog/global/17585216630722.jpg&#34; width=&#34;300&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;二提升哄睡技巧&#34;&gt;二、提升哄睡技巧&lt;/h2&gt;&#xA;&lt;p&gt;满足婴儿所有需求后，哄睡技巧也至关重要（&lt;em&gt;没有不会睡觉的宝宝，只有不会哄睡的父母&lt;/em&gt;）：&lt;/p&gt;&#xA;&lt;p&gt;哄睡步骤（4S 程序）：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;布置环境（Setting the Stag）：拉上窗帘，保持安静（白天也是，只要限制睡眠时长就不会昼夜颠倒）。&lt;/li&gt;&#xA;&lt;li&gt;裹襁褓（Swaddling）：我们使用的 love to dream 睡袋。&lt;/li&gt;&#xA;&lt;li&gt;静坐五分钟（Sitting），将脸埋进颈部或肩部（阻挡他的视线），不要摇晃，不要走动。“最多五分钟”原则：如果你的宝宝用不了四五分钟身体放松，那你就应该把他放下（四个月后）。&lt;/li&gt;&#xA;&lt;li&gt;嘘-拍法（shush）&#xA;&lt;ol&gt;&#xA;&lt;li&gt;因为这个阶段的宝宝，脑子里不能同时有三种想法，在被拍和听到嘘嘘声时，就无法把注意力集中到哭上面。&lt;/li&gt;&#xA;&lt;li&gt;可以试试偶尔小哭一会（不要超过一分钟），婴儿自己释放压力的途径。没有尝试 “抱起-放下法”（满三个月） 或 cry out&amp;hellip;（因为所谓见效快但争议大，可能影响亲子依恋关系）。&lt;/li&gt;&#xA;&lt;li&gt;白噪音：偶然发现宝宝听着吸尘器的声音很快进入深度睡眠，使用手机录音播放出现奇效。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;清醒间隔 &amp;amp; 接觉（编辑于 2025/10/12）：孩子如同一台机器般精准，例如派派白天的小睡如同定了闹钟般 30 分钟必醒，你需要做的是：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;尝试给孩子接觉（甚至设置闹钟提前等候），特别是午休那一觉。&lt;/li&gt;&#xA;&lt;li&gt;记录清醒间隔，例如清醒后 2 小时准备哄睡，避免孩子疲劳导致的过度兴奋。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;三鼓励自我安抚&#34;&gt;三、鼓励自我安抚&lt;/h2&gt;&#xA;&lt;h3 id=&#34;-常见的误区&#34;&gt;❌ 常见的误区：&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;抱睡&lt;/strong&gt;：1）放下难 - 易醒如同拆炸药包 2）如果父母养成反复安抚的习惯（比如来回摇晃哄着入睡），时间长了，就会阻碍宝宝某些能力的发展。调查显示：醒着被放在床上的婴幼儿比睡着再放入床上的婴幼儿，更容易睡的长久，而晚上醒两三次的可能性要小 3 倍。想象明明睡前在温暖的怀抱，睡醒时却在空无一物的婴儿床中的恐惧。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;奶睡&lt;/strong&gt;：1）恶性循环：导致宝宝把吮吸与睡眠联系在一起，教他自己入睡会更困难（中断了宝宝自我安抚入睡的过程）。那个时候，建立任何常规程序会非常困难。2）需求混淆：如果没有常规程序（吃 - 玩 - 睡），父母会把婴儿的吸吮需要和饥饿弄混淆（感触颇深）。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;清醒的时间越长越容易入睡&lt;/strong&gt;：过长的清醒时间导致宝宝习惯性过度疲劳，神经系统受到过度刺激，直至最后无法入睡（越疲惫越兴奋）。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;进食与睡眠的谬论&lt;/strong&gt;：对于大点的宝宝来说，睡前摄入的热量的多少与睡眠时间之间的关系没有那么明显（想象你自己睡前喝很多水也会不舒服）。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;-正常的做法&#34;&gt;✅ 正常的做法：&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;试着把宝宝放下（包含昏昏欲睡时），轻轻拍他，让他睡着，而不是等他完全睡着才将他放下。尽可能经常这样做，因为一旦宝宝习惯了自己入睡，就能有足够的空间来强化这一能力。&lt;mark&gt;这种方法初期需要你极大的耐心，但是后期的效果非常显著。&lt;/mark&gt;&lt;/li&gt;&#xA;&lt;li&gt;白天独立性的培养：宝宝在自娱自乐时，你应该做什么呢？答案是什么都不要做！就在那耐心等待，仔细观察。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;总而言之，如果不给宝宝&lt;mark&gt;足够的空间&lt;/mark&gt;去发展他的自我安抚能力，就不会知道每个宝宝特殊的入睡技巧（宝宝自己也不知道）。所以在养育的过程中要将眼光放长远，通过循序渐进的阶梯法，尽可能提供最小帮助，逐步培养婴儿自我安抚与独立睡眠的能力。&lt;/p&gt;</description>
    </item>
    <item>
      <title>[读后感]《美国儿科学会母乳喂养指南》</title>
      <link>https://changchen.me/blog/20250924/new_mothers_guide_to_breastfeeding/</link>
      <pubDate>Wed, 24 Sep 2025 14:04:02 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20250924/new_mothers_guide_to_breastfeeding/</guid>
      <description>&lt;p&gt;人类被称为哺乳动物，可见哺乳的独特和重要性，堪称大自然的奇迹之一。通过&lt;a href=&#34;https://book.douban.com/subject/36560415/&#34;&gt;《母乳喂养指南》&lt;/a&gt;，一窥母乳喂养的神奇一角。&lt;/p&gt;&#xA;&lt;h1 id=&#34;选择母乳喂养&#34;&gt;选择母乳喂养&lt;/h1&gt;&#xA;&lt;p&gt;在医院中，护士医生都推崇母乳亲喂，所以相比于配方奶，母乳喂养有哪些好处呢？&lt;/p&gt;&#xA;&lt;p&gt;对宝宝的好处：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;对免疫系统的好处：&#xA;&lt;ul&gt;&#xA;&lt;li&gt;母乳除了提供成长所需的几乎所有蛋白质、糖和脂肪，并含有有助于完善宝宝免疫系统的一些物质，包含抗体、免疫因子、酶以及白细胞等。甚至在母亲生病时，身体内抵抗细菌产生的抗体也会通过乳汁传给宝宝，增强抵抗力，避免宝宝被传染生病&lt;/li&gt;&#xA;&lt;li&gt;母乳有益于肠道健康：母乳含有寡糖，促进肠道中特定类细菌的生长，还能抑制有害细菌&lt;/li&gt;&#xA;&lt;li&gt;母乳能够防止宝宝过敏&lt;/li&gt;&#xA;&lt;li&gt;母乳喂养的宝宝在青春期和成年后肥胖的概率更小，他们患 1 型或 2 型糖尿病的风险也更低&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;对成长发育的好处：&#xA;&lt;ul&gt;&#xA;&lt;li&gt;产妇最开始分泌的乳汁，抗体水平较高，对脆弱的新生儿来说特别重要 // 俗称黄金初乳&lt;/li&gt;&#xA;&lt;li&gt;母乳喂养的孩子比人工喂养的孩子在智商测试中得分更高，在其他认知能力的测试中的表现更出色 😲&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;对心理健康的好处： // 情绪价值&#xA;&lt;ul&gt;&#xA;&lt;li&gt;亲密的身体接触获得安全感（特别是从黑暗的子宫中，来到了一个陌生嘈杂的新环境）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;对母亲的好处：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;母乳喂养还会刺激母亲身体分泌一系列激素，从而强化充满母爱的行为，获得极大的满足感和幸福感（催产素让心情平和，后叶催产素让母婴关系亲密）&lt;/li&gt;&#xA;&lt;li&gt;产后恢复更快：促进子宫收缩，减少产后出血&lt;/li&gt;&#xA;&lt;li&gt;自然减重：哺乳的妈妈通常比不哺乳的妈妈能更快地恢复到怀孕前的身材&lt;/li&gt;&#xA;&lt;li&gt;出门更方便，也更加的经济实惠 :p&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h1 id=&#34;完美的设计母乳喂养的机制&#34;&gt;完美的设计：母乳喂养的机制&lt;/h1&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;哺乳如同一场精细设计的华丽舞剧，你的身体会精确地向宝宝提供他所需的东西。&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;如何增加泌乳量？&lt;br&gt;&#xA;婴儿吃的越多，母亲产生的乳汁就越多（动态平衡）// 有事没事来一口&lt;/p&gt;&#xA;&lt;p&gt;宝宝的饥饿信号有哪些？&lt;br&gt;&#xA;处在一个房间，多接触（更好的了解宝宝的需求）&lt;/p&gt;&#xA;&lt;p&gt;母乳成分受什么影响？&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;乳汁是由乳房中的乳腺产生的，而非直接从妈妈食用的食物中产生。不必过于焦虑，保持健康均衡的饮食习惯即可。&lt;/li&gt;&#xA;&lt;li&gt;额外的热量 &amp;amp; 特殊的营养&#xA;&lt;ul&gt;&#xA;&lt;li&gt;额外的热量：母乳的妈妈每天要多摄入额外 400～500千卡热量 // 怪不得老婆最近食量大增&lt;/li&gt;&#xA;&lt;li&gt;额外的热量：1）多摄入一些钙和维生素 D 2）考虑从鱼中获取补充 DHA，但避免深海鱼的汞。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;咖啡 &amp;amp; 酒精：&#xA;&lt;ul&gt;&#xA;&lt;li&gt;咖啡需要节制：妈妈摄入的咖啡因进入母乳的不超过 1%，如果一天不超过 3 杯，在宝宝的尿中几乎检测不到咖啡因。但咖啡因会在宝宝身体内积累（不能像成人那样轻松排出），如果宝宝变得焦躁需要注意 // 谁知道呢？老婆在怀孕时每天一杯咖啡，但哺乳期间选择完全不摄入咖啡了。&lt;/li&gt;&#xA;&lt;li&gt;酒精需要谨慎：尽量在哺乳后喝 // 外国人胆子真大&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;哺乳初体验&#34;&gt;哺乳初体验&lt;/h1&gt;&#xA;&lt;p&gt;宝宝出生时，护士会将小不点立即放在母亲的腹部或胸部，如果利用宝宝的吸吮反射开始哺乳是最好的（加速乳汁分泌，刺激宝宝吮吸的本能）。&lt;/p&gt;&#xA;&lt;p&gt;建议尝试使用不同的姿势哺乳：1. 摇篮式 2. 交叉式 3. 仰卧式 4. 橄榄球式 5. 侧卧式 // 找到最舒适方式的方式进行母乳喂养（如果自己腰酸背痛，宝宝大概率也不舒服）&lt;/p&gt;</description>
    </item>
    <item>
      <title>[读后感]《婴幼儿及其照护者：基于尊重、回应和关系的心理抚养》</title>
      <link>https://changchen.me/blog/20250918/infants_toddlers_and_caregivers/</link>
      <pubDate>Thu, 18 Sep 2025 15:16:03 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20250918/infants_toddlers_and_caregivers/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;本文仅供个人学习参考，如婴幼儿遇到问题，请务必及时就医或咨询专业医生。&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;最近三周，趁着派派小睡的间隙，非常享受的读完了&lt;a href=&#34;https://book.douban.com/subject/26731285/&#34;&gt;《婴幼儿及其照护者》&lt;/a&gt;这本书，源源不断的启发让我有种沐春风般的感觉 ☺️&lt;/p&gt;&#xA;&lt;p&gt;如何正确陪伴婴幼儿同时，学会克制适度放手？如何正确构建依恋以及应对分离？婴儿一岁前的经历真的完全没有记忆吗？为什么对婴幼儿发脾气是一种非常糟糕的做法以及后果？等等问题，都能在书中找到答案～&lt;/p&gt;&#xA;&lt;p&gt;但书中令我觉得更为有趣的部分，是假如作为一名托儿所专业工作人员（照料者不是保姆，而是“塑造人的园丁”），如何肯定自己的工作价值？如何处理无法理解和反感部分家长选择托婴的矛盾情绪？如何面对和处理家长愤怒的质疑？:p&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/IMG_6941.jpeg&#34; alt=&#34;IMG_6941&#34;&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;一聚焦照料者&#34;&gt;一、聚焦照料者&lt;/h1&gt;&#xA;&lt;h2 id=&#34;第-1-章原则实践与课程&#34;&gt;第 1 章：原则、实践与课程&lt;/h2&gt;&#xA;&lt;p&gt;本书主要提倡 尊重的、回应的、互惠或双向的互动。&lt;/p&gt;&#xA;&lt;p&gt;换尿布为例：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;从正面视线走向婴儿&lt;/li&gt;&#xA;&lt;li&gt;放慢步伐（避免突然出现吓到宝宝）&lt;/li&gt;&#xA;&lt;li&gt;确认检查尿布前，眼神对话以及肢体语言交流 -&amp;gt; 建立联系&lt;/li&gt;&#xA;&lt;li&gt;行动之前告诉婴儿将要做什么，并耐心等待回应&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;进而促进照料者与孩子之间的&lt;strong&gt;依恋关系&lt;/strong&gt;，同时培养&lt;strong&gt;合作精神&lt;/strong&gt;🤔&lt;/p&gt;&#xA;&lt;h3 id=&#34;以尊重理念为基础的十项原则&#34;&gt;&lt;u&gt;以尊重理念为基础的十项原则？&lt;/u&gt;&lt;/h3&gt;&#xA;&lt;h4 id=&#34;原则一让婴幼儿参与到他们感兴趣的活动中&#34;&gt;原则一：让婴幼儿&lt;strong&gt;参与&lt;/strong&gt;到他们感兴趣的活动中&lt;/h4&gt;&#xA;&lt;p&gt;例如换尿布共同完成，而不是用玩具转移注意力（婴幼儿对自己感兴趣的事情，可以保持注意力很持久）&lt;/p&gt;&#xA;&lt;p&gt;通过引导关注自己的身体和换尿布这一行为，让这项活动成为“具有教育意义的经历”：注意力持续时间、身体意识、以及合作能力 -》人际关系方面的教育，进而构建人生观。&lt;/p&gt;&#xA;&lt;h4 id=&#34;原则二保证优质时间&#34;&gt;原则二：保证&lt;strong&gt;优质时间&lt;/strong&gt;&lt;/h4&gt;&#xA;&lt;p&gt;优质时间分类：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;目的性优质：换尿布、喂养、洗澡穿衣服等好时机&lt;/li&gt;&#xA;&lt;li&gt;非目的性优质：不去指挥孩子，只是坐在旁边观察陪伴并给出必要回应（完全关注，而非高高在上教人做事）&lt;/li&gt;&#xA;&lt;li&gt;共同活动：做游戏，一来一回互动&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;注意优质时间的“适可而止”，不受打扰的独处必要性：因为无法学会独处时，就会通过打瞌睡、走神等坏习惯养成。&lt;/p&gt;&#xA;&lt;h4 id=&#34;原则三了解每个儿童独特的沟通方式并教给他你的沟通方式&#34;&gt;原则三：了解每个儿童独特的&lt;strong&gt;沟通&lt;/strong&gt;方式，并教给他你的沟通方式&lt;/h4&gt;&#xA;&lt;p&gt;身体语言的重要性：换尿布前，告诉孩子要做什么，并运用恰当的肢体语言。&lt;/p&gt;&#xA;&lt;p&gt;p.s. 婴儿一词 infant 源自古法语，意思是“不能说话”&lt;/p&gt;&#xA;&lt;h4 id=&#34;原则四投入大量时间和精力去培养一个完整的人&#34;&gt;原则四：投入大量时间和精力去培养一个&lt;strong&gt;完整的人&lt;/strong&gt;&lt;/h4&gt;&#xA;&lt;p&gt;儿童的智力发展并不取决于某个小玩具或活动，而是取决于日常生活、人际关系、生活体验以及像换尿布、如厕训练、喂食这样的日常琐事。也就是说不仅仅只关注智力发展，并关注 儿童生理、社会性与情绪的发展。&lt;/p&gt;&#xA;&lt;h4 id=&#34;原则五将婴幼儿视为值得尊重的人&#34;&gt;原则五：将婴幼儿视为值得&lt;strong&gt;尊重&lt;/strong&gt;的人&lt;/h4&gt;&#xA;&lt;p&gt;将婴儿视为值得尊重的人，而不是把他们当作可以随意摆布的物件，或者脑袋空空的小可爱。例如孩子学步摔倒时，不要立刻冲过去，一把将他抱起来；而是先冷静问问孩子需要什么帮助，是安慰还是身体上的帮助。&amp;mdash; 将他们视作普通成年人对待。&lt;/p&gt;&#xA;&lt;p&gt;不尊重的反例：当小朋友的吃到一半的香蕉掉在了地上，想捡起被阻止，大哭：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;“别哭了，这有什么好伤心的，反正那个香蕉你也吃得差不多了！”&lt;/li&gt;&#xA;&lt;li&gt;或者利用玩具分散注意力&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h4 id=&#34;原则六诚实地向儿童表达真实的感受&#34;&gt;原则六：诚实地向儿童表达&lt;strong&gt;真实的感受&lt;/strong&gt;&lt;/h4&gt;&#xA;&lt;p&gt;面对孩子的不当行为，大人夸大的行为可能让孩子觉得有趣，不断重复错误行为。应该就事论事，清楚地说出自己的感受（让孩子明白对错）。&lt;/p&gt;&#xA;&lt;h4 id=&#34;原则七教育儿童时要以身作则&#34;&gt;原则七：教育儿童时要&lt;strong&gt;以身作则&lt;/strong&gt;&lt;/h4&gt;&#xA;&lt;p&gt;两个孩子因为布娃娃打起来，照料者走过去，跪在地板上，一边对 A 说轻点，一边安慰 B。而不是暴力的一把拽过孩子，大声呵斥并摇晃以惩罚。&lt;/p&gt;&#xA;&lt;p&gt;对打人的孩子需要用同理心而不是同情心进行安抚；对被打的孩子，承认其痛苦但不要为此向其道歉，过度的同情和关注可能会给受害的孩子带来消极影响。因为他们也许会误以为，受到伤害就能获取大人的爱和关注，从而乐于成为受害者。😲&lt;/p&gt;&#xA;&lt;h4 id=&#34;原则八将问题视为学习的机会并让婴幼儿努力去解决问题&#34;&gt;原则八：&lt;strong&gt;将问题视为学习的机会&lt;/strong&gt;，并让婴幼儿努力去解决问题&lt;/h4&gt;&#xA;&lt;p&gt;例如上文两个孩子发生冲突，首先确保安全的情况下，为他们提供解决争执的办法。给予孩子更多自己解决问题的时间和自由，不应对孩子遇到的所有挫折都立即给予帮助。&lt;/p&gt;&#xA;&lt;h4 id=&#34;原则九教会信任以建立安全感&#34;&gt;原则九：教会信任以建立&lt;strong&gt;安全感&lt;/strong&gt;&lt;/h4&gt;&#xA;&lt;p&gt;保证婴儿无微不至的回应式照料，学会信任大人，建立安全感。例如在托儿所分别时，不应该哄骗，而是坦率说再见，然后由照料者安慰孩子的哭闹行为。让孩子了解到自己有表达负面情绪的权利，并且逐渐了解母亲在什么时候需要暂时离开（不用总担心母亲称自己不注意偷偷溜走）。&lt;/p&gt;&#xA;&lt;h4 id=&#34;原则十重视儿童每个阶段的发展质量&#34;&gt;原则十：重视儿童每个阶段的&lt;strong&gt;发展质量&lt;/strong&gt;&lt;/h4&gt;&#xA;&lt;p&gt;尊重孩子个体差异，警惕所谓“里程碑”，不要拔苗助长（每个孩子有自己独特的发展轨迹）。&lt;/p&gt;&#xA;&lt;p&gt;更多的关注孩子的优势而非缺点。更多帮助孩子充分体验当前阶段的成长经验，例如让孩子尽情享受爬行的乐趣，而不是鼓励他们行走。&lt;/p&gt;&#xA;&lt;h2 id=&#34;第-2-章婴幼儿教育&#34;&gt;第 2 章：婴幼儿教育&lt;/h2&gt;&#xA;&lt;h3 id=&#34;哪三个词不适合婴幼儿&#34;&gt;&lt;u&gt;哪三个词不适合婴幼儿？&lt;/u&gt;&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;婴儿刺激&lt;/strong&gt;：为什么单纯的刺激不可取？学习与发展的必要条件是：婴儿需要发现他们能影响周围的人和事，从刺激经验中感知到自己的参与感（互动），而非被动的客体。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;托婴服务&lt;/strong&gt;：只保证基础的温饱与安全不等同与婴幼儿教育，另一个极端不可取。因为教育与保育是不可分的。甚至听话的婴儿反而会被照料者忽略。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;学前教育&lt;/strong&gt;：例如专门设计的“圆圈教学”，各种条条框框，限制婴幼儿自由探索的天性会对他们的教育产生不利影响。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;什么是婴幼儿教育成人在帮助婴幼儿提高解决能力的过程中起到的四种作用&#34;&gt;&lt;u&gt;什么是婴幼儿教育？成人在帮助婴幼儿提高解决能力的过程中起到的四种作用？&lt;/u&gt;&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;准确判断儿童在面对问题时，能承受的&lt;strong&gt;最优压力水平&lt;/strong&gt;：&#xA;&lt;ol&gt;&#xA;&lt;li&gt;提供所需的&lt;mark&gt;最小帮助&lt;/mark&gt;（让孩子继续坚持解决问题）&lt;/li&gt;&#xA;&lt;li&gt;很多照料者极力避免儿童出现负面情绪，但他们没有意识到压力和挫败感也是婴幼儿教育的重要组成部分。&lt;/li&gt;&#xA;&lt;li&gt;最优压力：强度适宜的压力，足以鼓动和激发孩子参加各种活动，但又不挫败。// 想到了游戏 哈迪斯 的机制。。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;为儿童提供&lt;strong&gt;适当的关注需求&lt;/strong&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;人们在年幼时离不开他人关注，如果无法得到关注就会：表现的可爱、故意不守规矩喧哗、保持沉默、让自己显得很无助墟弱。。&lt;/li&gt;&#xA;&lt;li&gt;如果安静的玩耍和低调不能引起关注，就会尝试采用其他行为。所以如果孩子需要通过不当行为获得关注，照料者需要改变自己的做法&#xA;&lt;ol&gt;&#xA;&lt;li&gt;无视孩子的不当行为（保证儿童安全以及满足合理需求的前提）&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;“正反馈”需要节制，当孩子收到过多夸奖，就很难从活动本身获得乐趣和满足。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;提供反馈&lt;/strong&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;例如告诉抓伤自己的孩子：“你抓的我很痛，我不喜欢你这样”（清晰明确）。 &amp;ndash; 对让他对事情的起因和结果也有一定的认知。&lt;/li&gt;&#xA;&lt;li&gt;谨慎 不用用语言干扰了儿童对事物的专注。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;为儿童言行&lt;strong&gt;树立榜样&lt;/strong&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;关键在于实践，例如，你想让孩子学会与人分享，自己就应成为一个乐于分享的人。&lt;/li&gt;&#xA;&lt;li&gt;表达愤怒：如果你非常生气但用微笑掩饰自己，那儿童就会学会掩藏自己的情绪。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;第-3-章照料是一门课程&#34;&gt;第 3 章：照料是一门课程&lt;/h2&gt;&#xA;&lt;h3 id=&#34;如何建立课程所依赖的关系如何制定计划增加依恋attachment&#34;&gt;&lt;u&gt;如何建立课程所依赖的关系？如何制定计划增加依恋（attachment）？&lt;/u&gt;&lt;/h3&gt;&#xA;&lt;p&gt;通过细致入微的照料互动，婴幼儿和照料者之间的依恋关系会不断发展，尤其是当婴幼儿能获得同一个照料者连续一致的照料，他们会逐渐认识提供照料的这个人。&lt;/p&gt;</description>
    </item>
    <item>
      <title>[读后感]《实用程序育儿法｜The Baby Whisperer》</title>
      <link>https://changchen.me/blog/20250829/baby_whisperer/</link>
      <pubDate>Fri, 29 Aug 2025 13:30:32 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20250829/baby_whisperer/</guid>
      <description>&lt;p&gt;新手父母老来得子，很容易将婴儿视为掌上明珠抱在怀中，养成了摇晃抱睡的坏习惯。导致不仅每次放下时如同拆炸药包般小心翼翼，还无法保证高质量的睡眠。调查显示：醒着被放在床上的婴幼儿比睡着再放入床上的婴幼儿，更容易睡的长久，而晚上醒两三次的可能性要小 3 倍。想象你在温暖的床上入眠，结果醒来发现自己竟然躺在公司的行军床上般的惊恐。&lt;/p&gt;&#xA;&lt;p&gt;派派近日刚满三个月，终于成功拍睡入眠，分享一下帮助颇多的书籍与笔记。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/17585214151356.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;实用程序育儿法the-baby-whisperer&#34;&gt;《实用程序育儿法｜The Baby Whisperer》&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;实际上，我不是要强迫婴儿怎么样或者做什么事情，我也不赞成让婴儿哭，更不赞成把幼儿扔在那儿独自“暂停（timne.out）”的方法，不管时间有多短。孩子需要大人的帮助，我们必须提供这种帮助，特别是在你努力消除无规则养育带来的不良影响时，这很不容易。&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;第五章教宝宝如何睡觉&#34;&gt;第五章：教宝宝如何睡觉&lt;/h2&gt;&#xA;&lt;p&gt;睡眠问题归类：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;缺乏常规程序（E.A.S.Y：吃、玩、睡、休息）&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;努力给孩子一个可预测的时间顺序，例如某天上午十点小睡，第二天在 10:15 睡。&lt;/li&gt;&#xA;&lt;li&gt;例如针对小月龄的婴儿：&#xA;&lt;ul&gt;&#xA;&lt;li&gt;白天：每隔 3 小时进食；每隔 3 小时睡 1 个半小时。&lt;/li&gt;&#xA;&lt;li&gt;晚上：5 点和 7 点密集进食，晚上 11 点梦中进食。醒来：凌晨5点或6点&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;只要保持持续不变  &amp;mdash;  进食、活动、睡眠  &amp;mdash;  每一件事差不多在同一时间发生，那么你就可以改善孩子的睡眠质量。&lt;/li&gt;&#xA;&lt;li&gt;常见的误区：&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;mark&gt;下午的小酣会影响夜间的睡眠，实际正好相反，婴儿白天休息得越充分，晚上睡的越好&lt;mark/&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;不充分的睡眠程式&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;最佳睡眠时机：把握（尽快采取行动）&lt;/li&gt;&#xA;&lt;li&gt;渐进程序：例如打襁褓，告诉婴儿 - 该换一种活动了，我们要准备睡觉了（同时为几个月后出现的分离焦虑奠定信任的基础） // 与换尿布同理，把宝宝当做人进行沟通&lt;/li&gt;&#xA;&lt;li&gt;&lt;mark&gt;4S 程序&lt;/mark&gt;：&#xA;&lt;ul&gt;&#xA;&lt;li&gt;1）布置环境 安静+黑暗&lt;/li&gt;&#xA;&lt;li&gt;2）裹襁褓 - 避免无意识的手脚乱动导致分心与不安&lt;/li&gt;&#xA;&lt;li&gt;3）坐着 - 静坐五分钟，把孩子的头埋进怀里，消除任何视觉的刺激&lt;/li&gt;&#xA;&lt;li&gt;4）嘘 拍法（shush-pat）：一边缓慢+清晰的嘘&amp;hellip;&amp;hellip;..嘘&amp;hellip;&amp;hellip;.. 一边轻拍背部&#xA;&lt;ul&gt;&#xA;&lt;li&gt;因为婴儿注意力无法集中，最终停止哭闹&lt;/li&gt;&#xA;&lt;li&gt;宝宝平静后，继续 7-10 分钟，即使完全睡着也多待几分钟观察是否深度睡眠。&lt;/li&gt;&#xA;&lt;li&gt;一种睡眠辅助手段，最终会教会如何自己睡觉&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;无规则养育：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;例子：&#xA;&lt;ul&gt;&#xA;&lt;li&gt;遗憾的是，手足无措的父母有时候会不惜采取任何手段来让他们的孩子停止哭闹，或者让孩子平静下来。这个“任何手段”通常在以后会演变成一个坏习惯，他们不得不改掉它——这就是无规则养育。例如，10周大的汤米睡不着，因为妈妈错过了他小睡的最佳时间&lt;/li&gt;&#xA;&lt;li&gt;妈妈开始抱着他走来走去，轻轻摇见他。知道吗？竟然有田，汤米在她的怀中睡着了。第二天的小睡时间，他在婴儿床里有点吵，于是她又把他抱起来，说是要抚慰他。她自己可能也因为这个习惯而感到慰藉和放松——感觉到她可爱的小宝宝拥在怀中，多么美好啊。&lt;/li&gt;&#xA;&lt;li&gt;但是，我可以向你保证，3个月后或者更快，汤米的妈妈一定会变得很绝望，奇怪她的儿子为什么“讨厌婴儿床”，或者“不肯睡觉，除菲我摇晃他”。这不是汤米的错，是妈妈无意中使得儿子把摇晃以及妈妈的体温和睡觉联系了起来，从而认为那是正常的，没有她的帮助，他就无法进入梦乡，他不喜欢婴儿床，因为没有人教他如何在婴儿床里放松&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;道具依赖：&#xA;&lt;ul&gt;&#xA;&lt;li&gt;道具与慰藉物：如果奶嘴掉下来时婴儿总是会醒来，要父母把它重新放回去，那么它就是道具。如果嬰儿不叼着奶嘴也能睡着，或者能自己街回去，那么它就是慰藉物。&lt;/li&gt;&#xA;&lt;li&gt;所以不推荐抱着晃安抚，或在怀里睡觉。 因为这样把自己当作了“道具”，未来会反复折磨自己&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;解决办法：&lt;mark&gt;在宝宝清醒的时候打好襁褓，把他放在小床上，采用拍嘘法哄睡，最终才能培养独立睡觉的能力&lt;/mark&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;饥饿：&lt;/p&gt;</description>
    </item>
    <item>
      <title>关于我</title>
      <link>https://changchen.me/about/</link>
      <pubDate>Wed, 27 Aug 2025 09:06:59 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/about/</guid>
      <description>&lt;h2 id=&#34;快问快答&#34;&gt;快问快答&lt;/h2&gt;&#xA;&lt;pre class=&#34;about-qa&#34;&gt;&#xA;Q：最喜欢的天气是？&#xA;A：我最喜欢下雨天，雨滴落地的滴答声让人内心平静，湿润的空气闻起来也舒服（点击页面顶部试试）&#xA;&#xA;Q：独处还是热闹？&#xA;A：我喜欢独处，被人关注会倍感压力。&#xA;&#xA;Q：早起还是晚睡？&#xA;A：最近早睡，一般 11 点前睡觉，因为清晨 7 点准时被儿子叫醒。&#xA;&#xA;Q：最常听什么类型的音乐？&#xA;A：想起初中偷偷买了个 mp3，戴上耳机第一次听到内置的《宁夏》，整个人被击中了。现在基本无脑听周杰伦。&#xA;&#xA;Q：如果有一整天空闲，你会做什么？&#xA;A：最美好的一天：上午睡个懒觉，中午自己做法，下午去咖啡厅看书，晚上运动。&#xA;&#xA;Q：最喜欢的食物？&#xA;A：喜欢吃肉，海鲜也不错&#xA;&#xA;Q：旅行更喜欢山还是海？&#xA;A：都不太喜欢，如果一定要选一个可以是下雨的山，因为出生在海岛对大海慢慢没什么新鲜感了。&#xA;&#xA;Q：你觉得自己最大的优点是什么？&#xA;A：情绪稳定&#xA;&#xA;Q：最近在追什么（剧/书/游戏都算）？&#xA;A：最近在看《How to Talk So Little Kids Will Listen》，如何处理亲子关系令人着迷。&#xA;&#xA;Q：十年后你希望自己在过什么样的生活？&#xA;A：旅居的生活，做自己感兴趣的事，顺便养活自己。&#xA;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;daya0576&#34;&gt;daya0576&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;📍 Shanghai&lt;/li&gt;&#xA;&lt;li&gt;🧑‍💻 &lt;a href=&#34;https://changchen.me/blog/20180403/impressions-of-google-sre/&#34;&gt;SRE&lt;/a&gt; (&lt;del&gt;Server Reboot Engineer&lt;/del&gt;)&lt;/li&gt;&#xA;&lt;li&gt;🐍 &lt;a href=&#34;https://changchen.me/categories/python/&#34;&gt;Python&lt;/a&gt; 开发者&lt;/li&gt;&#xA;&lt;li&gt;👶 &lt;a href=&#34;https://changchen.me/series/paipai/&#34;&gt;奶爸&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;关注我&#34;&gt;关注我&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/daya0576&#34;&gt;GitHub&lt;/a&gt; - 开源项目和代码&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://instagram.com/daya0576&#34;&gt;Instagram&lt;/a&gt; - 生活记录&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.youtube.com/@daya0576&#34;&gt;YouTube&lt;/a&gt; - 乒乓球视频&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;联系我&#34;&gt;联系我&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Email: daya0576[AT]gmail.com&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;博客更新&#34;&gt;博客更新&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;20140404 基于 Octopress 建站，写下第一篇博客&lt;/li&gt;&#xA;&lt;li&gt;20180731 从 Octopress 迁移到 Hexo（Next 主题）&lt;/li&gt;&#xA;&lt;li&gt;20190915 CI/CD 切换到 GitHub Actions&lt;/li&gt;&#xA;&lt;li&gt;20210910 评论系统从 Disqus 迁移到 utterances&lt;/li&gt;&#xA;&lt;li&gt;20220201 静态资源 jsdelivr 切换到 Cloudflare&lt;/li&gt;&#xA;&lt;li&gt;20241117 从 Hexo 迁移到 Hugo，主题切换为 nostyleplease&lt;/li&gt;&#xA;&lt;li&gt;20250328 新增 Buy Me a Coffee 赞助链接&lt;/li&gt;&#xA;&lt;li&gt;20250607 开启「Paipai」奶爸育儿系列&lt;/li&gt;&#xA;&lt;li&gt;20250827 About 页面重构，新增「快问快答」&lt;/li&gt;&#xA;&lt;li&gt;20260129 补充 SEO structured data&lt;/li&gt;&#xA;&lt;li&gt;20260221 About 页面新增雨天交互特效&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>派派成长日记 #4 - 幸福但不快乐的二月龄（60-90天）</title>
      <link>https://changchen.me/blog/20250824/paipai_three_months/</link>
      <pubDate>Sun, 24 Aug 2025 15:12:55 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20250824/paipai_three_months/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Do not Be Sorry &amp;hellip; Be Better!&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;h2 id=&#34;glossary&#34;&gt;Glossary&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;2月龄：第二个月至第三个月（61-90天），多 1 天叫 2 月零 1 天&lt;/li&gt;&#xA;&lt;li&gt;996：早上 9 点上班，晚上 9 点下班，每周工作 6 天的工作时间制度&lt;/li&gt;&#xA;&lt;li&gt;..&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;幸福但不快乐&#34;&gt;幸福但不快乐&lt;/h2&gt;&#xA;&lt;p&gt;如果将新手父母独立带娃类比 “996上班”，进行强度的直观量化：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;前两个月：约等于两倍 996 :(&lt;/li&gt;&#xA;&lt;li&gt;第三个月：逐步转为一倍 996 :|&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;但是，身体与精神的紧绷疲惫，在婴儿第一次展露笑容时，给予很大的鼓励与幸福 ❤️&lt;/p&gt;&#xA;&lt;h2 id=&#34;实用程序育儿法&#34;&gt;《实用程序育儿法》&lt;/h2&gt;&#xA;&lt;p&gt;兵荒马乱的育儿旅程，就如同大学第一次接触编程，从 CSDN 拷贝了一份代码运行，看着满屏的警告与错误，撧耳挠腮进行笨拙的调试。。唯一能做的是系统性学习，不段提升自身技能，与婴儿合作一同成长。&lt;/p&gt;&#xA;&lt;p&gt;这个月在宝宝睡觉的缝隙，读完了&lt;a href=&#34;https://book.douban.com/subject/3420221/&#34;&gt;《实用程序育儿法》&lt;/a&gt;。书中主要介绍了 &lt;code&gt;E.A.S.Y 模式&lt;/code&gt;：总而言之将每日的 吃（&lt;code&gt;Eat&lt;/code&gt;）、玩（&lt;code&gt;Activity&lt;/code&gt;）、睡眠（&lt;code&gt;Sleep&lt;/code&gt;）时间完全固定下来，最终父母也能获取休息时间（&lt;code&gt;Yourself&lt;/code&gt;）。不知为何有一股浓浓的月嫂味道。&lt;/p&gt;&#xA;&lt;p&gt;虽然看上去很科学，但最终并未严格遵循，因为更倾向（或被迫）顺从小月龄婴儿天性与适当折中，例如只在夜间固定了一系列睡眠仪式帮助入睡（取得了不错的效果）。&lt;/p&gt;&#xA;&lt;p&gt;书中还有一段印象深刻的话，大致观点：需要谨慎区分“慰藉物”与“道具”，以安抚奶嘴为例，如果奶嘴掉下来时婴儿总是会醒来，要父母把它重新放回去，那么它就是道具。如果嬰儿不叼着奶嘴也能睡着，或者能自己街回去，那么它就是慰藉物。 :( 需要尽可能避免成为“道具”消耗自己。&lt;/p&gt;&#xA;&lt;p&gt;其他部分资料推荐（排名不分先后）：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;一妇婴刘江勤医生的公众号 &lt;a href=&#34;https://mp.weixin.qq.com/mp/homepage?__biz=MjM5MzY5MTMwOQ==&amp;amp;hid=2&amp;amp;sn=59b8aee55f8f2170ec14936f8f1bf5bc&amp;amp;scene=1&amp;amp;devicetype=iOS17.4.1&amp;amp;version=18003d38&amp;amp;lang=zh_CN&amp;amp;nettype=WIFI&amp;amp;ascene=7&amp;amp;session_us=gh_d920d3f31154&amp;amp;fontScale=100%0A&#34;&gt;一岁以内常见问答&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;一些 YouTube 频道，例如 &lt;a href=&#34;https://www.youtube.com/@DrTNHuang&#34;&gt;黃瑽寧醫師健康講堂&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;《梅奥育儿全书》&lt;/li&gt;&#xA;&lt;li&gt;&amp;hellip;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;坚持就是胜利&#34;&gt;坚持就是胜利&lt;/h2&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;在进入到宝宝的第四个月之前，请先拍拍自己的背，给自己肯定。你已经成功地度过了为人父母的最初几个月，而这很可能是你成年后生活中最重要的一次转变。在这个月龄，大多数宝宝已经开始适应了在这个崭新世界中的生活。同时，宝宝们在和父母的关系，以及自身适应所生活的环境以及与之互动的能力方面，也更加有把握。  &amp;mdash; 《梅奥育儿全书》第四个月&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;阶段性胜利：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;喂养：从混合喂养转为纯母乳喂养（保留睡前的一顿奶粉）&#xA;&lt;ul&gt;&#xA;&lt;li&gt;母乳的好处很多，例如增强免疫力，减少过敏，天然比例恰当的脂肪和蛋白质，供需动态平衡，防止儿童肥胖&amp;hellip;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;喂养：白天按需喂养，夜间睡前固定频繁喂养（5pm &amp;amp; 7pm）&lt;/li&gt;&#xA;&lt;li&gt;睡眠：夜间睡眠通过固定的睡前仪式养成生物钟，每日一到八点整便准时入眠。&lt;/li&gt;&#xA;&lt;li&gt;睡眠：小睡渣在白天开始出现频繁小睡。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;挑战：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;喂养：白天喂养间隔需拉长，避免过于频繁（“吃零食”的坏习惯）与奶睡，并帮助逐步培养更规律的作息时间。&lt;/li&gt;&#xA;&lt;li&gt;睡眠：落地醒 &amp;amp; 抱睡的坏习惯。需要提前准备 sleep train 相关知识的学习，在 4-6 个月尝试拍睡不断降低哄睡等级，最终实现自主入睡。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;&lt;/th&gt;&#xA;          &lt;th&gt;30-60 Days&lt;/th&gt;&#xA;          &lt;th&gt;60-90 Days&lt;/th&gt;&#xA;          &lt;th&gt;&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Feeding&lt;/td&gt;&#xA;          &lt;td&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/1C66CEB6-831C-4F5D-B424-84790FE55701_1_105_c.jpeg&#34; alt=&#34;1C66CEB6-831C-4F5D-B424-84790FE55701_1_105_c&#34;&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/BF9530D7-ABC1-45F4-AFC7-C555F4ED1E8E_1_105_c.jpeg&#34; alt=&#34;BF9530D7-ABC1-45F4-AFC7-C555F4ED1E8E_1_105_c&#34;&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;Sleeping&lt;/td&gt;&#xA;          &lt;td&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/C38B3F44-FDD9-45BC-B9EF-74E4C7CFF373_1_105_c.jpeg&#34; alt=&#34;C38B3F44-FDD9-45BC-B9EF-74E4C7CFF373_1_105_c&#34;&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/B35229A1-6603-430F-AAD9-57977689B124_1_105_c.jpeg&#34; alt=&#34;B35229A1-6603-430F-AAD9-57977689B124_1_105_c&#34;&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;ALL&lt;/td&gt;&#xA;          &lt;td&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/12B7C60C-E84D-4F04-85E6-6E8CAF76644F_1_105_c.jpeg&#34; alt=&#34;12B7C60C-E84D-4F04-85E6-6E8CAF76644F_1_105_c&#34;&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/2ADF3DE5-B463-4E4C-9964-13562DA2D941_1_105_c.jpeg&#34; alt=&#34;2ADF3DE5-B463-4E4C-9964-13562DA2D941_1_105_c&#34;&gt;&lt;/td&gt;&#xA;          &lt;td&gt;&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;h2 id=&#34;歇斯底里&#34;&gt;歇斯底里&lt;/h2&gt;&#xA;&lt;p&gt;偶尔会在商场看到小朋友与家长大发脾气，甚至歇斯底里“殴打”家长。经过三个月的带娃旅程，对孩子这种“无理取闹”的行为有了新的理解：当一个&lt;code&gt;三岁&lt;/code&gt;的大朋友对家长大发脾气，似乎与&lt;code&gt;三个月&lt;/code&gt;的宝宝歇斯底里大声哭泣没有差别，可能并不是无理取闹，而仅仅是由于家长没有满足某个需求？&lt;/p&gt;</description>
    </item>
    <item>
      <title>Nightwatcher - A Simple IP Camera Viewer 🦇</title>
      <link>https://changchen.me/blog/20250811/nightwatcher/</link>
      <pubDate>Mon, 11 Aug 2025 19:45:19 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20250811/nightwatcher/</guid>
      <description>&lt;p&gt;GitHub: &lt;a href=&#34;https://github.com/daya0576/nightwatcher&#34;&gt;https://github.com/daya0576/nightwatcher&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/2025-08-27%2019-19-26.2025-08-27%2019_24_27.gif&#34;&gt;&lt;/img&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;background&#34;&gt;Background&lt;/h2&gt;&#xA;&lt;p&gt;As a first-time parent, to reduce anxiety, I set up two cameras for quick glances:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;A room overview camera (&lt;code&gt;Tplink IPC45AW&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;li&gt;A dedicated baby monitor (&lt;code&gt;Aqara G100&lt;/code&gt;)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Both cameras have been integrated into HomeKit and shared with my family (through &lt;a href=&#34;https://www.home-assistant.io/integrations/onvif/&#34;&gt;Home Assistant ONVIF&lt;/a&gt;)&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/17549158473402.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;constraints&#34;&gt;Constraints&lt;/h2&gt;&#xA;&lt;p&gt;The user experience of HomeKit was &lt;em&gt;frustrating&lt;/em&gt; for several reasons:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;u&gt;&lt;strong&gt;Performance Issues&lt;/strong&gt;&lt;/u&gt;: High latency and frequent freezing, taking 2-3 seconds to load screenshots and stream video. And the image quality is limited to low resolution.&lt;/li&gt;&#xA;&lt;li&gt;&lt;u&gt;&lt;strong&gt;Cross Platform Support&lt;/strong&gt;&lt;/u&gt;: HomeKit only works within Apple ecosystem, so it&amp;rsquo;s impossible to view all the cameras at the same time on my Android tablet.&lt;/li&gt;&#xA;&lt;li&gt;&lt;u&gt;&lt;strong&gt;Privacy &amp;amp; Extensibility&lt;/strong&gt;&lt;/u&gt;: Both of the montors provide advanced AI detection features, but the streaming must be processed through the cloud with unknown algorithms.&lt;/li&gt;&#xA;&lt;li&gt;&lt;u&gt;&lt;strong&gt;Simplicity&lt;/strong&gt;&lt;/u&gt;: Tried several existing open source solutions, but they are a bit too complex and put me off.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Fortunately, both cameras support RTSP (Real Time Streaming Protocol) for video stream consuming.&lt;/p&gt;</description>
    </item>
    <item>
      <title>派派成长日记 #2 - 满两个月啦（30-60天）</title>
      <link>https://changchen.me/blog/20250727/paipai_two_months_old/</link>
      <pubDate>Sun, 27 Jul 2025 22:30:04 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20250727/paipai_two_months_old/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;其实小孩子真的没想象中的那么难带，多点耐心和细心就行了，到最后你会发现，带着带着就崩溃了[泣不成声]&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;h1 id=&#34;序&#34;&gt;序&lt;/h1&gt;&#xA;&lt;p&gt;很久以前读过一本书《叩叩》，记录了周国平作为父亲视角，对孩子的成长记录，深受触动。虽然对书中部分理念与价值观持保留态度，但在这个视频照片唾手可得的时代，用文字记录孩子的成长反而是一种独特的方式。&lt;/p&gt;&#xA;&lt;p&gt;顺便夹带一点私心：希望有一天孩子长大，有机会理解父母的无私付出，不要指着鼻子大声呵斥：“老头，没钱为什么要将我生下！”。&lt;/p&gt;&#xA;&lt;h1 id=&#34;名字由来&#34;&gt;名字由来&lt;/h1&gt;&#xA;&lt;p&gt;“派派”这个小名，在他妈妈肚子里的时候，我们就这么称呼他。努力回想了一下，一是因为蛇宝宝，所以借用了 Python 编程语言 &amp;ldquo;Py&amp;rdquo; 的谐音🐍；二来，这小家伙从出生起就眉头紧锁，一副小将军般的模样，故又是气派的 &amp;ldquo;派&amp;rdquo;。&lt;/p&gt;&#xA;&lt;p&gt;不过每当被问起名字的由来，我们常常会选择一个更简单的解释，也就是大力水手&amp;quot;派派&amp;quot;。毕竟程序员的谐音烂梗也不是人人都能懂&amp;hellip;&lt;/p&gt;&#xA;&lt;h1 id=&#34;octocat-one-piece&#34;&gt;Octocat One-Piece&lt;/h1&gt;&#xA;&lt;p&gt;未雨绸缪的我，在大学期间便网购了一件 GitHub 宝宝连体衣。陪伴了派派前两个月，不仅穿上帅气，同时兼顾实用，没想到成为了每个月嫂的最爱。&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Thank you for placing your order with GitHub!&#xA;&#xA;This email is to confirm your recent order.&#xA;&#xA;Date 08/31/2016&#xA;&#xA;1x Invertocat Hoodie - Small for $55.00 each&#xA;1x Die Cut GitHub Stickers - 10 Pack 3&amp;#34; for $2.00 each&#xA;1x Atom And Electron Sticker Pack - Atom and Electron Sticker Pack for $5.00 each&#xA;1x Octocat One-Piece - 6 Months for $18.00 each&#xA;1x Octocat Figurine - 3&amp;#34; Octocat Figurine for $15.00 each&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/17586916285366.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>婴幼儿睡眠学习笔记｜PEACEFUL DREAMS 👶</title>
      <link>https://changchen.me/blog/20250620/baby_sleeping/</link>
      <pubDate>Fri, 20 Jun 2025 19:33:13 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20250620/baby_sleeping/</guid>
      <description>&lt;p&gt;在满怀期待迎接新生命时，尝试过阅读权威书籍，观看视频尽可能提前做好准备。然而，真正面对现实时，却发现大家从未提及，最具挑战的是如何让新生儿安然入睡。&lt;/p&gt;&#xA;&lt;p&gt;俺的崽“派派”的睡眠尤其令人担忧，作为一名二十多天的新生儿，夜间一觉睡到天亮，但白天却精神抖擞眼睛睁的大的像铜铃，几乎一整天都不睡，甚至隐隐约约看到了黑眼圈 (⊙︵⊙)&lt;/p&gt;&#xA;&lt;p&gt;最近几日宝宝满月后，CC 和我一起照顾孩子，经过不断摸索和调整，逐步找到了节奏：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;u&gt;&lt;strong&gt;避免焦虑&lt;/strong&gt;&lt;/u&gt;：只要宝宝的体重稳步增长，大小便规律正常，不必过分焦虑。每个小生命都有其独特性，每天的表现也会有所不同（俗称猫一阵狗一阵）。因为对我们成年人而言，吃饭和睡觉是再简单不过的事情，但对于宝宝来说，这些都是他们努力不断尝试和练习才能逐步掌握的新技能。&lt;/li&gt;&#xA;&lt;li&gt;&lt;u&gt;&lt;strong&gt;及时就医&lt;/strong&gt;&lt;/u&gt;：某天楼上维修漏水，说走就走前往医院咨询纯母乳喂养门诊，在从混合喂养努力朝纯母乳改变的过程中，宝宝的睡眠突然发生质的改变。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;祝愿每一位读者，无论是大人还是小朋友，都能享受婴儿般甜美的睡眠 (｡◕‿◕｡) zzZ&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;下面是 &lt;a href=&#34;https://brightestbeginning.com/courses/peacefuldreams/&#34;&gt;PEACEFUL DREAMS&lt;/a&gt; 课程学习笔记（仅供参考，如有不适，请及时就医⚠️⚠️⚠️）：&lt;/p&gt;&#xA;&lt;h2 id=&#34;第一步预期管理&#34;&gt;第一步：预期管理&lt;/h2&gt;&#xA;&lt;p&gt;大部分的痛苦来自父母的期待与客观事实存在的偏差，所以先管理一下预期避免过度焦虑。&lt;/p&gt;&#xA;&lt;p&gt;&lt;u&gt;&lt;strong&gt;0-3个月：平均约14-17小时&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;白天小睡&lt;/strong&gt;：每天的 nap 是&lt;strong&gt;完全没有规律&lt;/strong&gt;的，按需高频睡眠，每天大约需要 4-5 次小睡。持续时间：有时第一天是20分钟/2小时/40分钟/40分钟，第二天可能是3小时/20分钟/20分钟/20分钟。虽然可能让人崩溃，但对新生儿来说这是非常正常的行为。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;夜晚睡眠&lt;/strong&gt;：不幸的是，夜间的睡眠通常也不稳定。前两个月入睡时间相对较晚，从晚上10点至午夜12点，并每隔2-3小时起床进行哺乳（奶粉的话3-4个小时）。但在2至3个月时，你会注意到一定的转变，入睡时间逐步提前，且每次睡得更久（约9-11小时）。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;&lt;u&gt;&lt;strong&gt;3-6个月：需要12-15小时的睡眠&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;白天小睡&lt;/strong&gt;：仍旧没有规律，但每次小睡时间变短，通常是30-45分钟。因为时间短，所以每天需要多次小睡。但超过5个月后，小睡的时间会逐步变长。&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;夜间睡眠&lt;/strong&gt;：可以持续睡超过6小时，整个夜晚睡10-12小时。宝宝夜间醒来需要1-3次喂养是完全正常的。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;数据仅供参考：&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;年龄段&lt;/th&gt;&#xA;          &lt;th&gt;0-3个月&lt;/th&gt;&#xA;          &lt;th&gt;4-6个月&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;总睡眠&lt;/td&gt;&#xA;          &lt;td&gt;14到17小时&lt;/td&gt;&#xA;          &lt;td&gt;12到15小时&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;白天小睡次数&lt;/td&gt;&#xA;          &lt;td&gt;4到5次&lt;/td&gt;&#xA;          &lt;td&gt;4到5次 -&amp;gt; 3到4次&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;白天小睡时长&lt;/td&gt;&#xA;          &lt;td&gt;20分钟到几小时&lt;/td&gt;&#xA;          &lt;td&gt;30至45分钟（catnaps）&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;夜间总睡眠&lt;/td&gt;&#xA;          &lt;td&gt;9到11小时&lt;/td&gt;&#xA;          &lt;td&gt;10到12小时&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;夜间入睡&lt;/td&gt;&#xA;          &lt;td&gt;10pm to 12am&lt;/td&gt;&#xA;          &lt;td&gt;7-8pm 或 8-10pm&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;夜间喂养&lt;/td&gt;&#xA;          &lt;td&gt;2至3次&lt;/td&gt;&#xA;          &lt;td&gt;1至2次&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;P.S. 注意每个婴儿个体差异性，相比于平均睡眠，睡的&lt;strong&gt;少或多&lt;/strong&gt;两个小时都是正常的（只要体重增长曲线正常） ⚠️ ⚠️ ⚠️&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-driving-forces-behind-your-babys-sleep&#34;&gt;The Driving Forces Behind Your Baby’s Sleep&lt;/h2&gt;&#xA;&lt;p&gt;上面提到「不规律睡眠」的两个因素：&lt;/p&gt;&#xA;&lt;h3 id=&#34;1-睡眠压力&#34;&gt;&lt;u&gt;&lt;strong&gt;1. 睡眠压力&lt;/strong&gt;&lt;/u&gt;&lt;/h3&gt;&#xA;&lt;p&gt;你清醒越久，入睡的需求就越强（想象成一桶油，耗尽后便需要休息加油）。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;新生儿由该因素主导，并且因为每天都有新体验，所以油消耗得特别快&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;2-昼夜节律&#34;&gt;&lt;u&gt;&lt;strong&gt;2. 昼夜节律&lt;/strong&gt;&lt;/u&gt;&lt;/h3&gt;&#xA;&lt;p&gt;内在的生物钟，受到例如日出和夜晚的影响。新生儿的生物钟尚未成熟，因此睡眠压力是主要驱动力。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Python3.14 Highlights 🙌</title>
      <link>https://changchen.me/blog/20250617/python3.14_highlights/</link>
      <pubDate>Tue, 17 Jun 2025 17:00:09 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20250617/python3.14_highlights/</guid>
      <description>&lt;p&gt;之前在欧特克帮忙面试印度同胞时，为了暖场，我有时会询问面试者他们最喜欢的 Python3 新特性是什么。有趣的是一半以上的人会一时语塞，瞬间反作用冷场到零度了。&lt;/p&gt;&#xA;&lt;p&gt;而我认识的优秀程序员往往有一种“怪癖”，新版本发布后，会兴奋的迫不及待阅读 release note，并第一时间选择更新。&lt;/p&gt;&#xA;&lt;p&gt;让我们跟着 Anthony 快速了解一下 Python3.14 版本的主要更新与改进：&lt;/p&gt;&#xA;&lt;iframe width=&#34;560&#34; height=&#34;315&#34; src=&#34;https://www.youtube.com/embed/-Z-BDux-TRk?si=e6ckmKfzC40dvPnU&#34; title=&#34;YouTube video player&#34; frameborder=&#34;0&#34; allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; allowfullscreen&gt;&lt;/iframe&gt;&#xA;&lt;h1 id=&#34;列表&#34;&gt;列表：&lt;/h1&gt;&#xA;&lt;h2 id=&#34;1命令行-repl-支持语法高亮&#34;&gt;1）命令行 REPL 支持语法高亮&lt;/h2&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/17501509196167.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;以及 json &amp;amp; calendar 等模块对应的改进：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# json&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;python3.14 -m json demo.json&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# calendar&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;python3.14 -m calendar&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# argparse &lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;gt; parser &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; argparse.ArgumentParser&lt;span style=&#34;color:#f92672&#34;&gt;(&lt;/span&gt;color&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;True&lt;span style=&#34;color:#f92672&#34;&gt;)&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/17503131030356.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;p.s. 不太懂程序员的审美，五颜六色花里胡哨的。&lt;/p&gt;&#xA;&lt;h2 id=&#34;2pep-765-新的-finally-代码块警告&#34;&gt;2）PEP 765: 新的 finally 代码块警告&lt;/h2&gt;&#xA;&lt;p&gt;避免在 finally 中使用 return、break 和 continue&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;example&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;py:&lt;span style=&#34;color:#ae81ff&#34;&gt;14&lt;/span&gt;: &lt;span style=&#34;color:#a6e22e&#34;&gt;SyntaxWarning&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;return&amp;#39;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; a &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;finally&amp;#39;&lt;/span&gt; block&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;3pep-758新的异常处理语法&#34;&gt;3）PEP 758：新的异常处理语法&lt;/h2&gt;&#xA;&lt;p&gt;允许不带括号的 except 和 except* 表达式：&lt;/p&gt;</description>
    </item>
    <item>
      <title>自托管服务推荐（持续更新）</title>
      <link>https://changchen.me/blog/20250607/selfhost_app_recommendation/</link>
      <pubDate>Sat, 07 Jun 2025 13:52:51 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20250607/selfhost_app_recommendation/</guid>
      <description>&lt;p&gt;自从失业后，博主逐步取消了所有的付费订阅服务，尽可能改用开源自托管服务（Self-Hosted）。&lt;/p&gt;&#xA;&lt;h1 id=&#34;2025年6月&#34;&gt;2025年6月&lt;/h1&gt;&#xA;&lt;h2 id=&#34;个人相册apple-photos---immich&#34;&gt;个人相册：Apple Photos -&amp;gt; Immich&lt;/h2&gt;&#xA;&lt;p&gt;虽然对苹果公司可靠性保持信心，但无法避免由于个人误操作导致的数据丢失，以及 iCloud 容量限制令人如坐针毡 :(&lt;/p&gt;&#xA;&lt;p&gt;Immich 作为炙手可热的相册管理服务，不论是易用性以及更新速度都无可挑剔。几个细节：支持通过手机备份共享相册，丝滑地开启显卡硬件加速，以及自定义模型供人脸识别与元信息提取。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/17492776677961.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;更有趣的是它的收费模式：不设置任何的 Paywall。但是，极佳的用户体验以及快速的迭代更新，反而让博主义无反顾付费支持🤑：&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/5401A5FB-903F-471D-9836-C5B9F3F37187_1_105_c.jpeg&#34; alt=&#34;5401A5FB-903F-471D-9836-C5B9F3F37187_1_105_c&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;音乐库apple-music---navidrome-substreamer&#34;&gt;音乐库：Apple Music -&amp;gt; Navidrome (substreamer)&lt;/h2&gt;&#xA;&lt;p&gt;Navidrome 作为一个 go 编写的服务端通过 web 访问，但它兼容所有的 &lt;a href=&#34;https://www.navidrome.org/docs/overview/#apps&#34;&gt;Subsonic/Airsonic 客户端&lt;/a&gt;！个人目前选择 substreamer 作为苹果客户端。&lt;/p&gt;&#xA;&lt;p&gt;虽然盗版不光彩，但相信周杰伦不会责怪一个失业的可怜虫吧 ^^&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/17492774629210.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;摄像头监控shinobi&#34;&gt;摄像头监控：Shinobi&lt;/h2&gt;&#xA;&lt;p&gt;近期家中多了一位新成员👶，需要在次卧中设置摄像头，相比于人民币 300+ 原生支持 HomeKit 的 Aqara 摄像头，这次我选择了更为平民的 TP-LINK 摄像头。&lt;/p&gt;&#xA;&lt;p&gt;两条链路如下：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;TP-LINK -&amp;gt; (ONVIF协议) -&amp;gt; Home Assistant -&amp;gt; HomeKit 家人共享&lt;/li&gt;&#xA;&lt;li&gt;TP-LINK -&amp;gt; (ONVIF协议) -&amp;gt; Shinobi（异常检测/保存录像）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/17492781324835.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;习惯跟踪beaver-habit-tracker&#34;&gt;习惯跟踪：Beaver Habit Tracker&lt;/h2&gt;&#xA;&lt;p&gt;这是一款基于 Python 开发的自部署习惯追踪 web 应用，帮助用户轻松记录和管理日常习惯。它提供适配移动端的直观界面，专注于习惯的持续养成，而非单纯追求目标达成，让养成好习惯变得更自然。&lt;/p&gt;&#xA;&lt;p&gt;项目主页：&lt;a href=&#34;https://github.com/daya0576/beaverhabits&#34;&gt;daya0576/beaverhabits&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/17492807249546.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;硬件服务监控beszel&#34;&gt;硬件服务监控：Beszel&lt;/h2&gt;&#xA;&lt;p&gt;一款轻量级开箱即用，却又五脏俱全的监控服务（令人佩服的五体投地是，这款软件的 image 镜像仅有 2.9MB 大小）。&lt;/p&gt;</description>
    </item>
    <item>
      <title>大逆不道 - 组装一台仅通过 WiFi 连接的 NAS</title>
      <link>https://changchen.me/blog/20250428/unraid_nas_wifi/</link>
      <pubDate>Mon, 28 Apr 2025 11:00:38 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20250428/unraid_nas_wifi/</guid>
      <description>&lt;h1 id=&#34;更新20250518&#34;&gt;更新（20250518）&lt;/h1&gt;&#xA;&lt;p&gt;将 CPU 更新为 CC150，舒服了：&#xA;&lt;img src=&#34;https://changchen.me/images/blog/global/7C634487-F73F-4B13-B444-E1634A898930.jpeg&#34; alt=&#34;7C634487-F73F-4B13-B444-E1634A898930&#34;&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;更新20250515&#34;&gt;更新（20250515）&lt;/h1&gt;&#xA;&lt;p&gt;最近将主机搬回了书房，硬盘休眠后轻微的风扇声，倒如同白噪音一般帮助我更好地集中注意力。&lt;/p&gt;&#xA;&lt;blockquote class=&#34;reddit-embed-bq&#34; data-embed-showtitle=&#34;true&#34; data-embed-theme=&#34;dark&#34; data-embed-created=&#34;2025-05-15T01:58:47Z&#34;&gt;&#xA;&lt;a href=&#34;https://www.reddit.com/r/homelab/comments/1glafbg/comment/lvstz6d/&#34;&gt;Comment&lt;/a&gt;&lt;br&gt; by&#xA;&lt;a href=&#34;https://www.reddit.com/user/tamay-idk/&#34;&gt;u/tamay-idk&lt;/a&gt; from discussion&#xA;&lt;a href=&#34;https://www.reddit.com/r/homelab/comments/1glafbg/does_the_noise_of_your_servers_not_bother_you/&#34;&gt;&lt;/a&gt;&lt;br&gt; in&#xA;&lt;a href=&#34;https://www.reddit.com/r/homelab/&#34;&gt;homelab&lt;/a&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;script async src=&#34;https://embed.reddit.com/widgets.js&#34; charset=&#34;UTF-8&#34;&gt;&lt;/script&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;在生活与工作中，我们总是一味地追求“快”，这个 feature 必须要在这周上线，那个 bug 必须在明天天亮前解决。但殊不知解决 bug 最好的办法是慢下来，take a break，甚至说不定睡一觉它自己就消失了。&lt;/p&gt;&#xA;&lt;p&gt;上一次咱们讨论了如何&lt;a href=&#34;https://changchen.me/blog/20241228/synology_to_unraid/&#34;&gt;组装一台万兆 NAS&lt;/a&gt;，这次俺打算组装一台可以通过 WiFi 接入家庭网络的 NAS，然后把它放在阳台上，彻底不去想它的存在 :p&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/61E224F2-5A91-4416-8570-FCCB66CA1E04_1_201_a.jpeg&#34; alt=&#34;61E224F2-5A91-4416-8570-FCCB66CA1E04_1_201_a&#34;&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;目录&#34;&gt;目录&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E8%BD%AF%E4%BB%B6&#34;&gt;软件&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E7%A1%AC%E4%BB%B6&#34;&gt;硬件&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E4%B8%BB%E6%9D%BFcpu&#34;&gt;主板 &amp;amp; CPU&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E6%9C%BA%E7%AE%B1&#34;&gt;机箱&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E4%BB%B7%E6%A0%BC%EF%BC%88%E9%99%A4%E5%8E%BBhdd%E5%AD%98%E5%82%A8%EF%BC%89&#34;&gt;价格（除去 HDD 存储）&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E5%8A%9F%E7%8E%87%E7%BB%9F%E8%AE%A1&#34;&gt;功率统计&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E7%BD%91%E7%BB%9C%E6%80%A7%E8%83%BD&#34;&gt;网络性能&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;软件&#34;&gt;软件&lt;/h1&gt;&#xA;&lt;p&gt;相比于通过 AP 路由接入，Unraid 在刚刚发布的 &lt;a href=&#34;https://docs.unraid.net/unraid-os/release-notes/7.1.0/&#34;&gt;7.1.0-beta.1&lt;/a&gt; 中原生支持了无线连接。&lt;/p&gt;&#xA;&lt;p&gt;实际的接入体验相当丝滑。从下图可以看到，虽然设备被放置在阳台上，但它与客厅的主路由器相距不到十米，信号强度仍处于可接受的范围内。&#xA;&lt;img src=&#34;https://changchen.me/images/blog/global/17458026356328.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;硬件&#34;&gt;硬件&lt;/h1&gt;&#xA;&lt;h2 id=&#34;主板--cpu&#34;&gt;主板 &amp;amp; CPU&lt;/h2&gt;&#xA;&lt;p&gt;考虑未来的可扩展性，俺选择了一张 ATX 主板：&lt;a href=&#34;https://www.asus.com.cn/motherboards-components/motherboards/prime/prime-z370m-plus-ii/&#34;&gt;华硕 PRIME Z370M-PLUS II&lt;/a&gt;，配合八代 CPU：8100 (65 W TDP)&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;6 x PCIe 3.0 // 其中一个 PCIex16 支持拆分 (x16, x8/x4+x4)&lt;/li&gt;&#xA;&lt;li&gt;4 x SATA 接口&lt;/li&gt;&#xA;&lt;li&gt;2 x M.2 (PCIe 3.0 x4)&lt;/li&gt;&#xA;&lt;li&gt;4 x DDR4 双通道&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/BC81CE8F-9E16-4734-9906-268340C4C60F_1_105_c.jpeg&#34; alt=&#34;BC81CE8F-9E16-4734-9906-268340C4C60F_1_105_c&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>[读后感]《亲密关系》之冲突</title>
      <link>https://changchen.me/blog/20250428/relationship_conflict/</link>
      <pubDate>Mon, 28 Apr 2025 08:21:49 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20250428/relationship_conflict/</guid>
      <description>&lt;p&gt;一年前面试前公司时，老板问了一个 behavior question：如何应对与同事之间的冲突。早餐起床突然想起《亲密关系》之冲突章节，分享给大家。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/17457998418927.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h3 id=&#34;十一冲突&#34;&gt;十一、冲突&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;冲突不可避免：&#xA;&lt;ul&gt;&#xA;&lt;li&gt;差异性：情绪和偏好不时的存在差别&lt;/li&gt;&#xA;&lt;li&gt;张力：自主性 vs 联系性 -&amp;gt; 既要独立，又想依赖，很难维持好两者的平衡&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;冲突的归因：&#xA;&lt;ul&gt;&#xA;&lt;li&gt;两个人在互动中，会持有&lt;mark&gt;不同的视角&lt;/mark&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;冲突如何展开并升级 &amp;amp; 如何有效解决冲突？&#xA;&lt;ul&gt;&#xA;&lt;li&gt;激发事件：批评、无理要求、拒绝、累计的烦恼（烦人的小事一再发生）&lt;/li&gt;&#xA;&lt;li&gt;冲突解决：&#xA;&lt;ul&gt;&#xA;&lt;li&gt;启始阶段：避免&lt;/li&gt;&#xA;&lt;li&gt;中间阶段：协商、调解&lt;/li&gt;&#xA;&lt;li&gt;结束阶段：妥协&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;其他&lt;mark&gt;有效的建议&lt;/mark&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;保持乐观，坚信创造性合作&lt;/li&gt;&#xA;&lt;li&gt;尊重你自己和伴侣的意见（站在对方视角）&lt;/li&gt;&#xA;&lt;li&gt;多说“我们”，而不是命令伴侣行动，对方更小抗拒&lt;/li&gt;&#xA;&lt;li&gt;激烈的讨论暂停一下，回来后发现协商变得更加顺利&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;mark&gt;冲突是否有益于亲密关系？&lt;/mark&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;冲突结果：分离、妥协、整合式一致、结构性改善（得到学习和成长）&#xA;&lt;ul&gt;&#xA;&lt;li&gt;平安度过狂风暴雨后，更加信任对方，愿意更加乐观和创造力的方式去解决那些逃避的冲突&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;暴露潜在的问题和矛盾 -&amp;gt; 才能寻求解决办法&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>除了钱一无所有</title>
      <link>https://changchen.me/blog/20250425/nothing_but_money/</link>
      <pubDate>Fri, 25 Apr 2025 22:05:54 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20250425/nothing_but_money/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Sometimes when you lose, you win.&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;想必大家最近都被 PayPal 上海裁员的消息刷屏了。巧合的是， Autodesk 也宣布了&lt;a href=&#34;https://adsknews.autodesk.com/en/news/022725-employee-message/&#34;&gt;全球范围内裁员 9% 的消息&lt;/a&gt;，更巧的是博主恰巧在受影响之列 :p&lt;/p&gt;&#xA;&lt;p&gt;昨日顺利收到赔偿款，落地为安。这篇文章将简单分享这段新的人生体验，博各位客官一笑～&lt;/p&gt;&#xA;&lt;h1 id=&#34;突发&#34;&gt;突发&lt;/h1&gt;&#xA;&lt;p&gt;三月份的某一天，在八点多自然醒来之后，手机中有老板在七点时发来的微信语音 call，让今天去趟办公室（周五大家一般选择居家办公）。&lt;/p&gt;&#xA;&lt;p&gt;绿泡泡群消息也早已炸了锅，得知组内每位同事都被约了 one-one 会议，也大致已猜到了结局。&lt;/p&gt;&#xA;&lt;p&gt;抵达公司后，友好地寒暄聊完赔偿，签署了相关文件。随后 Slack 账号即被禁用。公司甚至还贴心地安排了会议室，供大家流水线一条龙归还电脑。&lt;/p&gt;&#xA;&lt;p&gt;事发过于突然，被打了个措手不及，让 AI 推荐了一份被裁员的 checklist：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 撰写离别邮件（Farewell Email）&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 收集推荐信和专业联系，以及向值得信赖的同事和上司请求推荐信或 LinkedIn 推荐。&lt;/li&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 整理并备份重要的工作文件和项目记录&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &amp;lt;欢迎补充&amp;gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;怨念&#34;&gt;怨念&lt;/h1&gt;&#xA;&lt;p&gt;个人认为裁员对于被雇佣者来说是极不公平的，因为工作不同于乒乓球，比拼的并不是当前时间点的个人能力，而是&lt;em&gt;时间积累&lt;/em&gt;，例如多年亲手搭建的shi山，以及更为重要的 domain knowledge，所以即使在当前公司中具备极强的竞争力与价值，但在市场上可能清零一文不值，最终导致重新就业的艰难。&lt;/p&gt;&#xA;&lt;p&gt;同时对公司不间断的裁员政策感到困惑，如果年年都在裁员，员工如何能保持忠诚并安心地投入工作呢？&lt;/p&gt;&#xA;&lt;h1 id=&#34;释然&#34;&gt;释然&lt;/h1&gt;&#xA;&lt;p&gt;当然，裁员的预兆在之前就显现出来：例如最近几个月上海 site 员工的合同到期后便不再续约，组内接近一半的同事也选择 relocate 去了 Toronto。&lt;/p&gt;&#xA;&lt;p&gt;很难想象世界上还有比 Autodesk 更加舒适的公司，但与上家蚂蚁相比，如出一辙的组织结构与人性导致个体的&lt;em&gt;做事方式&lt;/em&gt;几乎没有差异，例如好大喜功的 PPT 文化，部分故意被创造的“&lt;a href=&#34;https://book.douban.com/subject/30437833/&#34;&gt;狗屁工作&lt;/a&gt;”，以及暗流涌动的斗争。想起玉伯的一期播客：&lt;a href=&#34;https://www.xiaoyuzhoufm.com/episode/663dbcbdeb5653e14a4f814d&#34;&gt;160.对话玉伯：字节是我在阿里的第16年，今天是Last Day&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;失去工作未必是坏消息，相信多年之后回想起来，会庆幸在最美好的年纪按下暂停键，用力去体验色彩缤纷的每一天。&lt;/p&gt;&#xA;&lt;h1 id=&#34;相关&#34;&gt;相关&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://changchen.me/blog/20231104/why-did-i-left-ant-group/&#34;&gt;近况更新 | 为什么我离开了工作五年的蚂蚁金服 🐜&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://changchen.me/blog/20240217/why-did-i-join-autodesk/&#34;&gt;在 Autodesk 工作是怎样一番体验？&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;其他&#34;&gt;其他&lt;/h1&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://psyche.co/ideas/learning-to-be-a-loser-a-philosophers-case-for-doing-nothing&#34;&gt;Learning to be a loser: a philosopher’s case for doing nothing&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;</description>
    </item>
    <item>
      <title>[读后感]《The Mom Test》</title>
      <link>https://changchen.me/blog/20250418/mom_test_notes/</link>
      <pubDate>Fri, 18 Apr 2025 07:33:52 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20250418/mom_test_notes/</guid>
      <description>&lt;p&gt;在阅读&lt;a href=&#34;https://book.douban.com/subject/26320572/&#34;&gt;《The Mom Test》&lt;/a&gt;之前，原本以为其内容主要是关于如何找家人验证产品的可行性，因为家人是普通的大众受众，也通常不会对我们撒谎。&lt;/p&gt;&#xA;&lt;p&gt;然而恰恰相反，这本书实际上探讨的是：如何掌握提出有效问题并获取真实反馈的技巧，以至于你的老母亲也无法撒谎，因为她是这个世界上最会安慰你的人 :) - crafting good questions that even your mom can&amp;rsquo;t lie to you (coz she love u)&lt;/p&gt;&#xA;&lt;h1 id=&#34;1-提问的智慧&#34;&gt;1. 提问的智慧&lt;/h1&gt;&#xA;&lt;p&gt;原则：重点关注用户的问题、关注点、约束和目标&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;谈论&lt;mark&gt;他们的生活&lt;/mark&gt;，而不是你的想法&lt;/li&gt;&#xA;&lt;li&gt;询问&lt;mark&gt;过去&lt;/mark&gt;的具体事例，而不是关于未来的泛泛之谈或意见&lt;/li&gt;&#xA;&lt;li&gt;&lt;mark&gt;少说多听&lt;/mark&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;details&gt;&#xA;&lt;summary&gt;P.S. 书中的一些例子如果你感兴趣的话：&lt;/summary&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;❌ Would you buy a product which did?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;anything involving the future is an over-optimistic lie&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;❌ How much would you pay for X?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;people will lie to u if they think it;s what you want to hear&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;⚠️ What would your dream product do?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;继续追问背后的 motivation 和 constraints&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;✅ Why do you bother?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;you are shooting blind until you understand why - their goal - motivation.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;✅ What are the implications of that?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;虽然痛点很痛，具体意味着什么？&lt;/li&gt;&#xA;&lt;li&gt;Some problem dont actually matter&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;✅ Talk me through the last time that happened&#xA;&lt;ul&gt;&#xA;&lt;li&gt;完整的 workflow 帮助我们观察到用户真正的问题和痛点，而不是用户心理想的那样&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;✅ What else have you tried? - what are you using now ?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;了解如果有现有方案很成熟，那对方肯定不会买你的产品。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;❌ Would you pay X for a product whiwhich did Y？&#xA;&lt;ul&gt;&#xA;&lt;li&gt;用户对自己的行为过于乐观（除了真正掏钱的时候）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;✅ how are you dealing with ti now?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;instead of 问他们是否为了你的产品付费，而是问问他们现在真正付钱的？&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;✅ where does the money come from&#xA;&lt;ul&gt;&#xA;&lt;li&gt;找到 付钱的关键先生 budget owner，以及 repeatable sale roadmap （toB 的场景）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;✅ what else should I talk to ?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;每次对话结束时的好问题（测试是否对你感兴趣，）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;✅ is there anything else I should have asked?&#xA;&lt;ul&gt;&#xA;&lt;li&gt;反过来让对方帮助你&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/details&gt;&#xA;&lt;h1 id=&#34;2-避免坏数据&#34;&gt;2. 避免坏数据&lt;/h1&gt;&#xA;&lt;p&gt;错误的问题 -》坏数据（bad data）：&lt;/p&gt;</description>
    </item>
    <item>
      <title>独立开发 - Paddle 全球收单攻略</title>
      <link>https://changchen.me/blog/20250412/paddle_integration/</link>
      <pubDate>Sat, 12 Apr 2025 09:54:56 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20250412/paddle_integration/</guid>
      <description>&lt;p&gt;作为一个独立开发者，如果暂时无法前往香港开户，也没精力开设英国公司，如何为快速全球收款并验证产品呢？🤔&lt;/p&gt;&#xA;&lt;p&gt;推荐老牌 &lt;a href=&#34;https://www.paddle.com/solutions/saas-billing&#34;&gt;Paddle 平台&lt;/a&gt;，让赚钱如同呼吸般简单：上线第一日还没来得及推广，便收入两笔交易 ^^（感谢来自澳洲的陌生用户的支持）。&lt;/p&gt;&#xA;&lt;p&gt;最终集成效果：&lt;a href=&#34;https://beaverhabits.com/pricing&#34;&gt;https://beaverhabits.com/pricing&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/17444232133603.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;接入步骤&#34;&gt;接入步骤&lt;/h1&gt;&#xA;&lt;h2 id=&#34;1-域名认证&#34;&gt;1. 域名认证&lt;/h2&gt;&#xA;&lt;p&gt;官网申请发起后，不出意外被拒绝。但无需灰心，直接回复邮件根据要求继续耐心完善资料即可。&lt;/p&gt;&#xA;&lt;p&gt;有趣的是邮件一来一回必定相隔一天.. 虽然态度特别友善，但每次对接的都是不同的客服，但效率极低。每次回复建议带上总结上下文，帮助对方快速通过审核。参考我的最后一次回复：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Hi xxx,&#xA;&#xA;To make your review as convenient as possible, I have summarized our past conversations blew, hoping it can be helpful.&#xA;&#xA;Pricing page: https://www.beaverhabits.com/pricing, i.e. the page to embed the Paddle checkout, which including:&#xA;- [x] Terms &amp;amp; Conditions page in the bottom of the page&#xA;- [x] Refund Policy (following Paddle&amp;#39;s 14-day policy, and also mentioned on the Terms &amp;amp; Conditions page)&#xA;- [x] Privacy Policy page in the bottom of the page&#xA;- [x] Pricing plans, features and comprehensive video to helping customers better understand the product&#xA;&#xA;Product page: https://www.beaverhabits.com/gui&#xA;- username: paddle@demo.com&#xA;- password: paddle&#xA;&#xA;Other links:&#xA;- RESTful API documentation: https://github.com/daya0576/beaverhabits/wiki/Beaver-Habit-Tracker-API-How%E2%80%90to-Guide&#xA;&#xA;Thanks&#xA;Henry&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;最终耗费两周通过审核。&lt;/p&gt;</description>
    </item>
    <item>
      <title>[读后感]《The Lean Startup｜精益创业》</title>
      <link>https://changchen.me/blog/20250328/the_lean_startup/</link>
      <pubDate>Fri, 28 Mar 2025 00:51:00 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20250328/the_lean_startup/</guid>
      <description>&lt;h1 id=&#34;glossary&#34;&gt;Glossary&lt;/h1&gt;&#xA;&lt;p&gt;字典中 Lean 的中文解释为 瘦的、精简的，而书中的 Lean 来源于 20 世纪 80 年代日本丰田发明的精益生产，意在利用优化流程减少浪费，最终提升客户价值。所以这本书准确的翻译为：精益创业（获得市场验证之前不要过度投资资源导致浪费）。&lt;/p&gt;&#xA;&lt;h1 id=&#34;读后感&#34;&gt;读后感&lt;/h1&gt;&#xA;&lt;p&gt;读到一半时便草草放弃，快速游览了中文目录与译文。倒不是因为晦涩冗余的叙述，而是文中的许多观点“味道”太重：适合大部分大厂员工如何内部创业，根据方法论打出一套组合拳，获取所谓的“业务价值”。对于个人开发者来说，不否认非常受启发并帮助十足，但并非 100% 适用。一是个人能力和创造力往往有可能打破世界规则；二是有时并非以收入作为衡量产品好坏与价值的标准。&lt;/p&gt;&#xA;&lt;p&gt;突然想起&lt;a href=&#34;https://movie.douban.com/subject/35956190/&#34;&gt;《走走停停》&lt;/a&gt;电影中的一个桥段：“厨房，吴迪和吴妈聊天”。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;吴迪：你是不是很后悔当初没去考北舞？&lt;/li&gt;&#xA;&lt;li&gt;吴妈：想那些做什么？没时间。&lt;/li&gt;&#xA;&lt;li&gt;吴迪：我一直以为，你想让我留在大城市，是因为当年你没去成。&lt;/li&gt;&#xA;&lt;li&gt;吴妈：怎么可能！哪个父母不想自己的子女留在身边呢？那个时候我就是觉得，你很年轻，有很多想法，去北京闯一下也没什么。你现在回来了，还不是一样可以实现自己的想法。&lt;/li&gt;&#xA;&lt;li&gt;吴迪：那万一，还是失败了呢？&lt;/li&gt;&#xA;&lt;li&gt;吴妈：你还记不记得那个肖叔叔？就是我们那个老邻居，前两年得癌症死了。他年轻的时候，做生意都失败了，一辈子没有结婚，也没有子女，一直到老都跟他妈住在一起，就是靠教小孩弹钢琴生活。到后来他不行了，他找过一回你爸，他说，他有个学生很有天赋，叫你爸帮那个小孩再找一个好点的钢琴老师。&lt;em&gt;他这辈子看起来好像不是很成功。但是我们都很怀念这个人&lt;/em&gt;。成功不见得是金子，失败也不见得是屎，混得好混得差，就是别人嘴上说说，你自己晓得你是什么人就行了。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;笔记正文&#34;&gt;笔记正文&lt;/h1&gt;&#xA;&lt;h2 id=&#34;背景&#34;&gt;背景&lt;/h2&gt;&#xA;&lt;p&gt;即使在几十万人的大公司中，只要创造新的产品或服务便可以被称之为“创业者”。然而，如果每个财年开始便制定详细的计划和以周为单位的 milestone，往往从开始便通向了失败的坟墓。除了从上而下的官僚主义扼杀了创新，&lt;strong&gt;本质上因为未来的未知性与极度不确定性&lt;/strong&gt;。形象的例子：想象你开车通往商场，你可能一下子无法在大脑中绘制详细的路线，但每个路口的随机应变最终会带领着你抵达心中的目的地。&lt;/p&gt;&#xA;&lt;p&gt;另一个极端 “just do it” 的做法，往往制造混乱而不是成功（除非依靠救世主）。所以我们需要一套科学的机制，不断在失败中学习，才能找到用户真正并愿意想要并&lt;strong&gt;付费&lt;/strong&gt;的产品。&lt;/p&gt;&#xA;&lt;p&gt;有趣的事实：大多数时候，用户事先不知道他们想要什么。。这也是为什么闭门造车“憋大招”是最常见的错误做法。正确的策略：首先尽快提供顾客尝试某件物品的机会，然后从他们的反馈中找到他们真正想要的东西，并不断调整策略和产品最终满足需求。也就是说把创业或做产品当作一种试验，需要在不断的失败中学习并改进。例如在电子商务风靡之前，假如你想创办一个购买袜子的在线商城。相比于花费半年搭建一个完整的购物流程，你可以将本地商贩的袜子图片直接挂在网站上，如果有人拍下你就亲自去本地商贩将袜子买下寄出，来验证：1）是否真正创造价值并解决了用户的需求 2）未来的投入是否值得&lt;/p&gt;&#xA;&lt;h2 id=&#34;steering---驾驭&#34;&gt;STEERING - 驾驭&lt;/h2&gt;&#xA;&lt;p&gt;将上面零碎的知识总结为 BUILD-MEASURE-LEARN feedback loop&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/17428273972329.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;ideas&#34;&gt;IDEAS&lt;/h3&gt;&#xA;&lt;p&gt;首先认清基本现实（真相），并进一步做出第一次假设（ideas），以 iPod 为例：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;事实：人们是否喜欢在外听音乐？是的，随身听的流行已证明。&lt;/li&gt;&#xA;&lt;li&gt;假设：人们愿意付费下载音乐（坚定的信念如果合理的话最终会收获成功）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;p.s. 注意只有深入基层亲自体验才能发现真相，并做出合理的假设。&lt;/p&gt;&#xA;&lt;h3 id=&#34;build&#34;&gt;BUILD&lt;/h3&gt;&#xA;&lt;p&gt;类似上面卖袜子的例子，使用最小代价构建构建 MVP（minimum viable product），让上面的 feedback loop 跑起来，并从用户的使用数据中获取新的 ideas。&lt;/p&gt;&#xA;&lt;p&gt;首次推出的产品不需要完美，因为首批有远见的用户会自动想象未来的样子。作者举个几个成功并有趣的例子：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Dropbox：相比于花费三年时间创造一款软件，创始人为了让用户与投资人理解产品和远景，制作了一个 3 分钟“视频”，最终获得了成功。在这个例子中，这个&lt;strong&gt;视频&lt;/strong&gt;也是一个最小可行产品。&lt;/li&gt;&#xA;&lt;li&gt;Food on the Table：提供定制化精细化的家庭食物供应，最早从第一个用户开始打磨产品，同时并没有设计软件，寻找合伙人或招聘跟多的人（又称为 concierge MVP）。验证可行后再持续扩大规模。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;个人想法：但是游戏天际线2的失败是否和这个观点相矛盾？&#xA;个人理解：首次推出的产品可以不完美，但前提需要控制受众，小范围打磨产品后，再推向市场。&lt;/p&gt;</description>
    </item>
    <item>
      <title>[开源] 无障碍网页设计（Design Accessible Websites）</title>
      <link>https://changchen.me/blog/20250323/design_accessible_websites/</link>
      <pubDate>Sun, 23 Mar 2025 09:46:36 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20250323/design_accessible_websites/</guid>
      <description>&lt;h1 id=&#34;背景&#34;&gt;背景&lt;/h1&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve also been looking for a habit tracker that just does habits. Closest I&amp;rsquo;ve found is Beaver Habit Tracker but its accessibility issues made it impossible for me to use&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;偶然刷到一条 &lt;a href=&#34;https://www.reddit.com/r/selfhosted/comments/1jaosfe/sharing_my_setup/&#34;&gt;reddit&lt;/a&gt; 的帖子，介绍日常使用的 selfhosted 软件。文中提到他对 &lt;a href=&#34;https://github.com/daya0576/beaverhabits&#34;&gt;Beaver Habit Tracker&lt;/a&gt; 的极简长草，但很遗憾由于 accessibility 的问题导致无法使用。&lt;/p&gt;&#xA;&lt;p&gt;第一时间没有明白 accessibility 的含义，以为是交互不够友好。后来才注意到作者是一名盲人，由于网站从来没有考虑到无障碍的设计，导致他无法使用。内心小小的受震撼，这篇文章将介绍 Udemy 课程 &lt;a href=&#34;https://www.udemy.com/course/web-accessibility-training-course-wcag-21-compliance/?couponCode=KEEPLEARNING&#34;&gt;Web Accessibility Training Course WCAG 2.1 &amp;amp; 2.2 Compliance&lt;/a&gt; 的学习笔记与心得。&lt;/p&gt;&#xA;&lt;h1 id=&#34;更新20250328&#34;&gt;更新（2025/03/28）&lt;/h1&gt;&#xA;&lt;p&gt;在实际的网页优化改造中，Quasar 提供的大部分前端组件自身已支持无障碍设计。而我们需要做的：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;通过 ARIA 主动隐藏无关的组件（让屏幕阅读器跳过）&lt;/li&gt;&#xA;&lt;li&gt;通过 ARIA 主动添加描述信息，例如在移动至 checkbox 时，分别添加描述：今天，昨天，两天前。&lt;/li&gt;&#xA;&lt;li&gt;&amp;hellip;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h1 id=&#34;正文&#34;&gt;正文&lt;/h1&gt;&#xA;&lt;h2 id=&#34;重新认识无障碍accessibility&#34;&gt;重新认识无障碍（Accessibility）&lt;/h2&gt;&#xA;&lt;h3 id=&#34;定义残疾人&#34;&gt;定义残疾人&lt;/h3&gt;&#xA;&lt;p&gt;残疾人的定义可从不同视角来看待：&lt;/p&gt;</description>
    </item>
    <item>
      <title>[读后感]《Atomic Habits｜原子习惯》</title>
      <link>https://changchen.me/blog/20250319/atom_habits_notes/</link>
      <pubDate>Wed, 19 Mar 2025 07:10:45 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20250319/atom_habits_notes/</guid>
      <description>&lt;p&gt;最近几周在读一本书《Atomic Habits》，表面上在阐述养成好习惯的途径，实则上更深刻探讨了如何改变你的人生。&lt;/p&gt;&#xA;&lt;h1 id=&#34;忘掉目标构建系统&#34;&gt;忘掉目标，构建“系统”&lt;/h1&gt;&#xA;&lt;p&gt;构建一套可持续健康的“系统”，而不是落入精致目标的陷阱&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Winners and losers have the same goals：例如每个运动员都希望成为奥运冠军，但真正的奥运冠军的成功，并不是因为当初精心制定目标。&lt;/li&gt;&#xA;&lt;li&gt;Achieving a goal is only a momentary change：如果目标是让房间保持干净，仅仅一次的打扫可以达到目标，但无法做到长久的维系。&lt;/li&gt;&#xA;&lt;li&gt;Goals restrict your happiness：构建可持续的系统，并持续享受过程，而不是掉入延迟满足的陷阱。&lt;/li&gt;&#xA;&lt;li&gt;Goals are at odds with long-term progress：即使咬牙坚持完成短期目标，是否会如同泄气的气球般，瘫倒，再也不愿继续前行&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;类似《为什么伟大不能被计划》，以及与大公司中 KPI 机制弊端的道理异曲同工。&lt;/p&gt;&#xA;&lt;h1 id=&#34;通过四步构建系统&#34;&gt;通过四步构建“系统”&lt;/h1&gt;&#xA;&lt;p&gt;作者系统的将一个习惯拆解为四个部分，举个例子：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;code&gt;Cue&lt;/code&gt; 线索: 你的手机震动，提示有新短信。&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Craving&lt;/code&gt; 渴望: 你想要了解短信的内容。&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Response&lt;/code&gt; 反应: 你拿起手机阅读短信内容。&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Reward&lt;/code&gt; 奖励: 你满足了解短信的渴望。拿起手机的行为与手机震动形成了联系。&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;对应如何创建与培养一个好习惯：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;code&gt;Cue&lt;/code&gt;: &lt;mark&gt;Make it obvious&lt;/mark&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;大部分根深蒂固的习惯是无意识的，所以第一步要做到感知。&lt;/li&gt;&#xA;&lt;li&gt;具体实施方法：罗列一天的每个习惯并标记。首先帮助意识到坏习惯，例如起床时刷手机。并利用已养成的习惯来关联培养新习惯（habit stacking），例如早上刷牙前做引体向上锻炼。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Craving&lt;/code&gt;: &lt;mark&gt;Make it attractive&lt;/mark&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;习惯本质上就是寻找多巴胺的过程，有趣的是不论是「体验」还是「期待」都会分泌多巴胺，甚至后者更多。&lt;/li&gt;&#xA;&lt;li&gt;文化对形成习惯的重要性：为什么在图书馆中学习可以更加专注。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Response&lt;/code&gt;: &lt;mark&gt;Make it easy&lt;/mark&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;人类默认会被更容易的选项吸引，所以尽可能让好习惯的阻碍尽可能低。反而言之如何让坏习惯不可能发生？例如每天晚上十点，让路由器自动关机 -》早睡&lt;/li&gt;&#xA;&lt;li&gt;如何搞定延迟症？2 minutes rule：当你准备改变时，从小做起，控制在两分钟之内。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;Reward&lt;/code&gt;: &lt;mark&gt;Make it satisfying&lt;/mark&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;让习惯本身变得享受，例如贫民窟如何让 洗手 习惯养成？答案：提供香皂配合泡泡和香味，让洗手的过程变得享受。&lt;/li&gt;&#xA;&lt;li&gt;动物从古至今都是短时间内反馈，已写入基因。所以短期的奖励也是必要的：例如每次好习惯结束的时候，存一百块钱笔钱存到账号🤔&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h1 id=&#34;how-to-keep-your-habits-on-track&#34;&gt;How to keep your habits on track&lt;/h1&gt;&#xA;&lt;p&gt;通过这段终于明白了为什么习惯跟踪软件，可以帮助培养习惯起到积极的作用：&lt;/p&gt;</description>
    </item>
    <item>
      <title>分享我的家庭自部署实践</title>
      <link>https://changchen.me/blog/20250228/surge_ponte/</link>
      <pubDate>Fri, 28 Feb 2025 15:57:50 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20250228/surge_ponte/</guid>
      <description>&lt;p&gt;通过自部署（Self-Hosted），你可以使用 &lt;a href=&#34;https://bitwarden.com/&#34;&gt;Bitwarden&lt;/a&gt; 取代 1Password 丝滑地管理所有密钥；使用 &lt;a href=&#34;https://transmissionbt.com/&#34;&gt;Transmission&lt;/a&gt; 随时随地一键下载喜欢的 pt 电影；使用 &lt;a href=&#34;https://www.home-assistant.io/&#34;&gt;Home Assistant&lt;/a&gt; 管理家中所有智能设备并远程控制&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;配合同城小于 5ms 的延迟，甚至可以在公司午休时，一键回家写会代码放松一下 ^^&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h1 id=&#34;网络内网穿透&#34;&gt;网络（内网穿透）&lt;/h1&gt;&#xA;&lt;h2 id=&#34;选项一-cloudflare-tunnel&#34;&gt;选项一: Cloudflare Tunnel&lt;/h2&gt;&#xA;&lt;p&gt;下图为之前家中的网络拓扑：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;绿色代表 Mesh 路由器，支持设备在多个路由器之间无缝切换&lt;/li&gt;&#xA;&lt;li&gt;黄色代表 Surge 作为网关的设备（通过接管 DHCP 统一管理子网设备）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/20240228_homelab.svg&#34; alt=&#34;20240228_homelab&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;可以看到虽然通过 cloudflare tunnel 暴露了内网的服务，但这种模式有两个缺点：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;网络延迟：由于恶劣的网络环境，每次“回家”需要跨越半个地球（100+ms 延迟）&lt;/li&gt;&#xA;&lt;li&gt;隐私问题：暴露公网后，所有用户可直接访问&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;题外话云宽带&#34;&gt;题外话：云宽带&lt;/h3&gt;&#xA;&lt;p&gt;2022 年开始，电信未通知用户情况下默认开启。&lt;/p&gt;&#xA;&lt;p&gt;对老婆解释：之前快递支持上门送件，结果有一天只配送至菜鸟驿站，但细思恐极的是菜鸟号称为了方便接收快递，直接配了你家的钥匙。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/global/cloud_gateway.svg&#34; alt=&#34;cloud_gateway&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;选项二-surge-ponte&#34;&gt;选项二: Surge Ponte&lt;/h2&gt;&#xA;&lt;p&gt;幸运的是，Surge 支持开启私有 mesh 网络：&lt;a href=&#34;https://kb.nssurge.com/surge-knowledge-base/zh/guidelines/ponte&#34;&gt;Ponte&lt;/a&gt;。通过国内代理做转发，或直接使用公网 IP 做端口转发即可开启：&lt;/p&gt;&#xA;&lt;p&gt;博主选择了后者，通过以下步骤 100% 掌控家庭的网络：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;联系电信客服关闭云宽带&lt;/li&gt;&#xA;&lt;li&gt;联系电信客服申请公网 IP&lt;/li&gt;&#xA;&lt;li&gt;联系电信客服或对应宽带师傅，将光猫修改为桥接后，通过路由器拨号&lt;/li&gt;&#xA;&lt;li&gt;通过 Surge 开启 Ponte 并在路由器中设置端口转发（如下图）&lt;/li&gt;&#xA;&lt;li&gt;通过域名 mini.sponte 无缝丝滑访问家庭自部署服务&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;通过-ssh-回家&#34;&gt;通过 ssh 回家&lt;/h3&gt;&#xA;&lt;p&gt;个人的 ssh config 供参考：&lt;/p&gt;</description>
    </item>
    <item>
      <title>[开源] Beaver Habit Tracker 近况更新（v0.3.4）</title>
      <link>https://changchen.me/blog/20250126/habit_tracker_without_goal/</link>
      <pubDate>Sun, 26 Jan 2025 20:51:28 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20250126/habit_tracker_without_goal/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://github.com/daya0576/beaverhabits&#34;&gt;Beaver Habit Tracker&lt;/a&gt; 是一款使用 Python 编写的习惯跟踪应用，支持自部署。由于作者希望大家尽可能生活的松弛，所以在应用中没有目标的概念 :)&lt;/p&gt;&#xA;&lt;h1 id=&#34;atomic-habits&#34;&gt;《Atomic Habits》&lt;/h1&gt;&#xA;&lt;p&gt;为了更好的开展项目获取更多灵感，最近开始读一本书，名字叫做《Atomic Habits》&lt;/p&gt;&#xA;&lt;p&gt;有趣的是，开篇作者的观点便与博主项目的标题不默而合：&lt;mark&gt;FORGET ABOUT GOALS, FOCUS ON SYSTEMS INSTEAD&lt;/mark&gt;&lt;/p&gt;&#xA;&lt;p&gt;文中阐述的四个目标的陷阱：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Winners and losers have the same goals&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;每个运动员都希望成为奥运冠军，但真正的奥运冠军的成功，并不是因为当初制定了雄心勃勃的目标。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;Achieving a goal is only a momentary change&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;如果目标是让房间保持干净，仅仅一次的打扫可以达到目标，但无法做到长久的维系&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;ol start=&#34;3&#34;&gt;&#xA;&lt;li&gt;Goals restrict your happiness.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;构建可持续的系统，并享受过程，而不是掉入延迟满足的陷阱。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;ol start=&#34;4&#34;&gt;&#xA;&lt;li&gt;Goals are at odds with long-term progress.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;即使咬牙坚持完成目标，是否会如同泄气的气球般，瘫倒，再也不愿继续前行&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;总而言之，作者呼吁：“忘记你的目标，而是专注构建系统”。是鸡汤还是干货，期待后续的读后感～&lt;/p&gt;&#xA;&lt;h1 id=&#34;beaver-habits-034-更新-&#34;&gt;Beaver Habits 0.3.4 更新 ✨&lt;/h1&gt;&#xA;&lt;p&gt;最新的更新新增了以下的特性：&lt;/p&gt;&#xA;&lt;h2 id=&#34;daily-notesdescriptions&#34;&gt;Daily Notes/descriptions&lt;/h2&gt;&#xA;&lt;p&gt;根据用户提出的需求，希望完成“习惯”的时候，支持添加简短的描述。例如追踪阅读的频率时，希望能够记录在那个特定时刻正在阅读的书。&lt;/p&gt;&#xA;&lt;p&gt;参考了市面上的产品，主流的做法是全局开关：如果打开后，点击完成就会跳出 dialog 供用户输入文字。&lt;/p&gt;&#xA;&lt;p&gt;第一版实现后，总觉得有一丝别扭，如何才能让这个功能对用户的“负担”降到最低呢？于是有了这个天才般的想法：去掉了任何的开关或编辑习惯类型，只要「长按」便可以触发添加文字，与「单击」动作相配合。最终实现自然流畅的交互：&lt;/p&gt;&#xA;&lt;video class=&#34;video-shortcode&#34; preload=&#34;auto&#34; controls&gt;&#xA;    &lt;source src=&#34;https://changchen.me/images/blog/global/Screen_Recording_2025-01-27_at_06.36.13.mov&#34; type=&#34;video/webm&#34;&gt;&#xA;    There should have been a video here but your browser does not seem&#xA;    to support it.&#xA;&lt;/video&gt;&#xA;&#xA;&lt;p&gt;实现的过程中，遇到的几个问题：&lt;/p&gt;</description>
    </item>
    <item>
      <title>2024 年终小结 🦫</title>
      <link>https://changchen.me/blog/20250101/2024_summary/</link>
      <pubDate>Wed, 01 Jan 2025 13:26:52 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20250101/2024_summary/</guid>
      <description>&lt;h1 id=&#34;目标回顾&#34;&gt;目标回顾&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#o1%EF%BC%9A%E5%B7%A5%E4%BD%9C%E3%83%BB%E4%BA%8B%E4%B8%9A&#34;&gt;O1：工作・事业&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E2%9C%85kr1%EF%BC%9A%E8%BF%90%E7%BB%B4%E8%80%83%E5%8F%96-aws-sysops-administrator%E8%AF%81%E4%B9%A6&#34;&gt;✅ KR1：运维 -&amp;gt; 考取 AWS SysOps Administrator 证书&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E2%9C%85kr2%EF%BC%9A%E5%BC%80%E5%8F%91%E5%BC%80%E5%90%AF%E4%B8%80%E4%B8%AA%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE&#34;&gt;✅ KR2：开发 -&amp;gt; 开启一个开源项目&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E2%9A%A0%EF%B8%8Fkr3%EF%BC%9A%E5%8F%A3%E8%AF%AD%E6%AF%8F%E4%B8%AA%E6%9C%88-10%E5%B0%8F%E6%97%B6%E7%9A%84%E8%8B%B1%E6%96%87%E5%8F%A3%E8%AF%AD%E7%BB%83%E4%B9%A0&#34;&gt;⚠️ KR3：口语 -&amp;gt; 每个月 10 小时的英文口语练习&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#o2%EF%BC%9A%E5%AD%A6%E4%B9%A0%E3%83%BB%E6%88%90%E9%95%BF&#34;&gt;O2：学习・成长&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E2%9A%A0%EF%B8%8Fkr1%EF%BC%9A%E4%B9%92%E4%B9%93%E7%90%83%E7%88%B1%E8%81%9A%E7%BD%91%E7%A7%AF%E5%88%86%E4%B8%8A-1700&#34;&gt;⚠️ KR1： 乒乓球爱聚网积分上 1700&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#o3%EF%BC%9A%E8%B4%A2%E5%8A%A1%E3%83%BB%E7%90%86%E8%B4%A2&#34;&gt;O3：财务・理财&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E2%9D%8Ckr1%EF%BC%9A3%E8%A2%AB%E5%8A%A8%E6%94%B6%E5%85%A5&#34;&gt;❌ KR1：3% 被动收入&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;o1工作事业&#34;&gt;O1：工作・事业&lt;/h2&gt;&#xA;&lt;p&gt;工作于我而言，就是一份“工作”：雇主支付报酬，被雇佣者尽可能专业地完成任务，简而言之就是一个莫得感情的工作机器人。甚至针对所谓毫无意义的工作，例如地铁站安检，并不会从内心反感，更不会尝试在工作中寻找或追求&lt;em&gt;意义&lt;/em&gt;。&lt;/p&gt;&#xA;&lt;p&gt;当然情绪稳定除了个人因素以外，Autodesk 作为一家天花板级别的雇主，也在幸福感上无限加分，例如圣诞假期已经持续了一周半😅。可惜遗憾的是，在中美脱钩的大背景下，组内一半的同事已远赴 Toronto，剩余的人在不确定中强颜欢笑。&lt;/p&gt;&#xA;&lt;p&gt;虽然个人非常讨厌不确定性，但如开头所说，作为一名专业的打工机器人，只要雇主支付了报酬，便会全力以赴做好手上的每一件事。即使假设今天是你在公司的最后一天。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;回到年度目标回顾，有趣的是，在 Autodesk 工作，每年除了本职工作 OKR 的同时，还会制定 IDP（个人发展计划？）。&lt;/p&gt;&#xA;&lt;p&gt;而下面三个 Key Results 刚好对应博主 IDP 中的三个目标：&lt;/p&gt;&#xA;&lt;h3 id=&#34;-kr1运维---考取-aws-sysops-administrator-证书&#34;&gt;✅ KR1：运维 -&amp;gt; 考取 AWS SysOps Administrator 证书&lt;/h3&gt;&#xA;&lt;p&gt;坦率地说，AWS 的证书考取有一定功利与应试，但在职场游戏规则中，它从侧面反映积极向上的态度，以及对新事物的接受与学习能力。&lt;/p&gt;&#xA;&lt;p&gt;除此之外，在考取证书的过程中，顺便完成了 26 个小时的 udemy 课程学习，也收获了满满的笔记。举个例子，在准备 cutover plan 的时候，route53 weighted routing 便突然浮现在我的脑海中。。&lt;/p&gt;&#xA;&lt;p&gt;总而言之，考试费用虽然不便宜，但对于快速了解 AWS 或个人职业发展，是一项不错的投资：&#xA;&lt;img src=&#34;https://changchen.me/images/blog/global/17357148148964.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>万兆 nas diy 搭建小记（Synology -&gt; Unraid）</title>
      <link>https://changchen.me/blog/20241228/synology_to_unraid/</link>
      <pubDate>Sat, 28 Dec 2024 06:13:48 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20241228/synology_to_unraid/</guid>
      <description>&lt;p&gt;自从购买了 Mac Mini M4 PRO, 博主便寝食难安 :(&lt;/p&gt;&#xA;&lt;p&gt;原因竟是选配了「万兆」网口，却无奈家中预铺的网线与群晖 DS220+ 都受限&lt;strong&gt;千兆&lt;/strong&gt;，白白浪费着实令人焦虑。&lt;/p&gt;&#xA;&lt;p&gt;近日更是被群晖硬盘“炒豆子”声音困扰，于是便着手打造一台心目中理想的万兆 nas 🤩&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;拒绝噪音：全固态阵列 or 机械硬盘休眠&lt;/li&gt;&#xA;&lt;li&gt;高速连接：万兆 or 雷电连接&lt;/li&gt;&#xA;&lt;li&gt;可扩展性：横向无限扩展&lt;/li&gt;&#xA;&lt;li&gt;&amp;hellip;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h1 id=&#34;toc&#34;&gt;TOC&lt;/h1&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E6%94%B9%E9%80%A0%E8%AE%A1%E5%88%92&#34;&gt;改造计划&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E7%A1%AC%E4%BB%B6%E6%94%B9%E9%80%A0&#34;&gt;硬件改造&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#hdd&#34;&gt;HDD&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E4%B8%87%E5%85%86%E7%BD%91%E5%8D%A1&#34;&gt;万兆网卡&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E8%BD%AF%E4%BB%B6%E6%90%AD%E5%BB%BA&#34;&gt;软件搭建&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#unraid&#34;&gt;Unraid&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E6%9C%80%E7%BB%88%E6%95%88%E6%9E%9C&#34;&gt;最终效果&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E7%A1%AC%E4%BB%B6%E4%BA%A4%E4%BA%92&#34;&gt;硬件交互&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E8%BD%AF%E4%BB%B6%E4%BA%A4%E4%BA%92&#34;&gt;软件交互&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E6%80%BB%E7%BB%93&#34;&gt;总结&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h1 id=&#34;改造计划&#34;&gt;改造计划&lt;/h1&gt;&#xA;&lt;p&gt;基于上述需求，市场上有不少优秀的全闪存 nas 产品，例如新推出的 &lt;a href=&#34;https://www.lincplustech.com/products/lincstation-n1-network-attached-storage&#34;&gt;LincPlus N1&lt;/a&gt;，&lt;a href=&#34;https://www.terra-master.com/us/f8-ssd.html&#34;&gt;TERRA MASTER F8 SSD&lt;/a&gt;, 都性感的令人心动。但一体化的设计，在扩展性上隐隐令人犹豫与担忧。&lt;/p&gt;&#xA;&lt;p&gt;转念一想，最终将魔爪竟伸向了一年前搭建的 PC（&lt;a href=&#34;https://changchen.me/blog/20230806/build-pc-formd-t1/&#34;&gt;FormD T1 V2.0 装机小记&lt;/a&gt;）与 Unraid 系统：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;拒绝噪音：&#xA;&lt;ul&gt;&#xA;&lt;li&gt;机械硬盘无访问超时自动休眠（spin down delay）-&amp;gt; 解决炒豆子噪音问题&lt;/li&gt;&#xA;&lt;li&gt;定期或根据自定义策略，深夜自动将 ssd 缓存池数据，写入 hdd 冷备（&lt;em&gt;美妙的是对于外部共享访问无感&lt;/em&gt;）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;高速连接&#xA;&lt;ul&gt;&#xA;&lt;li&gt;新增万兆网卡，配合 ssd 缓存池（Unraid Pool），与 Mac 高速连接&lt;/li&gt;&#xA;&lt;li&gt;未来官方支持雷电后，进一步提升传输速率&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;可扩展性&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Unraid 支持不同容量硬盘组阵列，灵活新增硬盘（&lt;em&gt;校验盘的容量必须最大&lt;/em&gt;）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&amp;hellip;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h1 id=&#34;硬件改造&#34;&gt;硬件改造&lt;/h1&gt;&#xA;&lt;p&gt;当初购买了 formd t1，第一眼就被它性感的外观吸引，以及享受动手 diy 的过程。不同的自定义组件相互拼凑，就如同编程中的“组合”，令人心旷神怡。&lt;/p&gt;</description>
    </item>
    <item>
      <title>终端搬家小记（iTerm → Alacritty）</title>
      <link>https://changchen.me/blog/20241208/terminal_migration/</link>
      <pubDate>Sun, 08 Dec 2024 14:49:56 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20241208/terminal_migration/</guid>
      <description>&lt;p&gt;工欲善其事，必先利其器，作为一名程序员，有一款趁手的终端工具，就像厨子拥有一把锋利的菜刀一样重要。&lt;/p&gt;&#xA;&lt;p&gt;虽然 iTerm 开箱即用，但强大丰富的功能却让它显得略显臃肿，例如添加 tab 或分屏等功能，由于使用 tmux 所以完全用不上。以及配置选项眼花缭乱，甚至有些混乱，令人头痛。&lt;/p&gt;&#xA;&lt;p&gt;偶遇 Alacritty 便被它的设计哲学所吸引：尽可能的做减法。选择它并不是因为拥有某个 killer feature 或独一无二的地方，只是因为 Alacritty 拥有你所需要的所有功能，而且没有你暂时不需要的功能。&lt;/p&gt;&#xA;&lt;p&gt;除此之外，在 Alacritty 中，配置文件也非常符合直觉，保存后便实时自动生效（On The Fly），令人身心愉悦，神清气爽。&lt;/p&gt;&#xA;&lt;h1 id=&#34;troubleshoot&#34;&gt;Troubleshoot&lt;/h1&gt;&#xA;&lt;p&gt;上手的过程并非一帆风顺，可以看到初次开启后，右边的 Alacritty 在配色和字体渲染方面明显劣于左边的 iTerm（或许是因为习惯）：&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/2021-09-04-jvm-note/17337046376248.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;配色自定义&#34;&gt;配色自定义&lt;/h2&gt;&#xA;&lt;p&gt;即使在 Alacritty 中使用 &lt;a href=&#34;https://github.com/mbadolato/iTerm2-Color-Schemes/blob/master/alacritty/iTerm2%2520Dark%2520Background.toml&#34;&gt;同款配色&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;在 iTerm 中，颜色明显更“亮”一些，排查后是由于 &amp;ldquo;Brighten bold text&amp;rdquo; 导致：&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/2021-09-04-jvm-note/17337051077592.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;不难找到 Alacritty 中相应配置，以达到一致的显示效果：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-toml&#34; data-lang=&#34;toml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[&lt;span style=&#34;color:#a6e22e&#34;&gt;colors&lt;/span&gt;]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;draw_bold_text_with_bright_colors&lt;/span&gt; = &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;字体自定义&#34;&gt;字体自定义&lt;/h2&gt;&#xA;&lt;p&gt;即使已设置相同字体，iTerm 中的字符却看上去明显更“细”一些。&lt;/p&gt;&#xA;&lt;p&gt;排查后是由下图配置导致：&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/2021-09-04-jvm-note/17337067023858.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;进而不难发现是与 Apple Font Smoothing 相关，更新配置并重新开启 app 即可：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;defaults write org.alacritty AppleFontSmoothing -int &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;详情参考 &lt;a href=&#34;https://github.com/alacritty/alacritty/issues/7333&#34;&gt;issue #7333&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;题外话&#34;&gt;题外话&lt;/h1&gt;&#xA;&lt;p&gt;在当今短视频和 AI 盛行的时代，快乐与知识的获取变得日益便捷，但人们的耐心似乎逐渐减弱。。&lt;/p&gt;&#xA;&lt;p&gt;尝试通过传统搜索，并在 issues 中仔细阅读游览每条讨论，最终解决问题过程竟令人怀念并感到快乐。&lt;/p&gt;</description>
    </item>
    <item>
      <title>博客搬家小记（Hexo → Hugo）</title>
      <link>https://changchen.me/blog/20241118/hexo-to-hugo/</link>
      <pubDate>Mon, 18 Nov 2024 15:42:38 +0800</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20241118/hexo-to-hugo/</guid>
      <description>&lt;p&gt;不知是否因为年纪变大，越来越喜欢极简（minimalism）。&lt;/p&gt;&#xA;&lt;p&gt;偶遇一个主题叫做：&lt;a href=&#34;https://themes.gohugo.io/themes/hugo-theme-nostyleplease/&#34;&gt;nostyleplease&lt;/a&gt;，如同触电般，直击在我心趴上。便花了一个下午的时候，将博客从 Hexo Next 迁移到了 Hugo 的这个主题。&lt;/p&gt;&#xA;&lt;p&gt;P.S. 有趣的是，一时想不出文章的标题，搜索“博客搬家小记”，一下子竟然搜到了自己的文章：&lt;a href=&#34;https://changchen.me/blog/20180806/octopress-to-hexo/&#34;&gt;博客搬家小记(Octopress → Hexo)&lt;/a&gt;。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;由于没有某些博主，一打开 WordPress 后台便文思泉涌的历史包袱🤣&lt;/p&gt;&#xA;&lt;p&gt;迁移的过程倒也格外顺利。无非写脚本兼容之前的页面路径，手动增加评论统计插件，以及 rss 源的处理。&lt;/p&gt;&#xA;&lt;p&gt;当然迁移丝滑的另一因素，也和“极简”有关。极其轻量的主题，二次修改起来，着实令人身心愉悦。&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;btw，不知读者是否注意到博客的 favicon。&lt;/p&gt;&#xA;&lt;p&gt;依稀记得这是大学时，老婆军工实习打造的一只小公鸡（因为我们都属鸡）。&lt;/p&gt;&#xA;&lt;p&gt;Time flies，这个小公鸡已经陪伴博客走过第 10 个年头。虽然它已经略显模糊，但我依然非常喜欢它的模样 :)&lt;/p&gt;</description>
    </item>
    <item>
      <title>[开源] 为什么个人开源项目让我感到兴奋</title>
      <link>https://changchen.me/blog/20241116/open-source-feedback-loop/</link>
      <pubDate>Sat, 16 Nov 2024 11:02:16 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20241116/open-source-feedback-loop/</guid>
      <description>&lt;p&gt;Hi 好久不见～ 最近几个月沉迷于与游戏《Against The Storm》，与开发一款 web app，叫做：&lt;a href=&#34;https://github.com/daya0576/beaverhabits&#34;&gt;Beaver Habit Tracker&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;开发个人开源项目的过程，就如同我新购入的 Mac Mini 在导出 4K 视频时，跑满了 GPU 并忍不住开始兴奋的吼叫！&lt;/p&gt;</description>
    </item>
    <item>
      <title>记一次蚂蚁晋升失败（2021）</title>
      <link>https://changchen.me/blog/20241109/ant-promotion/</link>
      <pubDate>Sat, 09 Nov 2024 11:24:22 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20241109/ant-promotion/</guid>
      <description>&lt;p&gt;迁移新电脑的过程中，偶然发现遗漏在角落的一份笔记，记录了 2021 年晋升失败后的零散思绪。&lt;/p&gt;&#xA;&lt;p&gt;现在仔细咀嚼起来，这些想法也变得颇为有趣，干脆分享给大家。&lt;/p&gt;</description>
    </item>
    <item>
      <title>去韩国</title>
      <link>https://changchen.me/blog/20240512/go-to-south-korea/</link>
      <pubDate>Sun, 12 May 2024 17:37:11 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20240512/go-to-south-korea/</guid>
      <description>&lt;p&gt;近期看了一部电影：&lt;a href=&#34;https://movie.douban.com/subject/35712804/&#34;&gt;《首尔之春》&lt;/a&gt;，便萌生了韩国（South Korea）旅行的念头。正好趁五一假期，完成了一场六日五晚的冒险。&lt;/p&gt;&#xA;&lt;p&gt;从上海出发，两小时的飞行便抵达首尔仁川机场（Incheon International Airport），后三天乘坐 KTX 到达釜山（Busan）。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Beaver Habit Tracker Onboard</title>
      <link>https://changchen.me/blog/20240406/beaver-habits-onboard/</link>
      <pubDate>Sat, 06 Apr 2024 12:27:50 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20240406/beaver-habits-onboard/</guid>
      <description>&lt;p&gt;When switching from Android to iOS, I was unable to find a light-weighted but handy habit tracking app, so I decided to make one by myself :)&lt;/p&gt;&#xA;&lt;p&gt;For the name of the project, it came from a game called &amp;ldquo;&lt;a href=&#34;https://store.steampowered.com/app/1336490/Against_the_Storm/&#34;&gt;Against the Storm&lt;/a&gt;&amp;rdquo; (which I spent over 100 hours, highly recommended). In the game, my favorite city builder species is &lt;strong&gt;beaver&lt;/strong&gt;, hoping this web app works as a beaver to save ur precious moments in your fleeting life.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[SRE] Troubleshooting Scala File Descriptor Leaks</title>
      <link>https://changchen.me/blog/20240224/scala-fd-leak/</link>
      <pubDate>Sat, 24 Feb 2024 15:49:27 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20240224/scala-fd-leak/</guid>
      <description>&lt;p&gt;Recently, we discovered some unexpected autoscaling EC2_INSTANCE_TERMINATE events in our Scala system: &amp;ldquo;instance was taken out of service in response to an ELB system health check failure&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;After checking the error logs, the issue was caused by &lt;code&gt;Too many open files&lt;/code&gt;, which leaded to unsuccessful DNS resolution, consequently resulting in errors when accessing the AWS endpoint, finally causing the server to hang.&lt;/p&gt;</description>
    </item>
    <item>
      <title>[源码分析] PromQL 中的 rate 与 irate 方法</title>
      <link>https://changchen.me/blog/20240217/http-proxy-monitoring/</link>
      <pubDate>Sat, 17 Feb 2024 16:31:52 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20240217/http-proxy-monitoring/</guid>
      <description>&lt;p&gt;家庭网络质量，如同水电燃气一般，对生活幸福感至关重要。突发奇想为家中的网络中枢 HTTP proxy 编写 Prometheus exporter 并配置可观测大盘。&lt;/p&gt;&#xA;&lt;p&gt;趁此机会学习 如何编写一个自定义的 exporter，以及 PromQL 中 &lt;code&gt;rate&lt;/code&gt;/&lt;code&gt;irate&lt;/code&gt; 函数的实现原理。&lt;/p&gt;</description>
    </item>
    <item>
      <title>在 Autodesk 工作是怎样一番体验？</title>
      <link>https://changchen.me/blog/20240217/why-did-i-join-autodesk/</link>
      <pubDate>Sat, 17 Feb 2024 16:31:46 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20240217/why-did-i-join-autodesk/</guid>
      <description>&lt;p&gt;机缘巧合有幸加入 Autodesk，在外企中真实体验了三个月，分享一些个人感受。希望不管是对 SRE 还是职业生涯工作选择，都可以带来一点点参考与帮助 :)&lt;/p&gt;</description>
    </item>
    <item>
      <title>2023 年终小结 🎄</title>
      <link>https://changchen.me/blog/20231226/2023-summary/</link>
      <pubDate>Tue, 26 Dec 2023 01:34:10 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20231226/2023-summary/</guid>
      <description>&lt;p&gt;熟悉我的朋友可能知道，博主最近机缘巧合换了一份工作（从互联网的大牙变成了外企的 Henry :)）&lt;/p&gt;&#xA;&lt;p&gt;正巧碰上新公司圣诞一周假期（Recharge Days），趁此机会一起回顾如海浪般平静却充满涌动的 2023&lt;/p&gt;</description>
    </item>
    <item>
      <title>Resiliency Test - HTTP/HTTPS Hijack</title>
      <link>https://changchen.me/blog/20231118/https-hijack/</link>
      <pubDate>Sat, 18 Nov 2023 07:49:24 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20231118/https-hijack/</guid>
      <description>&lt;p&gt;Service dependency failures are one of the leading causes of incidents. For example, when the &lt;code&gt;database&lt;/code&gt; is hanging, most of the traffic should be handled by the &lt;code&gt;cache&lt;/code&gt;. However, due to unnecessary hard dependency on the &lt;code&gt;database&lt;/code&gt;, the service is completely down.&lt;/p&gt;&#xA;&lt;p&gt;To address this, I developed an HTTP(S) proxy tool that enables the team to perform resiliency tests and fire drills (chaos), helping identify and eliminate unnecessary hard dependencies.&lt;/p&gt;&#xA;&lt;p&gt;TCP layer network traffic can easily be classified and shaped using a Linux built-in tool called TC (traffic control). &lt;u&gt;How can we hijack and manipulate encrypted outbound HTTPS traffic?&lt;/u&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>为什么我从 iPhone 切换至 Android 手机</title>
      <link>https://changchen.me/blog/20231118/iphone2android/</link>
      <pubDate>Sat, 18 Nov 2023 06:49:31 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20231118/iphone2android/</guid>
      <description>&lt;p&gt;在 9 月购入了 iPhone Pro 钛金属版本后，我迫不及待地进行了拆机，并且通过 iCloud 进行了熟练的备份还原。然而，当看到主屏幕界面和布局高度还原后，一股索然无味涌上心头。恍惚间，好像根本没有更换过新手机一样！于是。。最终决定退掉它。&lt;/p&gt;&#xA;&lt;p&gt;不知不觉间，我手中竟然同时拥有 10 多个苹果设备，这还不包括家人。。苹果公司借助其强大的生态系统，成功地将用户牢牢地捆绑在其中。例如，手机/平板可以作为电视遥控器，HomeKit 可以在家里无人时触发自动化场景，手表可以自动解锁电脑等等。尽管这些细节确实非常方便，但我&lt;strong&gt;越来越不喜欢这种被绑架束缚&lt;/strong&gt;的感觉了。&lt;/p&gt;</description>
    </item>
    <item>
      <title>近况更新 | 为什么我离开了工作五年的蚂蚁金服 🐜</title>
      <link>https://changchen.me/blog/20231104/why-did-i-left-ant-group/</link>
      <pubDate>Sat, 04 Nov 2023 11:49:39 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20231104/why-did-i-left-ant-group/</guid>
      <description>&lt;p&gt;离职那天习惯性的拿起手机，想打开钉钉查看消息，才发现应用已被删除。瞬间竟有股如释重负的感觉，一直绷着的弦突然间松下来了，一种难以描述的轻松感。&lt;/p&gt;&#xA;&lt;p&gt;但话说在前，从未后悔加入蚂蚁，过去五年无比精彩且充实的旅程，是人生难得的一份宝藏。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Homelab hacking: Grafana on an LED matrix display</title>
      <link>https://changchen.me/blog/20230828/homelab-hacking-grafana-on-led/</link>
      <pubDate>Mon, 28 Aug 2023 00:21:01 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20230828/homelab-hacking-grafana-on-led/</guid>
      <description>&lt;p&gt;周末翻看 GrafanaCON 2023 的视频消磨时间，偶遇一个有趣的“节目”：&lt;a href=&#34;https://grafana.com/about/events/grafanacon/2023/session/time-series-visualization-on-led-display/?src=ggl-s&amp;amp;mdm=cpc&amp;amp;cnt=99878325494&amp;amp;camp=b-grafana-exac-amer&amp;amp;trm=grafana&amp;amp;plcmt=learn-nav&#34;&gt;《Homelab hacking: Grafana on an LED matrix display》&lt;/a&gt;（将智能家居的 Grafana metric 数据展示到 32x8 的 LED 矩阵显示屏上）。&lt;/p&gt;&#xA;&lt;p&gt;这种事只是想想就很兴奋！趁着周末实践玩一下～&lt;/p&gt;</description>
    </item>
    <item>
      <title>FormD T1 V2.0 装机小记</title>
      <link>https://changchen.me/blog/20230806/build-pc-formd-t1/</link>
      <pubDate>Sun, 06 Aug 2023 22:12:09 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20230806/build-pc-formd-t1/</guid>
      <description>&lt;p&gt;记得学生时代烈阳高照的一个午后，偷偷购入 mp4，路中便迫不及待的撕开包装，一股迷人的数码产品“香气”至今令人难忘。&lt;/p&gt;&#xA;&lt;p&gt;多年过去了，我决定自己动手组装一台 PC 小玩具，重新体验开箱的快乐，并与你分享 :)&lt;/p&gt;</description>
    </item>
    <item>
      <title>[Python] SQLAlchemy 与 Pyright 相爱相杀的故事</title>
      <link>https://changchen.me/blog/20230503/python-type-hinting-stubs/</link>
      <pubDate>Wed, 03 May 2023 21:05:49 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20230503/python-type-hinting-stubs/</guid>
      <description>&lt;p&gt;Pyright 作为一款功能强大的静态类型检查器，深得我心。但近日使用 SQLAlchemy 时，Pyright 提示的类型检查报错，却让我陷入困扰。&lt;/p&gt;&#xA;&lt;p&gt;本篇文章将简单分享解决思路以及背后的原理。&lt;/p&gt;</description>
    </item>
    <item>
      <title>你真的会使用 ChatGPT 吗？ | 第一章：Guidelines for Prompting</title>
      <link>https://changchen.me/blog/20230503/chatgpt-prompt-eng-l2/</link>
      <pubDate>Wed, 03 May 2023 21:05:49 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20230503/chatgpt-prompt-eng-l2/</guid>
      <description>&lt;p&gt;作为吴教主 Andrew Ng 的头号粉丝，怎能错过最新公开课《ChatGPT Prompt Engineering for Developers》。希望学完该课程后可以更好的“调教”大模型，避免其胡编乱造🤣&lt;/p&gt;&#xA;&lt;p&gt;本篇文章整理了第一章 &lt;a href=&#34;https://learn.deeplearning.ai/chatgpt-prompt-eng/lesson/2/guidelines&#34;&gt;Guidelines&lt;/a&gt; 的重点，主要阐述了与大模型更好人机交互的两个指导原则：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Principle 1: Write clear and specific instructions&lt;/li&gt;&#xA;&lt;li&gt;Principle 2: Give the model time to &amp;ldquo;think&amp;rdquo;&lt;/li&gt;&#xA;&lt;/ol&gt;</description>
    </item>
    <item>
      <title>[Python] 如何在 Python 中合理的使用继承</title>
      <link>https://changchen.me/blog/20230122/python-sub-classing/</link>
      <pubDate>Sun, 22 Jan 2023 10:32:24 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20230122/python-sub-classing/</guid>
      <description>&lt;p&gt;最近两年由于工作需要接触 Java，也遇到很多将继承抽象用的出神入化的小伙伴。而自己却总是东施效颦，写出的代码杂乱无章。特别面向新增的需求改动，在扩展等方面差强人意。&lt;/p&gt;&#xA;&lt;p&gt;逐步的，大脑中也慢慢浮现出一丝模模糊糊的经验。尝试将这些浅薄的想法，整理为这篇文章供自己不断积累进化。&lt;/p&gt;</description>
    </item>
    <item>
      <title>2022 年终小结 🐯</title>
      <link>https://changchen.me/blog/20230122/2022-summary/</link>
      <pubDate>Sun, 22 Jan 2023 10:32:12 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20230122/2022-summary/</guid>
      <description>&lt;p&gt;大年初一清晨，被陆陆续续鞭炮声叫醒，大脑却格外的清醒，简单回忆一下过去一年的点点滴滴。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Python 3.11 类型注解新特性</title>
      <link>https://changchen.me/blog/20221106/type-hinting-python-3-11/</link>
      <pubDate>Sun, 06 Nov 2022 09:51:05 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20221106/type-hinting-python-3-11/</guid>
      <description>&lt;p&gt;第一次接触 java 时是无比震惊的，修改大几百行代码，编译通过直接发布至预发部署后，竟运行的无比丝滑。静态类型的绝对优势，对我的 TDD 价值观都带来了极大的冲击。&lt;/p&gt;&#xA;&lt;p&gt;万幸 Python 虽然是动态类型语言，但经过多年的发展，&lt;a href=&#34;https://docs.python.org/3/library/typing.html#relevant-peps&#34;&gt;类型注解&lt;/a&gt;已逐步成熟。刚好十月底 &lt;a href=&#34;https://www.python.org/downloads/release/python-3110/&#34;&gt;Python 3.11.0 发布&lt;/a&gt;，让我们一起看看又引入了哪些新特性呢？&lt;/p&gt;</description>
    </item>
    <item>
      <title>Henry&#39;s IDE to VIM Cheatsheet</title>
      <link>https://changchen.me/blog/20220814/ide2vim/</link>
      <pubDate>Sun, 14 Aug 2022 18:04:56 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20220814/ide2vim/</guid>
      <description>&lt;p&gt;近日第五次入门 vim 成功，感觉自己已经无敌了，这篇文章简单分享一些心路历程。&lt;/p&gt;</description>
    </item>
    <item>
      <title>大连 4 日游小记</title>
      <link>https://changchen.me/blog/20220712/dalian-4d/</link>
      <pubDate>Tue, 12 Jul 2022 08:14:23 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20220712/dalian-4d/</guid>
      <description>&lt;p&gt;一年一度的公司团建旅行，在上海解封喘息的间隙，匆匆飞往大连开启阳光沙滩四日游 ✈️&lt;/p&gt;&#xA;&lt;!-- more --&gt;&#xA;&lt;h3 id=&#34;萧条&#34;&gt;萧条&lt;/h3&gt;&#xA;&lt;p&gt;大连用一个词形容就是很萧条，不知是否酒店位处开发新区带来的错觉，整体人气不是很旺。&lt;/p&gt;&#xA;&lt;p&gt;与满街耸立高楼大厦形成强烈反差的是极低的入住率，随处可见空置的住宅与商业楼。有种早期发力过猛，突然停滞不前的迷茫感。&lt;/p&gt;&#xA;&lt;p&gt;出租车司机也无一例外和我们吐槽：10年前来到大连到现在，城市面貌几乎没有太大改变。甚至过去十年近 1/3 的人口离开了这座城市，现在买房直接送车。也不知真假。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/2021-09-04-jvm-note/A6EFA9E1-3DF1-43A6-949B-5A34418416D4_1_102_o.jpeg&#34; alt=&#34;A6EFA9E1-3DF1-43A6-949B-5A34418416D4_1_102_o&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;危险&#34;&gt;危险&lt;/h3&gt;&#xA;&lt;p&gt;在杭州上海生活过的朋友，若走在大连的马路上，会有种危机四伏的不适感&amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;路上的车辆转向变道从来不打灯，斑马线也不会主动让行人。&lt;/p&gt;&#xA;&lt;p&gt;司机还比较暴躁，动不动即喇叭套餐伺候 orz&lt;/p&gt;&#xA;&lt;h3 id=&#34;疫情&#34;&gt;疫情&lt;/h3&gt;&#xA;&lt;p&gt;分享个有趣的小故事，我们在棒棰岛小店买水时，有位同事被收银大妈无情的嘲笑：“这么大热天还带个 N95 口罩，快脱下呼吸一点新鲜空气吧”。话音未落还摇了摇头。&lt;/p&gt;&#xA;&lt;p&gt;可能由于大连疫情未泛滥，难得喘息，享受几日不用戴口罩的自由时光。&lt;/p&gt;&#xA;&lt;p&gt;最近听到一个新词：核酸产业。震惊之余有一丝悲伤，举个不恰当的例子，这就像 SRE 做监控告警，先人肉配置了一堆不合理的告警规则，然后通过机器学习、各种牛逼的算法，进行后置的降噪抑制。将告警减少了 90%+，节约了 xxx 人日，最终赢得了伟大胜利✌️&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/2021-09-04-jvm-note/9D28BA93-7617-415E-B5BB-B7C5BAB28261_1_102_o.jpeg&#34; alt=&#34;9D28BA93-7617-415E-B5BB-B7C5BAB28261_1_102_o&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;温柔&#34;&gt;温柔&lt;/h3&gt;&#xA;&lt;p&gt;过去因为各种经历，对「东北话」的第一印象是自私与狡诈。&lt;/p&gt;&#xA;&lt;p&gt;然而在大连短短几天，发现也有淳朴善良的出租车司机，风趣直爽的餐厅服务员，温柔安静的书店小姐姐，热情贴心机场值班人员..&lt;/p&gt;&#xA;&lt;p&gt;也时刻提醒自己，不要轻易因为差异性，带上“有色眼镜”。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/2021-09-04-jvm-note/16575835339030.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;顺便推荐旅途中遇到的两本书：《爱是一种好得不得了的“病毒”》、《叩叩》&lt;/p&gt;&#xA;&lt;h3 id=&#34;吃喝住行&#34;&gt;吃喝住行&lt;/h3&gt;&#xA;&lt;p&gt;首推一家东北菜老店 “大地的春饼”，分量实惠口碑佳。三个人，点了标准三菜一汤，竖着进来扶着墙出去。&#xA;&lt;img src=&#34;https://changchen.me/images/blog/2021-09-04-jvm-note/16575828231599.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;若钱包预算充足，也可试试网红店“正黄旗海鲜烧烤”，130 分的食材，两倍的价格。&#xA;&lt;img src=&#34;https://changchen.me/images/blog/2021-09-04-jvm-note/16575844452496.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;the-end&#34;&gt;THE END&lt;/h3&gt;&#xA;&lt;p&gt;人生阅历人生阅历，期望未来多争取机会去世界各地旅行。亲身经历不同的事、不同的人后，对这个世界才有更深的体会。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/2021-09-04-jvm-note/4B66BFE1-0CE9-4C01-838B-3E513A606F3C_1_102_o.jpeg&#34; alt=&#34;4B66BFE1-0CE9-4C01-838B-3E513A606F3C_1_102_o&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Quote of the Day (QOTD) Protocal 小记</title>
      <link>https://changchen.me/blog/20220505/quote-of-the-day/</link>
      <pubDate>Thu, 05 May 2022 22:51:07 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20220505/quote-of-the-day/</guid>
      <description>&lt;p&gt;周末读《TCP/IP详解》，学到一个非常神奇的协议：RFC 865 - Quote of the Day (QOTD)&lt;/p&gt;</description>
    </item>
    <item>
      <title>JetBrains IDE 的五个编程小技巧</title>
      <link>https://changchen.me/blog/20220504/idea-tips/</link>
      <pubDate>Wed, 04 May 2022 15:50:31 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20220504/idea-tips/</guid>
      <description>&lt;p&gt;第四次尝试 vim 作为主力编程失败，挫败之余分享近期发现的若干 ide 小技巧（适用 intellij idea，pycharm，etc.）&lt;/p&gt;</description>
    </item>
    <item>
      <title>《深入剖析Tomcat》第五章 - 如何实现套娃🪆</title>
      <link>https://changchen.me/blog/20220416/how-tomcat-works/</link>
      <pubDate>Sat, 16 Apr 2022 15:09:35 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20220416/how-tomcat-works/</guid>
      <description>&lt;p&gt;同事近期安利的一本葵花宝典，尝试阅读几章后，确实寻得一些避免面条式代码的良药。&lt;/p&gt;&#xA;&lt;p&gt;为什么要写这篇博客？最近在读另外一本书：&lt;a href=&#34;https://book.douban.com/subject/35546622/&#34;&gt;《置身事内》&lt;/a&gt;，浅浅读过收获不大，但神奇的是在豆瓣编写书评的过程中，不断翻阅与总结催化了新的收获。所以尝试编写《深入剖析Tomcat》的读书小记，通过输出的方式加深理解。&lt;/p&gt;</description>
    </item>
    <item>
      <title>关于 Java 字符串的秘密</title>
      <link>https://changchen.me/blog/20220409/java-string/</link>
      <pubDate>Sat, 09 Apr 2022 14:37:58 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20220409/java-string/</guid>
      <description>&lt;p&gt;最近对 java 字符串（&lt;code&gt;java.lang.String&lt;/code&gt;）的部分行为感到困惑，抽空查阅资料后豁然开朗。忍不住写一篇博客纪念一下&lt;/p&gt;</description>
    </item>
    <item>
      <title>如何构建家庭监控大盘</title>
      <link>https://changchen.me/blog/20220327/smart-home-dashboard/</link>
      <pubDate>Sun, 27 Mar 2022 17:03:38 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20220327/smart-home-dashboard/</guid>
      <description>&lt;p&gt;周末突然想起许久前与朋友聊天，谈到他的家庭网络虽然是电信接入，但是质量堪忧总是时不时的“抽风”，最终却也不知是路由器还是宽带在捣鬼。&lt;/p&gt;&#xA;&lt;p&gt;作为一名 SRE 每日在解决线上业务可观测的问题，突发奇想有没有可能针对自家的状况，也配置一个监控大盘？🤔&lt;/p&gt;</description>
    </item>
    <item>
      <title>分享我的家庭网络拓扑</title>
      <link>https://changchen.me/blog/20220320/home-assistant-issues/</link>
      <pubDate>Sun, 20 Mar 2022 17:10:51 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20220320/home-assistant-issues/</guid>
      <description>&lt;p&gt;近期上海疫情😷日益严重，封锁在家着实无聊，淘宝购入一块 R2S 开始折腾软路由科学上网～&lt;/p&gt;&#xA;&lt;p&gt;这篇文章简单分享一下我的家庭网络拓扑，以及回答软路由作为二级路由后：&lt;br&gt;&#xA;1⃣️ &lt;strong&gt;电视设备如何科学上网（主路由模式）？&lt;/strong&gt;&lt;br&gt;&#xA;2⃣️ &lt;strong&gt;树莓派 HA（Home Assistant）如何科学上网（同时开启旁路由模式）？&lt;/strong&gt;&lt;br&gt;&#xA;3⃣️ &lt;strong&gt;HA 如何控制二级路由子设备？&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>重读 Google SLO 小记 | 智能告警之殇</title>
      <link>https://changchen.me/blog/20220226/sre-slo/</link>
      <pubDate>Sat, 26 Feb 2022 22:34:59 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20220226/sre-slo/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;the basic foundations of SRE include &lt;strong&gt;SLOs, monitoring, alerting&lt;/strong&gt;, toil reduction, and simplicity.&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;最近学了个新的单词：cornerstone，而制定 SLOs，配置监控，以及告警应急可以说是 SRE 的基石。过去几年个人工作也与可用性监控相爱相杀。最近工作遇到一些瓶颈，周末重温 Google SLO 文化&lt;a href=&#34;https://sre.google/workbook/table-of-contents/&#34;&gt;《Google&amp;rsquo;s Site Reliability Workbook》&lt;/a&gt;，期望激发一些新的灵感～&lt;/p&gt;</description>
    </item>
    <item>
      <title>精装全屋智能灯改造小记</title>
      <link>https://changchen.me/blog/20220206/home-lights-practice/</link>
      <pubDate>Sun, 06 Feb 2022 15:43:59 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20220206/home-lights-practice/</guid>
      <description>&lt;p&gt;去年末交房后，虽是精装交付，但按耐不住爱折腾的心，将家中绝大部分的灯都换了一遍。在满足个人需求的过程中也踩了不少坑，趁着春季假期写一篇博客记录一下，如果刚好帮到你那就更好啦～&lt;/p&gt;</description>
    </item>
    <item>
      <title>git clone 大提速</title>
      <link>https://changchen.me/blog/20220204/git-clone-speedup/</link>
      <pubDate>Fri, 04 Feb 2022 10:40:35 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20220204/git-clone-speedup/</guid>
      <description>&lt;p&gt;不管是工作还是学习中，相信你经常遇到这要的窘境：执行 &lt;code&gt;git clone &amp;lt;url&amp;gt;&lt;/code&gt; 之后，不管是因为网速还是仓库过大，等你带薪拉屎结束，命令行还是龟速前行。&lt;/p&gt;&#xA;&lt;p&gt;这篇博客简单分享几个提速小技巧⚡️⚡️⚡️&lt;/p&gt;</description>
    </item>
    <item>
      <title>Java BlockingQueue 学习小记</title>
      <link>https://changchen.me/blog/20220203/java-blocking-queue/</link>
      <pubDate>Thu, 03 Feb 2022 12:50:34 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20220203/java-blocking-queue/</guid>
      <description>&lt;p&gt;最近一周作息发生了一些微妙的变化，晚上 11 点睡觉清晨 7 点自然醒，身体状况明显好转的同时，也明白了什么叫做一天之际在于晨：起床后去门口吃麦当劳早餐的同时，看一会书，感觉一天多活了一个多小时。&lt;/p&gt;&#xA;&lt;p&gt;这篇文章简单记录今早 java BlockingQueue 学习小记～&lt;/p&gt;</description>
    </item>
    <item>
      <title>2021 年终总结 ✨</title>
      <link>https://changchen.me/blog/20220101/2021-daya-summary/</link>
      <pubDate>Sat, 01 Jan 2022 06:31:03 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20220101/2021-daya-summary/</guid>
      <description>&lt;p&gt;在 2022 年的第一天，不知为何醒的特别早，甚至第一次感受了上海的日出。回顾 2021 不出意外过的特别快，甚至部分月份浑浑噩噩，但也有很多改变人生轨迹的关键决策。&lt;/p&gt;&#xA;&lt;p&gt;这篇文章将帮助自己回顾 2021 年的目标，同时制定新一年的方向。&lt;/p&gt;</description>
    </item>
    <item>
      <title>如何将字符串转换成数字</title>
      <link>https://changchen.me/blog/20211003/string2num/</link>
      <pubDate>Sun, 03 Oct 2021 15:42:13 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20211003/string2num/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;今天面试让一个工作7年的候选人写 str to int，写不出来。&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;昨天在 tg 上看到这么一段聊天吐槽🤔，虽然字符串转化逻辑看上去简单，但可以快速考察候选人编码风格与实战能力。尝试自己实现的过程中，刚好发现 java 自带原生实现。这篇文章将简单的分享，阅读对应源码的一些感受 ：）&lt;/p&gt;</description>
    </item>
    <item>
      <title>天使还是恶魔！浅谈 Java 中的 checked exception</title>
      <link>https://changchen.me/blog/20210920/java-checked-exception/</link>
      <pubDate>Mon, 20 Sep 2021 16:43:42 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20210920/java-checked-exception/</guid>
      <description>&lt;p&gt;记得有一次，觉得处理异常太麻烦，直接 catch 后包装一个 RuntimeException 一路抛了上去。结果被小伙伴 CR 时喷了一顿～&lt;/p&gt;&#xA;&lt;p&gt;这篇文章将简单介绍 Java 中异常的分类，使用 checked exceptions 的最佳时机，以及为什么无脑抛 RuntimeException 不是一个好习惯。最后分享如何在 lambda 表达式中，更加优雅的处理 checked exceptions。&lt;/p&gt;</description>
    </item>
    <item>
      <title>全网最晚的 2020 好物推荐</title>
      <link>https://changchen.me/blog/20210912/2020-top10-recomendation/</link>
      <pubDate>Sun, 12 Sep 2021 18:29:53 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20210912/2020-top10-recomendation/</guid>
      <description>&lt;p&gt;嗯你没有看错。。虽然 2021 年已过半，但全网最晚的 2020 好物推荐它来了 🥰🥰🥰&#xA;&lt;strong&gt;Year Progress&lt;/strong&gt;: ▓▓▓▓▓▓▓▓▓▓░░░░░ 69%&lt;/p&gt;&#xA;&lt;p&gt;2020 又是买买买的一年。这篇文章分享一下过去一年，&lt;del&gt;永不过时&lt;/del&gt;提升生活幸福感的十大好物。&lt;/p&gt;</description>
    </item>
    <item>
      <title>大牙的 Java 入门经历分享（持续更新）</title>
      <link>https://changchen.me/blog/20210911/daya-java-learning-path/</link>
      <pubDate>Sat, 11 Sep 2021 23:24:57 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20210911/daya-java-learning-path/</guid>
      <description>&lt;p&gt;有人建议说教游泳的最好办法是直接把那个孩子扔到水里？🤔 在你心中关于 Java 入门的最佳路径是什么呢？&lt;/p&gt;&#xA;&lt;p&gt;这篇博客将记录个人学习 Java 的一些经历与思考，希望同在迷茫的你读到，可以有所收获 ：）&lt;/p&gt;</description>
    </item>
    <item>
      <title>Java JVM 内存管理 - SRE 的必修课</title>
      <link>https://changchen.me/blog/20210904/jvm-note/</link>
      <pubDate>Sat, 04 Sep 2021 16:31:21 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20210904/jvm-note/</guid>
      <description>&lt;p&gt;在过去三年 SRE 的经历中，遇到过多起因为 JVM OOM 导致的线上故障。其中印象最深的一次排查经历：收到故障外呼后，几个大男人现场梳理业务链路，大眼瞪小眼，最后发现根因竟然是部分网关机器动态加载数据库中的 groovy&#xA;脚本，导致 &lt;code&gt;Metaspace out of memory&lt;/code&gt; 报错，影响了部分 XX 商户的代扣业务，最终落了一个 P4 故障 T…T&lt;/p&gt;&#xA;&lt;p&gt;但是之后很长一段时间内，都不太明白 Metaspace 是什么，为什么会耗尽？和 perm 区的关系是？不同线程本地变量和全局对象的关系？&lt;/p&gt;&#xA;&lt;p&gt;正好趁这次机会，系统性的整理和分享一下 ：）&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E4%B8%80%E3%80%81%E8%B5%B0%E8%BF%91java&#34;&gt;一、走近 Java&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E4%BA%8C%E3%80%81%E8%87%AA%E5%8A%A8%E5%86%85%E5%AD%98%E7%AE%A1%E7%90%86&#34;&gt;二、自动内存管理&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#java%E5%86%85%E5%AD%98%E5%8C%BA%E5%9F%9F&#34;&gt;Java 内存区域&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E5%85%B3%E9%94%AE%E7%82%B9%E8%AF%B4%E6%98%8E&#34;&gt;关键点说明&lt;/a&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#1%E5%85%B3%E4%BA%8E-perm%E5%8C%BA-metaspace&#34;&gt;1. 关于 Perm 区 &amp;amp; Metaspace&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#2%E5%85%B3%E4%BA%8E%E6%A0%88%E5%B8%A7%EF%BC%88-stack-frame%EF%BC%89&#34;&gt;2. 关于栈帧（Stack Frame）&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#3%E5%85%B3%E4%BA%8E%E8%BF%90%E8%A1%8C%E6%97%B6%E5%B8%B8%E9%87%8F%E6%B1%A0%EF%BC%88-run-time-constant-pool%EF%BC%89&#34;&gt;3. 关于运行时常量池（Run-Time Constant Pool）&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E4%B8%89%E3%80%81%E5%9E%83%E5%9C%BE%E6%94%B6%E9%9B%86%E5%99%A8%E4%B8%8E%E5%86%85%E5%AD%98%E5%88%86%E9%85%8D%E7%AD%96%E7%95%A5&#34;&gt;三、垃圾收集器与内存分配策略&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#the-end&#34;&gt;The End&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E5%8F%82%E8%80%83&#34;&gt;参考&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>2020 年终总结 🥳</title>
      <link>https://changchen.me/blog/20210228/2020-summary/</link>
      <pubDate>Sun, 28 Feb 2021 15:11:38 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20210228/2020-summary/</guid>
      <description>&lt;p&gt;拖了很久的年终总结，人类就像自己的眼睛一样，大部分的时间无法看见自己的模样，所以需要多照照镜子进行自省和复盘，才不会变成一具行尸走肉。&lt;/p&gt;&#xA;&lt;p&gt;这篇文章简单回顾一下 2020 年初设置的目标，以及对 2021 年的展望。&lt;/p&gt;</description>
    </item>
    <item>
      <title>零成本打造 Telegram 机器人指北</title>
      <link>https://changchen.me/blog/20210221/buld-telegram-bot-from-scratch/</link>
      <pubDate>Sun, 21 Feb 2021 15:42:05 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20210221/buld-telegram-bot-from-scratch/</guid>
      <description>&lt;p&gt;春节放假在家，写了一个 &lt;a href=&#34;https://dev.qweather.com&#34;&gt;和风天气 API&lt;/a&gt; 的 &lt;a href=&#34;https://github.com/daya0576/he-weather-bot&#34;&gt;Telegram 天气预报机器人&lt;/a&gt;🤖️ - 根据用户精准定位查询实时天气，并支持每日的定时自动播报。&lt;/p&gt;&#xA;&lt;p&gt;本篇文章为该机器人实现的不完全教程～&lt;/p&gt;</description>
    </item>
    <item>
      <title>树的可视化 - Python anytree 实现</title>
      <link>https://changchen.me/blog/20210124/anytree-print/</link>
      <pubDate>Sun, 24 Jan 2021 15:10:08 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20210124/anytree-print/</guid>
      <description>&lt;p&gt;Python 中有个很酷的第三方包叫做 &lt;a href=&#34;https://github.com/c0fec0de/anytree&#34;&gt;anytree&lt;/a&gt;，全名 Any Python Tree Data，i.e. 期望用来表示任何树的数据结构。&lt;/p&gt;&#xA;&lt;p&gt;而其中的可视化功能，每次都令人印象深刻。这篇文章简单分享，个人解决问题的思考路径 &amp;amp; 简易实现～&lt;/p&gt;&#xA;&lt;!-- more --&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;...&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; r &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; RenderTree(root)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&amp;gt;&lt;/span&gt; print(r)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Node(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;/A&amp;#39;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;├──&lt;/span&gt; Node(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;/A/B&amp;#39;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;│&lt;/span&gt;   &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;├──&lt;/span&gt; Node(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;/A/B/D&amp;#39;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;│&lt;/span&gt;   &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;│&lt;/span&gt;   &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;└──&lt;/span&gt; Node(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;/A/B/D/F&amp;#39;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;│&lt;/span&gt;   &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;│&lt;/span&gt;       &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;└──&lt;/span&gt; Node(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;/A/B/D/F/G&amp;#39;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;│&lt;/span&gt;   &lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;└──&lt;/span&gt; Node(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;/A/B/E&amp;#39;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;└──&lt;/span&gt; Node(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#39;/A/C&amp;#39;&lt;/span&gt;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id=&#34;1-问题拆解&#34;&gt;1 问题拆解&lt;/h1&gt;&#xA;&lt;p&gt;一开始看到这个问题，可能有些没有头绪，但有没有可能对该问题进行分解🤔&lt;br&gt;&#xA;.&lt;br&gt;&#xA;.&lt;br&gt;&#xA;.&lt;br&gt;&#xA;.&lt;br&gt;&#xA;.&lt;br&gt;&#xA;.   &lt;br&gt;&#xA;.&lt;br&gt;&#xA;.&lt;br&gt;&#xA;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;一棵树的可视化&lt;/strong&gt; ，分解为：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;每一行的显示，由三个部分组成&#xA;&lt;ol&gt;&#xA;&lt;li&gt;填充(&lt;code&gt;│   &lt;/code&gt;)&lt;/li&gt;&#xA;&lt;li&gt;前缀(&lt;code&gt;├── &lt;/code&gt; or &lt;code&gt;└── &lt;/code&gt;)&lt;/li&gt;&#xA;&lt;li&gt;节点自身&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;从上至下打印的顺序（深度优先遍历）&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h1 id=&#34;2-实现&#34;&gt;2 实现&lt;/h1&gt;&#xA;&lt;h2 id=&#34;21-定义行的数据结构&#34;&gt;2.1 定义「行」的数据结构&lt;/h2&gt;&#xA;&lt;p&gt;行(Row)与节点一一对应，其中包含两个元素：&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;code&gt;node&lt;/code&gt; 代表树的节点&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;continues&lt;/code&gt; 中每个元素表示：根节点至当前节点路径中的每个节点，&lt;strong&gt;是不是对应层级中的最后一位&lt;/strong&gt;。 用来生成每行的前缀&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;from&lt;/span&gt; dataclasses &lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; dataclass&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;from&lt;/span&gt; typing &lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; List&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;from&lt;/span&gt; anytree &lt;span style=&#34;color:#f92672&#34;&gt;import&lt;/span&gt; Node&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;LAST_NODE_PRE &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;╰── &amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;NODE_PRE &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;├── &amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;INDENT &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;│   &amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;BLANK &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;    &amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;@dataclass&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;class&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;Row&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    node: Node&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    continues: List[int]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;@property&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;pre&lt;/span&gt;(self):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#75715e&#34;&gt;# 根结点特殊处理&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; len(self&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;continues) &lt;span style=&#34;color:#f92672&#34;&gt;==&lt;/span&gt; &lt;span style=&#34;color:#ae81ff&#34;&gt;0&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;            &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        indent &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;join([INDENT &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; x &lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt; BLANK &lt;span style=&#34;color:#66d9ef&#34;&gt;for&lt;/span&gt; x &lt;span style=&#34;color:#f92672&#34;&gt;in&lt;/span&gt; self&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;continues[:&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;]])&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        branch &lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt; NODE_PRE &lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; self&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;continues[&lt;span style=&#34;color:#f92672&#34;&gt;-&lt;/span&gt;&lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt;] &lt;span style=&#34;color:#66d9ef&#34;&gt;else&lt;/span&gt; LAST_NODE_PRE&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; indent &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; branch&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#66d9ef&#34;&gt;def&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;__str__&lt;/span&gt;(self):&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;        &lt;span style=&#34;color:#66d9ef&#34;&gt;return&lt;/span&gt; self&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;pre &lt;span style=&#34;color:#f92672&#34;&gt;+&lt;/span&gt; self&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;node&lt;span style=&#34;color:#f92672&#34;&gt;.&lt;/span&gt;name&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;22-深度遍历dfs&#34;&gt;2.2 深度遍历(DFS)&lt;/h2&gt;&#xA;&lt;p&gt;一般会使用 &lt;code&gt;stack&lt;/code&gt; 先入后出的特性，这里简单利用生成器，即 &lt;code&gt;yield&lt;/code&gt; 关键字实现一版：&lt;/p&gt;</description>
    </item>
    <item>
      <title>限流还能这么玩 - Netflix 权重限流新思路</title>
      <link>https://changchen.me/blog/20201124/netflix-prioritized-load-shedding/</link>
      <pubDate>Tue, 24 Nov 2020 15:23:10 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20201124/netflix-prioritized-load-shedding/</guid>
      <description>&lt;p&gt;上上周在 &lt;a href=&#34;https://sreweekly.com/&#34;&gt;sre weekly&lt;/a&gt; 上读了一篇文章：&lt;a href=&#34;https://netflixtechblog.com/keeping-netflix-reliable-using-prioritized-load-shedding-6cc827b02f94&#34;&gt;《Keeping Netflix Reliable Using Prioritized Load Shedding》&lt;/a&gt;（Netflix 出品，必数精品XD），有种耳目一新的感觉，特此在清理草稿的时候记录一下读后感。&lt;/p&gt;</description>
    </item>
    <item>
      <title>浅谈 Python Metaclass（下）：Django ORM 的应用</title>
      <link>https://changchen.me/blog/20201122/metaclass-with-django-orm/</link>
      <pubDate>Sun, 22 Nov 2020 14:58:16 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20201122/metaclass-with-django-orm/</guid>
      <description>&lt;p&gt;用了这么多年 django，原来其中强大的 ORM 即 metaclass 的一种最佳实践，让我们一探其中的奥秘吧✨&lt;/p&gt;&#xA;&lt;p&gt;p.s. 文本默认你对 Django 的 ORM 已有一定的概念了解与实践～&lt;/p&gt;</description>
    </item>
    <item>
      <title>浅谈 Python Metaclass（上）：type 与 object 原理介绍</title>
      <link>https://changchen.me/blog/20201122/python-type-and-object/</link>
      <pubDate>Sun, 22 Nov 2020 14:57:50 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20201122/python-type-and-object/</guid>
      <description>&lt;p&gt;我们都知道 python 中有一个特性叫做「万物皆对象」，而个人一直对其中的 type 与 object 对象一知半解。刚好周末看到一篇很不错的文章：&lt;a href=&#34;https://www.eecg.utoronto.ca/~jzhu/csc326/readings/metaclass-class-instance.pdf&#34;&gt;《Python Types and Objects》&lt;/a&gt;，特此学习记录一下～&lt;/p&gt;</description>
    </item>
    <item>
      <title>Python 不需要设计模式？</title>
      <link>https://changchen.me/blog/20201114/why-u-dont-need-design-pattern-in-python/</link>
      <pubDate>Sat, 14 Nov 2020 21:29:24 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20201114/why-u-dont-need-design-pattern-in-python/</guid>
      <description>&lt;p&gt;前两个月拜读 &lt;a href=&#34;https://changchen.me/blog/20200613/design-pattern/&#34;&gt;《Head First 设计模式》&lt;/a&gt;这本书，同时系统性的重温 &lt;a href=&#34;https://changchen.me/blog/20200613/design-pattern/&#34;&gt;UML 相关的知识&lt;/a&gt;，但当笔者尝试将学到的知识复用到 python 时，突然发现似乎并不是那么的适配：例如 python 中并没有「接口」与「抽象类」等的概念🤔&lt;/p&gt;&#xA;&lt;p&gt;观看一个 Pycon2017 的分享视频之后：&lt;a href=&#34;https://www.youtube.com/watch?v=G5OeYHCJuv0&#34;&gt;《Why you don&amp;rsquo;t need design patterns in Python?》&lt;/a&gt;，对上面的疑惑，逐步有了一些自己的理解。首先还是先分享几个经典设计模式在 python 的具体实践。&lt;/p&gt;</description>
    </item>
    <item>
      <title>linux 反向查找日志</title>
      <link>https://changchen.me/blog/20201108/linux-find-keyword-reversely/</link>
      <pubDate>Sun, 08 Nov 2020 16:21:50 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20201108/linux-find-keyword-reversely/</guid>
      <description>&lt;p&gt;当我们在黑屏排查线上问题的时候，经常会遇到一些又臭又长的日志文件（动辄好几个 G）。如果直接用 &lt;code&gt;grep&lt;/code&gt; 去搜索内容，不仅等待时间长，甚至可能占用机器资源，影响线上业务请求 😓&lt;/p&gt;&#xA;&lt;p&gt;那有什么更好的办法吗？线上日志按照规约，会按「日」进行轮转切割，但故障发生的时候，我们期望的那条日志一般在&amp;quot;最近十分钟&amp;quot;之内，所以如果可以“反向 grep” 日志，是否可以大大提高查询的性能？🤔&lt;/p&gt;</description>
    </item>
    <item>
      <title>《Java 8 实战》读书笔记</title>
      <link>https://changchen.me/blog/20200822/java8-in-action-comments/</link>
      <pubDate>Sat, 22 Aug 2020 15:51:35 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20200822/java8-in-action-comments/</guid>
      <description>&lt;p&gt;时光飞逝，还记得大二开始接触 java 时，那时主流的是 jdk1.6 与 eclipse 的天下。没想到转眼间 java8 也发布快六年了，其中 Lambda、方法引用、stream 这些新特性，每次看到都云里来雾里去。正好拜读一下《Java 8 实战》这本书一探究竟～&lt;/p&gt;</description>
    </item>
    <item>
      <title>在 Java &amp; Python 中，如何优雅的筛选一堆苹果🤔</title>
      <link>https://changchen.me/blog/20200704/filter-in-java-and-python/</link>
      <pubDate>Sat, 04 Jul 2020 19:14:25 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20200704/filter-in-java-and-python/</guid>
      <description>&lt;p&gt;最近在看《Java 8实战》这本书，第一部分讲了很多函数式编程与 lambda 匿名函数的应用，不禁让我想起了以前写 python 对应的实现。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;需求：&lt;/strong&gt; 在一堆苹果中，筛选出重量大于 100g 的苹果🍎，同时也支持过滤所有绿色的苹果&lt;/p&gt;</description>
    </item>
    <item>
      <title>Annotation(Decorator) 在 Java &amp; Python 中的应用</title>
      <link>https://changchen.me/blog/20200621/annotation/</link>
      <pubDate>Sun, 21 Jun 2020 15:33:29 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20200621/annotation/</guid>
      <description>&lt;p&gt;背景：最近在工作中发现我们 SRE 的某个 java 项目中，存在大量 annotation 的应用，虽然 java 的注解与 python 的装饰器语法非常类似，但在原理上肯定千差万别。&lt;/p&gt;&#xA;&lt;p&gt;为了不甘一直处在一知半解的状态，所以这个周末准备全面学习一下对应语法与原理，并与 python 中的实践做一个对比，以便有一个更加&lt;strong&gt;深入&lt;/strong&gt;的理解～&lt;/p&gt;</description>
    </item>
    <item>
      <title>《Head First 设计模式》学习笔记</title>
      <link>https://changchen.me/blog/20200614/design-pattern/</link>
      <pubDate>Sun, 14 Jun 2020 01:05:14 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20200614/design-pattern/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;OO 原则是我们的目标，而设计模式是我们的做法。&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;最近写 java 半年多，虽然这门语言看上去有一丝笨重和啰嗦，但和设计模式遇上，就好像咖啡与牛奶的融合，变成一杯香醇的拿铁🤔。本文做为个人的读书笔记（&lt;del&gt;水一篇博客&lt;/del&gt;），同时如果能帮到你就更好啦！&lt;/p&gt;</description>
    </item>
    <item>
      <title>解决关于 UML 类图在心中深藏多年的若干疑惑</title>
      <link>https://changchen.me/blog/20200502/uml-unified-modeling-language/</link>
      <pubDate>Sat, 02 May 2020 01:47:11 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20200502/uml-unified-modeling-language/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;UML (Unified Modeling Language) is a graphical language for modeling the structure and behavior of object-oriented systems.&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;最近在学习经典的设计模式，竟然被类图(UML Class Diagram)深深的吸引了。总之个人一直以来，对各种「可视化」都是情有独钟（可能是老年人记忆力比较差，而图像可以在脑中快读投影与记忆）。当然正好也趁这个机会，对 uml 类图有个全面更深的理解，顺便消除之前的好几个困惑。&lt;/p&gt;&#xA;&lt;p&gt;想起以前看过的一篇文章，说的是两种写代码的风格：有的人喜欢提前规划，将每个细节思考清晰后再动手，而另一类人则像我高中语文考试写作文，信手拈来，写到哪算哪。个人还是期望做第一类，因为代码说到底只是一种将想法落地的方式，特别是当代码复杂度远远超过我大脑内存时，一份完整详尽的系分设计文档就格外重要（包含类图/sequence/用例等），为后续理解和重构代码都有很大的好处，不然 &lt;code&gt;code and fix&lt;/code&gt; 浪费的时间将是指数级翻倍的。当然网上也有很多反对的声音，例如 uml 无用论等🤔 你是怎么觉得的呢？或者可以等读完这篇文章后再发布你的想法。&lt;/p&gt;</description>
    </item>
    <item>
      <title>【游记】2019.12 东京五日蜜月旅行 highlights</title>
      <link>https://changchen.me/blog/20200328/japan-travel-episode2/</link>
      <pubDate>Sat, 28 Mar 2020 19:14:14 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20200328/japan-travel-episode2/</guid>
      <description>&lt;p&gt;在东京新宿逛风情街🔞，在大涌谷看富士山的雪🗻，在箱根泡爱心温泉♨️，在东京铁塔下牵手合影🗼～ 本来想按时间顺序做个详细一些的懒人攻略，但博主太懒啦。。就用照片按时间零零散散记个流水账好了。&lt;/p&gt;&#xA;&lt;p&gt;简陋的行程，会习惯提前将重要的交通工具调查清楚，但后续游玩的内容更多的是随机的填充。&lt;/p&gt;</description>
    </item>
    <item>
      <title>2019 年终总结 🎉</title>
      <link>https://changchen.me/blog/20200120/2019-summary/</link>
      <pubDate>Mon, 20 Jan 2020 00:46:39 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20200120/2019-summary/</guid>
      <description>&lt;p&gt;那天在上班路上读着别人的 2019 年度总结，恍恍惚惚回忆起四五年前的那个冬天❄️，和两个大学好友在学校小吃街的彤德莱，边吃火锅边总结过去一年的得与失的场景。&lt;/p&gt;&#xA;&lt;p&gt;当然写这篇文章的另一个原因是最近深陷于工作，一晃已经小半年没有写博客了。刚好今天吃坏东西 + 发烧🤒️，在医院排队的时候，顺便回顾一下自己平凡的 2019&amp;hellip;&lt;/p&gt;&#xA; &lt;!-- more --&gt;&#xA;&lt;h1 id=&#34;2019-年回顾&#34;&gt;2019 年回顾&lt;/h1&gt;&#xA;&lt;p&gt;参考&lt;a href=&#34;https://www.wenyuanblog.com/blogs/annual-summary-2019.html#toc-heading-1&#34;&gt;这篇博文&lt;/a&gt;，从下面几个维度总结一下自己的 2019 🎉&lt;/p&gt;&#xA;&lt;h2 id=&#34;工作事业&#34;&gt;工作·事业&lt;/h2&gt;&#xA;&lt;p&gt;今年工作的状态不是很好，因为经常起床的时候不太想去上班。。也可能是因为从杭州转 base 地到了上海后，从家去公司大约 20 公里，全程打车 + 地铁需要 45 分钟左右😭&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;工作重心：&lt;/strong&gt; 开始工作的第三年，也是做 SRE(Site Reliability Engineering) 的第二年。假如用一个词形容支付宝：付钱，而 SRE 的职责则是让每一笔下单支付都如丝般顺滑（换个角度简单说也就是没有故障）。为了达到这个目标，实现可用率的四个9，一般又会分解为三个核心手段：预防/发现/恢复。18 年在「发现」领域做了一些探索：&lt;a href=&#34;https://changchen.me/blog/20190113/anomaly-detection/&#34;&gt;《业务报警智能降噪的那些事》&lt;/a&gt;，而今年由于各种组织架构的调整，重心慢慢的转移到了故障预防，深入业务努力将故障今早扼杀在摇篮里，例如核心链路的高可用能力改造，将多读少写应用的 DB 故障影响面降低到 10% 以下等等。&lt;/p&gt;&#xA;&lt;p&gt;最后时常有这样的思考：「发现」只是稳定性的冰山一角，「预防」才是埋藏在水底的核心，想象如果将所有风险都预防好了，重重防线将故障提前拦截，是不是没有发现和恢复什么事情了😄 但反过来说貌似也行得通：如果任何故障都可以被立即恢复，那是不是不用花大力气去做预防..🤔&lt;/p&gt;&#xA;&lt;p&gt;**变化：**公司价值观中有一条叫「唯一不变的是变化」，一年换三个老板对阿里每个人来说都是习以为常的事情。虽然会有一些沮丧，但个人并不反对变化这件事本身，毕竟只有这样才能让公司变成一口活水，用软件工程的一个词就是 robust. 当然很多人也有这样的困惑：「变化」对大家成长会产生副作用，因为很多时候需要人对某个领域有一些沉淀，但换个角度想，变化本质上培养的是一个工程师解决复杂问题的能力：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;如果团队或个人很久不能解决某个问题，变化是个突破的机会&lt;/li&gt;&#xA;&lt;li&gt;如果已经可以很好的解决这个问题，变化可以让你把能力露出来，将结果拿到&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;还是要时刻提醒自己不要在变化中迷失，坚持去做一些自己感兴趣和觉得有价值的事情～&lt;/p&gt;&#xA;&lt;p&gt;**JAVA：**今年还有一个重大变化是时隔多年开始写 java 了，语言本身只是一个工具，并且每门语言各有优劣：例如 java 在大型项目的开发上确实相对于 python 有一定优势，但 python 在数据分析等领域又是碾压的姿态。&lt;/p&gt;&#xA;&lt;p&gt;在学习和实践的过程中，例如 sofa 工程的分层，强类型的约束等等，都给我留下了很深的影响。但回顾这一年的时候，总觉得自己还是有一丝排斥。。但毕竟整个公司的技术栈里，java 还是第一公民，还是老老实实学好 java 吧，还是挺好玩的 ：）&lt;/p&gt;&#xA;&lt;h2 id=&#34;学习成长&#34;&gt;学习·成长&lt;/h2&gt;&#xA;&lt;p&gt;回顾了一下 2019 的个人成长，感觉没有什么特别大的成长，更多的两个关键词是：停滞和迷茫。&lt;/p&gt;&#xA;&lt;p&gt;Just kidding.. 至少 2019 年对 sre 这个岗位有了一些更深的理解：&lt;a href=&#34;https://changchen.me/blog/20180403/impressions-of-google-sre/&#34;&gt;《Site Reliability Engineering》by Google 读后感&lt;/a&gt;，但更有感触的一点：技术才是第一生产力，加油～&lt;/p&gt;</description>
    </item>
    <item>
      <title>使用 GitHub Actions 实现 Hexo 博客的 CICD</title>
      <link>https://changchen.me/blog/20190923/github-actions-hexo-cicd/</link>
      <pubDate>Mon, 23 Sep 2019 20:36:32 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20190923/github-actions-hexo-cicd/</guid>
      <description>&lt;p&gt;CI/CD(continuous integration and continuous deployment) 被提出很久了并逐步流行，因为它确实有很多的好处：例如小而快的迭代可以尽早发现 bug 并更加轻易地修复，代码合并也不会那么痛苦。但说到底还是因为「懒」，当 push 代码成功的那一刻，只想合上笔记本闭上眼睛，静静地等待自动部署成功后滴的一声通知，然后安然入睡 zZ&lt;/p&gt;</description>
    </item>
    <item>
      <title>记一个困扰了我两个星期的博客 Bug 🤒️</title>
      <link>https://changchen.me/blog/20190923/cloudflare-display-issue/</link>
      <pubDate>Mon, 23 Sep 2019 20:25:01 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20190923/cloudflare-display-issue/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;一个 bug 只要能在本地重现， 基本上就解决 90% 了。&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;最近在另一篇排查 bug 的文章中，引用了上面👆这段话。没想到瞬间就被打脸了：博客升级主题版本(Hexo v7.4.0)后，&lt;strong&gt;线上显示异常&lt;/strong&gt;（页面左下脚怎么也加载不出来），但&lt;strong&gt;本地是正常的&lt;/strong&gt;。困扰了两个星期终于解决了。。特此写一篇博客「纪念」一下。&lt;/p&gt;</description>
    </item>
    <item>
      <title>macOS 如何将截图自动保存至相册(Photos)</title>
      <link>https://changchen.me/blog/20190730/save-screenshots-to-photos/</link>
      <pubDate>Tue, 30 Jul 2019 10:58:01 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20190730/save-screenshots-to-photos/</guid>
      <description>&lt;p&gt;今天突然有个小需求，希望在 macOS 上截图后，自动保存至应用 Photos. 搜索了一下，发现系统原生不支持这种骚操作，但有个自带的应用叫 Automator, 可以完美的实现这个需求✌️&lt;/p&gt;</description>
    </item>
    <item>
      <title>Cloudflare 全球宕机复盘读后感</title>
      <link>https://changchen.me/blog/20190727/cloudflare-outage-reading-note/</link>
      <pubDate>Sat, 27 Jul 2019 21:45:50 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20190727/cloudflare-outage-reading-note/</guid>
      <description>&lt;p&gt;Cloudflare 在七月二日发生了一次全球性的宕机，个人托管在上面的两个小网站难以幸免，502 超过半个小时；甚至上班的时候，还收到了一些业务告警（某些渠道通过 cloudflare 做路由）。可见这次故障的影响范围之大，互联网的一些基础服务已经成为了 21 世纪的水电煤..&lt;/p&gt;&#xA;&lt;p&gt;而作为一名 SRE，明白在故障的整个生命周期中，最关键的一环就是故障复盘(postmortem)，以防止同样愚蠢的错误不再发生(通常大故障都是由很多小错误连锁造成的)。前天在千岛湖 outing 半夜四点睡不着的时候，起床偶遇这篇文章&lt;a href=&#34;https://blog.cloudflare.com/details-of-the-cloudflare-outage-on-july-2-2019/&#34;&gt;《Details of the Cloudflare outage on July 2, 2019》&lt;/a&gt;, 一口气读完了，写的很精彩（很会讲故事），当然总觉得还缺了什么。&lt;/p&gt;&#xA;&lt;p&gt;用这篇文章记录一下个人的感受和思考，&lt;strong&gt;当然更加推荐阅读原文。&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Python 版本管理 &amp; 虚拟环境的那些事</title>
      <link>https://changchen.me/blog/20190708/python-version-management-and-virtual-environments/</link>
      <pubDate>Mon, 08 Jul 2019 18:52:56 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20190708/python-version-management-and-virtual-environments/</guid>
      <description>&lt;p&gt;好几个月前的一个月黑风高的深夜，和同事对 Python 的版本管理 &amp;amp; 虚拟环境进行了一些讨论。写一篇博客纪念一下，也算是作为个人的笔记。&lt;/p&gt;&#xA;&lt;p&gt;如果你对 &lt;code&gt;pyenv&lt;/code&gt;, &lt;code&gt;virtualenv&lt;/code&gt;, &lt;code&gt;virtualenv-wrapper&lt;/code&gt;, &lt;code&gt;venv&lt;/code&gt;, &lt;code&gt;pipenv&lt;/code&gt; 等一系列名词存在一些困惑，可以进来看看..&lt;/p&gt;</description>
    </item>
    <item>
      <title>大阪,奈良,京都 の 新婚六日游</title>
      <link>https://changchen.me/blog/20190706/japan-travel-note/</link>
      <pubDate>Sat, 06 Jul 2019 17:09:23 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20190706/japan-travel-note/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://changchen.me/blog/20190501/promise-rings/&#34;&gt;新婚&lt;/a&gt;后的第一次旅行✈️，从上海出发，途径「大阪」➡️「奈良」➡️「京都」的日本六日自由行。短暂的旅途中有语言不通的受阻与迷茫，也有铁腿行程时的绝命腰痛（苦命的程序员&amp;gt;&amp;lt;）。但更多的时候，是像夏日冰镇啤酒一般源源不断的快乐～ XD&lt;/p&gt;&#xA;&lt;p&gt;之前看到一句话写的很好：“&lt;a href=&#34;https://ipotato.me/article/13&#34;&gt;写博客是为了和过去以及未来的自己对话&lt;/a&gt;”，用这篇文章简单记录一路上的见闻以及个人的感想，如果刚好能帮到你，那真的是太棒啦!&#xA;&lt;img src=&#34;https://changchen.me/images/blog/190624_japan_travel/oezC0NVESpec%253ZLxHSJiQ_thumb_6498.jpg&#34; alt=&#34;oezC0NVESpec%3ZLxHSJiQ_thumb_6498&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>一个程序员的选钻戒💍之路</title>
      <link>https://changchen.me/blog/20190501/promise-rings/</link>
      <pubDate>Wed, 01 May 2019 10:08:37 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20190501/promise-rings/</guid>
      <description>&lt;p&gt;不知不觉的和女朋友在一起七年多了✨，传说中的七年之痒？但我们却有些习惯了彼此的存在和平凡的幸福，仿佛结婚或不结婚并不会有什么本质的区别。也可能因为每个人一辈子一般只会经历一段婚姻，慢慢的我才明白，很多时候男生还是需要主动一些，给女方一个 promise. 昨天终于鼓起勇气求婚了，啦啦啦。 虽然一「直」认为钻石就是平凡无奇，严重溢价的小石头，但真正摆在你面前的时候，还是挺震撼的🤪。&lt;/p&gt;&#xA;&lt;p&gt;本文主要分享挑选钻戒时做的一些小功课，也算是个人的小纪念。&lt;/p&gt;</description>
    </item>
    <item>
      <title>【学习笔记】正态分布(Normal Distribution)学习小记</title>
      <link>https://changchen.me/blog/20190305/2019-03-05-anomaly-detection/</link>
      <pubDate>Tue, 05 Mar 2019 22:36:56 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20190305/2019-03-05-anomaly-detection/</guid>
      <description>&lt;p&gt;Coursera 上吴恩达的&lt;a href=&#34;https://www%E3%80%82coursera%E3%80%82org/learn/machine-learning/home/welcome&#34;&gt;《机器学习》&lt;/a&gt;终于学到了第九周的课程。这周上半部分讲述了 Anomaly Detection，因为和工作比较相关（&lt;a href=&#34;https://changchen.me/blog/20190113/anomaly-detection/&#34;&gt;监控报警的智能降噪&lt;/a&gt;），所以比较感兴趣也很期待! 然而看完视频后，说实话略有些失望，因为只介绍了正态分布这一种算法。但视频和课后作业带我从各种不同角度深度剖析了一遍正态分布，收获颇多~&lt;/p&gt;&#xA;&lt;p&gt;本文主要记录了完成&lt;strong&gt;课后编程作业&lt;/strong&gt;的过程，并用 &lt;a href=&#34;https://github.com/daya0576/Gaussian-Distribution/blob/master/normalization.ipynb&#34;&gt;python 实现一遍&lt;/a&gt;(课程为matlab)，talk is cheap, show me the code. 也希望自己也包括正在读这篇文章的你，可以对正态分布有更深的理解。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hexo - Template render error(Solved!!)</title>
      <link>https://changchen.me/blog/20190303/hexo-template-render-error/</link>
      <pubDate>Sun, 03 Mar 2019 13:09:25 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20190303/hexo-template-render-error/</guid>
      <description>&lt;p&gt;Moving my blog from Octopress to Hexo for almost half a year, everything is quit user-friendly(docs, writing experience, etc.), except the &lt;code&gt;Template render error&lt;/code&gt; caused by &lt;a href=&#34;https://en.wikipedia.org/wiki/Zero-width_space&#34;&gt;invisible zero width characters&lt;/a&gt;, e.g. &lt;code&gt;\u2028&lt;/code&gt;!!!&lt;/p&gt;&#xA;&lt;p&gt;There is &lt;a href=&#34;https://hexo.io/docs/troubleshooting.html#Template-render-error&#34;&gt;official troubleshooting solution&lt;/a&gt; for this issue, but does not mention the main root cause and solution.&lt;/p&gt;</description>
    </item>
    <item>
      <title>我的 python 线程为什么执行到一半就消失了!!!</title>
      <link>https://changchen.me/blog/20190228/uwsgi-with-threadpool/</link>
      <pubDate>Thu, 28 Feb 2019 13:23:04 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20190228/uwsgi-with-threadpool/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;如果一个bug可以在本地重现, 那基本上已经解决了一半.&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;最近遇到一个无法在本地重现的多线程bug, 和同事花了一个星期终于解决了, 真的是更深的理解了上面这句话.&lt;/p&gt;</description>
    </item>
    <item>
      <title>《天空之城》观后感</title>
      <link>https://changchen.me/blog/20190217/sky-after-watching/</link>
      <pubDate>Sun, 17 Feb 2019 18:39:49 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20190217/sky-after-watching/</guid>
      <description>&lt;p&gt;读大学的时候, 每个周末都会买好啤酒和花生, 陷入一部精彩的电影. 虽然无数的青春的夜晚就被这么“浪费”, 却不知不觉的洗刷着我的价值观和世界观. 最近看的一部剧(&lt;a href=&#34;https://movie.douban.com/subject/30304087/&#34;&gt;天空之城&lt;/a&gt;), 竟有些勾起那些悠闲日子的回忆, 写篇博客漫无目的记录一些感触.&lt;/p&gt;</description>
    </item>
    <item>
      <title>多进程/多线程/协程 零零散散的记录</title>
      <link>https://changchen.me/blog/20190212/concurrency/</link>
      <pubDate>Tue, 12 Feb 2019 11:06:26 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20190212/concurrency/</guid>
      <description>&lt;p&gt;日常 Python 编程若遇到性能瓶颈, 大部分还是由于 &lt;a href=&#34;https://en.wikipedia.org/wiki/I/O_bound&#34;&gt;I/O 密集型&lt;/a&gt; 的操作导致, 例如调用外部接口请求数据超时, 造成整个处理流程的阻塞. 一般会采用多线程来解决这类问题, 但不知道就为什么陷入了多进程, 多线程, 协程的迷惑之中. 用这篇文章记录自己零零星星的学习和思考.&lt;/p&gt;</description>
    </item>
    <item>
      <title>进城务工人员新春返乡流水账(2019)</title>
      <link>https://changchen.me/blog/20190205/yuhuan-newye-2019/</link>
      <pubDate>Tue, 05 Feb 2019 10:46:57 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20190205/yuhuan-newye-2019/</guid>
      <description>&lt;p&gt;除夕前一天中午吃过午饭, 摸了会鱼, 便踏上了新春回家之路. 由于临时改签了车票(去女朋友家吃个饭), 直接打车去的杭州东站. 万万没想到路上很通畅, 不到半个小时便抵达了火车站, 进站也如丝般润滑, 给&lt;a href=&#34;https://zhuanlan.zhihu.com/p/39304158&#34;&gt;刷脸实名制进站&lt;/a&gt;点赞👍&lt;/p&gt;&#xA;&lt;p&gt;结果比预期早到了半个小时, 坐等发车~&lt;/p&gt;</description>
    </item>
    <item>
      <title>记一次 Matplotlib 解决多线程画图的故事</title>
      <link>https://changchen.me/blog/20190204/matplot-thread-safing/</link>
      <pubDate>Mon, 04 Feb 2019 19:37:24 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20190204/matplot-thread-safing/</guid>
      <description>&lt;p&gt;说起运维, 大家可能想到的第一个词就是“苦逼”🤔。 但近些年来, 这个职位发生了翻天覆地的变化: 人肉运维(PE) → 自动化运维(DevOps) → 智能运维(AIOps)。 身为SRE 大军中的一员(&lt;a href=&#34;https://changchen.me/blog/20180403/impressions-of-google-sre/&#34;&gt;什么是 SRE&lt;/a&gt;), 也在智能运维的边缘试探: 希望打造监控告警「智能降噪」, 「根因定位」, 「自愈」的处理流程, 终极目标就是让每个人都睡个好觉。&lt;/p&gt;&#xA;&lt;p&gt;而上述流程中不是核心, 却不可或缺的一部分就是投递告警时, 将隐晦的告警消息(文字)可视化，转化为生动的图片与诊断结果。 由于我们的整个平台是由 Python 搭建的, 关于绘图调研过多个第三方工具, 但不是太慢就是依赖过重, 最终选择了经典的 &lt;a href=&#34;https://matplotlib.org/&#34;&gt;Matplotlib&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>业务报警智能降噪的那些事</title>
      <link>https://changchen.me/blog/20190113/anomaly-detection/</link>
      <pubDate>Sun, 13 Jan 2019 21:16:05 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20190113/anomaly-detection/</guid>
      <description>&lt;p&gt;近半年工作，一大部分时间在探索监控报警的智能降噪。用这篇博客整理个人点点滴滴的思考，希望可以不断的持续更新..&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/190113_abnormal_detection/IMG_2600.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;h1 id=&#34;背景介绍&#34;&gt;背景介绍&lt;/h1&gt;&#xA;&lt;p&gt;监控的重要性不言而喻，它就相当于 &lt;a href=&#34;https://changchen.me/blog/20180403/impressions-of-google-sre/&#34;&gt;SRE&lt;/a&gt; 的眼睛。但由于监控系统静态规则的局限性，经常会产生一些误报，e.g. 促销冲高回落(尖刺)，小流量波动, 季节性趋势下跌，入口下跌等等。轻则形成针对人的「DDOS攻击」，重则导致真正的故障被忽略(狼来了的故事)。所以如何利用算法自动识别噪音，已成为当务之急，将会大大降低人肉处理报警的成本，为公司节省成本。&lt;/p&gt;</description>
    </item>
    <item>
      <title>使用 Buddy 实现博客持续部署</title>
      <link>https://changchen.me/blog/20181209/continuous-delivery-by-buddy-work/</link>
      <pubDate>Sun, 09 Dec 2018 12:59:32 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20181209/continuous-delivery-by-buddy-work/</guid>
      <description>&lt;p&gt;每次写完博客后, 需要手动执行自定义的&lt;code&gt;deploy.sh&lt;/code&gt;脚本进行手动部署. 虽然已经做到一键发射了, 但作为一名 SRE, 内心还是有几分惭愧的. 特别是每次深夜等待部署的那么两三分钟, 都会陷入无尽的沉思🤔. 毕竟以自动化工具为荣，以人肉操作为耻 XD&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;所以理想情况下: 当 push 代码成功之后, 就可以合上笔记本呼呼大睡了&lt;/strong&gt;. 稍微调查了一下, 主要有三个解决方案进入的我的视野, 请容我一一道来.&lt;/p&gt;</description>
    </item>
    <item>
      <title>K-means学习记录, 没想到你是这样的聚类算法</title>
      <link>https://changchen.me/blog/20181004/kmeans-algorithm/</link>
      <pubDate>Thu, 04 Oct 2018 17:00:35 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20181004/kmeans-algorithm/</guid>
      <description>&lt;p&gt;今日在学机器学习 第八章(&lt;a href=&#34;https://www.coursera.org/learn/machine-learning/lecture/93VPG/k-means-algorithm&#34;&gt;Unsupervised learning&lt;/a&gt;) 的时候, 开头介绍时讲到了 K-means 应用在大型计算集群的资源分配上(见下图).&lt;/p&gt;&#xA;&lt;p&gt;突然间一些回忆就猛的涌上心头: 本科跟着老师做的算法研究, 最后毕业论文的名字叫做《基于虚拟机放置策略的数据中心网络节能算法研究》, 其实和刚刚提到的资源分配非常类似. 当时在论文摘要中提到了K-means算法, 可惜并没有深入去了解原理. 惭愧, 趁这个机会好好学习下, 算法并不复杂, 更多的是作为一次记录与反省.&lt;/p&gt;</description>
    </item>
    <item>
      <title>自如甲醛检测的魔幻之旅</title>
      <link>https://changchen.me/blog/20180911/ziru-air-quality/</link>
      <pubDate>Tue, 11 Sep 2018 20:28:13 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20180911/ziru-air-quality/</guid>
      <description>&lt;p&gt;企业天生就是追求利益的, 可生命永远是无价的. 本文记录分享了自如甲醛检测的魔幻之旅, 虽然最后还是放弃了 \doge.&lt;/p&gt;</description>
    </item>
    <item>
      <title>数据库查询的索引原理介绍 (面试必问)</title>
      <link>https://changchen.me/blog/20180908/db-index/</link>
      <pubDate>Sat, 08 Sep 2018 15:16:22 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20180908/db-index/</guid>
      <description>&lt;p&gt;分享一个小故事: 依稀记得人生第一次面试终面的时候, 那家公司的CTO问我数据库中有哪些索引. 正好读书时学过一门课叫做&lt;a href=&#34;https://changchen.me/blog/20160228/comp9315-16s1/&#34;&gt;DBMS Implementation&lt;/a&gt;, 于是就巴拉巴拉列了一堆. 瞬间面试官就两眼发光的看着我, 说我既然知道&lt;code&gt;bitmap&lt;/code&gt;, 一定是个上课认真学习的好孩子, 就兴高采烈的给我发了offer.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;所以说年轻人, 认真读了这篇博客之后, 你就可以顺利的拿到offer, 从此走上成为CTO赢取白富美的康庄大道!&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>博客开启HTTP/2后的对比实验, 感觉要起飞了 =.=</title>
      <link>https://changchen.me/blog/20180905/blog-http2/</link>
      <pubDate>Wed, 05 Sep 2018 23:53:20 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20180905/blog-http2/</guid>
      <description>&lt;p&gt;今日偶遇一篇 cloudflare关于&lt;a href=&#34;https://www.cloudflare.com/website-optimization/http2/what-is-http2/&#34;&gt;HTTP/2的介绍&lt;/a&gt;. 于是将自己的博客升级到HTTP/2, 感觉酷酷的(上边为http/1.1, 下边为http/2), 想起自己大众点评的id叫做&lt;code&gt;酷酷的运动圆&lt;/code&gt;, 哈哈哈:&lt;br&gt;&#xA;&lt;img src=&#34;https://i.loli.net/2018/09/07/5b9252752e141.png&#34; alt=&#34;bg.png&#34;&gt;&lt;/p&gt;&#xA;&lt;!--![bg](/images/blog/1800905_blog_http2/bg.png)--&gt;</description>
    </item>
    <item>
      <title>记我为Hexo Next主题提交的第一个PR</title>
      <link>https://changchen.me/blog/20180903/hexo-next-first-pr/</link>
      <pubDate>Mon, 03 Sep 2018 22:42:33 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20180903/hexo-next-first-pr/</guid>
      <description>&lt;p&gt;用了Hexo的主题一个月了, 本文记录一下我为Hexo Next主题提交的第一个PR: &lt;a href=&#34;https://github.com/theme-next/hexo-theme-next/pull/406&#34;&gt;Safari中无法lazyload Disqus的评论框&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;背景&#34;&gt;背景&lt;/h2&gt;&#xA;&lt;p&gt;Next主题在Disqus评论框的配置中的有一个选项: 开启lazyload. 实现Disqus评论框延迟动态加载的效果.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# Disqus&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;disqus&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;enable&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;shortname&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;daya0576&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;count&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;lazyload&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;但在iPhone上打开时, 就算拖动窗口到最底部, 评论框都不会开始加载. 怀疑是浏览器的问题, 果然在电脑上的Safari重现了.&lt;/p&gt;</description>
    </item>
    <item>
      <title>《蚂蚁金服：科技金融独角兽的崛起》 读后感</title>
      <link>https://changchen.me/blog/20180901/ant-jounal-entry/</link>
      <pubDate>Sat, 01 Sep 2018 23:59:19 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20180901/ant-jounal-entry/</guid>
      <description>&lt;p&gt;今天在整理荒废很久的印象笔记时(公司不让用云笔记), 突然发现很久前记录的《蚂蚁金服：科技金融独角兽的崛起》这本书的读后感. 虽然个人感觉只从作者编写水平的维度上来说, 和《腾讯传》有一定的差距, 但里边的描述反过头来还是非常真实的.&lt;/p&gt;&#xA;&lt;p&gt;分享一下书中比较有趣的片段与思考. 文末有彩蛋哟 :)&lt;/p&gt;</description>
    </item>
    <item>
      <title>记一次Hexo Next主题的小小小升级(v6.3.0 → v6.4.0)</title>
      <link>https://changchen.me/blog/20180901/hexo-next-update-version/</link>
      <pubDate>Sat, 01 Sep 2018 16:17:01 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20180901/hexo-next-update-version/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;软件维护有两种截然不同的思路，一种所有的依赖都追踪最新版，一旦出最新版立即开始试用，出问题马上反馈社区或者解决，这样虽然经常需要适配新版，但每次都是小问题，很快就能解决。这是活着的软件，虽然每天都要吃饭很麻烦，但你能看见它的新陈代谢。&lt;/p&gt;&#xA;&lt;p&gt;另一种所有的依赖都选择一个不会变的固定版本，能不升级就不升级，旧版本的bug想办法workaround，这种软件的开发者害怕改变，能推到明天的工作绝对不在今天做，并且喜欢以“项目规模太大，客户要求严格，风险太高”为理由，得过且过，这种是死掉的项目，只是还没有埋而已，在这种项目上你会发现做变更也特别困难，许多现代项目里非常常见的功能根本加不进去（因为依赖库不支持）&lt;/p&gt;&#xA;&lt;p&gt;活着的项目可能会死，死掉的项目是几乎不可能再活过来的，落后太多版本，一旦升到最新版就发现到处都是问题修不过来了，因为没有跟踪过依赖的版本变更，也搞不清楚可能是什么问题。像JDK这种已经算好的了，不兼容的情况一般比较少，但JDK都不肯升，依赖库肯定也全是JDK6版本的了，要把依赖库直接升到10，只能选择死亡了。&lt;/p&gt;&#xA;&lt;p&gt;作者：灵剑&#xA;链接：https://www.zhihu.com/question/30137699/answer/476916096&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;以上为知乎上的一个回答. 个人觉得如果对于自己非常熟悉的第三方依赖, 并可以把握风险的话, 还是会不断的去追求最新版本. 毕竟对于新事物的好奇心是活在一个优秀程序员血液里的东西.&lt;/p&gt;&#xA;&lt;p&gt;本文简单记录了Hexo Next主题升级版本(v6.3.0 → v6.4.0)的完整过程.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Disqus添加了Reactions的功能</title>
      <link>https://changchen.me/blog/20180831/disqus-new-reaction/</link>
      <pubDate>Fri, 31 Aug 2018 17:42:09 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20180831/disqus-new-reaction/</guid>
      <description>&lt;p&gt;效果图, 太 cool 了, 可惜只有新加的文章才能开启:&#xA;&lt;img src=&#34;https://changchen.me/images/blog/180829_ios12_review/15357091006842.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Pycharm集成flake8检查 (External Tools)</title>
      <link>https://changchen.me/blog/20180830/pycharm-flake8-integretion/</link>
      <pubDate>Thu, 30 Aug 2018 21:06:05 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20180830/pycharm-flake8-integretion/</guid>
      <description>&lt;p&gt;在我们的项目中, 每次 push 代码后, gitlab 的 runner 会自动执行一次 flake8 代码静态检查. 当然在本地也可以在终端中手动触发, 但缺点是如果检查出 10 个问题, 我要重复 10 次复制粘贴文件路径在 Pycharm 中修改的操作.&#xA;&lt;img src=&#34;https://changchen.me/images/blog/180829_ios12_review/15357044080367.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;今天突然发现可以在 Pycharm 中利用 External Tools 集成 flake8 检查, 点点鼠标就能到具体的代码位置。&#xA;&lt;img src=&#34;https://changchen.me/images/blog/180829_ios12_review/15357030899815.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>2018年 每日小思(Self-Examination)</title>
      <link>https://changchen.me/blog/20180829/2018-daily-self-examination/</link>
      <pubDate>Wed, 29 Aug 2018 21:50:40 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20180829/2018-daily-self-examination/</guid>
      <description>&lt;p&gt;有时候走在路上, 总会觉得来来往往的人群就像一只只没有思想的僵尸. 慢慢的自己也被欲望和忙碌的工作剥去了自己的思考, 决定每年都开一篇博客, 记录生活中零零散散的思考.&lt;/p&gt;</description>
    </item>
    <item>
      <title>iOS12体验： 一个字，爽！</title>
      <link>https://changchen.me/blog/20180829/ios12-review/</link>
      <pubDate>Wed, 29 Aug 2018 15:35:26 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20180829/ios12-review/</guid>
      <description>&lt;h1 id=&#34;和女朋友的日常&#34;&gt;和女朋友的日常:&lt;/h1&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;我:&lt;/strong&gt; 哇, iOS12 正式版终于出来了, 太酷了!!! 我帮你的手机升级吧.&lt;br&gt;&#xA;&lt;strong&gt;cc:&lt;/strong&gt; 我不要&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;我:&lt;/strong&gt; iOS12 很棒的哟, 流畅的一 b! 你手机上乱七八糟的消息都被折叠了, 并可以一键永久关闭推送. 多了防沉迷的功能, 统计你每天玩了多久的消消乐. 还能自动填充验证码呢!&lt;br&gt;&#xA;&lt;strong&gt;cc:&lt;/strong&gt; 哦&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;我:&lt;/strong&gt; 你听我说, 这次和之前 iOS11 不一样了, 升级系统手机不会变卡的.&lt;br&gt;&#xA;&lt;strong&gt;cc:&lt;/strong&gt; 我不听我不听, 就是骗人换手机的.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;我:&lt;/strong&gt; 要不这样, 我帮你手机升级, 我带你吃好吃的怎么样?&#xA;&lt;strong&gt;cc:&lt;/strong&gt; (思考 ing&amp;hellip;) 好呀!!&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;所以有个勇士一个月前就加入了公测(Public Beta), 总结了 iOS12 中的一些新特性, 用来说服女朋友升级系统!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Django (2006, &#39;MySQL server has gone away&#39;) 本地重现与解决</title>
      <link>https://changchen.me/blog/20180824/django-2006-mysql-server-has-gone-away/</link>
      <pubDate>Fri, 24 Aug 2018 15:34:44 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20180824/django-2006-mysql-server-has-gone-away/</guid>
      <description>&lt;p&gt;最近我们的Django项目供Java Sofa应用进行tr调用时, 经常会出现一个异常: &lt;code&gt;django.db.utils.OperationalError: (2006, &#39;MySQL server has gone away&#39;)&lt;/code&gt;. 本文记录了&lt;strong&gt;分析, 本地重现与解决此问题&lt;/strong&gt;的全过程.&lt;/p&gt;&#xA;&lt;h1 id=&#34;原因分析&#34;&gt;原因分析:&lt;/h1&gt;&#xA;&lt;p&gt;Django在1.6引入长链接(&lt;a href=&#34;https://docs.djangoproject.com/en/2.1/ref/databases/#persistent-connections&#34;&gt;Persistent connections&lt;/a&gt;)的概念, 可以在一个HTTP请求中一直用同一个连接对数据库进行读写操作. &lt;br&gt;&#xA;但我们的应用对数据库的操作&lt;strong&gt;太不频繁&lt;/strong&gt;了, 两次操作数据库的间隔大于MySQL配置的超时时间(默认为8个小时), 导致下一次操作数据库时的connection过期失效.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Our databases have a 300-second (5-minute) timeout on inactive connections. That means, if you open a connection to the database, and then you don&amp;rsquo;t do anything with it for 5 minutes, then the server will disconnect, and the next time you try to execute a query, it will fail.&lt;/p&gt;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>MWeb3.0?? 记一次后悔的购买经历</title>
      <link>https://changchen.me/blog/20180824/mweb3-review/</link>
      <pubDate>Fri, 24 Aug 2018 10:12:18 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20180824/mweb3-review/</guid>
      <description>&lt;p&gt;MWeb2.0 一直是我写博客的主力编辑器, 因为它真的很优秀, 为我写博客带来了无数的便利. 所以看完 MWeb3.0 的新特性(特别是新的 UI 设计和快速搜索的功能), 就原价在 Apple Store 拔草了. 但有一句说一句, 对此次的更新个人表示有一丝失望, 因为用了 MWeb3.0 几个小时后, 我又退回了 MWeb2.0, 233333&amp;hellip;&#xA;&lt;img src=&#34;https://changchen.me/images/blog/180807_octopress_to_hexo/15350917531609.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>部署Hexo静态博客(下) - 偶遇Netlify, 优雅地持续部署你的博客</title>
      <link>https://changchen.me/blog/20180819/deploy-hexo-blog-to-netlify/</link>
      <pubDate>Sun, 19 Aug 2018 22:27:15 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20180819/deploy-hexo-blog-to-netlify/</guid>
      <description>&lt;p&gt;接&lt;a href=&#34;https://changchen.me/blog/20180819/deploy-hexo-blog-to-gcp-oss/&#34;&gt;上篇博客&lt;/a&gt;, 尝试在GCP的OSS上部署静态博客受挫之后, 痛定思痛, 决定先做一个小小的调查, 再敲定最终的部署方案. 这时候搜到一篇非常棒的文章: &lt;a href=&#34;https://blog.csdn.net/grackanil/article/details/81196931&#34;&gt;静态网站托管服务平台的横向方案比较&lt;/a&gt;. 正是在这篇文章中, 我第一次了解到了&lt;a href=&#34;https://www.netlify.com/&#34;&gt;Netlify&lt;/a&gt;. 并一见钟情了, &lt;strong&gt;因为在Net整个部署过程中, 你只需要提交代码, 其余的master部署预览(包括MR的预览), HTTPS证书, 静态资源的优化与CDN加速, 部署消息通知, 等等都不用再操心. 真的是太优雅了XD&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>部署Hexo静态博客(上) - Google Cloud Platform OSS之旅</title>
      <link>https://changchen.me/blog/20180819/deploy-hexo-blog-to-gcp-oss/</link>
      <pubDate>Sun, 19 Aug 2018 18:03:33 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20180819/deploy-hexo-blog-to-gcp-oss/</guid>
      <description>&lt;p&gt;众所周知, 要使用国内的云服务, 不管是vps也好, cdn加速也好, 域名都是要备案的. 但对于我来说, 备案是不可能备案的，这辈子不可能备案的.&lt;/p&gt;&#xA;&lt;p&gt;正好前段时间工作中接触了aliyun的oss, 就萌生了将网站部署到Google Cloud Platform的OSS上的想法💡.&#xA;&lt;img src=&#34;https://changchen.me/images/blog/180819_hexo_to_gcp_oss/15346829618992.jpg&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;结论:&lt;/strong&gt; &lt;br&gt;&#xA;GCP的OSS速度看上去还是很优秀的, 但部署步骤繁琐, https比较棘手, 还是放弃了这种部署方式.&lt;br&gt;&#xA;最终选择了Netlify, 见下一篇博客:&lt;/p&gt;</description>
    </item>
    <item>
      <title>博客搬家小记（Octopress → Hexo）</title>
      <link>https://changchen.me/blog/20180806/octopress-to-hexo/</link>
      <pubDate>Mon, 06 Aug 2018 21:05:49 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20180806/octopress-to-hexo/</guid>
      <description>&lt;p&gt;从2014年开始, 不知不觉用&lt;a href=&#34;http://octopress.org/&#34;&gt;Octopress&lt;/a&gt;写博客已经四年多了. 用的主题叫做&lt;a href=&#34;https://shashankmehta.in/archive/2012/greyshade.html&#34;&gt;Greyshade&lt;/a&gt;, 陆陆续续做了很多小改动, 同时也使整个项目一团糟, 慢慢的变得难以维护, 编写一篇新博客的成本也越来越高了, 终于下定决心给博客搬个家.&lt;/p&gt;&#xA;&lt;p&gt;调研过一些博客框架, 例如车亮亮做的基于Django的博客系统(&lt;a href=&#34;https://github.com/liangliangyy/DjangoBlog&#34;&gt;GitHub主页&lt;/a&gt;), Jekyll, Ghost, etc. 但最后还是选择了现在最火的Hexo. 本文主要记录了使用hexo的心路历程, 至于如何部署可以参考这篇blog: &lt;a href=&#34;https://changchen.me/blog/20170729/octopress-nginx-vps/&#34;&gt;在vps上部署你的静态博客(网站)&#xA;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>机器学习(Coursera - Andrew NG)个人笔记</title>
      <link>https://changchen.me/blog/20180707/coursera-machine-learning-note/</link>
      <pubDate>Sat, 07 Jul 2018 10:17:32 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20180707/coursera-machine-learning-note/</guid>
      <description>&lt;p&gt;一直觉得Coursera是个很好的学习平台, 因为课程中都会穿插着丰富的&lt;strong&gt;课后作业&lt;/strong&gt;和&lt;strong&gt;大作业&lt;/strong&gt;(真正掌握知识还是需要主动思考🤔和实践).&#xA;而且很巧, 四年多前刚开始写博客时, 记录的是学习《An Introduction to Interactive Programming in Python》的过程. 当时每个人的大作业都是随机五个同学批改的, &lt;a href=&#34;https://changchen.me/blog/20140429/cousera-comments/&#34;&gt;这篇博客&lt;/a&gt;记录了来自世界各地的人对我作业的评论😄). &lt;br&gt;&#xA;四年后重新出发, 学习Andrew Ng的&lt;a href=&#34;https://www.coursera.org/learn/machine-learning/home/welcome&#34;&gt;《Machine Learning》&lt;/a&gt;), 分享一下自己的笔记和小小感悟.&lt;/p&gt;</description>
    </item>
    <item>
      <title>相依为命的app推荐(macOS)</title>
      <link>https://changchen.me/blog/20180507/best-macos-apps/</link>
      <pubDate>Mon, 07 May 2018 12:04:19 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20180507/best-macos-apps/</guid>
      <description>&lt;p&gt;macOS为什么那么受欢迎, 个人觉得很大一个原因是它完善的app生态圈, 意味你的需求几乎都能满足! &lt;br&gt;&#xA;这篇文章分享一些心爱的app❤️❤️❤️&lt;/p&gt;&#xA;&lt;h1 id=&#34;bartender-3&#34;&gt;Bartender 3:&lt;/h1&gt;&#xA;&lt;p&gt;主页: &lt;a href=&#34;https://www.macbartender.com&#34;&gt;https://www.macbartender.com&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;价格: macOS: $15.00&lt;br&gt;&#xA;亮点: menu bar图标太多放不下的时候, 可以把不常用的隐藏起来(见下图), 赞!&lt;br&gt;&#xA;&lt;img src=&#34;https://changchen.me/images/blog/180507_macos_app/2018-04-18%2021_09_31.gif&#34; alt=&#34;&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>《Site Reliability Engineering》by Google 读书笔记</title>
      <link>https://changchen.me/blog/20180403/impressions-of-google-sre/</link>
      <pubDate>Tue, 03 Apr 2018 12:04:19 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20180403/impressions-of-google-sre/</guid>
      <description>&lt;p&gt;下一份工作要开始做 SRE 了，准备看下&lt;a href=&#34;http://landing.google.com/sre/book.html&#34;&gt;Google 出的《Site Reliability Engineering》&lt;/a&gt;稍微准备一下。感觉写的还是挺不错的, 顺便这篇博客记录读后感(期望更多的是个人的一些思考和感悟)。&lt;/p&gt;&#xA;&lt;p&gt;陆陆续续读了快两年。。突然想起一句话：&lt;strong&gt;人生的意义不在于某个时间点的状态，而是随着时间流逝而留下的痕迹&lt;/strong&gt;。希望这篇幼稚的笔记也能成为我在这个世界留下的一丝痕迹。&lt;/p&gt;&#xA;&lt;p&gt;p.s. 划重点，&lt;strong&gt;欢迎交流或推荐好的书～&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://changchen.me/images/blog/190727_cloudflare_outage/book.jpg&#34; alt=&#34;book&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Git Internal(初探git的内部实现)</title>
      <link>https://changchen.me/blog/20180315/git-internal/</link>
      <pubDate>Thu, 15 Mar 2018 20:55:08 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20180315/git-internal/</guid>
      <description>&lt;p&gt;最近YouTube上看到Gitlab频道的一个视频: &lt;a href=&#34;https://www.youtube.com/watch?v=P6jD966jzlk&#34;&gt;Git Internals - How Git Works - Fear Not The SHA!&lt;/a&gt;&lt;br&gt;&#xA;感觉打开了新世界的大门🤩😍🤣. 用这篇博客记录一下感悟和思考, 希望你看完之后, 对下边这张图会有更深的理解. &lt;br&gt;&#xA;&lt;img style=&#34;max-height:350px&#34; src=&#34;https://changchen.me/images/blog/180315_git_internal/6993E92A-CB86-4BB9-9063-F3134BDC94D3.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>我和VIM的故事</title>
      <link>https://changchen.me/blog/20180223/vim-tour/</link>
      <pubDate>Fri, 23 Feb 2018 15:41:28 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20180223/vim-tour/</guid>
      <description>&lt;p&gt;和VIM相爱的故事要从我的笔记本&lt;strong&gt;上下键&lt;/strong&gt;坏了开始..哈哈&lt;br&gt;&#xA;&lt;img src=&#34;https://changchen.me/images/blog/180223_vim/apple.png&#34; alt=&#34;&#34;&gt;&#xA;虽然大二的时候学过vim, 但一直用的IDE. 今年强迫自己用了三天vim之后, 彻底的爱上用VIM写代码的感觉.&lt;br&gt;&#xA;&lt;strong&gt;用这篇博客分享一下自己从VIM小白一路不断学习的历程.&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>APIStar - WERKZEUG(run_simple) 源码阅读笔记</title>
      <link>https://changchen.me/blog/20180223/apistar-werkzeug-run-simple/</link>
      <pubDate>Fri, 23 Feb 2018 11:20:49 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20180223/apistar-werkzeug-run-simple/</guid>
      <description>&lt;p&gt;上个月研究APIStar源码, 发现启动&lt;code&gt;python app.py run&lt;/code&gt;用的是&lt;strong&gt;werkzeug的run_simple&lt;/strong&gt;方法, 仔细读了一下, 感触颇深, 用这篇日志分享一下整个执行流程.&lt;/p&gt;</description>
    </item>
    <item>
      <title>&lt;算法导论(3rd)&gt;第十八章 - B Tree!</title>
      <link>https://changchen.me/blog/20180222/b-tree/</link>
      <pubDate>Thu, 22 Feb 2018 18:22:28 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20180222/b-tree/</guid>
      <description>&lt;p&gt;之前学DBMS的时候接触到B Tree, 但当时懵懵懂懂我的对B Tree的操作也是一知半解.&lt;br&gt;&#xA;今天看了书(主要是严谨的定义和完整的伪代码流程), 感触颇深, 以此博客记录一下.&lt;/p&gt;&#xA;&lt;h1 id=&#34;b-tree的定义&#34;&gt;B Tree的定义:&lt;/h1&gt;&#xA;&lt;p&gt;&lt;em&gt;(看上去这些定义好像很啰嗦没什么意思, 但花点时间搞清楚后, 看伪代码和下文会清晰很多.)&lt;/em&gt;&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;每个节点x有以下的性质&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;x.n&lt;/code&gt; → 一个节点中关键字的个数.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;x.key1 &amp;lt;= x.key2 &amp;lt;= x.key3&lt;/code&gt;, e.g. 一个节点: [A, N, O] → A &amp;lt; N &amp;lt; O&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;x.leaf&lt;/code&gt; → 是否为叶子节点(True/False)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;每个节点如果有n个关键字, 就有&lt;strong&gt;n+1个&lt;/strong&gt;指向孩子的指针**(x.c1, x.c2, &amp;hellip;)**&lt;/li&gt;&#xA;&lt;li&gt;每个叶子节点, 都有相同的深度, 即&lt;strong&gt;树的高度h&lt;/strong&gt; (为什么呢? 每个叶子节点&amp;hellip;)&lt;/li&gt;&#xA;&lt;li&gt;对于两个相邻关键字x.key1, x.key2之间(子树上)的&lt;strong&gt;任意一个关键字k&lt;/strong&gt;, 必定有x.key1 &amp;lt;= k &amp;lt;= x.key2&lt;/li&gt;&#xA;&lt;li&gt;最后有个很重要的概念: &lt;strong&gt;最小度数(minimum degree) → t&lt;/strong&gt;.&lt;br&gt;&#xA;得到一个节点关键字个数限制:&lt;br&gt;&#xA;&lt;img style=&#34;max-height:100px&#34; src=&#34;https://changchen.me/images/blog/180221_btree/equation_t.jpg&#34;&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;</description>
    </item>
    <item>
      <title>Django单元测试大提速(250s→5s)</title>
      <link>https://changchen.me/blog/20180204/djangodan-yuan-ce-shi-da-ti-su-300s-5s/</link>
      <pubDate>Sun, 04 Feb 2018 19:59:42 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20180204/djangodan-yuan-ce-shi-da-ti-su-300s-5s/</guid>
      <description>&lt;p&gt;新的一年有新的开始, 决定使用TDD进行开发! &lt;strong&gt;但第一个问题就是: 执行一次单元测试需要200多秒&lt;/strong&gt;, 快速地测试执行俨然成为了当务之急!(正经脸🤭)&lt;br&gt;&#xA;用这篇博客记录一些django单元测试提速的实用小技巧: &lt;br&gt;&#xA;&lt;img style=&#34;max-height:300px&#34; src=&#34;https://changchen.me/images/blog/180203_unittest_speedup/api_v1_test.gif&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>&lt;算法导论(3rd)&gt;第六章 - Heap!Heap!Heap!</title>
      <link>https://changchen.me/blog/20180203/heapheapheap/</link>
      <pubDate>Sat, 03 Feb 2018 20:14:24 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20180203/heapheapheap/</guid>
      <description>&lt;p&gt;第一次懵懵懂懂接触Heap是在学信息检索的时候, 讲到用min heap直接在disk上对posting lists做合并操作.&lt;br&gt;&#xA;&lt;img style=&#34;max-height:250px&#34; src=&#34;https://changchen.me/images/blog/180203_heap/n-way-merge.png&#34;&gt;&lt;br&gt;&#xA;今天看了&amp;lt;算法导论(3rd)&amp;gt;第六章堆排序, 感触颇深, 以此博客记录一下.&lt;/p&gt;</description>
    </item>
    <item>
      <title>iPhone无线充电底座选购心路历程</title>
      <link>https://changchen.me/blog/20171224/wireless-charging-review/</link>
      <pubDate>Sun, 24 Dec 2017 20:20:56 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20171224/wireless-charging-review/</guid>
      <description>&lt;p&gt;换新手机时, 有个不大不小的诱惑就是无线充电技术, 少一步插线的步骤, 其实对体验还是有很大的提升的. 用这篇文章, 尝试记录一下我的无线充电器选购心路历程:&lt;br&gt;&#xA;&lt;strong&gt;机无忌&lt;/strong&gt; → &lt;strong&gt;Belkin&lt;/strong&gt; → &lt;strong&gt;Mophie&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>【游记】皇家量子号 五天四晚</title>
      <link>https://changchen.me/blog/20170914/quantans-of-sea-summary/</link>
      <pubDate>Thu, 14 Sep 2017 20:49:42 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20170914/quantans-of-sea-summary/</guid>
      <description>&lt;p&gt;请假了三天, 加上周末两天, 和女朋友坐上皇家量子号. 出海寻找One Piece, 可惜回来的时候, 只带回了两个&amp;quot;游泳圈&amp;quot;, 哈哈.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Octopress `rake&amp;nbsp;generate` 命令的大提速🚀</title>
      <link>https://changchen.me/blog/20170812/rake-trick-octopress/</link>
      <pubDate>Sat, 12 Aug 2017 17:11:12 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20170812/rake-trick-octopress/</guid>
      <description>&lt;p&gt;这个博客是三四年前用Octopress框架搭的, 老年人的博客, 哈哈. &lt;br&gt;&#xA;但是用久了之后&lt;strong&gt;有个问题很困扰我:&lt;/strong&gt; 文章多了之后, 每次运行&lt;code&gt;rake generate&lt;/code&gt;要很久. &lt;br&gt;&#xA;分享一个小技巧: 可以&lt;strong&gt;大大提高了&lt;code&gt;rake generate&lt;/code&gt;的速度(12.93s → 1.37s)&lt;/strong&gt;, 实时预览的时候也能对修改秒做响应了!&lt;/p&gt;</description>
    </item>
    <item>
      <title>熟悉的陌生人: Python format用法大全~</title>
      <link>https://changchen.me/blog/20170810/python-format-summary/</link>
      <pubDate>Thu, 10 Aug 2017 11:04:03 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20170810/python-format-summary/</guid>
      <description>&lt;p&gt;今天看到&lt;a href=&#34;https://docs.python.org/3/library/string.html#format-string-syntax&#34;&gt;官方文档&lt;/a&gt;的时候, 突然发现format()这个方法这么强大, 有好多原先不知道的用法. 用这篇博客总结了一下.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Python的编码问题笔记(搞清原理, 一劳永逸)</title>
      <link>https://changchen.me/blog/20170731/python-encoding-decoding/</link>
      <pubDate>Mon, 31 Jul 2017 20:59:46 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20170731/python-encoding-decoding/</guid>
      <description>&lt;p&gt;近日常常python的编码问题纠缠的生活不能自理. 昨天终于静下心来看了看文档, 把Python3中的编码搞清, 用这篇文章分享记录一下**(包括utf-8的原理)**. &lt;br&gt;&#xA;&lt;img class=&#34;lazy&#34; style=&#34;max-height:200px&#34; data-original=&#34;/images/blog/170801_encoding/h.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>在vps上部署你的静态博客(网站)</title>
      <link>https://changchen.me/blog/20170729/octopress-nginx-vps/</link>
      <pubDate>Sat, 29 Jul 2017 14:10:26 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20170729/octopress-nginx-vps/</guid>
      <description>&lt;p&gt;昨晚博客搬到香港的vps上了. 在这篇文章把简单的几个步骤, 总结分享一下( 本文主要以Octopress为例子, 但流程其实都是共通的).   &lt;br&gt;&#xA;&lt;img style=&#34;max-height:300px&#34; src=&#34;https://changchen.me/images/blog/170729_hoster/boost1.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>排序算法总结(Python实现附带思路)</title>
      <link>https://changchen.me/blog/20170611/sorting-algorithm/</link>
      <pubDate>Sun, 11 Jun 2017 00:04:35 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20170611/sorting-algorithm/</guid>
      <description>&lt;p&gt;最近开始看&amp;lt;算法导论&amp;gt;, 一开始就是讲的就是插入排序和merge sort, &lt;br&gt;&#xA;之前面试的时候, 也被问起过排序算法, 一紧张只想到了两三个, &lt;br&gt;&#xA;所以乘这个机会回顾了一下大部分的排序算法, &lt;strong&gt;并自己用Python实现了一遍.&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>PyCharm 收藏多年快捷键分享 WOW</title>
      <link>https://changchen.me/blog/20170607/pycharm-shortcut/</link>
      <pubDate>Wed, 07 Jun 2017 20:43:18 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20170607/pycharm-shortcut/</guid>
      <description>&lt;p&gt;介绍一些Pycharm中大幅度提高生产力的快捷键, 不看后悔一辈子! (逃)&#xA;大部分的快捷键在同系列的IDE(JetBrains全家桶)上应该都是能通用的  &lt;br&gt;&#xA;&lt;img style=&#34;max-height:250px&#34; src=&#34;https://changchen.me/images/blog/170606_pycharm_shortcut/license-min.png&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>数组分割(编程之美) HyperS面试题 思考与分享</title>
      <link>https://changchen.me/blog/20170525/partition-problem/</link>
      <pubDate>Thu, 25 May 2017 00:34:57 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20170525/partition-problem/</guid>
      <description>&lt;h1 id=&#34;问题描述&#34;&gt;问题描述:&lt;/h1&gt;&#xA;&lt;p&gt;&lt;strong&gt;有一个无序, 元素个数为2n的正整数数组. 要求: 如何能把这个数组分割为元素个数为n的两个数组, 并使两个子数组的和最接近.&lt;/strong&gt;&#xA;当时面试的时候, 看完描述想了十秒钟, 只能想到C(2n, n)把所有情况遍历一遍, 想不到特别简单的算法, 就直接放弃了.. 面试官问我应该怎么做呢, 我只能靠直觉说用动态规划吧. &lt;br&gt;&#xA;虽然现在早就入职了, 但终于有时间重新思考这个问题, 并用这篇日志记录下来.&lt;/p&gt;</description>
    </item>
    <item>
      <title>饿了吗 一道面试题分享和思考~</title>
      <link>https://changchen.me/blog/20170515/ele-interview-solution/</link>
      <pubDate>Mon, 15 May 2017 12:46:27 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20170515/ele-interview-solution/</guid>
      <description>&lt;p&gt;之前在上海面试后端开发的时候, 面试官问了一个数据库相关的问题:&lt;br&gt;&#xA;有这么一张表: 里边存着所有用户的登录信息, 例如用户名和登录时间.&lt;br&gt;&#xA;请问如何找出&lt;strong&gt;所有用户最近登录&lt;/strong&gt;的记录呢?&lt;/p&gt;</description>
    </item>
    <item>
      <title>Django filter 的一个令人震惊的小细节, 不转不是中国人!(逃..)</title>
      <link>https://changchen.me/blog/20170504/django-filter-trick/</link>
      <pubDate>Thu, 04 May 2017 09:40:57 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20170504/django-filter-trick/</guid>
      <description>&lt;p&gt;最近在看django的官方文档的时候, 看到filter()需要注意的地方:&lt;br&gt;&#xA;&lt;code&gt;Blog.objects.filter(cond1, cond2)&lt;/code&gt;&lt;br&gt;&#xA;和&lt;br&gt;&#xA;&lt;code&gt;Blog.objects.filter(cond1).filter(cond2))&lt;/code&gt;的结果竟然不同. &lt;br&gt;&#xA;仔细看了许久才明白其中的差异, 特写下这篇日志来分享一下.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Django 性能优化官方文档笔记(主要针对ORM)</title>
      <link>https://changchen.me/blog/20170504/django-performance-and-optimisation/</link>
      <pubDate>Thu, 04 May 2017 01:34:09 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20170504/django-performance-and-optimisation/</guid>
      <description>&lt;p&gt;最近看了django关于性能优化的文档: &lt;a href=&#34;https://docs.djangoproject.com/en/2.1/topics/db/optimization/&#34;&gt;链接🔗&lt;/a&gt; &lt;br&gt;&#xA;整理了一下笔记, 并写下几点比较深的感触&lt;strong&gt;和我优化django代码的总结&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Django ORM的多对多关系 (每个关系有附加的属性)</title>
      <link>https://changchen.me/blog/20170406/many-to-many-relation-with-extra-field-django/</link>
      <pubDate>Thu, 06 Apr 2017 20:44:02 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20170406/many-to-many-relation-with-extra-field-django/</guid>
      <description>&lt;p&gt;最近写公司的业务代码, 碰到这么一个问题:   &lt;br&gt;&#xA;&lt;strong&gt;一个User对应多个Account, 而每个Account又可以分享给多个user&lt;/strong&gt;, 典型的多对多的关系. &lt;br&gt;&#xA;但问题在于每个关系, 都有一个permissionsharing的属性: 0: 只读 / 1: 读写 / 2: 自身创建. &lt;br&gt;&#xA;晚上我尝试着用django的orm来实现这个需求.&lt;/p&gt;</description>
    </item>
    <item>
      <title>上海 Hypers(Python后台开发) 每周总结</title>
      <link>https://changchen.me/blog/20170321/hypers-first-week-summary/</link>
      <pubDate>Tue, 21 Mar 2017 03:44:06 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20170321/hypers-first-week-summary/</guid>
      <description>&lt;p&gt;在Hypers宏路数据 HFA组(HyperS For Advertising)开始人生第一份工作, 职场小菜鸟的磕绊前行~~. &lt;br&gt;&#xA;转眼一周就过去了, 特写下这篇日志记录总结一下每周的总结和反思.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Python MRO(Method Resolution Order)笔记 </title>
      <link>https://changchen.me/blog/20170321/python-mro/</link>
      <pubDate>Tue, 21 Mar 2017 02:16:15 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20170321/python-mro/</guid>
      <description>&lt;p&gt;来Hypers上班的第一周, 俊哥提到Python的继承很灵活, 调用class内的方法的话, 有自己的一套MRO(Method Resolution Order). &lt;br&gt;&#xA;我找了资料仔细阅读了一下, 这篇日志是我做的笔记.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Django 阅读源码笔记 - Hypers第一周</title>
      <link>https://changchen.me/blog/20170319/django-source-code-analysis/</link>
      <pubDate>Sun, 19 Mar 2017 01:17:07 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20170319/django-source-code-analysis/</guid>
      <description>&lt;p&gt;来Hypers上班的第一周, 在看Django的middleware的时候, 对process &lt;code&gt;request, view, template和response&lt;/code&gt;的四个过程有些疑惑, 俊哥建议我读一下django的源码.  &lt;br&gt;&#xA;在这篇日志中, 我整理了django从&lt;strong&gt;启动server&lt;/strong&gt; &amp;ndash;&amp;gt; &lt;strong&gt;处理Request&lt;/strong&gt; &amp;ndash;&amp;gt; &lt;strong&gt;返回response&lt;/strong&gt; 的整个&lt;strong&gt;代码流程&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>面试算法题 - 出栈次序问题 (Catalan Number)</title>
      <link>https://changchen.me/blog/20170309/catalan-number-interview/</link>
      <pubDate>Thu, 09 Mar 2017 18:38:32 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20170309/catalan-number-interview/</guid>
      <description>&lt;p&gt;之前去方付通面试的时候的时候, 问了我&lt;code&gt;N个数依次入栈，出栈顺序有多少种？&lt;/code&gt;的算法题, 其实是卡特兰数(Catalan)的应用. &lt;br&gt;&#xA;当时没有答出来(这要是之前没有接触过, 谁答的出来). &lt;br&gt;&#xA;现在用这篇日志重新整理记录一下.&lt;/p&gt;</description>
    </item>
    <item>
      <title>面试算法题 - 二分查找搜索范围</title>
      <link>https://changchen.me/blog/20170306/binary-search/</link>
      <pubDate>Mon, 06 Mar 2017 12:45:09 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20170306/binary-search/</guid>
      <description>&lt;p&gt;去再惠面试的时候, 问了我一道二分查找的变种题, 我当时答的并不是特别清楚, 用这篇日志整理记录一下.&lt;/p&gt;</description>
    </item>
    <item>
      <title>面试算法题 - $1 Coke Problem</title>
      <link>https://changchen.me/blog/20170224/coke-algorithm/</link>
      <pubDate>Fri, 24 Feb 2017 09:30:51 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20170224/coke-algorithm/</guid>
      <description>&lt;p&gt;今天面试问到一个算法: 一个汽水是$1, 两个汽水的&lt;strong&gt;空瓶&lt;/strong&gt;换一瓶可乐, 请问给一些钱, 最多能喝几瓶呢?  &lt;br&gt;&#xA;当时思路有些乱, 算法没写清楚, 面试结束去个奶茶店, 重新写了一下.&lt;/p&gt;</description>
    </item>
    <item>
      <title>2017 上海(python后端)面试经历分享</title>
      <link>https://changchen.me/blog/20170223/python-backend-inteview-summery/</link>
      <pubDate>Thu, 23 Feb 2017 08:04:32 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20170223/python-backend-inteview-summery/</guid>
      <description>&lt;p&gt;这篇文章主要有两个目的:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;总结自己回国一周, 在上海找工作的经历.&lt;/li&gt;&#xA;&lt;li&gt;为准备在上海寻找Python工作的小伙伴的一些参考和建议.  &lt;br&gt;&#xA;ps. 本人渣渣, 文中也都是主观的观点, 看看开心就好, 不喜勿喷.&lt;/li&gt;&#xA;&lt;/ol&gt;</description>
    </item>
    <item>
      <title>Python - Note of Variable Scope</title>
      <link>https://changchen.me/blog/20170220/python-scope/</link>
      <pubDate>Mon, 20 Feb 2017 09:34:57 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20170220/python-scope/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Watched an awesome video about python scope:&#xA;&lt;a href=&#34;https://www.youtube.com/watch?v=QVdf0LgmICw&#34;&gt;https://www.youtube.com/watch?v=QVdf0LgmICw&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>Python - Note of Garbage Collection</title>
      <link>https://changchen.me/blog/20170214/python-garbage-collection/</link>
      <pubDate>Tue, 14 Feb 2017 15:30:18 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20170214/python-garbage-collection/</guid>
      <description>&lt;p&gt;阅读了一篇Python垃圾回收的文章, 用这篇日志记录一下. 原文地址: &lt;a href=&#34;http://www.digi.com/wiki/developer/index.php/Python_Garbage_Collection&#34;&gt;http://www.digi.com/wiki/developer/index.php/Python_Garbage_Collection&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>那些年 用python刷过的面试算法题</title>
      <link>https://changchen.me/blog/20170213/python-algorithms/</link>
      <pubDate>Mon, 13 Feb 2017 15:32:09 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20170213/python-algorithms/</guid>
      <description>&lt;p&gt;准备面试的过程中用Python写了一些的算法题, 用这篇日志记录一下.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Note of 《Effective Python》(第六章)</title>
      <link>https://changchen.me/blog/20170213/effective-python-chapter6/</link>
      <pubDate>Mon, 13 Feb 2017 12:18:54 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20170213/effective-python-chapter6/</guid>
      <description>&lt;p&gt;记得以前上大学的时候, 去图书馆借了一本《代码简洁之道》. 虽然大部分的内容都忘得差不多了, 但里边的一些思想至今还是收益颇深.  &lt;br&gt;&#xA;最近开始看一本书叫做《Effective Python: 59 Specific Ways to Write Better Python》, 把里边一些印象深刻的东西记录在这篇日志里.  &lt;br&gt;&#xA;&lt;strong&gt;这篇文章记录的是第六章: &amp;laquo;Built-in modules&amp;raquo;&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Note of 《Effective Python》(第一章 - 第三章)</title>
      <link>https://changchen.me/blog/20170118/effective-python-notes/</link>
      <pubDate>Wed, 18 Jan 2017 21:45:51 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20170118/effective-python-notes/</guid>
      <description>&lt;p&gt;记得以前上大学的时候, 去图书馆借了一本《代码简洁之道》. 虽然大部分的内容都忘得差不多了, 但里边的一些思想至今还是收益颇深.  &lt;br&gt;&#xA;最近开始看一本书叫做《Effective Python: 59 Specific Ways to Write Better Python》, 把里边一些印象深刻的东西记录在这篇日志里.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Python Personal Note</title>
      <link>https://changchen.me/blog/20161204/python-notes/</link>
      <pubDate>Sun, 04 Dec 2016 13:08:59 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20161204/python-notes/</guid>
      <description>&lt;p&gt;Planning to figure out problems of Python that confused me for a long phase.   &lt;br&gt;&#xA;The blog trace the steps of my study.&lt;/p&gt;</description>
    </item>
    <item>
      <title>电影观后感合集</title>
      <link>https://changchen.me/blog/20161107/ove/</link>
      <pubDate>Mon, 07 Nov 2016 23:35:38 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20161107/ove/</guid>
      <description>&lt;p&gt;看过的电影很多, 有感动的温暖的悲伤的, 可回过头来却连一些剧情都想不起来了. 用这篇日志记录每部电影的点点滴滴, 那些特别的感触和思考, 也算是给自己留个回忆吧.&lt;/p&gt;</description>
    </item>
    <item>
      <title>comp9041 Assignment2 Matelook Implementation</title>
      <link>https://changchen.me/blog/20161030/comp9041-assignment2-matelook/</link>
      <pubDate>Sun, 30 Oct 2016 00:20:49 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20161030/comp9041-assignment2-matelook/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;This blog shares my experience of making a simple &amp;ldquo;Facebook&amp;rdquo; in two weeks: &lt;a href=&#34;http://m.unsw.co/&#34;&gt;http://m.unsw.co/&lt;/a&gt;   &lt;br&gt;&#xA;And this website is also the second assignment of UNSW COMP9041 assignment2&lt;/p&gt;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>Python Virtual Environments Note</title>
      <link>https://changchen.me/blog/20160930/python-venv/</link>
      <pubDate>Fri, 30 Sep 2016 01:27:57 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20160930/python-venv/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;写程序写久了, 你会发现前人留下来的道理总是有那么几分道理的, which will make ur life much easier, 比如每次稍微花点时间建个python的虚拟环境, 会对以后的管理有很大的方便, 节约未来无数的时间~~&lt;/p&gt;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>Henry&#39;s Awesome Summary of Perl</title>
      <link>https://changchen.me/blog/20160920/perl-summery/</link>
      <pubDate>Tue, 20 Sep 2016 09:52:18 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20160920/perl-summery/</guid>
      <description>&lt;p&gt;My summary of Perl in semester 16s2 of (COMP2041|COMP9041) in UNSW.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fibonacci number(Recursive, DP and Decorator)</title>
      <link>https://changchen.me/blog/20160915/dynamic-programming/</link>
      <pubDate>Thu, 15 Sep 2016 10:52:49 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20160915/dynamic-programming/</guid>
      <description>&lt;p&gt;I found a &lt;a href=&#34;https://www.youtube.com/watch?v=OQ5jsbhAv_M&#34;&gt;fatastic video&lt;/a&gt; about Dynamic Programming, it can be used to solve Fibonacci number problem efficiently. Decorater can also be used to make code elegent ^o^&lt;/p&gt;</description>
    </item>
    <item>
      <title>Memory of u_chat </title>
      <link>https://changchen.me/blog/20160907/u-chat/</link>
      <pubDate>Wed, 07 Sep 2016 01:35:04 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20160907/u-chat/</guid>
      <description>&lt;p&gt;这几日总是回忆起大二学校组织的在东软一个月的实习,  写下这片日志来怀念那段无比美好的时光.&lt;/p&gt;</description>
    </item>
    <item>
      <title>SSH to UNSW CSE Server Without Password</title>
      <link>https://changchen.me/blog/20160819/cse-ssh/</link>
      <pubDate>Fri, 19 Aug 2016 21:56:56 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20160819/cse-ssh/</guid>
      <description>&lt;p&gt;It&amp;rsquo;s so painful to input password every time login to cse server, so this article will show u how to ssh cse server without password.&lt;/p&gt;</description>
    </item>
    <item>
      <title>COMP9517 Computer Vision 16s2</title>
      <link>https://changchen.me/blog/20160813/comp9517-computer-vision/</link>
      <pubDate>Sat, 13 Aug 2016 18:43:28 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20160813/comp9517-computer-vision/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;The second term of my master degree in unsw.      &lt;br&gt;&#xA;This blog is sharing my experience of COMP9517 Computer Vision * in 2016s2&lt;/p&gt;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>GSOE9820 Project Management 16s2</title>
      <link>https://changchen.me/blog/20160811/9820-project-managment/</link>
      <pubDate>Thu, 11 Aug 2016 11:30:39 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20160811/9820-project-managment/</guid>
      <description>&lt;p&gt;The second term of my master degree in UNSW      &lt;br&gt;&#xA;This blog is sharing my experience of GSOE9820 Project Management in 16s2&lt;/p&gt;</description>
    </item>
    <item>
      <title>澳洲Dairy farmers酸奶各个口味评鉴</title>
      <link>https://changchen.me/blog/20160731/yogurt/</link>
      <pubDate>Sun, 31 Jul 2016 23:23:43 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20160731/yogurt/</guid>
      <description>&lt;p&gt;Dairy farmers的酸奶真的是我这辈子吃过最好吃的酸奶，  &lt;br&gt;&#xA;最近150g的又半价了，每次都纠结买哪个口味，写个日志把每个口味记录下来，嘻嘻。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Henry&#39;s Feedback of UNSW COMP6714 16s2</title>
      <link>https://changchen.me/blog/20160731/comp6714-information-retrieval-and-web-search-2016s2/</link>
      <pubDate>Sun, 31 Jul 2016 20:02:22 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20160731/comp6714-information-retrieval-and-web-search-2016s2/</guid>
      <description>&lt;p&gt;The second term of my master degree in UNSW      &lt;br&gt;&#xA;This blog is sharing my experience of COMP6714: Information Retrieval and Web Search in 2016s2&lt;/p&gt;</description>
    </item>
    <item>
      <title>What to do after failing a course at UNSW(Especially for the IT 8543)</title>
      <link>https://changchen.me/blog/20160728/unse-fail/</link>
      <pubDate>Thu, 28 Jul 2016 20:58:33 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20160728/unse-fail/</guid>
      <description>&lt;p&gt;Some courses in UNSW are so hard, and failing a course doesn&amp;rsquo;t mean the end of the world. However, there is limited info online(because I searched before and got nothing), so I decided to write this blog to share my experience and advises.&lt;/p&gt;</description>
    </item>
    <item>
      <title>COMP9041/2041 Software Construction: Techniques and Tools 2016s2</title>
      <link>https://changchen.me/blog/20160727/comp9041software-construction-techniques-and-tools/</link>
      <pubDate>Wed, 27 Jul 2016 23:31:36 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20160727/comp9041software-construction-techniques-and-tools/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;The second semester of my master in UNSW      &lt;br&gt;&#xA;This blog is sharing my experience of &lt;em&gt;COMP9041 Software Construction: Techniques and Tools&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>我的乒乓球历程~~</title>
      <link>https://changchen.me/blog/20160711/tablet-tennis/</link>
      <pubDate>Mon, 11 Jul 2016 10:05:39 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20160711/tablet-tennis/</guid>
      <description>&lt;p&gt;转眼间从开始打球到现在都已经4+3+3+4=14年了，这篇日志将记录我的经历和心路历程。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Notes of Atlassian git tutorial</title>
      <link>https://changchen.me/blog/20160705/git-notes/</link>
      <pubDate>Tue, 05 Jul 2016 14:18:24 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20160705/git-notes/</guid>
      <description>&lt;p&gt;Although we have powerful tools such as sourcetree, &lt;br&gt;&#xA;learning the details of git is still very necessary. &lt;br&gt;&#xA;I found a fantastic tutorial:&lt;a href=&#34;https://www.atlassian.com/git/tutorials&#34;&gt;https://www.atlassian.com/git/tutorials&lt;/a&gt;, this is my learning notes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>UNSW CSE 课程评价网站 - 心路历程</title>
      <link>https://changchen.me/blog/20160509/unsw-course-web/</link>
      <pubDate>Mon, 09 May 2016 11:18:58 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20160509/unsw-course-web/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;想了想，还是写篇文章，记录一下我做这个网站以来心路历程. &lt;br&gt;&#xA;&lt;a href=&#34;http://www.unsw.co&#34;&gt;unsw.co&lt;/a&gt; or &lt;a href=&#34;http://u.changchen.me&#34;&gt;u.changchen.me&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>comp9321 Web Application 16s1</title>
      <link>https://changchen.me/blog/20160317/comp9321-web-app/</link>
      <pubDate>Thu, 17 Mar 2016 12:20:52 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20160317/comp9321-web-app/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;来unsw的第一个学期，选了四门课， &lt;br&gt;&#xA;分别用四篇日志记录每门课程的心路历程。    &lt;br&gt;&#xA;这篇日志写的是 Web Applications Engineering&lt;/p&gt;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>Comp9315 DBMS Implementation 16s1</title>
      <link>https://changchen.me/blog/20160228/comp9315-16s1/</link>
      <pubDate>Sun, 28 Feb 2016 11:24:07 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20160228/comp9315-16s1/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;来unsw的第一个学期，选了四门课， &lt;br&gt;&#xA;分别用四篇日志记录每门课程的心路历程。    &lt;br&gt;&#xA;这篇日志写的是 &lt;strong&gt;Comp9315: DBMS Implementation&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>COMP9319 - Web Data Compression and Search 16s1</title>
      <link>https://changchen.me/blog/20160225/comp9319/</link>
      <pubDate>Thu, 25 Feb 2016 17:02:05 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20160225/comp9319/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;来unsw的第一个学期，选了四门课， &lt;br&gt;&#xA;分别用四篇日志记录每门课程的心路历程。    &lt;br&gt;&#xA;这篇日志写的是 COMP9319 - Web Data Compression and Search&lt;/p&gt;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>COMP9201 Operating Systems 16s1</title>
      <link>https://changchen.me/blog/20160225/comp9201-os/</link>
      <pubDate>Thu, 25 Feb 2016 12:12:24 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20160225/comp9201-os/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;来unsw的第一个学期，选了四门课， &lt;br&gt;&#xA;分别用四篇日志记录每门课程的心路历程。    &lt;br&gt;&#xA;这篇日志写的是 COMP9201 Operating Systems&lt;/p&gt;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>Django 子查询(Subquery)</title>
      <link>https://changchen.me/blog/20151227/django-subquery/</link>
      <pubDate>Sun, 27 Dec 2015 22:09:03 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20151227/django-subquery/</guid>
      <description>&lt;p&gt;今天实现了一个难题，就是在Django中实现子查询。&lt;/p&gt;</description>
    </item>
    <item>
      <title>Django 登录或注销后跳转到之前的页面</title>
      <link>https://changchen.me/blog/20151216/django-login-next/</link>
      <pubDate>Wed, 16 Dec 2015 10:42:43 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20151216/django-login-next/</guid>
      <description>&lt;p&gt;今天终于解决了项目中的一个问题，就是登录成功后跳转到原先的页面。&lt;/p&gt;</description>
    </item>
    <item>
      <title>记录moobox的点滴(技术篇)</title>
      <link>https://changchen.me/blog/20150926/moobox-knowledge/</link>
      <pubDate>Sat, 26 Sep 2015 20:43:11 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20150926/moobox-knowledge/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;在moobox工作了两个月，用这篇日志记录这段日子的技术点滴。 &lt;br&gt;&#xA;ps.虽然一直有这个计划，平时也会作笔记，但是到头来还是记得不太全，&lt;br&gt;&#xA;就粗略的写一下好了。&lt;/p&gt;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>记录moobox的点滴(回忆篇)</title>
      <link>https://changchen.me/blog/20150923/moobox-recode/</link>
      <pubDate>Wed, 23 Sep 2015 13:13:39 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20150923/moobox-recode/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;在moobox工作了两个月，用这篇日志记录这段日子的点点滴滴。&lt;/p&gt;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>python_mooc笔记-高阶函数</title>
      <link>https://changchen.me/blog/20150710/python-mooc/</link>
      <pubDate>Fri, 10 Jul 2015 16:15:41 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20150710/python-mooc/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;最近看了慕课网上的一个课程， &lt;br&gt;&#xA;感觉还不错，做点笔记，以后忘了看看&lt;/p&gt;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>hidden features of Python笔记</title>
      <link>https://changchen.me/blog/20141118/hidden-features-of-python/</link>
      <pubDate>Tue, 18 Nov 2014 11:30:26 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20141118/hidden-features-of-python/</guid>
      <description>&lt;h2 id=&#34;最近看了关于python的两个很不错的资料&#34;&gt;最近看了关于python的两个很不错的资料&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://legacy.python.org/dev/peps/pep-0008/#blank-lines&#34; &gt;PEP 8 （Style Guide for Python Code）&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://stackoverflow.com/questions/101268/hidden-features-of-python&#34;&gt;Hidden features of Python [closed]&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h4 id=&#34;做一下第二个的笔记-加深印象&#34;&gt;&lt;a style=&#34;background-color:#2783F3;color:#fff&#34;&gt;做一下第二个的笔记 加深印象&lt;/a&gt;&lt;/h4&gt;</description>
    </item>
    <item>
      <title>our_children</title>
      <link>https://changchen.me/blog/20140917/our-children/</link>
      <pubDate>Wed, 17 Sep 2014 20:17:41 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20140917/our-children/</guid>
      <description>&lt;p&gt;我们家的宝宝们 &lt;img src=&#34;http://ctc.qzonestyle.gtimg.cn/qzone/em/e121.gif?max_age=2592000&#34; alt=&#34;&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>爬教务处成绩代码log</title>
      <link>https://changchen.me/blog/20140801/cal-uni-score/</link>
      <pubDate>Fri, 01 Aug 2014 00:05:13 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20140801/cal-uni-score/</guid>
      <description>&lt;p&gt;打包好的exe：&lt;a href=&#34;http://pan.baidu.com/s/1nt9eTYh&#34;&gt;http://pan.baidu.com/s/1nt9eTYh&lt;/a&gt;&lt;br&gt;&#xA;源代码在github上:&lt;a href=&#34;https://github.com/daya0576/140730-Tianji_Polytechnic_uni_cal_score&#34;&gt;python代码&lt;/a&gt;&lt;br&gt;&#xA;&lt;a href=&#34;https://github.com/daya0576/140730-Tianji_Polytechnic_uni_cal_score.git&#34;&gt;https://github.com/daya0576/140730-Tianji_Polytechnic_uni_cal_score.git&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;代码有由3部分组成&#34;&gt;代码有由3部分组成&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;用urllib登陆教务处，返回html&lt;/li&gt;&#xA;&lt;li&gt;用beautifulsoup对html的parse&lt;/li&gt;&#xA;&lt;li&gt;最后用p2exe打包为可执行文件&lt;/li&gt;&#xA;&lt;/ol&gt;</description>
    </item>
    <item>
      <title>Coursera 作业互评</title>
      <link>https://changchen.me/blog/20140429/cousera-comments/</link>
      <pubDate>Tue, 29 Apr 2014 17:29:28 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20140429/cousera-comments/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;《An Introduction to Interactive Programming in Python》&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;这门课程的大作业是随机五个人互评&lt;/strong&gt;。&lt;br&gt;&#xA;突然想去看看之前mini_project别人给我的评价 &lt;br&gt;&#xA;不看不知道  一看吓一跳 &lt;br&gt;&#xA;感动的都要哭了 T ^ T&lt;br&gt;&#xA;敢不敢再负责一点&lt;/p&gt;</description>
    </item>
    <item>
      <title>my first blog</title>
      <link>https://changchen.me/blog/20140405/my-first-blog/</link>
      <pubDate>Sat, 05 Apr 2014 20:38:49 +0000</pubDate><author>daya0576@gmail.com (Henry Zhu)</author>
      <guid>https://changchen.me/blog/20140405/my-first-blog/</guid>
      <description>&lt;p&gt;哈哈&lt;/p&gt;&#xA;&lt;p&gt;这是我的第一篇blog，献给我最爱的cc~&lt;/p&gt;&#xA;&lt;p&gt;两周年快乐  (&lt;em&gt;^_^&lt;/em&gt;)&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
