<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>吴彦欣的博客</title>
  
  
  <link href="https://wuyanxin.com/atom.xml" rel="self"/>
  
  <link href="https://wuyanxin.com/"/>
  <updated>2025-05-19T13:23:23.941Z</updated>
  <id>https://wuyanxin.com/</id>
  
  <author>
    <name>吴彦欣</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>在ubuntu服务器上安装clash</title>
    <link href="https://wuyanxin.com/post/clash-for-ubuntu.html"/>
    <id>https://wuyanxin.com/post/clash-for-ubuntu.html</id>
    <published>2025-05-19T13:22:43.000Z</published>
    <updated>2025-05-19T13:23:23.941Z</updated>
    
    
    <summary type="html">&lt;h2 id=&quot;背景&quot;&gt;&lt;a href=&quot;#背景&quot; class=&quot;headerlink&quot; title=&quot;背景&quot;&gt;&lt;/a&gt;背景&lt;/h2&gt;&lt;p&gt;今天测试 rtx-5090 性能，很多构建好 vllm, docker 镜像，swift, sglang 版本都起不来。&lt;br&gt;打算从头手动构建 vllm，遇到很多国内网络不通的问题，比如 github, huggingface, dockerhub 等等。&lt;br&gt;找了几个解决方案，最后是用 clash 解决的，做个记录。&lt;/p&gt;
&lt;h2 id=&quot;需要&quot;&gt;&lt;a href=&quot;#需要&quot; class=&quot;headerlink&quot; title=&quot;需要&quot;&gt;&lt;/a&gt;需要&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;飞机场&lt;br&gt;如果你没有的话，可以试试我在用的（顺便给我赚点机建费）：&lt;a href=&quot;https://www.paofu.cloud/auth/register?code=AMml&quot;&gt;paofu&lt;/a&gt; 速度还不错，价格也便宜。&lt;/li&gt;
&lt;li&gt;Clash 客户端&lt;/li&gt;
&lt;/ul&gt;</summary>
    
    
    
    <category term="tech" scheme="https://wuyanxin.com/cate/tech/"/>
    
    
    <category term="ubuntu" scheme="https://wuyanxin.com/tags/ubuntu/"/>
    
    <category term="clash" scheme="https://wuyanxin.com/tags/clash/"/>
    
    <category term="proxy" scheme="https://wuyanxin.com/tags/proxy/"/>
    
    <category term="shadowsocks" scheme="https://wuyanxin.com/tags/shadowsocks/"/>
    
  </entry>
  
  <entry>
    <title>大模型联网-通过RAG技术增强谷歌搜索能力</title>
    <link href="https://wuyanxin.com/post/enhance-google-search-with-rag.html"/>
    <id>https://wuyanxin.com/post/enhance-google-search-with-rag.html</id>
    <published>2024-03-12T15:14:43.000Z</published>
    <updated>2024-06-24T14:57:02.247Z</updated>
    
    
    <summary type="html">&lt;p&gt;&lt;img src=&quot;/images/2024/rag-google-b.png&quot; alt=&quot;agent&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;思路&quot;&gt;&lt;a href=&quot;#思路&quot; class=&quot;headerlink&quot; title=&quot;思路&quot;&gt;&lt;/a&gt;思路&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;调用谷歌搜索 API，获取搜索结果&lt;/li&gt;
&lt;li&gt;将前3条搜索结果作为 RAG 的数据源&lt;/li&gt;
&lt;li&gt;将用户输入的问题和搜索结果转换成 prompt&lt;/li&gt;
&lt;li&gt;将 prompt 输入到LLM中，生成结果&lt;/li&gt;
&lt;/ol&gt;</summary>
    
    
    
    <category term="tech" scheme="https://wuyanxin.com/cate/tech/"/>
    
    
    <category term="ai" scheme="https://wuyanxin.com/tags/ai/"/>
    
    <category term="prompt-engeineering" scheme="https://wuyanxin.com/tags/prompt-engeineering/"/>
    
    <category term="agent" scheme="https://wuyanxin.com/tags/agent/"/>
    
    <category term="llm" scheme="https://wuyanxin.com/tags/llm/"/>
    
    <category term="RAG" scheme="https://wuyanxin.com/tags/RAG/"/>
    
  </entry>
  
  <entry>
    <title>什么是检索增强生成 (RAG)</title>
    <link href="https://wuyanxin.com/post/what-is-retrieval-augmented-generation-aka-rag.html"/>
    <id>https://wuyanxin.com/post/what-is-retrieval-augmented-generation-aka-rag.html</id>
    <published>2024-03-10T15:54:12.000Z</published>
    <updated>2024-06-23T15:48:27.330Z</updated>
    
    
    <summary type="html">&lt;p&gt;&lt;img src=&quot;/images/2024/rag-banner.png&quot; alt=&quot;agent&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;什么是RAG&quot;&gt;&lt;a href=&quot;#什么是RAG&quot; class=&quot;headerlink&quot; title=&quot;什么是RAG&quot;&gt;&lt;/a&gt;什么是RAG&lt;/h2&gt;&lt;p&gt;全称Retrieval augmented generation (RAG)&lt;br&gt;检索增强生成是指对大型语言模型输出进行优化，使其能够在生成响应之前引用训练数据来源之外的权威知识库。&lt;/p&gt;</summary>
    
    
    
    <category term="tech" scheme="https://wuyanxin.com/cate/tech/"/>
    
    
    <category term="ai" scheme="https://wuyanxin.com/tags/ai/"/>
    
    <category term="prompt-engeineering" scheme="https://wuyanxin.com/tags/prompt-engeineering/"/>
    
    <category term="agent" scheme="https://wuyanxin.com/tags/agent/"/>
    
    <category term="llm" scheme="https://wuyanxin.com/tags/llm/"/>
    
    <category term="RAG" scheme="https://wuyanxin.com/tags/RAG/"/>
    
  </entry>
  
  <entry>
    <title>AI Agent 开发模式</title>
    <link href="https://wuyanxin.com/post/ai-agent-dev-pattern.html"/>
    <id>https://wuyanxin.com/post/ai-agent-dev-pattern.html</id>
    <published>2024-03-08T13:48:31.000Z</published>
    <updated>2024-06-23T02:34:11.240Z</updated>
    
    
    <summary type="html">&lt;p&gt;&lt;img src=&quot;/images/2024/agent-banner.png&quot; alt=&quot;agent&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;什么是agent&quot;&gt;&lt;a href=&quot;#什么是agent&quot; class=&quot;headerlink&quot; title=&quot;什么是agent&quot;&gt;&lt;/a&gt;什么是agent&lt;/h2&gt;&lt;p&gt;在一般语境下，Agent通常被理解为代理。&lt;/p&gt;
