<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>fengmk2</title>
<link>https://fengmk2.com</link>
<description>A simple blog of fengmk2: Node.js, JavaScript, performance and engineering notes.</description>
<lastBuildDate>Thu, 18 Jun 2026 14:22:06 GMT</lastBuildDate>
<language>zh-CN</language>
<atom:link href="https://fengmk2.com/feed.xml" rel="self" type="application/rss+xml" />
<item>
<title>让nodejs写的web应用接入微博用户登录</title>
<link>https://fengmk2.com/posts/how-to-add-oauth-for-weibo</link>
<guid>https://fengmk2.com/posts/how-to-add-oauth-for-weibo</guid>
<description>让nodejs写的web应用接入微博用户登录 Read the full post at https://fengmk2.com/posts/how-to-add-oauth-for-weibo.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/how-to-add-oauth-for-weibo.png" alt="让nodejs写的web应用接入微博用户登录" />
让nodejs写的web应用接入微博用户登录 Read the full post at https://fengmk2.com/posts/how-to-add-oauth-for-weibo.]]></content:encoded>
<pubDate>Wed, 22 Apr 2026 15:11:49 GMT</pubDate>
</item>
<item>
<title>Windows CLI Testing from macOS: Cross-Compilation + QEMU VM</title>
<link>https://fengmk2.com/posts/blog-qwin-windows-testing-on-macos</link>
<guid>https://fengmk2.com/posts/blog-qwin-windows-testing-on-macos</guid>
<description>How I set up a local Windows development and testing workflow on macOS for Vite+, using Rust cross-compilation and a QEMU-based Windows VM. Read the full post at https://fengmk2.com/posts/blog-qwin-windows-testing-on-macos.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/blog-qwin-windows-testing-on-macos.png" alt="Windows CLI Testing from macOS: Cross-Compilation + QEMU VM" />
How I set up a local Windows development and testing workflow on macOS for Vite+, using Rust cross-compilation and a QEMU-based Windows VM. Read the full post at https://fengmk2.com/posts/blog-qwin-windows-testing-on-macos.]]></content:encoded>
<pubDate>Thu, 01 Jan 2026 00:00:00 GMT</pubDate>
</item>
<item>
<title>cnpmcore 超大 JSON parse 性能优化</title>
<link>https://fengmk2.com/posts/cnpmcore-json-parse</link>
<guid>https://fengmk2.com/posts/cnpmcore-json-parse</guid>
<description>npmmirror registry 上偶尔会 CPU 狂飙一会，看日志发现这个时间段内有一个超多版本的 npm 包在同步，如 @primer/react。 最终发现这个 npm 包的 full manifests JSON 文件数据有 89MB，对它进行 JSON parse 后 Node.js… Read the full post at https://fengmk2.com/posts/cnpmcore-json-parse.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/cnpmcore-json-parse.png" alt="cnpmcore 超大 JSON parse 性能优化" />
npmmirror registry 上偶尔会 CPU 狂飙一会，看日志发现这个时间段内有一个超多版本的 npm 包在同步，如 @primer/react。 最终发现这个 npm 包的 full manifests JSON 文件数据有 89MB，对它进行 JSON parse 后 Node.js… Read the full post at https://fengmk2.com/posts/cnpmcore-json-parse.]]></content:encoded>
<pubDate>Wed, 01 Jan 2025 00:00:00 GMT</pubDate>
</item>
<item>
<title>基于 Postgres 实现一个 Job Queue</title>
<link>https://fengmk2.com/posts/job-queue-on-postgres</link>
<guid>https://fengmk2.com/posts/job-queue-on-postgres</guid>
<description>今天看到一篇赞美 Postgres 的文章：Postgres is Too Good (And Why That&apos;s Actually a Problem) ，显然是非常吸引眼球的，作者用 PG 实现了需要用到的所有微服务。 Read the full post at https://fengmk2.com/posts/job-queue-on-postgres.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/job-queue-on-postgres.png" alt="基于 Postgres 实现一个 Job Queue" />
今天看到一篇赞美 Postgres 的文章：Postgres is Too Good (And Why That's Actually a Problem) ，显然是非常吸引眼球的，作者用 PG 实现了需要用到的所有微服务。 Read the full post at https://fengmk2.com/posts/job-queue-on-postgres.]]></content:encoded>
<pubDate>Wed, 01 Jan 2025 00:00:00 GMT</pubDate>
</item>
<item>
<title>子进程的优雅退出</title>
<link>https://fengmk2.com/posts/graceful-process-exit</link>
<guid>https://fengmk2.com/posts/graceful-process-exit</guid>
<description>在做 egg-cluster 的时候，app worker 是由 cluster fork 出来的，然而 agent worker 是 master 通过 childprocess.fork 出来的。 他们两者之间在 master 正常退出的情况下，没太大区别。 Read the full post at https://fengmk2.com/posts/graceful-process-exit.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/graceful-process-exit.png" alt="子进程的优雅退出" />
在做 egg-cluster 的时候，app worker 是由 cluster fork 出来的，然而 agent worker 是 master 通过 childprocess.fork 出来的。 他们两者之间在 master 正常退出的情况下，没太大区别。 Read the full post at https://fengmk2.com/posts/graceful-process-exit.]]></content:encoded>
<pubDate>Sun, 01 Jan 2017 00:00:00 GMT</pubDate>
</item>
<item>
<title>Google Fonts 加速代理</title>
<link>https://fengmk2.com/posts/google-fonts-mirror</link>
<guid>https://fengmk2.com/posts/google-fonts-mirror</guid>
<description>如 https://fonts.googleapis.com/css?family=Lato:400,700|Source+Code+Pro:400,500 Read the full post at https://fengmk2.com/posts/google-fonts-mirror.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/google-fonts-mirror.png" alt="Google Fonts 加速代理" />
如 https://fonts.googleapis.com/css?family=Lato:400,700|Source+Code+Pro:400,500 Read the full post at https://fengmk2.com/posts/google-fonts-mirror.]]></content:encoded>
<pubDate>Fri, 01 Jan 2016 00:00:00 GMT</pubDate>
</item>
<item>
<title>我是如何发布一个 npm 包的</title>
<link>https://fengmk2.com/posts/how-i-publish-a-npm-package</link>
<guid>https://fengmk2.com/posts/how-i-publish-a-npm-package</guid>
<description>我是如何发布一个 npm 包的 Read the full post at https://fengmk2.com/posts/how-i-publish-a-npm-package.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/how-i-publish-a-npm-package.png" alt="我是如何发布一个 npm 包的" />
我是如何发布一个 npm 包的 Read the full post at https://fengmk2.com/posts/how-i-publish-a-npm-package.]]></content:encoded>
<pubDate>Fri, 01 Jan 2016 00:00:00 GMT</pubDate>
</item>
<item>
<title>React，Redux 和他们的小伙伴们</title>
<link>https://fengmk2.com/posts/react-redux-and-their-friends</link>
<guid>https://fengmk2.com/posts/react-redux-and-their-friends</guid>
<description>React，Redux 和他们的小伙伴们 Read the full post at https://fengmk2.com/posts/react-redux-and-their-friends.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/react-redux-and-their-friends.png" alt="React，Redux 和他们的小伙伴们" />
React，Redux 和他们的小伙伴们 Read the full post at https://fengmk2.com/posts/react-redux-and-their-friends.]]></content:encoded>
<pubDate>Fri, 01 Jan 2016 00:00:00 GMT</pubDate>
</item>
<item>
<title>`cluster` code coverage with istanbul</title>
<link>https://fengmk2.com/posts/cluster-coverage</link>
<guid>https://fengmk2.com/posts/cluster-coverage</guid>
<description>[istanbul] is already supported Multiple Process Coverage. Read the full post at https://fengmk2.com/posts/cluster-coverage.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/cluster-coverage.png" alt="`cluster` code coverage with istanbul" />
[istanbul] is already supported Multiple Process Coverage. Read the full post at https://fengmk2.com/posts/cluster-coverage.]]></content:encoded>
<pubDate>Thu, 01 Jan 2015 00:00:00 GMT</pubDate>
</item>
<item>
<title>Why co use too many memory</title>
<link>https://fengmk2.com/posts/co-memory</link>
<guid>https://fengmk2.com/posts/co-memory</guid>
<description>Why co use too many memory Read the full post at https://fengmk2.com/posts/co-memory.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/co-memory.png" alt="Why co use too many memory" />
Why co use too many memory Read the full post at https://fengmk2.com/posts/co-memory.]]></content:encoded>
<pubDate>Thu, 01 Jan 2015 00:00:00 GMT</pubDate>
</item>
<item>
<title>自定义错误</title>
<link>https://fengmk2.com/posts/custom-error</link>
<guid>https://fengmk2.com/posts/custom-error</guid>
<description>大部分情况，我们都是直接 new Error(&apos;foo&apos;) 来创建一个异常，然后为了有区分度， 通常会改变它的 name: Read the full post at https://fengmk2.com/posts/custom-error.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/custom-error.png" alt="自定义错误" />
大部分情况，我们都是直接 new Error('foo') 来创建一个异常，然后为了有区分度， 通常会改变它的 name: Read the full post at https://fengmk2.com/posts/custom-error.]]></content:encoded>
<pubDate>Thu, 01 Jan 2015 00:00:00 GMT</pubDate>
</item>
<item>
<title>使用 coffee 来测试 cli 命令行工具</title>
<link>https://fengmk2.com/posts/test-cli-with-coffee</link>
<guid>https://fengmk2.com/posts/test-cli-with-coffee</guid>
<description>npm 团队最近也在大力推广使用 node 来开发 cli 命令行工具，Building a simple command line tool with npm。 Read the full post at https://fengmk2.com/posts/test-cli-with-coffee.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/test-cli-with-coffee.png" alt="使用 coffee 来测试 cli 命令行工具" />
npm 团队最近也在大力推广使用 node 来开发 cli 命令行工具，Building a simple command line tool with npm。 Read the full post at https://fengmk2.com/posts/test-cli-with-coffee.]]></content:encoded>
<pubDate>Thu, 01 Jan 2015 00:00:00 GMT</pubDate>
</item>
<item>
<title>SQL to Sequelize Mapping Chart</title>
<link>https://fengmk2.com/posts/sql-to-sequelize-mapping-chart</link>
<guid>https://fengmk2.com/posts/sql-to-sequelize-mapping-chart</guid>
<description>I like SQL to MongoDB Mapping Chart post, so I create the same chart between SQL and [Sequelize]. Read the full post at https://fengmk2.com/posts/sql-to-sequelize-mapping-chart.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/sql-to-sequelize-mapping-chart.png" alt="SQL to Sequelize Mapping Chart" />
I like SQL to MongoDB Mapping Chart post, so I create the same chart between SQL and [Sequelize]. Read the full post at https://fengmk2.com/posts/sql-to-sequelize-mapping-chart.]]></content:encoded>
<pubDate>Wed, 01 Oct 2014 00:00:00 GMT</pubDate>
</item>
<item>
<title>Nodejs asynchronous programming bring &quot;Accidental complexity&quot; : Nodejs异步编程带来的意外复杂性</title>
<link>https://fengmk2.com/posts/accidental-complexity</link>
<guid>https://fengmk2.com/posts/accidental-complexity</guid>
<description>参考原文: What&apos;s missing from NodeJS Read the full post at https://fengmk2.com/posts/accidental-complexity.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/accidental-complexity.png" alt="Nodejs asynchronous programming bring &quot;Accidental complexity&quot; : Nodejs异步编程带来的意外复杂性" />
参考原文: What's missing from NodeJS Read the full post at https://fengmk2.com/posts/accidental-complexity.]]></content:encoded>
<pubDate>Wed, 06 Aug 2014 03:19:24 GMT</pubDate>
</item>
<item>
<title>weibo appkey</title>
<link>https://fengmk2.com/posts/appkey</link>
<guid>https://fengmk2.com/posts/appkey</guid>
<description>come from http://bbs.ysrh.com/read.php?tid=241 Read the full post at https://fengmk2.com/posts/appkey.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/appkey.png" alt="weibo appkey" />
come from http://bbs.ysrh.com/read.php?tid=241 Read the full post at https://fengmk2.com/posts/appkey.]]></content:encoded>
<pubDate>Wed, 06 Aug 2014 03:19:24 GMT</pubDate>
</item>
<item>
<title>CSRF(Cross Site Request Forgery protection) for Express</title>
<link>https://fengmk2.com/posts/express-csrf</link>
<guid>https://fengmk2.com/posts/express-csrf</guid>
<description>The CSRF Read the full post at https://fengmk2.com/posts/express-csrf.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/express-csrf.png" alt="CSRF(Cross Site Request Forgery protection) for Express" />
The CSRF Read the full post at https://fengmk2.com/posts/express-csrf.]]></content:encoded>
<pubDate>Wed, 06 Aug 2014 03:19:24 GMT</pubDate>
</item>
<item>
<title>Nodejs &quot;Hello world&quot; benchmark</title>
<link>https://fengmk2.com/posts/helloworld-benchmark</link>
<guid>https://fengmk2.com/posts/helloworld-benchmark</guid>
<description>本文将记录 nodejs 历史更新中所有版本的hello world性能测试。 Read the full post at https://fengmk2.com/posts/helloworld-benchmark.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/helloworld-benchmark.png" alt="Nodejs &quot;Hello world&quot; benchmark" />
本文将记录 nodejs 历史更新中所有版本的hello world性能测试。 Read the full post at https://fengmk2.com/posts/helloworld-benchmark.]]></content:encoded>
<pubDate>Wed, 06 Aug 2014 03:19:24 GMT</pubDate>
</item>
<item>
<title>Mongoose 介绍和使用</title>
<link>https://fengmk2.com/posts/how-to-use-mongoose</link>
<guid>https://fengmk2.com/posts/how-to-use-mongoose</guid>
<description>Mongoose is a MongoDB object modeling tool designed to work in an asychronous environment. Read the full post at https://fengmk2.com/posts/how-to-use-mongoose.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/how-to-use-mongoose.png" alt="Mongoose 介绍和使用" />
Mongoose is a MongoDB object modeling tool designed to work in an asychronous environment. Read the full post at https://fengmk2.com/posts/how-to-use-mongoose.]]></content:encoded>
<pubDate>Wed, 06 Aug 2014 03:19:24 GMT</pubDate>
</item>
<item>
<title>Indexed Cache</title>
<link>https://fengmk2.com/posts/icache</link>
<guid>https://fengmk2.com/posts/icache</guid>
<description>To store key value datas. Only two buffer: index and data Read the full post at https://fengmk2.com/posts/icache.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/icache.png" alt="Indexed Cache" />
To store key value datas. Only two buffer: index and data Read the full post at https://fengmk2.com/posts/icache.]]></content:encoded>
<pubDate>Wed, 06 Aug 2014 03:19:24 GMT</pubDate>
</item>
<item>
<title>Javascript Programming Style</title>
<link>https://fengmk2.com/posts/javascript-programming-style</link>
<guid>https://fengmk2.com/posts/javascript-programming-style</guid>
<description>好的编程风格有助于写出质量更高, 错误更少, 更易于维护的程序. Read the full post at https://fengmk2.com/posts/javascript-programming-style.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/javascript-programming-style.png" alt="Javascript Programming Style" />
好的编程风格有助于写出质量更高, 错误更少, 更易于维护的程序. Read the full post at https://fengmk2.com/posts/javascript-programming-style.]]></content:encoded>
<pubDate>Wed, 06 Aug 2014 03:19:24 GMT</pubDate>
</item>
<item>
<title>目前已知的Node APP Engine</title>
<link>https://fengmk2.com/posts/nae</link>
<guid>https://fengmk2.com/posts/nae</guid>
<description>https://github.com/joyent/node/wiki/hosting Read the full post at https://fengmk2.com/posts/nae.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/nae.png" alt="目前已知的Node APP Engine" />
https://github.com/joyent/node/wiki/hosting Read the full post at https://fengmk2.com/posts/nae.]]></content:encoded>
<pubDate>Wed, 06 Aug 2014 03:19:24 GMT</pubDate>
</item>
<item>
<title>目前使用Nodejs开发的应用</title>
<link>https://fengmk2.com/posts/node-apps</link>
<guid>https://fengmk2.com/posts/node-apps</guid>
<description>https://github.com/joyent/node/wiki/Projects,-Applications,-and-Companies-Using-Node Read the full post at https://fengmk2.com/posts/node-apps.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/node-apps.png" alt="目前使用Nodejs开发的应用" />
https://github.com/joyent/node/wiki/Projects,-Applications,-and-Companies-Using-Node Read the full post at https://fengmk2.com/posts/node-apps.]]></content:encoded>
<pubDate>Wed, 06 Aug 2014 03:19:24 GMT</pubDate>
</item>
<item>
<title>Nodejs 离线文档下载</title>
<link>https://fengmk2.com/posts/nodejs-doc-zip</link>
<guid>https://fengmk2.com/posts/nodejs-doc-zip</guid>
<description>本文收集我个人编译的一些离线文档 Read the full post at https://fengmk2.com/posts/nodejs-doc-zip.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/nodejs-doc-zip.png" alt="Nodejs 离线文档下载" />
本文收集我个人编译的一些离线文档 Read the full post at https://fengmk2.com/posts/nodejs-doc-zip.]]></content:encoded>
<pubDate>Wed, 06 Aug 2014 03:19:24 GMT</pubDate>
</item>
<item>
<title>[nodejs]Buffer vs String</title>
<link>https://fengmk2.com/posts/string-buffer-benchmark</link>
<guid>https://fengmk2.com/posts/string-buffer-benchmark</guid>
<description>按nodejs官方的文档说明，使用Buffer操作字节流通常会比转化成String要高效。 实际情况全都是这样的吗？ 本文通过一个简单的解析HTTP Request Header实例来解开此疑问。 Read the full post at https://fengmk2.com/posts/string-buffer-benchmark.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/string-buffer-benchmark.png" alt="[nodejs]Buffer vs String" />
按nodejs官方的文档说明，使用Buffer操作字节流通常会比转化成String要高效。 实际情况全都是这样的吗？ 本文通过一个简单的解析HTTP Request Header实例来解开此疑问。 Read the full post at https://fengmk2.com/posts/string-buffer-benchmark.]]></content:encoded>
<pubDate>Wed, 06 Aug 2014 03:19:24 GMT</pubDate>
</item>
<item>
<title>vi Learn on the road</title>
<link>https://fengmk2.com/posts/vi-study</link>
<guid>https://fengmk2.com/posts/vi-study</guid>
<description>set expandtab set tabstop=4 set shiftwidth=4 set nonumber set smarttab Read the full post at https://fengmk2.com/posts/vi-study.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/vi-study.png" alt="vi Learn on the road" />
set expandtab set tabstop=4 set shiftwidth=4 set nonumber set smarttab Read the full post at https://fengmk2.com/posts/vi-study.]]></content:encoded>
<pubDate>Wed, 06 Aug 2014 03:19:24 GMT</pubDate>
</item>
<item>
<title>[co](https://npm.taobao.org/package/co) 常见使用场景</title>
<link>https://fengmk2.com/posts/co-usage</link>
<guid>https://fengmk2.com/posts/co-usage</guid>
<description>使用 co-defer Read the full post at https://fengmk2.com/posts/co-usage.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/co-usage.png" alt="[co](https://npm.taobao.org/package/co) 常见使用场景" />
使用 co-defer Read the full post at https://fengmk2.com/posts/co-usage.]]></content:encoded>
<pubDate>Tue, 01 Jul 2014 00:00:00 GMT</pubDate>
</item>
<item>
<title>配置 Windows 下的 nodejs C++ 模块编译环境</title>
<link>https://fengmk2.com/posts/node-gyp-cpp-build-env</link>
<guid>https://fengmk2.com/posts/node-gyp-cpp-build-env</guid>
<description>根据 node-gyp 指示的 Windows 编译环境说明, 简单一句话就是 &quot;Python + VC++ 编译环境&quot;. Read the full post at https://fengmk2.com/posts/node-gyp-cpp-build-env.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/node-gyp-cpp-build-env.png" alt="配置 Windows 下的 nodejs C++ 模块编译环境" />
根据 node-gyp 指示的 Windows 编译环境说明, 简单一句话就是 "Python + VC++ 编译环境". Read the full post at https://fengmk2.com/posts/node-gyp-cpp-build-env.]]></content:encoded>
<pubDate>Tue, 01 Jul 2014 00:00:00 GMT</pubDate>
</item>
<item>
<title>node.js 代码的 cpu 可视化分析方法</title>
<link>https://fengmk2.com/posts/visulise-cpu-profiler-nodejs</link>
<guid>https://fengmk2.com/posts/visulise-cpu-profiler-nodejs</guid>
<description>[chrome-cpu-profiler]: https://github.com/tomgco/chrome-cpu-profiler Read the full post at https://fengmk2.com/posts/visulise-cpu-profiler-nodejs.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/visulise-cpu-profiler-nodejs.png" alt="node.js 代码的 cpu 可视化分析方法" />
[chrome-cpu-profiler]: https://github.com/tomgco/chrome-cpu-profiler Read the full post at https://fengmk2.com/posts/visulise-cpu-profiler-nodejs.]]></content:encoded>
<pubDate>Tue, 01 Jul 2014 00:00:00 GMT</pubDate>
</item>
<item>
<title>Use [koa-csrf] in high performance way</title>
<link>https://fengmk2.com/posts/use-koa-csrf-high-performance-way</link>
<guid>https://fengmk2.com/posts/use-koa-csrf-high-performance-way</guid>
<description>If you&apos;re using [koa-csrf] in default middleware way, it will kill your app performance. Read the full post at https://fengmk2.com/posts/use-koa-csrf-high-performance-way.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/use-koa-csrf-high-performance-way.png" alt="Use [koa-csrf] in high performance way" />
If you're using [koa-csrf] in default middleware way, it will kill your app performance. Read the full post at https://fengmk2.com/posts/use-koa-csrf-high-performance-way.]]></content:encoded>
<pubDate>Sun, 01 Jun 2014 00:00:00 GMT</pubDate>
</item>
<item>
<title>Use istanbul test coverage on koa</title>
<link>https://fengmk2.com/posts/istanbul</link>
<guid>https://fengmk2.com/posts/istanbul</guid>
<description>Recently, I wrote some koa middlewares: koa-gzip, koa-fresh, and I want to do test coverage with my favorite module: blanket. Read the full post at https://fengmk2.com/posts/istanbul.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/istanbul.png" alt="Use istanbul test coverage on koa" />
Recently, I wrote some koa middlewares: koa-gzip, koa-fresh, and I want to do test coverage with my favorite module: blanket. Read the full post at https://fengmk2.com/posts/istanbul.]]></content:encoded>
<pubDate>Sat, 01 Mar 2014 00:00:00 GMT</pubDate>
</item>
<item>
<title>Hello koa, good bye connect</title>
<link>https://fengmk2.com/posts/koa-vs-connect</link>
<guid>https://fengmk2.com/posts/koa-vs-connect</guid>
<description>这是我在没有遇到 co 和 koa 之前, 一直写的业务逻辑代码. 基于事件机制, 虽然能很好地解决 callback hells, 但是让另外一个人看懂业务逻辑, 不是一件简单的事情. Read the full post at https://fengmk2.com/posts/koa-vs-connect.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/koa-vs-connect.png" alt="Hello koa, good bye connect" />
这是我在没有遇到 co 和 koa 之前, 一直写的业务逻辑代码. 基于事件机制, 虽然能很好地解决 callback hells, 但是让另外一个人看懂业务逻辑, 不是一件简单的事情. Read the full post at https://fengmk2.com/posts/koa-vs-connect.]]></content:encoded>
<pubDate>Sat, 01 Mar 2014 00:00:00 GMT</pubDate>
</item>
<item>
<title>快速搭建 Node.js / io.js 开发环境以及加速 npm</title>
<link>https://fengmk2.com/posts/node-env-and-faster-npm</link>
<guid>https://fengmk2.com/posts/node-env-and-faster-npm</guid>
<description>在公交车上刷微博，还是有很多同学在咨询: Read the full post at https://fengmk2.com/posts/node-env-and-faster-npm.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/node-env-and-faster-npm.png" alt="快速搭建 Node.js / io.js 开发环境以及加速 npm" />
在公交车上刷微博，还是有很多同学在咨询: Read the full post at https://fengmk2.com/posts/node-env-and-faster-npm.]]></content:encoded>
<pubDate>Sat, 01 Mar 2014 00:00:00 GMT</pubDate>
</item>
<item>
<title>Node.js 处理 GBK 编码模板</title>
<link>https://fengmk2.com/posts/iconv-lite</link>
<guid>https://fengmk2.com/posts/iconv-lite</guid>
<description>如果你需要对非 UTF8 编码的文本进行处理，如 GBK 编码的，那么我们只有遵循以下原则处理就ok： Read the full post at https://fengmk2.com/posts/iconv-lite.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/iconv-lite.png" alt="Node.js 处理 GBK 编码模板" />
如果你需要对非 UTF8 编码的文本进行处理，如 GBK 编码的，那么我们只有遵循以下原则处理就ok： Read the full post at https://fengmk2.com/posts/iconv-lite.]]></content:encoded>
<pubDate>Wed, 01 Jan 2014 00:00:00 GMT</pubDate>
</item>
<item>
<title>Use Blanket.js instead of jscover</title>
<link>https://fengmk2.com/posts/blanketjs-jscoverage</link>
<guid>https://fengmk2.com/posts/blanketjs-jscoverage</guid>
<description>在遇到 [Blanket.js] 之前，我一直使用这 [jscover] 来做代码覆盖率测试。 Read the full post at https://fengmk2.com/posts/blanketjs-jscoverage.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/blanketjs-jscoverage.png" alt="Use Blanket.js instead of jscover" />
在遇到 [Blanket.js] 之前，我一直使用这 [jscover] 来做代码覆盖率测试。 Read the full post at https://fengmk2.com/posts/blanketjs-jscoverage.]]></content:encoded>
<pubDate>Wed, 01 May 2013 00:00:00 GMT</pubDate>
</item>
<item>
<title>nodejs domain module hello world and benchmark</title>
<link>https://fengmk2.com/posts/domain-helloworld-benchmark</link>
<guid>https://fengmk2.com/posts/domain-helloworld-benchmark</guid>
<description>domain: Domains provide a way to handle multiple different IO operations as a single group. Read the full post at https://fengmk2.com/posts/domain-helloworld-benchmark.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/domain-helloworld-benchmark.png" alt="nodejs domain module hello world and benchmark" />
domain: Domains provide a way to handle multiple different IO operations as a single group. Read the full post at https://fengmk2.com/posts/domain-helloworld-benchmark.]]></content:encoded>
<pubDate>Fri, 01 Mar 2013 00:00:00 GMT</pubDate>
</item>
<item>
<title>私奔到taipei</title>
<link>https://fengmk2.com/posts/taipei</link>
<guid>https://fengmk2.com/posts/taipei</guid>
<description>早上8:30租车去机场 Read the full post at https://fengmk2.com/posts/taipei.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/taipei.png" alt="私奔到taipei" />
早上8:30租车去机场 Read the full post at https://fengmk2.com/posts/taipei.]]></content:encoded>
<pubDate>Fri, 01 Mar 2013 00:00:00 GMT</pubDate>
</item>
<item>
<title>Generate cobertura-xml report with mocha</title>
<link>https://fengmk2.com/posts/cobertura-xml-with-mocha</link>
<guid>https://fengmk2.com/posts/cobertura-xml-with-mocha</guid>
<description>Using mocha-cobertura-reporter module. Read the full post at https://fengmk2.com/posts/cobertura-xml-with-mocha.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/cobertura-xml-with-mocha.png" alt="Generate cobertura-xml report with mocha" />
Using mocha-cobertura-reporter module. Read the full post at https://fengmk2.com/posts/cobertura-xml-with-mocha.]]></content:encoded>
<pubDate>Fri, 01 Feb 2013 00:00:00 GMT</pubDate>
</item>
<item>
<title>Mou</title>
<link>https://fengmk2.com/posts/mou</link>
<guid>https://fengmk2.com/posts/mou</guid>
<description>Mou, the missing Markdown editor for web developers. Read the full post at https://fengmk2.com/posts/mou.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/mou.png" alt="Mou" />
Mou, the missing Markdown editor for web developers. Read the full post at https://fengmk2.com/posts/mou.]]></content:encoded>
<pubDate>Fri, 01 Feb 2013 00:00:00 GMT</pubDate>
</item>
<item>
<title>使用 connect-domain 捕获异步调用中出现的异常</title>
<link>https://fengmk2.com/posts/domain-module</link>
<guid>https://fengmk2.com/posts/domain-module</guid>
<description>之前经常有同学会问到怎么有些异常无法捕获到呢？ Read the full post at https://fengmk2.com/posts/domain-module.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/domain-module.png" alt="使用 connect-domain 捕获异步调用中出现的异常" />
之前经常有同学会问到怎么有些异常无法捕获到呢？ Read the full post at https://fengmk2.com/posts/domain-module.]]></content:encoded>
<pubDate>Sat, 01 Dec 2012 00:00:00 GMT</pubDate>
</item>
<item>
<title>沪JS 2012</title>
<link>https://fengmk2.com/posts/hujs</link>
<guid>https://fengmk2.com/posts/hujs</guid>
<description>沪JS 2012 Read the full post at https://fengmk2.com/posts/hujs.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/hujs.png" alt="沪JS 2012" />
沪JS 2012 Read the full post at https://fengmk2.com/posts/hujs.]]></content:encoded>
<pubDate>Sat, 01 Sep 2012 00:00:00 GMT</pubDate>
</item>
<item>
<title>编写nodejs的C++模块</title>
<link>https://fengmk2.com/posts/addons</link>
<guid>https://fengmk2.com/posts/addons</guid>
<description>nodejs提供了完善的插件机制（addons），让我们可以非常方便地调用C和C++库。 Read the full post at https://fengmk2.com/posts/addons.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/addons.png" alt="编写nodejs的C++模块" />
nodejs提供了完善的插件机制（addons），让我们可以非常方便地调用C和C++库。 Read the full post at https://fengmk2.com/posts/addons.]]></content:encoded>
<pubDate>Sun, 01 Jul 2012 00:00:00 GMT</pubDate>
</item>
<item>
<title>nodejs web项目结构</title>
<link>https://fengmk2.com/posts/nodejs-web-project-architecture</link>
<guid>https://fengmk2.com/posts/nodejs-web-project-architecture</guid>
<description>nodejs web项目结构 Read the full post at https://fengmk2.com/posts/nodejs-web-project-architecture.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/nodejs-web-project-architecture.png" alt="nodejs web项目结构" />
nodejs web项目结构 Read the full post at https://fengmk2.com/posts/nodejs-web-project-architecture.]]></content:encoded>
<pubDate>Sun, 01 Jul 2012 00:00:00 GMT</pubDate>
</item>
<item>
<title>jscoverage 必须指定encoding参数</title>
<link>https://fengmk2.com/posts/jscoverage-must-set-encoding</link>
<guid>https://fengmk2.com/posts/jscoverage-must-set-encoding</guid>
<description>由于代码越来越多，在进行代码覆盖测试的时候，经常出现jscoverage后的代码跑的测试不正确。 在排除各种干扰后发现，jscoverage对非ascii字符串转换不正确，导致test cases失败了。 Read the full post at https://fengmk2.com/posts/jscoverage-must-set-encoding.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/jscoverage-must-set-encoding.png" alt="jscoverage 必须指定encoding参数" />
由于代码越来越多，在进行代码覆盖测试的时候，经常出现jscoverage后的代码跑的测试不正确。 在排除各种干扰后发现，jscoverage对非ascii字符串转换不正确，导致test cases失败了。 Read the full post at https://fengmk2.com/posts/jscoverage-must-set-encoding.]]></content:encoded>
<pubDate>Fri, 01 Jun 2012 00:00:00 GMT</pubDate>
</item>
<item>
<title>给 connect 的 static 模块加上url路径前缀</title>
<link>https://fengmk2.com/posts/use-pre-for-connect-static-middleware</link>
<guid>https://fengmk2.com/posts/use-pre-for-connect-static-middleware</guid>
<description>估计我们使用 connect 都会很自然地按照官方的例子使用静态文件模块 static: Read the full post at https://fengmk2.com/posts/use-pre-for-connect-static-middleware.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/use-pre-for-connect-static-middleware.png" alt="给 connect 的 static 模块加上url路径前缀" />
估计我们使用 connect 都会很自然地按照官方的例子使用静态文件模块 static: Read the full post at https://fengmk2.com/posts/use-pre-for-connect-static-middleware.]]></content:encoded>
<pubDate>Fri, 01 Jun 2012 00:00:00 GMT</pubDate>
</item>
<item>
<title>使用 connect 进行web开发</title>
<link>https://fengmk2.com/posts/web-dev-using-connect</link>
<guid>https://fengmk2.com/posts/web-dev-using-connect</guid>
<description>nodejs的web开发，目前最受欢迎的必然是 [express]。 Read the full post at https://fengmk2.com/posts/web-dev-using-connect.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/web-dev-using-connect.png" alt="使用 connect 进行web开发" />
nodejs的web开发，目前最受欢迎的必然是 [express]。 Read the full post at https://fengmk2.com/posts/web-dev-using-connect.]]></content:encoded>
<pubDate>Fri, 01 Jun 2012 00:00:00 GMT</pubDate>
</item>
<item>
<title>参数传递导致的内存不被释放的问题</title>
<link>https://fengmk2.com/posts/function-memory-leak</link>
<guid>https://fengmk2.com/posts/function-memory-leak</guid>
<description>参数传递导致的内存不被释放的问题 Read the full post at https://fengmk2.com/posts/function-memory-leak.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/function-memory-leak.png" alt="参数传递导致的内存不被释放的问题" />
参数传递导致的内存不被释放的问题 Read the full post at https://fengmk2.com/posts/function-memory-leak.]]></content:encoded>
<pubDate>Tue, 01 May 2012 00:00:00 GMT</pubDate>
</item>
<item>
<title>使用nodejs解决phonegap开发期间的跨域问题</title>
<link>https://fengmk2.com/posts/phonegap-dev-env-cross-domain-with-nodejs</link>
<guid>https://fengmk2.com/posts/phonegap-dev-env-cross-domain-with-nodejs</guid>
<description>使用phonegap开发基于HTML5的iOS程序，应用程序需要访问额外的网络资源，就必然需要面对跨域访问的问题。 Read the full post at https://fengmk2.com/posts/phonegap-dev-env-cross-domain-with-nodejs.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/phonegap-dev-env-cross-domain-with-nodejs.png" alt="使用nodejs解决phonegap开发期间的跨域问题" />
使用phonegap开发基于HTML5的iOS程序，应用程序需要访问额外的网络资源，就必然需要面对跨域访问的问题。 Read the full post at https://fengmk2.com/posts/phonegap-dev-env-cross-domain-with-nodejs.]]></content:encoded>
<pubDate>Tue, 01 May 2012 00:00:00 GMT</pubDate>
</item>
<item>
<title>Duff&apos;&apos;s device 优化循环的性能测试</title>
<link>https://fengmk2.com/posts/duff-device-performance</link>
<guid>https://fengmk2.com/posts/duff-device-performance</guid>
<description>上周日在北京回杭州的飞机上，看《高性能JavaScript》的循环优化章节，了解到“Duff&apos;s device”这种搓而又惊奇的展开循环体的优化方法。 Read the full post at https://fengmk2.com/posts/duff-device-performance.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/duff-device-performance.png" alt="Duff&apos;&apos;s device 优化循环的性能测试" />
上周日在北京回杭州的飞机上，看《高性能JavaScript》的循环优化章节，了解到“Duff's device”这种搓而又惊奇的展开循环体的优化方法。 Read the full post at https://fengmk2.com/posts/duff-device-performance.]]></content:encoded>
<pubDate>Thu, 01 Mar 2012 00:00:00 GMT</pubDate>
</item>
<item>
<title>mocha + jscoverage</title>
<link>https://fengmk2.com/posts/mocha-with-jscoverage</link>
<guid>https://fengmk2.com/posts/mocha-with-jscoverage</guid>
<description>mocha在Release 0.13.0 已经支持 HTMLCov 和 JSONCov 两种reporter, 那么显然可以非常简便地将 jscoverage 整合到mocha中, 进行代码覆盖率测试了. Read the full post at https://fengmk2.com/posts/mocha-with-jscoverage.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/mocha-with-jscoverage.png" alt="mocha + jscoverage" />
mocha在Release 0.13.0 已经支持 HTMLCov 和 JSONCov 两种reporter, 那么显然可以非常简便地将 jscoverage 整合到mocha中, 进行代码覆盖率测试了. Read the full post at https://fengmk2.com/posts/mocha-with-jscoverage.]]></content:encoded>
<pubDate>Wed, 01 Feb 2012 00:00:00 GMT</pubDate>
</item>
<item>
<title>基于Mongodb的聚合框架解决博客系统的常见需求</title>
<link>https://fengmk2.com/posts/mongodb-aggregation-framework-solve-blog-post-comments</link>
<guid>https://fengmk2.com/posts/mongodb-aggregation-framework-solve-blog-post-comments</guid>
<description>使用mongodb + nodejs，可以非常快速地完成一个功能完整的博客系统。 常见的对文章的CRUD和评论的CRUD都能实现。 那么稍微复杂的评论聚合也能实现吗？ Read the full post at https://fengmk2.com/posts/mongodb-aggregation-framework-solve-blog-post-comments.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/mongodb-aggregation-framework-solve-blog-post-comments.png" alt="基于Mongodb的聚合框架解决博客系统的常见需求" />
使用mongodb + nodejs，可以非常快速地完成一个功能完整的博客系统。 常见的对文章的CRUD和评论的CRUD都能实现。 那么稍微复杂的评论聚合也能实现吗？ Read the full post at https://fengmk2.com/posts/mongodb-aggregation-framework-solve-blog-post-comments.]]></content:encoded>
<pubDate>Wed, 01 Feb 2012 00:00:00 GMT</pubDate>
</item>
<item>
<title>mongodb-replica-sets-using-mongoskin-in-nodejs</title>
<link>https://fengmk2.com/posts/mongodb-replica-sets-using-mongoskin-in-nodejs</link>
<guid>https://fengmk2.com/posts/mongodb-replica-sets-using-mongoskin-in-nodejs</guid>
<description>mongodb-replica-sets-using-mongoskin-in-nodejs Read the full post at https://fengmk2.com/posts/mongodb-replica-sets-using-mongoskin-in-nodejs.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/mongodb-replica-sets-using-mongoskin-in-nodejs.png" alt="mongodb-replica-sets-using-mongoskin-in-nodejs" />
mongodb-replica-sets-using-mongoskin-in-nodejs Read the full post at https://fengmk2.com/posts/mongodb-replica-sets-using-mongoskin-in-nodejs.]]></content:encoded>
<pubDate>Wed, 01 Feb 2012 00:00:00 GMT</pubDate>
</item>
<item>
<title>2011</title>
<link>https://fengmk2.com/posts/my-2011</link>
<guid>https://fengmk2.com/posts/my-2011</guid>
<description>2011，笑过，哭过，忙碌过，悠闲过。嗯，已经过去。 Read the full post at https://fengmk2.com/posts/my-2011.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/my-2011.png" alt="2011" />
2011，笑过，哭过，忙碌过，悠闲过。嗯，已经过去。 Read the full post at https://fengmk2.com/posts/my-2011.]]></content:encoded>
<pubDate>Sun, 15 Jan 2012 00:00:00 GMT</pubDate>
</item>
<item>
<title>Javascript绝句性能</title>
<link>https://fengmk2.com/posts/javascript-jueju-benchmark</link>
<guid>https://fengmk2.com/posts/javascript-jueju-benchmark</guid>
<description>前几天在微博中看到一篇叫Javascript绝句欣赏 的奇文。 里面很多绝句实现了我经常用到的功能需求。对比我自己之前的实现方式，我简直觉得自己搓死了。 Read the full post at https://fengmk2.com/posts/javascript-jueju-benchmark.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/javascript-jueju-benchmark.png" alt="Javascript绝句性能" />
前几天在微博中看到一篇叫Javascript绝句欣赏 的奇文。 里面很多绝句实现了我经常用到的功能需求。对比我自己之前的实现方式，我简直觉得自己搓死了。 Read the full post at https://fengmk2.com/posts/javascript-jueju-benchmark.]]></content:encoded>
<pubDate>Sun, 01 Jan 2012 00:00:00 GMT</pubDate>
</item>
<item>
<title>走了4个小时</title>
<link>https://fengmk2.com/posts/walking-4-hours</link>
<guid>https://fengmk2.com/posts/walking-4-hours</guid>
<description>最后还是无法骗过自己以为强大的内心。 点击进去看你转发的微博。 Read the full post at https://fengmk2.com/posts/walking-4-hours.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/walking-4-hours.png" alt="走了4个小时" />
最后还是无法骗过自己以为强大的内心。 点击进去看你转发的微博。 Read the full post at https://fengmk2.com/posts/walking-4-hours.]]></content:encoded>
<pubDate>Fri, 30 Dec 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>2011.12.19</title>
<link>https://fengmk2.com/posts/2011-12-19</link>
<guid>https://fengmk2.com/posts/2011-12-19</guid>
<description>我会成为一个好厉害的人。 Read the full post at https://fengmk2.com/posts/2011-12-19.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/2011-12-19.png" alt="2011.12.19" />
我会成为一个好厉害的人。 Read the full post at https://fengmk2.com/posts/2011-12-19.]]></content:encoded>
<pubDate>Mon, 19 Dec 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>杭州的冬天很冷</title>
<link>https://fengmk2.com/posts/cold-in-hangzhou</link>
<guid>https://fengmk2.com/posts/cold-in-hangzhou</guid>
<description>第一次在10度以下的地方生活这么长时间。 Read the full post at https://fengmk2.com/posts/cold-in-hangzhou.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/cold-in-hangzhou.png" alt="杭州的冬天很冷" />
第一次在10度以下的地方生活这么长时间。 Read the full post at https://fengmk2.com/posts/cold-in-hangzhou.]]></content:encoded>
<pubDate>Wed, 14 Dec 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>关于__proto__的链式记忆</title>
<link>https://fengmk2.com/posts/about-proto</link>
<guid>https://fengmk2.com/posts/about-proto</guid>
<description>function Foo() {}; Read the full post at https://fengmk2.com/posts/about-proto.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/about-proto.png" alt="关于__proto__的链式记忆" />
function Foo() {}; Read the full post at https://fengmk2.com/posts/about-proto.]]></content:encoded>
<pubDate>Tue, 01 Nov 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>Buffer性能测试</title>
<link>https://fengmk2.com/posts/buffer-performance</link>
<guid>https://fengmk2.com/posts/buffer-performance</guid>
<description>Buffer性能测试 Read the full post at https://fengmk2.com/posts/buffer-performance.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/buffer-performance.png" alt="Buffer性能测试" />
Buffer性能测试 Read the full post at https://fengmk2.com/posts/buffer-performance.]]></content:encoded>
<pubDate>Tue, 01 Nov 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>[nodejs]保证你的程序死了还能复活：forever and forever webui</title>
<link>https://fengmk2.com/posts/forever-webui</link>
<guid>https://fengmk2.com/posts/forever-webui</guid>
<description>A simple CLI tool for ensuring that a given script runs continuously (i.e. forever). 一个非常简单的CLI工具，让你的程序持续运行。 Read the full post at https://fengmk2.com/posts/forever-webui.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/forever-webui.png" alt="[nodejs]保证你的程序死了还能复活：forever and forever webui" />
A simple CLI tool for ensuring that a given script runs continuously (i.e. forever). 一个非常简单的CLI工具，让你的程序持续运行。 Read the full post at https://fengmk2.com/posts/forever-webui.]]></content:encoded>
<pubDate>Tue, 01 Nov 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>让你的搜索出现在Chrome地址栏智能搜索中</title>
<link>https://fengmk2.com/posts/let-your-search-use-in-chrome</link>
<guid>https://fengmk2.com/posts/let-your-search-use-in-chrome</guid>
<description>很炫对吧！ Read the full post at https://fengmk2.com/posts/let-your-search-use-in-chrome.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/let-your-search-use-in-chrome.png" alt="让你的搜索出现在Chrome地址栏智能搜索中" />
很炫对吧！ Read the full post at https://fengmk2.com/posts/let-your-search-use-in-chrome.]]></content:encoded>
<pubDate>Tue, 01 Nov 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>27岁的生日</title>
<link>https://fengmk2.com/posts/birthday-27th</link>
<guid>https://fengmk2.com/posts/birthday-27th</guid>
<description>at 2011年10月24日 01:49 Read the full post at https://fengmk2.com/posts/birthday-27th.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/birthday-27th.png" alt="27岁的生日" />
at 2011年10月24日 01:49 Read the full post at https://fengmk2.com/posts/birthday-27th.]]></content:encoded>
<pubDate>Sat, 01 Oct 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>漆黑一片</title>
<link>https://fengmk2.com/posts/black-space</link>
<guid>https://fengmk2.com/posts/black-space</guid>
<description>at 2011年08月01日 02:28 Read the full post at https://fengmk2.com/posts/black-space.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/black-space.png" alt="漆黑一片" />
at 2011年08月01日 02:28 Read the full post at https://fengmk2.com/posts/black-space.]]></content:encoded>
<pubDate>Mon, 01 Aug 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>在jQuery 1.5+ 的jqXHR上监听文件上传进度(xhr.upload)</title>
<link>https://fengmk2.com/posts/jqxhr-upload-progress</link>
<guid>https://fengmk2.com/posts/jqxhr-upload-progress</guid>
<description>在Firefox, Google Chrome and Safari中，如果通过XMLHttpRequest上传文件， 是可以通过监听XMLHttpRequest.upload对象的progress事件来查看进度的。 Read the full post at https://fengmk2.com/posts/jqxhr-upload-progress.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/jqxhr-upload-progress.png" alt="在jQuery 1.5+ 的jqXHR上监听文件上传进度(xhr.upload)" />
在Firefox, Google Chrome and Safari中，如果通过XMLHttpRequest上传文件， 是可以通过监听XMLHttpRequest.upload对象的progress事件来查看进度的。 Read the full post at https://fengmk2.com/posts/jqxhr-upload-progress.]]></content:encoded>
<pubDate>Mon, 01 Aug 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>Nodejs HTTP请求的超时处理 Nodejs HTTP Client Request Timeout Handle</title>
<link>https://fengmk2.com/posts/nodejs-http-request-timeout</link>
<guid>https://fengmk2.com/posts/nodejs-http-request-timeout</guid>
<description>Nodejs原生的http.request 方法是不支持设置超时参数的， 而网络请求经常会遇到超时的情况，特别是对于外部网络，如果不处理超时，发起的请求将会一直卡主，消耗的系统资源也不能及时被释放。 Read the full post at https://fengmk2.com/posts/nodejs-http-request-timeout.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/nodejs-http-request-timeout.png" alt="Nodejs HTTP请求的超时处理 Nodejs HTTP Client Request Timeout Handle" />
Nodejs原生的http.request 方法是不支持设置超时参数的， 而网络请求经常会遇到超时的情况，特别是对于外部网络，如果不处理超时，发起的请求将会一直卡主，消耗的系统资源也不能及时被释放。 Read the full post at https://fengmk2.com/posts/nodejs-http-request-timeout.]]></content:encoded>
<pubDate>Mon, 01 Aug 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>nodejs读写大文件</title>
<link>https://fengmk2.com/posts/read-and-write-big-file</link>
<guid>https://fengmk2.com/posts/read-and-write-big-file</guid>
<description>大文件读写操作，由于内存限制问题，不要直接使用fs.readFile 和 fs.writeFile。 必须使用fs.ReadStream 和 fs.WriteStream 来对文件进行读写操作。 Read the full post at https://fengmk2.com/posts/read-and-write-big-file.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/read-and-write-big-file.png" alt="nodejs读写大文件" />
大文件读写操作，由于内存限制问题，不要直接使用fs.readFile 和 fs.writeFile。 必须使用fs.ReadStream 和 fs.WriteStream 来对文件进行读写操作。 Read the full post at https://fengmk2.com/posts/read-and-write-big-file.]]></content:encoded>
<pubDate>Mon, 01 Aug 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>关于Nodejs中Buffer释放的二三事</title>
<link>https://fengmk2.com/posts/buffer-for-freedom-in-nodejs</link>
<guid>https://fengmk2.com/posts/buffer-for-freedom-in-nodejs</guid>
<description>为了看看这个问题，我写了一段测试代码 Read the full post at https://fengmk2.com/posts/buffer-for-freedom-in-nodejs.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/buffer-for-freedom-in-nodejs.png" alt="关于Nodejs中Buffer释放的二三事" />
为了看看这个问题，我写了一段测试代码 Read the full post at https://fengmk2.com/posts/buffer-for-freedom-in-nodejs.]]></content:encoded>
<pubDate>Fri, 01 Jul 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>Callback again again and again in Nodejs</title>
<link>https://fengmk2.com/posts/callback-and-callback-and-callback</link>
<guid>https://fengmk2.com/posts/callback-and-callback-and-callback</guid>
<description>优点 Read the full post at https://fengmk2.com/posts/callback-and-callback-and-callback.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/callback-and-callback-and-callback.png" alt="Callback again again and again in Nodejs" />
优点 Read the full post at https://fengmk2.com/posts/callback-and-callback-and-callback.]]></content:encoded>
<pubDate>Fri, 01 Jul 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>nodejs web开发入门: Simple-TODO Nodejs 实现版</title>
<link>https://fengmk2.com/posts/simple-todo</link>
<guid>https://fengmk2.com/posts/simple-todo</guid>
<description>看到simple todo的各种python版本实现, 我也来凑凑热闹... 既然已经有这么多python版本了, 我就对比实现了一个Simple-TODO的nodejs版本: Node TODO, 模版和樣式全部copy自web.py版本. Read the full post at https://fengmk2.com/posts/simple-todo.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/simple-todo.png" alt="nodejs web开发入门: Simple-TODO Nodejs 实现版" />
看到simple todo的各种python版本实现, 我也来凑凑热闹... 既然已经有这么多python版本了, 我就对比实现了一个Simple-TODO的nodejs版本: Node TODO, 模版和樣式全部copy自web.py版本. Read the full post at https://fengmk2.com/posts/simple-todo.]]></content:encoded>
<pubDate>Fri, 01 Jul 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>为什么要使用prototype.__proto__</title>
<link>https://fengmk2.com/posts/why-use-prototype-proto</link>
<guid>https://fengmk2.com/posts/why-use-prototype-proto</guid>
<description>希望本文对你有用 ^^ Server.prototype.proto = net.Server.prototype Read the full post at https://fengmk2.com/posts/why-use-prototype-proto.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/why-use-prototype-proto.png" alt="为什么要使用prototype.__proto__" />
希望本文对你有用 ^^ Server.prototype.proto = net.Server.prototype Read the full post at https://fengmk2.com/posts/why-use-prototype-proto.]]></content:encoded>
<pubDate>Wed, 01 Jun 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>在Chrome插件上获取当前插件的版本号</title>
<link>https://fengmk2.com/posts/how-to-get-chrome-extension-version</link>
<guid>https://fengmk2.com/posts/how-to-get-chrome-extension-version</guid>
<description>翻遍了Chrome插件开发文档，依然无法找到如何获取当前版本号。 仔细想想，版本号其实就在开发者配置的manifest.json文件上定义的，如果能读取此文件数据，就等于得到版本号信息了。 Read the full post at https://fengmk2.com/posts/how-to-get-chrome-extension-version.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/how-to-get-chrome-extension-version.png" alt="在Chrome插件上获取当前插件的版本号" />
翻遍了Chrome插件开发文档，依然无法找到如何获取当前版本号。 仔细想想，版本号其实就在开发者配置的manifest.json文件上定义的，如果能读取此文件数据，就等于得到版本号信息了。 Read the full post at https://fengmk2.com/posts/how-to-get-chrome-extension-version.]]></content:encoded>
<pubDate>Wed, 25 May 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>Nodejs中的嵌套callback</title>
<link>https://fengmk2.com/posts/currying-the-callback</link>
<guid>https://fengmk2.com/posts/currying-the-callback</guid>
<description>Nodejs是异步的，所有IO请求都是异步的方式调用，需要指定一个callback函数处理返回的数据。 于是难免会出现一层层的嵌套callback。 当callback嵌套的层数太多，会引起许多开发者的困惑，怎么消除或者减少callback嵌套呢？ Read the full post at https://fengmk2.com/posts/currying-the-callback.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/currying-the-callback.png" alt="Nodejs中的嵌套callback" />
Nodejs是异步的，所有IO请求都是异步的方式调用，需要指定一个callback函数处理返回的数据。 于是难免会出现一层层的嵌套callback。 当callback嵌套的层数太多，会引起许多开发者的困惑，怎么消除或者减少callback嵌套呢？ Read the full post at https://fengmk2.com/posts/currying-the-callback.]]></content:encoded>
<pubDate>Sun, 01 May 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>Nodejs抓取非utf8字符编码的页面</title>
<link>https://fengmk2.com/posts/fetch-non-utf8-charset-webpage</link>
<guid>https://fengmk2.com/posts/fetch-non-utf8-charset-webpage</guid>
<description>在cnodejs用户组，有同学遇到抓取百度页面出现编码问题 Read the full post at https://fengmk2.com/posts/fetch-non-utf8-charset-webpage.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/fetch-non-utf8-charset-webpage.png" alt="Nodejs抓取非utf8字符编码的页面" />
在cnodejs用户组，有同学遇到抓取百度页面出现编码问题 Read the full post at https://fengmk2.com/posts/fetch-non-utf8-charset-webpage.]]></content:encoded>
<pubDate>Sun, 01 May 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>nodejs一周动态(2011-05-05 - 05-15)</title>
<link>https://fengmk2.com/posts/nodejs-weekly-news</link>
<guid>https://fengmk2.com/posts/nodejs-weekly-news</guid>
<description>文章中说到与Nodejs的对比: The New Node? Read the full post at https://fengmk2.com/posts/nodejs-weekly-news.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/nodejs-weekly-news.png" alt="nodejs一周动态(2011-05-05 - 05-15)" />
文章中说到与Nodejs的对比: The New Node? Read the full post at https://fengmk2.com/posts/nodejs-weekly-news.]]></content:encoded>
<pubDate>Sun, 01 May 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>Nodejs中的并行IO调用</title>
<link>https://fengmk2.com/posts/parallel-io-function-call-in-nodejs</link>
<guid>https://fengmk2.com/posts/parallel-io-function-call-in-nodejs</guid>
<description>我们编写nodejs程序的时候，常常会遇到可以平行调用IO。 如果使用串行方式调用，会导致嵌套callback太多和抛弃了并行IO的优势。 于是，我们都会选择并行调用。 Read the full post at https://fengmk2.com/posts/parallel-io-function-call-in-nodejs.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/parallel-io-function-call-in-nodejs.png" alt="Nodejs中的并行IO调用" />
我们编写nodejs程序的时候，常常会遇到可以平行调用IO。 如果使用串行方式调用，会导致嵌套callback太多和抛弃了并行IO的优势。 于是，我们都会选择并行调用。 Read the full post at https://fengmk2.com/posts/parallel-io-function-call-in-nodejs.]]></content:encoded>
<pubDate>Sun, 01 May 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>如何在express使用doT模板引擎</title>
<link>https://fengmk2.com/posts/how-to-use-dot-in-express</link>
<guid>https://fengmk2.com/posts/how-to-use-dot-in-express</guid>
<description>本文假设你已经使用过doT和express，并知道它的模板语法。 Read the full post at https://fengmk2.com/posts/how-to-use-dot-in-express.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/how-to-use-dot-in-express.png" alt="如何在express使用doT模板引擎" />
本文假设你已经使用过doT和express，并知道它的模板语法。 Read the full post at https://fengmk2.com/posts/how-to-use-dot-in-express.]]></content:encoded>
<pubDate>Wed, 27 Apr 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>nodejs一周动态(2011-04-25 - 05-01)</title>
<link>https://fengmk2.com/posts/week-nodejs-list-2011-04-25</link>
<guid>https://fengmk2.com/posts/week-nodejs-list-2011-04-25</guid>
<description>本文收集一周来业界关于nodejs的相关动态信息和新闻摘要，并会推荐一下非常棒的node.js模块。 Read the full post at https://fengmk2.com/posts/week-nodejs-list-2011-04-25.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/week-nodejs-list-2011-04-25.png" alt="nodejs一周动态(2011-04-25 - 05-01)" />
本文收集一周来业界关于nodejs的相关动态信息和新闻摘要，并会推荐一下非常棒的node.js模块。 Read the full post at https://fengmk2.com/posts/week-nodejs-list-2011-04-25.]]></content:encoded>
<pubDate>Mon, 25 Apr 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>我和QleeLulu参与开发和维护的几个Node模块和项目</title>
<link>https://fengmk2.com/posts/fengmk2-qleelulu-project-on-github</link>
<guid>https://fengmk2.com/posts/fengmk2-qleelulu-project-on-github</guid>
<description>不能不说，github才是真正的程序员SNS。 Read the full post at https://fengmk2.com/posts/fengmk2-qleelulu-project-on-github.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/fengmk2-qleelulu-project-on-github.png" alt="我和QleeLulu参与开发和维护的几个Node模块和项目" />
不能不说，github才是真正的程序员SNS。 Read the full post at https://fengmk2.com/posts/fengmk2-qleelulu-project-on-github.]]></content:encoded>
<pubDate>Sat, 23 Apr 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>NodeBlog v0.1.0发布</title>
<link>https://fengmk2.com/posts/nodeblog-v0-1-0</link>
<guid>https://fengmk2.com/posts/nodeblog-v0-1-0</guid>
<description>NodeBlog:http://nodeblog.org/ 是一个基于node.js的开源博客程序。 Read the full post at https://fengmk2.com/posts/nodeblog-v0-1-0.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/nodeblog-v0-1-0.png" alt="NodeBlog v0.1.0发布" />
NodeBlog:http://nodeblog.org/ 是一个基于node.js的开源博客程序。 Read the full post at https://fengmk2.com/posts/nodeblog-v0-1-0.]]></content:encoded>
<pubDate>Sat, 23 Apr 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>nodejs本周动态(2011-04-18/24)</title>
<link>https://fengmk2.com/posts/week-nodejs-list-2011-04-18-24</link>
<guid>https://fengmk2.com/posts/week-nodejs-list-2011-04-18-24</guid>
<description>Nathan Rajlich写了篇在iOS上运行Node的文章: NodeJS on iOS. 他建立了一个项目 node-iOS，为了让iOS原生支持Node. 你的手机必须先越狱。 Read the full post at https://fengmk2.com/posts/week-nodejs-list-2011-04-18-24.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/week-nodejs-list-2011-04-18-24.png" alt="nodejs本周动态(2011-04-18/24)" />
Nathan Rajlich写了篇在iOS上运行Node的文章: NodeJS on iOS. 他建立了一个项目 node-iOS，为了让iOS原生支持Node. 你的手机必须先越狱。 Read the full post at https://fengmk2.com/posts/week-nodejs-list-2011-04-18-24.]]></content:encoded>
<pubDate>Mon, 18 Apr 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>git submodule，解决依赖模块更新</title>
<link>https://fengmk2.com/posts/git-submodule-2</link>
<guid>https://fengmk2.com/posts/git-submodule-2</guid>
<description>在项目的根目录添加子模块 Read the full post at https://fengmk2.com/posts/git-submodule-2.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/git-submodule-2.png" alt="git submodule，解决依赖模块更新" />
在项目的根目录添加子模块 Read the full post at https://fengmk2.com/posts/git-submodule-2.]]></content:encoded>
<pubDate>Mon, 11 Apr 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>git submodule：增加子模块</title>
<link>https://fengmk2.com/posts/git-submodule</link>
<guid>https://fengmk2.com/posts/git-submodule</guid>
<description>项目中常常需要用到第三方依赖模块，之前我通常的做法是获取一份第三方模块的代码， 然后直接放到当前项目中。 Read the full post at https://fengmk2.com/posts/git-submodule.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/git-submodule.png" alt="git submodule：增加子模块" />
项目中常常需要用到第三方依赖模块，之前我通常的做法是获取一份第三方模块的代码， 然后直接放到当前项目中。 Read the full post at https://fengmk2.com/posts/git-submodule.]]></content:encoded>
<pubDate>Sun, 10 Apr 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>[nodejs]Javascript模板引擎性能对比及几点优化</title>
<link>https://fengmk2.com/posts/js-template-benchmarks</link>
<guid>https://fengmk2.com/posts/js-template-benchmarks</guid>
<description>浏览器版可直接查看: JavaScript template language shootoff Read the full post at https://fengmk2.com/posts/js-template-benchmarks.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/js-template-benchmarks.png" alt="[nodejs]Javascript模板引擎性能对比及几点优化" />
浏览器版可直接查看: JavaScript template language shootoff Read the full post at https://fengmk2.com/posts/js-template-benchmarks.]]></content:encoded>
<pubDate>Fri, 01 Apr 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>Nodejs 代码规范</title>
<link>https://fengmk2.com/posts/nodejs-code-style</link>
<guid>https://fengmk2.com/posts/nodejs-code-style</guid>
<description>exports.print = function() { for (var i = 0, len = arguments.length; i &lt; len; ++i) { process.stdout.write(String(arguments[i])); } }; Read the full post at https://fengmk2.com/posts/nodejs-code-style.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/nodejs-code-style.png" alt="Nodejs 代码规范" />
exports.print = function() { for (var i = 0, len = arguments.length; i < len; ++i) { process.stdout.write(String(arguments[i])); } }; Read the full post at https://fengmk2.com/posts/nodejs-code-style.]]></content:encoded>
<pubDate>Fri, 01 Apr 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>nodejs 1G堆栈内存限制(by v8)</title>
<link>https://fengmk2.com/posts/v8-1g-head-limit</link>
<guid>https://fengmk2.com/posts/v8-1g-head-limit</guid>
<description>最近有看过“最多只能使用1G内存(V8 is unable to use more than 1gb of memory)”。 实际真的是这样的吗？让我们动手试试，实际是检验真理的唯一标准。 Read the full post at https://fengmk2.com/posts/v8-1g-head-limit.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/v8-1g-head-limit.png" alt="nodejs 1G堆栈内存限制(by v8)" />
最近有看过“最多只能使用1G内存(V8 is unable to use more than 1gb of memory)”。 实际真的是这样的吗？让我们动手试试，实际是检验真理的唯一标准。 Read the full post at https://fengmk2.com/posts/v8-1g-head-limit.]]></content:encoded>
<pubDate>Fri, 01 Apr 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>nodejs: 真正的一份代码，到处运行</title>
<link>https://fengmk2.com/posts/one-javascript-run-front-and-behind</link>
<guid>https://fengmk2.com/posts/one-javascript-run-front-and-behind</guid>
<description>在web开发中，我们是否常常会使用不同的编程语言实现相同的功能？ Read the full post at https://fengmk2.com/posts/one-javascript-run-front-and-behind.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/one-javascript-run-front-and-behind.png" alt="nodejs: 真正的一份代码，到处运行" />
在web开发中，我们是否常常会使用不同的编程语言实现相同的功能？ Read the full post at https://fengmk2.com/posts/one-javascript-run-front-and-behind.]]></content:encoded>
<pubDate>Wed, 30 Mar 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>Google Appengine 的自动部署脚本</title>
<link>https://fengmk2.com/posts/appengine-auto-deploy</link>
<guid>https://fengmk2.com/posts/appengine-auto-deploy</guid>
<description>你是否在appengine上注册了N个应用？每次代码更新都很痛苦？！ Read the full post at https://fengmk2.com/posts/appengine-auto-deploy.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/appengine-auto-deploy.png" alt="Google Appengine 的自动部署脚本" />
你是否在appengine上注册了N个应用？每次代码更新都很痛苦？！ Read the full post at https://fengmk2.com/posts/appengine-auto-deploy.]]></content:encoded>
<pubDate>Sat, 26 Mar 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>nodejs: 随想javascript并行调用带callback的异步函数</title>
<link>https://fengmk2.com/posts/waitfor-callback</link>
<guid>https://fengmk2.com/posts/waitfor-callback</guid>
<description>先看看本文基于的一个应用场景 Read the full post at https://fengmk2.com/posts/waitfor-callback.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/waitfor-callback.png" alt="nodejs: 随想javascript并行调用带callback的异步函数" />
先看看本文基于的一个应用场景 Read the full post at https://fengmk2.com/posts/waitfor-callback.]]></content:encoded>
<pubDate>Fri, 25 Mar 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>web旺旺技术变迁的一些笔记痕迹</title>
<link>https://fengmk2.com/posts/web-wangwang-history-notemark</link>
<guid>https://fengmk2.com/posts/web-wangwang-history-notemark</guid>
<description>这是一个很有价值而又让人无法一下子得出答案的问题： Read the full post at https://fengmk2.com/posts/web-wangwang-history-notemark.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/web-wangwang-history-notemark.png" alt="web旺旺技术变迁的一些笔记痕迹" />
这是一个很有价值而又让人无法一下子得出答案的问题： Read the full post at https://fengmk2.com/posts/web-wangwang-history-notemark.]]></content:encoded>
<pubDate>Thu, 17 Mar 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>nodejs: 修复express的res.download 下载被取消导致的 “Can&apos;&apos;t remove headers after they are sent” 异常</title>
<link>https://fengmk2.com/posts/fixed-nodejs-express-res-download-cancel-bug</link>
<guid>https://fengmk2.com/posts/fixed-nodejs-express-res-download-cancel-bug</guid>
<description>想必你搜索看到此文章，一定是遇到了和我一样的问题。 Read the full post at https://fengmk2.com/posts/fixed-nodejs-express-res-download-cancel-bug.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/fixed-nodejs-express-res-download-cancel-bug.png" alt="nodejs: 修复express的res.download 下载被取消导致的 “Can&apos;&apos;t remove headers after they are sent” 异常" />
想必你搜索看到此文章，一定是遇到了和我一样的问题。 Read the full post at https://fengmk2.com/posts/fixed-nodejs-express-res-download-cancel-bug.]]></content:encoded>
<pubDate>Wed, 16 Mar 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>nodejs: mkdirs 递归创建目录</title>
<link>https://fengmk2.com/posts/nodejs-mkdirs</link>
<guid>https://fengmk2.com/posts/nodejs-mkdirs</guid>
<description>nodejs里面的所有文件操作我们很显然地都会选择异步方式。 Read the full post at https://fengmk2.com/posts/nodejs-mkdirs.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/nodejs-mkdirs.png" alt="nodejs: mkdirs 递归创建目录" />
nodejs里面的所有文件操作我们很显然地都会选择异步方式。 Read the full post at https://fengmk2.com/posts/nodejs-mkdirs.]]></content:encoded>
<pubDate>Thu, 10 Mar 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>最近</title>
<link>https://fengmk2.com/posts/recently</link>
<guid>https://fengmk2.com/posts/recently</guid>
<description>at 2011年03月07日 00:24 Read the full post at https://fengmk2.com/posts/recently.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/recently.png" alt="最近" />
at 2011年03月07日 00:24 Read the full post at https://fengmk2.com/posts/recently.]]></content:encoded>
<pubDate>Tue, 01 Mar 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>Defense hash algorithm collision 防御hash算法冲突导致拒绝服务器</title>
<link>https://fengmk2.com/posts/defense-hash-algorithm-collision-dos</link>
<guid>https://fengmk2.com/posts/defense-hash-algorithm-collision-dos</guid>
<description>一篇#2011-003 multiple implementations denial-of-service via hash algorithm collision 文章，引起了 Web 应用安全领域的骚动。 Read the full post at https://fengmk2.com/posts/defense-hash-algorithm-collision-dos.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/defense-hash-algorithm-collision-dos.png" alt="Defense hash algorithm collision 防御hash算法冲突导致拒绝服务器" />
一篇#2011-003 multiple implementations denial-of-service via hash algorithm collision 文章，引起了 Web 应用安全领域的骚动。 Read the full post at https://fengmk2.com/posts/defense-hash-algorithm-collision-dos.]]></content:encoded>
<pubDate>Sat, 01 Jan 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>基于KV数据库的文件系统 FileSystem Impl on Key-Value Database</title>
<link>https://fengmk2.com/posts/fs-on-kvdb</link>
<guid>https://fengmk2.com/posts/fs-on-kvdb</guid>
<description>以文件路径为key，文件内容为value，可以很容易实现文件的基本操作。 Read the full post at https://fengmk2.com/posts/fs-on-kvdb.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/fs-on-kvdb.png" alt="基于KV数据库的文件系统 FileSystem Impl on Key-Value Database" />
以文件路径为key，文件内容为value，可以很容易实现文件的基本操作。 Read the full post at https://fengmk2.com/posts/fs-on-kvdb.]]></content:encoded>
<pubDate>Sat, 01 Jan 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>如何高效地使用arguments</title>
<link>https://fengmk2.com/posts/how-to-use-arguments-in-hide-performance-way</link>
<guid>https://fengmk2.com/posts/how-to-use-arguments-in-hide-performance-way</guid>
<description>如何高效地使用arguments Read the full post at https://fengmk2.com/posts/how-to-use-arguments-in-hide-performance-way.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/how-to-use-arguments-in-hide-performance-way.png" alt="如何高效地使用arguments" />
如何高效地使用arguments Read the full post at https://fengmk2.com/posts/how-to-use-arguments-in-hide-performance-way.]]></content:encoded>
<pubDate>Sat, 01 Jan 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>fibonacci(40) benchmark</title>
<link>https://fengmk2.com/posts/nodejs-python-php-ruby-lua</link>
<guid>https://fengmk2.com/posts/nodejs-python-php-ruby-lua</guid>
<description>Node.js is Cancer show a wrong way to use nodejs. But the test code Fibonacci is so funny. I implement the fibonacci function in other Dynamic Languag… Read the full post at https://fengmk2.com/posts/nodejs-python-php-ruby-lua.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/nodejs-python-php-ruby-lua.png" alt="fibonacci(40) benchmark" />
Node.js is Cancer show a wrong way to use nodejs. But the test code Fibonacci is so funny. I implement the fibonacci function in other Dynamic Languag… Read the full post at https://fengmk2.com/posts/nodejs-python-php-ruby-lua.]]></content:encoded>
<pubDate>Sat, 01 Jan 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>单机Mongodb迁移到Master - Slave模式</title>
<link>https://fengmk2.com/posts/one-mongodb-to-master-slave</link>
<guid>https://fengmk2.com/posts/one-mongodb-to-master-slave</guid>
<description>单 Read the full post at https://fengmk2.com/posts/one-mongodb-to-master-slave.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/one-mongodb-to-master-slave.png" alt="单机Mongodb迁移到Master - Slave模式" />
单 Read the full post at https://fengmk2.com/posts/one-mongodb-to-master-slave.]]></content:encoded>
<pubDate>Sat, 01 Jan 2011 00:00:00 GMT</pubDate>
</item>
<item>
<title>nodejs实用示例：缩址还原</title>
<link>https://fengmk2.com/posts/nodejs-urlexpand</link>
<guid>https://fengmk2.com/posts/nodejs-urlexpand</guid>
<description>nodejs最近好红火，我也趁寒冷天气在nodejs的火炉边取暖一下。 Read the full post at https://fengmk2.com/posts/nodejs-urlexpand.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/nodejs-urlexpand.png" alt="nodejs实用示例：缩址还原" />
nodejs最近好红火，我也趁寒冷天气在nodejs的火炉边取暖一下。 Read the full post at https://fengmk2.com/posts/nodejs-urlexpand.]]></content:encoded>
<pubDate>Mon, 27 Dec 2010 00:00:00 GMT</pubDate>
</item>
<item>
<title>让python的Cookie.py模块支持:冒号做key</title>
<link>https://fengmk2.com/posts/hook-python-cookie-support-ilegalchars</link>
<guid>https://fengmk2.com/posts/hook-python-cookie-support-ilegalchars</guid>
<description>虽然Cookie的标准是不允许:冒号出现在key里面的，但是我们的开发人员是很可爱的，常常会让我们意想不到。 Read the full post at https://fengmk2.com/posts/hook-python-cookie-support-ilegalchars.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/hook-python-cookie-support-ilegalchars.png" alt="让python的Cookie.py模块支持:冒号做key" />
虽然Cookie的标准是不允许:冒号出现在key里面的，但是我们的开发人员是很可爱的，常常会让我们意想不到。 Read the full post at https://fengmk2.com/posts/hook-python-cookie-support-ilegalchars.]]></content:encoded>
<pubDate>Fri, 19 Nov 2010 00:00:00 GMT</pubDate>
</item>
<item>
<title>搜狐微博的oauth</title>
<link>https://fengmk2.com/posts/tsohu-oauth</link>
<guid>https://fengmk2.com/posts/tsohu-oauth</guid>
<description>最近拿到了搜狐微博(t.sohu.com)的oauth开发key，本想做个oauth登录的，可是发现在发中文微博的时候，总是提示401认证不通过: Read the full post at https://fengmk2.com/posts/tsohu-oauth.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/tsohu-oauth.png" alt="搜狐微博的oauth" />
最近拿到了搜狐微博(t.sohu.com)的oauth开发key，本想做个oauth登录的，可是发现在发中文微博的时候，总是提示401认证不通过: Read the full post at https://fengmk2.com/posts/tsohu-oauth.]]></content:encoded>
<pubDate>Wed, 03 Nov 2010 00:00:00 GMT</pubDate>
</item>
<item>
<title>让python json encode datetime类型</title>
<link>https://fengmk2.com/posts/python-json-encode-datetime</link>
<guid>https://fengmk2.com/posts/python-json-encode-datetime</guid>
<description>python2.6+ 自带的json模块，不支持datetime的json encode，每次都需要手动转为字符串，很累人，我们可以自己封装一个简单的方法处理此问题. 实现代码如下: Read the full post at https://fengmk2.com/posts/python-json-encode-datetime.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/python-json-encode-datetime.png" alt="让python json encode datetime类型" />
python2.6+ 自带的json模块，不支持datetime的json encode，每次都需要手动转为字符串，很累人，我们可以自己封装一个简单的方法处理此问题. 实现代码如下: Read the full post at https://fengmk2.com/posts/python-json-encode-datetime.]]></content:encoded>
<pubDate>Sat, 23 Oct 2010 00:00:00 GMT</pubDate>
</item>
<item>
<title>为了忘却的纪念</title>
<link>https://fengmk2.com/posts/remember-the-forgot</link>
<guid>https://fengmk2.com/posts/remember-the-forgot</guid>
<description>at 2010年10月15日 01:56 Read the full post at https://fengmk2.com/posts/remember-the-forgot.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/remember-the-forgot.png" alt="为了忘却的纪念" />
at 2010年10月15日 01:56 Read the full post at https://fengmk2.com/posts/remember-the-forgot.]]></content:encoded>
<pubDate>Fri, 01 Oct 2010 00:00:00 GMT</pubDate>
</item>
<item>
<title>当你以为你很了解她的时候</title>
<link>https://fengmk2.com/posts/when-you-think-you-know-her-really</link>
<guid>https://fengmk2.com/posts/when-you-think-you-know-her-really</guid>
<description>at 2010年10月29日 00:53 Read the full post at https://fengmk2.com/posts/when-you-think-you-know-her-really.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/when-you-think-you-know-her-really.png" alt="当你以为你很了解她的时候" />
at 2010年10月29日 00:53 Read the full post at https://fengmk2.com/posts/when-you-think-you-know-her-really.]]></content:encoded>
<pubDate>Fri, 01 Oct 2010 00:00:00 GMT</pubDate>
</item>
<item>
<title>django接入新浪微博OAuth</title>
<link>https://fengmk2.com/posts/sina-weibo-oauth-on-django</link>
<guid>https://fengmk2.com/posts/sina-weibo-oauth-on-django</guid>
<description>最近将网站和新浪微博进行了整合，思路很简单，就是将页面内容和新浪微博联系起来，一个独立内容的页面对于一条微博，自然评论系统只需要使用微博的评论即可。 然后，用户需要发表评论的话，肯定要接入oauth，不可能让用户登录你的网站来发评论吧？没有谁会将自己的账号和密码告诉你的。 查看了新浪微博的授权机制，… Read the full post at https://fengmk2.com/posts/sina-weibo-oauth-on-django.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/sina-weibo-oauth-on-django.png" alt="django接入新浪微博OAuth" />
最近将网站和新浪微博进行了整合，思路很简单，就是将页面内容和新浪微博联系起来，一个独立内容的页面对于一条微博，自然评论系统只需要使用微博的评论即可。 然后，用户需要发表评论的话，肯定要接入oauth，不可能让用户登录你的网站来发评论吧？没有谁会将自己的账号和密码告诉你的。 查看了新浪微博的授权机制，… Read the full post at https://fengmk2.com/posts/sina-weibo-oauth-on-django.]]></content:encoded>
<pubDate>Mon, 27 Sep 2010 00:00:00 GMT</pubDate>
</item>
<item>
<title>编译安装M2Crypto-0.20.2</title>
<link>https://fengmk2.com/posts/python-install-m2crypto-rsa</link>
<guid>https://fengmk2.com/posts/python-install-m2crypto-rsa</guid>
<description>最新需要用到RSA对称密钥加密，所以需要用到M2Crypto，可怜的我发现编译这东西一点都不容易，以下是我的杯具经验总结。 Read the full post at https://fengmk2.com/posts/python-install-m2crypto-rsa.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/python-install-m2crypto-rsa.png" alt="编译安装M2Crypto-0.20.2" />
最新需要用到RSA对称密钥加密，所以需要用到M2Crypto，可怜的我发现编译这东西一点都不容易，以下是我的杯具经验总结。 Read the full post at https://fengmk2.com/posts/python-install-m2crypto-rsa.]]></content:encoded>
<pubDate>Tue, 21 Sep 2010 00:00:00 GMT</pubDate>
</item>
<item>
<title>async_memcache for tornado</title>
<link>https://fengmk2.com/posts/async-memcache-client-for-tornado</link>
<guid>https://fengmk2.com/posts/async-memcache-client-for-tornado</guid>
<description>tornado 是一个纯python 实现的非阻塞web服务器，自带了异步httpclient，可以异步请求http网络资源。 Read the full post at https://fengmk2.com/posts/async-memcache-client-for-tornado.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/async-memcache-client-for-tornado.png" alt="async_memcache for tornado" />
tornado 是一个纯python 实现的非阻塞web服务器，自带了异步httpclient，可以异步请求http网络资源。 Read the full post at https://fengmk2.com/posts/async-memcache-client-for-tornado.]]></content:encoded>
<pubDate>Thu, 16 Sep 2010 00:00:00 GMT</pubDate>
</item>
<item>
<title>让apt-get的自动补全打开</title>
<link>https://fengmk2.com/posts/apt-get-audo-completion</link>
<guid>https://fengmk2.com/posts/apt-get-audo-completion</guid>
<description>$ vi /.bashrc Read the full post at https://fengmk2.com/posts/apt-get-audo-completion.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/apt-get-audo-completion.png" alt="让apt-get的自动补全打开" />
$ vi /.bashrc Read the full post at https://fengmk2.com/posts/apt-get-audo-completion.]]></content:encoded>
<pubDate>Sun, 22 Aug 2010 00:00:00 GMT</pubDate>
</item>
<item>
<title>iPhone使用全记录</title>
<link>https://fengmk2.com/posts/mk2-iphone-road</link>
<guid>https://fengmk2.com/posts/mk2-iphone-road</guid>
<description>iPhone用起来太多东西要记，免得以后刷机都走错路，就在这里记下一些痕迹吧。 Read the full post at https://fengmk2.com/posts/mk2-iphone-road.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/mk2-iphone-road.png" alt="iPhone使用全记录" />
iPhone用起来太多东西要记，免得以后刷机都走错路，就在这里记下一些痕迹吧。 Read the full post at https://fengmk2.com/posts/mk2-iphone-road.]]></content:encoded>
<pubDate>Thu, 24 Jun 2010 00:00:00 GMT</pubDate>
</item>
<item>
<title>在珠海金山软件的这两年</title>
<link>https://fengmk2.com/posts/two-years-in-kongsoft-zhuhai</link>
<guid>https://fengmk2.com/posts/two-years-in-kongsoft-zhuhai</guid>
<description>at 2010年04月02日 01:01 Read the full post at https://fengmk2.com/posts/two-years-in-kongsoft-zhuhai.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/two-years-in-kongsoft-zhuhai.png" alt="在珠海金山软件的这两年" />
at 2010年04月02日 01:01 Read the full post at https://fengmk2.com/posts/two-years-in-kongsoft-zhuhai.]]></content:encoded>
<pubDate>Thu, 01 Apr 2010 00:00:00 GMT</pubDate>
</item>
<item>
<title>生日快乐</title>
<link>https://fengmk2.com/posts/birthday-er</link>
<guid>https://fengmk2.com/posts/birthday-er</guid>
<description>at 2010年03月22日 00:00 Read the full post at https://fengmk2.com/posts/birthday-er.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/birthday-er.png" alt="生日快乐" />
at 2010年03月22日 00:00 Read the full post at https://fengmk2.com/posts/birthday-er.]]></content:encoded>
<pubDate>Mon, 01 Mar 2010 00:00:00 GMT</pubDate>
</item>
<item>
<title>tenjin - 号称全球最快的模板引擎</title>
<link>https://fengmk2.com/posts/tenjin-intro</link>
<guid>https://fengmk2.com/posts/tenjin-intro</guid>
<description>Tenjin, &quot;Tenjin is a very fast and full-featured template engine available in several script languages.&quot; Read the full post at https://fengmk2.com/posts/tenjin-intro.</description>
<content:encoded><![CDATA[<img src="https://fengmk2.com/og/tenjin-intro.png" alt="tenjin - 号称全球最快的模板引擎" />
Tenjin, "Tenjin is a very fast and full-featured template engine available in several script languages." Read the full post at https://fengmk2.com/posts/tenjin-intro.]]></content:encoded>
<pubDate>Sun, 22 Mar 2009 00:00:00 GMT</pubDate>
</item>
</channel>
</rss>
