<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Probability</title>
	<atom:link href="http://ieqi.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://ieqi.net</link>
	<description>我们必须知道，我们必将知道。</description>
	<lastBuildDate>Wed, 18 Apr 2012 17:12:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>用WordPress快速搭建文章站的一些思路</title>
		<link>http://ieqi.net/2012/04/19/%e7%94%a8wordpress%e5%bf%ab%e9%80%9f%e6%90%ad%e5%bb%ba%e6%96%87%e7%ab%a0%e7%ab%99%e7%9a%84%e4%b8%80%e4%ba%9b%e6%80%9d%e8%b7%af/</link>
		<comments>http://ieqi.net/2012/04/19/%e7%94%a8wordpress%e5%bf%ab%e9%80%9f%e6%90%ad%e5%bb%ba%e6%96%87%e7%ab%a0%e7%ab%99%e7%9a%84%e4%b8%80%e4%ba%9b%e6%80%9d%e8%b7%af/#comments</comments>
		<pubDate>Wed, 18 Apr 2012 17:12:44 +0000</pubDate>
		<dc:creator>G_will</dc:creator>
				<category><![CDATA[Ieqi.Net Studio]]></category>

		<guid isPermaLink="false">http://ieqi.net/?p=946</guid>
		<description><![CDATA[用WordPress来做个人博客网站还不错的，但是用WordPress做一个有点样子的文章站恐怕是不行的。虽然WordPress在3.x以后，增加了很多新特性，变的越来越CMS了。但是WordPress之于文章站，最大问题倒不在于功能有多差，而是在于其性能。WordPress对于一个稍大的文章站来说，性能实在太差了，这是WordPress本身架构的问题。当然可以通过安装一些WordPress的插件来提升性能，但是这样又引入了新的东西，又增加了复杂度，而且wordpress的缓存插件如果需要开发的话，还需要再去投入学习成本 那么，又想贪图WordPress本身的对文章的管理组织功能（WordPress最好用的地方就在于后台，不管是编辑器还是组织堪称优秀实践。），又想让站点性能比较好应该怎么办呢？ 我的思路是这样的： 1. 直接用wordpress模板系统做一个rest风格（伪rest。。）的调用接口，可以返回json，也可以返回序列化后的php变量。因为WordPress本身模板系统很简单，很容易就能控制路由，而且这样做最大的好出在于，可以直接用wordpress提供的各种内容调用方法，不再需要自己再去直接操作数据库了（就是个ORM），php输出json也很方便，直接json_encode就好了，配合web服务器的访问控制就能很好的控制调用范围了。 2. 用框架做一个文章站，这时候就不需要经典MVC中的M了，所有的数据直接从rest接口调，封装一个curl就好了，难过来数据解包直接使用，只要做好C和V就好了。那么这样做其实还没有解决性能问题，只是做了解耦，让架构清晰了。至于性能，对于文章站这种情景，我们只要再再做一个缓存就好了，一般web开发框架都有很好的缓存方面的支持，可以用文件缓存，也可以用KV数据库缓存，思路很简单，就是用接口url作为k来缓存数据，然后设定一定的时效，或者更具文章的刷新去刷新缓存，总之文章站的内容变动频率并不高，缓存对于提整站性能作用很大。而且这样做的缓存内容很单一，流程很透明，控制很容易。 这样的架构，性能上应该比DX2的门户还略好一些，而且复杂度要低很多，两边低耦合，如果觉得再要拓展，就算是利用接口在框架这边再持久化一遍数据都是很方便的。最主要的搭建速度快，也不糙。]]></description>
			<content:encoded><![CDATA[<p>用WordPress来做个人博客网站还不错的，但是用WordPress做一个有点样子的文章站恐怕是不行的。<span id="more-946"></span>虽然WordPress在3.x以后，增加了很多新特性，变的越来越CMS了。但是WordPress之于文章站，最大问题倒不在于功能有多差，而是在于其性能。WordPress对于一个稍大的文章站来说，性能实在太差了，这是WordPress本身架构的问题。当然可以通过安装一些WordPress的插件来提升性能，但是这样又引入了新的东西，又增加了复杂度，而且wordpress的缓存插件如果需要开发的话，还需要再去投入学习成本</p>
<p>那么，又想贪图WordPress本身的对文章的管理组织功能（WordPress最好用的地方就在于后台，不管是编辑器还是组织堪称优秀实践。），又想让站点性能比较好应该怎么办呢？</p>
<p>我的思路是这样的：</p>
<p>1. 直接用wordpress模板系统做一个rest风格（伪rest。。）的调用接口，可以返回json，也可以返回序列化后的php变量。因为WordPress本身模板系统很简单，很容易就能控制路由，而且这样做最大的好出在于，可以直接用wordpress提供的各种内容调用方法，不再需要自己再去直接操作数据库了（就是个ORM），php输出json也很方便，直接json_encode就好了，配合web服务器的访问控制就能很好的控制调用范围了。</p>
<p>2. 用框架做一个文章站，这时候就不需要经典MVC中的M了，所有的数据直接从rest接口调，封装一个curl就好了，难过来数据解包直接使用，只要做好C和V就好了。那么这样做其实还没有解决性能问题，只是做了解耦，让架构清晰了。至于性能，对于文章站这种情景，我们只要再再做一个缓存就好了，一般web开发框架都有很好的缓存方面的支持，可以用文件缓存，也可以用KV数据库缓存，思路很简单，就是用接口url作为k来缓存数据，然后设定一定的时效，或者更具文章的刷新去刷新缓存，总之文章站的内容变动频率并不高，缓存对于提整站性能作用很大。而且这样做的缓存内容很单一，流程很透明，控制很容易。</p>
<p>这样的架构，性能上应该比DX2的门户还略好一些，而且复杂度要低很多，两边低耦合，如果觉得再要拓展，就算是利用接口在框架这边再持久化一遍数据都是很方便的。最主要的搭建速度快，也不糙。</p>
]]></content:encoded>
			<wfw:commentRss>http://ieqi.net/2012/04/19/%e7%94%a8wordpress%e5%bf%ab%e9%80%9f%e6%90%ad%e5%bb%ba%e6%96%87%e7%ab%a0%e7%ab%99%e7%9a%84%e4%b8%80%e4%ba%9b%e6%80%9d%e8%b7%af/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Markdown 还是 reStructuredText</title>
		<link>http://ieqi.net/2012/04/13/markdown-%e8%bf%98%e6%98%af-restructuredtext/</link>
		<comments>http://ieqi.net/2012/04/13/markdown-%e8%bf%98%e6%98%af-restructuredtext/#comments</comments>
		<pubDate>Fri, 13 Apr 2012 07:37:48 +0000</pubDate>
		<dc:creator>G_will</dc:creator>
				<category><![CDATA[G_will`s Redemption]]></category>

		<guid isPermaLink="false">http://ieqi.net/?p=916</guid>
		<description><![CDATA[Markdown 还是 reStructuredText Markdown 还是 reST ==================== *胡言乱语，未完待续，之所以发出来是因为不想再像其他文章一样，一直在草稿箱里直到只剩删除的价值。* 什么是什么？ &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; Markdown和reST都是标记语言（markup languages）。什么是标记语言？等会儿再说。 Markdown就叫Markdown，而reST是个缩写，reST的全称是reStructuredText。 什么是标记语言？ ~~~~~~~~~~~~~ 我们知道作为直接映射自然语言的文本语言在直接书写为纯文本以后，实际上这样文本的所能表达的意义往往不能达到我们需要的标准。 我们引入标记，是为了扩展语义。最简单的就是空格、换行、符号。 但是这还是不够用。 所以我们有了更完备的标记语言，比如LaTex、XML，但是问题来了，这样过于复杂了，首先是书写上复杂了，比如XML，已经很难直接去手动编辑原始XML文本文件了，只能依靠工具了。原始文本的理解难度也增加了，比如你要看懂一个复杂的LaTex源文件确实需要一些功夫，原本文本直接表意的功能就丧失了。 什么是Markdown？ ~~~~~~~~~~~~~~~ 什么是reST? ~~~~~~~~~~~~~ 都是完美惹的祸 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;- 我为什么要说这个题目呢？很难表达清楚，只是隐隐约约觉得需要喷，或者说是吐槽。 而且，这篇文章成稿已久，我觉得如果想很多稿子一样放到只有被删的价值，那还不如一吐为快。 尽快，我已经知道这又是一篇断断续续毫无章法的胡言乱语。那么开始吧。 那么，我想说什么呢？ 我想说 在这个不完美的世界，作为力求完美的人，真他妈的是个令人焦虑的事情。 现状 &#8212;&#8212;&#8212;&#8212;- 现状就是很多事实交织在一起，你不去伸出手摸摸，根本无从了解，当然，就算是摸了也不免瞎人摸象，当然，听我说那就更是隔靴搔痒了。 首先说Markdown， 简单的说，Markdown现在火的没有道理，单单从语言特性方面分析，列表里面的大伙也讨论过这事，结论是最大的原因是Github的强烈推广，Markdown算是Github的官方标记语言了。 不得不说ReST有一个比较悲剧的名字，用全称太长，用缩写如果用rest，很容易和同字母英语单词“其余”混淆，如果用REST，呃，REST也早有了约定俗成的含义，指的是一种网络接口的设计风格。所以，大家一般就用ReST，或者用rst来称呼reStructuredText。 ReST是Docutils的标记语法，二Docutils是Python世界的文档工具集。 也因为这样ReST在Python界中被广泛应用，比如Sphinx&#8211;这个基于Docutils的文档工具&#8211;事实上作为Python中的标准文档工具被广泛使用了。比如Python官方文档。因为Sphinx可以生成多种格式， 设计思路对比 &#8230; <a href="http://ieqi.net/2012/04/13/markdown-%e8%bf%98%e6%98%af-restructuredtext/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Markdown 还是 reStructuredText</p>
<p><span id="more-916"></span></p>
<p><code><br />
Markdown 还是 reST<br />
====================</code></p>
<p>*胡言乱语，未完待续，之所以发出来是因为不想再像其他文章一样，一直在草稿箱里直到只剩删除的价值。*</p>
<p>什么是什么？<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</p>
<p>Markdown和reST都是标记语言（markup languages）。什么是标记语言？等会儿再说。</p>
<p>Markdown就叫Markdown，而reST是个缩写，reST的全称是reStructuredText。</p>
<p>什么是标记语言？<br />
~~~~~~~~~~~~~</p>
<p>我们知道作为直接映射自然语言的文本语言在直接书写为纯文本以后，实际上这样文本的所能表达的意义往往不能达到我们需要的标准。</p>
<p>我们引入标记，是为了扩展语义。最简单的就是空格、换行、符号。 但是这还是不够用。 所以我们有了更完备的标记语言，比如LaTex、XML，但是问题来了，这样过于复杂了，首先是书写上复杂了，比如XML，已经很难直接去手动编辑原始XML文本文件了，只能依靠工具了。原始文本的理解难度也增加了，比如你要看懂一个复杂的LaTex源文件确实需要一些功夫，原本文本直接表意的功能就丧失了。</p>
<p>什么是Markdown？<br />
~~~~~~~~~~~~~~~</p>
<p>什么是reST?<br />
~~~~~~~~~~~~~</p>
<p>都是完美惹的祸<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>我为什么要说这个题目呢？很难表达清楚，只是隐隐约约觉得需要喷，或者说是吐槽。</p>
<p>而且，这篇文章成稿已久，我觉得如果想很多稿子一样放到只有被删的价值，那还不如一吐为快。</p>
<p>尽快，我已经知道这又是一篇断断续续毫无章法的胡言乱语。那么开始吧。</p>
<p>那么，我想说什么呢？</p>
<p>我想说</p>
<p>在这个不完美的世界，作为力求完美的人，真他妈的是个令人焦虑的事情。</p>
<p>现状<br />
&#8212;&#8212;&#8212;&#8212;-</p>
<p>现状就是很多事实交织在一起，你不去伸出手摸摸，根本无从了解，当然，就算是摸了也不免瞎人摸象，当然，听我说那就更是隔靴搔痒了。</p>
<p>首先说Markdown，</p>
<p>简单的说，Markdown现在火的没有道理，单单从语言特性方面分析，列表里面的大伙也讨论过这事，结论是最大的原因是Github的强烈推广，Markdown算是Github的官方标记语言了。</p>
<p>不得不说ReST有一个比较悲剧的名字，用全称太长，用缩写如果用rest，很容易和同字母英语单词“其余”混淆，如果用REST，呃，REST也早有了约定俗成的含义，指的是一种网络接口的设计风格。所以，大家一般就用ReST，或者用rst来称呼reStructuredText。</p>
<p>ReST是Docutils的标记语法，二Docutils是Python世界的文档工具集。</p>
<p>也因为这样ReST在Python界中被广泛应用，比如Sphinx&#8211;这个基于Docutils的文档工具&#8211;事实上作为Python中的标准文档工具被广泛使用了。比如Python官方文档。因为Sphinx可以生成多种格式，</p>
<p>设计思路对比<br />
&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>先来看一下Markdown，</p>
<p>官方的说法直截了当，Markdown就是个 text-to-HTML 的工具。</p>
<p>所以说，从一开始，Markdown 就确立了它与HTML的亲缘性。这是 Markdown 的设计立足点。</p>
<p>Markdown包含两个部分，</p>
<p>1. 文本结构化格式，也就是标记语言</p>
<p>2. 另外与之配套的生成HTML的 perl 程序。</p>
<p>作为标记语言，Markdown的目标</p>
<p>相比与 Markdown ， reST 显然是经过精心设计的。</p>
<p>reST的目标是，建立一套标准文本结构化格式用以将文档转化为有用的数据格式。</p>
<p>不得不说的是这句话一点都不Pythonic，和政治书上的句子似的。</p>
<p>所以Pythoner给出了更具体的阐述：</p>
<p>按重要程度依次罗列：</p>
<p>1. Readable，是可阅读的，reST的原文本必须可以很容易的直接阅读而不需要了解reST的标记语法。</p>
<p>2. Unobtrusive，不突兀的，reST 所使用的标记应该是尽量简单并且不突兀的。越是常用的标记越应该简单和不碍眼的。不太常用的标记，或者是表达特殊意义的标记应该鲜明。</p>
<p>3. Unambiguous，没有歧义的，标记规则是确定的，不能再重载定义，对于给定的一个输入，只有一个可能的输出，包括输出错误。</p>
<p>4. Unsurprising，不出乎预期的，非“魔法”的，标记语言可以不输出不想输出的内容。所以，需要一个方式（标记）作为标记不期望输出标记之用。比如，当你想要向别人展示reST源代码时，你要标记这块reST源码不需要被结构化。</p>
<p>5. Intuitive， 直观的，标签应该尽可能的容易被记住。人们可以在文档中直接使用。</p>
<p>6. Easy，简单，</p>
<p>通过一段时间的使用，我觉得Markdown和reST都可以说达到了他们的既定目标。</p>
<p>进过一段时间的使用，我觉得reST基本达到了预定的目标。</p>
<p>权衡的艺术<br />
~~~~~~~~~~~</p>
<p>通过以上的比较，我们发现，reST承载的目标要比 Markdown 多很多。最重要的不同就在于 Markdown 只是为了输出 HTML ，而 reST 的目标之一就是可以转化为其他格式。</p>
<p>当然，说权衡是艺术，还不如说其实就是瞎子摸象弄出一些聊以自慰的藉口罢了。</p>
<p>不过从已经获取到的相关信息，我们可以初步做一个判断，用Markdown作为中心书写工具（一般是配合Pandoc）相对于使用reST做中心书写工具是不佳的。何况，又引入了新的工具（Pandoc）和语言（Haskell），这都是非必要的正熵，背离了KISS原则。</p>
<p>说了这么多其实就一句话：</p>
<p>我们选择标记语言实际上是在表意与简便之间做权衡，我们的理想目标是即表意丰富又使用简便。</p>
<p>但是，这个世界上鱼和熊掌得兼的事情不多，往往我们只能根据自己的需要去寻找一个最优平衡点来决策。</p>
<p>其实，我只是想写个reST就是好啊就是好的吐槽文，没想到还是逼着自己去把相关的资料翻阅了一下，查阅这些资料不是为了更好的吐槽，是为了让自己心里更踏实一些。</p>
<p>另外这篇文章同时符合markdown和reST语法。</p>
]]></content:encoded>
			<wfw:commentRss>http://ieqi.net/2012/04/13/markdown-%e8%bf%98%e6%98%af-restructuredtext/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>安装msgpack-lua</title>
		<link>http://ieqi.net/2012/03/02/%e5%ae%89%e8%a3%85msgpack-lua/</link>
		<comments>http://ieqi.net/2012/03/02/%e5%ae%89%e8%a3%85msgpack-lua/#comments</comments>
		<pubDate>Fri, 02 Mar 2012 06:04:52 +0000</pubDate>
		<dc:creator>G_will</dc:creator>
				<category><![CDATA[My Works]]></category>

		<guid isPermaLink="false">http://ieqi.net/?p=928</guid>
		<description><![CDATA[因为最近要弄一些新的东西，需要了解一下msgpack的lua库。 网上看了一下除了项目官网貌似很少有被提到，那么我就来写吧。 系统：Ubuntu Server 11.04 首先装msgpack c++的库。 sudo -s #图个方便 apt-get install gcc g++ make automake libtool pkg-config #编译用到的工具 apt-get install lua5.1 lua5.1-policy-dev #lua和lua开发包，编译需要用到 wget http://msgpack.org/releases/cpp/msgpack-0.5.7.tar.gz #下载msgpack c++库源码 tar zxvf msgpack-0.5.7.tar.gz #解压 cd msgpack-0.5.7 ./configure make make install #编译安装 接下来是mplua的安装 &#8230; <a href="http://ieqi.net/2012/03/02/%e5%ae%89%e8%a3%85msgpack-lua/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>因为最近要弄一些新的东西，需要了解一下msgpack的lua库。</p>
<p>网上看了一下除了项目官网貌似很少有被提到，那么我就来写吧。</p>
<p><span id="more-928"></span></p>
<p>系统：Ubuntu Server 11.04</p>
<p>首先装msgpack c++的库。</p>
<pre>
sudo -s #图个方便
apt-get install gcc g++ make automake libtool pkg-config #编译用到的工具
apt-get install lua5.1 lua5.1-policy-dev #lua和lua开发包，编译需要用到
wget http://msgpack.org/releases/cpp/msgpack-0.5.7.tar.gz #下载msgpack c++库源码
tar zxvf msgpack-0.5.7.tar.gz #解压
cd msgpack-0.5.7
./configure
make
make install #编译安装
</pre>
<p>接下来是mplua的安装</p>
<pre>
cd ..
git clone https://github.com/nobu-k/mplua.git #没有git就安装一下git： apt-get install git
cd mplua
</pre>
<p>这里和项目官网写的就不一样了。官网里直接configure编译。</p>
<pre>
./autogen.sh
./configure
make
make install
</pre>
<p>然后提示lib是编译好了，但是链接没有做好，因为目录不存在，然后手动建立一个软连接/usr/local/lib/lua/5.1/msgpack.so -&gt; /usr/local/lib/libmsgpack-lua.so</p>
<p>进入lua命令行测试一下</p>
<pre>
lua
&gt; require "msgpack"
&gt; a, b, c = msgpack.unpack(msgpack.pack(1, 2, 3))
&gt; print(a)
1
&gt; print(b)
2
&gt; print(c)
3
</pre>
<p>好了，可以用了。</p>
]]></content:encoded>
			<wfw:commentRss>http://ieqi.net/2012/03/02/%e5%ae%89%e8%a3%85msgpack-lua/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XDMC新版网站开始部署</title>
		<link>http://ieqi.net/2011/11/14/xdmc%e6%96%b0%e7%89%88%e7%bd%91%e7%ab%99%e5%bc%80%e5%a7%8b%e9%83%a8%e7%bd%b2/</link>
		<comments>http://ieqi.net/2011/11/14/xdmc%e6%96%b0%e7%89%88%e7%bd%91%e7%ab%99%e5%bc%80%e5%a7%8b%e9%83%a8%e7%bd%b2/#comments</comments>
		<pubDate>Mon, 14 Nov 2011 05:57:38 +0000</pubDate>
		<dc:creator>G_will</dc:creator>
				<category><![CDATA[Ieqi.Net Studio]]></category>

		<guid isPermaLink="false">http://ieqi.net/?p=919</guid>
		<description><![CDATA[XDMC新版网站开始部署了。 http://xdmc.org 顺带着的还有新版的数谷论坛 http://forum.xdmc.org 内容还在充实，细节仍在调整中。 有什么建议、或者意见可以直接在这里留言。 等忙完这段时间我会把这次做的东西都开源，并附上一些心得。]]></description>
			<content:encoded><![CDATA[<p>XDMC新版网站开始部署了。</p>
<p><a href="http://xdmc.org">http://xdmc.org</a></p>
<p>顺带着的还有新版的数谷论坛</p>
<p><a href="http://forum.xdmc.org">http://forum.xdmc.org</a></p>
<p>内容还在充实，细节仍在调整中。</p>
<p>有什么建议、或者意见可以直接在这里留言。</p>
<p>等忙完这段时间我会把这次做的东西都开源，并附上一些心得。</p>
]]></content:encoded>
			<wfw:commentRss>http://ieqi.net/2011/11/14/xdmc%e6%96%b0%e7%89%88%e7%bd%91%e7%ab%99%e5%bc%80%e5%a7%8b%e9%83%a8%e7%bd%b2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>用Nginx代理hg仓库</title>
		<link>http://ieqi.net/2011/10/24/%e7%94%a8nginx%e4%bb%a3%e7%90%86hg%e4%bb%93%e5%ba%93/</link>
		<comments>http://ieqi.net/2011/10/24/%e7%94%a8nginx%e4%bb%a3%e7%90%86hg%e4%bb%93%e5%ba%93/#comments</comments>
		<pubDate>Mon, 24 Oct 2011 07:12:11 +0000</pubDate>
		<dc:creator>G_will</dc:creator>
				<category><![CDATA[Ieqi.Net Studio]]></category>

		<guid isPermaLink="false">http://ieqi.net/?p=909</guid>
		<description><![CDATA[******************** 用Nginx代理hg仓库 ******************** 准备工作 ============ #. 安装配置nginx &#8211; Ubuntu下源中有nginx安装方便 &#8211; CentOS可以用epel源、第三方源或者编译安装 &#8211; 具体细节另论 #. 安装mercurial &#8211; Ubuntu下源中有 sudo apt-get install mercurial &#8211; CentOS下源中也有 yum install mercurial 建立仓库 ============ 假设仓库位置为/var/repo #. 初始化 $cd /var/repo $hg init #. 配置仓库本地用户 $vim /var/reop/.hg/hgrc :: &#8230; <a href="http://ieqi.net/2011/10/24/%e7%94%a8nginx%e4%bb%a3%e7%90%86hg%e4%bb%93%e5%ba%93/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>********************<br />
用Nginx代理hg仓库<br />
********************</p>
<p><span id="more-909"></span><br />
准备工作<br />
============<br />
#. 安装配置nginx<br />
     &#8211; Ubuntu下源中有nginx安装方便<br />
     &#8211; CentOS可以用epel源、第三方源或者编译安装<br />
     &#8211; 具体细节另论<br />
#. 安装mercurial<br />
     &#8211; Ubuntu下源中有  sudo apt-get install mercurial<br />
     &#8211; CentOS下源中也有 yum install mercurial</p>
<p>建立仓库<br />
============</p>
<p>假设仓库位置为/var/repo</p>
<p>#. 初始化<br />
    $cd /var/repo<br />
    $hg init</p>
<p>#. 配置仓库本地用户<br />
    $vim /var/reop/.hg/hgrc</p>
<p>::<br />
    [ui]<br />
    username = yourname </p>
<p>#. 添加文件<br />
    $hg add .<br />
    $hg ci<br />
    `输入提交信息`</p>
<p>#. 建立hg serve配置文件<br />
    $vim /var/repo/hgweb-conf</p>
<p>::<br />
    [web]<br />
    push_ssl = false<br />
    allow_push = *<br />
    encoding = &#8220;UTF-8&#8243;<br />
    [paths]<br />
    /hg = /var/repo  </p>
<p>    [hooks]<br />
    changegroup = hg update  </p>
<p>     #配置了一个hook，用于每次客户端push时，都自动update，方便。</p>
<p>#. 启动hg serve<br />
<code><br />
    $hg --cwd /var/repo serve -d -a localhost --webdir-conf hgweb-config<br />
</code><br />
    &#8211; 其中&#8211;cwd 为仓库目录，serve为启动hg http服务器，-d为以守护进程启动，-a 为使用域，配置为localhost可以禁止直接访问，&#8211;webdir-conf为指定hg serve 配置文件<br />
    &#8211; 可以将此命令写入/etc/rc.local （或者是/etc/rc.d/rc.local）中，使其开机自动启动</p>
<p>配置nginx反向代理<br />
================</p>
<p>#. 修改nginx主配置，添加如下配置</p>
<p>::<br />
    location /hg {<br />
        proxy_pass http://localhost:8000;<br />
        auth_basic &#8220;Restricted&#8221;;<br />
        auth_basic_user_file htpasswd;<br />
    }</p>
<p>     &#8211; auth_basic_user_file htpasswd; 为指定验证配置文件，用于仓库权限管理。</p>
<p>#. 配置访问验证<br />
     &#8211; 下载http://trac.edgewall.org/browser/trunk/contrib/htpasswd.py 脚本到/etc/nginx<br />
     &#8211;  执行 $python htpasswd.py -c -b yourname yourpasswd<br />
     &#8211;  其中，-c为创建文件，所以再添加用户则不需要-c参数，-b为直接添加用户和密码，不必等待提示再输入。</p>
<p>#. 重起Nginx<br />
     &#8211; $service nginx restart<br />
     &#8211; 应该也可以reload， $ /usr/sbin/nginx -s reload</p>
<p>完成<br />
=============<br />
这样就可以通过 http://你机子的地址/hg 来访问仓库了。</p>
<p>另外<br />
============<br />
使用TortoiseHG连接词ci co都需要密码不方便。</p>
<p>可以这样设置。<br />
在TortoiseHG 配置path时，配置default地址为 http://yourname:yourpasswd@你机子的地址/hg 保存且不移除头部信息。</p>
<p>这样就可以不用每次都输入用户名密码了，十分方便。</p>
]]></content:encoded>
			<wfw:commentRss>http://ieqi.net/2011/10/24/%e7%94%a8nginx%e4%bb%a3%e7%90%86hg%e4%bb%93%e5%ba%93/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>又错了</title>
		<link>http://ieqi.net/2011/10/23/%e5%8f%88%e9%94%99%e4%ba%86/</link>
		<comments>http://ieqi.net/2011/10/23/%e5%8f%88%e9%94%99%e4%ba%86/#comments</comments>
		<pubDate>Sun, 23 Oct 2011 14:40:19 +0000</pubDate>
		<dc:creator>G_will</dc:creator>
				<category><![CDATA[G_will`s Redemption]]></category>

		<guid isPermaLink="false">http://ieqi.net/?p=906</guid>
		<description><![CDATA[说实话，我真是一个挺他妈的不靠的人。 心急火燎的整出一些糟絮，没头没脑的干一些烂事，还有怨气。 回头一想，唉，应该是我又做错了。 其实应该遵循的道理都明白，也就那么几条。 但是就是做不到，这也许就是我等凡人与牛人的区别吧。 就是这样，记录一下常看看，思维的局限得要自己才能跳出去，常看常新吧。]]></description>
			<content:encoded><![CDATA[<p>说实话，我真是一个挺他妈的不靠的人。</p>
<p><span id="more-906"></span></p>
<p>心急火燎的整出一些糟絮，没头没脑的干一些烂事，还有怨气。</p>
<p>回头一想，唉，应该是我又做错了。</p>
<p>其实应该遵循的道理都明白，也就那么几条。</p>
<p>但是就是做不到，这也许就是我等凡人与牛人的区别吧。</p>
<p>就是这样，记录一下常看看，思维的局限得要自己才能跳出去，常看常新吧。</p>
]]></content:encoded>
			<wfw:commentRss>http://ieqi.net/2011/10/23/%e5%8f%88%e9%94%99%e4%ba%86/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>继续前进</title>
		<link>http://ieqi.net/2011/10/08/%e7%bb%a7%e7%bb%ad%e5%89%8d%e8%bf%9b/</link>
		<comments>http://ieqi.net/2011/10/08/%e7%bb%a7%e7%bb%ad%e5%89%8d%e8%bf%9b/#comments</comments>
		<pubDate>Sat, 08 Oct 2011 00:13:22 +0000</pubDate>
		<dc:creator>G_will</dc:creator>
				<category><![CDATA[G_will`s Redemption]]></category>

		<guid isPermaLink="false">http://ieqi.net/?p=887</guid>
		<description><![CDATA[过完一个令人崩溃的十一长假，也来不及整理什么思绪，只能整装待发继续前进了。 有时候想，不管是博客，还是微博，毕竟都是写给别人看的，很多要对自己的说的东西不足为外人道也。 自己整理思绪所需的记录，也可以有更好的途径来完成，所以这么看来，博客的荒芜好像是必然的。 当然时常还有一些工作、技术、学习方面的心得值得记录，但是往往自己都觉得单薄，不好意思拿出来献丑，只能标记一下扔进碎片笔记库里。 最近在readthedocs上无意看到了一些统计学和R相关方面的文档，或者也可以说是书，作者是在github上建的源文件文档，利用的是python标准文档格式rst和Sphinx进行书写，这是我所心仪的方式，所以我既没有与作者联系，也没有考虑版权方面的东西就径直fork了源文档库出来，并开始翻译。不过翻译了一些以后发现这些文字还是不那么令我满意的，你懂得，正像我这般没什么成绩的人，对什么东西都好像心存不满，不过我还是会继续翻译下去的，为的是更加熟悉ReST以及更好的使用Python、Sphinx、Readthedocs这些切实可以提高生存率的东西，当然这是后话了。 有感兴趣的朋友可以联系我，也可以看这里Little Books of R(zh_CN) 。 最近还有很多计划内的事务需要完成，也有一些必须要实践而非空想的事情需要去做。]]></description>
			<content:encoded><![CDATA[<p>过完一个令人崩溃的十一长假，也来不及整理什么思绪，只能整装待发继续前进了。</p>
<p><span id="more-887"></span></p>
<p>有时候想，不管是博客，还是微博，毕竟都是写给别人看的，很多要对自己的说的东西不足为外人道也。</p>
<p>自己整理思绪所需的记录，也可以有更好的途径来完成，所以这么看来，博客的荒芜好像是必然的。</p>
<p>当然时常还有一些工作、技术、学习方面的心得值得记录，但是往往自己都觉得单薄，不好意思拿出来献丑，只能标记一下扔进碎片笔记库里。</p>
<p>最近在readthedocs上无意看到了一些统计学和R相关方面的文档，或者也可以说是书，作者是在github上建的源文件文档，利用的是python标准文档格式rst和Sphinx进行书写，这是我所心仪的方式，所以我既没有与作者联系，也没有考虑版权方面的东西就径直fork了源文档库出来，并开始翻译。不过翻译了一些以后发现这些文字还是不那么令我满意的，你懂得，正像我这般没什么成绩的人，对什么东西都好像心存不满，不过我还是会继续翻译下去的，为的是更加熟悉ReST以及更好的使用Python、Sphinx、Readthedocs这些切实可以提高生存率的东西，当然这是后话了。</p>
<p>有感兴趣的朋友可以联系我，也可以看这里<a href="http://readthedocs.org/docs/little-books-of-r-zh_cn/en/latest/">Little Books of R(zh_CN)</a> 。</p>
<p>最近还有很多计划内的事务需要完成，也有一些必须要实践而非空想的事情需要去做。</p>
]]></content:encoded>
			<wfw:commentRss>http://ieqi.net/2011/10/08/%e7%bb%a7%e7%bb%ad%e5%89%8d%e8%bf%9b/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>无可奈何</title>
		<link>http://ieqi.net/2011/08/03/%e6%97%a0%e5%8f%af%e5%a5%88%e4%bd%95/</link>
		<comments>http://ieqi.net/2011/08/03/%e6%97%a0%e5%8f%af%e5%a5%88%e4%bd%95/#comments</comments>
		<pubDate>Wed, 03 Aug 2011 14:57:48 +0000</pubDate>
		<dc:creator>G_will</dc:creator>
				<category><![CDATA[Opinions]]></category>

		<guid isPermaLink="false">http://ieqi.net/?p=881</guid>
		<description><![CDATA[拐弯抹角的，提出应该使用MySQL的建议，然后被否决，理由，一，是开源，但是商业发行版也要钱，比如***（不怎么样的网络公司）就是这样，要很多钱啊！！理由二，当年用过，一条insert不成功，不稳定，不能用。 听到这些话，纵有千言，一个字也憋不出来，低头挠了一下脑门，叹了一口气，走了。 关于理由一，确实这个无力吐槽，GPL也可以卖钱，你要愿挨就不能怪人家想打。 关于理由二，我心说，操，要是哪天SQL Server insert不成功，那才叫爽呢。]]></description>
			<content:encoded><![CDATA[<p>拐弯抹角的，提出应该使用MySQL的建议，然后被否决，理由，一，是开源，但是商业发行版也要钱，比如***（不怎么样的网络公司）就是这样，要很多钱啊！！理由二，当年用过，一条insert不成功，不稳定，不能用。</p>
<p>听到这些话，纵有千言，一个字也憋不出来，低头挠了一下脑门，叹了一口气，走了。</p>
<p>关于理由一，确实这个无力吐槽，GPL也可以卖钱，你要愿挨就不能怪人家想打。<br />
关于理由二，我心说，操，要是哪天SQL Server insert不成功，那才叫爽呢。</p>
]]></content:encoded>
			<wfw:commentRss>http://ieqi.net/2011/08/03/%e6%97%a0%e5%8f%af%e5%a5%88%e4%bd%95/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>没有文才的愤懑青年胡言乱语</title>
		<link>http://ieqi.net/2011/08/03/%e6%b2%a1%e6%9c%89%e6%96%87%e6%89%8d%e7%9a%84%e6%84%a4%e6%87%91%e9%9d%92%e5%b9%b4%e8%83%a1%e8%a8%80%e4%b9%b1%e8%af%ad/</link>
		<comments>http://ieqi.net/2011/08/03/%e6%b2%a1%e6%9c%89%e6%96%87%e6%89%8d%e7%9a%84%e6%84%a4%e6%87%91%e9%9d%92%e5%b9%b4%e8%83%a1%e8%a8%80%e4%b9%b1%e8%af%ad/#comments</comments>
		<pubDate>Wed, 03 Aug 2011 14:23:34 +0000</pubDate>
		<dc:creator>G_will</dc:creator>
				<category><![CDATA[G_will`s Redemption]]></category>

		<guid isPermaLink="false">http://ieqi.net/?p=876</guid>
		<description><![CDATA[内心纵有千重话但终究憋不出几个字来，写文章确实需要天赋，我辈愤懑青年应当谨记。 就像遇到其他问题，面临无法表达的问题，也需要仔细考量，以期寻找解决办法。 解决办法一，多写，不管写的怎么样尽量多多写。 以前，除了发一些垃圾牢骚在博客上，也就是把博客当备忘录用一下，记一些技术相关的东西，但是现在Evernote等碎片记录工具太过方便，也便不用再在博客上记一些无聊的东西了。 而且，自己才疏学浅没有什么可以拿出来展示的积累，一些平时遇到的问题和解决问题的方法也没有什么值得说的，所以博客内容太过贫乏。 以后，应该调整态度，不管是什么东西总有可以说的，不管有没有营养，为了磨砺自己的表达，也就不再顾及冗余的繁絮了。 解决方法二，写点不同的东西。 没办法，仔细反省，每当手扶键盘，心有所思的时候，往往是延续着是小学、中学那种面对作文纸的心理状态，我也许是很容易执着的人，往往陷入我执，让以往那种不健康的心态感染自己，难以自拔。当然在做什么事情的时候都是对以往经验的延续，只是小学和中学的语文教育让我对于文字的把握非常吃力，进而产生恐惧，难以前进，只得徘徊。 既然如此，那么只好跳出这种不健康的状态，我所想的方式便是利用表达方式即文本形式的转变来改变书写心理状态。 我想到二种可行的文体，其一，进行短而主管的评论，其二，问答体。对于评论，主管而为意在肆意，不求深刻只求流畅。对于问答体，我想，不管是对于自己的命题还是对于自己所听到的命题都应该有所质疑，也就是问，所以问答体，在形式上就可以逼近我所希望的这种功效，不妨一试。 以上即为今日琐记。]]></description>
			<content:encoded><![CDATA[<p>内心纵有千重话但终究憋不出几个字来，写文章确实需要天赋，我辈愤懑青年应当谨记。<br />
<span id="more-876"></span></p>
<p>就像遇到其他问题，面临无法表达的问题，也需要仔细考量，以期寻找解决办法。</p>
<p>解决办法一，多写，不管写的怎么样尽量多多写。</p>
<p>以前，除了发一些垃圾牢骚在博客上，也就是把博客当备忘录用一下，记一些技术相关的东西，但是现在Evernote等碎片记录工具太过方便，也便不用再在博客上记一些无聊的东西了。</p>
<p>而且，自己才疏学浅没有什么可以拿出来展示的积累，一些平时遇到的问题和解决问题的方法也没有什么值得说的，所以博客内容太过贫乏。</p>
<p>以后，应该调整态度，不管是什么东西总有可以说的，不管有没有营养，为了磨砺自己的表达，也就不再顾及冗余的繁絮了。</p>
<p>解决方法二，写点不同的东西。</p>
<p>没办法，仔细反省，每当手扶键盘，心有所思的时候，往往是延续着是小学、中学那种面对作文纸的心理状态，我也许是很容易执着的人，往往陷入我执，让以往那种不健康的心态感染自己，难以自拔。当然在做什么事情的时候都是对以往经验的延续，只是小学和中学的语文教育让我对于文字的把握非常吃力，进而产生恐惧，难以前进，只得徘徊。</p>
<p>既然如此，那么只好跳出这种不健康的状态，我所想的方式便是利用表达方式即文本形式的转变来改变书写心理状态。</p>
<p>我想到二种可行的文体，其一，进行短而主管的评论，其二，问答体。对于评论，主管而为意在肆意，不求深刻只求流畅。对于问答体，我想，不管是对于自己的命题还是对于自己所听到的命题都应该有所质疑，也就是问，所以问答体，在形式上就可以逼近我所希望的这种功效，不妨一试。</p>
<p>以上即为今日琐记。</p>
]]></content:encoded>
			<wfw:commentRss>http://ieqi.net/2011/08/03/%e6%b2%a1%e6%9c%89%e6%96%87%e6%89%8d%e7%9a%84%e6%84%a4%e6%87%91%e9%9d%92%e5%b9%b4%e8%83%a1%e8%a8%80%e4%b9%b1%e8%af%ad/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[2011-07-27]</title>
		<link>http://ieqi.net/2011/08/03/2011-07-27/</link>
		<comments>http://ieqi.net/2011/08/03/2011-07-27/#comments</comments>
		<pubDate>Wed, 03 Aug 2011 13:50:53 +0000</pubDate>
		<dc:creator>G_will</dc:creator>
				<category><![CDATA[Ieqi.Net Studio]]></category>

		<guid isPermaLink="false">http://ieqi.net/?p=864</guid>
		<description><![CDATA[wp3.2.1发布几天了，没什么大事，今天也就顺便跟着升级了。 后台字体很难看。]]></description>
			<content:encoded><![CDATA[<p>wp3.2.1发布几天了，没什么大事，今天也就顺便跟着升级了。</p>
<p>后台字体很难看。</p>
]]></content:encoded>
			<wfw:commentRss>http://ieqi.net/2011/08/03/2011-07-27/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