&lt;p&gt;在LLM语境下（LLM-based Agent），Agent可以理解为某种能自主理解、规划决策、执行复杂任务的智能体。&lt;/p&gt;
&lt;p&gt;Agent的核心功能，类似人类“做事情”的过程，可以归纳为三个步骤的循环：&lt;br&gt;感知（Perception）、规划（Planning）和行动（Action）。&lt;/p&gt;
&lt;p&gt;实际上，我们并不在乎Agent的具体形态，只要它能够完成我们交给它的任务即可称之为Agent。&lt;/p&gt;</summary>
    
    
    
    <category term="tech" scheme="https://wuyanxin.com/cate/tech/"/>
    
    
    <category term="ai" scheme="https://wuyanxin.com/tags/ai/"/>
    
    <category term="prompt-engeineering" scheme="https://wuyanxin.com/tags/prompt-engeineering/"/>
    
    <category term="agent" scheme="https://wuyanxin.com/tags/agent/"/>
    
    <category term="llm" scheme="https://wuyanxin.com/tags/llm/"/>
    
  </entry>
  
  <entry>
    <title>Go bindings on TensorFlow for MacOS-arm64</title>
    <link href="https://wuyanxin.com/post/golang-bindings-for-tensorflow.html"/>
    <id>https://wuyanxin.com/post/golang-bindings-for-tensorflow.html</id>
    <published>2022-03-23T00:02:22.000Z</published>
    <updated>2022-03-27T04:44:12.784Z</updated>
    
    
    <summary type="html">&lt;p&gt;&lt;img src=&quot;/images/2022/m1/life-is-fucking-myself-again-and-again.jpeg&quot; alt=&quot;life-is-fucking-myself-again-and-again.jpeg&quot;&gt;&lt;br&gt;因为 python 的性能问题，项目本身对于效率要求比较高，最近想把一些算法工作迁移到 go 实现。&lt;br&gt;然而在 go 版 TensorFlow 的安装上就花了我一天的时间解决各种问题。&lt;br&gt;记录一下在 macos-arm64 系统下该如何正确安装 golang 版 TensorFlow。&lt;/p&gt;</summary>
    
    
    
    <category term="tech" scheme="https://wuyanxin.com/cate/tech/"/>
    
    
    <category term="macos" scheme="https://wuyanxin.com/tags/macos/"/>
    
    <category term="tensorflow" scheme="https://wuyanxin.com/tags/tensorflow/"/>
    
    <category term="golang" scheme="https://wuyanxin.com/tags/golang/"/>
    
    <category term="m1" scheme="https://wuyanxin.com/tags/m1/"/>
    
    <category term="aarch64" scheme="https://wuyanxin.com/tags/aarch64/"/>
    
  </entry>
  
  <entry>
    <title>Mac M1 安装 Tensorflow</title>
    <link href="https://wuyanxin.com/post/mac-m1-install-tensorflow.html"/>
    <id>https://wuyanxin.com/post/mac-m1-install-tensorflow.html</id>
    <published>2022-03-20T23:05:08.000Z</published>
    <updated>2022-03-27T04:41:02.243Z</updated>
    
    
    <summary type="html">&lt;p&gt;最近给手头上的 M1 电脑安装 TensorFlow 环境，折腾了好多遍，miniconda 安装了很多次，终于在今天成功了。&lt;br&gt;借此机会分享出来，希望能帮助大家早日填好坑。&lt;/p&gt;</summary>
    
    
    
    <category term="tech" scheme="https://wuyanxin.com/cate/tech/"/>
    
    
    <category term="macos" scheme="https://wuyanxin.com/tags/macos/"/>
    
    <category term="tensorflow" scheme="https://wuyanxin.com/tags/tensorflow/"/>
    
    <category term="m1" scheme="https://wuyanxin.com/tags/m1/"/>
    
    <category term="conda" scheme="https://wuyanxin.com/tags/conda/"/>
    
    <category term="aarm64" scheme="https://wuyanxin.com/tags/aarm64/"/>
    
    <category term="python" scheme="https://wuyanxin.com/tags/python/"/>
    
  </entry>
  
  <entry>
    <title>Mac M1 安装 Homebrew 最佳实践</title>
    <link href="https://wuyanxin.com/post/mac-m1-brew-both-support-aarm64-and-x86_64.html"/>
    <id>https://wuyanxin.com/post/mac-m1-brew-both-support-aarm64-and-x86_64.html</id>
    <published>2022-03-08T23:05:08.000Z</published>
    <updated>2022-03-24T14:53:50.926Z</updated>
    
    
    <summary type="html">&lt;p&gt;&lt;img src=&quot;/images/2022/m1/m1-brew.jpeg&quot; alt=&quot;homebrew-on-macos-m1&quot;&gt;&lt;/p&gt;</summary>
    
    
    
    <category term="tech" scheme="https://wuyanxin.com/cate/tech/"/>
    
    
    <category term="macos" scheme="https://wuyanxin.com/tags/macos/"/>
    
    <category term="m1" scheme="https://wuyanxin.com/tags/m1/"/>
    
    <category term="homebrew" scheme="https://wuyanxin.com/tags/homebrew/"/>
    
  </entry>
  
  <entry>
    <title>flutter macOS 流水账式填坑记录</title>
    <link href="https://wuyanxin.com/post/flutter-run-macos-error.html"/>
    <id>https://wuyanxin.com/post/flutter-run-macos-error.html</id>
    <published>2022-01-18T17:05:08.000Z</published>
    <updated>2025-05-26T01:03:05.679Z</updated>
    
    
    <summary type="html">&lt;p&gt;&lt;img src=&quot;/images/2022/flutter-desktop.png&quot; alt=&quot;flutter-desktop&quot;&gt;&lt;/p&gt;
&lt;p&gt;突然想学一下 &lt;a href=&quot;https://flutter.dev/&quot;&gt;flutter&lt;/a&gt; 开发桌面应用，想集成 &lt;a href=&quot;https://pub.dev/packages/desktop_webview_window&quot;&gt;desktop_webview_window&lt;/a&gt; 实现 &lt;a href=&quot;https://www.electronjs.org/&quot;&gt;electron&lt;/a&gt; 的功能。&lt;br&gt;遇到以下错误，流水账记录一下，希望有朝一日能帮到有缘人。&lt;/p&gt;</summary>
    
    
    
    <category term="tech" scheme="https://wuyanxin.com/cate/tech/"/>
    
    
    <category term="macos" scheme="https://wuyanxin.com/tags/macos/"/>
    
    <category term="flutter" scheme="https://wuyanxin.com/tags/flutter/"/>
    
    <category term="electron" scheme="https://wuyanxin.com/tags/electron/"/>
    
    <category term="webview" scheme="https://wuyanxin.com/tags/webview/"/>
    
  </entry>
  
  <entry>
    <title>VSCode 工程技术分析</title>
    <link href="https://wuyanxin.com/post/vscode-engineering-technology.html"/>
    <id>https://wuyanxin.com/post/vscode-engineering-technology.html</id>
    <published>2021-09-08T14:22:28.000Z</published>
    <updated>2024-05-22T10:07:28.755Z</updated>
    
    
    <summary type="html">&lt;h2 id=&quot;为什么研究-VSCode&quot;&gt;&lt;a href=&quot;#为什么研究-VSCode&quot; class=&quot;headerlink&quot; title=&quot;为什么研究 VSCode&quot;&gt;&lt;/a&gt;为什么研究 VSCode&lt;/h2&gt;&lt;p&gt;几周前的某一天，发现 GitHub 支持一键使用 web 版 VSCode 打开仓库，只需要按下“.”按钮便可一键打开，同时域名 &lt;code&gt;.com&lt;/code&gt; 后缀会变成 &lt;code&gt;.dev&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;如果你的 VSCode 配置了 Settings Sync, VSCode 还会自动同步你的配置和插件，这样在线编程的体验和本地基本一致（如果想要在线运行还可以打开 Codespaces 开发环境）。&lt;br&gt;看到 VSCode 这么优秀，不仅免费开源、跨平台、还有非常优秀的插件生态，我突然产生了兴趣想去搞懂它底层的运行机制，尤其对它强大的可扩展性特别好奇。&lt;/p&gt;</summary>
    
    
    
    <category term="tech" scheme="https://wuyanxin.com/cate/tech/"/>
    
    
    <category term="electron" scheme="https://wuyanxin.com/tags/electron/"/>
    
    <category term="vscode" scheme="https://wuyanxin.com/tags/vscode/"/>
    
    <category term="lsp" scheme="https://wuyanxin.com/tags/lsp/"/>
    
    <category term="remote development" scheme="https://wuyanxin.com/tags/remote-development/"/>
    
  </entry>
  
  <entry>
    <title>2020</title>
    <link href="https://wuyanxin.com/post/2020.html"/>
    <id>https://wuyanxin.com/post/2020.html</id>
    <published>2020-09-03T12:29:33.000Z</published>
    <updated>2022-02-25T11:52:53.230Z</updated>
    
    
    <summary type="html">&lt;p&gt;2020值得被铭记&lt;/p&gt;</summary>
    
    
    
    <category term="journal" scheme="https://wuyanxin.com/cate/journal/"/>
    
    
    <category term="生活" scheme="https://wuyanxin.com/tags/%E7%94%9F%E6%B4%BB/"/>
    
  </entry>
  
  <entry>
    <title>给老爸开发一个 Chrome 插件 - 网上订烟助手</title>
    <link href="https://wuyanxin.com/post/develop-a-chrome-extension-for-papa.html"/>
    <id>https://wuyanxin.com/post/develop-a-chrome-extension-for-papa.html</id>
    <published>2018-05-10T16:37:37.000Z</published>
    <updated>2022-02-25T11:52:53.230Z</updated>
    
    
    <summary type="html">&lt;p&gt;&lt;img src=&quot;/images/2018/chrome-extensions.jpg&quot;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;背景：&lt;br&gt;爸妈在老家经营小商店，平时需要在网上订购香烟。&lt;br&gt;因为二老文化水平低，再加上订烟系统的用户体验差劲，无法自学使用。&lt;br&gt;老版本的订烟系统手把手教过我爸使用了，可是丫的中烟最近系统更新了，与其说更新，不如说是降级，垃圾的用户体验比上一版更差劲。&lt;br&gt;爸妈不会订了，只能每次 call 我远程订烟。&lt;br&gt;两百多种香烟中只有 20 多种是可订购的，然而官方没有过滤功能，也没有显示哪些可订，每次只能每一条记录点一下才能触发请求可订购量，再将可订购的加入购入车。&lt;br&gt;我忍不住去用户反馈中心吐槽，写了半天的建议，居然提交不了，提交不了..（黑人问号脸 what ？？？）&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;忍无可忍，无需再忍&lt;br&gt;自己写一个插件优化用户体验&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/dyxzs/index.html&quot;&gt;&amp;gt;&amp;gt;&amp;gt; 插件首页 &amp;lt;&amp;lt;&amp;lt;&lt;/a&gt;&lt;/p&gt;</summary>
    
    
    
    <category term="tech" scheme="https://wuyanxin.com/cate/tech/"/>
    
    
    <category term="chrome-extension" scheme="https://wuyanxin.com/tags/chrome-extension/"/>
    
  </entry>
  
  <entry>
    <title>PHP 无痛安装扩展</title>
    <link href="https://wuyanxin.com/post/php-extension-installation.html"/>
    <id>https://wuyanxin.com/post/php-extension-installation.html</id>
    <published>2018-05-09T08:24:09.000Z</published>
    <updated>2022-02-25T11:52:53.230Z</updated>
    
    
    <summary type="html">&lt;p&gt;&lt;img src=&quot;/images/2018/books-chair-clock.jpg&quot;&gt;&lt;/p&gt;
