<?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>.::灵狼天::.</title>
	<atom:link href="http://icyleaf.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://icyleaf.com</link>
	<description>Everything is selfish, include the God.</description>
	<lastBuildDate>Tue, 03 Aug 2010 09:12:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>如何保持在 Git Submodule 代码的开放和私有共存</title>
		<link>http://icyleaf.com/2010/08/03/how-to-keep-public-and-private-versions-of-a-git-submodule-repo-in-sync/</link>
		<comments>http://icyleaf.com/2010/08/03/how-to-keep-public-and-private-versions-of-a-git-submodule-repo-in-sync/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 09:11:07 +0000</pubDate>
		<dc:creator>icyleaf</dc:creator>
				<category><![CDATA[网络开发]]></category>
		<category><![CDATA[git]]></category>

		<guid isPermaLink="false">http://icyleaf.com/?p=798</guid>
		<description><![CDATA[假设我在 github 有一个开源的版本库 x 供大家使用，该库里面又包含了好些个 submodules，其中有一个 submodule 名为 a 是自己在 github 又创建的: ?View Code BASH$ git submodule add http://github.com/icyleaf/a.git modules/a 现在问题是，由于代码需要更新，同时涉及到了 a 这个 submodule，但是它的添加 url 是 read-only，由于 x 这个库是供大家使用，因此 a 又不能设为 private： ?View Code BASH$ git clone git@github.com:icyleaf/a.git modules/a 目前想到的方法是在 &#8230; <a href="http://icyleaf.com/2010/08/03/how-to-keep-public-and-private-versions-of-a-git-submodule-repo-in-sync/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>假设我在 github 有一个开源的版本库 x 供大家使用，该库里面又包含了好些个 submodules，其中有一个 submodule 名为 a 是自己在 github 又创建的:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p798code7'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p7987"><td class="code" id="p798code7"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">git</span> submodule add  http:<span style="color: #000000; font-weight: bold;">//</span>github.com<span style="color: #000000; font-weight: bold;">/</span>icyleaf<span style="color: #000000; font-weight: bold;">/</span>a.git modules<span style="color: #000000; font-weight: bold;">/</span>a</pre></td></tr></table></div>

<p>现在问题是，由于代码需要更新，同时涉及到了 a 这个 submodule，但是它的添加 url 是 read-only，由于 x 这个库是供大家使用，因此 a 又不能设为 private：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p798code8'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p7988"><td class="code" id="p798code8"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">git</span> clone <span style="color: #c20cb9; font-weight: bold;">git</span><span style="color: #000000; font-weight: bold;">@</span>github.com:icyleaf<span style="color: #000000; font-weight: bold;">/</span>a.git modules<span style="color: #000000; font-weight: bold;">/</span>a</pre></td></tr></table></div>

<p>目前想到的方法是在 x 库以外 clone 下来 a，进行私有的写入和 push 到 github 上面，然后在 x 库的 a 里 git pull 下来获得最新的代码。</p>
<p>如何解决这样的问题，能够当大家全部 clone 下来，而自己开发也能避免麻烦？</p>
<p>在一篇<a rel="nofollow external" href="http://longair.net/blog/2010/06/02/git-submodules-explained/">文章</a>上面找到了灵感，折腾了一番搞定了 <img src="http://kohana.cn/media/images/icons/emoticon/smile.png" alt="" /></p>
<p>该文章有一节讲到，开发者如果经常需要更新 submodule ，即可更换  submodule 的 remote url：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p798code9'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p7989"><td class="code" id="p798code9"><pre class="bash" style="font-family:monospace;">$ <span style="color: #7a0874; font-weight: bold;">cd</span> commonlib
$ <span style="color: #c20cb9; font-weight: bold;">git</span> remote <span style="color: #c20cb9; font-weight: bold;">rm</span> origin
$ <span style="color: #c20cb9; font-weight: bold;">git</span> remote add origin <span style="color: #c20cb9; font-weight: bold;">ssh</span>:<span style="color: #000000; font-weight: bold;">//</span>mark<span style="color: #000000; font-weight: bold;">@</span>git.mysociety.org<span style="color: #000000; font-weight: bold;">/</span>data<span style="color: #000000; font-weight: bold;">/</span>git<span style="color: #000000; font-weight: bold;">/</span>public<span style="color: #000000; font-weight: bold;">/</span>commonlib.git
$ <span style="color: #c20cb9; font-weight: bold;">git</span> remote <span style="color: #660033;">-v</span>
origin    <span style="color: #c20cb9; font-weight: bold;">ssh</span>:<span style="color: #000000; font-weight: bold;">//</span>mark<span style="color: #000000; font-weight: bold;">@</span>git.mysociety.org<span style="color: #000000; font-weight: bold;">/</span>data<span style="color: #000000; font-weight: bold;">/</span>git<span style="color: #000000; font-weight: bold;">/</span>public<span style="color: #000000; font-weight: bold;">/</span>commonlib.git
&nbsp;
&nbsp;
However, you’ll <span style="color: #c20cb9; font-weight: bold;">find</span> that two helpful config options will have been deleted when removing and adding back origin, so you’ll want to add these back.
&nbsp;
&nbsp;
$ <span style="color: #c20cb9; font-weight: bold;">git</span> config branch.master.remote origin
$ <span style="color: #c20cb9; font-weight: bold;">git</span> config branch.master.merge refs<span style="color: #000000; font-weight: bold;">/</span>heads<span style="color: #000000; font-weight: bold;">/</span>master</pre></td></tr></table></div>

<p>首先我也先对 a 进行 git remote -v，结果显示：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p798code10'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p79810"><td class="code" id="p798code10"><pre class="bash" style="font-family:monospace;">origin	http:<span style="color: #000000; font-weight: bold;">//</span>github.com<span style="color: #000000; font-weight: bold;">/</span>icyleaf<span style="color: #000000; font-weight: bold;">/</span>a.git <span style="color: #7a0874; font-weight: bold;">&#40;</span>fetch<span style="color: #7a0874; font-weight: bold;">&#41;</span>
origin	http:<span style="color: #000000; font-weight: bold;">//</span>github.com<span style="color: #000000; font-weight: bold;">/</span>icyleaf<span style="color: #000000; font-weight: bold;">/</span>a.git <span style="color: #7a0874; font-weight: bold;">&#40;</span>push<span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></td></tr></table></div>

<p>发现和文章里面的显示的结果不一样，于是我就在想能不能在 remote 上面做些手脚，首先看下 git remote 的  help，发现有一条是可以单独设置 remote push 的 url ，也就是更换上面 git remote -v 中 push 的  url，尝试：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p798code11'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p79811"><td class="code" id="p798code11"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">git</span> remote set-url <span style="color: #660033;">--push</span> origin <span style="color: #c20cb9; font-weight: bold;">git</span><span style="color: #000000; font-weight: bold;">@</span>github.com:icyleaf<span style="color: #000000; font-weight: bold;">/</span>a.git</pre></td></tr></table></div>

<p>再次执行 remote -v:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p798code12'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p79812"><td class="code" id="p798code12"><pre class="bash" style="font-family:monospace;">origin	http:<span style="color: #000000; font-weight: bold;">//</span>github.com<span style="color: #000000; font-weight: bold;">/</span>icyleaf<span style="color: #000000; font-weight: bold;">/</span>a.git <span style="color: #7a0874; font-weight: bold;">&#40;</span>fetch<span style="color: #7a0874; font-weight: bold;">&#41;</span>
origin	<span style="color: #c20cb9; font-weight: bold;">git</span><span style="color: #000000; font-weight: bold;">@</span>github.com:icyleaf<span style="color: #000000; font-weight: bold;">/</span>a.git <span style="color: #7a0874; font-weight: bold;">&#40;</span>push<span style="color: #7a0874; font-weight: bold;">&#41;</span></pre></td></tr></table></div>

<p>执行成功！然后随意 commit 并 push orgin master，成功！</p>
<p>搞定！</p>
]]></content:encoded>
			<wfw:commentRss>http://icyleaf.com/2010/08/03/how-to-keep-public-and-private-versions-of-a-git-submodule-repo-in-sync/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nginx+FastCGI 环境搭建 Kohana</title>
		<link>http://icyleaf.com/2010/05/31/nginx-with-fastcgi-build-kohana/</link>
		<comments>http://icyleaf.com/2010/05/31/nginx-with-fastcgi-build-kohana/#comments</comments>
		<pubDate>Mon, 31 May 2010 01:34:54 +0000</pubDate>
		<dc:creator>icyleaf</dc:creator>
				<category><![CDATA[Kohana]]></category>
		<category><![CDATA[FastCGI]]></category>
		<category><![CDATA[Nginx]]></category>

		<guid isPermaLink="false">http://icyleaf.com/?p=770</guid>
		<description><![CDATA[Kohana 默认仅对 Apache 环境提供的部署支持，其实对于 Nginx+FastCGI 也是很容易支持的。本文搭建环境是 Ubuntu 10.4 并采用 apt-get 方式安装，喜爱编译的朋友可以自行解决 1. 安装 MySQL ?View Code BASHsudo apt-get install mysql-server mysql-client 安装过程在会提示设置 root 账户的密码，如果是本机测试开发可以留空后稍候设置。 2. 安装 Nginx ?View Code BASH# 安装 Nginx sudo apt-get install nginx # 启动 Nginx sudo &#8230; <a href="http://icyleaf.com/2010/05/31/nginx-with-fastcgi-build-kohana/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Kohana 默认仅对 Apache 环境提供的部署支持，其实对于 Nginx+FastCGI 也是很容易支持的。本文搭建环境是 Ubuntu 10.4 并采用 apt-get 方式安装，喜爱编译的朋友可以自行解决 <img src='http://icyleaf.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>1. 安装 MySQL</h3>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p770code29'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p77029"><td class="code" id="p770code29"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> mysql-server mysql-client</pre></td></tr></table></div>

<p>安装过程在会提示设置 root 账户的密码，如果是本机测试开发可以留空后稍候设置。</p>
<h3>2. 安装 Nginx</h3>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p770code30'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p77030"><td class="code" id="p770code30"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># 安装 Nginx</span>
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> nginx
<span style="color: #666666; font-style: italic;"># 启动 Nginx</span>
<span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>nginx start</pre></td></tr></table></div>

<p>完成上面两步之后，打开浏览器，输入 localhost 或 127.0.0.1 如果看到 <strong>Welcome to Nginx!</strong> 字样就说明安装成功了，是不是很简单 <img src='http://icyleaf.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>注意，如果你的机器上面如果安装了其他 web 容器（比如 Apache，Lighttd等），启动 ngnix 的时候肯定会报错，因为这些 web 容器启动均占用的 80 端口，更改的方法如下：<br />
编辑 /etc/nginx/sites-available/default 文件，修改 server 段中的 listen 为 localhost:8080，其中 8080 是更改的监听端口：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p770code31'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p77031"><td class="code" id="p770code31"><pre class="bash" style="font-family:monospace;">server <span style="color: #7a0874; font-weight: bold;">&#123;</span>
	listen   localhost:<span style="color: #000000;">8080</span>;
	server_name  localhost;
&nbsp;
<span style="color: #666666; font-style: italic;"># [...]</span></pre></td></tr></table></div>

<p>保存后重启Nginx：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p770code32'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p77032"><td class="code" id="p770code32"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>nginx restart</pre></td></tr></table></div>

<p><span id="more-770"></span></p>
<h3>3. 安装 PHP5</h3>
<p>PHP 在 Nginx 下是通过 FastCGI 模式运行的，使用 Debain 的包管理可以安装 PHP5 和一些必须的（比如，php5-mysql）和可选的扩展（比如，Kohana 要求的 php5-curl，php5-gd，php5-mcrypt），下面前 5 个是必须的，其他可以依据个人需求添加或减少：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p770code33'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p77033"><td class="code" id="p770code33"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> php5-cgi php5-mysql php5-curl php5-gd php5-mcrypt php5-idn php-pear php5-imagick php5-imap php5-memcache php5-mhash php5-ming php5-pspell php5-recode php5-snmp php5-tidy php5-xmlrpc php5-xsl</pre></td></tr></table></div>

<p>安装完毕后，需要编辑 php 的配置：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p770code34'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p77034"><td class="code" id="p770code34"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># 编辑 /etc/php5/cgi/php.ini 文件</span>
<span style="color: #666666; font-style: italic;"># 修改 cgi.fix_pathinfo 的值为 1（如果此项被注解掉了，请删除前面的 # 符号）</span>
cgi.fix_pathinfo = <span style="color: #000000;">1</span></pre></td></tr></table></div>

<p>至此 PHP5 已经安装完毕，但是还没有结束，因为我们还没有让它支持 FastCGI 嗯，由于 Debain 包并没有提供单独的 FastCGI 守护程序，因此我们可以使用其他的方式实现，通常使用的是 lighttpd 项目提供的 spawn-fcgi（本文也用的这个，但是它总会出现小毛病，导致 Nginx 服务 Down 掉，稍候也会给出一点解决方案）或者是 <a href="http://php-fpm.org/" target="_blank">PHP-FPM</a>（专门为 PHP 提供 FastCGI 进程管理的软件）</p>
<p>好吧，让我们在安装 lighttpd：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p770code35'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p77035"><td class="code" id="p770code35"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> lighttpd</pre></td></tr></table></div>

<p>安装完毕后会你发现一些错误信息：</p>
<blockquote><p>
Starting web server: lighttpd<br />
2010-05-31 10:44:51: (network.c.300) can't bind to port: 80 Address already in use failed!
</p></blockquote>
<p>还是上面提到的重复占用端口的问题，不过由于我们只是使用它的 spawn-fcgi 因此我们可以不让它当作服务启动：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p770code36'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p77036"><td class="code" id="p770code36"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> update-rc.d <span style="color: #660033;">-f</span> lighttpd remove</pre></td></tr></table></div>

<p>好了，让我们开启 FastCGI 守护进程：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p770code37'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p77037"><td class="code" id="p770code37"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>spawn-fcgi <span style="color: #660033;">-a</span> 127.0.0.1 <span style="color: #660033;">-p</span> <span style="color: #000000;">9000</span> <span style="color: #660033;">-u</span> www-data <span style="color: #660033;">-g</span> www-data <span style="color: #660033;">-f</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>php5-cgi <span style="color: #660033;">-P</span> <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>run<span style="color: #000000; font-weight: bold;">/</span>fastcgi-php.pid</pre></td></tr></table></div>

<p>其中 -a 代表 ip 地址， -p 是进程的端口， -u 是用户， -g 是用户组，-f 是 php5-cgi 的执行路径，-P 是进程的 pid，可以适当的在后面在加一个 -C 参数，这个数创建的进程数，本机开发的话一般设置在 3 - 5 左右即可（也可以使用 ab 测试以设置适当的进程数，这样可以防止 Nginx 的无辜 Down 掉）</p>
<p>提示：spawn-fcgi 必须在运行的状况下才能使得 Nginx 支持 PHP 运行，因此可以把上面的启动代码追加到 /etc/rc.local 文件的尾部保存（在 exit 命令之前）。</p>
<h3>4. 配置 Nginx</h3>
<p>Nginx 的配置相对比较简单，语法很像 PHP 代码，如果不了解的可以参考这个：<a href="http://wiki.nginx.org/NginxFullExample" target="_blank">范例1</a>和<a href="http://wiki.nginx.org/NginxFullExample2" target="_blank">范例2</a><br />
编辑 <strong>/etc/nginx/nginx.conf</strong> 文件并作如下修改：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p770code38'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p77038"><td class="code" id="p770code38"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>...<span style="color: #7a0874; font-weight: bold;">&#93;</span>
worker_processes  <span style="color: #000000;">5</span>;
<span style="color: #7a0874; font-weight: bold;">&#91;</span>...<span style="color: #7a0874; font-weight: bold;">&#93;</span>
    keepalive_timeout   <span style="color: #000000;">2</span>;
<span style="color: #7a0874; font-weight: bold;">&#91;</span>...<span style="color: #7a0874; font-weight: bold;">&#93;</span></pre></td></tr></table></div>

<p>定义虚拟主机的配置项存放在 /etc/nginx/conf.d/ 目录下面，每个虚拟主机配置一个文件并以 .conf 为文件后缀即可，默认是 default，也就是上面修改 Nginx 默认监听端口的文件，这里还要进一步对它配（点击右侧展开）：</p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p770code39'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p77039"><td class="code" id="p770code39"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">&#91;</span>...<span style="color: #7a0874; font-weight: bold;">&#93;</span>
server <span style="color: #7a0874; font-weight: bold;">&#123;</span>
        listen   <span style="color: #000000;">80</span>;
        server_name  _;
&nbsp;
        access_log  <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span>nginx<span style="color: #000000; font-weight: bold;">/</span>localhost.access.log;
&nbsp;
        location <span style="color: #000000; font-weight: bold;">/</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
                root   <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>nginx-default;
                index  index.php index.html index.htm;
        <span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
        location <span style="color: #000000; font-weight: bold;">/</span>doc <span style="color: #7a0874; font-weight: bold;">&#123;</span>
                root   <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>share;
                autoindex on;
                allow 127.0.0.1;
                deny all;
        <span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
        location <span style="color: #000000; font-weight: bold;">/</span>images <span style="color: #7a0874; font-weight: bold;">&#123;</span>
                root   <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>share;
                autoindex on;
        <span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
        <span style="color: #666666; font-style: italic;">#error_page  404  /404.html;</span>
&nbsp;
        <span style="color: #666666; font-style: italic;"># redirect server error pages to the static page /50x.html</span>
        <span style="color: #666666; font-style: italic;">#</span>
        error_page   <span style="color: #000000;">500</span> <span style="color: #000000;">502</span> <span style="color: #000000;">503</span> <span style="color: #000000;">504</span>  <span style="color: #000000; font-weight: bold;">/</span>50x.html;
        location = <span style="color: #000000; font-weight: bold;">/</span>50x.html <span style="color: #7a0874; font-weight: bold;">&#123;</span>
                root   <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>nginx-default;
        <span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
        <span style="color: #666666; font-style: italic;"># proxy the PHP scripts to Apache listening on 127.0.0.1:80</span>
        <span style="color: #666666; font-style: italic;">#</span>
        <span style="color: #666666; font-style: italic;">#location ~ \.php$ {</span>
                <span style="color: #666666; font-style: italic;">#proxy_pass   http://127.0.0.1;</span>
        <span style="color: #666666; font-style: italic;">#}</span>
&nbsp;
        <span style="color: #666666; font-style: italic;"># pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000</span>
        <span style="color: #666666; font-style: italic;">#</span>
        location ~ \.php$ <span style="color: #7a0874; font-weight: bold;">&#123;</span>
                fastcgi_pass   127.0.0.1:<span style="color: #000000;">9000</span>;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>nginx-default<span style="color: #007800;">$fastcgi_script_name</span>;
                include        fastcgi_params;
        <span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
        <span style="color: #666666; font-style: italic;"># deny access to .htaccess files, if Apache's document root</span>
        <span style="color: #666666; font-style: italic;"># concurs with nginx's one</span>
        <span style="color: #666666; font-style: italic;">#</span>
        location ~ <span style="color: #000000; font-weight: bold;">/</span>\.ht <span style="color: #7a0874; font-weight: bold;">&#123;</span>
                deny  all;
        <span style="color: #7a0874; font-weight: bold;">&#125;</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
<span style="color: #7a0874; font-weight: bold;">&#91;</span>...<span style="color: #7a0874; font-weight: bold;">&#93;</span></pre></td></tr></table></div>

<p>说明下里面的个别参数：<br />
<strong>server_name</strong> 是虚拟主机的服务器入口名称，可以是 IP 也可以是域名。<br />
<strong>location</strong> 段，我在 index 追加了 index.php， root 路径是 /var/www/nginx-default 说明该虚拟主机的根目录在这里。<br />
最重要的是关于 PHP 部分的 location 段：<strong>~ \.php$ {} </strong>，Nginx 默认没有开启，我们要确保它开启并在 fastcgi_param 一行更改了参数（因为浏览器调用的默认 PHP 解析器无法找到 PHP 脚本）：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p770code40'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p77040"><td class="code" id="p770code40"><pre class="bash" style="font-family:monospace;">fastcgi_param SCRIPT_FILENAME <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>www<span style="color: #000000; font-weight: bold;">/</span>nginx-default<span style="color: #007800;">$fastcgi_script_name</span>;</pre></td></tr></table></div>

<p>最后确保在  include 和 fastcgi_params 之间隔出几个空格（BUG）</p>
<p>重启 Nginx，然后编辑一个 info.php 文件：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p770code41'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p77041"><td class="code" id="p770code41"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// 创建 /var/www/nginx-default/info.php 文件</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #990000;">phpinfo</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></td></tr></table></div>

<p>保存后在浏览器访问（比如：http://localhost/info.php 或 http://localhost:8080/info.php)，如看到 phpinfo 的参数页面说明配置安装成功 <img src='http://icyleaf.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<h3>5. 安装&#038;配置 Kohana</h3>
<p>Kohana 采用的 v3 版本，<a href="http://v3.kohana.cn/guide/tutorials.git" target="_blank">安装步骤</a>（本文把 kohana 存放在 /home/icyleaf/php/kohana 目录）<br />
添加 Nginx 虚拟主机配置文件：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p770code42'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p77042"><td class="code" id="p770code42"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># 创建 /etc/nginx/conf.d/kohana.conf 文件</span>
server <span style="color: #7a0874; font-weight: bold;">&#123;</span>
	listen   kohana.local:<span style="color: #000000;">8080</span>;
	server_name  kohana.local;
	access_log  <span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>log<span style="color: #000000; font-weight: bold;">/</span>nginx<span style="color: #000000; font-weight: bold;">/</span>kohana.access.log;
&nbsp;
	<span style="color: #666666; font-style: italic;"># define server root path</span>
	<span style="color: #000000; font-weight: bold;">set</span> <span style="color: #007800;">$root_path</span> <span style="color: #000000; font-weight: bold;">/</span>home<span style="color: #000000; font-weight: bold;">/</span>icyleaf<span style="color: #000000; font-weight: bold;">/</span>php<span style="color: #000000; font-weight: bold;">/</span>kohana;
&nbsp;
	location <span style="color: #000000; font-weight: bold;">/</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
		root   <span style="color: #007800;">$root_path</span>;
		index  index.php index.html index.htm;
&nbsp;
		<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000; font-weight: bold;">!</span>-e <span style="color: #007800;">$request_filename</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
		    rewrite ^<span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>.<span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>$ <span style="color: #000000; font-weight: bold;">/</span>index.php?<span style="color: #007800;">kohana_uri</span>=<span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$1</span> <span style="color: #c20cb9; font-weight: bold;">last</span>;
		<span style="color: #7a0874; font-weight: bold;">&#125;</span>
	<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;"># pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000</span>
	<span style="color: #666666; font-style: italic;">#</span>
	location ~ \.php$ <span style="color: #7a0874; font-weight: bold;">&#123;</span>
		root   <span style="color: #007800;">$root_path</span>;
		fastcgi_pass   127.0.0.1:<span style="color: #000000;">9000</span>;
		fastcgi_index  index.php;
		fastcgi_param  SCRIPT_FILENAME  <span style="color: #007800;">$root_path</span><span style="color: #007800;">$fastcgi_script_name</span>;
		include fastcgi_params;
	<span style="color: #7a0874; font-weight: bold;">&#125;</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span></pre></td></tr></table></div>

<p>配置中首先定义了一个变量 $root_path 指定 Kohana 的源码的路径，对于 Kohana 的 URL rewrite url 重点是 location 段的：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p770code43'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p77043"><td class="code" id="p770code43"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #000000; font-weight: bold;">!</span>-e <span style="color: #007800;">$request_filename</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
	rewrite ^<span style="color: #000000; font-weight: bold;">/</span><span style="color: #7a0874; font-weight: bold;">&#40;</span>.<span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>$ <span style="color: #000000; font-weight: bold;">/</span>index.php?<span style="color: #007800;">kohana_uri</span>=<span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$1</span> <span style="color: #c20cb9; font-weight: bold;">last</span>;
<span style="color: #7a0874; font-weight: bold;">&#125;</span></pre></td></tr></table></div>

<p>编辑完成后重载 Nginx 配置：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p770code44'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p77044"><td class="code" id="p770code44"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> <span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>nginx reload</pre></td></tr></table></div>

<p>至此教程结束，额外说明的是 Kohana 默认的 .htaccess 对 Nginx 无效可有可无 <img src='http://icyleaf.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://icyleaf.com/2010/05/31/nginx-with-fastcgi-build-kohana/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>如何获取 Element 的 XPath [PHP/Javascript]</title>
		<link>http://icyleaf.com/2010/04/02/how-to-get-xpath-of-an-element-for-php-and-javascript/</link>
		<comments>http://icyleaf.com/2010/04/02/how-to-get-xpath-of-an-element-for-php-and-javascript/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 03:04:20 +0000</pubDate>
		<dc:creator>icyleaf</dc:creator>
				<category><![CDATA[How-To]]></category>
		<category><![CDATA[网络开发]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[XPath]]></category>

		<guid isPermaLink="false">http://icyleaf.com/?p=759</guid>
		<description><![CDATA[这两天研究 HTML 的 DOM 需要寻找某个 Element 元素的完整 XPath 路径，由于使用的是 PHP Simple HTML DOM Parser 开源库，这个库类的使用方法几乎兼容 Javascript 的 DOM 语法并附带 DOM 选择器。虽然功能强大但是并不能直接获取 Element 的 XPath。这个怎么办呢，依稀记得 Firebug 有一个功能，选择某个元素在它的控制台可以显示 XPath。嗯，着手实践一下发现不仅可以显示而且还可以复制 XPath，如下图所示： 于是想，如果可以找到 Javascript 版的相关代码就一定可以改成 PHP 版本的，结果在 Google 的新家搜索找到了... ?View Code JAVASCRIPT1 2 3 &#8230; <a href="http://icyleaf.com/2010/04/02/how-to-get-xpath-of-an-element-for-php-and-javascript/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>这两天研究 HTML 的 DOM 需要寻找某个 Element 元素的完整 XPath 路径，由于使用的是 <a href="http://simplehtmldom.sourceforge.net/manual.htm">PHP Simple HTML DOM Parser</a> 开源库，这个库类的使用方法几乎兼容 Javascript 的 DOM 语法并附带 DOM 选择器。虽然功能强大但是并不能直接获取 Element 的 XPath。这个怎么办呢，依稀记得 Firebug 有一个功能，选择某个元素在它的控制台可以显示 XPath。嗯，着手实践一下发现不仅可以显示而且还可以复制 XPath，如下图所示：<br />
<a href="http://icyleaf.com/wp-content/uploads/2010/04/2010-04-02_105326.jpg"><img src="http://icyleaf.com/wp-content/uploads/2010/04/2010-04-02_105326.jpg" alt="" title="Display Xpath from Firebug" width="613" height="403" class="alignnone size-full wp-image-760" /></a></p>
<p>于是想，如果可以找到 Javascript 版的相关代码就一定可以改成 PHP 版本的，结果在 Google 的新家搜索找到了...</p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p759code47'); return false;">View Code</a> JAVASCRIPT</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p75947"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
</pre></td><td class="code" id="p759code47"><pre class="javascript" style="font-family:monospace;"><span style="color: #003366; font-weight: bold;">var</span> elt <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'table'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #003366; font-weight: bold;">var</span> xpath <span style="color: #339933;">=</span> getElementXPath<span style="color: #009900;">&#40;</span>elt<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span>xpath<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">// Get full XPath of an element</span>
<span style="color: #003366; font-weight: bold;">function</span> getElementXPath<span style="color: #009900;">&#40;</span>elt<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">var</span> path <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;&quot;</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">;</span> elt <span style="color: #339933;">&amp;&amp;</span> elt.<span style="color: #660066;">nodeType</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">;</span> elt <span style="color: #339933;">=</span> elt.<span style="color: #660066;">parentNode</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		idx <span style="color: #339933;">=</span> getElementIdx<span style="color: #009900;">&#40;</span>elt<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		xname <span style="color: #339933;">=</span> elt.<span style="color: #660066;">tagName</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>idx <span style="color: #339933;">&gt;</span> <span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span> xname <span style="color: #339933;">+=</span> <span style="color: #3366CC;">&quot;[&quot;</span> <span style="color: #339933;">+</span> idx <span style="color: #339933;">+</span> <span style="color: #3366CC;">&quot;]&quot;</span><span style="color: #339933;">;</span>
		path <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;/&quot;</span> <span style="color: #339933;">+</span> xname <span style="color: #339933;">+</span> path<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #000066; font-weight: bold;">return</span> path<span style="color: #339933;">;</span>	
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #006600; font-style: italic;">// Get Idx of an element</span>
<span style="color: #003366; font-weight: bold;">function</span> getElementIdx<span style="color: #009900;">&#40;</span>elt<span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #003366; font-weight: bold;">var</span> count <span style="color: #339933;">=</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>
    <span style="color: #000066; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">var</span> sib <span style="color: #339933;">=</span> elt.<span style="color: #660066;">previousSibling</span><span style="color: #339933;">;</span> sib <span style="color: #339933;">;</span> sib <span style="color: #339933;">=</span> sib.<span style="color: #660066;">previousSibling</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>sib.<span style="color: #660066;">nodeType</span> <span style="color: #339933;">==</span> <span style="color: #CC0000;">1</span> <span style="color: #339933;">&amp;&amp;</span> sib.<span style="color: #660066;">tagName</span> <span style="color: #339933;">==</span> elt.<span style="color: #660066;">tagName</span><span style="color: #009900;">&#41;</span>	count<span style="color: #339933;">++</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000066; font-weight: bold;">return</span> count<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>PHP 改进版：</p>

<div class="wp_codebox_msgheader wp_codebox_hide"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p759code48'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p75948"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
</pre></td><td class="code" id="p759code48"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// Use it before import PHP Simple HTML DOM Parser</span>
<span style="color: #000088;">$html</span> <span style="color: #339933;">=</span> file_get_html<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'http://www.google.com/'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// find a sample element by id</span>
<span style="color: #000088;">$elt1</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$html</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">find</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'#footer'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// find a sample element by tag name</span>
<span style="color: #000088;">$elt2</span><span style="color: #339933;">=</span> <span style="color: #000088;">$html</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">find</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'div'</span><span style="color: #339933;">,</span> <span style="color: #cc66cc;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// it will return if found it: //*[@id=&quot;footer&quot;] </span>
<span style="color: #000088;">$xpath</span> <span style="color: #339933;">=</span> getElementXPath<span style="color: #009900;">&#40;</span><span style="color: #000088;">$elt1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// it will return if found it: html/body/div[10] </span>
<span style="color: #000088;">$xpath</span> <span style="color: #339933;">=</span> getElementXPath<span style="color: #009900;">&#40;</span><span style="color: #000088;">$elt2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> getElementXPath<span style="color: #009900;">&#40;</span><span style="color: #000088;">$elt</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$path</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">;</span>
	<span style="color: #000088;">$first</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">TRUE</span><span style="color: #339933;">;</span>
	<span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$elt</span> AND <span style="color: #000088;">$elt</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">nodetype</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$elt</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$elt</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">parent</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #009900;">&#123;</span>
		<span style="color: #000088;">$xname</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$elt</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">tag</span><span style="color: #339933;">;</span>
		<span style="color: #000088;">$idx</span> <span style="color: #339933;">=</span> getElementIdx<span style="color: #009900;">&#40;</span><span style="color: #000088;">$elt</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$first</span> AND <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$elt</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">attr</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$path</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'//*[@id=&quot;'</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$elt</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">attr</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'id'</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'&quot;]'</span><span style="color: #339933;">;</span>
			<span style="color: #b1b100;">break</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$idx</span> <span style="color: #339933;">&gt;</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#123;</span>
			<span style="color: #000088;">$xname</span> <span style="color: #339933;">.=</span> <span style="color: #0000ff;">'['</span> <span style="color: #339933;">.</span> <span style="color: #000088;">$idx</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">']'</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
&nbsp;
		<span style="color: #000088;">$path</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'/'</span><span style="color: #339933;">.</span><span style="color: #000088;">$xname</span><span style="color: #339933;">.</span><span style="color: #000088;">$path</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #000088;">$first</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">FALSE</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #b1b100;">return</span> <span style="color: #000088;">$path</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> getElementIdx<span style="color: #009900;">&#40;</span><span style="color: #000088;">$elt</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#123;</span>
    <span style="color: #000088;">$count</span> <span style="color: #339933;">=</span> <span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
    <span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sib</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$elt</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">prev_sibling</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$sib</span> <span style="color: #339933;">;</span> <span style="color: #000088;">$sib</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$sib</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">prev_sibling</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
    <span style="color: #009900;">&#123;</span>
        <span style="color: #b1b100;">if</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$sib</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">nodetype</span> <span style="color: #339933;">==</span> <span style="color: #cc66cc;">1</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #000088;">$sib</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">tag</span> <span style="color: #339933;">==</span> <span style="color: #000088;">$elt</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">tag</span><span style="color: #009900;">&#41;</span>
        <span style="color: #009900;">&#123;</span>
        	<span style="color: #000088;">$count</span><span style="color: #339933;">++;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #b1b100;">return</span> <span style="color: #000088;">$count</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>大家同样可以把上面的代码直接 crack 到 PHP Simple HTML DOM Parser 库中。</p>
]]></content:encoded>
			<wfw:commentRss>http://icyleaf.com/2010/04/02/how-to-get-xpath-of-an-element-for-php-and-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>StarCraftII</title>
		<link>http://icyleaf.com/2010/03/04/starcraft2/</link>
		<comments>http://icyleaf.com/2010/03/04/starcraft2/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 01:51:30 +0000</pubDate>
		<dc:creator>icyleaf</dc:creator>
				<category><![CDATA[影音娱乐]]></category>
		<category><![CDATA[blizzard]]></category>
		<category><![CDATA[StarCraft]]></category>

		<guid isPermaLink="false">http://icyleaf.com/?p=752</guid>
		<description><![CDATA[昨天在 GReader 看到了 CNBorn 同学分享的一篇文章：Shellex的星际2试玩报告 。文章有提到安装和破解 StarCraftII Beta 版本，同时我也知道了“玻璃渣”就是  Blizzard 暴雪公司的英文名。说来惭愧，我真正开始玩星际是在 2009 年初，大多都是和朋友几个在闲暇之余玩上一玩，星际其实并不是很熟悉，人族可能是我比较熟悉的种族，Lost Template 是我最熟悉的地图（高中时代经常玩魔兽争霸）。 StarCraftII 破解安装 上面提到的文章中之说明了 StarCraftII Beta 版本是从玻璃渣下载，当初没明白这个是什么东西，就随便找了一个国内的资源站下载的，客户端一个 1.6G+ 大小，花了一下午的时间下载完毕，晚上回家在自己的笔记本上面安装后准备要破解才发现，破解程序只在 0.3.0.14093 版本测试成功（如果不是那个版本运行破解程序会报错），而其他版本没有测试。我又花了一点时间用手机查找了下如何看 StarCraftII 的版本号： 在 StarCraftII 安装目录有一个 Versions 文件夹，里面会有很多Base13891，Base14093，Base14133这样的文件夹。这就是版本号，数字最大的是Base14133，也就是你的当前版本了！ 当时我一看就傻眼了，从国内下载的版本是 Base13891 也就是 0.3.0.13891。这可怎么办啊，突然灵机一现，我把 Versions 文件夹下的 Base13891 文件夹名改成了 &#8230; <a href="http://icyleaf.com/2010/03/04/starcraft2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="StarSraft2" src="http://www.adiumxtras.com/images/pictures/starcraft_ii_soundset_3_9866_4276_image_5759.jpg" alt="" width="480" height="399" /></p>
<p>昨天在 GReader 看到了 <a href="http://cnborn.net" target="_blank">CNBorn</a> 同学分享的一篇文章：<a href="http://shellex.info/the-first-battlefield-report-of-starcraft2-by-shellex/">Shellex的星际2试玩报告</a> 。文章有提到安装和破解 StarCraftII Beta 版本，同时我也知道了“玻璃渣”就是  Blizzard 暴雪公司的英文名。说来惭愧，我真正开始玩星际是在 2009 年初，大多都是和朋友几个在闲暇之余玩上一玩，星际其实并不是很熟悉，人族可能是我比较熟悉的种族，Lost Template 是我最熟悉的地图（高中时代经常玩魔兽争霸）。</p>
<p><strong>StarCraftII 破解安装</strong></p>
<p>上面提到的文章中之说明了 StarCraftII Beta 版本是从玻璃渣下载，当初没明白这个是什么东西，就随便找了一个国内的资源站下载的，客户端一个 1.6G+ 大小，花了一下午的时间下载完毕，晚上回家在自己的笔记本上面安装后准备要破解才发现，破解程序只在 0.3.0.14093 版本测试成功（<strong>如果不是那个版本运行破解程序会报错</strong>），而其他版本没有测试。我又花了一点时间用手机查找了下如何看 StarCraftII 的版本号：</p>
<blockquote><p>在 StarCraftII 安装目录有一个 Versions 文件夹，里面会有很多Base13891，Base14093，Base14133这样的文件夹。这就是版本号，数字最大的是Base14133，也就是你的当前版本了！</p></blockquote>
<p>当时我一看就傻眼了，从国内下载的版本是 Base13891 也就是 0.3.0.13891。这可怎么办啊，突然灵机一现，我把 Versions 文件夹下的 Base13891 文件夹名改成了 Base14093，然后运行破解程序，成功破解，选择地图开始玩咯！（建议从官网下载原版客户端或正确的版本，我的方法可以解决燃眉之急，并不知道会不会有什么功能缺失）</p>
<p>由于破解文件包含了人族的补丁，借上面的文章说是人族的能力从猴变成了猿...说回游戏，选择地图后（可以和AI对战，AI 的数量跟文件有关系，大家可以看破解的说明文件），玩家的种族是随机分配的（今天早上看昨天的推说已经有了种族选择的补丁，大家可以关注下）。几回对战并选择不同的难度（需要手动覆盖某个文件）的战斗发现，人族在打了补丁之后确实蛮厉害的，机枪兵+升级后的坦克（火力+扎架）配合护士MM运输机，直取深入比较无敌 XDD。幸亏之前看过<a href="http://blog.sina.com.cn/tnnaii" target="_blank">辰音奈奈</a>讲解了三期战报。对于兽族和神族也是可以快速上手（图标变化太大，有些适应不过来）。</p>
<p>嗯，以上是昨天小玩的一天心得，感谢大家的欣赏</p>
<p>------------------得意的分割线--------------------------</p>
<p>没想到我的笔记本还是可以玩得起来 StarCraftII，虽然我在看 Options 的时候发现 图像 的各个参数不是 None 就是 Low，但是画面还是可以的（或许我对画面不挑剔= =）</p>
<p>最后献上我的机器配置：<a href="http://www.google.com/notebook/public/03466434242300201598/BDQJ-SgoQotXqzckj" target="_blank">HP 6520s(054)</a></p>
<blockquote><p>CPU: Intel(R) Core(TM)2 Duo CPU T5870 @ 2.00GHz<br />
显卡: ATI X1350 mobile<br />
内存: 2x1G<br />
硬盘: 160G<br />
系统: <strong>Windows 7 Pro</strong></p></blockquote>
<p>更新补充：添加了试玩操作系统平台，为什么我一定要写明是 Win7 系统呢，由于此系统的内存管理机制进行了重写，直接影响了系统的性能和效率，我曾经偶然间测试过，同一个游戏 COD4，在 Win7 和 WinXP 下的性能是差别很大的，在读取每关任务和介绍的时候，WinXP 总是没加载完毕就已经介绍完毕了而 Win7则是在介绍没结束之前很早就已经加载完毕。</p>
]]></content:encoded>
			<wfw:commentRss>http://icyleaf.com/2010/03/04/starcraft2/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Douban API Package 发布！</title>
		<link>http://icyleaf.com/2010/01/08/douban-api-package/</link>
		<comments>http://icyleaf.com/2010/01/08/douban-api-package/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 01:30:01 +0000</pubDate>
		<dc:creator>icyleaf</dc:creator>
				<category><![CDATA[Kohana]]></category>
		<category><![CDATA[网络开发]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[douban]]></category>
		<category><![CDATA[豆瓣]]></category>

		<guid isPermaLink="false">http://icyleaf.com/?p=745</guid>
		<description><![CDATA[Douban API Package 是一个使用 PHP 开发且基于 Kohana v3 开发的一个扩展（Module）。 它对豆瓣 API 进行重新封包。它使用起来非常方便，可以快速开发一个 web 应用。 为什么要另外封包？ 对，豆瓣官方提供了一种 PHP 的解决方案，可是需要庞大的支持库：GData（20M左右）以及可能无法修改的环境配置（租用的空间主机会遇到这样的问题）。虽说 Douban API Package 也是基于框架开发，不过 Kohana 是一个纯 PHP5 模式且体积小巧（仅有 478KB），优秀迅捷的框架。最重要的是，Douban API Package 提供了目前官方所有功能的支持。并有线上网站：魔豆 和豆瓣 API 控制台长期运营。 虽然它是基于 Kohana 框架开发，但是并没有使用太多的依赖，稍微熟悉可以轻松分离出来！ 安装需求 PHP 5.2+ with &#8230; <a href="http://icyleaf.com/2010/01/08/douban-api-package/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Douban API Package 是一个使用 PHP 开发且基于 Kohana v3 开发的一个扩展（Module）。</p>
<p>它对<a href="http://www.douban.com/">豆瓣</a> <a href="http://www.douban.com/service/apidoc/">API</a> 进行重新封包。它使用起来非常方便，可以快速开发一个 web 应用。</p>
<p><strong>为什么要另外封包？</strong><br />
对，豆瓣官方提供了一种 PHP 的解决方案，可是需要庞大的支持库：GData（20M左右）以及可能无法修改的环境配置（租用的空间主机会遇到这样的问题）。虽说 Douban API Package 也是基于框架开发，不过 Kohana 是一个纯 PHP5 模式且体积小巧（仅有 478KB），优秀迅捷的框架。<strong>最重要的是</strong>，Douban API Package 提供了目前官方所有功能的支持。并有线上网站：<a href="http://modou.us/">魔豆</a> 和<a href="http://modou.us/console">豆瓣 API 控制台</a>长期运营。</p>
<p><em>虽然它是基于 Kohana 框架开发，但是并没有使用太多的依赖，稍微熟悉可以轻松分离出来！</em></p>
<p><strong>安装需求</strong></p>
<ul>
<li>PHP 5.2+ with curl module</li>
<li><a href="http://github.com/kohana/kohana">Kohana v3</a> - 一款纯 PHP 5 框架，它的特点就是<strong>高安全性</strong>，<strong>轻量级代码</strong>，<strong>容易使用</strong>。</li>
</ul>
<p><strong>安装步骤</strong><br />
步骤 0: 部署 Kohana v3</p>
<p>下载并安装 Kohana v3 的过程，请大家参考此教程：<a href="http://kohanaphp.cn/guide/tutorials.git">使用 Git 部署 Kohana 系统</a></p>
<p>步骤 1: 下载本扩展!</p>
<p>你可以在部署完毕的 Kohana 系统的根目录执行下面操作：</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p745code52'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p74552"><td class="code" id="p745code52"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">git</span> submodule add <span style="color: #c20cb9; font-weight: bold;">git</span>:<span style="color: #000000; font-weight: bold;">//</span>github.com<span style="color: #000000; font-weight: bold;">/</span>icyleaf<span style="color: #000000; font-weight: bold;">/</span>douban.git modules<span style="color: #000000; font-weight: bold;">/</span>douban</pre></td></tr></table></div>

<p>完成！</p>
<p>或者你也可以从本<a href="http://github.com/icyleaf/douban">github 项目</a> 下载压缩包放置在 modules 文件夹下面。</p>
<p>步骤 2: 在 <code>bootstrap.php</code> 文件中启用该模块(默认情况下，存储在 `application' 文件夹)</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p745code53'); return false;">View Code</a> PHP</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p74553"><td class="code" id="p745code53"><pre class="php" style="font-family:monospace;"><span style="color: #009933; font-style: italic;">/**
 * Enable modules. Modules are referenced by a relative or absolute path.
 */</span>
Kohana<span style="color: #339933;">::</span><span style="color: #004000;">modules</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
     <span style="color: #0000ff;">'douban'</span>        <span style="color: #339933;">=&gt;</span> MODPATH<span style="color: #339933;">.</span><span style="color: #0000ff;">'douban'</span><span style="color: #339933;">,</span>     <span style="color: #666666; font-style: italic;">// Douban API Module</span>
    <span style="color: #666666; font-style: italic;">// 'database'   =&gt; MODPATH.'database',   // Database access</span>
    <span style="color: #666666; font-style: italic;">// 'image'      =&gt; MODPATH.'image',      // Image manipulation</span>
    <span style="color: #666666; font-style: italic;">// 'orm'        =&gt; MODPATH.'orm',        // Object Relationship Mapping (not complete)</span>
    <span style="color: #666666; font-style: italic;">// 'pagination' =&gt; MODPATH.'pagination', // Paging of results</span>
    <span style="color: #666666; font-style: italic;">// 'paypal'     =&gt; MODPATH.'paypal',     // PayPal integration (not complete)</span>
    <span style="color: #666666; font-style: italic;">// 'todoist'    =&gt; MODPATH.'todoist',    // Todoist integration</span>
    <span style="color: #666666; font-style: italic;">// 'unittest'   =&gt; MODPATH.'unittest',   // Unit testing</span>
    <span style="color: #666666; font-style: italic;">// 'codebench'  =&gt; MODPATH.'codebench',  // Benchmarking tool</span>
    <span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p><strong>目录结构</strong></p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p745code54'); return false;">View Code</a> BASH</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p74554"><td class="code" id="p745code54"><pre class="bash" style="font-family:monospace;">douban
  +--- classes
         +--- controller               <span style="color: #666666; font-style: italic;"># 豆瓣样例</span>
         +--- douban                   <span style="color: #666666; font-style: italic;"># Douban API Package</span>
                +--- api               <span style="color: #666666; font-style: italic;"># Douban API</span>
                +--- core.php          <span style="color: #666666; font-style: italic;"># Douban Core</span>
                +--- oauth.php         <span style="color: #666666; font-style: italic;"># Douban OAuth</span>
                +--- request.php       <span style="color: #666666; font-style: italic;"># Douban Requset </span>
                +--- response.php      <span style="color: #666666; font-style: italic;"># Douban Response</span>
         +--- douban.php               <span style="color: #666666; font-style: italic;"># Douban API Class</span>
  +--- config
         +--- douban.php               <span style="color: #666666; font-style: italic;"># 豆瓣 API 配置文件</span>
         +--- user_agents.php          <span style="color: #666666; font-style: italic;"># 奉送给大家一些手机 User agent 配置文件</span>
  +--- media
         +--- images                   <span style="color: #666666; font-style: italic;"># 奉送给大家豆瓣 API 用到的图像      </span>
  +--- vendor
         +--- OAuth.php                <span style="color: #666666; font-style: italic;"># OAuth 官方推荐 PHP 库</span>
  +--- LICENSE
  +--- README.markdown</pre></td></tr></table></div>

<p><strong>快速上手</strong><br />
Douban API Package 提供一些演示用例，系统部署完毕后可以通过 <code>http://host/demo_douban</code> 访问。</p>
<p>文件路径：<code>classes/controller/douban_demo.php</code></p>
<p>源码库：<a href="http://github.com/icyleaf/douban">http://github.com/icyleaf/douban</a></p>
<p>祝你开发顺利！</p>
<p>如果任何疑问或者 Bugs 反馈，即可以在本项目中提交 Issue 或者给我发邮件：icyleaf.cn囧gmail.com （请替换 "囧" 为 @）</p>
]]></content:encoded>
			<wfw:commentRss>http://icyleaf.com/2010/01/08/douban-api-package/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>2009年度总结</title>
		<link>http://icyleaf.com/2010/01/01/2009-annual-summary/</link>
		<comments>http://icyleaf.com/2010/01/01/2009-annual-summary/#comments</comments>
		<pubDate>Thu, 31 Dec 2009 18:15:41 +0000</pubDate>
		<dc:creator>icyleaf</dc:creator>
				<category><![CDATA[生活记录]]></category>
		<category><![CDATA[2009]]></category>
		<category><![CDATA[总结报告]]></category>

		<guid isPermaLink="false">http://icyleaf.com/?p=734</guid>
		<description><![CDATA[忙碌了一天下来，刚打开电脑看着 twitter 刷出来的消息发觉已经到了 2010 年。回顾去年的那篇年度总结感受颇多，年度总结这玩意对于自己来说算是一次思维的整理和归档。就算度过了没有硬性计划的 2009 年总结还是多少要写一些。 回顾整个 2009 年做的事情，发现其中一些持续的事情是在完善 2008 年度的计划： 通过维护一个 PHP5 的轻量级开源框架 Kohana 的中文化社区，开始深层次的了解和读懂一个框架的逻辑和模式；通过参加一年的 OpernParty 开源社区的活动，（不完全）吸收了很多新鲜养分。 成立 Kohana 中文社区已经有一年多的时间也经历了很多：成功完成了对其中文文档的翻译工作；不断向社区提交和共享代码。然而对于社区的运营也感受颇多，虽然过程是辛苦的，但是我很欣慰。同时还得感谢非正常非人类，e6nian，Codeigniter中国老大 Hex，daqing 对 Kohana 和我的支持！ 2009年读了一些各种各样的书，这些书都是我以前几乎没有涉及过的种类。其中一大部分（感谢 CNBorn 的推荐）得益于公司搬家，使得上下班几乎有两个小时的闲余时间，很多书籍都是在这段时间消灭的。以后还会继续读更多值得看的书，书再多还是不嫌多的。 2009年度入手了三个数码产品：iPod Touch ，Canon 450D 和 DELL 2209WA。 正式成为 Apple 使用用户和摄影爱好者。 2008年的那些项目都难产掉了，2009年又有一些项目脚踏实地的进行着： &#8230; <a href="http://icyleaf.com/2010/01/01/2009-annual-summary/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="2010" src="http://dl.dropbox.com/u/45081/images/2010_happy_new_year.jpg" alt="" width="400" height="337" /></p>
<p>忙碌了一天下来，刚打开电脑看着 twitter 刷出来的消息发觉已经到了 2010 年。回顾去年的那篇<a href="http://icyleaf.com/2008/12/30/final-report-2008/" target="_self">年度总结</a>感受颇多，年度总结这玩意对于自己来说算是一次思维的整理和归档。就算度过了没有硬性计划的 2009 年总结还是多少要写一些。</p>
<p>回顾整个 2009 年做的事情，发现其中一些持续的事情是在完善 2008 年度的计划：</p>
<ol>
<li>通过维护一个 PHP5 的轻量级开源框架 Kohana 的中文化社区，开始深层次的了解和读懂一个框架的逻辑和模式；通过参加一年的 OpernParty 开源社区的活动，（不完全）吸收了很多新鲜养分。</li>
<li>成立 <a href="http://kohana.cn">Kohana 中文社区</a>已经有一年多的时间也经历了很多：成功完成了对其<a href="http://khnfans.cn/docs" target="_self">中文文档</a>的翻译工作；不断向社区提交和共享代码。然而对于社区的运营也感受颇多，虽然过程是辛苦的，但是我很欣慰。同时还得感谢<a href="http://iiiorz.net" target="_self">非正常非人类</a>，e6nian，<a href="http://codeigniter.org.cn" target="_self">Codeigniter中国</a>老大 Hex，daqing 对 Kohana 和我的支持！</li>
<li>2009年读了一些各种各样的书，这些书都是我以前几乎没有涉及过的种类。其中一大部分（感谢 <a href="http://cnborn.net">CNBorn </a>的推荐）得益于公司搬家，使得上下班几乎有两个小时的闲余时间，很多书籍都是在这段时间消灭的。以后还会继续读更多值得看的书，书再多还是不嫌多的。</li>
<li>2009年度入手了三个数码产品：iPod Touch ，Canon 450D 和 DELL 2209WA。 正式成为 Apple 使用用户和摄影爱好者。</li>
<li>2008年的那些项目都难产掉了，2009年又有一些项目脚踏实地的进行着：<a href="http://icyleaf.com/2009/06/22/modou/" target="_self"><br />
</a></p>
<ul>
<li><a href="http://icyleaf.com/2009/06/22/modou/" target="_self">魔豆</a>：一个用于移动终端，手持设备的非官方版豆瓣网移动版本。</li>
<li><a href="http://icyleaf.com/2009/07/06/douban-api-console/" target="_self">豆瓣 API控制台</a>：魔豆附属项目，开发豆瓣 API 的辅助工具，仅适用于 Firefox。</li>
<li><a href="http://kohana.cn">Aplaca</a>：一个轻量级的基于 Kohana v3 开发的论坛系统（目前已上线，因为在开发中暂无发布）。</li>
<li>Douban API Package：这是一个重构版本，最近一直在测试和写测试用例，近期会以开源协议的形式发布。</li>
</ul>
</li>
<li>新疆出差游：得益于 090705 事件造成那个地区封锁了网络，又因公司项目的事情前去出差，第一次坐灰机，第一次跑那么远的地方。详情请参见<a href="http://icyleaf.com/2009/11/18/xinjiang-yaxin-diary-1/" target="_self">系列游记</a>。</li>
<li>随着寻找各种北京美食，加上工作的性质，对于运动少了许多，今年之中抽出了不少的周末参与到户外运动之中，即活动了筋骨，也提高了身体机能，还能认识很多驴友和漂亮的风景何乐而不为呢。</li>
</ol>
<p>总结完毕发现今年的日志数量急剧下降，或许以后的年度日志数量也会在这个数量左右徘徊，随着时间的推移，心智愈加成熟（自我感觉），心要慢慢的静下来（不能在浮躁了）深层次的学习一些技能，继续英语的学习和适当的户外运动，可能的话计划去某个地方游玩。再有就是不能把 2009年的最大的遗憾留在今年，继续加油！</p>
]]></content:encoded>
			<wfw:commentRss>http://icyleaf.com/2010/01/01/2009-annual-summary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>亚心随笔之五</title>
		<link>http://icyleaf.com/2009/11/26/xinjiang-yaxin-diary-5/</link>
		<comments>http://icyleaf.com/2009/11/26/xinjiang-yaxin-diary-5/#comments</comments>
		<pubDate>Thu, 26 Nov 2009 01:30:45 +0000</pubDate>
		<dc:creator>icyleaf</dc:creator>
				<category><![CDATA[生活记录]]></category>
		<category><![CDATA[乌鲁木齐]]></category>
		<category><![CDATA[新疆]]></category>

		<guid isPermaLink="false">http://icyleaf.com/?p=729</guid>
		<description><![CDATA[11月02日以后，基本上工作就忙完了，于是 04 日我准备一次暴走扫街，活动地点是市中心，人民广场附近以及红山公园南邻的人民公园。去那边坐的还是前往二道桥大巴扎的公交车，嗯，看来是热点线路，怪不 得人那么的多。在上面的随笔我应该说过乌市是一个很现代化的城市，整个乌市和其他大城市没什么太大的差别，也就有一个区域是维族居住生活区。所以来到了人 民广场对于周围的环境一点都不陌生，到处高楼大厦，商场一座座，虽然天有点凉，但是人很是很多，一点也看不出来那天是星期三，我直接避开了繁华的路段，转 走些小巷细路的。也没发现太多的东西，嗯，可能这附近还是太大众化了，而且还有王府井...偶尔会有些卖囊的和大面积的买葡萄干之类的干活摊位。 其实那天的天气特别的糟糕，那个天气真想让我骂人，于是开始想是否买个 CPL 会好一些，接着开始询问附近是否有器材城，果不其然，闹市中必有所需，离我不远处正好有一个赛博电脑城，一进去就感觉整个市场就像菜市场一样混乱，但是并 没有像海龙那样狗皮膏药的烦你。好不容易找到一家佳能店（奇怪，大多数的DSLR都是尼康的），问了一下，价格小贵，张口就是 180 元，不过一看都是肯高的，心里就有些没底，据说这东西假货居多，而且防伪已经换了不下 10 编了，有没有互联网，谁知道到底是真的假的，真的还好，如果是假的，我也总不能从北京再跑回去吧，琢磨了半天还是没买。不过回来之后听 CNBorn 说这样的鬼天气用 CPL 是没用的。呃，俺的相机至今也就一个配件：UV。主要保护镜头而已，嘿嘿。呃，跑题了... 那天只顾四处转，不知道哪了就看地图，一点也没有留意时间，转到哪是哪，累了就休息。我的第一个休息点是位于解放南路和北路交口附近的汗腾格里大寺。貌似这边开始就是维族区了，因为我在通过地下通道见到了都是维族乞丐以及路道两边都是维族人的摊位，而且不说汉语。因此我遇见了一个可爱的维族小女孩：身袭火红的外套，一路小 跑的就跑过我的眼前，坐到了我的旁边。迅速抓起相机，调整焦距，对焦，按下快门，于是就抓拍到了小女孩的第一张照片。不过这样也被小女孩吸引到了，于是同 时我也想办法去吸引她，留住她。这一交谈不要紧，果然又是满口的维语。没办法，我开始使用重复口语回答，比划，给她看我拍的照片，让她玩我的相机，算是暂 时不跑开了，刚开始小女孩还有些不适应，到后来越来越有镜头感。这也是我来新疆后最满意的一部分。 不过小女孩还是呆不住的，玩了一会就跑到大寺一层的商场里（哈，熟悉吧，大巴扎的清真寺一层也是商场，好怪异哦），我也休息的差不多了，准备去对面的新华 书店找找旅游的书看看乌市还有些什么好玩的地方。说道看书，我这里岔题下，之前有去过市图书馆（离我住宿的地方很近），临时进入，需要投放一元钱，然后会 给你一个临时卡，进入到各层之后就发现，馆藏的图书甚少，而且借书还有年费，不过里面人还是蛮多的，还有专门的维文藏馆。但是最重要的是自习室好多美女 哦，我还趁机搭讪了一把，哈哈～这些我信了新疆出美女这句话。咱们再把话题转回新华书店，进入需要存包，无论是家乐福超市还是这里，就算是封闭的背包也需 要存，当开始由于我手拿着相机进入的，误被人当成了记者，不过回头想想也是，身穿的这身行头，再配个单反相机，还真可能在非帝都，魔都这样的城市误解（以 前在天津的时候也有被人误当成记者...）。由于我把寄存的话会不安全，我也不放心，还是垂头丧气的出了书店。闹市！必有士兵巡逻把守，最重要的是我看到 了一个很帅气的武警站岗，刚开始我踱步看着他走了过去，心里不甘，于是又折回走到武警身边向他说明了情况（给他拍相），估计他也把我当记者了还是很热心 肠，走到了防暴盾牌中间，摆出了帅气的姿势，等待我的拍照，娃哈哈～ 拍完之后，我的计划准备走前往人民公园（见上路线图从大寺到人民公园的路程），这段路程是最长而且也是让我最迷茫的路程，地图看了半天找不到走到了哪里， 所以绕了一些地方，不过我发现我走到人民公园的那些路段都是繁华路段，到处商场一座座，人来人往，兵来兵往的。向西走的这些路段都是汉族区，所以让我比较 郁闷，即使到了一个很大型的服装批发集散地，也找不到一点点的维族服装...本还想可以买几顶小方帽呢，集散地的西边尽头就是人民公园，不过在那边并没有 找到公园的入口，问路人，他们说不远处有个缺口走进去就行了，呃...看来这也是一个不收费的公园，果不其然，这座公园并没有太多的人，也许跟天气有关 系，因为我从图书馆仅有的一点资料了解到，这边公园会有群众载歌载舞。看来我来的时候正好错过了，到处都是光秃秃。转了很大一圈发现真的没什么的东西就回 去找地方吃饭。谁知道让我走到了红山公园才能看到一个回去的公交车站... 本次随笔到此结束，留下最后一部分作为美食的简单汇总。 如果觉得今天的文字太枯燥，看看下面的石榴解解馋]]></description>
			<content:encoded><![CDATA[<p><img title="新疆乌市暴走路线图" src="http://icyleaf.com//wp-content/uploads/2009/11/xinjiang-wulumuqi-baozou.jpg" alt="新疆乌市暴走路线图" width="500" height="580" /></p>
<p>11月02日以后，基本上工作就忙完了，于是 04 日我准备一次暴走扫街，活动地点是市中心，人民广场附近以及红山公园南邻的人民公园。去那边坐的还是前往二道桥大巴扎的公交车，嗯，看来是热点线路，怪不 得人那么的多。在上面的随笔我应该说过乌市是一个很现代化的城市，整个乌市和其他大城市没什么太大的差别，也就有一个区域是维族居住生活区。所以来到了人 民广场对于周围的环境一点都不陌生，到处高楼大厦，商场一座座，虽然天有点凉，但是人很是很多，一点也看不出来那天是星期三，我直接避开了繁华的路段，转 走些小巷细路的。也没发现太多的东西，嗯，可能这附近还是太大众化了，而且还有王府井...偶尔会有些卖囊的和大面积的买葡萄干之类的干活摊位。</p>
<p><img src="http://fleet1.footbig.com/478/m/6a/6b/6a6be3c9e7a6a9a813ffc517b591dac2-1679.jpg" alt="囊" /></p>
<p><img src="http://fleet1.footbig.com/478/m/7a/17/7a17fdb432edac6a9347a9a65be858af-3789.jpg" alt="干货摊" /></p>
<p><span id="more-729"></span>其实那天的天气特别的糟糕，那个天气真想让我骂人，于是开始想是否买个 CPL 会好一些，接着开始询问附近是否有器材城，果不其然，闹市中必有所需，离我不远处正好有一个赛博电脑城，一进去就感觉整个市场就像菜市场一样混乱，但是并 没有像海龙那样狗皮膏药的烦你。好不容易找到一家佳能店（奇怪，大多数的DSLR都是尼康的），问了一下，价格小贵，张口就是 180 元，不过一看都是肯高的，心里就有些没底，据说这东西假货居多，而且防伪已经换了不下 10 编了，有没有互联网，谁知道到底是真的假的，真的还好，如果是假的，我也总不能从北京再跑回去吧，琢磨了半天还是没买。不过回来之后听 CNBorn 说这样的鬼天气用 CPL 是没用的。呃，俺的相机至今也就一个配件：UV。主要保护镜头而已，嘿嘿。呃，跑题了...</p>
<p>那天只顾四处转，不知道哪了就看地图，一点也没有留意时间，转到哪是哪，累了就休息。我的第一个休息点是位于解放南路和北路交口附近的<a href="http://www.footbig.com/photo/550338">汗腾格里大寺</a>。貌似这边开始就是维族区了，因为我在通过地下通道见到了都是<a href="http://www.footbig.com/photo/550346">维族乞丐</a>以及路道两边都是维族人的摊位，而且不说汉语。因此我遇见了一个可爱的维族小女孩：身袭火红的外套，一路小 跑的就跑过我的眼前，坐到了我的旁边。迅速抓起相机，调整焦距，对焦，按下快门，于是就抓拍到了小女孩的第一张照片。不过这样也被小女孩吸引到了，于是同 时我也想办法去吸引她，留住她。这一交谈不要紧，果然又是满口的维语。没办法，我开始使用重复口语回答，比划，给她看我拍的照片，让她玩我的相机，算是暂 时不跑开了，刚开始小女孩还有些不适应，到后来越来越有镜头感。这也是我来新疆后最满意的一部分。</p>
<p><img src="http://fleet1.footbig.com/478/m/37/74/37742b7c06a50cdb03421cc6f0017b2c-5947.jpg" alt="小女孩" /></p>
<p><img src="http://fleet1.footbig.com/478/m/75/87/7587bf41efc6f55193ab7843116500d4-6686.jpg" alt="小女孩" /></p>
<p>不过小女孩还是呆不住的，玩了一会就跑到大寺一层的商场里（哈，熟悉吧，大巴扎的清真寺一层也是商场，好怪异哦），我也休息的差不多了，准备去对面的新华 书店找找旅游的书看看乌市还有些什么好玩的地方。说道看书，我这里岔题下，之前有去过市图书馆（离我住宿的地方很近），临时进入，需要投放一元钱，然后会 给你一个临时卡，进入到各层之后就发现，馆藏的图书甚少，而且借书还有年费，不过里面人还是蛮多的，还有专门的维文藏馆。但是最重要的是自习室好多美女 哦，我还趁机搭讪了一把，哈哈～这些我信了新疆出美女这句话。咱们再把话题转回新华书店，进入需要存包，无论是家乐福超市还是这里，就算是封闭的背包也需 要存，当开始由于我手拿着相机进入的，误被人当成了记者，不过回头想想也是，身穿的这身行头，再配个单反相机，还真可能在非帝都，魔都这样的城市误解（以 前在天津的时候也有被人误当成记者...）。由于我把寄存的话会不安全，我也不放心，还是垂头丧气的出了书店。闹市！必有士兵巡逻把守，最重要的是我看到 了一个很帅气的武警站岗，刚开始我踱步看着他走了过去，心里不甘，于是又折回走到武警身边向他说明了情况（给他拍相），估计他也把我当记者了还是很热心 肠，走到了防暴盾牌中间，摆出了帅气的姿势，等待我的拍照，娃哈哈～</p>
<p><img src="http://fleet1.footbig.com/478/m/9c/5e/9c5ee58c9dc0b65e39533e16052fdf75-1153.jpg" alt="武警" /></p>
<p>拍完之后，我的计划准备走前往人民公园（见上路线图从大寺到人民公园的路程），这段路程是最长而且也是让我最迷茫的路程，地图看了半天找不到走到了哪里， 所以绕了一些地方，不过我发现我走到人民公园的那些路段都是繁华路段，到处商场一座座，人来人往，兵来兵往的。向西走的这些路段都是汉族区，所以让我比较 郁闷，即使到了一个很大型的服装批发集散地，也找不到一点点的维族服装...本还想可以买几顶小方帽呢，集散地的西边尽头就是人民公园，不过在那边并没有 找到公园的入口，问路人，他们说不远处有个缺口走进去就行了，呃...看来这也是一个不收费的公园，果不其然，这座公园并没有太多的人，也许跟天气有关 系，因为我从图书馆仅有的一点资料了解到，这边公园会有群众载歌载舞。看来我来的时候正好错过了，到处都是光秃秃。转了很大一圈发现真的没什么的东西就回 去找地方吃饭。谁知道让我走到了红山公园才能看到一个回去的公交车站...</p>
<p>本次随笔到此结束，留下最后一部分作为美食的简单汇总。</p>
<p>如果觉得今天的文字太枯燥，看看下面的石榴解解馋<br />
<img src="http://fleet1.footbig.com/478/m/42/c7/42c79cc8ea81dd7b30f2d48c4712f5d9-1401.jpg" alt="石榴" /></p>
]]></content:encoded>
			<wfw:commentRss>http://icyleaf.com/2009/11/26/xinjiang-yaxin-diary-5/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>亚心随笔之四</title>
		<link>http://icyleaf.com/2009/11/24/xinjiang-yaxin-diary-4/</link>
		<comments>http://icyleaf.com/2009/11/24/xinjiang-yaxin-diary-4/#comments</comments>
		<pubDate>Tue, 24 Nov 2009 01:30:03 +0000</pubDate>
		<dc:creator>icyleaf</dc:creator>
				<category><![CDATA[生活记录]]></category>
		<category><![CDATA[乌鲁木齐]]></category>
		<category><![CDATA[新疆]]></category>

		<guid isPermaLink="false">http://icyleaf.com/?p=723</guid>
		<description><![CDATA[就在清真寺旁边有一道短街有好几家当地的新疆维族饭馆，来回转了几圈，看看这家看看那家犹豫不定，不知道是吃手抓饭好呢，还是烤串，烤馕这些的好，突然看见有家是在外面放的一个大锅，一边架子放着带肉的羊骨头，锅里是翻滚的红红的汤，看着新鲜和卖家比划了几下，说要一碗尝尝（汉语也不是很熟练），然后进了里屋，哇，里面坐满了维族人，操着维语不知道在谈论些什么。然而他们的目光大多投向了手持相机的我，心里有些胆怯，找了一个小角落坐了下面重新打量四周，内部也是常见的清真的建筑风格，看来我来到店家还挺不错，而且价格也非常的便宜。不一会一份看着不咋地的饭端了上来，嗯，这应该是囊包肉，看来也不想其他非新疆城市做的那么好看，里面有南瓜，囊，和羊骨头肉，不过还不赖，汤浓肉劲，一会功夫一碗就被我消灭掉了。噢！差点忘记交代，本来想要一份酸奶的，可惜卖家告诉我这个只有早上才有的，但是我在其他地方吃过，味道和乌鲁木齐驻京办事处的差不多，只不过盛酸奶的容器和勺子并没那么精致。 最后给大家看一下这家位处国际市集大巴扎旁边饭馆的菜单价格： 趁着吃完饭，看着小伙计在炒手抓饭，抓拍的几张，然后正好被老板看到，和我叽哩咕嘟的说了一通，当开始以为是不让拍呢，搞了半天才明白，原来是让我给他的小伙计拍一张，于是就有了下面这张照片： 烤串，这样串串分三种，一种是常见的竹签，一种是粗树枝（乌鲁木齐驻京办事处也是），一种是木边的金属串： 啊，还有新疆特有的囊，嗯，这个烤馕的烤具和我们家乡烙火烧的家什一样，这个拍的是肉囊（6元一个）： 美食拍的差不多了，就开始在大巴扎的外围四周溜达，过程中认识一个外地游客的老乡，说是老乡实际上就是想互相拍个照，反正没事一起走走吧，于是就有了下面这张照片，这张是那个老乡（应该有 40 岁左右了吧）找到当地的保安合影的： 转来转去这附近也就集市，观光塔和清真寺，后者进门都是收费的，现在是反季，门票都是 10 元，我都没有进去，观光塔其实并不高，而且外面宣传的太邪乎；清真寺更搞，一层居然是商场，二层以上才是清真寺，由于不能拍照和在做礼拜，无法进去。最后就站在公交车站，手持地图寻找下一个目标。经过询问，还真巧，正好问着一个导游，据他说，乌市市区除了这里（大巴扎）就只有红山公园可以看看，因为那里可以俯瞰整个乌市，询问好路线，顺便抓拍了一张当时的路面状况就撤离了这里，下图看图不说话： 在找另外一个公交车站时，经过地下通道拍到的，嗯，也和北京差不多，过道两边摆的小摊位和零星的乞讨者。以及路边看到的唯一一家卖葡萄干的老大爷，于是我也顺便买了些，嗯，购买的时候又遇到了语言障碍... 买完葡萄干后发现做公交车的零钱花掉了...哈，居然这都给忘记了，看到二道桥商场旁边有个大棚的市场，心想买些小玩意换些零钱，这不买不知道，居然让我知道了惊天的秘密！为什么这么说呢，对于一个外地人又没有经过了解就过来玩，对于这边的物价是毫无概念的，尤其是整改后面向国际的大巴扎。其实对面的大棚卖的东西和大巴扎里面的是一模一样的，买纯羊毛的东西，卖家上来也是掏出打火机去燎一点边（不明白的见上面随笔三），而且可能大棚的卖家不是本地人，我知道内幕的那家卖家是山西（还是陕西的？），我买了 3 个纯羊毛的围巾，经过砍价后居然 120 元就买到了！之前一件就花了我 80 元。天啊！这是何等的利润啊！ 买完这几件后手里就只剩下几块的交通费了，而且东西还蛮多蛮沉的，于是先回了趟宾馆放东西然后在去的红山公园（公交车只有不到 10 站地），说来不行，这要我外出的那几天天气一直的不好，尤其是到午后的时间，整个天空弥漫着一层似烟似雾的障碍物，就和北京的天气一样恶心。公园没有入园门票，但院内的其他部分地方和设施是单向收费的（寺庙，远眺楼，摩天轮，以及各种娱乐小项目），其实这样蛮好，可惜北京人太多，否则我想应该也会是这样的模式。进去之后人并不是很多，其实这个时候天气也算是蛮凉的了，大多数的娱乐项目都已经关闭，湖面也是干涸的。我就四处溜达了一圈，跑到远眺楼上面呆了一会，里面没什么东西，乌市包括亚心的介绍性文字，和大量的图片（新旧城市对比），我这里翻拍了一张大巴扎的新旧对比图： 古今大巴扎 俯瞰乌市 纪念林则徐硝烟的鼎（雕像在鼎旁边） 红山塔 在回去的时候，看到有一群人在拍照（经询问是给合唱团拍外景），我就凑了过去和摄影师的助理聊上了，他说一般每年的 5 月中下旬和 10 月初来新疆玩是最好的，当然是说周边的风景区，市里实在没什么大多的东西，喀什稍微好些，市里的古建筑更多一些，好像从乌市到喀什坐飞机还得1个多小时。然后有说了一串串让我记不住的风景区的名字还让我看了他们拍的照片，那叫一个美啊...有兴趣的朋友们可以去那个助理给我推荐的新疆天山网（由于疆内的网络还是封锁的，大家可以等开网了之后去看看），这是一个当地的门户网站，里面有一些关于旅行的活动可以参加。 告别了他们之后，我也结束了今天的行程，打道回府（实际上是去吃夜市了，这个我准备放在随笔的最后一节写一些关于新疆美食的总结吧）。今天的随笔就到这样，让大家等候多时了，希望这部分的随笔还能让大家满意 明天的随笔是暴走扫街！想知道我都拍到了什么吗？哈哈，下回书接着记录。 烤面筋的大叔]]></description>
			<content:encoded><![CDATA[<p>就在清真寺旁边有一道短街有好几家当地的新疆维族饭馆，来回转了几圈，看看这家看看那家犹豫不定，不知道是吃手抓饭好呢，还是烤串，烤馕这些的好，突然看见有家是在外面放的一个大锅，一边架子放着带肉的羊骨头，锅里是翻滚的红红的汤，看着新鲜和卖家比划了几下，说要一碗尝尝（汉语也不是很熟练），然后进了里屋，哇，里面坐满了维族人，操着维语不知道在谈论些什么。然而他们的目光大多投向了手持相机的我，心里有些胆怯，找了一个小角落坐了下面重新打量四周，内部也是常见的清真的建筑风格，看来我来到店家还挺不错，而且价格也非常的便宜。不一会一份看着不咋地的饭端了上来，嗯，这应该是囊包肉，看来也不想其他非新疆城市做的那么好看，里面有南瓜，囊，和羊骨头肉，不过还不赖，汤浓肉劲，一会功夫一碗就被我消灭掉了。噢！差点忘记交代，本来想要一份酸奶的，可惜卖家告诉我这个只有早上才有的，但是我在其他地方吃过，味道和乌鲁木齐驻京办事处的差不多，只不过盛酸奶的容器和勺子并没那么精致。</p>
<p><img src="http://fleet1.footbig.com/478/m/80/c2/80c21f51af225982e41df59a2e21e969-9752.jpg" alt="囊包肉" /></p>
<p>最后给大家看一下这家位处国际市集大巴扎旁边饭馆的菜单价格：<br />
<span id="more-723"></span><br />
<img src="http://fleet1.footbig.com/478/m/44/aa/44aac5b0f29186a5b9a735558c09c941-1776.jpg" alt="菜单" /></p>
<p>趁着吃完饭，看着小伙计在炒手抓饭，抓拍的几张，然后正好被老板看到，和我叽哩咕嘟的说了一通，当开始以为是不让拍呢，搞了半天才明白，原来是让我给他的小伙计拍一张，于是就有了下面这张照片：</p>
<p><img src="http://fleet1.footbig.com/478/m/5e/04/5e045e604f859cbd669d3d5a78c3a634-8644.jpg" alt="小伙计炒手抓饭" /></p>
<p>烤串，这样串串分三种，一种是常见的竹签，一种是粗树枝（乌鲁木齐驻京办事处也是），一种是木边的金属串：</p>
<p><img src="http://fleet1.footbig.com/478/m/41/dd/41dd8b48ccc00e0fff92fd21d6b101f3-7935.jpg" alt="树枝羊肉串" /></p>
<p><img src="http://fleet1.footbig.com/478/m/90/2d/902da887da13ffd66d13bfcdd8fa2a0b-9698.jpg" alt="" /></p>
<p>啊，还有新疆特有的囊，嗯，这个烤馕的烤具和我们家乡烙火烧的家什一样，这个拍的是肉囊（6元一个）：</p>
<p><img src="http://fleet1.footbig.com/478/m/8a/f8/8af8b5ae67adfc2cf18e9cbba2529299-4738.jpg" alt="烤肉囊" /></p>
<p>美食拍的差不多了，就开始在大巴扎的外围四周溜达，过程中认识一个外地游客的老乡，说是老乡实际上就是想互相拍个照，反正没事一起走走吧，于是就有了下面这张照片，这张是那个老乡（应该有 40 岁左右了吧）找到当地的保安合影的：</p>
<p><img src="http://fleet1.footbig.com/478/m/5f/1e/5f1e87306c85c7800169aa616ca6a2f1-5561.jpg" alt="我和保安" /></p>
<p>转来转去这附近也就集市，观光塔和清真寺，后者进门都是收费的，现在是反季，门票都是 10 元，我都没有进去，观光塔其实并不高，而且外面宣传的太邪乎；清真寺更搞，一层居然是商场，二层以上才是清真寺，由于不能拍照和在做礼拜，无法进去。最后就站在公交车站，手持地图寻找下一个目标。经过询问，还真巧，正好问着一个导游，据他说，乌市市区除了这里（大巴扎）就只有红山公园可以看看，因为那里可以俯瞰整个乌市，询问好路线，顺便抓拍了一张当时的路面状况就撤离了这里，下图看图不说话：</p>
<p><img src="http://fleet1.footbig.com/478/m/a0/ee/a0eee17733ebea7bc4502cb3ba61e0e1-4736.jpg" alt="巡逻" /></p>
<p>在找另外一个公交车站时，经过地下通道拍到的，嗯，也和北京差不多，过道两边摆的小摊位和零星的乞讨者。以及路边看到的唯一一家卖葡萄干的老大爷，于是我也顺便买了些，嗯，购买的时候又遇到了语言障碍...</p>
<p><img src="http://fleet1.footbig.com/478/m/31/ce/31ce0be30b4f7bb06f940a1157a08eae-8665.jpg" alt="卖葡萄干的老大爷" /></p>
<p>买完葡萄干后发现做公交车的零钱花掉了...哈，居然这都给忘记了，看到二道桥商场旁边有个大棚的市场，心想买些小玩意换些零钱，这不买不知道，居然让我知道了惊天的秘密！为什么这么说呢，对于一个外地人又没有经过了解就过来玩，对于这边的物价是毫无概念的，尤其是整改后面向国际的大巴扎。其实对面的大棚卖的东西和大巴扎里面的是一模一样的，买纯羊毛的东西，卖家上来也是掏出打火机去燎一点边（不明白的见上面随笔三），而且可能大棚的卖家不是本地人，我知道内幕的那家卖家是山西（还是陕西的？），<strong>我买了 3 个纯羊毛的围巾，经过砍价后居然 120 元就买到了！之前一件就花了我 80 元。天啊！这是何等的利润啊！</strong></p>
<p>买完这几件后手里就只剩下几块的交通费了，而且东西还蛮多蛮沉的，于是先回了趟宾馆放东西然后在去的红山公园（公交车只有不到 10 站地），说来不行，这要我外出的那几天天气一直的不好，尤其是到午后的时间，整个天空弥漫着一层似烟似雾的障碍物，就和北京的天气一样恶心。公园没有入园门票，但院内的其他部分地方和设施是单向收费的（寺庙，远眺楼，摩天轮，以及各种娱乐小项目），其实这样蛮好，可惜北京人太多，否则我想应该也会是这样的模式。进去之后人并不是很多，其实这个时候天气也算是蛮凉的了，大多数的娱乐项目都已经关闭，湖面也是干涸的。我就四处溜达了一圈，跑到远眺楼上面呆了一会，里面没什么东西，乌市包括亚心的介绍性文字，和大量的图片（新旧城市对比），我这里翻拍了一张大巴扎的新旧对比图：</p>
<p><img src="http://fleet1.footbig.com/478/m/f7/06/f706db5d6fc18129aadaa7399e692eeb-4753.jpg" alt="古今大巴扎" /></p>
<p>古今大巴扎</p>
<p><img src="http://fleet1.footbig.com/478/m/72/84/7284fe1c4081166d664d6978c013f4ba-9762.jpg" alt="俯瞰乌市" /></p>
<p>俯瞰乌市</p>
<p><img src="http://fleet1.footbig.com/478/m/a5/fd/a5fd186a51d85f5f6ee0813cd4979352-4305.jpg" alt="纪念林则徐硝烟的鼎" /></p>
<p>纪念林则徐硝烟的鼎（雕像在鼎旁边）</p>
<p><img src="http://fleet1.footbig.com/478/m/aa/df/aadf9f91f53dbe363a680e16dc5b11d0-1983.jpg" alt="红山塔" /></p>
<p>红山塔</p>
<p>在回去的时候，看到有一群人在拍照（经询问是给合唱团拍外景），我就凑了过去和摄影师的助理聊上了，他说一般每年的 5 月中下旬和 10 月初来新疆玩是最好的，当然是说周边的风景区，市里实在没什么大多的东西，喀什稍微好些，市里的古建筑更多一些，好像从乌市到喀什坐飞机还得1个多小时。然后有说了一串串让我记不住的风景区的名字还让我看了他们拍的照片，那叫一个美啊...有兴趣的朋友们可以去那个助理给我推荐的新疆天山网（由于疆内的网络还是封锁的，大家可以等开网了之后去看看），这是一个当地的门户网站，里面有一些关于旅行的活动可以参加。</p>
<p>告别了他们之后，我也结束了今天的行程，打道回府（实际上是去吃夜市了，这个我准备放在随笔的最后一节写一些关于新疆美食的总结吧）。今天的随笔就到这样，让大家等候多时了，希望这部分的随笔还能让大家满意 <img src='http://icyleaf.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>明天的随笔是暴走扫街！想知道我都拍到了什么吗？哈哈，下回书接着记录。</p>
<p><img src="http://fleet1.footbig.com/478/m/82/8e/828e472e4a07ee235390d2d73b3c9e54-6272.jpg" alt="烤面筋" /></p>
<p>烤面筋的大叔</p>
]]></content:encoded>
			<wfw:commentRss>http://icyleaf.com/2009/11/24/xinjiang-yaxin-diary-4/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>亚心随笔之三</title>
		<link>http://icyleaf.com/2009/11/20/xinjiang-yaxin-diary-3/</link>
		<comments>http://icyleaf.com/2009/11/20/xinjiang-yaxin-diary-3/#comments</comments>
		<pubDate>Fri, 20 Nov 2009 01:30:04 +0000</pubDate>
		<dc:creator>icyleaf</dc:creator>
				<category><![CDATA[生活记录]]></category>
		<category><![CDATA[乌鲁木齐]]></category>
		<category><![CDATA[新疆]]></category>

		<guid isPermaLink="false">http://icyleaf.com/?p=709</guid>
		<description><![CDATA[幸好我们的客户是中国移动，人家休息了我们也可以放松一下。 10 月 31 日（星期六），我耐不住性子抓上相机勇敢的出门了。出门前还是到酒店的前台确认了一下外出是否有生命危险，呃，比较没经历过嘛...买了一份带有 公交路线的地图，前往了今天的第一站，乌市最有特色的维族区市集--大巴扎。 大巴扎位于城中心偏南的二道桥，其中“巴扎”在维语里就是集市的意思，它是新疆商业与旅游繁荣的象征，也是乌鲁木齐作为少数民族城市的景观建筑，又是一座标志性建筑。国际大巴扎具有浓郁的伊斯兰建筑风格，在涵盖了建筑的功能性和时代感的基础上，重现了古丝绸之路的繁华，集中体现了浓郁西域民族特色和地域文化（以上文字描述摘自网络）。 这边的公交车也很有特色，也是汉语和维语分别报站和提醒，我还特意录了一段，去大巴扎方向的人非常的多，所以车上人很挤，最初我还是非常小心的自己的贵重物品，和以防扎针事件的发生...不过到后来坐多了，也不顾及那么多了，因为实际上并没有想象中的那么可怕。到了大巴扎后，第一反应是环顾四周不停的看：熙熙攘攘的街道上 全是维族人，感觉就像到达了另个一个国家，一切是那么新鲜。这边分为二道桥市场和新疆国际大巴扎两个部分，既然冲着大巴扎来的，那就先逛它吧，大巴扎是又 一个典型化的商业区，有些类似北京的大栅栏，崭新的建筑就像是北京的老胡同扒倒重新再盖一样的，整个集市分了好些区域，大多数都是吸引外地游客前来购买新疆特色。 Author insert a music with WS Audio Player.Download (新疆公交车提示音). 起初的时候，相机还不敢拿出来，毕竟对于外地人来说，新疆人的第一印象并不是很好，而且这里又是 July 5th 的突发现场，先后拿着相机诚惶诚恐的拍了几张又放了包里，主要是因为这个时候（大概 11 点多）我还没有看到一个外地人，而且集市上的卖家还都是在店里坐着，偶尔遇到朋友了，亲切的握个手，闲谈起来。幸好的是一个拿着相机的游客引入我 的眼帘，这一下子让我放下了顾虑和担心，开始对着别人，展示的物品肆无忌惮的拍起来， 看到新鲜的玩意儿就抓起来瞅瞅，店里的挂毯，围巾，披肩，到小摊位的铜镜，各种管制刀具，玉器，还有狼牙，由于不知道是狼牙真的假的，就随随便问了问，然后就发 现了一个问题，这个卖家不怎会说汉语，当我问她多少钱的时候，“10 koi”，“恩? 10 koi?”，“10 koi”，我试着笔出手指，然后说 10 元一个？卖家赶紧“恩，恩”的点点头，这下明白了，原来 “koi” 就是“元”的意思啊，不过心里一琢磨，一颗小小的狼牙这也太贵了吧，说声谢谢就离开了。 经过四处溜达一圈的经验，我发现，我拿着相机拍别人的商品的时候，他们都会热心的上前来询问有什么需要购买的，然后利用任何可以“勾引”的新鲜玩意和把戏把你“勾搭”回 来。我得承认他们卖东西很有一套，而且很和蔼，涉及到买围巾，披肩等服饰的店面，大多数都是年轻的美女，看中哪个，二话不说，取下来就 往自己身上展示，如果涉及到纯羊毛，迅雷不及掩耳之势点着了打火机，拽着一点边毛就点着了，吹灭，让你凑上闻闻，伸手搓一下，嗯，果然，没错，是纯羊毛 的。下面，最重要的来了，大家肯定很关心价格问题，好吧，他们喊价也很常见，上来张开一个高价，然后在声称平时（以 &#8230; <a href="http://icyleaf.com/2009/11/20/xinjiang-yaxin-diary-3/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>幸好我们的客户是中国移动，人家休息了我们也可以放松一下。 10 月 31 日（星期六），我耐不住性子抓上相机勇敢的出门了。出门前还是到酒店的前台确认了一下外出是否有生命危险，呃，比较没经历过嘛...买了一份带有 公交路线的地图，前往了今天的第一站，乌市最有特色的维族区市集--大巴扎。</p>
<p>大巴扎位于城中心偏南的二道桥，其中“巴扎”在维语里就是集市的意思，它是新疆商业与旅游繁荣的象征，也是乌鲁木齐作为少数民族城市的景观建筑，又是一座标志性建筑。国际大巴扎具有浓郁的伊斯兰建筑风格，在涵盖了建筑的功能性和时代感的基础上，重现了古丝绸之路的繁华，集中体现了浓郁西域民族特色和地域文化（以上文字描述摘自网络）。</p>
<p>这边的公交车也很有特色，也是汉语和维语分别报站和提醒，我还特意录了一段，去大巴扎方向的人非常的多，所以车上人很挤，最初我还是非常小心的自己的贵重物品，和以防扎针事件的发生...不过到后来坐多了，也不顾及那么多了，因为实际上并没有想象中的那么可怕。到了大巴扎后，第一反应是环顾四周不停的看：熙熙攘攘的街道上 全是维族人，感觉就像到达了另个一个国家，一切是那么新鲜。这边分为二道桥市场和新疆国际大巴扎两个部分，既然冲着大巴扎来的，那就先逛它吧，大巴扎是又 一个典型化的商业区，有些类似北京的大栅栏，崭新的建筑就像是北京的老胡同扒倒重新再盖一样的，整个集市分了好些区域，大多数都是吸引外地游客前来购买新疆特色。</p>
<p><br /><img src="http://icyleaf.com/wp-content/plugins/ws-audio-player/img/music.gif" alt="music" />Author insert a music with <a href="http://icyleaf.com/projects/ws-audio-player/">WS Audio Player</a>.<br />Download (<a href="http://icyleaf.com/wp-content/uploads/2009/11/xinjiang_bus_tips.mp3" title="Download 新疆公交车提示音"/>新疆公交车提示音</a>).</p>
<p><img style="width: 564px; height: 376px;" src="http://fleet1.footbig.com/478/m/b7/b6/b7b64d3a1feb80b05202f93f4426a418-6929.jpg" alt="" width="564" height="376" /></p>
<p><span id="more-709"></span>起初的时候，相机还不敢拿出来，毕竟对于外地人来说，新疆人的第一印象并不是很好，而且这里又是 July 5th 的突发现场，先后拿着相机诚惶诚恐的拍了几张又放了包里，主要是因为这个时候（大概 11 点多）我还没有看到一个外地人，而且集市上的卖家还都是在店里坐着，偶尔遇到朋友了，亲切的握个手，闲谈起来。幸好的是一个拿着相机的游客引入我 的眼帘，这一下子让我放下了顾虑和担心，开始对着别人，展示的物品肆无忌惮的拍起来， 看到新鲜的玩意儿就抓起来瞅瞅，店里的挂毯，围巾，披肩，到小摊位的铜镜，各种管制刀具，玉器，还有狼牙，由于不知道是狼牙真的假的，就随随便问了问，然后就发 现了一个问题，这个卖家不怎会说汉语，当我问她多少钱的时候，“10 koi”，“恩? 10 koi?”，“10 koi”，我试着笔出手指，然后说 10 元一个？卖家赶紧“恩，恩”的点点头，这下明白了，原来 “koi” 就是“元”的意思啊，不过心里一琢磨，一颗小小的狼牙这也太贵了吧，说声谢谢就离开了。</p>
<p>经过四处溜达一圈的经验，我发现，我拿着相机拍别人的商品的时候，他们都会热心的上前来询问有什么需要购买的，然后利用任何可以“勾引”的新鲜玩意和把戏把你“勾搭”回 来。我得承认他们卖东西很有一套，而且很和蔼，涉及到买围巾，披肩等服饰的店面，大多数都是年轻的美女，看中哪个，二话不说，取下来就 往自己身上展示，如果涉及到纯羊毛，迅雷不及掩耳之势点着了打火机，拽着一点边毛就点着了，吹灭，让你凑上闻闻，伸手搓一下，嗯，果然，没错，是纯羊毛 的。下面，最重要的来了，大家肯定很关心价格问题，好吧，他们喊价也很常见，上来张开一个高价，然后在声称平时（以 July 5th 为由）卖一个更高的价格，而且我每到一家都是说，开门价，第一单生意，给你便宜些，但是我心里没底啊，不过他们张口报的高价其实比北京这边购买还是要便宜的很多的，我看中的第一件商品是想送给妈妈的围巾，卖家报“120”，心里踌躇的半天，卖家看到我犹豫，上来就说，“你给个价格吧”心里琢磨了半天，一边按照常规砍价学给出了一个半价 60 元，一边心里自问，这个价格会不会找来一顿爆骂，然后把我扫地出门（嗯，这种事可以在天津发生，从此之后买东西还价有些害怕），谁知道卖家并没有怒火，而 是很亲切的和我讨价还价，他让一小步，我也让一小步，最后我拿出杀手锏，我就这 80 元，你这围巾卖不卖，如果得到答案不卖，里面转头走人，果不其然，卖家同意了，趁着没事，和美女卖家聊了起来，问了问最近的情况。顺便又趁机戴了几顶帽拍 了一下，由于担心外面太短，也没敢没拿太多钱，所以很不错的帽子到最后也没有买，另外至于价格的最终秘密我会放到下一部分的随笔揭秘（不是不是，是时候未到，哈哈 o(∩_∩)o...）：</p>
<p><img style="width: 376px; height: 564px;" src="http://fleet1.footbig.com/478/m/28/9c/289cdb9c73e3ae016a3b33a5102fc1c1-2329.jpg" alt="" width="376" height="564" /></p>
<p><img style="width: 376px; height: 564px;" src="http://fleet1.footbig.com/478/m/da/e6/dae6755e5f909dfb38b145c4e5838cbb-1691.jpg" alt="" width="376" height="564" /></p>
<p>告别美女卖家之后又去其他店面去祸害：</p>
<p><img style="width: 376px; height: 564px;" src="http://fleet1.footbig.com/478/m/bd/cf/bdcf4e8c2dc93d5e904b9b9e477516cc-6388.jpg" alt="" width="376" height="564" /></p>
<p><img style="width: 564px; height: 376px;" src="http://fleet1.footbig.com/478/m/51/cf/51cf0f2dabfdec5bba7ba0e5a62e9033-1799.jpg" alt="" width="564" height="376" /></p>
<p><img style="width: 564px; height: 376px;" src="http://fleet1.footbig.com/478/m/91/b9/91b9b30367877e13ebc98b3321b9ee7a-4187.jpg" alt="" width="564" height="376" /></p>
<p>到目前为止集市是逛的差不多了，到四周随便转转，就来到了大巴扎的中心小广场，这里有座观光塔，它的前面有一个大巴扎的金字塔标志，后面的旁边是清真寺（下图左边）</p>
<p><img style="width: 376px; height: 564px;" src="http://fleet1.footbig.com/478/m/63/d2/63d286200b408d63baf319d03f4184a1-9160.jpg" alt="" width="376" height="564" /></p>
<p>哈，还有摆摊卖石榴汁的：</p>
<p><img style="width: 564px; height: 376px;" src="http://fleet1.footbig.com/478/m/e6/69/e66925b4306c2a76555ac60e008ba980-9037.jpg" alt="" width="564" height="376" /></p>
<p>看到这些突然想起来，这一早上还没有吃饭呢，嗯，找当地特色饭馆去...精彩继续稍后回来，请明天这个时候准时收看 XD</p></div>
]]></content:encoded>
			<wfw:commentRss>http://icyleaf.com/2009/11/20/xinjiang-yaxin-diary-3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
<enclosure url="http://icyleaf.com/wp-content/uploads/2009/11/xinjiang_bus_tips.mp3" length="572317" type="audio/mpeg" />
		</item>
		<item>
		<title>亚心随笔之二</title>
		<link>http://icyleaf.com/2009/11/19/xinjiang-yaxin-diary-2/</link>
		<comments>http://icyleaf.com/2009/11/19/xinjiang-yaxin-diary-2/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 01:30:05 +0000</pubDate>
		<dc:creator>icyleaf</dc:creator>
				<category><![CDATA[生活记录]]></category>
		<category><![CDATA[乌鲁木齐]]></category>
		<category><![CDATA[新疆]]></category>

		<guid isPermaLink="false">http://icyleaf.com/?p=704</guid>
		<description><![CDATA[差不多  11 点钟，飞机就到达了乌市地窝堡机场，打听好同事的住处就赶了过去，坐在出租车上面发现副驾驶的右角居然有摄像头，对于初次到达乌市，第一印象和普通的省会 城市差不多，环境也不是太好。幸好乌市并不是太大，出租车的费用也不很贵（起步 6 元，每公里 1.3 元）。半个小时的时间就到达了同事所在的如家快捷酒店。附近有市政府所以也比较安全（也就可能不安全，为什么这么说呢。众所周知，自 July 5th 之后那边发生了一些事情，导致不少流血事件的发生，以及群众前往市政府游行，闹的同事晚上都不敢在外出，随时都能看到持棍的人见到不是同族的就会发生冲 突）。另外一个重要原因是自 July 5th 之后，随着网上的曝光，整个疆内的网络，包括短信全部停运（最初是可以发短信不能打电话），现在是只能打电话，所以我们这边的项目也只有我前来现场开发。 这也是为什么我会在那天之后消失在网上，甚至在 twitter 上面飞机起飞前说完“乌市见”后就没有音讯的原因...说来安全是指，附近（还包括人群嚷嚷的街区）都有警察，武警，特警上街巡逻和士兵哨点把守，好家伙每队中起码有一个持长枪。 这边昼夜温差好大，刚去的那些天天气还都不错，白天有太阳和北京的天气差不多，不过到了晚上气温骤降，大概晚上 7 点和同事出去吃饭，我穿了带过去的所有衣服（一件Tee，一件线衣，一个带背心的小西服）都是浑身打颤，只有吃完一碗面之后才能抵御下外面的冷空气。除此之外，差不多还有 2 个小时的时差，其实这没有任何的影响。这里上班时间都是 10:00，早上 8 点的时候外面还是黑乎乎的一片，于是我又钻到被窝里呼呼睡一统 XD 由于我没有通行证无法进移动公司，我主要是做远程开发，工作日的大部分时间都是在宾馆编程，看看电视（无奈之举，只有看 CCTV 获得一些外界的信息），虽然疆内的网站是开着的，不过由于宾馆的网速慢的要死，疆内突发的高访问量，导致各个网站都是很慢很慢的，不过新闻大多数还都是那些疆内新闻和无关紧要的要闻.... 下图大家可以看出，乌市所有的指示的文字都是汉语和维语双文，这是为什么呢？接下来的随笔记着说明，待续...（这次图片少了些，后面的更精彩哦）]]></description>
			<content:encoded><![CDATA[<p>差不多  11 点钟，飞机就到达了乌市地窝堡机场，打听好同事的住处就赶了过去，坐在出租车上面发现副驾驶的右角居然有摄像头，对于初次到达乌市，第一印象和普通的省会 城市差不多，环境也不是太好。幸好乌市并不是太大，出租车的费用也不很贵（起步 6 元，每公里 1.3 元）。半个小时的时间就到达了同事所在的如家快捷酒店。附近有市政府所以也比较安全（也就可能不安全，为什么这么说呢。众所周知，自 July 5th 之后那边发生了一些事情，导致不少流血事件的发生，以及群众前往市政府游行，闹的同事晚上都不敢在外出，随时都能看到持棍的人见到不是同族的就会发生冲 突）。另外一个重要原因是自 July 5th 之后，随着网上的曝光，整个疆内的网络，包括短信全部停运（最初是可以发短信不能打电话），现在是只能打电话，所以我们这边的项目也只有我前来现场开发。 这也是为什么我会在那天之后消失在网上，甚至在 twitter 上面飞机起飞前说完“乌市见”后就没有音讯的原因...说来安全是指，附近（还包括人群嚷嚷的街区）都有警察，武警，特警上街巡逻和士兵哨点把守，好家伙每队中起码有一个持长枪。</p>
<p>这边昼夜温差好大，刚去的那些天天气还都不错，白天有太阳和北京的天气差不多，不过到了晚上气温骤降，大概晚上 7 点和同事出去吃饭，我穿了带过去的所有衣服（一件Tee，一件线衣，一个带背心的小西服）都是浑身打颤，只有吃完一碗面之后才能抵御下外面的冷空气。除此之外，差不多还有 2 个小时的时差，其实这没有任何的影响。这里上班时间都是 10:00，早上 8 点的时候外面还是黑乎乎的一片，于是我又钻到被窝里呼呼睡一统 XD</p>
<p>由于我没有通行证无法进移动公司，我主要是做远程开发，工作日的大部分时间都是在宾馆编程，看看电视（无奈之举，只有看 CCTV 获得一些外界的信息），虽然疆内的网站是开着的，不过由于宾馆的网速慢的要死，疆内突发的高访问量，导致各个网站都是很慢很慢的，不过新闻大多数还都是那些疆内新闻和无关紧要的要闻....</p>
<p>下图大家可以看出，乌市所有的指示的文字都是汉语和维语双文，这是为什么呢？接下来的随笔记着说明，待续...（这次图片少了些，后面的更精彩哦）</p>
<p><img class="alignnone" title="乌市邮箱" src="http://fleet1.footbig.com/478/m/cd/37/cd374d0d819acbb136b29f4a75a0393b-5061.jpg" alt="" width="564" height="376" /></p>
]]></content:encoded>
			<wfw:commentRss>http://icyleaf.com/2009/11/19/xinjiang-yaxin-diary-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
