<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>blog.mengw.io</title><description>WMXPY 的自动 bug 工厂</description><link>https://blog.mengw.io/</link><language>zh-CN</language><item><title>你好，世界（又一次）</title><link>https://blog.mengw.io/zh-CN/posts/hello-world/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/hello-world/</guid><description>用 Astro 重启博客。还是同一个人，少一点形容词。</description><pubDate>Wed, 20 May 2026 00:00:00 GMT</pubDate><category>meta</category></item><item><title>重新思考怎么写文档</title><link>https://blog.mengw.io/zh-CN/posts/rethink-document-writing/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/rethink-document-writing/</guid><description>自动生成的文档之外，开源项目的文档还应该提供什么。</description><pubDate>Tue, 27 Oct 2020 00:00:00 GMT</pubDate><category>documentation</category><category>writing</category><category>open-source</category></item><item><title>Angular 和 .NET 的助记笔记</title><link>https://blog.mengw.io/zh-CN/posts/angular-dotnet-notes/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/angular-dotnet-notes/</guid><description>C# 多线程、JS / C# GC、TypeScript 类型小技巧、Angular 生命周期与依赖注入。</description><pubDate>Wed, 10 Apr 2019 00:00:00 GMT</pubDate><category>csharp</category><category>angular</category><category>typescript</category><category>notes</category></item><item><title>生成器与协程：从 spawn 到 async/await</title><link>https://blog.mengw.io/zh-CN/posts/generators-and-coroutines/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/generators-and-coroutines/</guid><description>生成器背后的无栈协程，以及 async/await 是怎么用生成器实现的。</description><pubDate>Tue, 09 Apr 2019 00:00:00 GMT</pubDate><category>javascript</category><category>generators</category><category>async</category></item><item><title>Redis 的单线程与速度</title><link>https://blog.mengw.io/zh-CN/posts/redis-single-thread/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/redis-single-thread/</guid><description>为什么 Redis 是单线程，但仍然能跑出十万级 QPS。</description><pubDate>Mon, 01 Apr 2019 00:00:00 GMT</pubDate><category>redis</category><category>performance</category></item><item><title>HTTP 怎么结束</title><link>https://blog.mengw.io/zh-CN/posts/http-end-of-story/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/http-end-of-story/</guid><description>HTTP 双换行结尾、Transfer-Encoding: chunked 的包格式，以及它们和文件系统 EOF 的类比。</description><pubDate>Sun, 31 Mar 2019 00:00:00 GMT</pubDate><category>http</category><category>networking</category></item><item><title>TypeScript 里提取函数参数类型</title><link>https://blog.mengw.io/zh-CN/posts/typescript-function-argument-types/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/typescript-function-argument-types/</guid><description>用 infer 提取函数的参数 / 返回值类型，以及它在 union 上的限制。</description><pubDate>Tue, 26 Mar 2019 00:00:00 GMT</pubDate><category>typescript</category><category>type-system</category></item><item><title>幂等性和副作用</title><link>https://blog.mengw.io/zh-CN/posts/idempotence-and-side-effects/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/idempotence-and-side-effects/</guid><description>用户狂点上传按钮该怎么处理——幂等 API 设计的思路。</description><pubDate>Fri, 22 Mar 2019 00:00:00 GMT</pubDate><category>api-design</category><category>http</category><category>rest</category></item><item><title>Python / ML / CV 助记笔记</title><link>https://blog.mengw.io/zh-CN/posts/python-ml-cv-notes/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/python-ml-cv-notes/</guid><description>Python、机器学习、CV 三块面试常问题目的助记整理。</description><pubDate>Thu, 21 Mar 2019 00:00:00 GMT</pubDate><category>python</category><category>machine-learning</category><category>computer-vision</category><category>notes</category></item><item><title>二叉搜索树</title><link>https://blog.mengw.io/zh-CN/posts/binary-search-tree/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/binary-search-tree/</guid><description>二叉搜索树的性质、操作复杂度、以及退化为链表的最坏情况。</description><pubDate>Tue, 19 Mar 2019 00:00:00 GMT</pubDate><category>data-structures</category><category>trees</category></item><item><title>HashMap 的冲突处理</title><link>https://blog.mengw.io/zh-CN/posts/hashmap-collisions/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/hashmap-collisions/</guid><description>Java HashMap 用链表处理散列冲突的实现思路。</description><pubDate>Mon, 18 Mar 2019 00:00:00 GMT</pubDate><category>data-structures</category><category>java</category></item><item><title>HTTP 协议版本回顾</title><link>https://blog.mengw.io/zh-CN/posts/http-versions/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/http-versions/</guid><description>HTTP 1.0/1.1 的差别、SPDY、HTTP 2 的多路复用 / 表头压缩 / 服务端推送，以及多路复用 vs 长连接。</description><pubDate>Sat, 16 Mar 2019 00:00:00 GMT</pubDate><category>http</category><category>networking</category></item><item><title>数组拉平：从递归到生成器</title><link>https://blog.mengw.io/zh-CN/posts/array-flatten-recursion-to-generators/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/array-flatten-recursion-to-generators/</guid><description>数组拉平问题的三种解法：递归、手写迭代器、生成器（yield*）。</description><pubDate>Thu, 14 Mar 2019 00:00:00 GMT</pubDate><category>javascript</category><category>generators</category><category>iterators</category></item><item><title>正经一点的云端 Web 架构</title><link>https://blog.mengw.io/zh-CN/posts/aws-web-architecture/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/aws-web-architecture/</guid><description>GCP vs AWS 的负载均衡器选型，加一个典型 Web 应用的部署示例。</description><pubDate>Tue, 12 Mar 2019 00:00:00 GMT</pubDate><category>cloud</category><category>architecture</category><category>aws</category><category>gcp</category></item><item><title>把 JS/TS 项目接入 Sonarqube</title><link>https://blog.mengw.io/zh-CN/posts/sonarqube-javascript/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/sonarqube-javascript/</guid><description>Sonarqube 的 Java 文档很多，JS/TS 这边要自己摸索。</description><pubDate>Thu, 07 Mar 2019 00:00:00 GMT</pubDate><category>javascript</category><category>tooling</category><category>qa</category></item><item><title>快速排序</title><link>https://blog.mengw.io/zh-CN/posts/quick-sort/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/quick-sort/</guid><description>TS 写一份原地快排，顺便解释 pivot 在左侧时为什么要从右开始遍历。</description><pubDate>Tue, 05 Mar 2019 00:00:00 GMT</pubDate><category>algorithms</category><category>sorting</category></item><item><title>动态规划</title><link>https://blog.mengw.io/zh-CN/posts/dynamic-programming/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/dynamic-programming/</guid><description>动态规划是什么、什么样的问题适合用它。</description><pubDate>Mon, 04 Mar 2019 00:00:00 GMT</pubDate><category>algorithms</category><category>dynamic-programming</category></item><item><title>Nginx 几个调优配置</title><link>https://blog.mengw.io/zh-CN/posts/nginx-tuning/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/nginx-tuning/</guid><description>几个用得上的 Nginx 调优项：worker、文件描述符上限、TCP 选项。</description><pubDate>Fri, 15 Feb 2019 00:00:00 GMT</pubDate><category>linux</category><category>nginx</category></item><item><title>JS 里怎么判断一个值是不是数组</title><link>https://blog.mengw.io/zh-CN/posts/is-array/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/is-array/</guid><description>Array.isArray、instanceof、Object.prototype.toString.call 的边界与选择。</description><pubDate>Sun, 09 Sep 2018 00:00:00 GMT</pubDate><category>javascript</category><category>types</category></item><item><title>Webpack 配置笔记</title><link>https://blog.mengw.io/zh-CN/posts/webpack-config-notes/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/webpack-config-notes/</guid><description>ghoti-cli 全静态 React 模板里踩过的几个 webpack 配置坑。</description><pubDate>Wed, 28 Mar 2018 00:00:00 GMT</pubDate><category>javascript</category><category>webpack</category></item><item><title>用 Nginx 反向代理 Node 服务</title><link>https://blog.mengw.io/zh-CN/posts/nginx-node-service/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/nginx-node-service/</guid><description>在 Linux 上把跑在其它端口的 Node 服务通过 Nginx 反向代理出去。</description><pubDate>Sat, 24 Mar 2018 00:00:00 GMT</pubDate><category>linux</category><category>nginx</category><category>node</category></item><item><title>新 Linux 服务器的安全加固</title><link>https://blog.mengw.io/zh-CN/posts/securing-new-linux-server/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/securing-new-linux-server/</guid><description>DigitalOcean Droplet 上手安全配置：非 root 用户、SSH 端口、密钥登录。</description><pubDate>Wed, 14 Mar 2018 00:00:00 GMT</pubDate><category>linux</category><category>security</category><category>ssh</category></item><item><title>Node 多进程：cluster 模块</title><link>https://blog.mengw.io/zh-CN/posts/multi-process-node/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/multi-process-node/</guid><description>用 cluster 让 Node 跑满多核。</description><pubDate>Thu, 07 Dec 2017 00:00:00 GMT</pubDate><category>node</category><category>concurrency</category></item><item><title>React Native 环境安装</title><link>https://blog.mengw.io/zh-CN/posts/react-native-install/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/react-native-install/</guid><description>Windows / Ubuntu / CentOS 上的 React Native 环境配置。</description><pubDate>Tue, 28 Nov 2017 00:00:00 GMT</pubDate><category>mobile</category><category>react-native</category><category>android</category></item><item><title>CentOS 安装清单</title><link>https://blog.mengw.io/zh-CN/posts/centos-install-guide/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/centos-install-guide/</guid><description>CentOS 上常用的几个安装命令。</description><pubDate>Tue, 17 Oct 2017 00:00:00 GMT</pubDate><category>linux</category><category>centos</category></item><item><title>缩短 JS：三元表达式</title><link>https://blog.mengw.io/zh-CN/posts/minify-ternary/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/minify-ternary/</guid><description>脚本语言体积也算成本——能用三元就用三元。</description><pubDate>Thu, 10 Aug 2017 00:00:00 GMT</pubDate><category>javascript</category><category>minification</category></item><item><title>嵌套对象里怎么访问外层属性</title><link>https://blog.mengw.io/zh-CN/posts/this-chained/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/this-chained/</guid><description>重构 caperjs 时绕过 this 链问题的一个记录。</description><pubDate>Wed, 09 Aug 2017 00:00:00 GMT</pubDate><category>javascript</category><category>scope</category></item><item><title>Windows 上装含原生依赖的 npm 包</title><link>https://blog.mengw.io/zh-CN/posts/native-deps-npm-on-windows/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/native-deps-npm-on-windows/</guid><description>Node 包里偶尔会有 C++/Python 编译的部分，Windows 上需要 windows-build-tools。</description><pubDate>Thu, 29 Jun 2017 00:00:00 GMT</pubDate><category>javascript</category><category>node</category><category>windows</category></item><item><title>Swift / WKWebView 图片上传踩坑</title><link>https://blog.mengw.io/zh-CN/posts/swift-wkwebview-photo-upload/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/swift-wkwebview-photo-upload/</guid><description>解决 iPhone WKWebView 上传图片时弹出选择 view 把 NavigationController 一起关掉的问题。</description><pubDate>Mon, 26 Jun 2017 00:00:00 GMT</pubDate><category>swift</category><category>ios</category><category>webview</category></item><item><title>混合 App 踩坑</title><link>https://blog.mengw.io/zh-CN/posts/hybrid-app-notes/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/hybrid-app-notes/</guid><description>做 hybrid app 时记下的一些 WebView 互通笔记。</description><pubDate>Fri, 23 Jun 2017 00:00:00 GMT</pubDate><category>mobile</category><category>hybrid</category><category>webview</category></item><item><title>PHPUnit 基本用法</title><link>https://blog.mengw.io/zh-CN/posts/phpunit-basic/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/phpunit-basic/</guid><description>PHPUnit 常见的 assertion 和一个简单的测试示例。</description><pubDate>Fri, 02 Jun 2017 00:00:00 GMT</pubDate><category>php</category><category>testing</category></item><item><title>Electron / Node / TS / Vue 的几个坑</title><link>https://blog.mengw.io/zh-CN/posts/electron-pit/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/electron-pit/</guid><description>做 UpgradeE 时记下的一些踩坑。</description><pubDate>Thu, 20 Apr 2017 00:00:00 GMT</pubDate><category>javascript</category><category>electron</category><category>node</category></item><item><title>JavaScript 的闭包与私有变量</title><link>https://blog.mengw.io/zh-CN/posts/closure-and-private/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/closure-and-private/</guid><description>用闭包在 JavaScript 里实现 private。</description><pubDate>Thu, 13 Apr 2017 00:00:00 GMT</pubDate><category>javascript</category><category>closures</category></item><item><title>用贝叶斯猜中文名性别</title><link>https://blog.mengw.io/zh-CN/posts/gender-by-name/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/gender-by-name/</guid><description>用贝叶斯公式从名字推测性别的小想法。</description><pubDate>Wed, 12 Apr 2017 00:00:00 GMT</pubDate><category>javascript</category><category>experiments</category></item><item><title>DN-02：前端杂记</title><link>https://blog.mengw.io/zh-CN/posts/dn-02/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/dn-02/</guid><description>随手记的前端零散笔记，第二篇。</description><pubDate>Mon, 03 Apr 2017 00:00:00 GMT</pubDate><category>javascript</category><category>frontend</category><category>notes</category></item><item><title>DN-01：前端杂记</title><link>https://blog.mengw.io/zh-CN/posts/dn-01/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/dn-01/</guid><description>随手记的前端零散笔记，第一篇。</description><pubDate>Fri, 17 Mar 2017 00:00:00 GMT</pubDate><category>javascript</category><category>frontend</category><category>notes</category></item><item><title>Review.md 项目笔记</title><link>https://blog.mengw.io/zh-CN/posts/reviewmd-stuff/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/reviewmd-stuff/</guid><description>写 Review.md 时积累的一些零散观察。</description><pubDate>Thu, 16 Mar 2017 00:00:00 GMT</pubDate><category>javascript</category><category>notes</category></item><item><title>Ubuntu 安装清单</title><link>https://blog.mengw.io/zh-CN/posts/ubuntu-install-guide/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/ubuntu-install-guide/</guid><description>Ubuntu 上常用的安装与清理命令，留着以备复制粘贴。</description><pubDate>Mon, 13 Mar 2017 00:00:00 GMT</pubDate><category>linux</category><category>ubuntu</category></item><item><title>ES6 笔记：let 和 const</title><link>https://blog.mengw.io/zh-CN/posts/es6-let-and-const/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/es6-let-and-const/</guid><description>参照阮一峰《ES6 入门》整理的笔记，本篇覆盖 let 和 const。</description><pubDate>Wed, 16 Nov 2016 00:00:00 GMT</pubDate><category>javascript</category><category>es6</category></item><item><title>Vue 笔记</title><link>https://blog.mengw.io/zh-CN/posts/vue-guide/</link><guid isPermaLink="true">https://blog.mengw.io/zh-CN/posts/vue-guide/</guid><description>学习 Vue 1.x 时的一些笔记。</description><pubDate>Sat, 14 May 2016 00:00:00 GMT</pubDate><category>javascript</category><category>vue</category></item></channel></rss>