&lt;p&gt;这里所说的扩展是只编译 PHP 时没有启用，后续再次安装的。&lt;/p&gt;
&lt;p&gt;曾经只要 –enable-zip 就可以安装的依赖，我没有好好珍惜，等到要用时才后悔莫及。&lt;/p&gt;
&lt;p&gt;如果上天再给我一次机会，我会用下面这种方法 ↓ &lt;/p&gt;</summary>
    
    
    
    <category term="tech" scheme="https://wuyanxin.com/cate/tech/"/>
    
    
    <category term="php" scheme="https://wuyanxin.com/tags/php/"/>
    
  </entry>
  
  <entry>
    <title>谷歌验证器的原理及JS实现</title>
    <link href="https://wuyanxin.com/post/the-principle-and-implement-of-google-authenticator.html"/>
    <id>https://wuyanxin.com/post/the-principle-and-implement-of-google-authenticator.html</id>
    <published>2018-03-19T15:45:17.000Z</published>
    <updated>2022-02-25T11:52:53.230Z</updated>
    
    
    <summary type="html">&lt;p&gt;&lt;img src=&quot;/images/2018/two-factor-auth-prev.jpg&quot;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;阅读本篇文章你可以了解到谷歌验证器的实现原理，并且可以自己使用node.js实现支持谷歌验证器的两步验证。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;这两年发现身边的很多应用和网站纷纷支持两步验证，并且呼吁用户使用两步验证。&lt;/p&gt;
&lt;p&gt;并且发现，除了Apple ID的两步验证之外，其它两步验证很多能看到谷歌验证器（Google Authenticator）的身影。&lt;/p&gt;
&lt;p&gt;这让我产生了浓厚的兴趣，到底谷歌验证器的原理是什么，我自己能实现一个类似的验证器吗？&lt;/p&gt;</summary>
    
    
    
    <category term="tech" scheme="https://wuyanxin.com/cate/tech/"/>
    
    
    <category term="node.js" scheme="https://wuyanxin.com/tags/node-js/"/>
    
    <category term="security" scheme="https://wuyanxin.com/tags/security/"/>
    
  </entry>
  
  <entry>
    <title>博客迁移Hexo，部署于coding</title>
    <link href="https://wuyanxin.com/post/hello-hexo-hello-coding.html"/>
    <id>https://wuyanxin.com/post/hello-hexo-hello-coding.html</id>
    <published>2018-03-16T16:00:00.000Z</published>
    <updated>2022-02-25T11:52:53.230Z</updated>
    
    
    <summary type="html">&lt;p&gt;&lt;img src=&quot;/images/2018/coding-monkey.jpg&quot;&gt;&lt;/p&gt;
&lt;p&gt;因为不可描述原因，我部署在香港服务器上的博客经常无法访问，计划很久的要签回境内，今天终于落地了。&lt;/p&gt;
&lt;p&gt;之前是使用国人开发的node.js博客系统&lt;a href=&quot;https://github.com/firekylin/firekylin&quot;&gt;firekylin&lt;/a&gt;搭建的，但是直接签国内自己的服务器的话需要备案，导致一直被我搁置了。&lt;/p&gt;
&lt;p&gt;还好&lt;a href=&quot;https://pages.coding.net/&quot;&gt;coding&lt;/a&gt;提供了pages服务，还可以绑定域名，感谢coding。&lt;/p&gt;
&lt;p&gt;感谢&lt;a href=&quot;https://hexo.io/&quot;&gt;hexo&lt;/a&gt;提供了这么便捷的工具，还有Litten提供了这个精美的主题&lt;a href=&quot;https://github.com/litten/hexo-theme-yilia&quot;&gt;yilia&lt;/a&gt;。&lt;/p&gt;</summary>
    
    
    
    <category term="tech" scheme="https://wuyanxin.com/cate/tech/"/>
    
    
    <category term="hexo" scheme="https://wuyanxin.com/tags/hexo/"/>
    
  </entry>
  
  <entry>
    <title>基于Postman的API自动化测试</title>
    <link href="https://wuyanxin.com/post/automated-tests-for-apis-with-postman.html"/>
    <id>https://wuyanxin.com/post/automated-tests-for-apis-with-postman.html</id>
    <published>2016-12-23T16:00:00.000Z</published>
    <updated>2022-02-25T11:52:53.228Z</updated>
    
    
    <summary type="html">&lt;p&gt;&lt;img src=&quot;/images/cdn/postman-logo-drawing-board.png&quot;&gt;&lt;/p&gt;
&lt;h2 id=&quot;1-安装&quot;&gt;&lt;a href=&quot;#1-安装&quot; class=&quot;headerlink&quot; title=&quot;1. 安装&quot;&gt;&lt;/a&gt;1. 安装&lt;/h2&gt;&lt;p&gt;两种安装方式，我热衷于以chrome插件形式安装&lt;br&gt;&lt;a href=&quot;https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=zh&quot;&gt;Chrome插件&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;https://www.getpostman.com/apps&quot;&gt;Mac App&lt;/a&gt;&lt;/p&gt;
&lt;h2 id=&quot;2-发送请求&quot;&gt;&lt;a href=&quot;#2-发送请求&quot; class=&quot;headerlink&quot; title=&quot;2. 发送请求&quot;&gt;&lt;/a&gt;2. 发送请求&lt;/h2&gt;&lt;p&gt;Postman最基础的功能就是发送http请求，支持GET/PUT/POST/DELETE，还有很多我不认识的http方法。&lt;/p&gt;
&lt;p&gt;通过填写URL、header、body等就可以发送一个请求，这对于我们平时做一些简单的测试是够用的。&lt;/p&gt;
&lt;p&gt;如果你的应用需要用到登录验证，可以通过填写Authorization以满足你的需求。&lt;br&gt;另外也可以使用Chrome浏览器已经登录的cookie，同步浏览器的cookie需要安装另一个插件&lt;a href=&quot;https://chrome.google.com/webstore/detail/postman-interceptor/aicmkgpgakddgnaphhhpliifpcfhicfo?hl=zh&quot;&gt;&lt;strong&gt;Interceptor&lt;/strong&gt;&lt;/a&gt;（拦截机）。它可以在你发送请求时帮你将已经存在于浏览器的数据随header请求，另外它可以将浏览器的请求写到postman的历史中（需要开启“Request Capture”&lt;br&gt;）。&lt;/p&gt;</summary>
    
    
    
    <category term="tech" scheme="https://wuyanxin.com/cate/tech/"/>
    
    
    <category term="postman" scheme="https://wuyanxin.com/tags/postman/"/>
    
  </entry>
  
  <entry>
    <title>搭建本地HTTPS测试环境</title>
    <link href="https://wuyanxin.com/post/https-test-on-localhost.html"/>
    <id>https://wuyanxin.com/post/https-test-on-localhost.html</id>
    <published>2016-12-22T16:00:00.000Z</published>
    <updated>2022-02-25T11:52:53.228Z</updated>
    
    
    <summary type="html">&lt;h2 id=&quot;生成证书&quot;&gt;&lt;a href=&quot;#生成证书&quot; class=&quot;headerlink&quot; title=&quot;生成证书&quot;&gt;&lt;/a&gt;生成证书&lt;/h2&gt;&lt;h5 id=&quot;1-使用openssl生成密钥privkey-pem：&quot;&gt;&lt;a href=&quot;#1-使用openssl生成密钥privkey-pem：&quot; class=&quot;headerlink&quot; title=&quot;1. 使用openssl生成密钥privkey.pem：&quot;&gt;&lt;/a&gt;1. 使用openssl生成密钥privkey.pem：&lt;/h5&gt;&lt;p&gt;&lt;code&gt;openssl genrsa -out privkey.pem 1024/2038&lt;/code&gt;&lt;/p&gt;
&lt;h5 id=&quot;2-使用密钥生成证书server-pem：&quot;&gt;&lt;a href=&quot;#2-使用密钥生成证书server-pem：&quot; class=&quot;headerlink&quot; title=&quot;2. 使用密钥生成证书server.pem：&quot;&gt;&lt;/a&gt;2. 使用密钥生成证书server.pem：&lt;/h5&gt;&lt;p&gt;&lt;code&gt;openssl req -new -x509 -key privkey.pem -out server.pem -days 365&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;证书信息可以随便填或者留空，只有Common Name要根据你的域名填写。&lt;/p&gt;
&lt;p&gt;以我的个人网站为例&lt;br&gt;&lt;code&gt;Common Name (e.g. server FQDN or YOUR name) []: wuyanxin.com&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;也可以通过&lt;code&gt;*.yourdomain.com&lt;/code&gt;来匹配你的二级域名&lt;/p&gt;</summary>
    
    
    
    <category term="tech" scheme="https://wuyanxin.com/cate/tech/"/>
    
    
    <category term="https" scheme="https://wuyanxin.com/tags/https/"/>
    
  </entry>
  
  <entry>
    <title>接入HTTPS，给网站加一把绿色小锁</title>
    <link href="https://wuyanxin.com/post/lets-encrypt-your-site.html"/>
    <id>https://wuyanxin.com/post/lets-encrypt-your-site.html</id>
    <published>2016-11-08T16:00:00.000Z</published>
    <updated>2022-02-25T11:52:53.229Z</updated>
    
    
    <summary type="html">&lt;h2 id=&quot;什么是HTTPS&quot;&gt;&lt;a href=&quot;#什么是HTTPS&quot; class=&quot;headerlink&quot; title=&quot;什么是HTTPS&quot;&gt;&lt;/a&gt;什么是HTTPS&lt;/h2&gt;&lt;p&gt;关于HTTPS的概念，在&lt;a href=&quot;http://dwz.cn/4pgZCM&quot;&gt;《全站HTTPS来了》&lt;/a&gt;这篇文章已经有非常全面的描述，推荐细读。&lt;/p&gt;
&lt;h2 id=&quot;Let’s-Encrypt&quot;&gt;&lt;a href=&quot;#Let’s-Encrypt&quot; class=&quot;headerlink&quot; title=&quot;Let’s Encrypt&quot;&gt;&lt;/a&gt;Let’s Encrypt&lt;/h2&gt;&lt;p&gt;最近突然想把自己的博客弄成HTTPS，也不是为了加强安全，只是喜欢折腾，而且感觉加个绿色小锁酷酷的。&lt;br&gt;HTTPS免费证书颁发机构有startSSL和letsencrypt，我使用的是&lt;a href=&quot;https://letsencrypt.org/&quot;&gt;letsencrypt&lt;/a&gt;。&lt;/p&gt;</summary>
    
    
    
    <category term="tech" scheme="https://wuyanxin.com/cate/tech/"/>
    
    
    <category term="https" scheme="https://wuyanxin.com/tags/https/"/>
    
  </entry>
  
  <entry>
    <title>GitLab-CI 基础应用</title>
    <link href="https://wuyanxin.com/post/gitlab-ci-quick-start.html"/>
    <id>https://wuyanxin.com/post/gitlab-ci-quick-start.html</id>
    <published>2016-10-19T16:00:00.000Z</published>
    <updated>2022-02-25T11:52:53.228Z</updated>
    
    
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;故事是这样的..&lt;br&gt;我们源码从github迁移到自主搭建的gitlab服务器管理，以前用github的时候是使用jenkins进行持续集成的，本来应用上jenkins我只要配一下webhook就可以了，可我就是任性。&lt;br&gt;我心想，既然已经迁移到gitlab了，为何不用用gitlab-ci呢，更何况gitlab宣称集成了gitlab-ci，应该很快就能应用上。&lt;br&gt;我正是这样把自己推进坑的。&lt;/p&gt;
&lt;/blockquote&gt;</summary>
    
    
    
    <category term="tech" scheme="https://wuyanxin.com/cate/tech/"/>
    
    
    <category term="CI" scheme="https://wuyanxin.com/tags/CI/"/>
    
    <category term="gitlab" scheme="https://wuyanxin.com/tags/gitlab/"/>
    
  </entry>
  
  <entry>
    <title>VS Code初体验</title>
    <link href="https://wuyanxin.com/post/the-first-experience-of-vscode.html"/>
    <id>https://wuyanxin.com/post/the-first-experience-of-vscode.html</id>
    <published>2016-08-21T16:00:00.000Z</published>
    <updated>2022-02-25T11:52:53.229Z</updated>
    
    
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;半个月前WebStorm的频繁卡死终于让我受不鸟了，我决定换个轻量级的编辑器。尝试了Emacs、Sublime text，最后选择了vscode。Emacs实在太难了，那么多快捷键就算记住了我也有点担心我的小指。Sublime一直是我的第二编辑器，平时做一些轻项目或一些简单测试都是用Sublime，本来这次想改用sublime，还想着如果用上手了在买个注册码。&lt;br&gt;当天受我们组的美女前端安利了vscode，虽然vscode在发布1.0版本的时候我就安装了，安装后只是大概了解了一下，因为用惯了webstorm并且webstorm让我很爽，所以当时并不想再花时间学一个编辑器。&lt;br&gt;我们组已经有4人开始用vscode作为主编辑器了，我想这东西这么优秀，而且还免费，我怎么能不尝试一下呢&lt;/p&gt;
&lt;/blockquote&gt;</summary>
    
    
    
    <category term="tech" scheme="https://wuyanxin.com/cate/tech/"/>
    
    
    <category term="IDE" scheme="https://wuyanxin.com/tags/IDE/"/>
    
  </entry>
  
  <entry>
    <title>《无声告白》</title>
    <link href="https://wuyanxin.com/post/everything-i-never-told-you.html"/>
    <id>https://wuyanxin.com/post/everything-i-never-told-you.html</id>
    <published>2016-06-20T16:00:00.000Z</published>
    <updated>2022-02-25T11:52:53.228Z</updated>
    
    
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;以前我都不喜欢看小说，觉得那是无聊时候的消遣活动，我更愿看那些读起来如嚼蜡的学术书。前阵子一个同学介绍我看《乖，摸摸头》，没几天又有一位同事介绍我看同一本书，于是我读了这本书，书中有几个故事让我几度模糊了眼睛。我们的一生太短暂，没办法经历太多事，却可以从别人的故事中经历和成长。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;《无声告白》是一部关于家庭、教育以及青少年成长的短篇小说，故事精彩，逻辑缜密，对书中的人物心理活动更是描述得非常细腻。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;注：后续内容包含部分剧透&lt;/p&gt;
&lt;/blockquote&gt;</summary>
    
    
    
    <category term="journal" scheme="https://wuyanxin.com/cate/journal/"/>
    
    
    <category term="读后感" scheme="https://wuyanxin.com/tags/%E8%AF%BB%E5%90%8E%E6%84%9F/"/>
    
  </entry>
  
  <entry>
    <title>使用Keystone上传图片到CDN</title>
    <link href="https://wuyanxin.com/post/upload-file-to-cdn-on-keystone.html"/>
    <id>https://wuyanxin.com/post/upload-file-to-cdn-on-keystone.html</id>
    <published>2016-04-17T16:00:00.000Z</published>
    <updated>2022-02-25T11:52:53.229Z</updated>
    
    
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;Keystone是以Express和MongoDB为基础搭建的开源的Node.js CMS和web应用程序平台，&lt;a href=&quot;http://wuyanxin.com/node-cms-keystone-js/&quot;&gt;快速入门&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&quot;需求&quot;&gt;&lt;a href=&quot;#需求&quot; class=&quot;headerlink&quot; title=&quot;需求&quot;&gt;&lt;/a&gt;需求&lt;/h2&gt;&lt;p&gt;上传图片到CDN，这里以又拍云为例。（非广告）&lt;/p&gt;</summary>
    
    
    
    <category term="tech" scheme="https://wuyanxin.com/cate/tech/"/>
    
    
    <category term="node.js" scheme="https://wuyanxin.com/tags/node-js/"/>
    
  </entry>
  
  <entry>
    <title>疯狂的楼市</title>
    <link href="https://wuyanxin.com/post/crazy-house.html"/>
    <id>https://wuyanxin.com/post/crazy-house.html</id>
    <published>2016-03-27T16:00:00.000Z</published>
    <updated>2022-02-25T11:52:53.228Z</updated>
    
    
    <summary type="html">&lt;p&gt;&lt;img src=&quot;/images/cdn/S27354T1306402540341.jpg!600&quot;&gt;&lt;/p&gt;
&lt;p&gt;在去年2015年股市疯牛受挫狂跌之后，楼市悄悄的走上疯狂之路。深圳市领跑楼市，带领全国楼市来了一次疯长。&lt;/p&gt;
&lt;p&gt;微信里流传这样的段子：去年A股国家牛市与现在的人造房市异曲同工。1.降首付=加杠杆；2.暂停开发新地块=暂停IPO；3.契税调整=降印花税 ；4.专家谈一线城市还要涨一倍=4000点是牛市起点；5.深圳均价10万=“全通教育”500元；6.鼓励农民进城买房=最后的散户进场。&lt;/p&gt;
&lt;p&gt;整个社会经济过于投机化，今年买房的不知道有多少是刚需，我相信更多的是投机。这几个月我也去看过房子，房地产的销售中心有一股紧张的气氛。“赶紧买，不然就没了”，“赶紧买，不然又要涨了”，“赶紧买，买到就是赚到了”，各种各样的声音催促着人们恐慌性购房。&lt;/p&gt;</summary>
    
    
    
    <category term="journal" scheme="https://wuyanxin.com/cate/journal/"/>
    
    
    <category term="生活" scheme="https://wuyanxin.com/tags/%E7%94%9F%E6%B4%BB/"/>
    
  </entry>
  
  <entry>
    <title>乞讨者行为</title>
    <link href="https://wuyanxin.com/post/qi-tao-zhe-xing-wei.html"/>
    <id>https://wuyanxin.com/post/qi-tao-zhe-xing-wei.html</id>
    <published>2016-03-26T16:00:00.000Z</published>
    <updated>2022-02-25T11:52:53.229Z</updated>
    
    
    <summary type="html">&lt;p&gt;&lt;img src=&quot;/images/cdn/20080228124841-720288703.jpg&quot;&gt;&lt;/p&gt;
&lt;p&gt;今天在网上看到一篇新闻，26岁小伙到救助站求助，工作人员一脸认出小伙已经是第三次来了，经网上查询该男子已经在各救助站累计被救助700余次了，属于职业“跑站人”。&lt;/p&gt;
&lt;p&gt;小伙一上来直接要20块钱，一点都不含糊，还显得很有底气。工作人员提出救助站只管吃管住管车票，不管钱的。小伙累积700多次的救助经验，专门坐车到救助站，哪有那么容易被打发。工作人员给他安排吃的，他说不吃泡面只吃手工面。面快煮好了，他说不想吃带汤的，想吃拌面，明显故意刁难只为了钱。最后和工作人员僵持了一个下午，工作人员无奈给20块钱打发他们走了。&lt;/p&gt;
&lt;p&gt;小伙子! 大爷我真想给你点个赞，你这职业精神真是可嘉啊，撒泼了一个下午只为20块钱。大爷就不明白了，你这么年轻，去找份什么工作有一个下午不到20块钱的么。&lt;/p&gt;
&lt;p&gt;像上面的小伙这样的乞讨手段我称之为撒泼，这是我见到最多的乞讨者行为。&lt;/p&gt;</summary>
    
    
    
    <category term="journal" scheme="https://wuyanxin.com/cate/journal/"/>
    
    
    <category term="生活" scheme="https://wuyanxin.com/tags/%E7%94%9F%E6%B4%BB/"/>
    
  </entry>
  
  <entry>
    <title>思考成长</title>
    <link href="https://wuyanxin.com/post/think-in-grouth.html"/>
    <id>https://wuyanxin.com/post/think-in-grouth.html</id>
    <published>2016-03-23T16:00:00.000Z</published>
    <updated>2022-02-25T11:52:53.229Z</updated>
    
    
    <summary type="html">&lt;p&gt;&lt;img src=&quot;/images/cdn/ingrowth01.jpg&quot;&gt;&lt;/p&gt;
&lt;p&gt;在当前社会中，每个人都应当不断的成长，不然将会被社会淘汰。这个社会在不断进步，对需要的人才的要求也在不断提升，我们也应该不断提升自己。&lt;/p&gt;</summary>
    
    
    
    <category term="journal" scheme="https://wuyanxin.com/cate/journal/"/>
    
    
    <category term="growth" scheme="https://wuyanxin.com/tags/growth/"/>
    
  </entry>
  
  <entry>
    <title>Node.js快速开发利器--Keystone.js</title>
    <link href="https://wuyanxin.com/post/node-cms-keystone-js.html"/>
    <id>https://wuyanxin.com/post/node-cms-keystone-js.html</id>
    <published>2016-03-19T16:00:00.000Z</published>
    <updated>2022-02-25T11:52:53.229Z</updated>
    
    
    <summary type="html">&lt;h2 id=&quot;介绍&quot;&gt;&lt;a href=&quot;#介绍&quot; class=&quot;headerlink&quot; title=&quot;介绍&quot;&gt;&lt;/a&gt;介绍&lt;/h2&gt;&lt;p&gt;&lt;a href=&quot;http://keystonejs.com/&quot;&gt;Keystone&lt;/a&gt;是以Express和MongoDB为基础搭建的开源的Node.js CMS和web应用程序平台。&lt;/p&gt;
&lt;p&gt;Keystone在官网上声称：在Node.js中，用Keystone搭建数据驱动的网站、应用程序和API是最容易的。&lt;/p&gt;
&lt;p&gt;之所以出此狂言，背后还是有料的，Keystone自带以下功能：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;内置Express.js和MongoDB&lt;/li&gt;
&lt;li&gt;动态路由&lt;/li&gt;
&lt;li&gt;实用的数据库域类型&lt;/li&gt;
&lt;li&gt;自动生成管理员界面&lt;/li&gt;
&lt;li&gt;基于数据模型的表单处理&lt;/li&gt;
&lt;li&gt;会话管理和认证功能&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;我觉得keystone最牛逼的地方就是根据你定义的模型自动帮你实现后台管理界面，创建、管理、编辑和删除等，这得省掉很多功夫了。这样实现一个网站只要定义model和写前端代码就好了。&lt;/p&gt;
&lt;p&gt;这应该是前端猴子接外包的一个利器吧。&lt;/p&gt;</summary>
    
    
    
    <category term="tech" scheme="https://wuyanxin.com/cate/tech/"/>
    
    
    <category term="node.js" scheme="https://wuyanxin.com/tags/node-js/"/>
    
  </entry>
  
  <entry>
    <title>播种的时节</title>
    <link href="https://wuyanxin.com/post/seeding-time.html"/>
    <id>https://wuyanxin.com/post/seeding-time.html</id>
    <published>2016-03-14T16:00:00.000Z</published>
    <updated>2022-02-25T11:52:53.229Z</updated>
    
    
    <summary type="html">&lt;p&gt;&lt;img src=&quot;/images/cdn/cai44444.jpg&quot;&gt;&lt;/p&gt;
&lt;p&gt;今天隆重介绍我家的大菜园。&lt;/p&gt;
&lt;p&gt;元宵节前后，大花在网上买了几个盆子和几块压缩土方，买了一些种子，有生菜、香菜、小葱、草莓、圣女果、秋葵、薰衣草等等等等，好多种类的种子，买了几个翻土的工具，还有一包活力大肥王，就开始了我们的菜园大改造。&lt;/p&gt;</summary>
    
    
    
    <category term="journal" scheme="https://wuyanxin.com/cate/journal/"/>
    
    
    <category term="生活" scheme="https://wuyanxin.com/tags/%E7%94%9F%E6%B4%BB/"/>
    
  </entry>
  
  <entry>
    <title>关于等待</title>
    <link href="https://wuyanxin.com/post/about-waiting.html"/>
    <id>https://wuyanxin.com/post/about-waiting.html</id>
    <published>2016-03-13T16:00:00.000Z</published>
    <updated>2022-02-25T11:52:53.228Z</updated>
    
    
    <summary type="html">&lt;p&gt;&lt;img src=&quot;/images/cdn/2016/02/500words-1456048706626.jpg&quot;&gt;&lt;/p&gt;
&lt;p&gt;每个人都不喜欢等待。&lt;/p&gt;
&lt;p&gt;等朋友，等红灯，等公交，排队等待买一份麦当劳超值早餐，等服务员来到你身边，等待无时不刻陪伴着我们。&lt;/p&gt;</summary>
    
    
    
    <category term="journal" scheme="https://wuyanxin.com/cate/journal/"/>
    
    
    <category term="生活" scheme="https://wuyanxin.com/tags/%E7%94%9F%E6%B4%BB/"/>
    
  </entry>
  
  <entry>
    <title>坚持早起写作的这些天</title>
    <link href="https://wuyanxin.com/post/early-rising-in-these-days.html"/>
    <id>https://wuyanxin.com/post/early-rising-in-these-days.html</id>
    <published>2016-03-03T16:00:00.000Z</published>
    <updated>2022-02-25T11:52:53.228Z</updated>
    
    
    <summary type="html">&lt;p&gt;&lt;img src=&quot;/images/cdn/2016/02/500words-1456048706626.jpg&quot;&gt;&lt;/p&gt;
&lt;p&gt;从2月19日开始决定早起写文章，每天早上都在和起床做斗争，斗了13天了，现在生物钟还算是比较准了，大概在7点之前自己就醒了。不仅没有因为早起导致白天精神不好，反而我觉得比以前更精力充沛了。每天早起促成我每天早睡，大概11点就困了。就这样养成早睡早起的习惯。&lt;/p&gt;</summary>
    
    
    
    <category term="journal" scheme="https://wuyanxin.com/cate/journal/"/>
    
    
    <category term="growth" scheme="https://wuyanxin.com/tags/growth/"/>
    
  </entry>
  
  <entry>
    <title>Bluebird promise 设置</title>
    <link href="https://wuyanxin.com/post/bluebird-promise-config.html"/>
    <id>https://wuyanxin.com/post/bluebird-promise-config.html</id>
    <published>2016-03-02T16:00:00.000Z</published>
    <updated>2022-02-25T11:52:53.228Z</updated>
    
    
    <summary type="html">&lt;figure class=&quot;highlight plaintext&quot;&gt;&lt;table&gt;&lt;tr&gt;&lt;td class=&quot;gutter&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;1&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;2&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;3&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;4&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;5&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;6&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;td class=&quot;code&quot;&gt;&lt;pre&gt;&lt;span class=&quot;line&quot;&gt;Promise.config(Object &amp;#123;&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;    warnings: boolean=false,&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;    longStackTraces: boolean=false,&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;    cancellation: boolean=false,&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;    monitoring: boolean=false&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;line&quot;&gt;&amp;#125; options) -&amp;gt; undefined;&lt;/span&gt;&lt;br&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/figure&gt;
&lt;p&gt;Bluebird可设置长堆栈跟踪、警告、监控和取消。&lt;br&gt;注意：虽然这里默认值都是&lt;code&gt;false&lt;/code&gt;，但是在开发环境下自动开启堆栈跟踪和警告。&lt;/p&gt;</summary>
    
    
    
    <category term="tech" scheme="https://wuyanxin.com/cate/tech/"/>
    
    
    <category term="node.js" scheme="https://wuyanxin.com/tags/node-js/"/>
    
  </entry>
  
  <entry>
    <title>Bluebird warning 解释说明</title>
    <link href="https://wuyanxin.com/post/bluebird-warning-explanations.html"/>
    <id>https://wuyanxin.com/post/bluebird-warning-explanations.html</id>
    <published>2016-03-01T16:00:00.000Z</published>
    <updated>2022-02-25T11:52:53.228Z</updated>
    
    
    <summary type="html">&lt;p&gt;bluebird从3.x开始对promise的错误使用会有以下三种Warning，提醒你正在不正确使用bluebird，下面对这三种warning进行解释，并说明如何避免。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;#warningthenonlyacceptsfunctions&quot;&gt;Warning: .then() only accepts functions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#warningapromisewasrejectedwithanonerror&quot;&gt;Warning: a promise was rejected with a non-error&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;#warningapromisewascreatedinahandlerbutnonewerereturnedfromit&quot;&gt;Warning: a promise was created in a handler but none were returned from it&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</summary>
    
    
    
    <category term="tech" scheme="https://wuyanxin.com/cate/tech/"/>
    
    
    <category term="node.js" scheme="https://wuyanxin.com/tags/node-js/"/>
    
  </entry>
  
  <entry>
    <title>为什么我选择在早上提升自己</title>
    <link href="https://wuyanxin.com/post/growth-in-the-morning.html"/>
    <id>https://wuyanxin.com/post/growth-in-the-morning.html</id>
    <published>2016-02-29T16:00:00.000Z</published>
    <updated>2022-02-25T11:52:53.228Z</updated>
    
    
    <summary type="html">&lt;p&gt;&lt;img src=&quot;/images/cdn/2016/02/500words-1456048706626.jpg&quot;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;痛苦地坚持早起的这些天来，今天终于是7点自然醒了。我的生物钟调教越来越好了&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;古人云，一年之际在于春，一日之际在于晨。我现在这个时间正是年度最佳和每日最佳。&lt;/p&gt;
&lt;p&gt;以前我并不觉得一日之际在与晨这句话。&lt;/p&gt;
&lt;p&gt;因为我以前每次早起之后状态很差，然后一整天的精神也不好，一直想睡觉。这两点就足以让我不再早起了。&lt;/p&gt;
&lt;p&gt;但是，在我坚持早起的这些天中，我发现早起的各种好处。&lt;/p&gt;</summary>
    
    
    
    <category term="journal" scheme="https://wuyanxin.com/cate/journal/"/>
    
    
    <category term="growth" scheme="https://wuyanxin.com/tags/growth/"/>
    
  </entry>
  
  <entry>
    <title>为什么我不会写文章</title>
    <link href="https://wuyanxin.com/post/iam-not-good-at-writing.html"/>
    <id>https://wuyanxin.com/post/iam-not-good-at-writing.html</id>
    <published>2016-02-28T16:00:00.000Z</published>
    <updated>2022-02-25T11:52:53.229Z</updated>
    
    
    <summary type="html">&lt;p&gt;&lt;img src=&quot;/images/cdn/2016/02/500words-1456048706626.jpg&quot;&gt;&lt;/p&gt;
&lt;p&gt;为什么我不会写文章，因为我怕别人说我写得不好，为什么我怕别人说我写的不好，因为我真的不会写文章。&lt;/p&gt;</summary>
    
    
    
    <category term="journal" scheme="https://wuyanxin.com/cate/journal/"/>
    
    
    <category term="growth" scheme="https://wuyanxin.com/tags/growth/"/>
    
  </entry>
  
  <entry>
    <title>我家的猫</title>
    <link href="https://wuyanxin.com/post/my-dear-cat.html"/>
    <id>https://wuyanxin.com/post/my-dear-cat.html</id>
    <published>2016-02-25T16:00:00.000Z</published>
    <updated>2022-02-25T11:52:53.229Z</updated>
    
    
    <summary type="html">&lt;p&gt;&lt;img src=&quot;/images/cdn/2016/02/500words-1456048706626.jpg&quot;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;在开始每天写文章的时候我就想过，将来要留一篇专门来写我家的猫。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;今天晚上去完健身房回家，经过一家宠物店，朋友说要进去买点药给他的猫买点药，于是我们进了宠物店。&lt;/p&gt;
&lt;p&gt;进入宠物店里面有一只猫和一只狗寄养在那里，那只猫刚好是原来是一个同事的。我们就逗它玩，它居然很温顺地陪我们玩。它让我想起了小时候我们家的那只猫。&lt;/p&gt;
&lt;p&gt;每每说起那只猫，心里就有一种不知如何表达的忧伤涌上来。&lt;/p&gt;</summary>
    
    
    
    <category term="journal" scheme="https://wuyanxin.com/cate/journal/"/>
    
    
    <category term="生活" scheme="https://wuyanxin.com/tags/%E7%94%9F%E6%B4%BB/"/>
    
  </entry>
  
  <entry>
    <title>自己做的计划，含着泪也要执行</title>
    <link href="https://wuyanxin.com/post/zi-ji-zuo-de-ji-hua-han-zhao-lei-ye-yao-zhi-xing.html"/>
    <id>https://wuyanxin.com/post/zi-ji-zuo-de-ji-hua-han-zhao-lei-ye-yao-zhi-xing.html</id>
    <published>2016-02-23T16:00:00.000Z</published>
    <updated>2022-02-25T11:52:53.230Z</updated>
    
    
    <summary type="html">&lt;p&gt;&lt;img src=&quot;/images/cdn/2016/02/500words-1456048706626.jpg&quot;&gt;&lt;/p&gt;
&lt;p&gt;每日一篇文章的计划已经进行到第五天了，昨天没写。很惭愧。&lt;/p&gt;
&lt;p&gt;前天，当我还在家里的时候，妹妹帮我找出了一本日记本。那是我从初二写到高三的日记本。虽然是用了5年的笔记本，不过好像里面内容不超过8篇，而且基本上里面没篇都是各种计划和决心。&lt;/p&gt;
&lt;p&gt;比如里面的第一篇，那是写在初二暑假的时候–2006年8月1日。我说要从今天开始每天开始写日记，就像我在这里的第一篇一样。然而，那时候的第二篇已经是8月6日了。我掐指算了一下，这几天我坚持写的日志，可以算是我最长的日记连击记录了。&lt;/p&gt;</summary>
    
    
    
    <category term="journal" scheme="https://wuyanxin.com/cate/journal/"/>
    
    
    <category term="growth" scheme="https://wuyanxin.com/tags/growth/"/>
    
  </entry>
  
  <entry>
    <title>元宵节</title>
    <link href="https://wuyanxin.com/post/yuan-xiao-jie.html"/>
    <id>https://wuyanxin.com/post/yuan-xiao-jie.html</id>
    <published>2016-02-21T16:00:00.000Z</published>
    <updated>2022-02-25T11:52:53.229Z</updated>
    
    
    <summary type="html">&lt;p&gt;&lt;img src=&quot;/images/cdn/2016/02/500words-1456048706626.jpg&quot;&gt;&lt;/p&gt;
&lt;p&gt;在我们村里，元宵节是一年当中最热闹的一天。村里人会在这一天组织神游活动，神游队伍中有小孩少年少女青年老人和众神，小孩子会被化上浓妆穿着古装服饰，青年一般是刚结婚或者生了男孩的男子，身披大红褂上阵，老人们则穿着民国时代的衣服跟在队伍后面。做为活动的主要观赏点的是少女们的大旗队，一般少女们会自己化个淡淡的妆，身着旗袍，露出笔直白美的大长腿。&lt;/p&gt;
&lt;p&gt;当然神游的目的不是为了给大伙儿看美女，大人们的重心都放在众神那里，神游队伍所到之处会燃放鞭炮，家家户户会焚上几支香和神游队伍的香炉交换，交换回来的香会插到家里的众神里，以保平安。&lt;/p&gt;
&lt;p&gt;神游路线是村子的外环及各主干道，神游结束之后众神会被安放在村子旧区中的空地前，然后就是晚上的大朝拜个烟花晚会了。&lt;/p&gt;
&lt;p&gt;未完待续&lt;/p&gt;</summary>
    
    
    
    <category term="journal" scheme="https://wuyanxin.com/cate/journal/"/>
    
    
    <category term="生活" scheme="https://wuyanxin.com/tags/%E7%94%9F%E6%B4%BB/"/>
    
  </entry>
  
  <entry>
    <title>Review我的早起计划</title>
    <link href="https://wuyanxin.com/post/review-my-early-rising-plan.html"/>
    <id>https://wuyanxin.com/post/review-my-early-rising-plan.html</id>
    <published>2016-02-20T16:00:00.000Z</published>
    <updated>2022-02-25T11:52:53.229Z</updated>
    
    
    <summary type="html">&lt;p&gt;&lt;img src=&quot;/images/cdn/2016/02/500words-1456048706626.jpg&quot;&gt;&lt;/p&gt;
&lt;p&gt;在我的每日写作计划的&lt;a href=&quot;http://wuyanxin.com/2016-2-19-xie-yu-hui-jia-de-lu-shang/&quot;&gt;第一篇文章&lt;/a&gt;里提到，我要每天早上7点钟起床，并做系列事情：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;读书&lt;/li&gt;
&lt;li&gt;写作&lt;/li&gt;
&lt;li&gt;学英语&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;并且为这三件事每件事分配一个番茄钟的时间。&lt;/p&gt;</summary>
    
    
    
    <category term="journal" scheme="https://wuyanxin.com/cate/journal/"/>
    
    
    <category term="growth" scheme="https://wuyanxin.com/tags/growth/"/>
    
  </entry>
  
  <entry>
    <title>正月十三食丁桌</title>
    <link href="https://wuyanxin.com/post/zheng-yue-shi-san-shi-ding-zhuo.html"/>
    <id>https://wuyanxin.com/post/zheng-yue-shi-san-shi-ding-zhuo.html</id>
    <published>2016-02-19T16:00:00.000Z</published>
    <updated>2022-02-25T11:52:53.229Z</updated>
    
    
    <summary type="html">&lt;p&gt;&lt;img src=&quot;http://goinswriter.com/wp-content/uploads/500words_wide-e1388529158371.jpg&quot;&gt;&lt;/p&gt;
&lt;p&gt;昨天就在日志里提到，每天要7点起来读书写字学英语。殊不知昨晚回家，和小妹饮茶畅谈到深夜。早上7点的闹钟响了无数次，在7点20分被我关掉了，接着就开始内心挣扎到底起不起来，怀疑自己是不是决心不够，无奈睡眠不足身体力乏，无法起身。最后挣扎到了8点，终于拿起手机开始看新闻为自己提神，最后我今天的起床时间是9点。oh lo ~&lt;/p&gt;</summary>
    
    
    
    <category term="journal" scheme="https://wuyanxin.com/cate/journal/"/>
    
    
    <category term="生活" scheme="https://wuyanxin.com/tags/%E7%94%9F%E6%B4%BB/"/>
    
  </entry>
  
  <entry>
    <title>写于回家的路上</title>
    <link href="https://wuyanxin.com/post/xie-yu-hui-jia-de-lu-shang.html"/>
    <id>https://wuyanxin.com/post/xie-yu-hui-jia-de-lu-shang.html</id>
    <published>2016-02-18T16:00:00.000Z</published>
    <updated>2022-02-25T11:52:53.229Z</updated>
    
    
    <summary type="html">&lt;p&gt;&lt;img src=&quot;http://goinswriter.com/wp-content/uploads/500words_wide-e1388529158371.jpg&quot;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;昨天在Medium看到了Jeff Goins的文章&lt;a href=&quot;https://medium.com/@jeffgoins/the-secret-to-developing-a-regular-writing-habit-500-words-per-day-fe047d0b8ac0#.28w815wcc&quot;&gt;&lt;em&gt;The Secret to Developing a Regular Writing Habit: 500 Words Per Day&lt;/em&gt;&lt;/a&gt;，对我的鼓励颇大，我决定加入31天的&lt;a href=&quot;http://goinswriter.com/my500words/&quot;&gt;每日写作习惯养成计划&lt;/a&gt;。这是我的第一篇随笔。&lt;/p&gt;
&lt;/blockquote&gt;</summary>
    
    
    
    <category term="journal" scheme="https://wuyanxin.com/cate/journal/"/>
    
    
    <category term="生活" scheme="https://wuyanxin.com/tags/%E7%94%9F%E6%B4%BB/"/>
    
  </entry>
  
  <entry>
    <title>Jenkins上踩过的那些坑</title>
    <link href="https://wuyanxin.com/post/suffer-a-setback-on-jenkins.html"/>
    <id>https://wuyanxin.com/post/suffer-a-setback-on-jenkins.html</id>
    <published>2015-12-13T16:00:00.000Z</published>
    <updated>2022-02-25T11:52:53.228Z</updated>
    
    
    <summary type="html">&lt;p&gt;&lt;img src=&quot;/images/cdn/2016/02/436630-980297d7de13473d-1454482691873.png&quot;&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;在学习搭建Jenkins CI环境时踩过许多大坑小坑，记录了一些下来，以作备忘&lt;br&gt;有些坑踩完就忘了，只记录下记得的&lt;br&gt;后续研究时候继续踩坑再更新&lt;/p&gt;
&lt;/blockquote&gt;</summary>
    
    
    
    <category term="tech" scheme="https://wuyanxin.com/cate/tech/"/>
    
    
    <category term="CI" scheme="https://wuyanxin.com/tags/CI/"/>
    
    <category term="jenkins" scheme="https://wuyanxin.com/tags/jenkins/"/>
    
  </entry>
  
  <entry>
    <title>Jenkins+Github持续集成</title>
    <link href="https://wuyanxin.com/post/jenkins-github-ci.html"/>
    <id>https://wuyanxin.com/post/jenkins-github-ci.html</id>
    <published>2015-11-10T16:00:00.000Z</published>
    <updated>2022-02-25T11:52:53.227Z</updated>
    
    
    <summary type="html">由于最近团队代码库从coding迁移到github，在CI工具的选型上尝试了travis-ci和circle-ci，最后决定自己搭建CI服务器，而我也有幸认领了这个任务的调研，因此有了这篇文章。</summary>
    
    
    
    <category term="tech" scheme="https://wuyanxin.com/cate/tech/"/>
    
    
    <category term="CI" scheme="https://wuyanxin.com/tags/CI/"/>
    
    <category term="jenkins" scheme="https://wuyanxin.com/tags/jenkins/"/>
    
    <category term="github" scheme="https://wuyanxin.com/tags/github/"/>
    
  </entry>
  
  <entry>
    <title>Jenkins+Node.js持续集成</title>
    <link href="https://wuyanxin.com/post/jenkins-nodejs-ci.html"/>
    <id>https://wuyanxin.com/post/jenkins-nodejs-ci.html</id>
    <published>2015-10-14T16:00:00.000Z</published>
    <updated>2022-02-25T11:52:53.227Z</updated>
    
    
    <summary type="html">&lt;p&gt;&lt;img src=&quot;/images/cdn/2016/02/436630-980297d7de13473d-1454482691873.png&quot;&gt;&lt;/p&gt;
&lt;h3 id=&quot;什么是持续集成-Continuous-integration&quot;&gt;&lt;a href=&quot;#什么是持续集成-Continuous-integration&quot; class=&quot;headerlink&quot; title=&quot;什么是持续集成(Continuous integration)&quot;&gt;&lt;/a&gt;什么是持续集成(&lt;a href=&quot;http://www.martinfowler.com/articles/continuousIntegration.html&quot;&gt;Continuous integration&lt;/a&gt;)&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;提出者Martin Fowler本人对持续集成是这样定义的:持续集成是一种软件开发实践，即团队开发成员经常集成他们的工作，通常每个成员每天至少集成一次，也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建（包括编译，发布，自动化测试)来验证，从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题，让团队能够更快的开发内聚的软件。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;随着软件开发复杂度的不断提高，团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。尤其是敏捷开发（Agile） 在软件工程领域越来越红火，如何能再不断变化的需求中快速适应和保证软件的质量也显得尤其的重要。&lt;br&gt;持续集成正是针对这一类问题的一种软件开发实践。&lt;/p&gt;</summary>
    
    
    
    <category term="tech" scheme="https://wuyanxin.com/cate/tech/"/>
    
    
    <category term="CI" scheme="https://wuyanxin.com/tags/CI/"/>
    
    <category term="jenkins" scheme="https://wuyanxin.com/tags/jenkins/"/>
    
    <category term="node.js" scheme="https://wuyanxin.com/tags/node-js/"/>
    
  </entry>
  
  <entry>
    <title>WebStorm ES6 语法支持设置</title>
    <link href="https://wuyanxin.com/post/webstorm-es6-support.html"/>
    <id>https://wuyanxin.com/post/webstorm-es6-support.html</id>
    <published>2015-09-10T16:00:00.000Z</published>
    <updated>2022-02-25T11:52:53.228Z</updated>
    
    
    <summary type="html">&lt;p&gt;ECMAScript 6是JavaScript语言的下一代标准，已经在2015年6月正式发布了。Mozilla公司将在这个标准的基础上，推出JavaScript 2.0。&lt;br&gt;ES6的目标，是使得JavaScript语言可以用来编写大型的复杂的应用程序，成为企业级开发语言。&lt;/p&gt;
&lt;p&gt;作为一只猴子，我也想尝试一下ES6有什么新特性，于是开始了学习之路。&lt;/p&gt;
&lt;p&gt;在webstorm写下了这段代码，体验一下ES6语法的便利，但是一大堆报错&lt;/p&gt;</summary>
    
    
    
    <category term="tech" scheme="https://wuyanxin.com/cate/tech/"/>
    
    
    <category term="IDE" scheme="https://wuyanxin.com/tags/IDE/"/>
    
    <category term="ES6" scheme="https://wuyanxin.com/tags/ES6/"/>
    
  </entry>
  
  <entry>
    <title>socket.io+express多房间聊天应用</title>
    <link href="https://wuyanxin.com/post/socket-io-express-multi-room.html"/>
    <id>https://wuyanxin.com/post/socket-io-express-multi-room.html</id>
    <published>2015-08-12T16:00:00.000Z</published>
    <updated>2022-02-25T11:52:53.228Z</updated>
    
    
    <summary type="html">&lt;h3 id=&quot;socket-io简介&quot;&gt;&lt;a href=&quot;#socket-io简介&quot; class=&quot;headerlink&quot; title=&quot;socket.io简介&quot;&gt;&lt;/a&gt;socket.io简介&lt;/h3&gt;&lt;p&gt;Socket.IO是一个开源的WebSocket库，它通过Node.js实现WebSocket服务端，同时也提供客户端JS库。Socket.IO支持以事件为基础的实时双向通讯，它可以工作在任何平台、浏览器或移动设备。&lt;br&gt;Socket.IO支持4种协议：WebSocket、htmlfile、xhr-polling、jsonp-polling，它会自动根据浏览器选择适合的通讯方式，从而让开发者可以聚焦到功能的实现而不是平台的兼容性，同时Socket.IO具有不错的稳定性和性能。&lt;/p&gt;
&lt;h3 id=&quot;多房间聊天&quot;&gt;&lt;a href=&quot;#多房间聊天&quot; class=&quot;headerlink&quot; title=&quot;多房间聊天&quot;&gt;&lt;/a&gt;多房间聊天&lt;/h3&gt;&lt;p&gt;socket.io提供&lt;a href=&quot;http://socket.io/docs/rooms-and-namespaces/&quot;&gt;rooms和namespace的API&lt;/a&gt;&lt;br&gt;用rooms的API就可以实现多房间聊天了，总结出来无外乎就是：join/leave room 和 say to room&lt;/p&gt;</summary>
    
    
    
    <category term="tech" scheme="https://wuyanxin.com/cate/tech/"/>
    
    
    <category term="node.js" scheme="https://wuyanxin.com/tags/node-js/"/>
    
    <category term="websocket" scheme="https://wuyanxin.com/tags/websocket/"/>
    
    <category term="express" scheme="https://wuyanxin.com/tags/express/"/>
    
  </entry>
  
  <entry>
    <title>Redis简易入门教程</title>
    <link href="https://wuyanxin.com/post/redis-quick-start.html"/>
    <id>https://wuyanxin.com/post/redis-quick-start.html</id>
    <published>2015-07-13T16:00:00.000Z</published>
    <updated>2022-02-25T11:52:53.227Z</updated>
    
    
    <summary type="html">&lt;p&gt;&lt;img src=&quot;http://upload-images.jianshu.io/upload_images/436630-41d60a9cc51a685f.png&quot;&gt;&lt;/p&gt;
&lt;p&gt;#Redis入门&lt;/p&gt;
&lt;h3 id=&quot;简介&quot;&gt;&lt;a href=&quot;#简介&quot; class=&quot;headerlink&quot; title=&quot;简介&quot;&gt;&lt;/a&gt;简介&lt;/h3&gt;&lt;p&gt;Remote Dictionary Server (Redis)&lt;br&gt;Redis是一个开源的高性能键值对数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求，并借助许多高层级的接口使其可以胜任如缓存、队列系统等不同的角色。&lt;/p&gt;
&lt;p&gt;它跟memcached类似，不过数据可以持久化，而且支持的数据类型很丰富。&lt;/p&gt;
&lt;p&gt;截止到2015年6月27日，发布的最新稳定版本是3.0.2。&lt;br&gt;3.0版本最大的提升就是redis集群，一个分布式的redis示例具有数据自动分片和高容错性，以及在高负载的情况下的速度提升。&lt;/p&gt;</summary>
    
    
    
    <category term="tech" scheme="https://wuyanxin.com/cate/tech/"/>
    
    
    <category term="redis" scheme="https://wuyanxin.com/tags/redis/"/>
    
  </entry>
  
</feed>
